Файл: Применение объектно-ориентированного подхода при проектировании информационной системы..pdf

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

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

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

Добавлен: 24.04.2023

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

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

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

Язык UML был разработан компанией Rational SoFtware Corporation для унификации лучших свойств, которыми обладали более ранние методы и способы нотации [37, c. 45]. В 1997 году организация OMG ( Object Management Group — группа управления объектами) признала его в качестве стандартного языка моделирования. С тех пор UML получил дальнейшее развитие и широкое признание в отрасли информационных технологий.

Язык UML не зависит от применяемого процесса разработки программного обеспечения, хотя позже компания Rational предложила процесс, соответствующий этому языку, под названием Rational Unified Process (RUP: Krushten, 2003) [34, c. 101]. Совершенно очевидно, что процесс, в котором в качестве базового языка принят UML, должен поддерживать объектно-ориентированный подход к созданию ПО. Язык UML не подходит для устаревших структурных подходов, результатом которых являются системы, реализованные с помощью процедурных языков программирования наподобие языка COBOL [8, c. 234].

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

1.3 ЭТАПЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

1.3.1 ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД

Объектно-ориентированный подход (objectoriented approach) подразумевает разделение системы на компоненты с разной степенью детализации [16, c. 54]. В основе этой декомпозиции лежат классы объектов. Классы связаны разнообразными отношениями и обмениваются сообщениями, вызывающими операции над объектами.

Несмотря на то, что объектно-ориентированные языки программирования (к примеру, Simula) существовали еще в начале 1970х годов, объектно-ориентированный подход к проектированию систем получил распространение лишь в 1990х годах. Позднее ассоциация производителей программного обеспечения Object Management Group утвердила в качестве стандартного средства моделирования для этого подхода язык UML (Unified Modeling Language — унифицированный язык моделирования).

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


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

Другой причиной популярности объектного подхода является возможность удовлетворить требования вновь возникающих типов приложений и находить наилучшие способы борьбы с ростом дефицита ресурсов (application backlog), который проявляет ся либо в недостаточном количестве программ, либо в нарушении сроков поставок в ходе расширения и компоновки существующих систем программного обеспечения. К двум наиболее важным новым категориям приложений, для которых требуется объектная технология, относятся групповые вычисления ( workgroup computing) и мультимедийные системы (multimedia systems). Идея уменьшить дефицит ресурсов посредством концепции упаковки объектов (object wrapping) доказала как свою привлекательность, так и работоспособность.

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

Разработка с помощью последовательной детализации становится возможной благодаря тому, что все создаваемые в ходе разработки модели (анализа, проектирования и реализации) обладают семантическим богатством и базируются на одном и том же “языке” — базовый словарь этих моделей существенно не отличается (классы, атрибуты, методы, наследование, полиморфизм и т.д.). Следует, однако, заметить, что если в основу реализации положена реляционная база данных, то необходимость в сложной и связанной с риском трансформации по-прежнему сохраняется (поскольку базовая семантика реляционной модели сравнительно беднее).


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

1) Этап анализа проводится на еще более высоком уровне абстракции, и если реализация сервера предполагает использование реляционной базы данных, то может возникнуть значительный семантический разрыв (semantic gap) между концепцией и ее реализацией. Несмотря на то что анализ и проектирование могут проводиться итеративно и последовательно, в конце концов разработка достигает этапа реализации, на котором решение должно быть воплощено в реляционную базу данных. Если в качестве платформы реализации используется объектная или объектно-реляционная база данных, трансформация проекта проходит значительно легче.

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

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

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

Разработка новых программных приложений отличается значительно большей сложностью, и структурный подход совершенно не соответствует этой задаче [17, c. 93]. На сегодняшний день объектно-ориентированной подход — единственный известный метод, позволяющий совладать с разработкой нового программного обеспечения, управляемого событиями и отличающегося высоким уровнем интерактивности.


1.3.2 ЭТАПЫ ЖИЗНЕННОГО ЦИКЛА

Жизненный цикл разработки программного обеспечения представляет собой точно определенную хронологическую последовательность действий [20, c. 48]. На укрупненном уровне жизненный цикл может включать пять этапов:

1) Бизнес-анализ.

2) Проектирование системы.

3) Реализация.

4) Компоновка и развертывание.

5) Эксплуатация и сопровождение.

1.4 СРЕДЫ РАЗРАБОТКИ

