УДК 681.3
ПОСТРОЕНИЕ СРЕДЫ РАЗРАБОТКИ ПРОГРАММНЫХ КОМПЛЕКСОВ НА ОСНОВЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ТЕХНОЛОГИИ
О.Б. Кремер, С.Л. Подвальный
Рассмотрен процесс проектирования среды разработки программных комплексов на основе объектноориентированной технологии, включающий модель предметной области и архитектурное проектирование
Ключевые слова: среда разработки, программный комплекс, объектно-ориентированная технология
Введение
В терминах объектно-ориентированной технологии (ООТ) среда разработки программных средств
- это набор классов, тесно сотрудничающих между собой. Класс - это механизм инкапсулирования решения конкретной задачи. Он предоставляет определенный сервис, поставляет данные и обеспечивает необходимое поведение. Механизм классов полезен тем, что он позволяет разбить программу на компоненты, которые анализируются независимо друг от друга. Однако отдельные классы сами по себе редко предоставляют решение всей проблемы [1].
Объект получается в результате инкапсуляции состояния (данных) и поведения (операции). Поведение объекта диктуется его классом. Каждый объект является экземпляром некоторого класса. Все экземпляры одного класса будут вести себя одинаковым образом, то есть вызывать те же методы в ответ на одинаковые запросы.
Объекты и классы расширяют понятие абстрактного типа данных путем введения наследования. Классы могут быть организованы в виде иерархического дерева наследования. Данные и поведение, связанные с классами, которые расположены выше в иерархическом дереве, доступны для нижележащих классов. Происходит наследование поведения от родительских классов [2].
Среда разработки программ обычно предназначена для многократного использования и пригодна для решения общих задач. Среды разработки в настоящее время применяются для создания графических интерфейсов пользователя, для построения разнообразных редакторов, компиляторов, финансовых моделей.
Среда диктует общую структуру приложения. Она описывает, как распределены обязанности между различными компонентами и как они должны взаимодействовать между собой. Преимущество среды состоит в том, что разработчику нового приложения нужно всего лишь сконцентрироваться на специфике решаемой в данный момент проблемы. Более ранние разработки в той же среде не требуют длительной подготовки к повторному использованию, а их код не нуждается в переписывании. Недостаток единой общей среды разработки в том, что
Кремер Ольга Борисовна - ВГТУ, канд. техн. наук, доцент (4732) 43-77-18
Подвальный Семен Леонидович - ВГТУ, д-р техн. наук, профессор (4732) 43-77-18
на жестко ограничивает форму приложения, однако снятие принятых ограничений требует пересмотра всей среды, тем самым утрачивается первопричина ее использования.
Постановка задачи
Для сокращения сроков создания типовых программных комплексов (ПК) необходимо спроектировать среду разработки, основанную на объектноориентированной технологии.
Преимущества ООТ наблюдаются только в тех случаях, когда программные подсистемы многократно используются в разных проектах, т.е. в программном обеспечении (ПО) почти не должно быть проблемно-зависимых компонентов. Краеугольным камнем в ООТ является характеристика ПО в терминах поведения или действий, которые должны быть выполнены. Работа по выявлению компонентов, описанию их поведения и возможных действий
- это один из этапов создания среды разработки ПК.
Исходя из цели создания, среда разработки должна обеспечить выполнение следующих функций:
• конструировать интерфейс типового ПК из графических объектов;
• устанавливать свойства и методы объектов, сгруппированных в классы;
• запоминать структуру и установленные значения объектов ПК для последующего изменения;
• создавать компьютерную программу для работы пользователя с ПК, где исходными данными являются данные, которые выбраны в ходе констуи-рования комплекса.
Неформализованное представление задачи
Пользователь на основе анализа реального объекта предметной области формирует общие требования к разрабатываемому программному комплексу, который будет моделировать поведение реального объекта. Пользователь перечисляет участвующие в задаче объекты, их основные свойства и поведение. Поведение объекта описывается с двух сторон - это действия, выполняемые объектом для обслуживания запросов от других объектов, и действия других объектов, требуемые ему самому. Все объекты задачи, их свойства и поведение (выполняемые и требуемые действия) обозначаются именами и при необходимости сопровождаются комментариями.
Таким образом, данную последовательность действий можно представить в виде неформализованного представления задачи (рис. 1). Пользователь
_____________________| проводит_________
Анализ реального объекта предметной области
формирует
Общие требования к ПК, который будет моделировать поведение реального объекта
выделяет
Объекты
перечисляет
Свойства
объекта
Действия объекта для обслуживания запросов от других объектов
Рис. 1. Неформализованное представление задачи
Данное описание требований пользователя состоит из двух частей: «что дано» и «что должно быть получено». Каждая часть представлена группой объектов со своими свойствами и поведением.
Это описание является самым верхним и служит отправной точкой для дальнейшего анализа.
На этапе анализа для каждого объекта задачи выполняются следующие действия (рис. 2).
Анализ каждого объекта задачи
отыскиваются
Конкретные объекты, выполняющие требуемые действия для объекта
выполняется
Упорядочивание действий по времени, т.е. описание процесса, реализующего поведение объекта
записывается
1. Имя объекта.
2. Название действия.
3. Дополнительные параметры.
проводится
Классификация объектов, т. е. все объекты с одинаковыми свойствами и поведением объединяются в один класс, становясь при этом экземплярами класса
определяются
Классы, которые являются также объектами
перечисляются
Свойства
Поведение
определяются наиболее важные
Описание структуры Способность
экземпляров порождать
классов новые экземпляры
Рис. 2. Этап анализа для каждого объекта задач
Формализованная модель предметной области
Представим формализованную модель предметной области следующим образом.
Пусть ЯЯ - среда разработки типового ПК. Б(8Я) - действия, которые пользователь среды может произвести, например, создать новый комплекс, открыть уже сконструированный комплекс для внесения изменений, записать комплекс в виде, удобном для последующей работы. Щ(1) - конечный результат работы пользователя среды, т.е. ПК и исходные данные, необходимые для пользователя комплекса за сеанс работы 1 в среде разработки.
Тогда Б - процесс разработки ПК можно представить в следующем виде:
Б = (ЯЯ, Б^Щ), Щ(1))
В свою очередь ЯЯ состоит из следующих компонентов:
ЯЯ = (01 , С , Ы1к , Б(01)) где 01 -множество графических объектов, 1 е [1, I] (I
- количество графических объектов оболочки), т.е.
01 = {°1 , ^ — , 01-1 , 01};
Су - свойства 1-го объекта, где \ е [1, 11] (11 -количество свойств 1 -го объекта);
М1к - методы 1-го объекта, где к е [1, К1] (К1 -количество методов 1 -го объекта);
Б(01) - действия, которые возможно задать в конструкторе для объектов 01 .
Структура разрабатываемого ПК - Яр (1) состоит из р графических объектов с заданными свойствами и методами, установленными за сеанс работы
1, где р е [1, Р] (Р - количество объектов ПК) и может быть записана в виде следующего выражения:
Яр (1) = (0р , Си , Мрк , Б(0р)),
V р, _|, к : р е [1, Р], причем Р < I, ] е [1, 1р], к е [1, Кр],
где 0р - множество, состоящее из Р объектов, удовлетворяющих условию 0р с 01, Си - установленные свойства р-ого объекта, Мрк - выбранные методы р-го объекта, Б(0р) - действия, назначенные для р-ого объекта.
Конечный результат работы пользователя среды можно представить в виде следующего выражения:
Щ (1) = (РМ (1), Яу (1), ГОу (1)), где РМ (1) - компьютерная программа-навигатор по программным ресурсам для пользователя ПК, Яу (1)- структура у-го ПК, 1Бу (1) - исходные данные для работы у-го комплекса. Каждый из этих параметров определен по окончании сеанса работы 1 пользователя в среде разработки типового ПК.
Архитектура среды разработки В проекте любой системы можно выделить три характерных уровня: архитектура, исполнение и реализация. Архитектурное проектирование - это проектирование сверху вниз, определяющее каждую деталь как функцию целого. Архитектура системы -это функциональное проявление системы с точки зрения пользователя; под исполнением понимается логическое описание внутренней структуры, де-
лающей возможным осуществление этих функций; реализация - это физическое воплощение исполнения [3].
Составными частями ООТ для среды разработки типового ПК являются процесс анализа, проектирования и программной реализации.
Объектно-ориентированный анализ (ООА) направлен на создание моделей, более близких к реальности, с использованием методологии, при которой требования формируются на основе понятий классов и объектов, составляющих словарь предметной области.
Одной из составных частей ООТ является объектно-ориентированное проектирование, которое ведет к объектно-ориентированной декомпозиции, а также на этом этапе используется многообразие приемов представления моделей, отражающих логическую (структуры классов и объектов) и физическую (архитектура модулей и процессов) структуру системы.
На этапе проектирования среды разработки типового ПК необходимо выделить отдельные компоненты программы, т. е. абстрактные единицы, вы-
полняющие определенные функции, или являющиеся структурой или классом объектов. На этом уровне учитываются следующие особенности:
• компонента должна иметь небольшой набор четко определенных обязанностей;
• компонента должна взаимодействовать с другими настолько слабо, насколько это возможно.
Чтобы выявить отдельные компоненты и определить их обязанности, надо проработать сценарий работы ПО, т.е. предполагается, что среда разработки создана, и любое действие, которое может произойти, приписывается некоторой компоненте в качестве ее обязанности. В качестве составной части этого процесса полезно фиксировать следующую информацию о компоненте: имя, обязанности и имена других компонент, с которыми она должна взаимодействовать.
Приведем пример описания абстрактных единиц, выполняющих определенные функции, в виде перечня и характеристик некоторых компонентов программного комплекса (таблица). Взаимодействие между данными компонентами среды разработки ПК представлено на рис. 3.
Таблица
Состав и характеристики компонент ПК
№ п/п Имя компоненты Обязанности, приписанные данной компоненте Сотрудничающие с ней компоненты
i Forma (Форма, на которой конструируется ПК) Вывести на экран форму. Предложить пользователю выбрать параметры. Передать управление другой компоненте. Меню пользователя. Классы. Объекты. Инспектор объектов.
2 Menu (Меню пользователя) Предложить пользователю различные варианты действий с ПК (открыть ПК, сохранить, выйти) Форма. Классы. Объекты.
3 Klass (Класс) Предложить пользователю выбрать класс.
4 Object (Объект) Предложить пользователю выбрать объект. Классы. Форма.
5 Ikzempliar_object (Экземпляр объекта) Предложить пользователю работу со свойствами экземпляра объекта Инспектор объектов. Форма.
б Inspector_object (Инспектор объектов) Предложить пользователю изменить или ввести свойства объекта. Объекты. Форма.
7 Baza_dannix (База данных объектов) Поддерживает записи с информацией о графических объектах. Ввод, коррекция, просмотр объектов. Объекты. Классы.
S Date (Дата создания и последнего изменения ПК) Вывод дат на экран пользователю. Меню.
Inspector_
object
Рис. 3. Взаимодействие между компонентами среды разработки ПК
Применение ООТ на начальном этапе создания среды разработки поможет реализовать выделенные компоненты и интегрировать их в ПК.
Пример реализации среды разработки ПК
Программную реализацию среды разработки ПК рассмотрим на примере среды разработки электронных учебно-методических комплексов (ЭУМК) по дисциплине (рис. 4).
Преподаватель готовит исходные данные для работы в среде разработки ПК, к которым относятся перечень учебно-методических материалов и сами эти материалы в электронном виде.
Далее преподаватель работает в среде разработки ПК, выбирая из коллекции графических объектов нужные и назначая экземплярам объектов свойства и методы.
После построения графического интерфейса и подключения к каждому экземпляру объекта файла с учебно-методическим материалом по команде пользователя происходит формирование ЭУМК по
Baza dannix
дисциплине, которым в последствии будут пользоваться студенты.
ПРЕПОДАВАТЕЛЬ
Исходные данные для ЭУМК
Перечень учебно-методических __________материалов___________
Материалы в электронном виде
Среда разработки ЭУМК
Коллекция графических объектов
Инспектор объектов
Свойства Методы
Результаты работы со средой разработки ЭУМК
Экземпляры графических объектов
Установленные свойства Назначенные методы
Электронный учебно-методический комплекс
Методический материал
Учебный материал
Контроль знаний
СТУДЕНТЫ
Программные компоненты среды разработки ЭУМК выполняют следующие функции:
1. Основные функции, предназначенные для построения структуры курса; электронного учебника; тестов; основных определений и понятий и т.п.
2. Служебные функции для работы с базой данных библиотеки классов.
3. Сервисные функции для пользователя: поиск информации пользователем; обработка информации, например результаты тестирования студентов, или количество вопросов по каждому разделу дисциплины, или полнота ЭУМК, т. е. наличие всех заявленных электронных ресурсов и т.п.
4. Утилиты для работы с объектами среды: создание новых объектов в классе; назначение свойств и методов для новых объектов.
5. Функции работы с проектом ЭУМК: сохранение проекта; открытие проекта; изменение проекта.
6. Функции трансляции результатов работы в среде разработки ПК в ЭУМК по дисциплине.
В настоящее время описанные функции частично реализованы программно, однако рассмотренный пример построения среды разработки программных комплексов позволяет конструировать ЭУМК различной структуры.
Направлением дальнейшего развития среды разработки программных комплексов является автоматизация идентификации и классификации объектов среды.
Литература
1. Бадд Т. Объектно-ориентированное программирование М1р://ат1ук1.паго>1ги/Ьа(1(1/т(1ех.М1т
2. Иванов А.Г., Пятницкий А.А., Филинов Ю.Е. Объектно-ориентированный подход технологии программирования - Сборник трудов ИПИ РАН, 2000 -М1р://ат1ук1.паго>1ги/аг1/1уап1 .Мт
3. Клир Дж. Системология. Автоматизация решения системных задач: Пер. с англ.-М.: Радио и связь, 1990. - 544 с.
4. Кремер О.Б. «Программный комплекс «Системное программное обеспечение»» - М.: ВНТИЦ, 2007. - № 50200702373
5. Кремер О.Б., Подвальный С.Л. Программный комплекс «Программно-методический комплекс курса «Программирование в среде МБ 0£йсе»». - М.: ВНТИЦ, 2005. - №50200500592
Рис. 4. Среда разработки ЭУМК
ЭУМК обычно состоит из следующих трех блоков: методический материал, учебный материал и контроль знаний по дисциплине. Полученный программный комплекс создается в отдельной папке компьютера, на котором преподаватель работал в среде разработки ПК. Данную папку можно копировать и переносить на любое автоматизированное рабочее место студента или сервер кафедры.
Воронежский государственный технический университет
BUILDING UP OF SURROUNDING OF DESIGN THE PROGRAM COMPLEX ON THE BASES
OF OBJECT ORIENTED TECHNOLOGY
O.B. Kremer, S.L. Podvalny
This article to present of process building up of the surrounding of design the program complex on the bases of object oriented technology, which include a model of subject domain and architectural projecting
Key words: surrounding of design, program complex, object oriented technology