Методы и средства инженерии программного обеспечения

       

Реинженерия программных систем


Реинженерия (reengineering) – это повторная реализация программы (системы) в целях повышения удобства ее эксплуатации, сопровождения или изменения ее функций. Она  включает такие процессы как повторное документирование системы, реорганизация и реструктуризация, перевод системы на один из более современных ЯП, модификация и модернизация структуры и системы данных. При этом  архитектура системы  может оставаться неизменной.

Метод реинженериицелевое  средство получения нового компонента благодаря последовательности операций внесения изменений, модернизации или модификации, а также перепрограммирования или адаптации компонентов.

Реинженерия компонентов – это совокупность моделей, методов и процессов изменения структуры и возможностей компонентов с целью получения компонента с новыми возможностями.       

Новые компоненты необходимо идентифицировать по определенным действующим правилам именования компонентов и методов их применения в системах из  компонентов. Решение  проблемы  идентификации связано с необходимостью создания  компонентных конфигураций и каркасов системы из компонентов.

С технической точки зрения реинженерия – это решение проблемы эволюции системы. Если предположить, что архитектура системы не изменяется, то  преобразовать централизованную систему в  распределенную, компоненты которой размещаются в операционной среде на разных компьютерах,  является  довольно сложным процессом. (Например, изменить язык программирования старой системы  (Fortran, Сobol и др.) на современные объектно–ориентированные языки   Java или C++.

Однако с коммерческой точки зрения реинженерию принимают часто за единственный способ сохранения наследуемых систем в эксплуатации. Подходы к эволюции системы, при которых изменяется все, являются дорогостоящими либо рискованными.

Так как ПС много, то полная замена или радикальная реструктуризация их в большинстве затруднена. Методами реинженерии проще совершенствовать структуру, документацию или отдельные компоненты системы.
Сопровождение старых систем действительно стоит дорого, однако реинженерия может продлить время их существования.

По сравнению с более радикальными подходами к совершенствованию систем реинженерия имеет следующие преимущества.

1. Снижение рисков. При повторной разработке ПО существует риск получения неудовлетворительного результата, который определяется внесением ошибок в системные спецификации, снижением надежности или изменением  функционирования некоторых программ.  Снизить возникающие риски можно за счет удаления ошибок и улучшения качества работы измененных программ.

2. Снижение затрат. Себестоимость реинженерии  значительно ниже, чем разработка нового ПО. Согласно данным различных коммерческих структур она в четыре раза дешевле, чем повторная разработка системы.

Реинженерия применяется при изменении деловых процессов,  снижении количества излишних видов деятельности в них и повышением эффективности отдельных  деловых процессов. Это можно сделать путем  внедрения новых программ или модификации существующих программ, выполняющихся на процессе. Если  бизнес–процесс зависит наследуемых систем, используемых в процессе, то это надо учитывать   при планировании каких–либо изменений.



Основное различие между реинженерией и новой разработкой системы состоит в том, что написание системной спецификации начинается не с «нуля», а с учета возможностей  старой наследуемой  системы при разработке спецификации новой системы. К основным этапам этого процесса относятся:

- перевод исходного кода путем конвертирования программы в старом языке программирования на современную версию этого языка либо на другой язык программирования;

– анализ программ для документирования структуры и функциональных ее возможностей;

модификация структуры программ для ее упрощения, понятности и наращивания новых свойств;

–   разбиение на модули для группирования и устранения избыточности, что  приводит к изменению структуры системы;

­– изменение системных данных, с которыми работает программа для согласования с  проведенным изменениями в программе.

Преобразование исходного кода программ –  наиболее простой способ реинженерии программ. Оно может быть выполнено автоматически (автоматизировано). Причинами перевода на другой язык могут быть:

1. Обновление платформы аппаратных средств, на которой может не выполняться компилятор исходного языка программ.

2. Недостаток квалифицированного персонала для программ, написанных в специфических ЯП, вышедших из употребления.

3. Изменение структуры организации программы в связи с переходом на общий стандартный ЯП для  снижения  затрат на сопровождение программных систем.

  

К  операциям реинженерии относятся:

– именование компонентов и их идентификацию;

– расширение функций существующей реализации компонента;

– перевод языка компонента  на новый современный язык программирования;

– реструктуризация структуры компонента;

– модификация описания  компонента  и его данных.

 


Содержание раздела