double arrow

Объектно-ориентированный анализ и проектирование

Объектный подход к анализу и проектированию сложных систем. Введение в U.M.L. - Unified Modeling Language

1. Объектно-ориентированный анализ и проектирование. 1

2. Краткая история развития и стандартизации языка UML.. 3

3. Структура и базовые понятия языка UML.. 5

3.1 Назначение и особенности языка UML.. 5

3.2 Общая структура языка UML.. 6

3.3 Элементы моделей языка UML.. 8

3.4 Диаграммы языка UML.. 10

3.5 Общие правила изображения UML-Диаграмм.. 12

4. Контрольные вопросы и задания. 14

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

Объектный подход к разработке сложных программных систем безусловно предполагает, что непосредственное программирование (написание кода) начинается далеко не сразу, а этапы анализа и моделирования предметной области, предшествующие программированию, не менее важны и сложны.

Объектный подход применяется на всех основных стадиях жизненного цикла ПО и включает в себя три ключевых понятия:

· OOA (object oriented analysis) - объектно-ориентированный анализ.

· OOD (object oriented design) - объектно-ориентированное проектирование.

· OOP (object oriented programming) - объектно-ориентированное программирование.

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

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

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

Предметом рассмотрения нашей дисциплины являются первые две составляющие объектного подхода – объектно-ориентированный анализ и объектно-ориентированное проектирование (далее – ООАП).


Как известно, последовательное применение ООАП позволяет получить "хороший" проект программной системы:

· удовлетворяющий требованиям заказчика;

· удобный для коллективной разработки, отладки и тестирования;

· прозрачный;

· развиваемый;

· допускающий повторное использование компонентов.

Базовыми принципами ООАП являются:

- Декомпозиция

- Абстрагирование

- Иерархичность

- Многомодельность

Рассмотрим эти базовые принципы.

Принцип декомпозиции. Декомпозиция – это разбиение целого на составные элементы. В рамках объектного подхода рассматривают два вида декомпозиции: алгоритмическую и объектную.

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

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

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

Согласно этому принципу в модель включаются только те аспекты проектируемой системы, которые имеют непосредственное отношение к выполнению системой своих функций.

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

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

На рисунке 1 приведена схема взаимосвязей представлений и моделей сложных систем в процессе ООАП: на двух уровнях иерархии (концептуальном и физическом) используются статические и динамические представления сложной системы.

Рисунок 1 – Представления и модели сложной системы, применяемые в ООАП

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

Первая причина заключается в том, что ранние CASE-средства были простой надстройкой над некоторой СУБД и решали задачу визуализации процесса разработки концептуальных схем баз данных (построения ER-диаграмм). При всей важности этой задачи в программном проекте, она не решает проблем разработки приложения в целом.

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

На этом фоне появление унифицированного языка моделирования (UML), ориентированного на комплексное решение задачи построения модели программной системы, которую, согласно современным концепциям ООАП, следует считать результатом первых двух этапов ЖЦ ПО, было воспринято сообществом корпоративных программистов с большим оптимизмом.

Сегодня UML широко применяется для визуализации, специфицирования, конструирования и документирования программных систем.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: