Инженерия ПИК
Большой объем накопленных программных продуктов мало используется при изготовлении новых систем, поэтому на тысячах предприятий продолжается дублирование разработки программ, которые массово используются. Инженерия ПИК является инструментом решения проблемы дублирования и сокращения времени и стоимости разработки новых ПС с одновременным снижением затрат и сложности
Инженерия ПИК – это систематическая и целенаправленная деятельность по подбору реализованных программных артефактов, и представленных в виде ПИК, анализу их функций для добавления в качестве готовых в проектируемую систему и их интеграция с другими компонентами. Согласно стандарту ISO/IEC 12207 эта деятельность классифицируется как организационная и планируемая инженерная деятельность, которая заключается в выявлении общих и специфических черт компонентов для принятия решений об их использовании в разработке новых ПС [1, 6-10].
ПИК нуждается во вложении капитала для их разработки, сохранении и приобретении. Системное применение ПИК оказывает содействие получению прибыли за счет экономии затрат на разработку, а менеджмент помогает принять решение по эффективному вкладу средств в ПИК, оценки рисков его использования и объемов отдачи от применения. Оценка риска выполняется по каждому атрибуту ПИК: сначала вычисляются ранги риска атрибутов, исходя из количества вопросов к ним, потом вычисляется уровень риска каждого атрибуту и всех атрибутов в целом.
Повторное использование базируется на любых порциях формализованных знаний, полученных от реализации завершенных разработок и зафиксированных в разнообразных формах: от конкретных параметризованных программных модулей к каркасам, архитектурам и средам.
Методология разработки системы из готовых компонентов основывается на изучении спектра задач во вновь разрабатываемой системе, выявлении в ней задач с общими подходами к их решению и нахождения подходящих ПИК с определением их возможностей и принятия решений о целесообразности применения в будущей системе.
Разработчику системы необходимо иметь большой опыт в представлении и не одной, а нескольких однотипных задач, чтобы суметь обнаружить их общность, определить приемы настройки на характерные для каждой задачи особенности и принять ответственное решение.
Базисом ПИК являются хранилища с информационным каталогом этих ПИК, соответствующих типичным функциям, которые настраиваются на новые условия с меньшими усилиями, чем новая разработка. Информационной основой подбора ПИК в специальных хранилищах является классификация и каталогизация.
Сущность классификации состоит в предоставлении информации о функциях, среде и требуемых ресурсов для ПИК, которые размещаются в информационных репозитариях программной продукции.
Каталогизация - это средство физического размещения готовых компонентов в каталоге репозитария после завершения их реализации в структуре некоторой ПС для организация поиска формализованных ПИК, оценки их пригодности для последующего использования.
Действия по классификации и каталогизации компонентов и ПИК являются систематическими и целенаправленными, необходимыми многим специалистам, которые заинтересованы в готовой программной продукции для решения своих задач. При этом с помощью каталога можно узнать о ПИК как о готовых деталях и правилах их соединения в программную конструкцию. Именно эта сторона и характеризует повторное использование, как систематическую деятельность по созданию и использованию каталога ПИК.
Систематическое повторное использование – это капиталоемкий подход, который предусматривает наличие двух процессов в ЖЦ разработки ПС.
Первый процесс – создание ПИК путем:
– изучения спектра решаемых задач предметной области, выявление среди них общих подходов к реализации;
– реализации задач и функций в виде компонентов, которые будут повторно используемыми компонентами;
– построение каталога, предназначенного для обеспечения поиска необходимых компонентов.
Для успешной реализации данного процесса необходимо иметь определенный опыт в решении нескольких подобных между собой задач, позволившими выявить как их общие черты, так и различия, чтобы найти общее решение для их реализации, а также приемы настройки на характерные для каждой задачи особенности.
Второй процесс
– конструирование новых систем из готовых компонентов путем:
– понимания сущности новой разработки, цели ее создания и предъявляемых к ней требований;
– поиска в каталоге готовых компонентов, которые кажутся подходящими для их использования;
– сопоставление цели новой разработки с возможностями найденных ПИК и принятия решений о целесообразности их использования;
– применение отобранных ПИК и интеграция их в новую разработку с обеспечением необходимых соединений друг с другом.
Первый процесс требует вложения капитала, второй – получения прибыли за счет экономии трудозатрат. Инвестиции в повторное использование требуют оценки эффективности вложений капитала, прогнозирования сроков и объемов возврата вложений, оценки рисков и др. Бизнес повторного использования, как любой бизнес, требует специальных условий по менеджменту всей инженерной деятельности. Критерии успеха такого бизнеса определяются выполнением следующих условий:
– повторное использование должно обеспечиваться меньшими трудозатратами, чем разработка ПС как разовых продуктов;
– поиск пригодных для использования компонентов требует меньших трудозатрат, чем новая разработка их функций для нужд проектируемой системы;
– настройка компонентов на новые условия среды применения должна обеспечиваться меньшими трудозатратами, чем новая разработка.
Основная парадигма ПИК – “писать – один раз, выполнять – много раз, где угодно”. Архитектура, в которую встраивается готовый ПИК, поддерживает стандартные механизмы для работы с компонентами как со строительными блоками. Чтобы обеспечить высокий уровень использования ПИК они должны обладать такими основными свойствами: функциональность, удобство использования и качество реализации.
Разновидности ПИК. В качестве ПИК могут использоваться формализованные артефакты деятельности разработчиков ПС, которые отражают некоторую функциональность для применения в новых разработках. Под артефактом понимается реальная порция информации, которая может создаваться, изменяться и использоваться при выполнении деятельности, связанной с разработкой ПС различного назначения. Артефактами могут быть:
– промежуточные продукты процесса разработки ПС (требования, постановки задач, архитектура и др.);
– описания, полученные в процессе разработки ПС (спецификации, модели, каркас (framework и т.п.)
– готовые компоненты ПС или отдельные ее части;
– продукции, фреймы, диаграммы, паттерны и т.п.
К компонентам ПИК выдвигаются такие требования, как независимость от конкретной платформы, наличие стандартного интерфейса со средой, возможность взаимодействия с системами без внесения в них изменений.
Разработке ПС с помощью ПИК соответствует модель ЖЦ со следующими этапами:
– анализ объектов и отношений реализуемой ПрО для выявления ПИК, обладающих общими свойствами, присущими группам объектов этой области;
– адаптация имеющихся в базе ПИК и разработка новых компонентов, не представленных в этой базе и доведение их до уровня ПИК;
– разработка интерфейсов компонентов и их размещение в базе ПИК;
– интеграция ПИК для получения конфигурации создаваемой системы.
Повторные компоненты могут быть готовыми прикладными и общесистемными компонентами.
Прикладные компоненты выполняют отдельные задачи и функции прикладной области деятельности – ПрО (бизнес–домены, коммерция, экономика и т.п.), которые могут использоваться как готовые при разработке новых прикладных систем с их использованием.
К общесистемным компонентам относятся системные компоненты общего назначения и универсальные общесистемные сервисные средства, которые обеспечивают системное обслуживание и предоставление универсального сервиса для всех создаваемых программных систем разного назначения. К компонентами общего назначения относятся: трансляторы, редакторы тестов, системы генерации, интеграции, загрузчики и др. Они используются всеми прикладными системами в процессе их проектирования и выполнения. Универсальные системные компоненты обеспечивают функционирование любых (в том числе и прикладных) компонентов, обмен данными и передачей сообщений между всеми видами компонентов.
К ним относятся ОС, СУБД, сетевое обеспечение, электронная почта и др.
Связь между прикладными и общесистемными средствами осуществляется через стандартные интерфейсы, обеспечивающие взаимодействие разных типов компонентов через механизмы передачи данных и сообщений.
На современном рынке программных продуктов циркулируют следующие виды готовых компонентов:
– структуры данных,
– процедуры и функции на ЯП высокого уровня,
– алгоритмы, программы,
– классы объектов и абстрактные классы,
– API – модули,
– Веб–ресурсы,
– сервисы и среда развертывания (например, компоненты типа Java Beans, CORBA, COM, .NET)
– готовые абстрактные решения – паттерны и фреймы.
Все многообразие видов и типов готовых компонентов требует от разработчиков их поиска и изучения для использования в новых ПС. Процесс разработки новых ПС с помощью разных видов ПИК является капиталоемким, в нем в качестве капитала выступают готовые ПИК, на применение которых затрачивается меньше средств, чем на повторную их разработку.