Научная статья на тему 'Реализация паттерна Компоновщик с помощью инструмента объектно-реляционного отображения'

Реализация паттерна Компоновщик с помощью инструмента объектно-реляционного отображения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
215
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Герасимова Ольга Игоревна, Росляков Михаил Борисович, Олейник Павел Петрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Реализация паттерна Компоновщик с помощью инструмента объектно-реляционного отображения»

Литература

1. Страуструп Б. Дизайн и эволюция языка C++. - СПб.: Питер, 2006.

2. Официальный сайт языка Go. — Web: http://golang.org

3. What are Go's ancestors? — Web: http://golang.org/doc/go faq.html#ancestors

4. Официальный сайт языка Rust. — Web: http://github.com/graydon/rust/

5. Проект OberonCore. — Web: http://oberoncore.ru

6. Янг С. Алгоритмические языки реального времени. - Пер. с англ. - М.: Мир, 1986.

7. Ермаков, И.Е. Объектно-ориентированное программирование: прояснение принципов? // Объектные системы - 2010: Материалы I Международной научно-практической конференции. - Россия, Ростов-на-Дону, 10-12 мая 2010 г. / под общ. ред. П.П. Олейника. — Ростов-на-Дону, 2010. -с. 130-135.

8. Szyperski C. Component Software. Beyond Object-Oriented Programming. - Addison Wesley Longman, 1998.

9. Szyperski C. Insight EthOS - On Object Orientation In Operating Systems. - ETH Diss. No 9884. -Zurich, Switzerland, 1992. - ISBN 3-7281-1948-2. — Web: http://research.microsoft.com/en-us/um/people/cszypers/books/insight-ethos.htm

10. Документация проекта БЕТА. // Архив академика А.П. Ершова. — Web: http://www.ershov.ras.ru/archive/eaindex.asp?lang=1&gid=210

11. Завалишин Д. Видеолекция о разработке высоконагруженных Java-приложений. — Web: http://video.vandex.ru/users/vsirotkin/view/2/

12. Franz M. Code-Generation On-the-Fly: A Key for Portable Software. - Zurich, Dissertation No.10497, 1994.

13. Литература по систем «Эльбрус». — Web: http://oberoncore.ru/library/start

14. Материалы по проектам «Кронос» и МАРС. — Web: http://kronos.ru/

15. Терехов, А.Н. Технология программирования встроенных систем реального времени. -

Докторская диссертация, 1991. — Web:

http://ant.tepkom.ru/publications/doc/Terekhov Doct thesis.pdf

16. Jones R. Lins R. Garbage Collection: Algorithms for Authomatic Dynamic Memory Management. -John Willey & Sons, 1997.

17. Levanony Y., Petrank E. An On-the-Fly Reference-Counting Garbage Collector for Java. // ACM Transactions on Programming Languages and Systems (TOPLAS) archive, Volume 28, Issue 1, 2006.

18. Солтис Ф. Основы AS/400. - М.: Русская редакция, 1998.

19. Официальная страница open-source проекта Microsoft Singularity. — Web: http://singularity.codeplex.com/

20. Беседа с менеджером по стратегии платформ Microsoft Russia В. Шершульским об итогах проекта Singularity. / Проект OberonCore. — http://forum.oberoncore.ru/viewtopic.php?p=48426

УДК 004.04

РЕАЛИЗАЦИЯ ПАТТЕРНА КОМПОНОВЩИК С ПОМОЩЬЮ ИНСТРУМЕНТА ОБЪЕКТНО-РЕЛЯЦИОННОГО ОТОБРАЖЕНИЯ

Герасимова Ольга Игоревна, Шахтинский институт Южно-Российского государственного технического университета (Новочеркасского политехнического института), Россия, Шахты Росляков Михаил Борисович, Шахтинский институт Южно-Российского государственного технического университета (Новочеркасского политехнического института), Россия, Шахты Олейник Павел Петрович, к.т.н., Системный архитектор программного обеспечения, ОАО «Астон»,

Россия, Ростов-на-Дону, [email protected]

