ЛЕКЦИЯ 7
Тема 1.5 Структурные методы анализа и проектирования
Структурный системный анализ.
Нисходящее проектирование.
Структурное проектирование, управляемое потоками данных.
Методы проектирования, управляемые структурами данных.
Структурный системный анализ
Структурный системный анализ – анализ программных систем, основанный на принципах и идеях структурной методологии.
Цель анализа – создать структурные спецификации, определяющие модель системы. В процессе анализа выявляются требования пользователя и определяются свойства, которыми должен обладать программный продукт, чтобы отвечать этим требованиям. Определяются системные ограничения и требования к характеристикам продукта.
Результат анализа – создание функциональных спецификаций продукта.
Информация о программной системе (системная спецификация), полученная в результате анализа, должна включать описания:
- выходных отчетов;
- структур данных и базы данных;
- внешних файлов и внутренних массивов;
- функциональных компонент с разной степенью детализации и связей между ними.
Важнейшие требования к структурному системному анализу – понятность спецификаций для пользователя и разработчика на всех уровнях детализации.
Нисходящее проектирование
Нисходящее проектирование – неформальная стратегия при разбиении крупной проблемы на подпроблемы меньшего размера. Это пошаговый процесс, начинающийся с общей функции системы, которая разделяется на подфункции; процесс повторяется до тех пор, пока все подфункции не станут достаточно простыми, чтобы их можно было представить на языке программирования.
Нисходящее проектирование применимо к проектированию систем, программ, отдельного модуля, а также к проектированию структур данных.
Цель нисходящего проектирования:
- систематизировать процесс проектирования;
- создать модульный проект программы;
- дать структуру для эффективного решения проблемы.
Основополагающие принципы для успешного применения метода:
1. для каждого модуля (на любом уровне иерархии) должны быть определены: функция, его входы и выходы.
2. Функция каждого модуля должна расшифровываться не более чем на одном листе инструкции (или на экране дисплея). Описание функции модуля верхнего уровня, т.е. всего проекта, не может превышать десяти строк кода или вызовов модулей следующего уровня.
3. Для описания интерфейсов между модулями данным необходимо уделять внимание, также как и процедурам обработки.
Проект программного изделия, полученный в результате нисходящего проектирования, документируется в графической форме, построенной с использованием структурных средств (структурных схем, схем действий и т.п.). Схема сопровождается описанием модулей в повествовательной форме на естественном языке.
Структурное проектирование, управляемое потоками данных
Структурное проектирование – состоит в детализации метода нисходящего проектирования.
Процесс декомпозиции в структурном проектировании основан на потоках данных в системе.
Результат проектирования – структурная схема, содержащая иерархически расположенные процедурные компоненты программы (системы) и данные, содержащие эти компоненты.
Процесс проектирования включает:
Шаг 1. Представление схемы потоков данных.
Шаг 2. Изображение структурной схемы проекта.
Шаг 3. Оценка проекта.
Шаг 4. Подготовка проекта для реализации.
Методы проектирования, управляемые структурами данных
Два метода проектирования, управляемые структурами данных:
- методология Джексона,
- методология Варнье-Орра.
Оба метода работают с иерархическими структурами данных, структура программы выводится из структуры данных.
Методология Джексона. Рассматривается проектируемая программа как процесс обработки последовательного потока записей (предполагается существование на входе и выходе последовательных файлов, структура записей которых определяет структуру программы).
Методология Варнье-Орра предполагает выводить структуру программы и структуру входных данных, исходя из структуры выходных данных.