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

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

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

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

Добавлен: 26.06.2023

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

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

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

Существует множество технологий и инструментальных средств, с помощью которых можно реализовать в некотором смысле оптимальный проект ИС, начиная с этапа анализа и заканчивая созданием программного кода системы. В большинстве случаев эти технологии предъявляют весьма жесткие требования к процессу разработки и используемым ресурсам, а попытки трансформировать их под конкретные проекты оказываются безуспешными. Эти технологии представлены CASE-средствами верхнего уровня или CASE-средствами полного жизненного цикла. Они не позволяют оптимизировать деятельность на уровне отдельных элементов проекта, и, как следствие, многие разработчики перешли на так называемые CASE-средства нижнего уровня. Однако они столкнулись с новой проблемой — проблемой организации взаимодействия между различными командами, реализующими проект.[10]

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

В настоящее время консорциум пользователей UML Partners включает в себя представителей 3таких грандов информационных технологий, как Rational Software, Microsoft, IBM, Hewlett-Packard,Oracle, DEC, Unisys, IntelliCorp, Platinum Technology.

UML представляет собой объектно-ориентированный язык моделирования, обладающий следующими основными характеристиками:

- является языком визуального моделирования, который обеспечивает разработку репрезентативных моделей для организации взаимодействия заказчика и разработчика ИС, различных групп разработчиков ИС;

- содержит механизмы расширения и специализации базовых концепций языка.

UML — это стандартная нотация визуального моделирования программных систем, принятая консорциумом Object Managing Group (OMG) осенью 1997 г., и на сегодняшний день она поддерживается многими объектно-ориентированными CASE-продуктами.

UML включает внутренний набор средств моделирования (модулей?) («ядро»), которые сейчас приняты во многих методах и средствах моделирования. Эти концепции необходимы в большинстве прикладных задач, хотя не каждая концепция необходима в каждой части каждого приложения.

Пользователям языка предоставлены возможности:

- строить модели на основе средств ядра, без использования механизмов расширения для большинства типовых приложений;


- добавлять при необходимости новые элементы и условные обозначения, если они не входят в ядро, или специализировать компоненты, систему условных обозначений (нотацию) и ограничения для конкретных предметных областей[3]

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

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

На этапе создания логической модели ИС описание требований к системе задается в виде модели и описания системных прецедентов, а предварительное проектирование осуществляется с использованием диаграмм классов, диаграмм последовательностей и диаграмм состояний.

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

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

Стандарт UML , принятый Object Management Group (OMG) , предлагает следующий набор диаграмм для моделирования:

Диаграмма вариантов использования - use case diagram - для моделирования бизнес-процессов организации и требований к создаваемой системе и представляет собой последовательность действий (транзакций), выполняемых системой в ответ на событие, инициируемое некоторым внешним объектом (действующим лицом). Вариант использования (use case) - это описание функциональности системы на "высоком уровне". Действующее лицо (actor) - это всё, что взаимодействует с системой. Варианты использования и действующие лица определяют сферы применения создаваемой системы. При этом варианты использования описывают все то, что происходит внутри системы, а действующие лица - то, что находится за ее пределами. Следует отметить, что нередко название диаграмм use case переводится на русский язык как диаграммы прецедентов, а сами варианты использования называют прецедентами.

Диаграммы деятельностей - activity diagrams - для моделирования поведения системы в рамках различных вариантов использования, или моделирования деятельностей. Диаграммы классов - class diagrams - моделируют статическую структуру классов системы и связи между классами.


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

Диаграммы последовательности - sequence diagrams – является разновидностью диаграммы взаимодействия, и отражают временную последовательность событий, происходящих в рамках варианта использования.

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

Диаграмма компонентов - component diagrams - является разновидностью диаграммы реализации и используется для графического изображения физической архитектуры системы. Могут быть использованы для демонстрации разделения системы на модули и взаимодействие между ними.

Диаграмма развертывания - deployment diagrams - является также разновидностью диаграммы реализации, которая описывает физическую архитектуру аппаратной и программной системы. Они отображают программные компоненты, процессоры и устройства, которые входят в архитектуру.[2]

Диаграммы прецедентов (диаграммы вариантов использования, use case diagrams) – это обобщенная модель функционирования системы в окружающей среде.

Диаграммы видов деятельности (диаграммы деятельностей, activity diagrams) – модель бизнес-процесса или поведения системы в рамках прецедента.

Диаграммы взаимодействия (interaction diagrams) – модель процесса обмена сообщениями между объектами, представляется в виде диаграмм последовательностей (sequence diagrams) или кооперативных диаграмм (collaboration diagrams).

Диаграммы состояний (statechart diagrams) – модель динамического поведения системы и ее компонентов при переходе из одного состояния в другое.

Диаграммы классов (class diagrams) – логическая модель базовой структуры системы, отражает статическую структуру системы и связи между ее элементами.

Диаграммы базы данных (database diagrams) — модель структуры базы данных, отображает таблицы, столбцы, ограничения и т.п.

Диаграммы компонентов (component diagrams) – модель иерархии подсистем, отражает физическое размещение баз данных, приложений и интерфейсов ИС.


Диаграммы развертывания (диаграммы размещения, deployment diagrams) – модель физической архитектуры системы, отображает аппаратную конфигурацию ИС.

На рис.2 показаны отношения между различными видами диаграмм UML. Указатели стрелок можно интерпретировать как отношение "является источником входных данных для..."(к примеру, диаграмма прецедентов является источником данных для диаграмм видов деятельности и последовательности). Приведенная схема является наглядной иллюстрацией итеративного характера разработки моделей с использованием UML.[3]

Рисунок 2 Взаимосвязи между диаграммами UML

3.1.2 Язык программирования C++

Язык программирования C++ – компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования. В 1990-х годах язык стал одним из наиболее широко применяемых языков программирования общего назначения.

При создании C++ стремились сохранить совместимость с языком C. Большинство программ на C будут исправно работать и с компилятором C++. Язык C++ имеет синтаксис, основанный на синтаксисе C.

Язык возник в начале 1980-х годов, когда сотрудник фирмы «Bell Laboratories» Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. До начала официальной стандартизации язык развивался в основном силами Страуструпа в ответ на запросы программистского сообщества. В 1998 году был ратифицирован международный стандарт языка C++: ISO/IEC 14882:1998 «Standard for the C++ Programming Language»; после принятия технических исправлений к стандарту в 2003 году нынешняя версия этого стандарта – ISO/IEC 14882:2003.[5]

Название «C++» происходит от C, в котором оператор «++» обозначает приращение.

Основными дополнениями языка программирования C++ по сравнению с языком C являются:

- поддержка объектно-ориентированного программирования;

- поддержка обобщённого программирования через шаблоны; дополнительные типы данных;

- исключения; пространства имён;

- встраиваемые функции;

- перегрузка операторов;

- перегрузка имён функций; ссылки и операторы управления свободно распределяемой памятью;

- дополнения к стандартной библиотеке.


Рисунок 3 Характеристики С++

В книге Бьёрн Страуструп описывает некоторые правила, которые он использовал при проектировании C++. Знание этих правил может помочь понять, почему C++ такой, каким он стал. Вот некоторые из этих правил :

- Язык C++ разработан как универсальный язык со статическими типами данных, эффективностью и переносимостью языка C;

- Язык C++разработан так, чтобы непосредственно и всесторонне поддерживать множество стилей программирования (процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование).

- Язык C++ разработан так, чтобы давать программисту свободу выбора, даже если это даёт ему возможность выбирать неправильно.

- Язык C++ разработан так, чтобы максимально сохранить совместимость с языком программирования C, тем самым делая возможным лёгкий переход от программирования на C.

- Язык C++ избегает таких особенностей, которые зависят от платформы или не являются универсальными.

- Язык C++ не накладывает никакой избыточной нагрузки на программу, не использующую какие-либо возможности.

- Язык C++разработан так, чтобы не требовать слишком усложнённой среды программирования.

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

Кроме того, существует огромное количество библиотек C++, не входящих в стандарт. В программах на C++ можно использовать многие библиотеки C. Алфавит C++ включает:

- прописные и строчные латинские буквы и знак подчеркивания;

- арабские цифры от 0 до 9;

- специальные знаки: {, %, # и т.д.;

- пробельные символы: пробел, символы табуляции, символы перехода на новую строку.[7]

Язык программирования С++ представляет высокоуровневый компилируемый язык программирования общего назначения со статической типизацией, который подходит для создания самых различных приложений. На сегодняшний день С++ является одним из самых популярных и распространенных языков.

Своими корнями он уходит в язык Си, который был разработан в 1969—1973 годах в компании Bell Labs программистом Деннисом Ритчи (Dennis Ritchie). В начале 1980-х годов датский программист Бьерн Страуструп (Bjarne Stroustrup), который в то время работал в компании Bell Labs, разработал С++ как расширение к языку Си. Фактически вначале C++ просто дополнял язык Си некоторыми возможностями объектно-ориентированного программирования. И поэтому сам Страуструп вначале называл его как "C with classes" ("Си с классами").