- •Абстаркция и абсттрагирование
- •Архитектура программной системы.
- •Объектно-ориентированный анализ
- •Объектно-ориентированное проектирование
- •Объектно-ориентированное программирование
- •Аналитическая модель
- •Алгоритмическая и объектно-ориентированная декомпозиция
- •Сложность программных систем. Основные причины, признаки сложной системы.
- •Понятие итеративного цикла разработки. Участники процесса разработки программного обеспечения.
- •Класс, объект. Состояние объекта. Поведение объекта.
- •Расширения uml: ограничения (constraint), стереотипы (stereotypes) и именованные
- •Агрегация и композиция. Их назначение и отличия
- •Понятие итеративного цикла разработки. Участники процесса разработки программного
- •Основные этапы разработки программного обеспечения (Анализ, проектирование,
- •Понятие стереотипов концептуальной модели (boundary, control, entity)
- •16. Язык um, назначение и структура языка uml. Визуальное моделирование
- •17. Интегрированная модель сложной системы
- •18. Модель системы в Rational Rose (Use Case View, Logical View, Component View, Deployment View)
- •Назначение диаграммы компонентов.
- •Диаграммы размещения (Deployment Diagram). Назначение, основные элементы (Processor, Device, Connection).
- •19. Анализ предметной области. Идентификация и систематизация функций системы. Атрибуты системы. Скрытые и типовые функции. Функции бизнес-логики
- •20. Модульность программной системы. Понятие и назначение Package. Отношения между Package. Организационные диаграммы.
- •21. Вариант использования (Use Case). Абстрактный вариант использования.
- •22. Диаграммы вариантов использования. Назначение. Основные элементы (Text Box, Use Case, Note, Anchor Note, Actor, Package)
- •23. Связи на диаграмме Вариантов Использования (Association, Unidirectional Association, Generalization, Extend use case, Include use case).
- •24. Сценарии use case. Описание (потоки событий) и назначение сценариев
- •25 Диаграммы деятельности. Назначение. Основные элементы (Activity, State, Start State, Stop State, State Transition, State to self, Synchronization, Decision, Swimlane)
- •26. Диаграммы последовательности (Sequence Diagram). Назначение, основные элементы (Object, Object Message, Message to Self) Соотнесение объектов с классами, сообщение с операциями.
- •27. Кооперативные диаграммы (Collaboration). Назначение, основные элементы (Object, Class Instance, Object Link, Link to Self, (Reverse) Link Message, (Reverse) Data Flow
- •28. Диаграммы классов (Class Diagram). Назначение, основные элементы (Class, Association, Dependency, Aggregation, Generalization). Атрибуты и операции, множественность (multiplicity) и роли
- •Назначение диаграммы вариантов использования (Use Case Diagram)
- •30. Диаграммы вариантов использования для моделирования предметной области. Назначение, основные элементы (Business Actor, Business Use Case, Association).
- •31. Назначение диаграммы компонентов
- •32. Диаграммы размещения (Deployment Diagram). Назначение, основные элементы (Processor, Device, Connection).
- •33. Последовательность разработки программной системы
- •34. Диаграммы анализа и проектирования
- •35. Основные задачи анализа. Функциональные и нефункциональные требования.
33. Последовательность разработки программной системы
Модели процесса разработки ПО: водопадная (каскадная), итерационная, спиральная.
Рациональный унифицированный процесс (Rational Unified Process, RUP) - одна из специальных методологий разработки программного обеспечения
Итерационная разработка программного обеспечения в RUP предполагает разделение проекта на несколько мелких проектов, которые выполняются последовательно, и каждая итерация разработки четко определена набором целей, которые должны быть достигнуты в конце итерации. Конечная итерация предполагает, что набор целей итерации должен в точности совпадать с набором целей, указанных заказчиком продукта, то есть все требования должны быть выполнены.
RUP предоставляет структурированный подход к итерационной разработке программного обеспечения, подразделяя процесс на четыре основные фазы во времени (milestones): Inception (исследование, начало), Elaboration (уточнение плана), Construction (конструирование, построение) и Transition (переход, развертывание). На рис. 2 представлено широко распространенное изображение фаз RUP. Целями каждой из данных фаз являются:
• Inception - понимание, что мы создаем. Фаза сбора информации и анализа требований, определение образа проекта в целом;
• Elaboration - понимание, как мы это создаем. Фаза анализа требований и проектирования системы, планирование необходимых действий и ресурсов, спецификация функций и особенностей дизайна;
• Construction - создание бета-версии продукта. Основная фаза разработки и кодирования, построение продукта как восходящей последовательности итераций (версий кода);
• Transition - создание конечной версии продукта. Фаза внедрения продукта, поставка продукта конкретному пользователю.
Рис.
2. Фазы RUP
Это фазы управления эволюцией продукта - итерациями жизненного цикла. RUP предполагает приближение к конечной цели, но, в отличие от классического стандарта ISO (методология «водопад»), где transition является конечной фазой, каждая из фаз может повторяться несколько раз, отражая изменение требований заказчика продукта.
Методология RUP основана на девяти основных потоках (workflow), являющихся элементами итерации жизненного цикла ПО:
• Business modeling (бизнес-анализ) - предполагает анализ требований на данной итерации жизненного цикла, определение желаемых параметров системы и нужд пользователей;
• Requirements (требования) - формализация образа системы. Предполагает сбор требований и управление требованиями, перевод требований в функциональные спецификации. Здесь начинается анализ прецедентов и построение use cases (пользовательских историй) - формальное отображение требований пользователя в UML. Результатом являются документы уровня менеджмента;
• Analysis and design (анализ и моделирование) - предполагает перевод собранных требований в формализованную программную модель. Результатом является описание системы на фазе реализации (технический проект) - это документы уровня разработчиков системы. Язык формализации - Unified Modelling Language (UML).
• Implementation (реализация, кодирование) - предполагает собственно написание кода. Элементы кода в RUP уже созданы на этапе анализа и дизайна, так как средство реализации UML - Rational Rose - позволяет создавать элементы кода на нескольких языках программирования. Методология - объектно-ориентированное программирование;
• Test (тестирование) - предполагает тестирование продукта на данной итерации. Стоит специально отметить, что regression testing (возвратное тестирование, тестирование «неухудшения» продукта) в данном случае должно содержать все актуальные тесты от предыдущей итерации и приемосдаточные тесты от предыдущей transition-фазы;
• Deployment (внедрение) - предполагает установку продукта на полигоне заказчика, подготовку персонала, запуск системы плюс приемо-сдаточные испытания, подготовка стандартов упаковки и распространения продукта, передача материалов отделу продаж (действия опциональны в зависимости от специфики продукта).
Теперь рассмотрим элементы, касающиеся поддержки продукта, - core supporting workflows:
• Configuration management (управление конфигурацией и изменениями) - мощный слой административных действий, направленных на управление версиями продукта, что предполагает контроль исходного кода (модели, исполняемых модулей, тестов, документации), контроль версий продукта, корпоративные стандарты разработки кода и документации, отслеживание изменений и ошибок (bug tracking); тесно связан с тестированием и поддержкой пользователей (customers support);
• Management (управление проектом) - предполагает набор административных действий управления проектом согласно идеологии RUP, используются средства управления проектом;
• Environment (окружение) - предполагает создание и поддержку средств анализа, проектирования, разработки, тестирования (как программное, так и аппаратное обеспечение).
