- •1. Технология разработки программного обеспечения. Определение. Основные этапы на примере классического жизненного цикла.
- •2. Два взгляда на по: научная разработка, программное изделие. Свободное по.
- •3. Парадигмы проектирования программных систем. Макетирование.
- •4.Парадигмы проектирования пс. Инкрементная модель.
- •5. Парадигмы проектирования программных систем. Быстрая разработка приложений.
- •6. Парадигмы проектирования программных систем. Спиральная модель.
- •7. Парадигмы проектирования программных систем. Компонентно-ориентированная модель.
- •8. Парадигмы проектирования программных систем. Унифицированный процесс. Rup.
- •1. Начало
- •2. Уточнение
- •3. Построение (Конструирование)
- •4. Внедрение
- •9. Парадигмы проектирования программных систем. Экстремальное программирование.
- •10. Спецификация требований. Виды требований.
- •1) Пользовательские требования
- •2) Системные требования
- •3) Проектная системная спецификация.
- •11. Функциональные требования.
- •12. Нефункциональные требования.
- •13. Требования предметной области.
- •14. Пользовательские требования.
- •15. Системные требования.
- •16. Описание технического задания по гост.
- •17. Прецеденты. Определение. Актеры. Сценарии.
- •18. Задачи и рамки прецедентов.
- •19. Степень формализации прецедентов. Сжатый, свободный и развёрнутый формат описания.
- •20. Пояснения к прецедентам. Предусловия и постусловия. Альтернативные сценарии.
- •22. Объектно-ориентированные анализ и проектирование программных систем. Основные определения.
- •23. Основные принципы объектно-ориентированной разработки программ.
- •24. Обязанности объектов. Разложение системы на объекты. Crc-карты.
- •25. Инкапсуляция. Связность внутри классов и зацепление между классами.
- •26. Композиция и наследование. Абстрактные классы. Интерфейс класса. Рекомендации.
- •27. Методы, операции, сообщения. Разделение команд и запросов.
- •28. Проектирование по контракту. Предусловия и постусловия в методах. Инварианты.
- •29. Паттерны проектирования. Определение. Формат описания.
- •30. Виды паттернов по уровню абстракции и по цели. Примеры.
- •36. Минимальное грубое тестирование
- •37. Автоматизированные тесты. Основные определения. XUnit
- •38. Разработка через тестирование
- •39. Особенности командной разработки по
- •40. Оценка стоимости по. Модели и методики. Модель cocomo
20. Пояснения к прецедентам. Предусловия и постусловия. Альтернативные сценарии.
Предусловия – это перечень предпосылок, которые всегда должны выполняться до начала сценария варианта использования. Предусловия не проверяются при реализации варианта использования. Это условия, которые считаются истинными. Обычно в качестве предусловия выступает успешный результат выполнения другого сценария. Предусловия – это те предпосылки, на которые разработчик варианта использования хочет обратить особое внимание.
Результаты или постусловия – описывают, какие условия обязательно должны выполняться в случае успешного завершения сценария. Эти результаты должны удовлетворять запросам всех заинтересованных лиц.
Сценарии использования могут содержать вторичные пути или альтернативные сценарии, которые являются вариантами основного. Каждое проверенное правило может привести к альтернативному пути и когда правил много количество альтернативных путей возрастает приводя к очень сложным документам. Иногда лучше использовать условную логику или диаграммы, чтобы описать сценарии со многими правилами и условиями.
21. UML-диаграмма прецедентов. Отношения между прецедентами.
Моделируемая система изображается в виде прямоугольника, внутри которого размещаются эллипсы, обозначающие прецеденты. В верхней части прямоугольника указано название моделируемой системы. Сам прямоугольник называют рамками системы (system boundary, subject boundary), контекстом или просто системой. Этот элемент диаграммы показывает границу между тем, что аналитик показал в виде прецедентов (внутри этих рамок), и действующими лицами (вне их). То есть внутри границы находятся прецеденты - тот функционал, который реализует система, а снаружи - действующие лица: пользователи и другие внешние сущности, взаимодействующие с моделируемой системой. Кроме рамок системы или ее контекста на диаграмме присутствуют еще два вида связанных с ней сущностей - это действующие лица (actors) и прецеденты.
Actor - это набор ролей, которые исполняет пользователь в ходе взаимодействия с некоторой сущностью (системой, подсистемой, классом). Актор может быть человеком, другой системой, подсистемой или классом, которые представляют нечто за пределами рассматриваемой сущности. Акторы "общаются" с системой путем обмена сообщениями. На диаграммах UML акторы изображаются в виде стилизованных человечков. Если же актор имеет атрибуты, которые важно показать, то его изображают в виде класса со стереотипом <<actor>>. Акторы не могут быть связаны друг с другом. Единственное допустимое отношение между акторами - генерализация ( наследование ).
Прецеденты изображаются в виде эллипса, внутрь контура которого помещается имя (описание) прецедента. Имя прецедента обычно намного длиннее имен других элементов модели.
Также иногда на диаграмме прецедентов можно увидеть сценарии. Иногда их изображают в виде " листа бумаги ", на котором написано имя файла, - прямоугольника с загнутым нижним левым уголком. В этом случае указанный файл содержит в себе описание данного сценария. А иногда сценарий записывается в комментарий – изображаются прямоугольниками с загнутым верхним правым углом и соединяются с элементом, который они поясняют, пунктирной линией.
Отношения между прецедентами:
Обобщение (англ. Generalization, наследование) — моделирует соответствующую общность ролей. Изображается обобщение линией с "незакрашенной" треугольной стрелкой на конце. Обобщение - это отношение между предком и потомком, и стрелка всегда указывает на предка.
Включение (англ. Include) — определяет взаимосвязь базового варианта использования с другим вариантом использования, функциональное поведение которого всегда задействуется базовым вариантом использования. Изображается как зависимость (пунктирная линия со стрелкой) со стереотипом <<include>>. При этом стрелка направлена в сторону включаемого прецедента.
Расширение (англ. Extend) — разновидность отношения зависимости между базовым вариантом использования и его специальным случаем (например оплата наличными, оплата кредитной картой являются расширением платы покупки). Изображается как зависимость со стереотипом <<extend>>.
При моделировании с использованием расширения можно указать как условия осуществления расширенного поведения, так и место - точку расширения прецедента, в которой подключаются действия из расширяющих прецедентов. Точка расширения описывается в дополнительном разделе прецедента, отделенном от его названия горизонтальной линией, причем описание начинается с ключевых слов Extension points: . Сопоставить конкретный расширяющий прецедент с определенной точкой расширения можно, прочитав условия расширения, указанные в комментариях, - само условие записывается после служебного слова "Condition:" в фигурных скобках, за которыми идет служебная фраза "Extension point:", и после нее указывается имя точки расширения.
Ассоциация (англ. Association) — может указывать на то, что актор инициирует соответствующий вариант использования. Изображается в виде прямой линии от актора к прецеденту.