4.1. Язык UML

4.1. Язык UML

Классический структурный подход к созданию ИС предполагает последовательную реализацию этапов анализа, проектирования, создания модулей, объединения модулей в единую систему, тестирования и внедрения. Применение CASE-технологий и CASE-средств, подобных ERwin и BPwin, позволяет в несколько раз сократить время разработки ИС и значительно снизить вероятность появления .ошибок за счет автоматизации начальных этапов разработки (а как следствие - более качественного планирования и проектирования) и автоматической; генерации структуры сервера БД и кода клиентского приложения. Однако эта технология не лишена недостатков. Код клиентского приложения генерируется на основе информации о структуре БД. К структуре БД предъявляются определенные требования (нормализации), в результате чего данные хранятся в таблицах БД не всегда в той же форме, в которой они должны представляться на экранных формах. Другими словами, если код приложения генерируется не на основе описания предметной области, невозможно построить эффективное приложение со сложной бизнес-логикой. Кроме того, при структурном подходе к разработке ИС риск остается большим на всех этапах создания системы вплоть до этапа тестирования, когда мы можем обнаружить допущенные ошибки и оценить состоятельность системы. В случае обнаружения ошибки необходимо вернуться на тот этап разработки, на котором допущена ошибка, и заново пройти последующие этапы.

Альтернативой структурному подходу стали лишенные перечисленных недостатков объектно-ориентированные методы разработки ИС. В первой половине 90-х годов был предложен разработанный на основе наиболее популярных объектных методов ОМТ (Rumbaudh), Booch и OOSE (Jacobsom) универсальный язык объектного проектирования - Unified Modeling Language, UML (The Unified Method, Draft Edition (0.8). Rational Software Corporation, October 1995).

Существует несколько CASE-средств, поддерживающих язык UML. Наиболее известными являются PLATINUM Paradigm Plus фирмы PLATINUM technology и выпущенный фирмой Rational Software программный пакет Rational Rose. Эти инструменты позволяют генерировать код приложения, в полной мере отвечающий бизнес-правилам, и с наименьшим риском.

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

Модель представляет собой совокупность диаграмм, описывающих различные аспекты структуры и поведения ИС. В дальнейшем в качестве примера будет описана объектная модель, построенная в Rational Rose for Java (version 4.0). Для просмотра модели в Rational Rose используется иерархический навигатор модели - Browser (рис. 4.1).

Рис. 4.1. Навигатор модели в Rational Rose - Browser

Рассмотрим в общих чертах некоторые диаграммы UML.

Диаграммы использования системы (Use Cases) показывают, какая функциональность должна быть реализована в системе, основные функции, которые должны быть включены в систему (use case), их окружение (actors) и взаимодействие функций с окружением (рис. 4.2). Воздействующие объекты (actors) не являются частью системы - это конечные пользователи или другие программы, взаимодействующие с проектируемой ИС. Функциональность (use case) - последовательность действий, выполняемых системой, которые приводят к определенным результатам, необходимым для конкретного воздействующего объекта.

Рис. 4.2. Диаграмма Use Cases. Здесь Customer, Salespeople - Actors; Register for Order, Validate User - Use case

Диаграммы Use Cases включают отношения и ассоциации, показывающие взаимодействие между воздействующими объектами и функциями (изображаются в виде стрелок), и примечания (note), которые могут быть привязаны к любому объекту диаграммы Use Cases. Для создания новой диаграммы Use Cases следует правой кнопкой мыши щелкнуть в навигаторе модели по закладке Use Case View и выбрать во всплывающем меню пункты New/Use Case. Для внесения в диаграмму Use Case и установления связей между ними следует использовать кнопки палитры инструментов Rational Rose:

