- •4. Объектно-ориентированное проектирование, основы uml
- •4.1 Значение моделирования
- •4.2 Принципы моделирования
- •4.3 Объектное моделирование
- •4.4 Принципы моделирования с использованием uml
- •4.5 Основные диаграммы языка uml
- •4.6 Сущности uml
- •4.7 Отношения uml
- •5. Диаграмма классов и моделирование предметной области
- •5.1 Общие сведения
- •5.2 Класс
- •5.3 Имя класса
- •5.4 Атрибуты класса
- •5.5 Операции класса
- •5.6 Отношения между классами
- •5.7 Отношение зависимости
- •5.8 Зависимость между пакетами
- •5.9 Отношение ассоциации
- •5.10 Отношение агрегации
- •5.11 Отношение композиции
- •5.12 Отношение обобщения
- •5.13 Рекомендации по построению диаграммы классов
- •6. Диаграмма состояний
- •6.1 Общие сведения
- •6.2 Автоматы
- •6.3 Состояние
- •6.4 Начальное и конечное состояния
- •6.5 Переход
- •6.6. Составное состояние и подсостояние
- •6.7. Параллельные подсостояния
- •6.8 Рекомендации
- •7 Диаграмма деятельности
- •7.1 Общие сведения
- •7.2 Состояние действия и состояние деятельности
- •7.3 Переход
- •7.4 Ветвление
- •7.5. Разделение и слияние
- •7.6 Дорожки
- •7.7. Объекты
- •7.8. Рекомендации по построению диаграмм деятельности
- •8. Моделирование взаимодействия объектов. Диаграммы последовательности и кооперации (коммуникации)
- •8.1 Диаграмма последовательности, общие сведения
- •8.2 Объекты
- •8.3 Линия жизни объекта
- •8.4 Фокус управления
- •8.5 Сообщения
- •8.6 Ветвление потока управления
- •8.7 Стереотипы сообщений
- •8.8 Временные ограничения
- •8.9 Пример построения диаграммы последовательности
- •8.10. Рекомендации по построению диаграмм последовательности
- •8.11 Общие сведения о диаграмме кооперации (коммуникации)
- •8.12 Кооперация
- •8.13 Объекты
- •8.14 Мультиобъекты
- •8.15. Активные объекты
4.2 Принципы моделирования
Моделирование имеет богатую историю во всех инженерных дисциплинах. Длительный опыт его использования позволил сформулировать четыре основных принципа.
Во-первых, выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение.Иначе говоря, подход к выбору модели должен быть вдумчивым. Правильно выбранная модель высветит самые коварные проблемы разработки и позволит проникнуть в самую суть задачи, что при ином подходе было бы попросту невозможно. Неправильная модель заводит вас в тупик, поскольку внимание будет заостряться на несущественных вопросах.
Применительно к проблеме создания программного обеспечения, можно сказать, что взгляд на мир существенно зависит от выбираемой модели. Разработчик баз данных основное внимание будет уделять моделям «сущность-связь», где поведение инкапсулировано в триггерах и хранимых процедурах. Структурный аналитик, скорее всего, создаст модель, в центре которой находятся алгоритмы и передача данных от одного процесса к другому. Результатом труда разработчика, пользующегося объектно-ориентированным методом, будет система, архитектура которой основана на множестве классов и образцах взаимодействия, определяющих, как эти классы действуют совместно. Любой из этих вариантов может оказаться подходящим для информационной системы, хотя объектно-ориентированная точка зрения более эффективна при создании гибких архитектур, даже если система должна будет работать с большими базами данных или производить сложные математические расчеты. При этом надо учитывать, что различные точки зрения на мир приводят к созданию различных систем, со своими преимуществами и недостатками.
Второй принцип формулируется так: каждая модель может быть воплощена с разной степенью абстракции. Иногда простая и быстро созданная модель пользовательского интерфейса - самый подходящий вариант. В других случаях приходится работать на уровне битов, например, при специфицировании межсистемных интерфейсов или выявлении узких мест в сети. В любом случае лучшей моделью будет та, которая позволяет выбрать уровень детализации в зависимости от того, кто и с какой целью ее изучает. Для аналитика или конечного пользователя наибольший интерес представляет вопрос «что», а для разработчика - вопрос «как». В обоих случаях необходима возможность рассматривать систему на разных уровнях детализации в разное время.
Третий принцип: лучшие модели - те, что ближе к реальности. Лучше всего, если модели будут во всем соотноситься с реальностью, а там, где связь ослабевает, должно быть понятно, в чем заключается различие и что из этого следует. Поскольку модель всегда упрощает реальность, задача в том, чтобы это упрощение не повлекло за собой какие-либо существенные потери.
При объектно-ориентированном подходе можно объединить все почти независимые представления системы в единое семантическое целое.
Четвертый принцип заключается в том, что нельзя ограничиваться созданием только одной модели.Наилучший подход при разработке любой нетривиальной системы — использовать совокупность нескольких моделей, почти независимых друг от друга.
Ключевым определением здесь является «почти независимые». В данном контексте оно означает, что модели могут создаваться и изучаться по отдельности, но вместе с тем остаются взаимосвязанными. Такой подход верен и в отношении объектно-ориентированных программных систем. Для понимания архитектуры подобной системы требуется несколько взаимодополняющих видов:
вид с точки зрения прецедентов (чтобы выявить требования к системе);
вид с точки зрения проектирования (чтобы построить сло-варь предметной области и области решения);
вид с точки зрения процессов (чтобы смоделировать распре-деление процессов и потоков в системе);
вид с точки зрения реализации, позволяющий рассмотреть физическую реализа¬цию системы;
вид с точки зрения развертывания, помогающий сосредото-читься на вопросах системного проектирования.
Каждый из перечисленных видов имеет множество структурных и поведенческих аспектов, которые в своей совокупности составляют детальный чертеж программной системы.