
- •Проектирование информационных систем
- •Для студентов пятого курса специальности 071900 – Информационные системы в технике и технологиях
- •1Введение
- •1.1Классификация методов проектирования
- •1.2Виды информационных систем
- •1.2.1Системы обработки данных
- •1.2.2Системы управления
- •1.2.3Офисные системы
- •1.2.4Системы поддержки принятия решений
- •1.2.5Экспертные системы
- •1.3Структура информационной системы
- •1.4Архитектура системы
- •1.4.1Общее понятие системной архитектуры
- •1.4.2Архитектурные уровни
- •2Проектирование информационных систем на основе объектно-ориентированного подхода
- •2.1Представления системы
- •2.2Uml-модель информационной системы
- •2.3Представления системы в rational rose
- •2.4Проектирование в rational rose
- •2.5Моделирование предметной области
- •2.5.1Моделирование организационной структуры
- •2.5.2Моделирование бизнес-процессов
- •2.5.3Моделирование бизнес-функций
- •2.5.4Моделирование документов и бизнес-сущностей
- •2.6Использование бизнес-модели на этапах разработки
- •2.7Диаграмма вариантов использования – use case diagram
- •2.7.1Обозначения в диаграмме вариантов использования
- •2.7.2Идентификация актёров и вариантов использования
- •2.7.3Категории вариантов использования
- •2.7.4Абстрактные варианты использования
- •2.7.5Конкретные варианты использования
- •2.7.6Запись актёров и вариантов использования
- •2.7.7.4Альтернативные потоки событий
- •2.7.7.5Постусловия варианта использования
- •2.8Диаграммы взаимодействия – interaction diagrams
- •2.8.1Идентификация объектов
- •2.8.2Использование диаграмм взаимодействия
- •2.8.3Диаграмма последовательности – Sequence diagram
- •2.8.4Подход к разработке диаграммы последовательности
- •2.8.5Диаграмма кооперации – Collaboration Diagram
- •2.9Диаграммы классов – class diagrams
- •2.9.1Классы
- •2.9.1.1Параметризованный класс – parameterized class
- •2.9.1.2Класс-наполнитель – instantiated class
- •2.9.1.3Утилита - utility
- •2.9.1.4Метакласс – metaclass
- •2.9.1.5Абстрактный класс – abstract class
- •2.9.2Стереотип класса
- •2.9.2.1Пограничные классы – boundary classes
- •2.9.2.2Управляющие классы – control classes
- •2.9.2.3Классы-сущности – entity classes
- •2.9.3Видимость класса – Visibility
- •2.9.4Пакеты – packages
- •2.9.5Диаграммы классов
- •2.9.6Создание диаграммы классов
- •2.9.6.1Идентификация программных классов
- •2.9.6.2Идентификация атрибутов
- •2.9.6.3Идентификация операций
- •2.9.6.4Идентификация ассоциаций
- •2.10Диаграммы состояний – statechart diagrams
- •2.10.1Основные сведения о диаграмме состояний
- •2.10.2События
- •2.10.2.1Сигнал
- •2.10.2.2С обытие вызова
- •2.10.2.3События времени и изменения
- •2.10.3Правила построения диаграммы состояний
- •2.10.4Диаграммы состояний для вариантов использования
- •2.10.5Классы и типы для диаграммы состояний
- •2.11Диаграммы компонентов – component diagrams
- •2.11.1Компоненты
- •2.11.2Основные виды компонентов
- •2.11.3Основные стереотипы компонентов
- •2.11.4Диаграмма компонентов
- •2.11.5Правила построения диаграммы компонентов
- •2.12Диаграмма развёртывания – deployment diagram
- •2.12.1Узлы - Nodes
- •2.12.2Соединения
- •2.12.3Диаграмма развёртывания
- •2.12.4Использование диаграмм развёртывания
- •2.12.4.1Встроенные системы
- •2.12.4.2Клиент-серверные системы
- •2.12.4.3Распределённые системы
- •3Системное проектирование сложных систем
- •3.1Цель и задачи системного проектирования
- •3.1.1Цель системного проектирования
- •3.1.2Задачи системного проектирования
- •3.2Структура и содержание документов системного проекта
- •3.2.1Техническое задание
- •3.2.2Описание архитектуры программного и информационного обеспечения системы
- •3.2.3Описание жизненного цикла, технологии и инструментария проектирования программного средства и базы данных
- •3.2.4Планы управления рабочими проектами
- •3.2.5Техническое задание на рабочее проектирование
- •3.2.6Системный проект
- •3.2.7Акт завершения работ и утверждения системного проекта
- •3.2.8Основные компоненты договора на детальное проектирование
- •3.3Работы и нормативные документы по системному проектированию информационной системы
- •3.4Стандарты в жизенном цикле информационных систем
- •3.4.1Нормативно-методическое обеспечение
- •3.4.2Рекомендуемые стандарты
- •4Проектирование систем как часть жизненного цикла
- •4.1Стадии и этапы жизненного цикла
- •4.1.1Исследование
- •4.1.2Проработка
- •4.1.3Создание
- •4.1.4Переходный период
- •4.2Процесс проектирования
- •4.2.1Концептуальное проектирование
- •4.2.2Логическое проектирование
- •4.2.3Физическое проектирование
2.8.5Диаграмма кооперации – Collaboration Diagram
Диаграмма кооперации отображает поток событий в конкретном варианте использования. Диаграммы кооперации делают акцент на связях между объектами и отражают структурный аспект взаимодействия объектов.
Кооперативная диаграмма представляет ту же информацию, что и диаграмма последовательности. Из неё легче понять отношения между объектами, но очень трудно проследить последовательность событий. Именно поэтому создают диаграммы обоих типов.
Rational Rose автоматически преобразует одну диаграмму в другую (клавиша <F5>), так что достаточно создать какую-нибудь одну из них.
Следует помнить, что в диаграмме кооперации (как и последовательности) отображаются только те объекты, которые непосредственно участвуют в моделируемом потоке событий варианта использования.
Диаграмма кооперации имеет два уровня: спецификации и примеров. Уровень спецификации адекватен диаграмме последовательности на первом шаге её разработки и является удобным средством для общения с пользователями, потому что использует понятную заказчику терминологию. Диаграмма кооперации уровня примеров использует терминологию, которая по возможности точно отражает аспекты реализации (сервер, защищённый протокол, управляющий объект и т.д.) соответствующих объектов и связей.
Процесс создания диаграмм взаимодействий должен быть согласован с процессом построения диаграмм классов и друг с другом. Если в диаграммах взаимодействий какие-либо объекты не будут соотнесены с классами, то модель будет неверной. Если диаграмма последовательности не соответствует диаграмме кооперации (и наоборот), то модель так же будет неверной. Имеется в виду, что порядок следования сообщений для моделирования одного и того же потока событий должен быть один и тот же в обеих диаграммах.
Ещё одно важное пояснение. Инициировать сообщения могут только актёры (живые люди, устройства, другие системы, время) или управляющие объекты. Это требование соответствует трёхуровневому стилю архитектуры (пользовательский интерфейс, бизнес-логика и уровень данных).
2.9Диаграммы классов – class diagrams
Диаграммы классов занимают центральное место в разработке логической модели системы. В этой главе рассматриваются:
Классы.
Стереотип класса.
Видимость класса.
Пакеты.
Диаграммы классов.
Создание диаграммы классов.
2.9.1Классы
Класс – это абстрактная сущность, инкапсулирующая данные и поведение. В UML класс описывает набор объектов с общими атрибутами, операциями и семантикой.
К
аждый
класс модели должен иметь уникальное
имя. Рекомендуется использовать
существительные во множественном или
единственном числе. Лучше, чтобы имена
классов были короткими.
Класс Сотрудники обобщает информацию о персонале предприятия. Он содержит свойства: фамилия, имя и отчество; адрес; номер телефона; табельный номер сотрудника.
Класс Сотрудники имеет своё поведение. Он знает, как принять сотрудника на работу, уволить сотрудника, а также повысить сотрудника по службе. Поведение объекта определяется его классом.
Класс является шаблоном для создания объектов. Объект – это отдельный экземпляр класса. Например, ФИО = Иванов Иван Иванович; Адрес = Московский пр., 1 – 1; Телефон = 168-8356; Табельный номер = 123.
Следует помнить, что при проектировании системы создаются классы спецификации программных сущностей. Как правило, проектирование системы начинается с идентификации классов (имя класса), далее определяется поведение (операции) и уточняются свойства (атрибуты).
Традиционный подход к разработке информационных систем предполагает, что данные располагаются в базе данных, а поведением занимается собственно приложение.
При проектировании систем в Rational Rose (помимо обычных классов) доступны специализированные типы классов:
Параметризованные классы.
Классы-наполнители.
Утилиты (классов, параметризованных классов, классов-наполнителей).
Метаклассы.