Диаграммы классов. Под объектом в UML понимается некоторое абстрактное представление конкретного объекта предметной области. Каждый объект имеет состояние, поведение и индивидуальность. Например, объект "Проект" может иметь два состояния - "открыт" и "закрыт". Поведение объекта определяет, как объект взаимодействует с другими объектами. Индивидуальность означает, что каждый объект уникален и отличается от Других объектов. Под классом понимается описание объектов, обладающих общими свойствами (атрибутами), поведением, общими взаимоотношениями с другими объектами и общей семантикой. Класс является шаблоном для создания новых объектов. Для внесения нового класса в диаграмму классов нужно использовать кнопку !!! в палитре инструментов.

Если система содержит большое количество классов, они могут быть объединены в пакеты (package).

Каждый класс может иметь атрибуты (свойства). Так, на рис. 4.3 класс Customer Information (информация о клиенте) имеет атрибуты CustomerID (идентификатор клиента), Name (имя) и Account (счет). Кроме того, каждый класс может иметь методы (operations) - некоторые действия, которые описывают поведение объектов класса. На рис. 4.3 класс Customer Information имеет метод Check Account. Для внесения свойств класса следует правой кнопкой мыши щелкнуть по классу и выбрать во всплывающем меню пункт Specification.

Рис. 4.3. Диаграмма классов

Классы могут иметь взаимосвязи (relationship), называемые отношениями. В нотации UML имеется несколько типов отношений. Отношение использования (associations, кнопка !!! палитры инструментов) показывает, что объект одного класса связан с одним или несколькими объектами другого класса. Отношение включения (aggregation, кнопка !!! является частным случаем отношения использования. Оно показывает, что один объект является частью другого. При воздействии на один объект, связанный отношением включения, некоторые операции автоматически могут затронуть другой объект. Например, на рис. 4.3 класс Customer Information связан отношением включения с классом Contract. При удалении объекта класса Customer Information (информация о клиенте) должны удаляться все объекты класса Contract (относящиеся к данному клиенту контракты). Каждая связь может быть охарактеризована определенной фразой, называемой именем роли. Связь между классами Customer Information и Contract имеет имя negotiates. Каждая связь может иметь индикатор множественности, который показывает, сколько объектов одного класса соответствует объекту другого класса. На рис. 4.3 связь negotiates имеет индикатор 1..* (один или много).

Наследование (inheritance) описывает взаимосвязь между классами, когда один класс (называется подклассом, subclass) наследует структуру и/или поведение одного или нескольких классов. На рис. 4.3 подкласс VIP наследует свойства и поведение класса Customer Information. Связь классов в иерархии наследования называется отношением наследования (generalization, кнопка !!!).

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

Рис. 4.4. Временная диаграмма (Sequence)

Архитектура приложения описывается в диаграммах компонентов (Component Diagram) и диаграммах развертывания (Deployment Diagram). На диаграммах компонентов изображается вхождение классов и объектов в программные компоненты системы (модули, библиотеки и т. д.). При помощи диаграмм развертывания документируется размещение программных модулей на узлах (физических и логических устройствах) системы.

Генерация кода осуществляется на основе диаграмм классов. Для генерации необходимо в Rational Rose выбрать пункт меню Tools/Java/Generate Java.

Ниже .приведен код на языке Java, соответствующий классу Customer Information (см. рис. 4.3):

//# //# Source file: Customer_lnfomiation.java

//# //# Subsystem: Component View

//# //# Module: Customer Information

/## begin module.cm preserve=no

/* %X% %Q% %Z% %W% */

//# end module.cm

//# begin module.cp preserve=no

//# end module.cp

//# begin module.additionallmports preserve=no

//# end module.additionallmports

//# begin module.imports preserve=yes

//# end module.imports

//======================================================

//# begin module.declarations preserve=no

//# end module.declarations

//# begin moduIe.additionalDeclarations preserve=yes

//# end module.additionalDeclarations

public class Customer_lnformation {

//# begin Customer_Information.initialDeclarations preserve=yes

//# end Customer_Information.initialDeclarations

public intm_CustomerlD; • private int m_Name;

private int m_Account;

public Vector m_negotates = new Vector();

public void Check_Account() {

//# begin Customer__lnformation::Check Account%3561AOAF032A.body preserve=yes

//# end Customer_lnformation::Gheck Account%3561AOAF032A.body

}

//# begin Customer_lnformation.additionalDeclarationspreserve=yes

//# end Customer_Information.additionalDeclarations

}

При генерации кода Rational Rose включает строки комментария, начинающиеся последовательностью символов //##. Сгенерированный код (в отличие от кода, сгенерированного ERwin) не является готовым приложением. Здесь генерируются лишь заголовки методов (Check_Account), сами методы необходимо дописывать вручную.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

17.5. Введение в язык SQL

Из книги автора

17.5. Введение в язык SQL 17.5.1. Общие понятия Если вы раньше работали с какой-нибудь СУБД (Система Управления Базой Данных), вы смело можете пропустить этот пункт — ничего нового для себя вы не прочитаете. Но если вы сталкиваетесь с СУБД впервые, без основных терминов вам не


1.3.3. Язык запросов

Из книги автора

1.3.3. Язык запросов Для того чтобы Яндекс корректно понимал запросы, состоящие из нескольких слов, был разработан специальный язык запросов. Отдельные его элементы мы уже рассмотрели — это и специальные символы, используемые в обычном поиске, и дополнительные параметры,


10.1.3. Язык запросов

Из книги автора

10.1.3. Язык запросов Язык запросов, используемый в Яndex.Server, в полной мере соответствует языку запросов, с которым работает поисковая система Яндекс. Поэтому все, что можно использовать для поиска в Интернете, новостях, среди картинок, поддерживается и в версии программы,


Английский язык

Из книги автора

Английский язык Самые правильные мануалы, самые полезные форумы, самые интересные блоги всегда были и будут на английском языке. В ИТ индустрии английский давным-давно завоевал полное господство и перемен не предвидится. Поэтому техническую документацию на языке


56. Язык программирования VВА

Из книги автора

56. Язык программирования VВА Алфавит и лексемы языкаЯзык программирования VBA предназначен для написания кода программы. Он обладает своим алфавитом, который включает:1) строчные и прописные буквы латинского алфавита (А, В,…, Z, а, b,…, z);2) строчные и прописные буквы


