На главную страницу
Форум txt.version   



Статья :: 5.8. Применение системы обозначений : Гради Буч

5.8. Применение системы обозначений

Результат объектно-ориентированного проектирования

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

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

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

Увеличение и уменьшение масштаба

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

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

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

Выводы

• Проектирование - это не рисование диаграмм; диаграммы просто отражают результаты проектирования.

• При проектировании сложной системы важно рассмотреть ее в различных ракурсах - как с точки зрения логической/физической структуры, так и статической/динамической семантики.

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

• Диаграмма классов показывает, какие существуют классы и связи между ними в логической структуре системы. Конкретная диаграмма классов - один из ракурсов полной структуры классов системы.

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

• Диаграмма модулей показывает распределение классов и объектов по модулям в физической структуре системы. Диаграмма модулей - один из ракурсов модульной архитектуры системы.

• Диаграмма процессов показывает распределение процессов по процессорам в физической структуре системы. Каждая диаграмма процессов - один из ракурсов архитектуры процессов системы.

• Диаграмма состояний и переходов показывает: (1) пространство состояний экземпляров данного класса; (2) события, которые влекут переход из одного состояния в другое; (3) действия, которые происходят при изменении состояния.

• Диаграмма взаимодействий позволяет следить за выполнением сценария в контексте диаграммы объектов.

Дополнительная литература

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

Об обозначениях в разработке программного обеспечения написано чрезвычайно много; книга Мартина и МакКлюра (Martin and McClure) [H 1988] служит хорошим общим справочником по многим традиционным подходам. Грэхам (Graham) [F 1991] дал обзор ряда нотаций, специфичных для объектно-ориентированных методов.

Ранняя форма описанной в этой главе системы обозначений была впервые документирована в работе Буча (Booch) [F 1981]. Эта система в дальнейшем развилась и включила выразительные средства: семантических сетей (Стилингс и др. (Stillings et al.) [A 1987] и Барри Фейгенбаум (Barrand Feigenbaum) [J 1981]),диаграммы "сущность-отношение" (Чэн (Chen) [Е 1976]), модели сущности (Росс (Ross) [F 1987]), сети Петри (Petri) (Пе-терсон (Peterson) [J 1977], Сахару (Sahraoui) [F 1987] и Бруон и Балзамо (Bruon and Balsamo) [F 1986]), ассоциации (Румбах (Rumbaugh) [F 1991]) и карты состояний (Харел (Harel) [F 1987]). Особенно интересна работа Румбаха, поскольку, как он заметил, в наших подходах больше сходства, чем различий.

Значки для объектов и классов были инспирированы iAPX 432 [D 1981]. За основу изображения для объектных диаграмм были взяты обозначения Сейдвица (Seidewitz) [F 1985]. Для семантики параллельности были приспособлены обозначения Бура (Buhr) [F1988,1989].

Чэн (Chang) [G 1990] дал хороший обзор более общих аспектов визуальных языков.


Глава 6 Процесс

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

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




5.8. Применение системы обозначений : Гради Буч

