- •Проектирование информационных систем
- •Лабораторная работа № 6
- •Учебные вопросы:
- •Литература, техническое и программное обеспечение:
- •Вопрос 1. Модель проектирования: диаграммы взаимодействия Диаграммы последовательностей и кооперации
- •Пример диаграммы кооперации: makePayment
- •Основные обозначения для диаграмм взаимодействия: Отображение классов и экземпляров объектов
- •Синтаксис для отображения сообщений
- •Основные обозначения диаграммы кооперации: Отображение связей
- •Отображение сообщений
- •Сообщения, передаваемые самому объекту
- •Создание экземпляров объектов
- •Представление порядка передачи сообщений
- •Представление условных сообщений
- •Представление взаимоисключающих условных маршрутов
- •Представление итерационного процесса или циклов
- •Сообщения, передаваемые классу
- •Вопрос 2. Модель проектирования: области видимости
- •Обеспечение видимости посредством атрибутов
- •Обеспечение видимости посредством параметров
- •Локальная видимость
- •Глобальная видимость
- •Вопрос 3. Модель проектирования: создание диаграммы классов
- •Классы из модели предметной области и модели проектирования
- •Создание диаграммы классов для pos-системы тт Алгоритм построения диаграмм классов
- •Добавление имен методов
- •Выбор имен методов
- •Имена методов: create
- •Имена методов: методы доступа
- •Имена методов: сложные объекты
- •Имена методов: синтаксис с учетом языка
- •Добавление дополнительной информации о типах
- •Добавление ассоциаций и информации о навигации
- •Добавление зависимостей
Классы из модели предметной области и модели проектирования
Напомним, что в модели предметной области объект Sale не представляет программную сущность, а определяет абстракцию понятия реального мира, состояние которой необходимо знать в системе. В отличие от модели предметной области, на диаграмме классов проектирования отображаются программные компоненты. Здесь элемент Sale представляет собой программный класс (рис. 3.2).
Рисунок 3.2 – Классы модели предметной области и модели проектирования
Создание диаграммы классов для pos-системы тт Алгоритм построения диаграмм классов
1. Идентификация классов, которые должны участвовать в программном решении. Эту задачу можно решить, внимательно изучив все диаграммы взаимодействия и выбрав упомянутые на них классы.
Для POS-приложения к числу таких классов относятся следующие:
Register
|
Sale
|
ProductCatalog
|
Product Specification
|
Store
|
SalesLineItem
|
Payment
|
|
Нанесение этих классов на диаграмму и добавление атрибутов, определенных с использованием модели предметной области (рис. 3.3).
Заметим, что многие понятия модели предметной области, такие как Cashier, на диаграмме отсутствуют. Дело в том, что на данной итерации нет необходимости разрабатывать их программное представление. Однако на последующих итерациях, при появлении новых требований и разработке новых прецедентов, они, возможно, будут внесены в диаграмму. Например, при реализации требований к безопасности и процессу регистрации желательно ввести программный класс Cashier.
Рисунок 3.3 – Программные классы приложения
Добавление имен методов
Методы каждого класса можно определить путем анализа диаграмм взаимодействия. Например, если сообщение makeLineItem передается экземпляру класса Sale, то в классе Sale должен быть определен метод makeLineItem (рис. 3.4).
Рисунок 3.4 – Имена методов из диаграмм взаимодействия
Таким образом, имена всех сообщений, передаваемых классу X, отображенные на всех диаграммах взаимодействия, определяют большую часть методов этого класса.
Изучив все диаграммы взаимодействия для POS-приложения, получим имена методов, представленные на рис. 3.5.
Рисунок 3.5 – Методы приложения
Выбор имен методов
При выборе имен методов необходимо руководствоваться следующими соображениями:
1. Интерпретировать сообщение create ( ).
2. Описывать методы доступа.
3. Интерпретировать сообщения сложным объектам.
4. Использовать синтаксис языка программирования.
Имена методов: create
Сообщение create на языке UML представляет собой абстрактную форму инициализации или инстанцирования. При переходе к реализации системы на объектно-ориентированном языке программирования процесс передачи сообщения необходимо выразить средствами языка программирования с использованием его идиом для инстанцирования и инициализации. В языке C++, Java или Smalltalk не существует реального метода create. Например, на языке C++ память выделяется с помощью оператора new, после которого следует имя конструктора.
Поскольку инициализация – это очень типичный вид деятельности, который по-разному выражается в различных языках программирования, методы создания объектов и конструкторы на диаграммах классов зачастую не отображаются.