Модуль_1.PPT
- Количество слайдов: 25
1. Основные понятия и подходы Технологии программирования
Обзор n Технология программирования и основные этапы ее развития n Жизненный цикл и этапы разработки программного обеспечения n Оценка качества и технологичность программного продукта
Понятие технологии программирования n Технология это набор правил, методик и – инструментов, позволяющих наладить производственный процесс выпуска продукта n Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения n Набор технологических инструкций: l указание последовательности выполнения технологических операций l перечисление условий для выполнения операций l описания самих операций (данные, результаты, стандарты и т. п. )
Этапы развития: «стихийное» программирование l Первые программы имели простейшую структуру и состояли из программы на машинном языке и обрабатываемых ею данных l Позже появились средства, позволяющие оперировать подпрограммами, которые можно было сохранять и использовать в других программах
Этапы развития: структурный подход l Структурный подход к программированию представляет совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки программного обеспечения l В основе структурного подхода лежит декомпозиция (разбиение на части) сложных систем с целью последующей реализации в виде отдельных небольших подпрограмм l Процедурные языки программирования (ALGOL-68, Pascal, С) включали основные «структурные» операторы передачи управления, поддерживали вложение подпрограмм, локализацию и ограничение области «видимости» данных
Этапы развития: объектный подход l Объектно-ориентированное программирование определяется как технология, основанная на представлении программы в виде совокупности объектов каждый из которых является экземпляром , определенного типа (класса), а классы образуют иерархию с наследованием свойств l Декомпозиция программного обеспечения при объектно-ориентированном программировании приводит к более полной локализации данных, что позволяет вести практически независимую разработку отдельных частей (объектов) программы. l Объектный подход позволяет конструировать сложные объекты из сравнительно простых
Этапы развития: компонентный подход и CASEтехнологии l Компонентный подходпредполагает построение программного обеспечения из отдельных компонентов физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы l Программный интерфейс— функциональность, которую некоторый программный компонент предоставляет другим программным компонентам l Объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию .
Этапы развития: компонентный подход и CASEтехнологии CASE-средства (Computer-Aided Software Engineering)программно-технологические средства специального класса n Главные составляющие. CASE-продукта: l методология (Method Diagrams) l графические редакторы (Graphic Editors) l генератор l репозиторий
Жизненный цикл программного продукта n Жизненным циклом программного продукта (обеспечения) (ЖЦПП) называют период от момента появления идеи создания некоторого программного продукта до момента завершения его поддержки фирмой-разработчиком или фирмой, выполнявшей сопровождение n Процесс жизненного цикла определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные Международный стандарт ISO/IEC 12207
Процессы жизненного цикла программного продукта n Процессы ЖЦПП: l Основные– включают в себя набор определенных действий и связанных с ними задач, которые должны быть выполнены в течение ЖЦПП l Вспомогательные– определяют создание надежного, полностью удовлетворяющего требованиям заказчика ПП в установленные сроки l Организационные– определяют организацию процесса разработки надежного, полностью удовлетворяющего требованиям заказчика ПП в установленные договором сроки и управление этим процессом
Структура процессов ЖЦПП n Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными и результатами Основные процессы приобретение , поставка, разработка, эксплуатация , сопровождение Вспомогательные процессы документирование, управление конфигурацией , управление качеством, верификация, аттестация , совместная оценка , аудит, разрешение проблем Организационные процессы управление, создание инфраструктуры, усовершенствование, обучение
Этапы ЖЦПП n Этап ЖЦПП– это часть процесса разработки ПП, ограниченная по времени и заканчивающаяся определенным результатом n Этапы ЖЦПП: l постановка задачи l планирование работ по созданию ПП l проектирование ПП l реализация (программирование) l тестирование l сопровождение и эксплуатация
Каскадная модель ЖЦПП Каскадная схема разработки программного обеспечения предполагает, что переход на следующую стадию осуществляется после того, как полностью будут завершены проектные операции предыдущей стадии и получены все исходные данные для следующей стадии
Модель с промежуточным контролем n Схема, поддерживающая итерационный характер процесса разработки, была названа схемой с промежуточным контролем n Контроль, который выполняется по данной схеме после завершения каждого этапа, позволяет при необходимости вернуться на любой уровень и внести необходимые изменения
Спиральная модель n В соответствии со спиральной схемой программное обеспечение создается не сразу, а итерационно с использованием метода прототипирования, базирующегося на создании прототипов
Спиральная модель n Прототипом называют действующий программный продукт, реализующий отдельные функции и внешние интерфейсы разрабатываемого программного обеспечения n Преимущества: l сокращение времени до появления первых версий l быстрое продвижение следующих версий продукта на рынке l уменьшение вероятности морального устаревания системы за время разработки
Оценка качества n Существует несколько стандартов, связанных с оценкой качества процессов, которое обеспечивает организация-разработчик, среди них: l международные стандарты серии ISO 9000 (ISO 9000 - ISO 9004) l СММ - Capability Maturity Model l рабочая версия международного стандарта ISO/IEC 15504: более известна под названием SPICE Software Process Improvement and Capability d. Etermination
Технологичность программного продукта n Под технологичностью понимают качество проекта программного продукта, от которого зависят трудовые и материальные затраты на его реализацию и последующие модификации n Технологичность программного обеспечения определяется: l проработанностью его моделей l уровнем независимости модулей l стилем программирования l степенью повторного использования кодов
Модули и их свойства n Модулем - автономно компилируемая программная единица. n Чем выше степень независимости модулей, тем: l легче разобраться в отдельном модуле и всей программе, то есть, тестировать, отлаживать и модифицировать ее l меньше вероятность появления новых ошибок при исправлении старых или внесении изменений в программу l проще организовать разработку программного обеспечения группой программистов и легче его сопровождать
Нисходящая и восходящая разработка программного обеспечения n При проектировании, реализации и тестировании компонентов структурной иерархии, полученной при декомпозиции, применяют два подхода: l восходящий - сначала проектируют и реализуют компоненты нижнего уровня, затем предыдущего l нисходящий - вначале проектируют компоненты верхних уровней иерархии, затем следующих и так далее до самых нижних уровней
Структурное программирование n Программы, написанные с использованием только структурных операторов передачи управления, называютструктурными l Линейная структура предполагает выполнение некоторые операции в определенной последовательности l Разветвленная структура предполагает, что конкретная последовательность операций зависит от значений одной или нескольких переменных l Циклическая структура процесса вычислений предполагает необходимость выполнения некоторых действий несколько раз
Базовые конструкции l следование - обозначает последовательное выполнение действий l ветвление- соответствует выбору одного из двух вариантов действий l цикл-пока - определяет повторение действий, пока не будет нарушено некоторое условие, выполнение которого проверяется в начале цикла
Стиль оформления программы n Стиль оформления программы включает: l правила именования объектов программы (переменных, функций, типов, данных и т. п. ) l правила оформления модулей l стиль оформления текстов модулей
Эффективность и технологичность n Эффективнымисчитают программы, требующие минимального времени выполнения и/или минимального объема оперативной памяти n В первую очередь необходимо оптимизировать те фрагменты программы, которые существенно влияют на характеристики эффективности
Защита от ошибок Поскольку полный контроль данных на входе и в процессе вычислений, как правило, невозможен, следует предусматривать перехват обработки исключительных ситуаций