В большей степени программные продукты не являются монолитом и имеют конструкцию (архитектуру) построения - состав и взаимосвязь программных модулей.
Модуль - это самостоятельная часть программы, имеющая определенное назначение и обеспечивающая заданные функции обработки автономно от других программных модулей.
Таким образом, программный продукт обладает внутренней организацией, или внут¬ренней структурой, образованной взаимосвязанными программными модулями. Это спра¬ведливо для сложных и многофункциональных программных продуктов, которые часто называются программными системами.
Структуризация программ выполняется в первую очередь для удобства разработки, программирования, отладки и внесения изменений в программный продукт. Как правило, программные комплексы большой алгоритмической сложности разрабатываются коллекти¬вом разработчиков (2 - 15 и более человек). Управлять разработкой программ в условиях применения промышленных технологий изготовления программ можно лишь на научной основе.
Таким образом, структуризация программных продуктов преследует основные цели:
Структурное "разбиение" программ на отдельные составляющие служит основой и для выбора инструментальных средств их создания, хотя имеет место и обратное влияние - выбор инструментальных средств разработчика программного обеспечения определяет типы программных модулей. При создании программных продуктов выделяются многократно используемые модули, проводится их типизация и унификация, за счет чего сокращаются сроки и трудозатраты на разработку программного продукта в целом.
Некоторые программные продукты используют модули из готовых библиотек стан¬дартных подпрограмм, процедур, функций, объектов, методов обработки данных.
На рисунке 10.1 приведена типовая структура программного продукта, состоящего из отдельных программных модулей и библиотек процедур, встроенных функций, объектов и т.п.
Рисунок 10.1 - Типовая структура программного продукта
Среди множества модулей различают:
В работе программного продукта активизируются необходимые программные модули.
Управляющие модули задают последовательность вызова на выполнение очередного моду¬ля. Информационная связь модулей обеспечивается за счет использования общей базы дан¬ных либо межмодульной передачи данных через переменные обмена.
Каждый модуль может оформляться как самостоятельно хранимый файл; для функционирования программного продукта необходимо наличие программных модулей в полном составе.
Структурно-сложные программные продукты разрабатываются как пакеты программ, и чаще всего они имеют прикладной характер - пакеты прикладных программ, или ППП.
ППП (application program package) - это система программ, предназна-ченных для решения задач определенного класса.
Компоненты ППП объединены общими данными (базой данных), информационно и функционально связаны между собой и обладают свойством системности, т.е. объединению программ присуще новое качество, которое отсутствует для отдельного компонента ППП. Структура ППП, как правило, многомодульная.