Средства автоматизации проектирования ПО. Часть 2.

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

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

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

На этапе проектирования ПО подробно разрабатывается внутренняя структура каждого модуля, правила и процедуры их взаимной связи, порядок и приоритетность выполнения; определяются информационные и управляющие связи, структуры данных, размещение модулей и данных в постоянной и оперативной памяти. На этом этапе алгоритмы решения могут быть представлены на неформальном блочно-структурном языке, допускающем отображение производимых действий на естественный язык и в то же время позволяющем сравнительно легко осуществлять кодирование программ отдельных модулей на выбранном языке программирования (машинно-ориентированный язык типа автокода, Ассемблер или некоторый проблемный язык).

Этап кодирования не занимает вопреки довольно распространенному мнению большой объем в распределении трудозатрат по жизненному циклу, которые зависят в общем случае от уровня применяемого языка программирования (чем выше уровень языка, тем меньше трудозатраты). На этом этапе осуществляется также комплексирование программ, т. е. объединение модулей, сопровождаемое редактированием их внутренних и внешних связей.