
- •1. Жизненный цикл программной системы.
- •2. Классический подход к созданию программных систем.
- •3. Понятия связности модулей и сцепления модулей.
- •4. Структурное программирование.
- •Структурное тестирование программного обеспечения
- •1. Связь процессов тестирования и процессов проектирования.
- •2. Уровни тестирования и виды тестирования.
- •3. Стратегия тестирования.
- •4. Тестирование программного модуля.
- •5. Восходящее и нисходящее тестирование.
- •6. Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
- •7. Системное тестирование: метод функциональных диаграмм.
- •Объектно-ориентированный подход к разработке по
- •1. Абстрагирование и инкапсуляция
- •2. Модульность программных систем
- •3. Виды иерархий в программных системах.
- •4. Понятие объекта. Состояние, поведение и индивидуальность объекта.
- •5. Отношение между объектами: использование, включение.
- •6. Отношение простого наследования классов.
- •7. Добавление, замещение и уточнение методов класса при наследовании.
- •8. Отношение ассоциации между классами, включая агрегацию.
- •9. Отношение зависимости между классами, отношение реализации.
- •Шаблоны проектирования
- •1. Шаблон «Одиночка» Singleton
- •2. Шаблон «Фабричный метод» Factory Method
- •3. Шаблон «Декоратор» Decorator
- •4. Шаблон «Стратегии» Strategy
- •5. Шаблон «Компоновщик» Composite.
- •6. Шаблон «Наблюдатель» Observer
- •7. Архитектурные шаблоны (парадигмы).
- •Унифицированный процесс разработки по (rup)
- •1. Основные черты. Фазы и основные потоки работ.
- •2. Документ «Видения». Модель и словарь предметной области.
- •3. Функциональные и нефункциональные требования к системе. Варианты использования системы.
- •4. Прецеденты и отношения между вариантами использования (прецедентами).
- •5. Модель анализа и классы анализа.
- •6. Архитектурное представление.
5. Модель анализа и классы анализа.
Цель: добиться понимания требований в той степени, которая необходима для представления системы в целом, включая архитектуру.
Результат: объектная модель анализа, начальный вариант архитектуры системы
Модель анализа является абстракцией для модели проектирования. Служит для того, чтобы последовательно приблизиться к модели проектирования. Необязательна в сложных системах. Не сохраняется в проекте, т.к. неоднозначная, промежуточная.
Решаемые задачи:
учитывается взаимодействие прецедентов
прецедентам дается формальное описание в виде различного вида диаграмм (активности, последовательности, сотрудничества)
выделяются общие и внутренние ресурсы системы
разрабатывается первый вариант архитектуры системы.
Классы модели анализа – определяют ответственности на высоком уровне абстракции (без детализации методов и конкретных атрибутов). Используются следующие стереотипы классов:
Граничные – моделируют взаимодействие между системой и актантом (запросы и получение информации). Запросы актантов – системные операции. Может быть абстракцией интерфейса пользователя, программного или коммуникационного интерфейсов, не содержит физической реализации, должен быть связан хотя бы с одним актантом. Объекты живут во время выполнения прецедента.
Классы сущностей – моделируют информацию, существующую некоторое время. Как правило классы сущностей получаются из классов предметной области. Объекты живут между прецедентами.
Управляющие – моделируют управление другими объектами (граничных классов и классов сущности). Управляющий класс может соответствовать одному или нескольким вариантам использования. Объекты живут во время выполнения прецедента.
Варианты управляющих классов:
один прецедент – один класс
объединение прецедентов в один класс
граничный класс представляет одну сущность, тогда функции управляющего класса передаются граничному классу
6. Архитектурное представление.
Логическое представление – подмножество модели проектирования, которое содержит наиболее значимые классы и их распределение по пакетам и подсистемам. Представляет интерес для пользователей (с точки зрения функциональности), а также для аналитиков и тестеров (поведение системы)
Представление развертывания – подмножество модели реализации, описывающее ответственность физических узлов; развертывание и распределение задач, процессов и потоков по узлам. Рассчитано на системных инженеров (системная топология, установка, связь).
Представление реализации – подмножество модели реализации, описывающее ПО в терминах пакетов, а также распределение классов и пакетов по модулям. Если пакеты заимствуются из модели проектирования, то это представление отсутствует. Представляет интерес для программистов (управление ПО).
Представление процессов – содержит описание задач, их взаимодействие и конфигурацию. Интересует системных интеграторов (производительность, масштабируемость, пропускна способность).
Представление данных – подмножество модели данных.
В архитектурных представлениях фиксируются устойчивые характеристики системы, которые необходимы для решения следующих задач:
Эволюция системы (переход к очередному циклы разработки)
Повторное использование архитектуры в линейке программных продуктов.
Оценивание дополнительных показателей (производительность, надежность)
Назначение работы командам сотрудников.
При разработке принимаются решения включения в проект готовых программных продуктов.