5.2.3. Применение методов объектно-ориентированного анализа и проектирования

Анализ литературы показывает, что объектный подход к моделированию предметной развивается в двух направлениях: объектно-ориентированный анализ и объектно-ориентированное проектирование.
Фундаментальные подходы в объектно-ориентированном анализе заложены в трудах С. Шлеер и С. Меллора [47]. Объектно-ориентированное проектирование как целостная концепция сформулирована Г. Бучем [8].
Объектно-ориентированный анализ - это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области. Объектно-ориентированное проектирование - это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы. Сравнивая определения объектно-ориентированного анализа и проектирования можно заметить, что обе методологии ис¬пользуют анализ и абстрагирование в качестве основных методов. Следовательно, эти методологии направлены на одну и туже сферу моделирования, поэтому мож¬но утверждать, что имеются два разных подхода к моделированию в объектах. С другой стороны, задачи данных методологий различаются. Г. Буч отмечает это так "Границы между стадиями анализа и проектирования размыты, но решаемые ими задачи определены четко. В процессе анализа мы моделируем проблемы, обнаруживая классы и объекты, которые составляют словарь проблемной области. При объектно-ориентированном проектировании мы изобретаем абстракции и механизмы, обеспечивающие поведение, требуемое моделью." Данное высказыва¬ние находится в противоречии с тем что объектный анализ, судя по утверждениям Шлеера, охватывает все абстракции и механизмы составляющие модель.
Обобщая, можно утверждать, что объектно-ориентированный анализ направлен на описание модели в терминах объектов с внешней стороны. Объектно-ориентированное проектирование направлено на реализацию описанной в терминах объектов модели на языках программирования, т.е. на доработку модели, пока она не станет однозначно реализуемой. Можно сделать вывод, что без применения обоих методологий построить и реализовать объектную модель невозможно.
Рассмотрим содержательные аспекты объектно-ориентированного анализа и проектирования.
Впервые объектно-ориентированный анализ был успешно применен в 1979г в лаборатории Беркли в проекте моделирования физических систем реального времени. Шлеер и Меллор использовали динамические объектные модели. Для их воплощения они стали использовать анализ предметных областей с использованием понятия объектов, что привело к созданию информационных моделей. На этом этапе объектно-ориентированного анализа центральным является абстраги¬рование сущностей в задаче в терминах объектов и их свойств. Отношения между сущностями формализуются в связях. Объекты, их атрибуты, подобие и связи формализуется в виде графической диаграммы информационной модели. Заметим, что информационная модель по характеру описываемой информации подобна ER-диаграмме предметной области.
В начале 1985 г была создана вторая ступень объектного анализа - модель состояний. Информационная модель позволяла проанализировать отдельные сущности (объекты) и связи между ними, однако она не рассматривала взаимодействия и динамику существования объектов. С этим связан второй этап объектного анализа, анализирующий поведение объектов и их связи во времени. Поведение объекта может быть представлено как набор его состояний, в каждом из которых действует только определенный набор законов-правил. В силу законов состояния, с физическим объектом происходят различные явления, которые с точ¬ки зрения наблюдателя рассматриваются как некие действия объекта.
В 1986-1987гг. окончательно оформилась третья ступень объектного анали¬за - модели процессов. Действительно, модель состояний, рассматривая состоя¬ния, не анализировала заключенные в них процессы. С. Меллор и С. Шлеер взяли за основу описания процессов классические диаграммы потоков данных, исполь¬зуемые при функциональном проектировании программного обеспечения. Объектный анализ выделяет три основных элемента информационного процесса как модели: действия, потоки данных между действиями и свойства объектов изменяемые действиями (архивы данных).
Объектно-ориентированное проектирование проходит все те же три ступени анализа. Отличия состоят в следующем: рассматриваются абстракции, не содержащиеся в исходной модели и имеющие целью упростить ее реализацию (шаблоны классов, метаклассы и др.), на фазе моделирования поведения системы применяются сценарии, как пошаговые описания реакции модели в конкретных состояниях. Усовершенствованная модель, полученная в результате объектно-ориентированного проектирования, может быть реализована на объектно-ориентированных языках программирования.
Таким образом, объектно-ориентированный анализ и проектирование органично дополняют друг друга.
Для облегчения процесса объектно-ориентированного анализа и проектирования существует ряд CASE-средств, одним из которых является пакет Rational Rose. Важным шагом в развитии объектно-ориентированного анализа стала разработка унифицированного языка моделирования (UML).
Подробнее о методах объектно-ориентированного анализа и проектирования в [8, 22, 47]; к этой теме еще предстоит вернуться в рамках дисциплины «Компьютерное моделирование» и в спецкурсах, связанных с разработкой программного обеспечения.