Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (ПОНЯТИЕ И СУЩНОСТЬ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.06.2023

Просмотров: 52

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1. ActionScript (3.0)

2. Ada

3. C#

4. C++

5. Cyclone

6. D

7. Delphi

8. Dylan

9. Eiffel

10. F#

11. Io

12. Java

13. JavaScript

14. JScript .NET

15. Object Pascal

16. Objective-C

17. Perl

18. PHP

19. PowerBuilder

20. Python

21. Ruby

22. Scala

23. Simula

24. Smalltalk

25. Swift

26. Vala

27. VB.NET

28. Visual DataFlex

29. Xbase++

30. X++

Кроме ОО-языков общего назначения существуют и узкоспециализированные ОО-языки.

Рассмотрим некоторые из них.

JavaScript относится к языкам, в которых нет особых различий в парадигмах. Это значит, что можно писать в объектно-ориентированном, функциональном, императивном и других стилях. Именно такой подход сильно повлиял на простоту его изучения и применения. К слову, как раз с этой целью он и создавался. Скорее всего, факт простоты и функциональности и сыграл решающую роль в развитии и распространении языка. Он стал настолько популярен, что используется практически во всех сферах веб-программирования. JavaScript не принадлежит ни одной компании. Однако само название JavaScript зарегистрировано за Oracle, которой также принадлежит Java.

По ходу разработки продукт несколько раз переименовывали. Начальная версия называлась Mocha, затем - LiveScript, и уже в финале - JavaScript. В наше время практически каждый пользователь Интернета хотя бы отдалённо знает, что такое JavaScript. То, что можно сделать на языке JavaScript, практически не ограничено. Его встраивают в приложения, веб-страницы, сервисы и standalone-продукты. Новомодная и мощная связка AJAX привнесла ещё больше возможностей для реализации потенциала JavaScript. Именно она даёт возможность незаметно для пользователя обновлять небольшую часть страницы, не перезагружая её целиком. Это позволяет сэкономить трафик и увеличить удобство использования веб-интерфейсов. Внедрение в документ происходит путем указания специальных тегов, означающих начало и конец скрипта - <script> и </script>. Как правило, встраивать скрипт непосредственно в HTML-код считается моветоном. Более изящным и признанным способом является вынесение кода в отдельный файл, а затем подключение его в нужном месте страницы. Итак, это лёгкий в изучении и применении скриптовый язык, который используется практически на каждом сайте или веб-сервисе в Интернете. На его основе создаются и продвигаются библиотеки, расширяющие функционал и упрощающие разработку. Стандартных же возможностей JavaScript вполне хватает для реализации большинства задач, связанных не только с веб-программированием, но и с прикладными решениями[11].


Delphi (Дельфи) — Среда программирования, использующая язык Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. По сути является наследником языка Pascal с объектно-ориентированными расширениями.

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

Самая важная библиотека — базовая EiffelBase, она содержит базовые структуры и алгоритмы. Короче говоря, эта либа включает в себя классы, составляющие ядро Eiffel-системы: они служат для арифметических операций и обработки исключений.

EiffelVision 2 — кросс-платформенная графическая библиотека, позволяющая строить расширенный пользовательский интерфейс для приложений, работающих в любой мало-мальски распространенной операционной системе: Windows, UNIX, Linux, VMS и других. Следующие две либы платформозависимые — работают только в Windows. WEL (Windows Eiffel Library) основывается на Win32 API (отсюда зависимость) и позволяет строить приложения, используя средства последней: окна, диалоги, элементы управления, присущие Win-приложениям, а также многое другое. EiffelCOM упрощает разработку приложений, использующих компонентную модель Microsoft (что понятно из названия либы).

Клиент-серверная библиотека EiffelNet позволяет обмениваться структурами данных между компьютерами по сети.

EiffelTime реализует разностороннюю работу с датой и временем. При включении библиотеки EiffelStore в приложение оно получает возможность работы с данными различных баз данных через драйвер ODBC, среди них: Oracle, SQL, Ingres, Sysbase. EiffelThread реализует в приложении поддержку многопоточности, при этом оно остается независимым от аппаратного и программного окружения и в равной степени поддерживается во всех Windows NT, UNIX системах на процессорах x86/64, SGI рабочих станциях и суперкомпьютерах Cray. Eiffel2Java создает интерфейс между программой, написанной на Eiffel, и Java-приложением, таким образом, из первой можно вызвать вторую. С помощью EiffelWeb можно на языке Eiffel разрабатывать динамические HTML-страницы, содержащие формы, обрабатываемые CGI-скриптами.

Библиотеки EiffelLex и EiffelParse используются для создания текстовых и синтаксических анализаторов. Они могут быть применены для разработки трансляторов самых разных видов, в том числе компиляторов и интерпретаторов.

Eiffel содержит огромное количество синтаксических отличий от стандартных (C-подобных) языков: объявление классов, переменных, методов, массивов; условные, циклические конструкции; предусловия, постусловия, классовые инварианты; взаимоотношения клиента и поставщика и многие другие языковые конструкции содержатся в Эйфеле.


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

2.2. Использование объектно-ориентированного подхода при проектировании информационной систем

Приведем пример использования объектно-ориентированного подхода при моделировании предметной области.

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

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

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

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

Проанализируем обзор существующих подходов к построению модели предметной области и анализ применения объектно-ориентированных фреймворков при её моделировании.

Существующие методы моделирования предметной области с использованием объектно-ориентированного подхода: моделирование с использованием XMLфайлов, аннотированные классы.

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

Например, на рисунке 1 представлен фрагмент модели предметной области кафедры технического вуза.


Рисунок 1. Пример диаграммы классов модели предметной области

Также при моделировании предметной области может быть использован расширяемый язык разметки XML. Он предназначен для разметки документов произвольной структуры. XML документы содержат дерево вложенных открывающих и закрывающих тегов, каждый из которых может содержать несколько пар «атрибут – значение». Таким образом, если выполнить предварительную разметку документа, то с помощью XML можно создать онтологию отдельного документа и целой предметной области[13].

С помощью конфигурационных XML-файлов осуществляется сопоставление классов с таблицами БД. При использовании файла XML можно сгенерировать основу исходного кода для классов длительного хранения. При разработке крупных проектов довольно часто возникает ситуация, когда сквозной функционал, слабо относящийся к бизнес-логике, сильно расширяется, заполняя код однотипными конструкциями. Это может быть логирование операций, работа с кешем или проверка прав доступа[14].

В этом случае полезно использовать аннотации. Аннотация – средство, что позволяет встроить информацию поддержки в исходные файлы, то есть аннотации можно использовать для отслеживания ошибок, устранения предупреждений, генерации кода, XML файлов, маркировки классов, полей. Например, можно пометить поле аннотацией @NotNull, что означает, что данное поле не может быть равно null. Или, например, пометить метод аннотацией @Secured с указанием роли, которой должен будет обладать пользователь для выполнения этого метода.

При написании средних по масштабу и крупных web-проектов[15] применяются специальные языки программирования (ЯП), например, PHP или Python. При этом код при их написании на чистом ЯП растягивается на тысячи строк, в которых даже самому опытному web-программисту легко запутаться. Чтобы этого не происходило, необходима четкая структуризация кода и избавление его от дублирования.

Для этого предназначены фреймворки, которые представляют собой, исходя из названия, каркас или структуру всего web-проекта. Они позволяют избавиться от повторяющегося кода и большой рутинной работы при чистом программировании.

«Фреймворк.АСУ» служит интеграционной средой при построении информационного пространства кафедры АСУ, объединяющего различные задачи учебного процесса в рамках единого интерфейса отображения и управления информацией. Основные возможности фреймворка «Фреймворк.АСУ» рассматриваются в работе Куликова Г.Г., Старцева Г.В., Бармина А.А., Барминой О.В [16] и Куликова Г.Г., Шилиной М.А., Старцева Г.В., Бармина А.А [17].


Платформа фреймворка построена на принципах объектно-ориентированного подхода и состоит из двух основных компонентов: среды разработки, и системы управления контентом[18].

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

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

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

Гибкость “Фреймворк.АСУ” объясняется возможностью создавать произвольные типы объектов, настраивать связи между ними, а также управлять отображением объектов в рамках веб-проекта.

Ориентируясь на принципы объектно-ориентированного программирования, в «Фреймворк.АСУ» организованы классы, описывающие предметную область кафедры АСУ.

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

Рисунок 2. Фрагмент графа наследования класса CModel

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

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

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

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