
- •Тема 1.1 Конструирование программного обеспечения
- •Методологии разработки по (модели процесса)
- •Модель водопада
- •Итеративная разработка
- •Разработка требований
- •Итеративная разработка
- •Архитектура
- •Жизненный цикл проекта
- •Начало (Inception)
- •Проектирование (Elaboration)
- •Построение (Construction)
- •Внедрение (Transition)
- •Рабочий процесс
- •Практика
- •Гибкие методологии
- •Жизненный цикл
- •Практика
- •Структура cmmi (ступенчатое представление)
- •Практика
Тема 1.1 Конструирование программного обеспечения
Проектирование программного обеспечения начинается, собственно, с его конструирования, которое определяет стратегию для его внутреннего проектирования - для этапа программирования. Заметим, что этот этап выполняется без использования языка программирования, но с ориентацией на определенный программный инструмент разработки ПО.
В процессе конструирования программного изделия осуществляют:
- функциональную декомпозициюрешаемой задачи, на основе которой определяется архитектура системы, представляющей задачу;
- внешнее проектированиепрограммного обеспечения, выражающееся в форме его внешнего взаимодействия с пользователем;
- проектирование базы данных, если это необходимо;
- проектирование архитектурыпрограммного обеспечения, т.е. определение множества объектов или модулей, функционально связанных с решаемой задачей, включая сопряжения между ними и требования к ним.
Рис.
1
Одной из наиболее опасных болезней жизненного цикла разработки программного изделия является синдром ползущего проекта или оползня. Он проявляется, когда конструирование программного изделия проведено неполно и недостаточно; неверно сконструированы отдельные аспекты проекта.
В этом случае, по мере создания программного обеспечения, пользователи, рассматривая работу отдельных готовых ветвей программы, будут просить внести некоторые усовершенствования, ссылаясь на неясные описания этого участка проекта во внешней спецификации.
Постепенно программная система будет приобретать вид огромного динозавра в заплатках. Поскольку глобальные изменения уже разработанных частей программы производить будет нельзя, а изменения и усовершенствования в нее внести надо.
Данная ситуация в первую очередь приведет к перерасходу временного лимита на создание отдельных частей проекта и нестабильности работы программного обеспечения из-за искажения или выпадения отдельных функциональных конструкций из общей строгой схемы всего проекта.
Основные принципы проектирования программного обеспечения можно представить в виде следующей схемы:
Рис.
2
Предварительный внешний проект высокого уровня предполагает определение взаимодействия будущего программного продукта с внешним миром (обычно с пользователем), но не рассматривает многие его мельчащие детали, такие как форматы ввода-вывода. Последнее уточняется в детальном внешнем проектировании.
Методологии разработки по (модели процесса)
Процесс разработки программного обеспечения (англ. software development process, software process) — структура, согласно которой построена разработка программного обеспечения (ПО). Существует несколько моделей такого процесса (методологий разработки ПО), каждая из которых описывает свой подход, в виде задач и/или деятельности, которые имеют место в ходе процесса.
Выделяют следующие основные модели процесса или методологии разработки ПО:
Модель водопада (каскадная) Итеративная разработка RUP
Гибкие методологии
CMMI
Для успешного выполнения ИТ-проекта недостаточно выбрать эффективные технологии и средства разработки, обеспечить необходимый бюджет и найти квалифицированных разработчиков. В любой организации существуют правила и методики, по которым участники проекта (заказчики, аналитики, разработчики, тестеры, технические писатели) распределяют между собой задачи, взаимодействуют друг с другом, создают проектные артефакты (спецификации, исходный код, документацию). Эти правила могут быть четко организованными или хаотичными, быть формально документированными или существовать в головах проектной команды, но в любом случае именно их совокупность называется процессом разработки.
Процесс – частный случай более общего понятия методологии разработки ПО. Примерами методологий являются структурное программирование или объектно-ориентированный анализ и дизайн.