2. Введение в язык Си

Из книги автора

2. Введение в язык Си СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ, ОПИСАНИЕ ПЕРЕМЕННЫХ, ИСПОЛЬЗОВАНИЕ КОММЕНТАРИЕВ, ЧИТАЕМОСТЬ ПРОГРАММ,


Лекция № 6. Язык SQL

Из книги автора

Лекция № 6. Язык SQL Дадим сначала небольшую историческую справку.Язык SQL, предназначенный для взаимодействия с базами данных, появился в середине 1970-х гг. (первые публикации датируются 1974 г.) и был разработан в компании IBM в рамках проекта экспериментальной реляционной


4.1. Язык UML

Из книги автора

4.1. Язык UML Классический структурный подход к созданию ИС предполагает последовательную реализацию этапов анализа, проектирования, создания модулей, объединения модулей в единую систему, тестирования и внедрения. Применение CASE-технологий и CASE-средств, подобных ERwin и BPwin,


37 Цветной язык

Из книги автора

37 Цветной язык Один современный мастер Дзен спрашивает: «Каков цвет хлопка одной ладонью?» Здесь есть о чем подумать, тем более что сейчас мы будем говорить о роли цвета в пользовательском интерфейсе.Цвет стал важным аспектом графических пользовательских интерфейсов, по


Язык запросов

Из книги автора

Язык запросов Для более профессионального поиска существует специальный язык запросов. Рассмотрим использование этого языка на примере поиска слов песни «Яблоки на снегу». Ничего личного! Я не предлагаю вам петь эту песню. Ну, случайно пришла на ум. Можете потом поискать


Метод и язык

Из книги автора

Метод и язык Первый набор критериев относится к методу и поддерживающей его


3.4. Как добавить язык?

Из книги автора

3.4. Как добавить язык? При возникновении необходимости вводить с клавиатуры символы не только русского и английского языков, а, например, немецкого или французского соответствующие раскладки клавиатур следует определить для использования. Назначение клавиатур