
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Основы проектирования программных систем
- •Основы проектирования программных систем Цели изучения и рассматриваемые вопросы
- •Основы проектирования программных систем Вспомним
- •Основы проектирования программных систем Особенности процесса синтеза ПС
- •Основы проектирования программных систем
- •Понятие архитектуры программного средства Этап архитектурного проектирование
- •Этап архитектурного проектирование Понятие архитектуры программного средства
- •Этап архитектурного проектирование Результат архитектурного проектирования
- •Этап архитектурного проектирование Процессы архитектурного проектирования
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Этап архитектурного проектирование Структурирование системы
- •Этап архитектурного проектирование Структурирование системы
- •Структурирование системы Модель хранилища данных
- •Структурирование системы Модель хранилища данных
- •Структурирование системы Модель хранилища данных
- •Структурирование системы Модель клиент-сервер
- •Структурирование системы Модель абстрактной машины
- •Структурирование системы Модель абстрактной машины
- •Структурирование системы Модель абстрактной машины
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Этап архитектурного проектирование Моделирование управления
- •Моделирование управления Централизованное управление
- •Моделирование управления Централизованное управление - ВЫЗОВ-ВОЗВРАТ
- •Моделирование управления Централизованное управление - ДИСПЕТЧЕР
- •Моделирование управления Централизованное управление
- •Моделирование управления Событийное управление
- •Моделирование управления Событийное управление - ПЕРЕДАЧА СООБЩЕНИЙ
- •Моделирование управления Событийное управление - ПЕРЕДАЧА СООБЩЕНИЙ
- •Моделирование управления Событийное управление - ПРЕРЫВАНИЯ
- •Моделирование управления Событийное управление - ПРЕРЫВАНИЯ
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Этап архитектурного проектирование Модульная декомпозиция
- •Модульная декомпозиция Программный модуль
- •Модульная декомпозиция Модели
- •Модульная декомпозиция Характеристики программного модуля
- •Характеристики программного модуля Размер модуля
- •Характеристики программного модуля
- •Характеристики программного модуля
- •Характеристики программного модуля Связность (прочность)
- •Характеристики программного модуля Связность (прочность)
- •Характеристики программного модуля Связность (прочность)
- •Характеристики программного модуля Сцепление
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Основы проектирования программных систем
- •Методы проектирования Метод восходящей разработки
- •Методы проектирования Метод нисходящей разработки
- •Методы проектирования
- •Методы проектирования Разработка программного модуля
- •Разработка программного модуля Структурное программирование
- •Разработка программного модуля Пошаговая детализация
- •Разработка программного модуля Пошаговая детализация
- •Методы проектирования

Методы проектирования Разработка программного модуля
Порядок разработки программного модуля.
изучение и проверка спецификации модуля, выбор языка программирования;
выбор алгоритма и структуры данных;
программирование (кодирование) модуля;
шлифовка текста модуля;
проверка модуля;
компиляция модуля.
© 2005, В.В.Хашковский, Д.П.Калачев. |
51 |

Разработка программного модуля Структурное программирование
Структурное программирование – это:
построение программы как композиции нескольких типов управляющих конструкций, которые позволяют сильно повысить понимаемость логики работы программы
построение программы с использованием конструкций следования,
разветвления и повторения
В рамках структурного программирования для представления стандартных структур используются следующие представления: диаграммы Насси- Шнейдера, блок-схемы, псевдокод.
При программировании модуля следует иметь в виду, что программа должна быть понятной не только компьютеру, но и человеку: и разработчик модуля, и лица, проверяющие модуль, и тестовики, готовящие тесты для отладки модуля, и сопроводители ПС, осуществляющие требуемые изменения модуля, вынуждены будут многократно разбирать логику работы модуля. В современных языках про-граммирования достаточно средств, чтобы запутать эту логику сколь угодно сильно, тем самым, сде-лать модуль трудно понимаемым для человека и, как следствие этого, сделать его ненадежным или трудно сопровождаемым. Поэтому необходимо принимать меры для выбора подходящих языковых средств и следовать определенной дисциплине программирования. В связи с этим Дейкстра и предложил строить программу как композицию из нескольких типов управляющих конструкций (структур), которые позволяют сильно повысить понимаемость логики работы программы. Программирование с использованием только таких конструкций назвали структурным.
© 2005, В.В.Хашковский, Д.П.Калачев. |
52 |

Разработка программного модуля Пошаговая детализация
В качестве основного метода построения текста модуля современная технология
программирования рекомендует пошаговую детализацию. Сущность этого метода заключается в разбиении процесса разработки текста модуля на ряд шагов и описании общей схемы работы модуля в линейной текстовой форме с последующим уточнением и детализацией понятий.
1.На первом шаге описывается общая схема работы модуля в
обозримой линейной текстовой форме (т.е. с использованием очень крупных понятий), причем это описание не является полностью формализованным и ориентировано на восприятие его человеком.
2.На каждом следующем шаге производится уточнение и детализация одного из понятий (будем называть его уточняемым), в каком либо описании, разработанном на одном из предыдущих шагов.
3.Этот процесс завершается, когда все уточняемые понятия будут уточнения (т.е. в конечном счете будут выражены на базовом языке программирования).
© 2005, В.В.Хашковский, Д.П.Калачев. |
53 |

Разработка программного модуля Пошаговая детализация
Пошаговая детализация связана с использованием частично формализованного
языка для представления указанных описаний, который получил название псевдокода. Этот язык позволяет использовать все конструкции структурного
программирования, которые оформляются формализовано, вместе с неформальными фрагментами на естественном языке для представления обобщенных операторов и условий. В качестве обобщенных операторов и условий могут задаваться и соответствующие фрагменты на базовом языке программирования.
Псевдокод представляет собой:
частично формализованный язык для представления описаний метода пошаговой детализации
язык, использующий конструкции структурного программирования
язык с неформальными фрагментами на естественном языке для представления обобщенных операторов и условий
© 2005, В.В.Хашковский, Д.П.Калачев. |
54 |

..
… остатки …
:
.
© 2005, В.В.Хашковский, Д.П.Калачев. |
55 |

Методы проектирования
… остатки …
Два основных типа моделей модульной декомпозиции:
Модель потоков данных – основа - разбиение на функции.
Модель объектов – основана на слабо сцепленных сущностях, имеющих ….
При использовании методов разработки данных для демонстрации связи между отдельными компонентами системы используют схемы: граф-диаграммы, функциональные схемы, диаграммы Варнье-Орра.
Метод иерархического проектирования модулей (методика Джексона) предполагает построение структуры программы на основании структур данных и служит для проектирования использует конструкции последовательности действий, выбора и повторения.
Метод функциональной декомпозиции основан на следующих стратегиях: Пошаговое уточнение и анализ сообщений и Определение потоков данных и процессов.
Метод функциональной декомпозиции и метод нисходящего проектирования в
качестве Базовый шаг метода - на начальном этапе которого формируется предложение, описывающее все функции программы, затем определяются ее подфункции. Эта процедура является рекурсивной и выполняется до тех пор, пока составные части не будут установлены.
© 2005, В.В.Хашковский, Д.П.Калачев. |
56 |