Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Липаев
Шрифт:
Интервал:
Закладка:
При создании высококачественных комплексов программ необходима организация и тесное взаимодействие представителей заказчика и руководителей проекта. Взгляды и требования заказчика, в основном, отражаются в функциональных и потребительских характеристиках версий программного продукта. Устремления разработчиков направлены на возможность и способы их реализации с требуемым качеством. Эти различия исходных точек зрения на проект приводят к тому, что некоторые неформализованные представления тех и других имеют зоны неоднозначности и взаимного непонимания требований к продукту, что может приводить к конфликтам при выборе квалифицированного коллектива специалистов.
Экономическое обоснование проектов квалифицированными заказчиками и производителями на начальном этапе их проектирования должно содержать оценки рисков реализации поставленных целей, обеспечивать возможность планирования и выполнения жизненного цикла программного продукта или указывать на недопустимо высокий риск его реализации и целесообразность прекращения разработки. Большую часть рисков и негативных последствий производства можно избежать, освоив и используя существующие, методы оценивания и прогнозирования производственных затрат, а также управления проектами программных продуктов, для их успешного завершения.
Глава 5. История развития методов программной инженерии для систем реального времени в 1970-е – 80-е годы
5.1. Анализ сложности и распределения ресурсов ЭВМ для программных комплексов реального времени в 1970-е годы
Для решения проблем, представленных в главе 4, в апреле 1979 года министерство радиопромышленности СССР задало и обеспечило финансирование в МНИИПА (НИИ-5) отраслевой научно-исследовательской работы (НИР) ПРОМЕТЕЙ (Проектирование Математики Единая Технология). Это имя было присвоено всей последующей технологии и комплексу инструментальных средств на различных ЭВМ. Цель работы состояла в исследовании, создании и внедрении систем автоматизированного проектирования математического обеспечения для специализированных ЭВМ, работающих в реальном масштабе времени. Для координации работ коллективов разных предприятий в этой области, приказом министра в 1979 году был создан отраслевой Координационный совет № 20 министерства, в который вошли также некоторые специалисты других отраслей оборонной промышленности. Председателем совета, главным конструктором комплекса инструментальных систем и ПРОМЕТЕЙ-технологии в отрасли, был назначен профессор Владимир Васильевич Липаев. Для организации и выполнения этих работ были существенно увеличены коллективы специалистов, к началу 80-х годов в МНИИПА трудились около 200 специалистов и еще столько же участвовали в этих работах в качестве субподрядчиков в других предприятиях оборонной промышленности. Эти работы проводились по комплексной программе почти 10 лет до 1988 года. Общая трудоемкость работ по этой программе к концу 80-х годов составила около четырех – пяти тысяч человеко-лет [12, 11].
Программой работ предусматривалось выполнение научных исследований методов и процессов обеспечения жизненного цикла крупных комплексов программ реального времени, а также разработка и внедрение технологий и инструментальных систем, обеспечивающих.
снижение стоимости, общей трудоемкости и длительности создания сложных комплексов программ для ЭВМ реального времени, и повышение производительности труда всех специалистов в коллективах разработчиков оборонных программных продуктов;
• высокое качество, надежность и безопасность функционирования, создаваемых и сопровождаемых комплексов программ реального времени оборонного назначения в течение всего жизненного цикла;
• комплексную автоматизацию процессов коллективной разработки и модификации комплексов программ большого размера и высокой сложности;
• экономически эффективную, унифицированную технологию и инструментальные средства разработки и сопровождения комплексов программ различных ЭВМ широкого класса;
• эффективное использование ресурсов памяти и производительности ЭВМ сложными комплексами программ реального времени.
Разработке технологии в 1970-е – 80-е годы сопутствовало создание, анализ и научные исследования методов программной инженерии, а также обеспечения качества жизненного цикла крупных комплексов программ реального времени [17–20]. Практическое отсутствие готовых решений, и скудность публикаций в этой области в отечественной и зарубежной литературе стимулировали интенсивные исследования, и поиск эффективных, оригинальных методов разработки программных продуктов реального времени. Такие исследования проводились по многим направлениям, способствовавшим совершенствованию технологий и повышению качества создаваемых программных продуктов. Эти исследования органически входили в плановые работы по созданию инструментальных систем программной инженерии и финансировались в составе комплексной НИР ПРОМЕТЕЙ.
Интерес к определению сложности программных комплексов и выявлению характерных особенностей этого понятия первоначально в 60-е годы был обусловлен экспоненциальным ростом длительности решения ряда вычислительных задач в зависимости от количества переменных. Даже при сравнительно небольшом количестве переменных, характерном для типовых практических задач, оказывалось принципиально невозможным получать точные результаты на машинах в то время, путем перебора вариантов решения. При этом прогресс вычислительной техники хотя и позволял увеличивать размерность решаемых задач, однако получающийся прирост размерности не способен был снять принципиальные ограничения и удовлетворить требования пользователей. Были выявлены многие типы математических задач, которые трудно или невозможно было решать точно, что способствовало развитию анализа сложности программ и вычислений на ЭВМ.
Понятие сложности интуитивно ассоциировалось с ресурсами, необходимыми для решения задач. Весьма расплывчатое понятие сложность комплексов программ значительно конкретизировалось и становилось измеримым, когда устанавливалась связь этого понятия с конкретными ресурсами, необходимыми для решения задачи. Сложность программ для систем реального времени преимущественно определялись допустимым временем отклика, а для информационно-поисковых систем – количеством типов обрабатываемых переменных. При проектировании программ основным лимитирующим ресурсом для создания любых продуктов обычно являлись допустимые трудозатраты специалистов при ограничении на сроки разработки, параметры ЭВМ, технологию разработки. Для этапа эксплуатации комплексов программ основными определяющими ресурсами становятся объем памяти команд и производительность ЭВМ, а в качестве ограничений могли выступать время счета, размер памяти переменных.
К группе параметров, влияющих на сложность разработки комплексов программ, относятся:
• величина программы, выраженная числом строк, команд или количеством программных модулей в комплексе;
• количество обрабатываемых переменных или объем памяти для размещения базы данных;
• трудоемкость разработки комплекса программ;
• длительность разработки;
• количество специалистов, участвующих в создании комплекса программ.
В 70-е годы стало ясно, что, варьируя требования к функциональным характеристикам программ, можно в значительных пределах изменять сложность и длительность их создания. Вычислительная сложность была непосредственно связана с ресурсами вычислительной системы, необходимыми для получения совокупности законченных результатов, и могла быть представлена тремя компонентами:
• временная сложность отражала необходимую длительность исполнения комплекса программ или время обработки на ЭВМ совокупности исходных данных до получения требуемых результатов;
• программная сложность характеризовалась длиной текста программы или размером памяти ЭВМ, необходимой для размещения программного комплекса;
• информационную сложность рекомендовалось представлять, как объем базы данных, обрабатываемых комплексом программ, или как емкость оперативной и внешней памяти, используемой для накопления и хранения информации при исполнении программного продукта.