Шаг 4.
Унифицированный язык моделирования UML.
Принципы моделирования

    На этом шаге рассмотрим принципы моделирования.

    Четыре основных принципа моделирования:

  1. Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение.

        Правильно выбранная модель высветит самые коварные проблемы разработки и позволит проникнуть в самую суть задачи, что при ином подходе было бы просто невозможно. Неправильная модель заведет вас в тупик, поскольку внимание будет заостряться на несущественных вопросах.

        Если вы смотрите на систему глазами разработчика баз данных, то основное внимание будете уделять моделям "сущность–связь", где поведение инкапсулировано в триггерах и хранимых процедурах.

        Аналитик, использующий структурный подход, скорее всего, создал бы модель, в центре которой находятся алгоритмы и передача данных от одного процесса к другому.

        Результатом труда разработчика, пользующегося объектно-ориентированным методом, будет система, архитектура которой основана на множестве классов и образцах взаимодействия, определяющих, как эти классы действуют совместно.

        Любой из этих вариантов может оказаться подходящим для данного приложения и методики разработки. При этом надо учитывать, что различные точки зрения на мир приводят к созданию различных систем, со своими преимуществами и недостатками.

  2. Каждая модель может быть представлена с различной степенью точности.

        Иногда простая и быстро созданная модель программного интерфейса – самый подходящий вариант. В других случаях приходится работать на уровне битов (например, когда вы специфицируете межсистемные интерфейсы или боретесь с узкими местами в сети). В любом случае лучшей моделью будет та, которая позволяет выбрать уровень детализации в зависимости от того, кто и с какой целью на нее смотрит. Для аналитика или конечного пользователя наибольший интерес представляет вопрос "что", а для разработчика – вопрос "как»" В обоих случаях необходима возможность рассматривать систему на разных уровнях детализации в разное время.

  3. Лучшие модели – те, что ближе к реальности.

        Лучше всего, если ваши модели будут во всем соотноситься с реальностью, а там, где связь ослабевает, должно быть понятно, в чем заключается различие и что из этого следует. Поскольку модель всегда упрощает реальность, задача в том, чтобы это упрощение не повлекло за собой какиеFто существенные потери.

        Возвращаясь к программному обеспечению, можно сказать, что "ахиллесова пята" структурного анализа – несоответствие принятой в нем модели и модели системного проекта. Если этот разрыв не будет устранен, то поведение созданной системы с течением времени будет все больше и больше отличаться от задуманного. При объектно-ориентированном подходе можно объединить все почти независимые представления системы в единое семантическое целое.

  4. Нельзя ограничиваться созданием только одной модели.

        Наилучший подход при разработке любой нетривиальной системы – использовать совокупность нескольких моделей, почти независимых друг от друга. Это означает, что модели могут создаваться и изучаться по отдельности, но вместе с тем остаются взаимосвязанными.

        Такой подход верен и в объектно-ориентированных программных системах. Для понимания архитектуры подобной системы требуется несколько взаимодополняющих представлений: представление с точки зрения вариантов использования (чтобы выявить требования к системе), с точки зрения проектирования (чтобы построить словарь предметной области и области решения), с точки зрения взаимодействий (чтобы смоделировать взаимодействия между частями системы, системой в целом и средой ее функционирования), с точки зрения реализации (позволяющее рассмотреть физическую реализацию системы) и с точки зрения размещения (помогающее сосредоточиться на вопросах системного проектирования). Каждое из перечисленных представлений имеет множество структурных и поведенческих аспектов, которые в своей совокупности составляют детальный чертеж программной системы.

        В зависимости от природы системы некоторые модели могут быть важнее других. Так, при создании систем для обработки больших объемов данных более важны статические модели. В приложениях, ориентированных на интерактивную работу пользователя, на первый план выходят статические и динамические представления вариантов использования. В системах реального времени наиболее существенными будут представления с точки зрения динамических процессов. Наконец, в распределенных системах, таких как Web-приложения, основное внимание нужно уделять моделям реализации и размещения.

    На следующем шаге рассмотрим обзор UML.




Предыдущий шаг Содержание Следующий шаг