- •1. Системная и системная программная инженерия.
- •2. Программная инженерия.
- •3. Программная система. Причины сложности программных систем.
- •4. Качество программных систем. Метрики качества.
- •5. Управление качеством. Методы оценки качества процесса и продукта разработки.
- •6. Управление проектом.
- •7. Управление персоналом.
- •9. Понятие технологии разработки пс. Цели проектирования.
- •10. Классический жизненный цикл пс и разработки пс.
- •11-12. Модели жизненного цикла пс.
- •14-16. Парадигмы программирования.
- •15. Понятие объектно-ориентированного проектирования и программирования.
- •17. Понятие объектной модели. Базовые принципы.
- •Абстрагирование
- •19. Инкапсуляция.
- •20. Наследование.
- •21. Полиморфизм. Виды полиморфизма
- •22. Наследование как механизм реализации полиморфизма, создания иерархий классов. Типы наследования.
- •23. Классы. Базовые, производные, полиморфные, абстрактные, виртуаль-ные. Примеры.
- •24. Принципы раннего и позднего связывания.
- •25. Использование языка uml для спецификации
- •26. Описание иерархий классов диаграммами uml.
- •27. Классы-шаблоны. Описание в uml.
10. Классический жизненный цикл пс и разработки пс.
Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации[1]. Этот цикл — процесс построения и развития ПО.
Разрабо́тка програ́ммного обеспе́чения (англ. software engineering, software development) — это род деятельности (профессия) и процесс, направленный на создание и поддержание работоспособности, качества и надежности программного обеспечения, используя технологии, методологию и практики из информатики, управления проектами, математики, инженерии и других областей знания.
Процесс разработки программного обеспечения (англ. software development process, software process) — структура, согласно которой построена разработка программного обеспечения (ПО).
Существует несколько моделей такого процесса, каждая из которых описывает свой подход, в виде задач и/или деятельности, которые имеют место в ходе процесса.
Шаги процесса
Процесс разработки состоит из множества подпроцессов, или дисциплин, некоторые из которых показаны ниже. В модели водопада они идут одна за другой, в других процессах их порядок или состав изменяется.
* Парадигма программирования
* Бизнес-моделирование
* Анализ требований
* Планирование
* Разработка архитектуры
* Кодирование
* Тестирование и отладка
* Документирование
* Внедрение
* Сопровождение
Модели процесса
* Модель водопада (Каскадная модель)
o структурное проектирование
o тестирование программ
o сертификация программ
* Итеративный процесс
o Гибкие методологии разработки
o Экстремальное программирование
* Формальные методы
o логическое программирование
o доказательное программирование
11-12. Модели жизненного цикла пс.
Каскадная модель
Каскадная модель жизненного цикла («модель водопада», англ. waterfall model) была предложена в 1970 г. Уинстоном Ройсом. Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.
Этапы проекта в соответствии с каскадной моделью:
1. Формирование требований;
2. Проектирование;
3. Реализация;
4. Тестирование;
5. Внедрение;
6. Эксплуатация и сопровождение.
Спиральная модель
Спиральная модель (англ. spiral model) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.
Каждая итерация соответствует созданию фрагмента или версии ПО, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации.
На каждой итерации оцениваются:
* риск превышения сроков и стоимости проекта;
* необходимость выполнения ещё одной итерации;
* степень полноты и точности понимания требований к системе;
* целесообразность прекращения проекта.
Один из примеров реализации спиральной модели — RAD (англ. Rapid Application Development, метод быстрой разработки приложений).
Итерационная модель
Естественное развитие каскадной и спиральной моделей привело к их сближению и появлению современного итерационного подхода, который представляет рациональное сочетание этих моделей. Различные варианты итерационного подхода реализованы в большинстве современных технологий и методов (RUP, MSF, XP).