Современные технологии разработки и тестирования программного обеспечения (ПО). Часть 1. Коварцев А.Н. - 26 стр.

UptoLike

Составители: 

кодированием программ. Тем не менее, проблема автоматизации порождения базовых
модулей представляет несомненный практический интерес. В качестве решения этой
проблемы предлагается использовать операцию
инкапсуляции агрегатов ГСП.
Понятие инкапсуляции возникло внедрах объектно-ориентированного
программирования, как возможностьскрывать частности от целого. Такой подход
позволяет программисту не знать частных деталей реализации программной системы,
осуществлять конструирование из элементов, реализация которых скрыта от него под
оболочкой модуля. По существу разговор идет о механизме сокрытия внутренних
переменных класса и
описания интерфейса класса.
Сокрытие внутренних переменных объекта актуально и для ГСП. Например, в
процессе построения такого сложного объекта, как термогазодинамичекая модель
авиационного двигателя, в процессе агрегации объекта из объектов более низкого
иерархического уровня (узлов ГТД) в последнем накапливается большое количество
данных, используемых в моделях узлов двигателя. В среднем, число параметров для
модели ГТД колеблется от нескольких сотен до нескольких тысяч. Большинство
параметров агрегата являются внутренними и используются для передачи информации
от одного объекта к другому. При построении объекта более высокого иерархического
уровня, например, летательного аппарата, большинство параметров двигателя в рамках
нового объекта практически не нужны. В этом случае помогает механизм инкапсуляции
внутренних переменных модели ГТД.
Инкапсуляция агрегатов в ГСП реализуется следующим образом:
1). На первом этапе по паспортам акторов и предикатов формируется область
данных агрегата.
2). На втором этапе данные агрегата разбиваются на четыре класса: исходные
данные, выходные данные, модифицируемые данные и внутренние данные. Здесь под
внутренними данными понимаются данные, которые идентифицируются по
признаку
выход предшествующего в схеме управления объекта - вход в любой из объектов,
следующих за предшествующим”.
3). Паспортные данные агрегата предъявляются разработчику, и он, с помощью
построенной классификации данных, все множество данных разбивает на две группы:
внутренние (инкапсулированные) данные и внешние данные, специфицирующие тип
нового базового модуля.
4). На последнем этапе автоматически синтезируется текст нового базового
модуля.
Синтез текста нового базового
модуля реализуется за счет построения заголовка
программы, в который включается список всех типов данных, описанных разработчиком
как внешние в том порядке, как он указывает. Для внутренних данных строится
межмодульный информационный интерфейс также, как это делается для исполнимых
модулей.
Рассмотрим простую задачу построения базового модуля инкапсулированием
агрегата Apoz, реализующего позиционирование некоторого слова
b в строке символов a
(см. рис.3.2). Для этих целей используется базовый модуль Poz, составленный на языке
Си, с использованием стандартной подпрограммы strstr().