Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Visual Paradigm for UML

Содержание:

Введение

В первой главе будет рассмотрена суть объектно-ориентированного подхода. А так же рассмотрим унифицированный язык моделирования UML.

Во второй главе рассмотрим основные преимущества и недостатки объектно-ориентированного подхода.

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

1. Общая характеристика объектно­-ориентированного подхода к проектированию

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

Данный подход к проектированию ИС подразумевает выполнение трех этапов:

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

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

Объектно-ориентированное программирование - методология программирования, предполагающая реализацию модели системы на объектно-ориентированном языке программирования, непосредственно выполняющего отражение определенных объектов и предоставляющего средства для определения классов объектов.

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

Каждый объект относится к некоторому объектному типу (классу), в котором определена внутренняя структура данных любого объекта данного класса, а также программный код методов объекта.

Основные принципы построения объектной модели:

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

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

Модель классов раскрывает статическую структуру объектов системы: их индивидуальность, отношения с другими объектами, атрибуты и операции. Эта модель создает контекст для остальных представлений. Цель создания модели классов. Модель классов представляется в виде диаграммы классов.

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

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

Диаграммы последовательности направлены на отображение временной последовательности взаимодействия объектов. Диаграммы деятельности показывают поток управления между последовательными этапами вычислений.

Де-факто стандартом моделирования в рамках объектно-­ориентированного подхода стал унифицированный язык моделирования UML (Unified Modeling Language).

Унифицированный язык моделирования UML — это визуальный язык для определения, конструирования и документирования систем.

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

Данный язык содержит следующий набор диаграмм:

1. Структурные (structural) модели:

  • диаграммы классов (class diagrams) - для моделирования статической структуры классов системы и связей между ними;
  • диаграммы компонентов (component diagrams) - для моделирования иерархии компонентов (подсистем) системы;
  • диаграммы размещения (deployment diagrams) - для моделирования физической архитектуры системы.

2. Модели поведения (behavioral):

  • диаграммы вариантов использования (use case diagrams) — для моделирования функциональных требований к системе (в виде сценариев взаимодействия пользователей с системой);
  • диаграммы взаимодействия (interaction diagrams): диаграммы последовательности (sequence diagrams) и кооперативные диаграммы (collaboration diagrams) — для моделирования процесса обмена сообщениями между объектами;
  • диаграммы состояний (statechart diagrams) — для моделирования поведения объектов системы при переходе из одного состояния в другое
  • диаграммы деятельности (activity diagrams) - для моделирования поведения системы в рамках различных вариантов использования, или потоков управления.

В целях адаптации UML к конкретным условиям использования, в него введен механизм расширения, что принципиально отличает его методологий структурного моделирования (семейство стандартов IDEF, DFD, STD и ERD). Структурные нотации относятся к сильно типизированным языкам моделирования, не допускающим произвольную интерпретацию семантики элементов моделей. UML, являясь слабо типизированным языком, такую интерпретацию допускает.

2. Преимущества и недостатки объектно-ориентированного подхода к проектированию

2.1. Преимущества объектно-ориентированного подхода к проектированию

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

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

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

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

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

- Мы сокращаем время на разработку, которое с выгодой может быть отдано другим проектам.

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

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

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

2.2. Недостатки объектно-ориентированного подхода к проектированию

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

Объектно-ориентированное программирование требует знания четырех вещей.

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

(2) Многоразовое использование требует от программиста познакомиться с большими библиотеками классов. А это может оказаться сложнее, чем даже изучение нового языка программирования. Библиотека классов фактически представляет собой виртуальный язык, который может включать в себя сотни типов и тысячи операций. В языке Smalltalk, к примеру, до того, как перейти к практическому программированию, нужно изучить значительную часть его библиотеки классов. А это тоже требует времени.

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

(4) Очень трудно изучать классы, не имея возможности их «пощупать». Только с приобретением мало-мальского опыта можно уверенно себя почувствовать при работе с использованием ООП.

