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

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

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

Добавлен: 25.06.2023

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

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

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

(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 . Также поддерживается авторизация пользователей или группы пользователей, и блокировка элементов.