- •Составные части технологии программирования (тп). Отличие тп от методологии программирования и программной инженерии.
- •Технология быстрой разработки приложений (rad). Основные принципы и особенности.
- •Иерархия понятий в технологии программирования.
- •Определение понятия «предметная область». В чем заключается принцип концептуализации предметной области.
- •Особенности современных программных систем как объектов разработки. Проблемы разработки сложных программных систем.
- •Общие принципы разработки сложных программных систем. Признаки сложных программных систем.
- •Показатели качества программных систем.
- •Основные подходы к созданию сложных программных систем (структурный и объектный).
- •Структурный подход к разработке программных систем.
- •2) Объектный подход к разработке программных систем.
- •Основные этапы жц: Требования к по.
- •Основные этапы жц: Проектирование по.
- •Основные этапы жц: Конструирование по.
- •Основные этапы жц: Тестирование по.
- •Основные этапы жц: Сопровождение по.
- •1. Технические вопросы:
- •Жизненный цикл (жц) программных систем: определение, стандарты и проблемы.
- •Основные процессы жизненного цикла по.
- •Модель жизненного цикла по: Каскадная модель разработки по.
- •Модель жизненного цикла по: Спиральная модель разработки по.
- •Другие типы моделей жизненного цикла (V-образная, инкрементная, быстрого прототипирования).
- •Модели организации команд: Административная модель. Модель хаоса. Модель открытой архитектуры.
- •Модель проектной группы msf for Agile Software Development: Основные принципы построения команды.
- •Модель проектной группы msf. Ролевые группы и роли.
Основные этапы жц: Проектирование по.
Проектирование ПО – процесс определения архитектуры ПО, компонентов, интерфейсов и других характеристик ПО, а также определение конечного состава ПО.
Результатом процесса проектирование, в первую очередь, является дизайн или архитектура ПО, который должен описывать структуру ПО на основании проведения декомпозиции и включать в себя описание структуры всех компонентов и интерфейсов между ними.
Проектирование состоит из двух основных частей:
Высокоуровневый дизайн, т.е. описание высокоуровневой структуры и организации компонентов системы.
Детализированная архитектура. Включает в себя описание каждого компонента в том объеме, который необходим для конструирования.
С точки зрения содержания процессов проектирования различают следующие виды дизайна:
D – дизайн (Decomposition design) – декомпозиция структуры ПО в виде набора физических фрагментов и компонентов.
FP – дизайн (Faintly Pattern design) – семейство архитектур представлений, базирующихся на шаблонах.
I – design (Invention design) – создание высокоуровневой концепции. Видение того, что будет представлять из себя система.
Базовая концепция проектирования ПО – это методология проектирования архитектуры с помощью различных методов (парадигм) с учетом процессов жизненного цикла ПО и с применением базовых техник проектирования (декомпозиция, абстрагирования, инкапсуляция и т.д.).
Одним из важнейших инструментов проектирования архитектуры является паттерн, который задаёт взаимодействие объектов программной системы, а также роли и ответственности исполнителей.
Проектирование можно рассматривать на разных уровнях:
Макроуровень – когда говорят об архитектурном стиле (набор ограничений, определяющий семейство архитектур, которые удовлетворяют этим ограничениям).
Микроуровень – определяются частные случаи архитектуры и виды шаблонов.
Различают три основных класса шаблонов:
создания (Билдеры, эффекторы, прототипы, синглтоны).
структурные (прокси, адаптер, композит).
поведения (итератор, медиатор, стейт).
Оценка и анализ качества проектирования включает в себя мероприятия по анализу сформулированных в требованиях атрибутов качества и оценку различных аспектов разрабатываемого ПО (кол-во функций, структура ПО, различные метрики), а также качественного анализа результатов проектирования путем моделирования и прототипирования.
Группа, применимая к Runtime:
Время отклика;
Производительность;
Объем используемой памяти;
Группа, ориентированная на Design-Time:
Модифицировать ПО;
Использование ПО пользователями;
Атрибуты качества самого архитектурного дизайна:
Полнота;
Непротиворечивость;
Целостность;
Нотации проектирования, которые позволяют представить описание объекта ПО и его структуру, а также описать поведение системы. Используется виды нотаций:
Структурные нотации(язык блок-схем, ER-модели, диаграммы UML);
Поведенческие нотации описывают динамический аспект поведения системы (DFD диаграммы, UML (диаграммы деятельности, кооперации, последовательности), специальные языки проектирования ПО).
Стратегии и методы проектирования:
Разделяй и властвуй (стратегия пошагового уточнения).
Проектирование сверху вниз или снизу вверх.
Абстракция данных и сокрытие информации.
Инкрементный и итеративный подход к разработке ПО.
Методологии проектирования:
Функционально-ориентированный – базируются на структурном анализу и используют структурные нотации,
Объектно-ориентированный – использует основные принципы ООП,
Методы анализа потоков данных – используют структурные нотации,
Формальные методы – основываются на аксиомах, описанных ранее условиях, которые ограничивают поведение системы.