Часто можно слышать, что ООП является неэффективным. Мы должны четко проводить грань между неэффективностью на этапе выполнения, неэффективностью в смысле распределения памяти и неэффективностью, связанной с излишней универсализацией.

(1) Неэффективность на этапе выполнения. В языках типа Smalltalk сообщения интерпретируются во время выполнения программы путем осуществления поиска их в одной или нескольких таблицах и за счет выбора подходящего метода. Конечно, это медленный процесс. И даже при использовании наилучших методов оптимизации Smalltalk-программы медленнее оптимизированных C-программ.

В гибридных языках типа Oberon-2, Object Pascal и C++ посылка сообщения приводит лишь к вызову через указатель процедурной переменной. На некоторых машинах сообщения выполняются лишь на 10% медленнее, чем обычные процедурные вызовы. И поскольку сообщения встречаются в программе гораздо реже других операций, их воздействие на время выполнения влияния практически не оказывает.

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

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

(3) Излишняя универсальность. Неэффективность может также означать, что программа имеет ненужные возможности. В библиотечном классе часто содержится больше методов, чем это реально необходимо. А поскольку лишние методы не могут быть удалены, то они становятся мертвым грузом. Это не воздействует на время выполнения, но влияет на возрастание размера кода.

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

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

3. Программные продукты

3.1. IBM Rational Rose

Программный продукт IBM Rational Rose, выпущенный компанией IBM Rational Software, поддерживает визуальное объектно-ориентированное моделирование. Для визуального моделирования используются UML-диаграммы. Данное средство поддерживает построение кода по диаграммам, а также обратное проектирование – построение модели по программному коду для большого числа языков программирования. IBM Rational Rose поддерживает большинство UML-диаграмм для подробного моделирования проекта, однако, многие из этих диаграмм не влияют на генерируемый код.

Отметим, что данное инструментальное средство поддерживает только построение декларативной части кода – иерархию классов спроектированной системы, а также артефакты (поля, методы и т.д.) конкретных классов. Вся функциональность, которая отвечает за поведение системы, должна быть написана разработчиком вручную.

Возможности IBM Rational Rose:

  1. Поддерживает следующие типы UML-диаграмм:
  • Use case diagram (диаграммы прецедентов);
  • Deployment diagram (диаграммы развертывания);
  • Statechart diagram (диаграммы состояний);
  • Activity diagram (диаграммы активности);
  • Interaction diagram (диаграммы взаимодействия);
  • Sequence diagram (диаграммы последовательностей действий);
  • Collaboration diagram (диаграммы коопераций);
  • Class diagram (диаграммы классов);
  • Component diagram (диаграммы компонент).
  1. Поддерживает генерацию исходного кода для языков C++, Smalltalk, PowerBuilder, Ada, SQLWindows и ObjectPro.
  2. Поддерживается обратный инжиниринг для C++, Smalltalk, PowerBuilder, Ada, SQLWindows и ObjectPro.
  3. UML-моделирование для разработки баз данных с возможностью представления интеграции данных и требований приложений на логической или физической основе.
  4. Интегрируется с MS Visual Studio 6 (включает поддержку на уровне прямой и обратной генерации кодов и диаграмм Visual Basic и Visual С++ с использованием ATL (Microsoft Active Template Library), Web-Классов, DHTML и протоколов доступа к различным базам данных). Также есть возможность интеграции с любой системой контроля, совместимой со стандартом интерфейса прикладного программирования SCC, в том числе с IBM Rational ClearCase.
  5. Интегрируется со средством PVCS для организации групповой работы и управления проектом. Для организации групповой работы в Rational Rose возможно разбиение модели на управляемые подмодели. Каждая из них независимо сохраняется на диске или загружается в модель.
  6. Для документирования проектов интегрируется со средством SoDA.
  7. Функционирует на различных платформах: в среде Windows, Sun SPARC stations (UNIX, Solaris, SunOS), Hewlett-Packard (HP UX), IBMRS/6000 (AIX).
  8. Реализована возможность отмены/повтора действий пользователя.
  9. Непосредственная работа (инжиниринг и обратный инжиниринг) с исполняемыми модулями и библиотеками форматов EXE, DLL, TLB, OCX.
  10. Поддержка технологий MTS (Microsoft Transaction Server) и ADO (ActiveX Data Objects) на уровне шаблонов и исходного кода, а также элементов технологии Microsoft - COM+ (DCOM).
  11. Полная поддержка компонентов CORBA и J2EE, включая реализацию технологии компонентной разработки приложений CBD (Component-Based Development), языка определения интерфейса IDL (Interface Definition Language) и языка определения данных DDL (Data Definition Language).
  12. Полная поддержка среды разработки Java-приложений, включая прямую и обратную генерацию классов Java формата JAR, а также работу с файлами формата CAB и ZIP.

