Магистр ДонНТУ Гордеев Андрей Георгиевич

Реферат к магистерской работе

«Разработка методики реализации многоуровневой объектно-ориентированной системы для встраиваемых устройств»

Выполнил: Гордеев Андрей Георгиевич

Автореферат

          Введение

     На данный момент почти в каждой семье, в каждом доме есть несколько приборов, которые используют встраиваемые системы. Хорошим примером этого может быть СВЧ-печь. Большинство людей даже не осознает, что программное обеспечение участвует в приготовлении их завтрака или обеда. Встраиваемые системы применяются в мире все больше и больше, в домашней технике, в современных автомобилях, практически на любом производстве [1]. Таким образом, методика написания встраиваемой системы в наше время является весьма актуальной.

     В данной магистерской работе будет представлена методика написания встраиваемой системы, используя концепцию многоуровневой объектно-ориентированной архитектуры. Далее будут описаны основные теоретические понятия, по которым строится данная методика.

          Объектная модель

     Объектно-ориентированная технология основана на объектно-ориентированной модели. Ее основными принципами являются: абстрагирование, инкапсуляция, модульность и иерархичность. Эти принципы сами по себе не новы, но в совокупности они были впервые применены только в объектно-ориентированной модели.

     Объект – некоторая сущность, характеризующаяся своим поведением, состоянием и отношением к другим объектам      (рис. 1).

Представление объекта

Рисунок 1 – представление объекта

     Объекты обладают целостностью, то есть свойства, которые характеризуют объект и его поведение остаются неизменными.

     Основными составляющими объектно-ориентированной модели являются объектно-ориентированный анализ, объектно-ориентированное проектирование и объектно-ориентированное программирование (рис. 2).

Порядок следования процессов при разработке ПО

Рисунок. 2 – порядок следования процессов при разработке ПО. Рисунок является анимацией и содержит 4 кадра, повторяется 7 раз, имеет размер 17.4 КБ

     На основе объектно-ориентированного анализа формируются модели, необходимые для объектно-ориентированного проектирования. Объектно-ориентированное проектирование создает фундамент для окончательной реализации системы с использованием объектно-ориентированного программирования.

     Объектно-ориентированный анализ – это методология, при которой предметная область воспринимается с точки зрения объектов. Объектно-ориентированный анализ представляет собой формирование моделей реальной действительности на основе объектно-ориентированного мировоззрения.

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

     Объектно-ориентированное программирование – это методология, при которой программа представляется в виде совокупности объектов, где каждый является экземпляром определенного класса, а классы при этом образуют иерархию наследования. Если программирование не основывается на иерархических отношениях, то оно не относится к объектно-ориентированному, а является программированием на основе абстрактных типов данных.

     Объектную модель характеризуют четыре главных элемента:

  • Абстрактность.
  • Инкапсуляция.
  • Модульность.
  • Иерархичность.

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

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

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

     Иерархия – это явление упорядочивание абстракций и расположение их по уровням.

     Без какого-либо из этих параметров модель не будет являться объектно-ориентированной. [2]

          Многоуровневая архитектура программно-аппаратных систем

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

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

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

Расположение слоев

Рисунок. 3 – расположение слоев

     Представим, что система разбита на n слоев. На рисунке 3 представлены три слоя, расположенных друг относительно друга. Слой i предоставляет сервисы, которые использует слой i + 1, и в свою очередь, делегирует подзадачи слою i - 1. При этом слой i взаимодействует только с теми двумя слоями, которые расположены рядом с ним по иерархии. Такая концепция очень удобна, т.к. для того чтобы заменить i – ый слой нужно только внести незначительные изменения в 2 слоя, которые стоят выше и ниже него по иерархии.

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

Расположение задач по уровням

Рисунок 4 - расположение задач по уровням

     На рисунке 4 показано расположение задач по уровням. На рисунке видно, что определенная задача может взаимодействовать с одной или более другими задачами. При этом, задача может взаимодействовать не только с другими задачами уровнем выше или уровнем ниже, но и на том же уровне. [3]

     Несмотря на то, что концепция расслоения является очень удачным решением для большинства сложных систем, она имеет свои недостатки:

  • Концепция слоев может не все удачно инкапсулировать. Иногда модификация одного слоя заставляет каскадно модифицировать другие слои.
  • Могут возникнуть некоторые избыточные слои (слишком большое количество слоев), за счет того, что при переходе из одного слоя в другой моделируемые сущности подвергаются преобразованию из одного слоя в другой.

     Самое сложное при реализации концепции слоев для своего приложения является точное определение содержимого и границ каждого слоя [4].

          Выводы

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

          Литература

  1. Barr M., Massa A. Programming Embedded Systems. O'Reilly. 2006. - 304 p.
  2. Буч Г., Максимчук, и др. Объектно-ориентированный анализ и проектирование с примерами приложений, 3-е изд. Пер.с англ. – М.:ООО “И.Д. Вильямс”, 2008 . – 720 с.: ил. – Парал. тит.англ.
  3. Buschmann F., Meunier R., Rohnert H., Sommerlad P., Stal M., Sommerlad P. Pattern-Oriented Software Architecture, Volume 1: A System of Patterns. - US: John Wiley, 1996. - 634 p.
  4. Фаулер М., Архитектура корпоративных программных приложений.: Пер. с англ. — М.: Издательский дом "Вильямс", 2006. — 544 с.: ил. — Парал. тит. англ.

     Важное замечание: при написании данного автореферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2009 г. Полный текст работы и материалы по теме могут быть получены у автора, или его руководителя после указанной даты.

Copyright © 2009, ДонНТУ, Гордеев Андрей Георгиевич