Проектирование программных систем

Содержание

Слайд 2

Цели

Содержание этапа проектирования и его место в жизненном цикле конструирования программных систем

Цели Содержание этапа проектирования и его место в жизненном цикле конструирования программных

Обзор архитектурных моделей ПО
Классические проектные характеристики: модульность, информационная закрытость, сложность, связность, сцепление

Слайд 3

Особенности процесса
синтеза программных систем

Особенности процесса синтеза программных систем

Слайд 4

Синтез программных систем

Технологический цикл конструирования ПО включает: анализ, синтез и сопровождение.
В ходе

Синтез программных систем Технологический цикл конструирования ПО включает: анализ, синтез и сопровождение.
анализа ищется ответ на вопрос: «Что должна делать будущая система?». Именно на этой стадии закладывается фундамент успеха всего проекта. Известно множество неудачных реализаций из-за неполноты и неточностей в определении требований к системе.
В процессе синтеза формируется ответ на вопрос: «Каким образом система будет реализовывать предъявляемые к ней требования?». Выделяют три этапа синтеза: проектирование ПС, кодирование ПС, тестирование ПС

Слайд 5

Информационные потоки процесса синтеза ПС

Информационные потоки процесса синтеза ПС

Слайд 6

Проектирование

Следует отметить, что решения, принимаемые в ходе проектирования, делают его стержневым этапом

Проектирование Следует отметить, что решения, принимаемые в ходе проектирования, делают его стержневым
процесса синтеза. Важность проектирования можно определить одним словом — качество.
Проектирование — этап, на котором «выращивается» качество разработки ПС. Справедлива следующая аксиома разработки: может быть плохая ПС при хорошем проектировании, но не может быть хорошей ПС при плохом проектировании. Проектирование обеспечивает нас такими представлениями ПС, качество которых можно оценить. Проектирование — единственный путь, обеспечивающий правильную трансляцию требований заказчика в конечный программный продукт

Слайд 7

Схема информационных связей процесса проектирования

Схема информационных связей процесса проектирования

Слайд 8

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

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

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

Слайд 9

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

В модели хранилища данных подсистемы разделяют данные, находящиеся в общей

Модель хранилища данных В модели хранилища данных подсистемы разделяют данные, находящиеся в
памяти. Как правило, данные образуют БД. Предусматривается система управления этой базой.

Слайд 10

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

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

Модель клиент-сервер Модель клиент-сервер используется для распределенных систем, где данные распределены по
Для передачи данных применяют сетевой протокол, например TCP/IP.

Слайд 11

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

Трехуровневая модель является развитием модели клиент-сервер.

Трехуровневая модель Трехуровневая модель является развитием модели клиент-сервер.

Слайд 12

Трехуровневая модель (2)

Уровень графического интерфейса пользователя запускается на машине клиента. Бизнес-логику образуют

Трехуровневая модель (2) Уровень графического интерфейса пользователя запускается на машине клиента. Бизнес-логику
модули, осуществляющие функциональные обязанности системы.
Этот уровень запускается на сервере приложения.
Реляционная СУБД хранит данные, требуемые уровню бизнес-логики. Этот уровень запускается на втором сервере — сервере базы данных.
Преимущества трехуровневой модели:
упрощается такая модификация уровня, которая не влияет на другие уровни;
отделение прикладных функций от функций управления БД упрощает оптимизацию всей системы.

Слайд 13

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

Модель абстрактной машины отображает многослойную систему.
Каждый текущий слой реализуется с

Модель абстрактной машины Модель абстрактной машины отображает многослойную систему. Каждый текущий слой
использованием средств, обеспечиваемых слоем-фундаментом.

Слайд 14

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

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

Слайд 15

Типы моделей управления

Известны два типа моделей управления:
модель централизованного управления;
модель событийного

Типы моделей управления Известны два типа моделей управления: модель централизованного управления; модель событийного управления.
управления.

Слайд 16

Модель централизованного управления

В модели централизованного управления одна подсистема выделяется как системный контроллер.

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

Слайд 17

Модель событийного управления

В модели событийного управления системой управляют внешние события. Используются две

Модель событийного управления В модели событийного управления системой управляют внешние события. Используются
разновидности модели событийного управления:
широковещательная модель:
модель, управляемая прерываниями.

Слайд 18

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

В широковещательной модели каждая подсистема уведомляет обработчика о своем интересе к

Широковещательная модель В широковещательной модели каждая подсистема уведомляет обработчика о своем интересе
конкретным событиям. Когда событие происходит, обработчик пересылает его подсистеме, которая может обработать это событие. Функции управления в обработчик не встраиваются.

Слайд 19

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

В модели, управляемой прерываниями все прерывания разбиты на группы —

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

Слайд 20

Модульность

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

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

Слайд 21

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

Связность модуля (Cohesion) — это мера зависимости его частей .

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

Слайд 22

Характеристика связности модуля

 

Характеристика связности модуля

Слайд 23

Функциональная связность

Функционально связный модуль содержит элементы, участвующие в выполнении одной и только

Функциональная связность Функционально связный модуль содержит элементы, участвующие в выполнении одной и
одной проблемной задачи. Примеры функционально связных модулей:
Вычислять синус угла;
Проверять орфографию;
Читать запись файла;
Вычислять координаты цели;
Вычислять зарплату сотрудника;
Определять место пассажира.
Каждый из этих модулей имеет единичное назначение.
Когда клиент вызывает модуль, выполняется только одна работа, без привлечения внешних обработчиков.  

Слайд 24

Информационная связность

При информационной (последовательной) связности элементы-обработчики модуля образуют конвейер для обработки данных

Информационная связность При информационной (последовательной) связности элементы-обработчики модуля образуют конвейер для обработки
— результаты одного обработчика используются как исходные данные для следующего обработчика. Приведем пример:
Модуль Прием и проверка записи
прочитать запись из файла
проверить контрольные данные в записи
удалить контрольные поля в записи
вернуть обработанную запись
Конец модуля
В этом модуле 3 элемента. Результаты первого элемента (прочитать запись из файла) используются как входные данные для второго элемента (проверить контрольные данные в записи) и т. д.

Слайд 25

Сцепление модулей

Сцепление (Coupling) — мера взаимозависимости модулей по данным. Сцепление — внешняя

Сцепление модулей Сцепление (Coupling) — мера взаимозависимости модулей по данным. Сцепление —
характеристика модуля, которую желательно уменьшать.
Количественно сцепление измеряется степенью сцепления (СЦ). Выделяют 6 типов сцепления.
1.Сцепление по данным (СЦ=1). Модуль А вызывает модуль В.
Все входные и выходные параметры вызываемого модуля — простые элементы данных. 
2.Сцепление по образцу (СЦ=3). В качестве параметров используются структуры данных.

Слайд 26

Сцепление модулей (прод.)

3.Сцепление по управлению (СЦ=4). Модуль А явно управляет функционированием модуля

Сцепление модулей (прод.) 3.Сцепление по управлению (СЦ=4). Модуль А явно управляет функционированием
В (с помощью флагов или переключателей), посылая ему управляющие данные.
Имя файла: Проектирование-программных-систем.pptx
Количество просмотров: 42
Количество скачиваний: 0