Книга представляет собой краткий конспект лекций по определению модели предметной области на конкретном примере. Используется объектно-ориентированный подход, существенно отличающийся от известного моделирования «сущность – связь», или ER-моделирования. Модель имеет визуальный характер и изображается в нотации Unified Modeling Language (UML), которая широко известна среди аналитиков, архитекторов, разработчиков и программистов. Описаны паттерны, применяемые для преобразования диаграмм классов на UML, и приведены примеры их практического использования. Изложение ведется согласно методологии IBM RUP.
Материал будет полезен студентам и аспирантам, участникам проектов по разработке информационных систем, а также слушателям курсов по выявлению требований к ИС и по проектированию архитектуры ИС.
Модель предметной области служит разным целям:
1) помогает определить логическую структуру БД информационной системы;
2) является основой для составления «расширенного» словаря проекта;
3) помогает найти все сценарии (при выявлении функциональных требований в специальной форме – в виде сценариев использования (Use Cases));
4) позволяет не пропустить «вспомогательные» сценарии, которые могут быть не упомянуты в постановке задачи, полученной от заказчика ИС.
Важной особенностью модели предметной области является ее независимость от используемых ИС и баз данных. Это совокупность записей в организации, которые следует вести, чтобы руководство этой организации смогло определить, все ли в порядке. Например, такие записи велись много лет назад задолго до появления компьютеров. Чтобы не было разночтений, определим некоторые используемые далее термины. Их понимание важно, но они могут отличаться от общеизвестных своей специфической направленностью.
• Модель – это «упрощение реальности» в интересах заинтересованных лиц.
• База данных – набор картотек, взаимосвязанных друг с другом и ведущихся на компьютере.
• Сервер – процесс, предоставляющий целостный доступ к общему ресурсу.
• Сервер БД, или СУБД (система управления БД), предоставляет целостный доступ к базе данных как общему ресурсу.
• Картотека – набор карточек с «одинаковой структурой», представляется в модели классом.
• Карточка – запись в картотеке, представляется в модели объектом. Все карточки одной и той же картотеки имеют одинаковую структуру: одинаковый набор полей карточки (или атрибутов) и одинаковый набор связей с карточками других картотек.
• Класс – это описание набора «одинаковых» объектов, т. е. объектов, имеющих одинаковый набор атрибутов, одинаковый набор операций и одинаковый набор указателей на другие объекты. Картотеки представимы классами.
• Объект – это экземпляр класса, т. е. запись, или «карточка», в соответствующей картотеке.
• Атрибут – поименованное свойство объекта.
• Операция – сервис, который может быть запрошен у объекта. Метод или функция, инкапсулированная в объект.
Для проведения визуального моделирования будем использовать специальные программные инструменты, называемые CASE-средствами (Computer Assist Software Engineering)1. Тогда будет возможно проведение «генерации кода» по модели («прямое проектирование», или forward engineeging) и обратное проектирование (reverse engineering) – восстановление модели по программному коду или по существующей БД.