Рис. 1. Интерфейс IBM Rational Rose

3.2. Sybase PowerDesigner

Sybase PowerDesigner - программа проектирования совре­менных информационных систем. Она предоставляет уникальную возможность ускорения аналитических процессов и разработки про­граммного обеспечения, сочетая традиционные преимущества средств моделирования реляционных баз данных с новыми, производительными и эффективными по стоимости технологиями моделирования на базе языка UML. Это средство проектирования, ко­торое сочетает возможности объектно-ориентированного, концепту­ального и физического моделирования объектов в единой, интегрированной среде.

Возможности Sybase PowerDesigner:

  1. Поддерживает все стандартные типы диаграмм UML 2.0.
  2. Генерация исходного кода С#, C++, Java, PowerBuilder, VisualBasic.
  3. Поддерживает обратный инжиниринг для Java, PowerBuilder, VisualBasic.
  4. Поддержка баз данных IBM DB2, Informix, Ingres, InterBase, Access, MS SQL, MySQL, Oracle, PostgeSQL, Sybase AS Anywhere и Enterprise.
  5. Интеграция со средствами разработки на Java и сертифицированными под J2EE/EJB 2.0 серверами приложений.
  6. Возможность одновременной работы над одной моделью большого числа аналитиков и проектировщиков. Хранение, управление и создание версий моделей PowerDesigner и других документов.
  7. Расширенный, независимый от модели генератор отчетов позволяет получить документ, включающий в себя информацию по нескольким моделям.
  8. Среда функционирования - Windows.
  9. Реализована возможность отмены/повтора действий пользователя.
  10. Возможность создания новых и внесения изменений в имеющиеся шаблоны для генерации кода.
  11. Генерирование XML и IDL.
  12. Импорт/экспорт XMI файла.
  13. Requirement Model, специализированная модель для документирования и анализа требований, предъявляемых к создаваемой информационной системе.
  14. Information Liquidity Model, модель, предназначенная для проектирования систем репликации данных.

Рис. 2. Интерфейс Sybase PowerDesigner

3.3. Visual Paradigm for UML

Visual Paradigm for UML представляет собой case-средство визу­ального UML-моделирования, предлагает объектно-ориентированный подход к анализу и проектированию систем различной сложности и позволяет создавать множество типов диаграмм в полностью визуализированной среде разработки по­средством простых drag&drop операций.

Visual Paradigm for UML предоставляет разработчикам удобные UML-руководства, интерактивные UML-демонстрации и UML- проекты.

