
Лекция ¹ 8
Синтаксис SDL
<a combined grafh madel>::=<statemets>
<statemets>::=<statemet>|<statemet>.<statemets>
<statemet>::= <data grafh>|
<control grafh>|
<name of a grafh pair>|
<other information>
<name of a grafh pair>::=
<domain>==><module>==><range>
<data grafh>::=<domain>=><module>=><range>
<domain>::=<element>|[<element>,<element list>]
<range>::=<element>|[<element>,<element list>]
<element list>::=<element>|<element list>
<control grafh>::=<control exp>|<test desc>
<test desc>::= while<con>do<subgrafh>|
while<con>|
if<cond>then<subgrafh>|
if<cond>then<subgrafh>
else<subgrafh>|
switch<cond>cases default<subgrafh>|
switch<cond>cases
<subgrafh>::=<control exp>|<<word>:<control exp>
<control exp>::=*<control exp>|
—><control exp>|
(<control exp>)|<module>
<cond>::=<cond>| —<cond>
Лекция № 9
Проектирование.
Это второй формализуемый этап. Целью этого этапа является получение алгоритма и базисная структура. На стадии проектирования разрабатываются алгоритмы заданной спецификации, и формируется общая структура информационных систем.
Систему необходимо разбить на небольшие части таким образом, чтобы ответственность за реализацию каждой такой части можно было возложить либо на одного разработчика, либо на группу исполнителей. При этом для каждого определенного таким образом модуля системы должны быть сформулированы предъявляемые к нему требования:
Реализуемые функции,
Размеры,
Время выполнения
и т.д.
В процессе проектирования системы по мере выполнения спецификации на отдельные подмодули, последние представляют в виде древовидной схемы, показывающей вложение элементов системы (стратификации системы). Такая схема называется базисной, и она неадекватна спецификации системы.
Пример: базисная схема для случая обработки типичного компилятора.
управляющая программа
синтаксический генератор
анализатор кода
блок сканирования подпрограммы вывод на печать
таблицы
символов
чтение
Смысл базисной схемы заключается в разбиении проекта так, чтобы его можно было наиболее эффективно предложить различным исполнителям. Если проект подразумевает
исполнение не одним человеком в течение короткого заданного времени, то необходимо минимизировать интерфейсы между исполнителями различных подсистем.
Требования










Проект базы данных
Внешний проект модуля
Проект архитектуры программы
Проект логики модуля
Архитектура системы
Детальный внешний проект
Спецификация
Предварительный внешний проект
Рис.8 Модель процессов проектирования типичной программной системы
Эта модель не зависит от методологии. Все указанные в ней действия должны выполняться в той или форме во всякой разработке независимо оттого, какой язык программирования был принят, использовалось ли структурное программирование или объектно-ориентированное.
На этапе выполнения внешнего проекта высокого уровня определяется взаимодействие с пользователем, но не рассматриваются многие его детали, например, такие, как форматы ввода-вывода. Исходный внешний проект переводят к двум параллельным процессам. В процессе детального внешнего проектирования завершается определение взаимодействия с пользователем, описываются его мельчайшие подробности. В процессе разработки архитектуры системы выполняется ее разложение на множество программ, подсистем или компонент и определяются сопряжения между ними. Эти два шага ведут к процессу проектирования структурной программы, в котором проектируются модули, их сопряжения и взаимосвязи для каждой программы, компоненты или подсистемы. Следующий процесс – внешнее проектирование модуля. Это точное определение всех сопряжений модуля. Последний шаг – проектирование логики модуля – состоит в разработке внутренней логики каждого модуля; он включает также выражение этой логики текстом конкретной программы. Проектирование базы данных – процесс определения всех внешних для программной системы структур данных, например, записи в файле ли в базе данных.
На рис.8 иллюстрируются основные зависимости между процессами проектирования, но он не служит планом работы над каким-нибудь конкретным проектом. Возможны перекрытия между разными процессами, но не должно быть перекрытия между несмежными процессами.