В последние годы быстро развиваются
В последние годы быстро развиваются такие направления программной инженерии, как построение ПС из ПИК; инженерные методы проектирования, которые характеризуются проверкой достижения показателей качества компонентов на этапах ЖЦ и оценкой затраченных ресурсов и стоимости. Главное место среди этих методов занимает компонентный подход к построению ПС, так как принцип использования готовых компонентов является основой этого подхода и стратегическим направлением повышения производительности разработчиков и обеспечения качества ПС.
Компонентный подход расширяет существующие методы программирования ПС этим принципом, а также проверкой правильности ПИК для надежного приспособления к новым условиям ПС, формализацией и приведением в порядок процесса разработки из них ПС соответственно требованиям заказчика. В результате получается значительное упрощение процесс разработки самих компонентов и ПС из них и соответственно уменьшение сроков и затрат на разработку ПС.
Исследования и разработки в области инженерии программирования, основанного на использовании готовых ранее разработанных ПИК привели к тому, что сформировалось и используются два инженерных направления применения разных видов готовых ПИК при создании новых ПС [4]:
1) инженерия построения новых одиночных ПС уникального типа из ПИК. Это направление получило название прикладная инженерия (application engineering), которой соответствует процесс производства конкретных ПС как совокупности компонентов, подсистем и ПИК одного класса, созданных раньше как самостоятельные программные продукты или как элементы процесса инженерии некоторой предметной области;
2) инженерия построения готовых частей систем в конкретной ПрО. Это направление получило название инженерия проблемной области (domain engineering), которой соответствует процесс классификации и фиксации ПИК многоразового пользования в рамках конкретной ПрО в виде готовых частей системы, самой системы или семейства систем.
Данный процесс поддерживается системными инструментами обеспечения сбора, поиска, адаптации ПИК к новым условиям создаваемой системы семейства. Этим обеспечивается повторное использование не только элементов ПИК, а и инструментов поиска.
Обе разновидности инженерии базируются на объектно-ориентированных (ОО) методах анализа ПрО, методах проектирования классов объектов и образцов многоразового использования, которые создаются в разных системах и фиксируются как готовые решения для применения в других областях. Инженерность приложения и предметной области заключается в использовании в процессе проектирования методов поиска и оценки применимости ПИК, стоимости их приобретения и планирования работ по изготовлению из ПИК новых систем в заданные сроки. Инженерия ПИК предполагает проведение классификации и каталогизации готовых компонентов в специальных хранилищах для организации поиска, выбора с требуемыми функциями и характеристиками для последующего использования в новых проектах.
Анализ современных систем поддержки инженерии приложения (ОМТ, RUP, OOA/D и др.) показывает, что они ориентированы на разработку одиночных ПС и имеют такие недостатки:
1) отсутствует различие между разработкой и областью разработки для повторного использования и разработкой с повторным использованием. Областью разработки для повторного использования являются некоторые совокупности компонентов и подсистем. Процесс разработки с повторным использованием основывается на инструментальных средствах поиска и выбора готовых компонентов, которые создавались в процессе разработки одиночной системы для повторного использования;
2) повторное использование не базируется на модели ПрО, а ПИК создаются с ориентацией на создание отдельных одиночных программ;
3) отсутствует моделирование изменяемости компонентов в рамках одного приложения или нескольких приложений, которая может быть обеспечена использованием диаграмм классов UML с представлением изменяемых параметров и операций наследования, агрегации или параметризации.
Данные недостатки устраняются в рамках инженерии ПрО, для домена которой создается характеристическая модель, которая учитывает изменчивость параметров и разных характеристик для группы программных подсистем. Инженерия ПрО использует методы инженерии приложения по использованию ПИК и включает процессы корректировки и моделирования характеристик ПрО и их изменяемости; использует другие модели (Use Case, модели взаимодействия, переходов и т.п.) и механизмы повторного использования ПИК (хранение, поиск, оценивание, объединение).
Инженерия приложений фактически предназначена для создания целевых одиночных ПС из соответствующего набора ПИК, а инженерия предметной области ставит задачу создания множества программных систем для ПрО (домена) и совокупностей ПрО с выделением в этой ПрО отдельных функций или группы функций для проектирования подсистем, обладающих общими свойствами и характеристиками для многоразового использования в других доменах этой совокупности ПрО.