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

57
Проектирование и программирование модулей Тема 8

Upload: hadassah-duke

Post on 03-Jan-2016

85 views

Category:

Documents


4 download

DESCRIPTION

Проектирование и программирование модулей. Тема 8. Этап выработки требований. Модель анализа Информационная Функциональная Поведенческая. Этап проектирования. Разработка данных. Процедурная разработка. Разработка архитектуры. Этап кодирования. Программные модули. Этап тестирования. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Проектирование и программирование модулей

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

Тема 8

Page 2: Проектирование и программирование модулей

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

Модель анализа•Информационная•Функциональная•Поведенческая

Этап проектирования

Этап кодирования

Этап тестирования

Процедурная разработка

Разработка архитектуры

Разработка данных

Программные модули

Проверенное ПС

Page 3: Проектирование и программирование модулей

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

Проектирование – итерационный процесс, при помощи которого требования к ПС преобразуются в инженерные представления ПС

Page 4: Проектирование и программирование модулей

Этап проектирования

Разработка данных – это результат преобразования информационной модели анализа в структуры данных, которые потребуются для реализации ПСРазработка архитектуры выделяет основные структурные компоненты и фиксирует связь между ними.Процедурная разработка описывает последовательность действий в структурных компонентах, то есть определяет их содержание

Page 5: Проектирование и программирование модулей

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

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

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

Интерфейсное проектирование

ТребованияАрхитектура программ и

данных

Структуры данных и алгоритмы программ

Page 6: Проектирование и программирование модулей

Архитектура

программного обеспечения – это совокупность базовых концепций (принципов) его построения

программного средства – это его строение, как оно видно извне его, т.е. представление ПС как системы, состоящей из некоторой совокупности взаимодействующих подсистем.

Page 7: Проектирование и программирование модулей

По количеству пользователей различают

Многопользовательскую архитектуруОднопользовательскую архитектуру Программы Пакеты программ Программные комплексы Программные системы

Page 8: Проектирование и программирование модулей

Структуры данных

Это множество элементов данных и связей между ними

Page 9: Проектирование и программирование модулей

Классификация структур данных

Структуры данных

ПростыеБазовые

Статические ФайловыеДина-мические

Полустатические

ЧисловыеСимвольныеЛогическиеПеречислениеИнтервалУказатели

ВекторМассивыМножестваЗаписиТаблицы

СтекиОчередиДекиСтроки

Линейные или разветвленные связанные спискиГрафыДеревья

ПоследовательныеПрямого доступа

Комбинированногодоступа

Организованные разделами

Page 10: Проектирование и программирование модулей

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

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

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

Декомпозиция подсистем на

модули

Page 11: Проектирование и программирование модулей

Модульность

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

Page 12: Проектирование и программирование модулей

Признаки модуля

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

Page 13: Проектирование и программирование модулей

Критерии оценки

Хороший модуль снаружи проще, чем внутриХороший модуль проще использовать, чем построить

Page 14: Проектирование и программирование модулей

Принцип информационной закрытости

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

Клиенты

Интерфейс

«Секрет»

АлгоритмСтруктура данныхРеализация интерфейсаРазмещение ресурса

Page 15: Проектирование и программирование модулей

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

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

Page 16: Проектирование и программирование модулей

Достоинства информационной закрытости

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

Page 17: Проектирование и программирование модулей

Связность модуля – это мера зависимости его частей

Чем выше связность модуля, тем

лучше результат проектирования

Для измерения связности

используют понятие силы

связности (СС).

Существует 7 типов связности

Page 18: Проектирование и программирование модулей

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

Связность по совпадению (СС=0). В модуле отсутствуют явно выраженные внутренние связи.Логическая связность (СС=1). Части модуля объединены по принципу функционального подобияВременная связность (СС=3). Части модуля не связаны, но необходимы в один и тот же момент времени.

Page 19: Проектирование и программирование модулей

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