Современные корпоративные информационные системы разрабатываются на высокоуровневых объектно-ориентированных языках программирования. Как правило, при разработке программного приложения возникает ряд сходных архитектурных задач, которые целесообразно реализовать единым образом, с применением типовых решений. Типовые многократно используемые программные решения принято называть шаблонами (паттернами) проектирования [1]. Несмотря на

101

повсеместное применение объектной парадигмы, наиболее популярным способом сохранения больших объёмов информации в долговременной памяти является использование промышленной реляционной СУБД, такой как, например, Microsoft SQL Server 2008 [2]. В связи с различным назначением объектно-ориентированного и реляционного подходов возникает так называемое объектно-реляционное несоответствие [3], для преодоления которого разработан ряд структурных паттернов [4], многие из которых реализованы в современных инструментах объектно-реляционного отображения [5]. В данной статье рассмотрено практическое применение шаблона проектирования Компоновщик, который использован для представления связи «целое-часть» в информационной системе каталогизирования научных работ [6]. При разработке информационной системы использован инструмент объектно-реляционного отображения DevExpress eXpressApp Framework [6]. База данных реализована в среде целевой СУБД Microsoft SQL Server 2008 [2].

Паттерн Компоновщик используется для организации объектов в виде древовидной структуры и представления связи «целое-часть», что позволяет использующим её классам, выступающим в роли клиента, единообразно оперировать как индивидуальными, так и составными объектами [1]. В общем случае паттерн используется для организации иерархии неограниченной глубины. В нашем случае рассматриваемый шаблон использован для реализации связей, образующихся между классами, представляющими научное издание (научный журнал, международная конференция), экземпляр журнала (или сборник трудов конференции) и научная статья, так как они являются композиционными связями типа «один ко многим». Очевидно, что рассматриваемая иерархия имеет фиксированную глубину, поэтому ощутить выгоду от применения паттерна можно лишь в неполной мере. На рис. 1 представлена концептуальная и логическая модели реализации паттерна Компоновщик.

Рис. 1 Концептуальная (слева) и логическая (справа) модель реализации паттерна Компоновщик

