Разработка ПО крупных систем, таких как САПР, АРМ, ИС и других, является сложной, трудоемкой и длительной работой, требующей высокой квалификации участвующих в ней специалистов. Для выполнения разработки ПО АС создаются специальные инженерные методы, известные в настоящее время под общим названием «программная инженерия» (Software Engineering — SE) /6/.
В основе SE положена фундаментальная идея: проектирование ПО является формальным процессом, который можно изучать и совершенствовать.
Обычно крупные системы типа САПР, АРМ, ИС и др. разрабатываются как некоторый проект, имеющий много общего в методике проектирования систем для различных предметных областей. В системном плане проект может быть представлен «черным ящиком», входом которого являются ТЗ и условия финансирования, а итогом проектирования – достижение требуемого результата (рис. 1.5). Выполнение работ обеспечивается наличием необходимых ресурсов (материалов, оборудования, человеческих ресурсов) /5/.
Рис. 1.5. Представление проекта в виде «черного ящика»
Известно, что современные проекты характеризуются своими особенностями, к которым относятся:
- сложность описания (имеется достаточно большое количество функций, процессов, элементов данных и сложные взаимосвязи между ними), требующая тщательного моделирования и анализа;
- наличие совокупности тесно взаимодействующих компонентов (подсистем), имеющих свои локальные задачи и цели функционирования (например, обработка больших массивов информации, решение оптимизационных задач и т.д.);
- практически невозможно разработчику осуществить изучение документов аналогичных моделей (прототипов), в связи с ограничением доступа к ним;
- необходимость интеграции существующих и вновь разрабатываемых приложений;
- функционирование в неоднородной среде на нескольких аппаратных платформах;
- разобщенность и разнородность отдельных групп разработчиков по уровню квалификации и сложившимся традициям использования тех или иных инструментальных средств;
- существенная временная протяженность проекта, обусловленная, с одной стороны, ограниченными возможностями коллектива разработчиков, и, с другой стороны, масштабами организации-заказчика и различной степенью готовности отдельных ее подразделений к внедрению крупной системы.
-