- •ЛЕКЦИЯ 15. SWEBOK. ОБЛАСТЬ ЗНАНИЙ «ПРОЕКТИРОВАНИЕ ПО» -
- •Источники литературы
- •Ядро знаний SWEBOK
- •Структура SWEBOK - 2004
- •Основные области SWEBOK
- •Дополнительные области SWEBOK
- •Область знаний
- •Область знаний «проектирование ПО» в SWEBOK
- •Область знаний «проектирование ПО» в SWEBOK
- •1. Основы проектирования ПО
- •1. Основы проектирования ПО
- •1.1. Общие концепции проектирования
- •Пример формулировки целей потока работ «Проектирование» в RUP
- •Цели проектирования RUP (1)
- •Цели проектирования RUP (2)
- •Цели проектирования RUP (3)
- •1. Основы проектирования ПО
- •1.2. Контекст проектирования
- •1.3. Процесс проектирования
- •Пример структуры результата проектирования (RUP)
- •1.4. Принципы (техники) проектирования ПО
- •1.4.1.Абстракция
- •1.4.3 Декомпозиция и разбиение на модули (Decomposition and Modularization)
- •1.4.2 Связность и связанность (Cohesion and Coupling)
- •Инкапсуляция/сокрытие
- •1.4.5 Разделение интерфейса и реализации (Separation of interface and implementation)
- •1.4.6 Достаточность, полнота и простота (Sufficiency, completeness and primitiviness)
- •Область знаний «проектирование ПО» в SWEBOK
- •2. Ключевые вопросы проектирования
- •2.1.Параллелизм
- •2.2. Контроль и обработка событий
- •2.3. Распределение компонентов
- •2.4 Обработка ошибок и исключительных ситуаций и обеспечение отказоустойчивости.
- •2.6 Сохраняемость данных (Data Persistence)
- •2.5 Взаимодействие и представление
- •Модель MVС (данные – представления – обработка)
- •Модель MVС (данные – представления – обработка)
- •Область знаний «проектирование ПО» в SWEBOK
- •3. Структура и архитектура программного обеспечения (Software Structure and Architecture)
- •Точки зрения
- •Архитектурные стили
- •3.3. Шаблоны проектирования
- •Классификации архитектур (архитектурных стилей)
- •Классификация Гамма - Брауде
- •Классификация архитектур Show&Garlan
2.2. Контроль и обработка событий
Системы, ориентированные на обработку событий.
2.3. Распределение компонентов
Распределение (и выполнение) по различным узлам обработки в терминах аппаратного обеспечения, сетевой инфраструктуры и т.п. .
2.4 Обработка ошибок и исключительных ситуаций и обеспечение отказоустойчивости.
2.6 Сохраняемость данных (Data Persistence)
Суть вопроса – поиск “долгоживущих” объектов (структур данных) и их отображение на базу данных.
2.5 Взаимодействие и представление
Представление информации пользователям и
взаимодействие пользователей с системой, с точки зрения реакции системы на действия пользователей
с точки зрения внутренней организации взаимодействия, например, в архитектурном стиле Model-View-Controller.
Вопросы организации пользовательского интерфейса относятся к смежной дисциплине “Эргономика программного обеспечения” – Software Ergonomics.
Модель MVС (данные – представления – обработка)
Условия применения:
Изменения во внешнем представлении достаточно вероятны,
Одна и та же информация представляется по-разному в нескольких местах,
Система должна быстро реагировать на изменения данных.
Модель MVС (данные – представления – обработка)
Структура применения:
«Model» - стабильный набор компонентов, ответственных за хранение данных;
«View» - компоненты, ответственные за представление данных пользователям;
«Controller» - компоненты, воспринимающие команды, преобразующие данные и обновляющие их представления.
Область знаний «проектирование ПО» в SWEBOK
1.Основы проектирования
2.Ключевые вопросы проектирования
3.Структура и архитектура ПО
4.Анализ качества и оценка результатов проектирования
5.Нотации проектирования ПО
6.Стратегии и методы проектирования ПО
3. Структура и архитектура программного обеспечения (Software Structure and Architecture)
3.1Архитектурные структуры и точки зрения (Architectural Structures and
Viewpoints)
3.2Архитектурные стили (Architectural Styles)
3.3Шаблоны проектирования (Design
Patterns)
3.4Семейства программ и фреймворков
(Families of Programs and Frameworks).
Точки зрения
Любая система может рассматриваться с разных точек зрения – например,
Поведенческой (динамической),
Структурной (статической),
Логической (удовлетворение функциональным требованиям),
Физической (распределенность),
Реализации (как детали архитектуры представляются в коде).