Рисунок требует пояснений. На концептуальной модели присутствуют три сущности. Сущность Edition описывает издание, такое как научный журнал или научную конференцию. Volume представляет определённый номер журнала (за определённый год, месяц) или конкретный сборник конференции. Научная статья авторов представляется сущностью Article. Так как информационная система каталогизирования научных работ разрабатывалась на платформе .Net 4.0, то имеется возможность использовать все нововведения данной платформы. Поэтому логическая модель представлена в виде иерархии классов (т.к. язык C#, применяемый при реализации является объектноориентированным), содержащих параметры (используются Generic). Класс NamedObject является абстрактным и выступает в роли корня иерархии, поэтому содержит только общие для всех производных классов атрибуты. Параметризированный абстрактный класс Collection является базовым контейнером, который может содержать экземпляры любого производного от NamedObject класса в качестве элементов коллекции. Реализованные (не абстрактные) классы Edition и Volume предназначены для представления издания (научного журнала, конференции) и определённого номера журнала (сборника трудов конференции) соответственно. Каждый класс параметризирован необходимым типом элемента коллекции. Применение Generic обусловлено тем, что в общем случае в информационной системе необходимо разработать механизмы чёткого распределения информации по типам. При этом в будущем предполагается, что будет сохраняться, информация о научных журналах, выпускаемых сторонними ВУЗами, о научных конференциях, проводимых на базе сторонних ВУЗов,

102

и о собственных научных конференциях. В общем случае каждый из описанных типов изданий содержит экземпляры сущностей, представленных на концептуальной модели (рис. 1, слева). Однако каждый класс определяется собственным набором уникальных атрибутов. Поэтому каждый класс предметной области образуется подстановкой определённого типа, представляющего элементы коллекции. Для представления научной статьи конференции на логической модели (рис. 1, справа) объявлен класс Article.

Попытка реализации спроектированной логической модели в инструменте объектнореляционного отображения DevExpress eXpressApp Framework не увенчалась успехом [6]. Причина в том, что использование параметрированных типов (Generic) позволяет конструировать практически неограниченно сложные типы данных (классы). Такой подход не может быть реализован с помощью классических структурных паттернов объектно-реляционного отображения [3-4]. Поэтому при разработке программного приложения в логическую модель были внесены некоторые изменения (в виде добавленных классов), которые представлены на физической модели (рис. 2).

Рис. 2 Физическая модель реализации паттерна Компоновщик

На рис. 2 видно, что из-за отсутствия поддержки Generic потребовалось реализовать три иерархии однотипных классов, в общем случае представляющих концептуальную модель (рис. 1, слева). Базовым классом, объявленным для представления общей информации о конкретном издании, является абстрактный класс BaseEdition. Классы BaseJournal и BaseConference используются для описания научного журнала и научной конференции соответственно. Реализованный (не абстрактный) класс ForeignJournal предназначен для сохранения информации о стороннем научном журнале. Экземпляры классов ForeignConference создаются при сохранении информации о конференции, проводимой сторонним ВУЗом. Для сохранения информации о собственной конференции, проводимой на базе своего ВУЗа, необходимо создать экземпляр класса OwnConference. Класс BaseVolume является корнем иерархии, реализующей функциональные возможности, необходимые для представления определённого номера журнала и сборника конференции. Классы BaseJournalInstance и ForeignJournalInstance объявлены для описания конкретных номеров журнала в

103

общем и номера журнала, издаваемого в стороннем ВУЗе в частности. Абстрактный класс BaseConferenceProceeding содержит атрибуты, характеризующие сборник научных трудов конференции. Если конференция проводилась в стороннем ВУЗе, то для неё необходимо создать экземпляр класса ForeignConferenceProceeding. Информация о сборниках проведённых конференций сохраняется при помощи создания экземпляра класса OwnConferenceProceeding.

Класс ForeignJournalArticle используется для представления статьи в журнале, который издаётся в стороннем ВУЗе. Класс ForeignConferenceArticle описывает статью сборника научной конференции, проводимой сторонним ВУЗом. Для сохранения информации о статье, присланной на конференцию, проводимую собственным ВУЗом, создаётся экземпляр класса OwnConferenceArticle. Отметим, что все описанные классы унаследованы от соответствующих абстрактных. Так, класс BaseJournalArticle является базовым для всех статей научного журнала. А BaseConferenceArticle используется для объявления свойств, характерных всем статьям конференций независимо от места их проведения. Корневым абстрактным классом, описывающим научную публикацию, является класс BaseArticle.

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

Литература

1. Э. Гамма и др. Приёмы объектно-ориентированного проектирования. Паттерны проектирования. СПб: Питер, 2001. - 368 с.: ил. (Серия «Библиотека программиста»).

2. Электронная документация по Microsoft SQL Server 2008 (Июль 2009 г.),

http://download.microsoft.com/download/A/D/3/AD3A804B-94A4-4F4E-A5B5-8E44E5937679/SQLServer2008 BOL Jul2009 RUS.msi

3. Ambler S.W. Agile Database Techniques—Effective Strategies for the Agile Software, John Wiley & Sons, 2003, 373p.

4. Фаулер М. Архитектура корпоративных программных приложений, Пер. с англ. - М.: Издательский дом «Вильямс», 2004. - 544 с.: ил. -Парал. тит. англ.

5. 5 The fastest way to platform independent business applications, http://www.devexpress.com/Products/NET/Application Framework/

6. Олейник П.П., Игумнов Е.А., Свечкарёв Е.А. Критерии оптимальности информационной системы каталогизирования научных работ // Объектные системы - 2010: Материалы I Международной научнопрактической конференции. Россия, Ростов-на-Дону, 10-12 мая 2010 г / под общ. ред. П.П. Олейника. -Ростов-на-Дону, 2010. С. 25-29.

УДК 519.682.4, 371.32

ТРЕБОВАНИЯ К СОВРЕМЕННОЙ ОБУЧАЮЩЕЙ СРЕДЕ ПО ПРОГРАММИРОВАНИЮ1

Лаптев Валерий Викторович, к.т.н., доцент, кафедра Автоматизированные системы управления и информации, Астраханский государственный технический университет, [email protected]

Введение

1 Лауреат номинации "Лучший доклад о методах преподавания объектных технологий в ВУЗе". Автор награждается правом бесплатной публикации одного доклада по данной тематике на следующей конференции

104

i Надоели баннеры? Вы всегда можете отключить рекламу.