Особенности процесса проектирования

Содержание

Слайд 2

Проектирование ПО. Особенности процесса проектирования Предварительное проектирование Предварительное проектирование включает: Структурирование

Проектирование ПО. Особенности процесса проектирования

Предварительное проектирование

Предварительное проектирование включает:
Структурирование системы. Система структурируется

на несколько подсистем, где под подсистемой понимается независимый программный компонент.
Моделирование управления. Определяется модель связей управления между частями системы.
Декомпозиция подсистем на модули. Каждая подсистема разбивается на модули. Определяются типы модулей и межмодульные соединения.
Слайд 3

Проектирование ПО. Особенности процесса проектирования 1. Структурирование системы Модели системного структурирования:

Проектирование ПО. Особенности процесса проектирования

1. Структурирование системы

Модели системного структурирования:
модель клиент-сервер;


модель хранилища данных;
трехуровневая модель;
модель абстрактной машины.
Слайд 4

Проектирование ПО. Особенности процесса проектирования 1.1. Модель клиент-сервер Архитектура библиотечной системы

Проектирование ПО. Особенности процесса проектирования

1.1. Модель клиент-сервер

Архитектура библиотечной системы фильмов и

фотографий

Используется для распределенных систем, где данные распределены по серверам

Слайд 5

Проектирование ПО. Особенности процесса проектирования 1.2. Модель хранилища данных Подсистемы разделяют

Проектирование ПО. Особенности процесса проектирования

1.2. Модель хранилища данных

Подсистемы разделяют данные, находящиеся

в общей памяти. Как правило, данные образуют БД.

Архитектура интегрированного набора CASE-средcтв с общим репозиторием

Слайд 6

Проектирование ПО. Особенности процесса проектирования 1.3. Трехуровневая модель Каждый слой расположен на отдельном компьютере

Проектирование ПО. Особенности процесса проектирования

1.3. Трехуровневая модель

Каждый слой расположен на отдельном

компьютере
Слайд 7

Проектирование ПО. Особенности процесса проектирования 1.4. Модель абстрактной машины Каждый текущий

Проектирование ПО. Особенности процесса проектирования

1.4. Модель абстрактной машины

Каждый текущий слой реализуется

с использованием средств, обеспечиваемых слоем-фундаментом.

Модель абстрактной машины для системы администрирования версий

Слайд 8

Проектирование ПО. Особенности процесса проектирования 2. Моделирование управления

Проектирование ПО. Особенности процесса проектирования

2. Моделирование управления

Слайд 9

Проектирование ПО. Особенности процесса проектирования 2.1.1. Модель вызов-возврат

Проектирование ПО. Особенности процесса проектирования

2.1.1. Модель вызов-возврат

Слайд 10

Проектирование ПО. Особенности процесса проектирования 2.1.2. Модель менеджера Модель диспетчера для системы реального времени

Проектирование ПО. Особенности процесса проектирования

2.1.2. Модель менеджера

Модель диспетчера для системы реального

времени
Слайд 11

Проектирование ПО. Особенности процесса проектирования 2.2.1. Широковещательная модель Каждая подсистема уведомляет

Проектирование ПО. Особенности процесса проектирования

2.2.1. Широковещательная модель

Каждая подсистема уведомляет обработчик о

своём интересе к определённым событиям.
Когда событие происходит, обработчик пересылает события всем подсистемам, которые были на него подписаны.
Слайд 12

Проектирование ПО. Особенности процесса проектирования 2.2.2. Модель, управляемая прерываниями Все прерывания

Проектирование ПО. Особенности процесса проектирования

2.2.2. Модель, управляемая прерываниями

Все прерывания разбиты на

группы — типы, которые образуют вектор прерываний.
Для каждого типа прерывания есть свой обработчик.
Каждый обработчик реагирует на свой тип прерывания и запускает свой процесс.
Прерывание — это принудительная передача управления от выполняемой програм-
мы к системе (а через нее — к соответствующей программе обработки прерывания),
происходящая при возникновении определенного события.
Слайд 13

Проектирование ПО. Особенности процесса проектирования 3. Декомпозиция подсистем на модули Типы

Проектирование ПО. Особенности процесса проектирования

