
- •1. Использование системного подхода при проектировании программного обеспечения
- •2. Основные проблемы разработки и проектирования ПО и методы их преодоления
- •3. Понятие жизненного цикла ПО и его роль в проектировании информационных систем
- •4. Понятие модели ЖЦ в проектировании информационных систем, терминология моделей ЖЦ
- •5. Основные модели ЖЦ и рекомендации по их использованию
- •6. Преимущества и недостатки использования каскадной модели ЖЦ
- •7. Преимущества и недостатки использования эволюционной модели ЖЦ
- •8. Сравнение эволюционной и итерационной моделей ЖЦ
- •10. Понятие "сложности" в современном проектировании информационных систем и способы её преодоления
- •11. Использование принципа декомпозиции в процессе проектирования информационных систем
- •14. Основные понятия объектно-ориентированного подхода к проектированию информационных систем
- •16. Понятие гибкого моделирования, манифест и основные принципы гибкого процесса проектирования
- •17. Понятие гибкого унифицированного процесса проектирования
- •18. Фазы и дисциплины унифицированного процесса проектирования, распределение работ на различных фазах для основных дисциплин
- •19. Начальная фаза унифицированного процесса и артефакты, которые могут создаваться на этой фазе процесса проектирования
- •20. Понятие требования к информационной системе, типы и категории требований
- •21. Понятие прецедента в процессе моделирования требований к информационной системе, модель прецедентов.
- •23. Артефакты унифицированного процесса, используемые для описания нефункциональных требований к информационной системе
- •24. Фаза развития унифицированного процесса и артефакты, которые могут создаваться на этой фазе процесса проектирования
- •25. Задачи фазы развития унифицированного процесса и планирование итераций на этой фазе проектирования
- •26. Моделирование предметной области и основные понятия модели предметной области
- •27. Использование классов описаний и производных атрибутов в процессе моделирования предметной области
- •28. Понятие системного события и идентификация системных событий
- •29. Открытый системный интерфейс и описание операций в рамках унифицированного процесса проектирования
- •30. Проектирование динамической структуры ПО с использованием UML в рамках объектно ориентированного подхода
- •31. Средства UML для выражения полиморфных сообщений в контексте проектирования динамической структуры ПО
- •32. Средства UML для выражения асинхронных вызовов в контексте проектирования динамической структуры ПО
- •34. Средства UML для представления атрибутов коллекций в контексте проектирования статической структуры ПО
- •35. Признаки существования зависимости между классами в контексте проектирования статической структуры ПО
- •36. Стадии создания информационной системы в рамках канонического проектирования
- •37. Обследование и технико-экономическое обоснование проекта
- •39. Состав эскизного и технического проектов
- •40. Типовое проектирование информационных систем
5. Основные модели ЖЦ и рекомендации по их использованию
Существует несколько основных моделей ЖЦ ПО, каждая из которых подходит для определенных типов проектов:
Модели ЖЦ:
1. каскадная (водопадная); 2. эволюционная;
3. основанная на формальных преобразованиях; 4. итерационные (пошаговая и спиральная).
Каскадная модель (Waterfall):
Рекомендации: Подходит для проектов с четкими, стабильными требованиями (например, государственные или инженерные системы). Неэффективна при высоких рисках изменений.
Основной принцип каскадной модели: работа над проектом ведётся как над единым целым, фиксируются требования к системе в начале проекта;
переход со стадии на стадию осуществляется только после полного завершения работ на текущей стадии, процессы ЖЦ жестко привязываются к стадиям;
в конце каждой стадии должен быть готов исчерпывающий комплект документации.
Одним из главных недостатков является то, что она не учитывает динамику изменения требований на протяжении жизненного цикла.
Эволюционная модель:
Рекомендации: Используется в проектах с нечеткими требованиями, где нужна обратная связь от заказчика (например, стартапы или инновационные продукты).
Особенности эволюционной модели: Работа над проектом ведется как над единым целым, требования к ПО поэтапно уточняются с помощью создания промежуточных версий в рамках рабочего цикла.
Достоинства в сравнении с каскадной моделью:
1. Более полный учет требований к заказчику 2. Раннее обнаружение проблем и их разрешение по мере
возникновения; 3. Параллельное ведение работ внутри рабочего цикла
Недостатки:
1. Плохая документированность; 2. Запутанность создаваемого ПО и сложность внесения изменений;
3. Сложность планирования; годится лишь для небольших проектов.
Модель жизненного цикла, основанная на формальных преобразованиях.
Рекомендации: для проектов с высокими требованиями к надежности (авиация, медицина, ядерная энергетика).
Особенности:
1. Работа над проектом ведется как над единым целым.
2. Специальная нотация формального описания требований, а также эскизной и проектной архитектуры.
3. Кодирование и тестирование заменяется процессом преобразования формальных спецификаций в исходные тексты программ или в исполняемый код.
Достоинства: 1. формальные методы гарантируют соответствие ПО спецификациям требований, таким образом => вопросы надежности и безопасности решаются автоматически.
Недостатки: 1. Большие системы сложно описать формальными спецификациями; 2. Требуются специально подготовленные и высококвалифицированные разработчики; 3. Есть зависимость от средств разработки и нотации спецификаций.
Итерационная модель (делится на пошаговую и спиральную):
Рекомендации: Подходит для сложных проектов, где требования могут уточняться.
Особенности итерационных моделей:
1. Разработка делится на несколько итераций, в рамках каждой из которых выполняются действия по созданию части системы (на разных итерациях части разные).
2. Количество итераций в итерационных пошаговых моделях определяется заранее (в этом заключается важное отличие итерационных моделей от эволюционной).
3. Процессы не привязаны к определенным стадиям ЖЦ, что позволяет по мере необходимости, повторять некоторые работы, до тех пор, пока не будет получен нужный результат.
4. С каждой пройденной итерацией ПО наращивается, в него интегрируются новые разработанные компоненты.
Достоинства итерационных моделей (в сравнении с каскадной):
1. Полный учет требований заказчика, более полное его участие в проекте;
2. Равномерная нагрузка на группу разработчиков; 3. Раннее обнаружение проблем и их разрешение по мере
возникновения; 4. Уменьшение рисков на каждой итерации.
Недостатки итерационных моделей:
1. Сложность планирования; 2. Плохая документированность создаваемого ПО.
Особенности итерационной спиральной модели:
Сочетание итераций с анализом рисков на каждом этапе.
Рекомендации: Используется в крупных проектах с высокими рисками (например, военные или медицинские системы).
1.Общая структура действий на каждой итерации: планирование, определение задач, ограничений и вариантов решений, оценка предложенных решений и рисков, выполнение основных работ итерации и оценка их результатов;
2.Решение о начале новой итерации принимается на основе результатов предыдущей;
3.Возможно досрочное прекращение проекта в случае обнаружения его нецелесообразности;