Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ПИС / 15 28apr13 SWEBOK & Проектирование в SWEBOK.pptx
Скачиваний:
75
Добавлен:
04.06.2015
Размер:
633.63 Кб
Скачать

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)

Связность, соединение (Cohesion) модуля

– это мера зависимости его частей.

Чем выше связность модуля, тем лучше результат проектирования (тем «чернее» его ящик (Орлов))

Связанность, сцепление (Coupling)

определяет силу связи (часто, взаимного влияния) между модулями.

Связанность — внешняя характеристика модуля, которую желательно уменьшать.

Инкапсуляция/сокрытие

информации (Encapsulation/information hiding)

Предполагает группировку и

упаковку (с точки зрения подготовки к развертыванию и эксплуатации)

элементов и внутренних деталей абстракции (то есть модели)

в отношении реализации с тем, чтобы эти детали были недоступны пользователям элементов (компонент).

1.4.5 Разделение интерфейса и реализации (Separation of interface and implementation)

Данная техника предполагает определение компонента через специфицирование интерфейса,

известного (описанного) и доступного клиентам (или другим компонентам),

от непосредственных деталей реализации.

1.4.6 Достаточность, полнота и простота (Sufficiency, completeness and primitiviness)

Этот подход подразумевает, что создаваемые программные компоненты обладают всеми необходимыми характеристиками, определенными абстракцией (моделью), но не более того.

То есть не включают функциональность, отсутствующую в модели.

Данный принципy наиблоее ярко представлен в гибких (agile) подходах к разработке ПО через метафору YAGNI

“You Aren’ t Going to Need It”, то есть “не делай этого, пока не понадобится”.

Область знаний «проектирование ПО» в SWEBOK

1.Основы проектирования

2.Ключевые вопросы проектирования

3.Структура и архитектура ПО

4.Анализ качества и оценка результатов проектирования

5.Нотации проектирования ПО

6.Стратегии и методы проектирования ПО

2. Ключевые вопросы проектирования

2.1Параллелизм (Concurrency)

2.2Контроль и обработка событий (Control and Handling of Events)

2.3Распределение компонентов (Distribution of Components)

2.4Обработка ошибок и исключительных ситуаций и обеспечение отказоустойчивости (Errors and Exception Handling and Fault Tolerance )

2.5Взаимодействие и представление (Interaction and Presentation)

2.6Сохраняемость данных (Data Persistence).

2.1.Параллелизм

Множественные потоки управления

Совместно используемые данные

Синхронизация и конкуренция процессов.