Возможности Visual Paradigm for UML:

  1. Поддерживает UML версии 2.1.
  2. Поддерживается генерация кода на C#, VB .NET, Object Definition Language (ODL), Flash ActionScript, Delphi, Perl, Objective-C, Ruby.
  3. Поддерживается обратный инжиниринг для Java, C+ + , CORBA IDL, PHP, XML Schema, Ada, Python, Java class, .NET dll и exe, JDBC.
  4. Поддерживается EJB диаграмма - визуализация EJB систем, генерирование EJB кода.
  5. Интегрируется с Eclipse, NetBeans, IntelliJ IDEA, WebLogic Workshop, Borland JBuilder, Oracle JDeveloper.
  6. Поддерживается многопользовательская разработка с использованием VP Teamwork Server, CVS Repository, Subversion Repository, Perforce Repository.
  7. Генерируются отчеты и документация в форматах PDF, HTML, Microsoft Word.
  8. Среда функционирования - Linux, Mac OSX, Windows.
  9. Реализована возможность отмены/повтора действий пользователя.
  10. Экспорт диаграмм в JPG, PNG, SVG, EMF, PDF.
  11. Редактор форм.
  12. Поддержка ORM (Object-relational mapping)- генерирование Java-объектов по базе данных.
  13. Импорт/экспорт XMI файла.
  14. Операции с командной строки.
  15. Lazy-Loading Technology (дает возможность эффективно и быстро работать с большими и сложными проектами).

Visual Paradigm for UML существует в нескольких редакциях: Visual Paradigm for UML Viewer Edition, Community Edition, Personal Edition, Modeler Edition, Standard Edition, Professional Edition, Enterprise Edition.

Visual Paradigm for UML Viewer Edition - свободно распространяемая версия, предназначенная для просмотра и навигации по моделям и диаграммам, созданным с помощью Visual Paradigm.

Visual Paradigm for UML Community Edition - свободно распространяемая версия, предназначенная для разработчиков некоммерческих проектов. Полностью поддерживает UML 2.1, также различные плагины, импорт изображений, основные функции печати и документирования проектов. Некоторые функции, предоставляемые данной версией, не включены в платные версии продукта (например, Requirements Engineering tools, Automatic Diagram Layout).

Visual Paradigm for UML Personal Edition - имеет такие же функциональные возможности как и Community Edition, но без ограничений, существующих в Community Edition (например, один пользователь может создавать более чем одну диаграмму/на тип диаграмм/на проект). Чтобы отметить использование данной версии только в личных целях, в печатной версии диаграммы, в левом верхнем углу будет отображаться имя пользователя.

Visual Paradigm for UML Modeler Edition - имеет такие же функциональные возможности и характеристики как и Personal Edition. Позволяет расширять функциональность до UML 2.1 с помощью интеграции с Microsoft Visio. Так же, в данном издании поддерживается командная разработка, генерирование документации в формате HTML, PDF.

Visual Paradigm for UML Standard Edition - в дополнение к функциональным характеристикам вышеперечисленных версий позволяет генерировать исходный код языков программирования Java, C++, VB.NET, PHP 5.0, Delphi, Perl, Python, Ada, Ruby, Objective-C, IDL, Object Definition Language, Flash ActionScript 3.0 , кроме того поддерживается и обратный инжиниринг.

Visual Paradigm for UML Professional Edition - версия, основанная на Standard Edition, обеспечивает более широкую поддержку инжиниринга и обратного инжиниринга, IDE интеграции.

Visual Paradigm for UML Enterprise Edition - полнофункциональная версия программного продукта.

Рис. 3. Интерфейс Visual Paradigm for UML

3.4. Sparx Systems Enterprise Architect

Enterprise Architect - средство UML-моделирования от компании Sparx Systems. Данное средство предназначено не только для создания диаграмм, но и для генерации исходных кодов для различных языков программирования.