страницы в данном разделе 
Объектно-ориентированный анализ и проектирование с примерами приложений на С++ : Гради Буч Предисловие : Гради Буч
ЧАСТЬ ПЕРВАЯ Концепции : Гради Буч 1.1. Сложность, присущая программному обеспечению : Гради Буч
1.2. Структура сложных систем : Гради Буч 1.3. Внесение порядка в хаос : Гради Буч
1.4. О проектировании сложных систем : Гради Буч Дополнительная литература : Гради Буч
Глава 2 Объектная модель : Гради Буч 2.1. Эволюция объектной модели : Гради Буч
2.2. Составные части объектного подхода : Гради Буч 2.3. Применение объектной модели : Гради Буч
Выводы : Гради Буч Дополнительная литература : Гради Буч
Глава 3 Классы и объекты : Гради Буч 3.1. Природа объекта : Гради Буч
3.2. Отношения между объектами : Гради Буч 3.3. Природа классов : Гради Буч
3.4. Отношения между классами : Гради Буч 3.5. Взаимосвязь классов и объектов. : Гради Буч
3.6. Качество классов и объектов : Гради Буч Дополнительная литература : Гради Буч
Глава 4 Классификация : Гради Буч 4.1. Важность правильной классификации : Гради Буч
4.2. Идентификация классов и объектов : Гради Буч 4.3. Ключевые абстракции и механизмы : Гради Буч
Дополнительная литература : Гради Буч 1.1. Сложность, присущая программному обеспечению : Гради Буч
1.2. Структура сложных систем : Гради Буч 1.3. Внесение порядка в хаос : Гради Буч
1.4. О проектировании сложных систем : Гради Буч Дополнительная литература : Гради Буч
1.1. Сложность, присущая программному обеспечению : Гради Буч 1.2. Структура сложных систем : Гради Буч
1.3. Внесение порядка в хаос : Гради Буч 1.4. О проектировании сложных систем : Гради Буч
Дополнительная литература : Гради Буч 2.1. Эволюция объектной модели : Гради Буч
2.2. Составные части объектного подхода : Гради Буч 2.3. Применение объектной модели : Гради Буч
Выводы : Гради Буч Дополнительная литература : Гради Буч
2.1. Эволюция объектной модели : Гради Буч 2.2. Составные части объектного подхода : Гради Буч
2.3. Применение объектной модели : Гради Буч Выводы : Гради Буч
Дополнительная литература : Гради Буч 3.1. Природа объекта : Гради Буч
3.2. Отношения между объектами : Гради Буч 3.3. Природа классов : Гради Буч
3.4. Отношения между классами : Гради Буч 3.5. Взаимосвязь классов и объектов. : Гради Буч
3.6. Качество классов и объектов : Гради Буч Дополнительная литература : Гради Буч
3.1. Природа объекта : Гради Буч 3.2. Отношения между объектами : Гради Буч
3.3. Природа классов : Гради Буч 3.4. Отношения между классами : Гради Буч
3.5. Взаимосвязь классов и объектов. : Гради Буч 3.6. Качество классов и объектов : Гради Буч
Дополнительная литература : Гради Буч 4.1. Важность правильной классификации : Гради Буч
4.2. Идентификация классов и объектов : Гради Буч 4.3. Ключевые абстракции и механизмы : Гради Буч
Дополнительная литература : Гради Буч 4.1. Важность правильной классификации : Гради Буч
4.2. Идентификация классов и объектов : Гради Буч 4.3. Ключевые абстракции и механизмы : Гради Буч
Дополнительная литература : Гради Буч ЧАСТЬ ВТОРАЯ Метод : Гради Буч
продолжение 70 : Гради Буч 5.1. Элементы обозначений : Гради Буч
5.2. Диаграммы классов : Гради Буч 5.3. Диаграммы состояний и переходов : Гради Буч
5.4. Диаграммы объектов : Гради Буч   5.5. Диаграммы взаимодействия : Гради Буч
5.6. Диаграммы модулей : Гради Буч 5.7. Диаграммы процессов. : Гради Буч
5.8. Применение системы обозначений : Гради Буч Глава 6 Процесс : Гради Буч
6.1. Основные принципы : Гради Буч 6.2. Микропроцесс проектирования : Гради Буч
6.3. Макропроцесс проектирования : Гради Буч Выводы : Гради Буч
Дополнительная литература : Гради Буч Глава 7 Практические вопросы : Гради Буч
7.1. Управление и планирование : Гради Буч 7.2. Кадры : Гради Буч
7.3. Управление релизами : Гради Буч 7.4. Повторное использование : Гради Буч
7.5. Качество и измерения : Гради Буч 7.6. Документация : Гради Буч
7.7. Инструменты : Гради Буч 7.8. Специальные вопросы : Гради Буч
7.9. Выгоды и опасности объектно-ориентированной разработки : Гради Буч Глава 5 Обозначения : Гради Буч
5.1. Элементы обозначений : Гради Буч 5.2. Диаграммы классов : Гради Буч
5.3. Диаграммы состояний и переходов : Гради Буч 5.4. Диаграммы объектов : Гради Буч
  5.5. Диаграммы взаимодействия : Гради Буч 5.6. Диаграммы модулей : Гради Буч
