Главная » Просмотр файлов » Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++

Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (1158635), страница 54

Файл №1158635 Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++) 54 страницаГради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (1158635) страница 542019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 54)

Такие действия необходимы припроектировании, когда мы изобретаем новые абстракции, которые являютсясоставными частями решения. Переходя к программной реализации, мыприменяем процедуру выявления, чтобы изобрести простые абстракции, изкоторых строятся более сложные, и обнаружить общие черты существующихабстракций, дабы упростить архитектуру системы.Результаты. Главным результатом этого шага являетсяобновляющийся по мере развития проекта словарь данных. Вначаледостаточно составить список действующих лиц, состоящий из всех заметныхклассов и объектов, названых именами, отражающими их смысл [12].

Когдасловарь разрастется, можно сделать простейшую базу данных, или болееспециальный инструмент проектирования, непосред-Рис. 6-1. Микропроцессственно поддерживающий выбранный метод разработки.19 В своих болееформальных разновидностях словарь данных служит предметным указателемдля всех остальных компонентов проекта, включая диаграммы испецификации обозначений объектно-ориентированного проектирования.Таким образом, словарь данных - центральное хранилищеотносящихся к системе абстракций.

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

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

Тем временемархитекторы и старшие разработчики придумывают классы и объекты,решающие чисто программистские проблемы. Мы обсудим природу этихтворческих актов в следующей главе.В любом случае основой для выявления классов и объектов служатметоды классификации, описанные в главе 4. Обычный порядок действийтаков:•Применить классический подход к классификации (см. раздел 4.2,"Объектно-ориентированный анализ"), чтобы получить множествокандидатов в классы и объекты. В начале жизненного циклахорошими стартовыми точками являются материальные элементыи их роли.

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

Как и в случае событий, длякаждого поведения можно найти классы и объекты, которыеинициируют его и участвуют в нем.•Для соответствующих сценариев, созданных в макропроцессе,применить технику анализа вариантов (см. там же). В началежизненного цикла мы исследуем самые общие сценарии поведениясистемы. В процессе разработки мы постепенно переходим ко всеболее детализированным сценариям, добираясь до самых темныхуголков поведения системы.В каждом из этих подходов CRC-карточки являются эффективнымкатализатором "мозгового штурма" и помогают теснее сплотить коллектив,подталкивая его членов к общению.20Некоторые классы и объекты будут определены в начале жизненногоцикла проекта неправильно, но это не всегда плохо. Многие осязаемые вещи ироли, которые мы перечислим в жизненном цикле, пройдут через весь путьвплоть до реализации - настолько они фундаментальны для нашейконцептуальной модели.

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

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

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

Для C++это означает создание .h-файлов, в Ada - спецификаций пакетов, в CLOS обобщенных функций для каждого класса, в Smalltalk - это объявление, но нереализация методов каждого класса. Если проект связан с базой данных,особенно с объектно-ориентированной, на этом шаге мы получаем общийкаркас нашей схемы данных.В добавление к этим, по сути тактическим решениям, мы составляемдиаграммы объектов и диаграммы взаимодействий, передающие семантикусценариев, создаваемых в ходе макропроцесса. Эти диаграммы формальноотражают рас-кадровку каждого сценария и, таким образом, описывают явноераспределение обязанностей среди взаимодействующих объектов. На этомшаге впервые появляются конечные автоматы для представления некоторыхабстракций.Чтобы команда разработчиков могла развивать согласованный языкобозначений и для учета обязанностей каждой абстракции, мы можем, как ина предыдущем шаге, использовать специализированную базу данных илидругие, более специфические инструменты проектирования.

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

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6392
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее