259
моноширинный шрифт Courier New 10, один интервал, выравнивание по
левому краю.
А.2 Описание архитектуры
После того, как вычислительную технику захлестнул так называемый
"кризис сложности", начались попытки систематизации и структурирования
процессов проектирования. Кризис сложности проявлялся как сильный рост
количества ошибок при увеличении размера проекта. Этот рост количества
ошибок был нелинейным, и после определенного этапа количество ошибок
становилось настолько большим, что ставило под вопрос завершение проекта.
Постепенно стало понятно, что блок-схема алгоритма, применявшаяся для
описания сравнительно сложных программ, уже не дает никакого эффекта в
крупных проектах. В работах Дейкстры и Вирта, а далее в работах Йордона,
Росса и др., появилось предложение описывать программные системы в виде
совокупности структурных и поведенческих составляющих. Появились
технологии проектирования, объединенные общим
подходом к
проектированию системы. Система разрабатывалась на основе декомпозиции
(разделения) общих сущностей на более частные. Была предложена так
называемая абстракция, т.е. выделение существенных для проектировщика
деталей проекта и сокрытие второстепенных.
Технологии проектирования, возникшие в этот период, были названы
структурными. В области программного обеспечения этот подход к
проектированию вылился в
разделение программ на процедуры и структуры
данных. Программирование разделилось на несколько этапов. Добавилось так
называемое архитектурное проектирование. Вирт в своих работах писал о
сильном семантическом (смысловом) разрыве между языком
программирования и прикладной задачей. Первым шагом к архитектурному
проектированию было предложение описывать программы в виде обычного
текста, на обычном, человеческом языке.
Позже такие описания стали называть
структурным английским (русским и т.д.) или вербальными (речевыми).
Недостатком вербального описания программного обеспечения является
низкая степень формализации, т.е. практическая невозможность
математического доказательства правильности тех или иных утверждений,
выраженных таким способом.
Росс, Йордон и другие ученые предложили ряд способов изображения
архитектуры программного обеспечения. В
основном, для описания
программного обеспечения использовались поведенческие схемы,
рассматривающие такие категории, как «данные», «процесс», «передача
управления», «хранилище данных» (DFD, CFD, SADT). Для описания баз
данных было придумано структурное описание на основе зависимостей
различных сущностей друг от друга (например, диаграмма сущность-связь).
Ранние методики проектирования не учитывали такого фактора, как время.