5.7. Диаграммы процессов. : Гради Буч 5.8. Применение системы обозначений : Гради Буч
продолжение 104 5.1. Элементы обозначений : Гради Буч
5.2. Диаграммы классов : Гради Буч 5.3. Диаграммы состояний и переходов : Гради Буч
5.4. Диаграммы объектов : Гради Буч   5.5. Диаграммы взаимодействия : Гради Буч
5.6. Диаграммы модулей : Гради Буч 5.7. Диаграммы процессов. : Гради Буч
5.8. Применение системы обозначений : Гради Буч 6.1. Основные принципы : Гради Буч
6.2. Микропроцесс проектирования : Гради Буч 6.3. Макропроцесс проектирования : Гради Буч
Выводы : Гради Буч Дополнительная литература : Гради Буч
6.1. Основные принципы : Гради Буч 6.2. Микропроцесс проектирования : Гради Буч
6.3. Макропроцесс проектирования : Гради Буч Выводы : Гради Буч
Дополнительная литература : Гради Буч 7.1. Управление и планирование : Гради Буч
7.2. Кадры : Гради Буч 7.3. Управление релизами : Гради Буч
7.4. Повторное использование : Гради Буч 7.5. Качество и измерения : Гради Буч
7.6. Документация : Гради Буч 7.7. Инструменты : Гради Буч
7.8. Специальные вопросы : Гради Буч 7.9. Выгоды и опасности объектно-ориентированной разработки : Гради Буч
7.1. Управление и планирование : Гради Буч 7.2. Кадры : Гради Буч
7.3. Управление релизами : Гради Буч 7.4. Повторное использование : Гради Буч
7.5. Качество и измерения : Гради Буч 7.6. Документация : Гради Буч
7.7. Инструменты : Гради Буч 7.8. Специальные вопросы : Гради Буч
7.9. Выгоды и опасности объектно-ориентированной разработки : Гради Буч ЧАСТЬ ТРЕТЬЯ Примеры приложений : Гради Буч
продолжение 142 : Гради Буч   8.1. Анализ : Гради Буч
8.2. Проектирование : Гради Буч 8.3. Эволюция : Гради Буч
8.4. Сопровождение : Гради Буч Глава 9 Среда разработки: библиотека базовых классов : Гради Буч
продолжение 148 : Гради Буч 9.1. Анализ : Гради Буч
9.2. Проектирование : Гради Буч 9.3. Эволюция : Гради Буч
9.4. Сопровождение : Гради Буч Глава 10 Архитектура клиент-сервер: складской учет : Гради Буч
продолжение 154 : Гради Буч 10.1. Анализ : Гради Буч
10.2. Проектирование : Гради Буч 10.3. Эволюция : Гради Буч
Глава 11 Искусственный интеллект: криптоанализ : Гради Буч продолжение 159 : Гради Буч
11.1. Анализ : Гради Буч 11.2. Проектирование : Гради Буч
11.3. Эволюция : Гради Буч 11.4. Сопровождение : Гради Буч
Глава 12 Управление: контроль за движением поездов : Гради Буч продолжение 165 : Гради Буч
12.1. Анализ : Гради Буч 12.2. Проектирование : Гради Буч
12.3. Эволюция : Гради Буч 12.4. Сопровождение : Гради Буч
Глава 8 Система сбора данных: метеорологическая станция : Гради Буч   8.1. Анализ : Гради Буч
8.2. Проектирование : Гради Буч 8.3. Эволюция : Гради Буч
8.4. Сопровождение : Гради Буч продолжение 175
  8.1. Анализ : Гради Буч 8.2. Проектирование : Гради Буч
8.3. Эволюция : Гради Буч 8.4. Сопровождение : Гради Буч
Глава 9 Среда разработки: библиотека базовых классов : Гради Буч 9.1. Анализ : Гради Буч
9.2. Проектирование : Гради Буч 9.3. Эволюция : Гради Буч
9.4. Сопровождение : Гради Буч продолжение 185
9.1. Анализ : Гради Буч 9.2. Проектирование : Гради Буч
9.3. Эволюция : Гради Буч 9.4. Сопровождение : Гради Буч
Глава 10 Архитектура клиент-сервер: складской учет : Гради Буч 10.1. Анализ : Гради Буч
10.2. Проектирование : Гради Буч 10.3. Эволюция : Гради Буч
продолжение 194 10.1. Анализ : Гради Буч
10.2. Проектирование : Гради Буч 10.3. Эволюция : Гради Буч
Глава 11 Искусственный интеллект: криптоанализ : Гради Буч 11.1. Анализ : Гради Буч
11.2. Проектирование : Гради Буч 11.3. Эволюция : Гради Буч
11.4. Сопровождение : Гради Буч продолжение 203
11.1. Анализ : Гради Буч 11.2. Проектирование : Гради Буч
11.3. Эволюция : Гради Буч 11.4. Сопровождение : Гради Буч
Глава 12 Управление: контроль за движением поездов : Гради Буч 12.1. Анализ : Гради Буч
12.2. Проектирование : Гради Буч 12.3. Эволюция : Гради Буч
12.4. Сопровождение : Гради Буч продолжение 213
12.1. Анализ : Гради Буч 12.2. Проектирование : Гради Буч
12.3. Эволюция : Гради Буч 12.4. Сопровождение : Гради Буч
А.1. Концепции : Гради Буч А.2. Smalltalk : Гради Буч
А.3. Object Pascal : Гради Буч А.4. C++ : Гради Буч
А.5. Common Lisp Object System (CLOS) : Гради Буч А.6. Ada : Гради Буч
A.7. Eiffel : Гради Буч А.1. Концепции : Гради Буч
А.2. Smalltalk : Гради Буч А.3. Object Pascal : Гради Буч
А.4. C++ : Гради Буч А.5. Common Lisp Object System (CLOS) : Гради Буч
А.6. Ada : Гради Буч A.7. Eiffel : Гради Буч
Словарь терминов : Гради Буч Литературные ссылки : Гради Буч

Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin