Лабораторная работа: Методология преобразования произвольной программы в структурированную
Под работой будем понимать затраты, которые связаны с проектированием, кодированием и тестированием одного модуля.
Разработку модулей можно спланировать, используя один из следующих подходов: иерархический, операционный или комбинированный
Диаграмма работ при изготовлении модулей комплекса Диспетчер, например, по иерархическому способу "снизу-вверх" будет иметь следующий вид:
2.1
3.1 2.3 1.1
Рисунок 2.2 - Диаграмма восходящего проектирования программы
Исходные данные для сетевого планирования готовятся опытными программистами, которые должны на основе опыта, статистических данных и экспертных оценок точно или приближенно оценить длительность каждой k-ой работы (Tk -затраты на проектирование, кодирование и тестирование модуля, дни), интенсивность разработки модуля (Qk ,человек/день), средства на выполнение работ (Ck , крб.) и т.д.
По этим исходным данным составляется сетевой график, придерживаясь следующего порядка действий:
- проводится упорядочение (ранжирование) работ;
- cортируются работы по убыванию веса работ;
- для каждой работы находится множество непосредственно предшествующих работ ;
- для каждой работы находится множество непосредственно следующих работ ;
- определяется наиболее ранний срок окончания каждой работы
;
- определяется время завершения всего комплекса работ ;
- определяется поздний срок окончания каждой работы
, где ;
- вычисляются резервы времени для каждой работы ;
- вычисляются ранние начала каждой работы .
Результаты расчета сетевого графика проектирования программы Диспетчер по рассмотренной методике приведены в табл.1.
Поскольку все работы на рисунке 2.3 начинаются в наиболее ранние возможные сроки, то распределение ресурсов по дням получается очень неравномерным (в первый день работает 5 человек, тогда как в последующие дни требуется всего 1 человек). Распределение ресурсов можно сделать более равномерным, если сместить начало некоторых работ, имеющих резервы времени, на более поздний срок в пределах допустимого. После выполнения процедуры смещения начала работ 2.2 и 2.4 получим скорректированный сетевой график (рисунок 2.4).
Задание к лабораторной работе
Составить рациональный сетевой график реализации проекта программного комплекса, разработка которого начата в лабораторной работе N1.
Порядок выполнения работы
1. Проанализировать принципы традиционных стратегий проекти- рования "сверху-вниз", "снизу-вверх" или "вертикальное слоение" и сформировать свой подход к проектированию программы, сочетающий преимущества традиционных стратегий, специфику решаемой задачи, индивидуальный опыт и организационные стереотипы. При планировании порядка разработки программных модулей использовать иерархический, операционный или комбинированный подходы.
2. Планирование порядка разработки программных модулей следует начать с составления диаграммы предстоящих работ. Диаграмма строится с учетом выбранного подхода к проектированию комплекса, структура которого определена схемой состава разложения.
3. Для каждой работы, представленной на диаграмме, необходимо задать следующие исходные данные: длительность работы, интенсивность разработки модуля и т.д. Исходные данные определить с помощью экспертных оценок предполагаемых затрат времени программиста(ов) на разработку и тестирование каждого модуля в отдельности и необходимых для этого вычислительных ресурсов.
4. Выполнить расчет параметров сетевого графика.
5. Изобразить сетевой график, учитывая ранние начала каждой работы, с указанием имеющихся резервов времени; определить критические работы и нарисовать график распределения ресурсов.
6. Построить субоптимальный сетевой график, перераспределяя работы в пределах имеющихся резервов времени, и соответствующую ему диаграмму распределения людских ресурсов.