Шаг 16.
Унифицированный язык моделирования UML.
Особенности проектирования сложных систем

    На этом шаге рассмотрим некоторые вопросы проектирования сложных систем.

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

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

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

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

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

    Несмотря на различия, все эти методы имеют нечто общее. В частности, их объединяют следующие свойства:

  • условные обозначения — язык для описания каждой модели;
  • процесс — действия, позволяющие правильно конструировать модели;
  • инструменты — средства, упрощающие процесс создания моделей и реализующие правила, позволяющие выявлять ошибки в процессе разработки.

        Надежный метод проектирования основывается на прочном теоретическом фундаменте и предоставляет программисту известную степень свободы самовыражения.

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

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

        На следующем шаге рассмотрим основные положения и применение объектной модели.




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