Процедурная связность (СС=5). Части модуля связаны порядком выполняемых действий, реализующих сценарий поведения.Коммуникативная связность (СС=7). Части модуля связаны по данным (работают с одной и той же структурой данных)

Page 20: Проектирование и программирование модулей

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

Информационная (последовательная) связность (СС=9). Выходные данные одной части модуля используются как входные данные другой части модуля.Функциональная связность (СС= 10). Части модуля вместе реализуют одну функцию.

Page 21: Проектирование и программирование модулей

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

Вид связности Сопровождаемость

Роль модуля

Функциональная Лучшая сопровождаемость

«Черный ящик»

Информационная

Не совсем «черный ящик»

Коммуникативная

«Серый ящик»

Процедурная Худшая сопровождаемость

«Просвечивающий ящик»

Временная «Белый ящик»

Логическая

По совпадению

Page 22: Проектирование и программирование модулей

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

мера взаимозависимости

модулей по данным

внешняя характеристика

модуля, которую желательно

уменьшать

Page 23: Проектирование и программирование модулей

Виды сцепления

Сцепление по данным (СЦ=1). Один модуль вызывает другой. Входные и выходные параметры вызываемого модуля – простые элементы данных.

А

В

Элементы данных

Page 24: Проектирование и программирование модулей

Виды сцепления

Сцепление по образцу (СЦ=3). Один модуль вызывает другой. В качестве параметров используются структуры данных.А

В

Структуры данных

Page 25: Проектирование и программирование модулей

Виды сцепления

Сцепление по управлению (СЦ=4). Один модуль управляет функционирование другого (с помощью флагов или переключателей), посылая ему управляющие данные.

начало

Флаг

конец

А

В

Флаг

Page 26: Проектирование и программирование модулей

Виды сцепления

Сцепление по внешним ссылкам (СЦ=5). Модули ссылаются на один и тот же глобальный элемент данных.

В С

А N

M

Элемент данных

Page 27: Проектирование и программирование модулей

Виды сцепления

Сцепление по общей области (СЦ=7). Модули разделяют одну и ту же глобальную структуру данных.

В С

А N

M

Структура данных

Page 28: Проектирование и программирование модулей

Виды сцепления

Сцепление по кодам (СЦ=10). Команды перемежаются друг с другомНезависимое сцепление (СЦ=0). Модули не вызывают друг друга и не работают с общими данными.

Page 29: Проектирование и программирование модулей

Классификация методов разработки структуры программ

Методы разработки структуры программ

Нисходящие Восходящие

Классический подход

Нисходящая разработка

Нисходящая реализация

Классический подход

Восходящая разработка

Восходящаяреализация

Архитектурный подход

Конструктивный подход

разработка

реализация

разработка

реализация

целенаправленная

Page 30: Проектирование и программирование модулей

Структурная схема

это схема, отражающая состав и взаимодействие по управлению частей разрабатываемого ПОопределяется архитектурой разрабатываемого ПО

Page 31: Проектирование и программирование модулей

Компоненты структурной схемы

ПрограммыПодсистемыБазы данныхБиблиотеки ресурсов

Б л о к р е ш е н ия Б л о к в ы в од а р езул ьта таа

Д и спе тч ер

Page 32: Проектирование и программирование модулей

Структурная схема

Решение задачи

Ввод и накопление данных Поиск

данных

Оформление сделки

Формирование отчетных

документов

База данных

Ввод данных

Редактирование данных

Page 33: Проектирование и программирование модулей

Структурная схема

Page 34: Проектирование и программирование модулей

Структурная схема

Page 35: Проектирование и программирование модулей

Спецификации процессов

ПсевдокодБлок-схема алгоритмаFlow - форма Диаграмма Насси-ШнейдерманаКраткое текстовое описание

Page 36: Проектирование и программирование модулей

ПсевдокодСтруктура Псевдокод Структур

аПсевдокод

Следование

<Действие 1>< Действие 2>

Выбор Выбор <код>< код 1>:< Действие 1 >< код 2>:< Действие 2 >…Все-выбор

Ветвление Если <Условие>то < Действие 1 >иначе < Действие 2 >Все-если

Цикл с заданным количеств-ом повторе- ний

Для <индекс>= <n>,<k>,<h>,< Действие>Все-цикл

Цикл-пока Цикл-пока< Условие >< Действие 1 >Все цикл

Цикл-до Выполнять< Действие>До < Условие >

Page 37: Проектирование и программирование модулей

ПсевдокодПроцесс: Проверка и внесение данных о

клиентеВход: Информация о клиенте по его

звонкуВыход: Формирование данных о клиенте в

БДАлгоритм:1. Проверить в накопителе наличие данных

о клиенте2 . Если данные отсутствуют ТО внести новую запись о клиенте в БД3. Вывести данные о клиенте на экран

Page 38: Проектирование и программирование модулей

ПсевдокодПроцесс: Формирование заказаВход: Проект заказа, Данные о клиенте, Данные о продуктахВыход: ЗаказАлгоритм:1.        Рассмотрение списка продукции2.        Рассмотрение других заказов3.        Внести данные в проект заказа4.        Произвести расчет услуг по заказу5.        Представить проект заказа клиенту6.        ЕСЛИ клиент не удовлетворен сформированным заказом ТО6.1.      Произвести его корректировку6.2.      Вернуться к пункту 4

Page 39: Проектирование и программирование модулей

Схемы алгоритмов (ГОСТ 19.702-90)

Название Обозначение

Назначение

Терминатор Действие

Начало, завершение программы или подпрограммы

Процесс Действие

Обработка данных

Данные Данные

Операции ввода-вывода

Решение Условие

Ветвление, выбор, поисковые и итерационные процессы

Подготовка Подготовка

Счетные циклы

Page 40: Проектирование и программирование модулей

Схемы алгоритмовНазвание Обозначение Назначение

Граница цикла

Любые циклы

Предопределенный процесс

ИмяВыбор процедуры

Соединитель Имя

Маркировка разрыва линий

Комментарий Комментарий

Пояснение к операциям

Page 41: Проектирование и программирование модулей

Flow - формаСледование

<Действие 1>

<Действие 2>

<Действие 3>

Page 42: Проектирование и программирование модулей

Flow - формаВетвление

Если <Условие>

то <Действие 1>

иначе

<Действие 2>

Page 43: Проектирование и программирование модулей

Диаграмма Насси-Шнейдермана Ветвление

Да Нет<Действие 1> <Действие 2>

Page 44: Проектирование и программирование модулей

Flow - формаЦикл - до

Пока <Условие>

<Действие >

Page 45: Проектирование и программирование модулей

Функциональная схема (технологическая)

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

Page 46: Проектирование и программирование модулей

Функциональная схема (ГОСТ 19.702-90)

Название Обозначение НазначениеСохранение данных

Для структур данных, которые должны быть сохранены без уточнения типа устройств

ОЗУ

Для обозначения структур данных, хранящихся в ОП

ЗУ с прямым доступом

Для обозначения структур данных, хранящихся на магнитных дисках

Документ Для обозначения структур данных, выводимых на печать

Ручной ввод

Для обозначения ручного ввода данных с клавиатуры

Дисплей Для обозначения данных, выводимых на дисплей компьютера

Ручная операция

Для обозначения любого процесса, выполняемого человеком

Page 47: Проектирование и программирование модулей
Page 48: Проектирование и программирование модулей
Page 49: Проектирование и программирование модулей
Page 50: Проектирование и программирование модулей
Page 51: Проектирование и программирование модулей
Page 52: Проектирование и программирование модулей
Page 53: Проектирование и программирование модулей
Page 54: Проектирование и программирование модулей
Page 55: Проектирование и программирование модулей
Page 56: Проектирование и программирование модулей
Page 57: Проектирование и программирование модулей