3. Декомпозиция подсистем на модули

Типы моделей модульной

декомпозиции:
модель потока данных (структурный подход);
модель объектов (объектно-ориентированный подход).
Слайд 14

Проектирование ПО. Особенности процесса проектирования Модульность Гленфорд Майерс (Glenford Myers) Модульность

Проектирование ПО. Особенности процесса проектирования

Модульность

Гленфорд Майерс
(Glenford Myers)

Модульность — свойство ПО, обеспечива-ющее

интеллектуальную возможность соз-дания сколь угодно сложной программы

Модульность — свойство системы, которая может подвер-гаться декомпозиции на ряд внутренне связанных и слабо зависящих друг от друга модулей.

Слайд 15

Проектирование ПО. Особенности процесса проектирования Модуль Модуль — фрагмент программного текста,

Проектирование ПО. Особенности процесса проектирования

Модуль

Модуль — фрагмент программного текста, являющийся строительным

блоком для физической структуры системы.
Как правило, модуль состоит из интерфейсной части и части-реализации.

Оптимальный модуль должен удовлетворять двум критериям:
снаружи он проще, чем внутри;
его проще использовать, чем построить.

Слайд 16

Проектирование ПО. Особенности процесса проектирования Информационная закрытость модуля «Содержание модулей должно

Проектирование ПО. Особенности процесса проектирования

Информационная закрытость модуля

«Содержание модулей должно быть скрыто

друг от друга. Модуль должен определяться и проекти-роваться так, чтобы его содержимое (процедуры и данные) было недоступно тем модулям, которые не нуждаются в такой информации».

Дэвид Парнас
(David Parnas)

Достоинства:
обеспечивается возможность разработки модулей различными, независимыми коллективами;
обеспечивается легкая модификация системы (вероятность распространения ошибок очень мала, так как большинство данных и процедур скрыто от других частей системы).

Слайд 17

Проектирование ПО. Особенности процесса проектирования Сложность модуля Объем программного кода (LOC)

Проектирование ПО. Особенности процесса проектирования

Сложность модуля

Объем программного кода (LOC) - определяет

количество строк кода.
Метрики Холстеда. Морис Холстед (Maurice Halstead) предложил (1977) метрики оценки лексической сложности:
1). Оценочная длина программы - N = n1 log2(n1) + n2 log2(n2), N = N1 + N2
где n1, n2 - число различных операторов и различных операндов;
2). Объем программы - V = N log2(n1 + n2),
3). Трудность создания программы – L = (2 n2) / (n1 N2),
где N1, N2 - число всех операторов и операндов.
4). Трудность понимания программы - Ec = V / L.
Цикломатическая сложность. Томас Мак-Кейб (Thomas McCabe) (1976). Это мера сложности логической структуры программы.
V (G) = E – N + 2,
где E – количество дуг, N – количество вершин.
Для объектно-ориентированных систем в качестве метрик, оценивающих сложность и качество ПО, используют: общее количество классов; суммарное количество методов, определённых во всех классах; число методов на класс; высоту дерева наследования; количество подклассов и т.п.
Слайд 18

Проектирование ПО. Особенности процесса проектирования Связность модуля (Cohesion) Связность — внутренняя

Проектирование ПО. Особенности процесса проектирования

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

Связность — внутренняя характеристика

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

1. Связность по совпадению (СС=0). В модуле отсутствуют явно выраженные внутренние связи.
2. Логическая связность (СС=1). Части модуля объединены по принципу функционального подобия. Например, модуль состоит из разных подпрограмм обработки ошибок.
3. Временная связность (СС=3). Части модуля не связаны, но необходимы в один и тот же период работы системы.
4. Процедурная связность (СС=5). Части модуля связаны порядком выполняемых ими действий, реализующих некоторый сценарий поведения.
5. Коммуникативная связность (СС=7). Части модуля связаны по данным (работают с одной и той же структурой данных).
6. Информационная (последовательная) связность (СС=9). Выходные данные одной части используются как входные данные в другой части модуля.
7. Функциональная связность (СС=10). Части модуля вместе реализуют одну функцию.
8. Объектная связность. Максимальная связность.