1.4.1 EMBARCADERO RAD STUDIO

Embarcadero RAD Studio – среда разработки программных систем для операционных систем Windows. Данная среда позволяет быстро разработать программные системы для Windows, Mac, Android, IOS, интернет вещей (IoT) [11, c 54]. Среда позволяет писать приложения на С++ и Object Pascal. Главное окно Embarcadero RAD Studio показано на рисунке 12.

В состав Embarcadero RAD Studio входят Delphi, C++Builder.

Рисунок 12 – Главное окно среды Embarcadero RAD Studio

Embarcadero RAD Studio включает следующие основные новые возможности:

А) Поддержка Windows 10. С помощью Delphi и C++Builder можно разрабатывать VCL и FMX-приложения, которые поддерживают компоненты Windows 10 и API системы, компоненты WinRT\UWP;

Б) Компилятор C++11, основанный на архитектуре CLANG. В C++Builder используется компилятор c++, который основан на CLANG. Компилятор используется для Windows и мобильных платформ. Данный компилятор работает с VCL и кроссплатформенными структурами FMX;

В) Удвоенный размер проектов в IDE. Позволяет увеличить размер проектов, что позволяет разрабатывает большие, комплексные решения;

1.4.2 VISUAL STUDIO

Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода [9, c. 154]. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметноориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server)[27, c. 57]. Главное окно Visual Studio показано на рисунке 13.


Рисунок 13 – Главное окно среды Visual Studio

Visual Studio имеет множество возможностей:

    1. Современный C++. Visual Studio позволяет использовать последние стандарты языка С++.
    2. Создание универсальных программ для Windows. Используя C++ (либо C#, JavaScript или VB), вы можете создать единое универсальное приложение для Windows, способное работать на всех устройствах Windows 10.
    3. Мощные инструменты программирования. Среда имеет множество средств для редактирования, просмотра и рефакторинга, отладки, диагностики.

1.4.3 MONODEVELOP

MonoDevelop — свободная среда разработки, предназначенная для создания приложений C#, Java, Boo, Nemerle, Visual Basic .NET, Vala, CIL, C и C++. MonoDevelop позволяет разработчикам разрабатывать настольные и веб-приложения на Linux, Windows и Mac OS X. Среда предоставляет возможность .NET программы, сделанные в Visual Studio, портировать на Linux и Mac OS X; при этом сохраняется единый базовый код для всех платформ [26, c. 705]. Главное окно MONODEVELOP показано на рисунке 14.

Рисунок 14 – Главное окно среды MonoDevelop

2 ПРОЕКТНАЯ ЧАСТЬ

2.1 ПОСТАНОВКА ЗАДАЧИ

В ходе практики нужно было спроектировать и разработать программное средство для моделирования работы лифта. Лифт должен работать в многоэтажном доме. Программа отсчитывает время с тактами в одну секунду. Появление пассажира случайно. Также существует таймер отсчета для появления нового пассажира на любом этаже. Пассажир появляется на любом этаже, нажимает кнопку вызова лифта, если лифта на этом же этаже, то он открывает двери лифта. После этого кнопка лифта отжимается, и пассажир заходит в лифт. Далее пассажир нажимает кнопку случайного этажа, и лифт закрывает двери, затем начинает движение к заданному этажу. Когда лифт прибывает на нужный этаж, кнопка этажа отжимается, двери лифта открываются, и пассажир выходит из лифта. Затем лифт закрывает двери, и пассажир уходит

2.2 ИСПОЛЬЗОВАНИЕ UML ДЛЯ РАЗРАБОТКИ ПРОГРАММНОЙ МОДЕЛИ

UML (Unified Modeling Language) — унифицированный язык моделирования — язык графического описания для объектного моделирования в области разработки программного обеспечения. UML – это мощный инструмент для проектирования программ или программных систем. Он помогает спроектировать полностью рабочие элементы программы. Предоставляет возможность описать работу программы во всех ситуациях. Что помогает выявить слабые и сильные стороны проектируемых компонентов, алгоритмов программы. Построить архитектуру программной системы. UML дает возможность разобраться в работе сложной системы. На рисунке 15 показаны этапы UML проектирования. Язык UML применим не только на стадии проектирования программного средства, но и на всех этапах разработки программы, так как на всех этапах нужен последовательный план действий, который упорядочивает разработку программного средства.