Kniga-Online.club
» » » » Терри Кватрани - Rational Rose 2000 и UML Визуальное моделирование

Терри Кватрани - Rational Rose 2000 и UML Визуальное моделирование

Читать бесплатно Терри Кватрани - Rational Rose 2000 и UML Визуальное моделирование. Жанр: Эпическая фантастика издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

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

выпуска последовательных версии и планирование их содержания, проведение консультаций для групп проектировщиков, разработчиков, сборщиков и тестеров, а также помощь в определении будущей маркетинговой стратегии»[9].

Представление архитектуры 4 + 1

Программная архитектура многомерна — она состоит из нескольких одновременно развивающихся представлений[10] (см. рис. 11.1).

Во всех последующих разделах этой главы рассказывается об элементах каждого представления и нотации языка UML для описания архитектурных решений.

Рис. 11.1. Представление архитектуры 4 + 1

Логическое представление

Логическое представление (logical view) архитектуры описывает функциональные требования к системе — то, что система должна обеспечивать для обслуживания пользователей. Логическая архитектура отображается на диаграмме классов, содержащей классы и отношения, которые представляют ключевые абстракции разрабатываемой системы.

Большинство нотаций языка UML содержится в самом логическом представлении архитектуры (классы, ассоциации, агрегации, обобщение, пакеты и др.). Оно вводится на фазе проработки при создании классов и пакетов, представляющих основные абстракции предметной области. Постепенно все больше классов и пакетов добавляется в модель для отражения решений, касающихся ключевых механизмов системы. Ключевой механизм — это решение относительно общих стандартов, правил и норм. Выбор ключевых механизмов системы часто называют тактическим проектированием (tactical design). «Плохое тактическое проектирование может уничтожить даже тщательно продуманную архитектуру, поэтому разработчики должны уменьшить этот риск, определив ключевые правила проекта»[11]. К некоторым ключевым механизмам относятся: язык разработки, хранение данных, удобный пользовательский интерфейс, обработка ошибок, механизмы взаимодействия, распределение и миграция объектов, сетевые средства.

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

Кроме того, концепции связности (cohesion), замкнутости (closure) и повторного использования (reuse) повлияют на ваш выбор. Роберт Мартин (Robert Martin) рассмотрел некоторые вопросы выбора пакетов системы в своей книге «Разработка объектно-ориентированных приложений на С++ с использованием методов Буча». Подходы и нотация Буча вполне применимы к методологии Rational Unified Process и языку UML. Отсюда вывод: язык UML может использоваться для отражения стратегических решений в системе при внесении пакетов и классов в модель для представления, реализации и документального описания этих решений.

Ключевые механизмы для задачи регистрации учебных курсов

Поскольку многие разработчики владеют именно С++, а в дальнейшем систему планируется расширять для автоматизации других потребностей университета, то в качестве основного языка был выбран С++. Разработчики архитектуры выяснили, что для создания графического интерфейса пользователя (ГИП) потребуется определенный набор графических элементов управления, и в модель был добавлен пакет Элементы управления ГИП (GUI Controls). Стратегия хранения данных предполагает использование отдельного класса доступа к базе данных (теневого класса) для каждого информационного класса в системе. Существуют и другие стратегии, например с применением механизмов наследования. Но именно эта стратегия выбрана потому, что уже накоплен достаточный опыт в реализации такого метода хранения и он считается наименее рискованным. На текущем этапе в модель добавляется пакет для доступа к базе данных, содержащий необходимые теневые классы. Для обработки исключений решено использовать механизмы языка С++ catch и throw. Вместо обработчиков исключений в модель добавлен общий пакет Обработка ошибок (Error Handling). И наконец, в систему добавлен набор классов для реализации основных коммерческих операций Базовые средства (Foundation). Пакеты, представляющие ключевые решения для системы регистрации курсов, показаны на рис. 11.2.

Рис. 11.2. Система регистрации учебных курсов

Так как Обработка ошибок и Базовые средства используются всеми остальными пакетами системы, они являются глобальными пакетами (global packages).

Выбор глобальных пакетов в программе Rational Rose состоит из следующих шагов:

1. Щелкните правой кнопкой мыши по пакету на диаграмме классов.

2. В появившемся контекстно-зависимом меню выберите команду Open Specification (Параметры), чтобы вызвать диалоговое окно настройки параметров пакета.

3. Выберите вкладку Detail (Детально).

4. Установите флажок Global (Глобальный).

5. Щелкните по кнопке ОК, чтобы закрыть диалоговое окно настройки параметров.

Представление реализации

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

Элементами моделирования в представлении компонентов (component view) являются пакеты, компоненты и связи между ними.

Пакет в данном представлении архитектуры — это физический раздел системы. Пакеты организованы в виде иерархии уровней или слоев, где каждый уровень имеет четко определенный интерфейс. На рис. 11.3 изображена типичная схема уровней системы.

Рис. 11.3. Уровни системы

Нотация языка UML для изображения пакетов в представлении компонентов напоминает изображение пакетов в логическом представлении — см. рис. 11.4. Для создания пакетов в представлении компонентов в программе Rational Rose:

1. Щелкните правой кнопкой мыши по разделу Component View (Представление компонентов) в окне браузера.

2. В появившемся контекстно-зависимом меню выберите команду New => Package (Создать => Пакет). В список объектов браузера будет добавлен новый пакет New Package.

3. Введите нужное имя пакета.

Рис. 11.4. Нотация языка UML для пакетов

Главная диаграмма компонентов обычно представляет определенные для системы пакеты.

Чтобы получить главную диаграмму компонентов в программе Rational Rose:

1. Дважды щелкните по диаграмме Main Diagram (Главная диаграмма) в разделе Component View (Представление компонентов) в окне браузера, чтобы открыть диаграмму.

2. В списке браузера щелкните по пакету и перетащите его на диаграмму.

3. Повторите второй шаг для других пакетов, которые нужно поместить на диаграмму.

4. Чтобы добавить отношения зависимости, щелкните по кнопке Dependency (Отношение зависимости) на панели инструментов, затем по пакету-клиенту и проведите линию связи к пакету-поставщику.

Главная диаграмма компонентов для задачи регистрации учебных курсов показана на рис. 11.5.

Рис. 11.5. Главная диаграмма компонентов

Компоненты исходного кода

В представлении компонентов модели компоненты исходного кода — это программные файлы, содержащиеся внутри пакетов. Тип файлов зависит от языка программирования (например, в С++ — файлы. h и срр, в Java — .Java, в PowerBuilder — .pbl). Каждый компонент связан с каким-либо языком. Классы в логическом представлении отображаются на компоненты в представлении компонентов. Для С++ один класс отображается в один компонент. Однако иногда на один компонент может быть отображено больше одного класса. Это обычно происходит в том случае, когда между классами существует очень тесная связь. Напри-

мер, контейнер и его итератор содержатся в одном. h- и одном срр-файле. Значит, класс-контейнер и класс-итератор будут отображаться на один компонент. Я также видела классы, которые используются как шаблон взаимодействия, отображаемый на один физический файл. Нотация языка UML для компонента показана на рис. 11.6.

Рис. 11.6. Нотация языка UML для компонента

Программные компоненты в задаче регистрации учебных курсов

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

Перейти на страницу:

Терри Кватрани читать все книги автора по порядку

Терри Кватрани - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Rational Rose 2000 и UML Визуальное моделирование отзывы

Отзывы читателей о книге Rational Rose 2000 и UML Визуальное моделирование, автор: Терри Кватрани. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*