SWEBOK. Область знаний «Проектирование ПО»
МСПИСТ
19.05.2016 г.
Лекция 9
Источники литературы
Основные области SWEBOK
Дополнительные
области SWEBOK
Основные области SWEBOK
Область знаний «проектирование ПО» в SWEBOK
Область знаний «проектирование ПО» в SWEBOK
Область знаний «проектирование ПО» в SWEBOK
1. Основы проектирования ПО
1.1. Общие концепции проектирования
1.2. Контекст проектирования ПО
1.3. Процесс проектирования ПО
1.4. Принципы проектирования ПО
1. Основы проектирования ПО
1.1. Общие концепции проектирования
1.2. Контекст проектирования ПО
1.3. Процесс проектирования ПО
1.4. Принципы проектирования ПО
1.1. Общие концепции проектирования
Пример формулировки целей потока работ «Проектирование» в RUP
Цели проектирования RUP (1)
1) Получить глубокое понимание моментов, относящихся к нефункциональным требованиям и ограничениям, связанным с:
Цели проектирования RUP (2)
2) Получить возможность разбить работу на множество управляемых частей, которые можно распределить между командами разработчиков, возможно – работающих параллельно.
3) Определить основные интерфейсы между подсистемами.
Пример формулировки целей потока работ «Проектирование» в RUP
Цели проектирования RUP (3)
4) Получить возможность визуализировать в стандартной нотации и объяснить проект
5) Создать абстракцию реализации системы, близкую к тривиальной, исходя из следующей парадигмы: реализация является уточнением проекта, которое приводит лишь к «наращиванию мяса», но не меняет структуру.
1. Основы проектирования ПО
1.2. Контекст проектирования
Анализ требований
Проектирование
Реализация
Тестирование
Техническое задание
Технический проект
1.3. Процесс проектирования
Архитектурное проектирование
Детальное проектирование
Результат проекти-рования
Технический проект
Эскизный проект
Пример структуры результата проектирования (RUP)
Диаграмма классов
Диаграмма последовательности
1.4. Принципы (техники) проектирования ПО
1.4.1 Абстракция (Abstraction)
1.4.2 Связанность и связанность (Coupling and Cohesion)
1.4.3 Декомпозиция и разбиение на модули (Decomposition and Modularization)
1.4.4 Инкапсуляция/сокрытие информации (Encapsulation/information hiding)
1.4.5 Разделение интерфейса и реализации (Separation of interface and implementation)
1.4.6 Достаточность, полнота и простота (Sufficiency, completeness and primitiviness)
1.4.1. Абстракция
(статическая, в отношении информации);
(динамическая, в отношении поведения);
(в отношении управления системой и обрабатываемой ею информации).
1.4.3 Декомпозиция и разбиение на модули (Decomposition and Modularization)
1.4.2 Связность и связанность (Cohesion and Coupling)
Связность и связанность – детали
Инкапсуляция/сокрытие информации (Encapsulation/information hiding)
1.4.5 Разделение интерфейса и реализации (Separation of interface and implementation)
1.4.6 Достаточность, полнота и простота (Sufficiency, completeness and primitiviness)
Источники литературы