Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Язык моделирования UML).pdf
Добавлен: 27.04.2023
Просмотров: 417
Скачиваний: 3
СОДЕРЖАНИЕ
РАЗДЕЛ 1. ОБЪЕКТНО-ОРИЕНТИРОАНЫЙ ПОДХОД
1.3 Преимущества и недостатки объектного подхода
РАЗДЕЛ 2 ОБЪЕКТНО-ОРИЕНТИРОВАНОЕ МОДЕЛИРОВАНИЕ. UML
2.1 Объектно-ориентированное моделирование
2.3 Основные диаграммы объектной модели
2.4 Обзор case-средств, поддерживающих UML
3.2 Диаграмма вариантов использования
3.5 Диаграмма последовательности
ВВЕДЕНИЕ
Развитие подходов в программировании привело к появлению такого понятия как парадигма – набор основных понятий, правил и методов внутри подхода, которые определяют стиль программирования. В истории развития программирования как вида деятельности человека можно выделить ряд различных по своей сути парадигм. Одной из наиболее новых, и современных считается объектно-ориентированная парадигма.
Объектно-ориентированное программирование (ООП) в настоящее время стало доминирующей парадигмой программирования вытеснив структурные, процедурно-ориентированные подходы, разработанные в начале 1970-х годов.
В последнее десятилетие в компьютерном мире наметилась тенденция моделирования сложных систем визуальными (наглядными) моделями. Причем в новых методах проектирования сложных компьютерных систем, например ООП и ООАП, наглядные модели очень часто связываются с такими зрительными образами как "взгляды", направленные на сложную систему с различных точек зрения. Набор из нескольких наглядных моделей (модельных взглядов) создает в сознании специалистов интегральный образ сложной компьютерной системы, которую они совместно проектируют. Вместе с тем, наглядные модели служат эффективным средством документирования компьютерных систем и их программных обеспечений, а также языком общения между программистами, системными аналитиками и заказчиками систем.
Наиболее известными визуальными моделями, используемыми для проектирования компьютерных систем и их программных обеспечений, являются:
- объектно-ориентированный подход с реализацией через диаграммы языка UML;
- функционально-структурное моделирование (SADT), стандарт IDEF0, таблицы и диаграммы стандарта IDEF1X, моделирование потоков данных ‑ DFD. Эти визуальные модели имеют математическую основу в виде теорий графов, множеств и матриц.
Моделирования в выше упомянутых системах не ограничивается только задачами программирования, разработки ПО и сопутствующими задачами. Сфера использования моделей гораздо шире, начиная от моделирования работы конкретных устройств и заканчивая построением моделей многоуровневых сложных по взаимодействию систем и бизнес проектов.
ООП ‑ это модель программирования, основанная на утверждении того, что программа это совокупность объектов, которые взаимодействуют между собой. Каждый объект в этой модели является независимым, и он способен получать, обрабатывать данные и отправлять эти данные другим объектам. В ООП использовано модели наследования, модульности, полиморфизма и инкапсуляции. При объектно-ориентированном подходе программа представляет собой описание объектов, их свойств (или атрибутов), совокупностей (или классов), отношений между ними, способы их взаимодействия и операций над объектами (или методы). Для классификации объектов в ООП используют классы. Класс служит образцом для создания объекта, то есть объект является ничем иным, как копией класса.
Учитывая популярность и востребованность ООП, этому вопросу посвящено большое количество литературных источников, учебников, статей и публикаций. Материал, изложенный в этих источниках, можно условно разделить на несколько категорий: общие принципы ООП, ООП в конкретно выбранных языках программирования, решение прикладных задач с использованием ООП, особенности реализации и специфические вопросы использования, объектное моделирование.
Актуальность исследования определяется высоким уровнем востребованности моделирования на различных этапах проектирования ИС. И, как следствие, актуальным становятся не только изучение и применение методологий, но и использование автоматизированных средств, позволяющих строить модели и работать с ними. Такие средства принято называть CASE.
Актуальность работы обусловлена повышением требований к качеству и скорости разработки систем. Наличие модели, особенно для масштабных многокомпонентных систем, позволяет оценить будущую функциональность системы, ее внутреннюю архитектуру, интерфейсы и способы взаимодействия между элементами системы и внешними сущностями, к которым, в том числе, относятся и непосредственные пользователи системы. Одним из главных преимуществ предпроектного моделирования можно выделить возможности оценки рисков и раннего тестирования – выявления проблемных участков проекта на ранних стадиях. Это позволяет более качественно организовать как процесс разработки так, что особо важно, сократить и повысить эффективность тестирования и верификации программного обеспечения.
CASE (англ. computer-aided software engineering) ‑ набор инструментов и методов программной инженерии для проектирования программного обеспечения, который помогает обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов.
Методологии проектирования и первые CASE-системы появились достаточно давно. Этим вопросам посвящено множество печатных изданий и статей. Исторически первым появилось структурное и структурно-функциональное моделирование. Классическими трудами по структурному анализу и моделированию являются: работа Д. Марко [6] – рассматривает базовые принципы моделирования, Вендеров [6] рассматривает применение CASE – средств при структурном моделировании, С. В. Маклаков [16] рассматривает структурный подход на примере моделирования бизнес процессов предприятий и построения КИС.
Объектный подход появился позже, основы методологии описаны в трудах основоположников подхода Буча, Рамбо, Якобсона [23], из зарубежных авторов стоит упомянуть Д. Арлоу и А. Нейштадт [24], которые рассматривают уже непосредственно UML, как средство объектного моделирования.
Среди отечественных авторов можно назвать Пальчунова [14] – рассматривает практическое применение CASE – средства IBM Rational Rose, подобные вопросы рассматривает и Трофимов [18]. Рожкова в своей статье [15] проводит сравнительный анализ CASE – средств, Мирошниченко и Вичугова [12, 4] рассматриваю применение моделирования на конкретных предметных задачах.
Объектом исследования курсового проекта является объектная методология моделирования и проектирования программных систем.
Предметом исследования являются особенности методологии объектного подхода и ее применение на примере конкретной информационной системы.
Цель работы состоит в детальном рассмотрении объектного подхода в моделировании программных систем, выявления особенностей и преимуществ объектных моделей, применении подхода на конкретном практическом примере.
В объеме курсовой работы ставятся следующие задачи:
- Рассмотреть сущность проектирования ИС и содержание отдельных этапов, уделить особое внимание этапу проектирования ИС.
- Рассмотреть основные подходы и особенности объектно-ориентированного моделирования систем.
- Рассмотреть CASE-средства, поддерживающие язык моделирования UML
- Практически реализовать модели на примере проектирования ИС «Автоматизация учета продаж цветочного магазина»
РАЗДЕЛ 1. ОБЪЕКТНО-ОРИЕНТИРОАНЫЙ ПОДХОД
1.1 Парадигма ООП
Основное правило ООП подхода – все объекты, которыми оперирует программа, являются классами.
Парадигма ООП строится на 3 основных понятиях: наследование, полиморфизм, инкапсуляция. Эти понятия широко многократно описаны в различной литературе, их более подробное описание будет представлено в работе ниже. Попытаемся описать понятие класса, используя короткие определения.
ООП характеризуется следующими принципами[20]:
- все является объектом;
- вычисления осуществляются путем взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие; объекты взаимодействуют, посылая и получая сообщения; сообщение ‑ это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия;
- каждый объект имеет независимую память, которая состоит из других объектов;
- каждый объект является представителем класса, который выражает общие свойства объектов данного типа;
- в классе задается функциональность (поведение объекта); тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия;
- классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования; память и поведение, связанное с экземплярами определенного класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
1.2 Основные понятия ООП
В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств.
Класс (class) ‑ множество объектов, связанных общностью структуры и поведения; абстрактное описание данных и поведения (методов) для совокупности похожих объектов, представители которой называются экземплярами класса.
Объект (object) ‑ конкретная реализация класса, обладающая характеристиками состояния, поведения и индивидуальности, синоним экземпляра.
Класс может включать в себя разные составляющие, но условно их можно разделить на две группы:
методы ‑ это функционал класса, его возможные действия;
поля или свойства – переменные, константы, данные.
Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений (рис 1.1).
Рисунок 1.1 – Архитектура программы при ООП
Первым ООП-языком программирования считается Smalltalk, разработанный сутрудниками Xerox PARC: Аланом Кейем, Дэном Ингаллсом, Тедом Кеглером в конце 1970-х годов. В результате разработчики языка получили объектно-ориентированный язык программирования с динамической типизацией и поддержкой базового набора требований ООП. Язык Smalltalk и сегодня активно развивается и имеет свой круг пользователей. Язык и история его развития оказали существенное влияние на парадигму ООП в целом и на развитие других языков с поддержкой ООП в частности. Многие современные идеи зародились именно в сообществе Smalltalk, были развиты и внедрены в программирование. Это касается понятий рефакторинга, шаблонов в проектировании. Сообществом впервые была предложена и концепция экстремального программирования, котрая достаточно хорошо зарекомендовале себя для определенного типа проектов.
Основные идеи языка легли в основы ООП парадигмы:
«Все - объекты» ‑ все типы, блоки кода, блоки памяти представляются объектами. Выполнение программы состоит из массива ссылок сообщений между объектами. Любое сообщение может быть послано любому объекту; объект-получатель определяет, является ли это сообщение правильным, и что нужно сделать, чтобы его обработать.
Model-View-Controller (MVC) ‑ шаблон структуры интерфейса. (В последнее время используют и другие концепции реализации пользовательского интерфейса - например, Morphic в Squeak и Pollock в VisualWorks).
Динамическая трансляция ‑ современные коммерческие виртуальные машины компилируют байткод в машинные коды для быстрого выполнения.
Отличительной чертой языка является то, что и базовые конструкции типа ветвления и циклов не являются внутренними командами языка, а реализованы в Smalltalk как объекты.
Также к новшествам, которые впоследствии получили признание, относится и понятие виртуальной машины, обеспечивающей кроссплатформенность и переносимость кода. На авторство идеи вирутальной машины, как промежуточного звена в процессе компиляции и выполнения программы, претендуют также разработчики компании Sun(Java), но некоторые исчточники указывают авторство членов сообщества Smalltalk.
1.3 Преимущества и недостатки объектного подхода
Методология объектно-ориентированного проектирования, безусловно, является передовой и эффективной для проектирования широкого спектра больших программных систем, таких, как интерактивные системы, системы реального времени. Концепции ООП хорошо сочетаются с другими подходами к написанию компьютерных систем. Методы ООП займут достойное место и в технологиях программирования будущего, органично сочетаясь с другими (как старыми, хорошо известными, так и новыми, еще не осознанными и не сформулированными) подходами к проектированию больших программных систем.
Несомненным преимуществом объектного подхода является концептуальная близость к предметной области произвольной структуры и назначения. Механизм наследования атрибутов и методов позволяет строить производные понятия на основе базовых и таким образом создавать модель сколь угодно сложной предметной области с заданными свойствами.
Основное достоинство ООП – сокращение количества межмодульных вызовов и уменьшение объемов информации, передаваемой между модулями, по сравнению с модульным программированием. Это достигается за счет более полной локализации данных и интегрирования их с подпрограммами обработки, что позволяет вести практически независимую разработку отдельных частей (объектов) программы. Кроме этого, объектный подход предлагает новые технологические средства разработки, такие как наследование, полиморфизм, композиция, наполнение, позволяющие конструировать сложные объекты из более простых. В результате существенно увеличивается показатель повторного использования кодов, появляется возможность создания библиотек объектов для различных применений, и разработчикам предоставляются дополнительные возможности создания систем повышенной сложности.