
- •Проектирование информационных систем
- •Для студентов пятого курса специальности 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.2Использование диаграмм взаимодействия
Диаграммы последовательности упорядочены во времени и отражают логическую последовательность событий.
Диаграммы кооперации показывают, как объекты взаимодействуют друг с другом, и как влияют друг на друга.
Диаграммы последовательности и кооперации позволяют определить:
Классы, которые нужно создать.
Отношения между классами.
Операции каждого класса.
Диаграммы взаимодействия могут содержать:
Объекты и сообщения. С помощью сообщения один объект запрашивает у другого выполнения какой-то конкретной функции. Например, напечатать отчёт.
Классы и операции. Когда сообщение объекта соотносится с операцией класса, – это значит, что назначается ответственность получающему операцию классу.
Следует помнить, что экраны и выходные формы не должны реализовывать никаких бизнес-процессов. С их помощью можно только вводить и просматривать информацию.
Точно так же управляющие объекты не могут выполнять никакие бизнес-процессы, так как они несут ответственность за последовательность вызовов операций бизнес-объектов.
2.8.3Диаграмма последовательности – Sequence diagram
Диаграмма последовательности – упорядоченная во времени диаграмма взаимодействия, читать её следует сверху вниз.
Каждая диаграмма последовательности может описывать один шаг из потока событий конкретного варианта использования, или весь прецедент целиком (если он достаточно прост). Все диаграммы именуются для лучшего понимания модели.
Участвующие в потоке актёры и объекты (показаны прямоугольниками) располагаются в верхней части диаграммы.
У каждого объекта на диаграмме последовательности имеется линия жизни (lifeline), изображаемая в виде вертикальной пунктирной линии под объектом. Между линиями жизни помещают сообщения, которые соответствуют коммуникациям между объектами.
Сообщение – это связь между объектами, в которой один из них (клиент) требует от другого (сервера) выполнения каких-либо действий. Имя сообщения должно соответствовать его цели.
Сообщения транслируются в вызовы операций классов.
П
ример:
Сообщение может быть рефлексивным. Это значит, что объект обращается к своей собственной операции. В данном примере таким сообщением является сообщение Сортировать.
2.8.4Подход к разработке диаграммы последовательности
Для разработки диаграммы последовательности обычно применяется следующий подход:
О
тображается информация высокого уровня, которая нужна пользователям проектируемой информационной системы. Сообщения никак не соотносятся с операциями, и объекты не соотносятся с классами. Это необходимо для согласования бизнес-логики с пользователями. Данный шаг проектирования может проводиться во время моделирования предметной области в представлении Use Case View.
На втором этапе диаграмма последовательности детализируется. При этом она может утратить свою полезность для пользователей, но станет важна для разработчиков, тестеров и других участников проекта. Данный этап относится к логическому проектированию.
Как правило, в каждую диаграмму последовательности добавляют новый управляющий объект.
Все диаграммы последовательности для одного варианта использования имеют один и тот же управляющий объект. Он не реализует никаких бизнес-процессов. Он только посылает сообщения другим объектам (делегирует сообщения). Такие объекты называют объектами-менеджерами (Manager Object).
Необходимость включения объекта-менеджера заключается в том, чтобы отделить бизнес-логику от логики, определяющей последовательность событий. Если надо будет изменить последовательность, это затронет только управляющий объект.
На
диаграмму
можно помещать другие объекты, отвечающие
за безопасность, обработку ошибок или
за связь с базой данных. Почти все эти
объекты допускают повторное использование
во многих приложениях.
В следующем примере рассматривается работа с базой данных. Возможны два варианта:
В
ариант
1. Логика приложения не отделена от
логики базы данных (объект сам знает о
базе данных).
В
ариант
2. Логика приложения отделена от логики
базы данных (в этом случае нужно создать
специальный объект Менеджер
транзакций – Transaction
manager).
Преимущество создания менеджера транзакций заключается в возможности повторного использования конкретного объекта Петя Синичкин в другом приложении с другой базой данных или вообще без базы данных. Изменения в базе данных не повлияют на логику приложения и наоборот.
Недостаток заключается в больших временных затратах на моделирование и реализацию этого решения.
После создания всех объектов необходимо соотнести их с классами. Объекты можно связать с существующими классами или создать новые. К моменту генерации кода все объекты должны быть соотнесены с классами.
Задать устойчивость классов. В среде Rose для каждого класса можно задать его устойчивость (Persistence). Для назначения устойчивости следует в спецификации класса установить переключатель Persistence в одно из следующих положений:
Persistent. Устойчивый объект сохраняется в базе данных (или другим способом, обеспечивающим постоянное хранение). Такой объект продолжает существовать даже после прекращения работы программы.
Static. Статичный объект сохраняется в памяти компьютера в течение всего времени работы программы. Он сохраняется после выполнения отображённых на диаграмме последовательности действий, но не сохраняется после прекращения работы программы.
Transient. Временный объект сохраняется в памяти в течение очень короткого времени. Например, только на время процессов, определённых в диаграмме последовательности.
После создания сообщений необходимо соотнести их с операциями классов. Прежде, чем начать это делать, следует проверить, соотнесён ли объект-получатель сообщения с классом.
Существует возможность синхронизации посылаемых сообщений (операций). Это можно сделать в окне спецификации сообщения на вкладке Detail. Поддерживаются следующие варианты синхронизации:
Simple. Простое сообщение используется по умолчанию. Означает, что все сообщения выполняются в одном потоке управления.
Synchronous. Синхронное сообщение применяется, когда клиент посылает сообщение и ждёт ответа пользователя.
Balking. С отказом становится в очередь. Клиент посылает сообщение серверу. Если сервер не может немедленно принять сообщение, оно отменяется.
Timeout. С лимитированным временем ожидания. Клиент посылает сообщение серверу, а затем ждёт указанное время. Если в течение этого времени сервер не принимает сообщение, оно отменяется.
Asynchronous. Асинхронное сообщение клиент посылает серверу и продолжает свою работу, не ожидая подтверждения о получении.
На той же вкладке Detail можно установить частоту сообщений:
Periodic. Периодическое сообщение регулярно посылается через определённые промежутки времени (например, каждые 30 с).
Aperiodic. Сообщение посылается нерегулярно. Оно может быть отправлено только один раз или несколько раз, но через разные промежутки времени.
В заключение ещё раз следует отметить тот факт, что на диаграмме последовательности все сообщения упорядочены по времени своего возникновения в моделируемой системе. Каждое сообщение ассоциируется с некоторым конкретным действием, которое должно быть выполнено принявшим его объектом. При этом действие может иметь некоторые аргументы (параметры), в зависимости от значений которых может быть получен различный результат. Точно такие же параметры будет иметь и сообщение, которое вызывает это действие.