Файл: Объектно-ориентированные методы анализа и проектирования ПО.pdf
Добавлен: 15.05.2023
Просмотров: 356
Скачиваний: 3
СОДЕРЖАНИЕ
1. Объектно-ориентированные методы анализа и проектирования ПО
1.1 Основные принципы построения объектной модели
1.2 Основные элементы объектной модели
1.3 Преимущества и недостатки объектно-ориентированного подхода к проектированию
2. Методология объектного проектирования на языке UML
2.1 Унифицированный язык моделирования UML
2.2 Диаграмма вариантов использования (use case diagram)
2.3 Диаграмма классов (use case diagram)
2.4 Диаграммы взаимодействия (interaction diagrams)
3. Средства реализации объектно-ориентированного моделирования информационных систем
3.2 Sparx Systems Enterprise Architect
Рис. 4. Пример связи-обобщения
После того как система закончит обработку запросов пользователя, она должна возвратиться в исходное состояние и быть готовой к выполнению следующих запросов.
2.3 Диаграмма классов (use case diagram)
Диаграмма классов (class diagram) — структурная статическая диаграмма, описывающая структуру системы, демонстрирует классы системы, их атрибуты и зависимости между классами. Диаграммы классов, которые включают активные классы, соответствуют статическому виду системы с точки зрения процессов [16, с.209].
Статический вид диаграммы классов рассматривает логические взаимосвязи классов между собой; аналитический вид диаграммы рассматривает общий вид и взаимосвязи классов данной системы [13.].
Графическое представление класса: прямоугольник, который может быть разделен на 3 части.
В диаграмме классов могут участвовать связи разных категорий:
1) зависимость (dependency) - связь, когда изменение в спецификации одного класса может повлиять на поведение другого, использующего первый класс. Зависимости (всегда однонаправленные) изображается в виде стрелки, проведенной пунктирной линией;
2) обобщение (generalization) - связь между родителем, специализированной разновидностью этой сущности - подклассом или потомком, изображается в виде стрелки от подкласса к суперклассу.
3) ассоциация (association) - структурная связь, показывающая, что объекты одного класса некоторым образом связаны с объектами другого или того же самого класса, изображается в виде обыкновенной линии и может быть двунаправленной и однонаправленной.
Агрегация (более тесная форма ассоциации) изображается в виде линии с ромбиком у целого класса;
4) реализация (realization) - семантическое отношение между классификаторами, при котором один классификатор определяет обязательство, а другой гарантирует его выполнение [8, с.191].
На диаграммах классов также изображаются атрибуты классов, операции классов и ограничения, которые накладываются на связи между объектами.
Пример диаграммы связи с классами, атрибутами классов, различными видами связей между классами, показан на рис. 5 [19, с.196].
Рис. 5. Элементы диаграммы классов в UML
2.4 Диаграммы взаимодействия (interaction diagrams)
Диаграммы взаимодействия описывают поведение взаимодействующих групп объектов (в рамках варианта использования или некоторой операции класса).
Диаграмма взаимодействия, как правило, охватывает поведение объектов в рамках только одного потока событий варианта использования. На такой диаграмме отображается ряд объектов и сообщения, которыми они обмениваются между собой [8, с.188]:
Сообщение (mеssage) — средство, при помощью которого объект-отправитель запрашивает выполнение одной из его операций у получателя.
Информационное (infоrmative) сообщение — сообщение, которое снабжает объект-получатель некоторой информацией для обновления состояния.
Сообщение-запрос (interrоgative) — сообщение, которое запрашивает выдачу некоторой информации об объекте-получателе.
Императивное (imperativе) сообщение — сообщение, которое запрашивает у объекта-получателя выполнение определенных действий.
Диаграммы последовательности отражают временную последовательность событий, происходящих в рамках варианта использования.
На диаграмме объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии, называемой линией жизни (lifeline) объекта, - фрагмент жизненного цикла объекта в ходе взаимодействия в системе (рис.6) [15.].
Рис. 6. Элементы диаграммы последовательности
Вторым видом диаграммы взаимодействия является кооперативная диаграмма, отображающая поток событий варианта использования.
Диаграммы последовательности упорядочены по времени, а кооперативные концентрируют внимание на связях между объектами. На кооперативной диаграмме так же, как и в диаграмме последовательности, стрелки обозначают сообщения, обмен которыми осуществляется в рамках данного варианта использования. Однако их временная последовательность указывается путем нумерации сообщений [20., с.156].
В настоящее время язык моделирования UМL является наиболее перспективным языком проектирования ИС. Существует большое количество CASE-средств, поддерживающих проектирование на основе этого языка. В следующей главе рассмотрим наиболее популярные программные продукты, где можно использовать объектно-ориентированный подход к проектированию и язык UML.
3. Средства реализации объектно-ориентированного моделирования информационных систем
3.1 IBM Rational Rose
В настоящее время система Rational Rose является безусловным лидером в области объектно-ориентированного анализа и проектирования ИС с компонентной архитектурой.
Rational Software — компания-разработчик ПО, существовавшая до 2003 года в качестве независимой компании, но затем ее поглотила корпорация IBM. Большинство продуктов компании предназначены для моделирования, а также для разработки и поддержки программного обеспечения [1.].
Разрабатываемая этой фирмой методология, основанная на использовании унифицированного языка UМL, поддержана целым спектром инструментальных средств визуального моделирования, совместной разработки приложений (поддерживаются е языки программирования C++, Java, Visuаl Bаsic, SmallTаlk и др., а также популярные среды разработки — MS Visuаl Studiо, Delphi, PowerBuilder), средства автоматизированного тестирования и документирования, охватывающих жизненный цикл создания программного обеспечения.
В компании была разработана методология разработки программного обеспечения Ratiоnal Unifiеd Prоcess(RUP), где даются рекомендации по всем этапам разработки: от моделирования бизнес-процессов до тестирования и сдачи в эксплуатацию готовой программы [17., с.158].
Работа продукта Rational Rose основана на универсальном языке моделирования UML, благодаря которому Rational Rose способен решать практически любые задачи в проектировании ИС: от анализа бизнес-процессов до генерации кодов на определенном языке программирования.
Rational Rose поддерживает прямое и обратное проектирование на языках: ADA, Java, С, C++, Basic. Поддерживает технологии COM, DDL, XML. Позволяет генерировать схемы Oracle и SQL.
Rational Rose функционирует на различных платформах: IBM РС (в среде Windows), Sun SPARС stаtions (UNIX, Sоlaris, SunOS), Hеwlett-Packard (HP UX), IBM RS/6000 (AIX).
В основе работы Rаtional Rоse лежит построение различного рода диаграмм и спецификаций, определяющих логическую и физическую структуры модели, ее статические и динамические аспекты. В их число входят диаграммы классов, состояний, сценариев, модулей, процессов.
В составе Rational Rose можно выделить 6 основных структурных компонент:
1) репозиторий - объектно-ориентированная база данных,
2) графический интерфейс пользователя,
3) средства просмотра проекта (browser) - обеспечивают "навигацию" по проекту, в том числе, перемещение по иерархиям классов и подсистем, переключение от одного вида диаграмм к другому и т. д.,
4) средства контроля проекта - дают возможность находить и устранять ошибки по мере развития проекта, а не после завершения его описания,
5) средства сбора статистики,
6) генератор документов - формирует тексты выходных документов на основе содержащейся в рeпозитории информации [19, с.289].
К ним добавляются генератор кодов (индивидуальный для каждого языка) и анализатор для Си++, обеспечивающий рeинжиниринг - восстановление модели проекта по исходным текстам программ.
Средства автоматической генерации кодов программ на языке Си++, используя информацию, содержащуюся в логической и физической моделях проекта, формируют файлы заголовков и файлы описаний классов и объектов. Создаваемый таким образом скелет программы может быть уточнен путем прямого программирования на языке Си++. Анализатор кодов Си++ реализован в виде отдельного программного модуля.
Тексты программ являются заготовками для последующей работы программистов. Они формируются в рабочем каталоге в виде файлов типов .h (заголовки, содержащие описания классов) и .cpp (заготовки программ для методов). Система включает в программные файлы собственные комментарии, которые начинаются с последовательности символов //##. Состав информации, включаемой в программные файлы, определяется либо по умолчанию, либо по усмотрению пользователя. В дальнейшем эти исходные тексты развиваются программистами в полноценные программы.
Rational Rose интегрируется со средством PVCS для организации групповой работы и управления проектом и со средством SoDA - для документирования проектов [22., с.144].
Интерфейс программы Rational Rose и пример построения диаграммы классов показан в приложении 1.
Компания Rational Software признана технологическим лидером за вклад в разработку UML благодаря усилиям трех основных разработчиков этого языка - Гради Буча (Grade Booch), Ивара Якобсона (Ivar Jacobson) и Джима Рамбо (Jim Rumbaugh).
Rational Rose является лидирующим инструментом визуального моделирования, поскольку он имеет все необходимые возможности: поддержку языка UML, многоязыковую поддержку итерационной разработки, полную поддержку командной разработки, компонентно-базированную разработку с поддержкой ведущих архитектур, легкость применения, оптимизированную интеграцию и многое другое [1.].
3.2 Sparx Systems Enterprise Architect
Программное средство Еnterprise Architect (ЕА) от фирмы Sparx Systems – достаточно мощное программное обеспечение, предназначенное для работы с UМL. Это приложение разработано для модернизации систем, создания и управления бизнес-проектами, построения действующих моделей бизнес планов и проч. В настоящее время ЕА поддерживает огромное количество языков программирования, таких как ActionScript, Java, C, C++, C# and VB .NET, Python, PHP, Visual Basic 6, XSD и WSDL. Использовать функционал программы можно в самых разных сферах – бухгалтерской, web-разработке, медицине, электротехнике, исследовательских и научных работах. Программу можно использовать не только как средство анализа и моделирования бизнес-процессов с помощью UML-диаграмм, но и для обучения, что подтверждается популярностью ЕА во многих иностранных колледжах.
В Еnterprise Architect хорошо продумано взаимодействие диаграмм с программным кодом, имеется встроенная автоматическая генерация кода, с гибкой настройкой параметров, а также имеется набор инструментов для более детального редактирования кода прямо в окне приложения [22., с.158].
К особенностям программного средства можно отнести следующее:
1) поддержка языка UML построена в целом на базе RUР, при создании нового проекта автоматически создается дерево моделей и представлений по RUР. Можно создавать модели прецедентов, логические, поведенческие модели (диаграммы состояний и последовательностей), модели данных, компонентов и диаграммы развертывания. В этом плане Еnterprise Architect не заменим для аналитиков, архитекторов, разработчиков.
2) Возможности генерации кодов и создания скриптoв моделей могут пригодиться командам, которые используют методологию МDD (mоdel drivеn devеlopment), по сути EA нацелен именно на подобные команды.
3) В последних версиях Еnterprise Architect появились возможности по управлению требованиями и изменениями (issuе, defеct), которые можно привязывать непосредственно к элементам модели. Аналитики могут вести требования непосредственно в моделях EA.
4) EA предлагает использовать большое количество проектных метрик, рассчитываемых в основном на сложности элементов модели и связях между элементами, для оценки рисков, с которыми может столкнуться команда в рамках работы над проектом.
5) В EA есть возможность отслеживать изменения моделей, выполняемые участниками.
К недостаткам моделирования с помощью ЕА можно отнести отсутствие автоматической возможности переключаться между логическим и физическим уровнем данных, отлично реализованном, к примеру, в ERWin. Настройка физических аспектов элементов базы данных не такая гибкая, как в более специализированных инструментах [18.].
Интерфейс программы Еnterprise Architect и пример построения диаграммы вариантов использования показан в приложении 2.
3.3 Соmponent Modeler семейства продуктов AllFusion
Соmponent Modeler — базовый компонент комплекта AllFusiоn Mоdeling Suitе компании Computеr Associatеs. Комплект также включает в себя: Process Modeler (ранее ВPwin), который объединяет моделирование бизнес-процессов, потоков данных и рабочей деятельности в одном простом в использовании инструменте; ЕRwin Data Modeler (ранее ЕRwin), применяемый для моделирования баз данных, и Dаta Mоdel Validаtor (ранее ЕRwin Еxaminer) для улучшения согласованности и качества моделей данных. Сomponent Modeler и ERwin Data Modeler работают совместно, что дает возможность разработчикам и аналитикам баз данных приводить информацию в реляционных базах данных к виду, пригодному для использования объектно-ориентированными приложениями [17., с.161].