Возможности Sparx Systems Enterprise Architect:

  1. Нотация UML 2.0 с поддержкой всех видов диаграмм.
  2. Поддерживает языки C++, Java, C#, VB, VB.Net, Visual Basic , Delphi, PHP, Python.
  3. Поддерживается обратный инжиниринг для C++, Java, C#, VB, VB.Net, Visual Basic, Delphi, PHP, Python.
  4. Реализовано моделирование БД, прямое проектирование в DDL (Data Definition Language) и обратное проектирование из ODBC (Open DataBase Connectivity).
  5. Существуют плагины для интеграции Enterprise Architect с Visual Studio.NET, Eclipse.
  6. Возможна многопользовательская работа.
  7. Генерация документации в форматах HTML и RTF.
  8. Среда функционирования - Windows.
  9. Реализована возможность отмены/повтора действий пользователя.
  10. Загружаемые UML-профили (например, SPEM), позволяющие создавать узкоспециализированные модели.
  11. Поддержка паттернов проектирования.
  12. Утилиты для менеджера проекта, тестирование, глоссарий, другие ресурсы.
  13. Автоматизация интерфейса.
  14. Поддержка макросов.
  15. Поддержка следующих видов диаграмм: Analysis diagrams, Custom diagrams (requirements, change, UI).

Enterprise Architect существует в трех редакциях: Desktop Edition, Professional Edition, Corporate Edition.

EA Desktop Edition предназначен для индивидуальных разработчиков, аналитиков, и является простейшим инструментом проектирования, но имеет некоторые ограничения (например, отсутствует поддержка многопользовательского доступа к диаграммам, импорт-экспорт кодов и другие возможности).

EA Professional Edition является полнофункциональной средой UML-программирования.

EA Corporate Edition включает в себя всю функциональность Desktop и Professional Edition и, кроме того, предоставляет возможность соединения с MySQL, SQL Server, PostgreSQL, Sybase Adaptive Server Anywhere, Oracle9i . Также поддерживается авторизация пользователей или группы пользователей, и блокировка элементов.

Кроме этого существует версия EA Lite FREE read-only. Она позиционируется как решение, позволяющее зарегистрированным пользователям демонстрировать UML- диаграммы персоналу и заказчикам. EA Lite предоставляет все базовые функции Enterprise Architect, за исключением создания документации и сохранения.

Рис. 4. Интерфейс Sparx Systems Enterprise Architect

Заключение

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

Библиография

1. Бек К. Экстремальное программирование: разработка через тестирование. / К. Бек. - СПб.: Питер, 2003. - 224 с.

2. Боггс У. UML и Rational Rose. / У. Боггс, М. Боггс. - М.: Лори, 2010. - 580 с.

3. Буч Г. Введение в UML от создателей языка. / Г. Буч, Д. Рамбо, И. Якобсон. - М.: ДМК Пресс, 2010. - 496 с.

4. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений. / Г. Буч [и д.р.] - М.: Вильямс, 2008. - 720 с.

5. Влиссидес Д. Применение шаблонов проектирования. Дополнительные штрихи. / Д. Влиссидес. - М.: Вильямс, 2003. - 144 с.

6. Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Э. Гамма [и д.р.] СПб.: Питер, 2015. - 368 с.

7. Маклафлин Б. Объектно-ориентированный анализ и проектирование. / Б. Маклафлин, Г. Поллайс, Д. Уэст. - СПб.: Питер, 2013. - 608 с.

8. Мейер Б. Объектно-ориентированное конструирование программных систем. / Б. Мейер. - М.: Русская Редакция, 2005. - 768 с. 

9. Трофимов С.А. CASE-технологии. Практическая работа в Rational Rose. / С.А. Трофимов. - М.: Бином-Пресс, 2002. - 288 с.

10. Фаулер М. Архитектура корпоративных программных приложений. / М. Фаулер. - М.: Вильямс, 2006. - 544 с.

11. Фаулер М. Рефакторинг: улучшение существующего кода. / М. Фаулер. - СПб.: Символ-Плюс, 2003. - 432 с.

12. Фаулер М. UML. Основы. / М. Фаулер, К. Скотт. – СПб.: Символ-Плюс, 2002. – 192 с.

13. Эванс Э. Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем. / Э. Эванс. - М.: Вильямс, 2011. - 448 с.