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

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

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

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

Семантикавложенности подразумевает отношение xor (исключающее или) длявложенных состояний: если система находится в состоянии Cooling(охлаждение), то она находится ровно в одном из подсостояний Startup(начальное), Ready (готовность) или Running (выполнение).Чтобы проще ориентироваться в диаграмме переходов с вложеннымисостоя-ниями мы можем увеличить или уменьшить ее масштаб относительновыбранного состояния. При уменьшении вложенные состояния исчезают, апри увеличении проявляются. Переходы в скрытые на диаграммеподсостояния и выходы из них показываются стрелкой с черточкой, какпереход в состояние Ready на рисунке.13Переходам между состояниями разрешено начинаться и кончаться налюбом уровне. Рассмотрим различные формы переходов:•Переход между одноуровневыми состояниями (такой, как из FailureВ Idle или из Ready в Running) - простейшая форма перехода;его семантика описана в предыдущем разделе.•Можно совершить переход непосредственно в подсостояние (как изIdle в Startup), или непосредственно из подсостояния (как изRunning в Idle), или одновременно и то, и другое.•Указание перехода из суперсостояния (как из Cooling в Failureчерез событие Failure) означает, что он осуществляется изкаждого подсостояния этого суперсостояния.

Такой переходпронизывает все уровни до переопределения. Это упрощаетдиаграмму за счет удаления банальных переходов, общих для всехподсостояний.•Указание перехода в состояние с вложенными подсостояниями(например, предыдущий переход в состояние Failure)подразумевает переход к его начальному подсостоянию (поумолчанию).История. Иногда, возвращаясь к суперсостоянию, мы хотели быпопасть в то его подсостояние, где мы были последний раз. Эту семантику мыбудем изображать значком истории (буква H (History) внутри кружка,размещенного где-нибудь внутри значка суперсостояния). Например, на рис.5-22 мы видим развернутое изображение состояния Failure.

В самый первыйраз, когда наша система переходит в него, она принимает начальное состояниепо умолчанию Create log (создать журнал); что обозначено непомеченнымпереходом из закрашенного кружка внутри объемлющего состояния; когдажурнал (log) создан, система переходит в состояние Log ready. После того,как сообщение о сбое занесено в журнал, мы возвра-13Если быть точными, то переходы Too hot и ok относительно состояния Coolingтакже должны быть показаны на рис. 5-21 с черточкой, так как это переходы междуподсостояниями.Рис. 5-22. История событийщаемся обратно. Когда мы попадем в состояние Failure в следующий раз,нам не нужно будет опять создавать журнал, и мы перейдем прямо к Logready, так как когда мы в последний раз выходили из состояния Failure,система находилась именно в этом подсостоянии.Действие "истории" распространяется только на тот уровень, накотором она указана.

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

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

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

Как и в диаграммах классов, можно провестигоризонтальную линию, разделяющую текст внутри значка объекта на двечасти: имя объекта и его атрибуты.Имя объекта следует синтаксису для атрибутов, и может быть либозаписано в одной из трех следующих форм:•Aтолько имя объектатолько класс объектов•:C•A:C имя объекта и классалибо использовать синтаксис выбранного языка реализации. Если текст неумещается внутри значка, то следует или увеличить значок, или сократитьтекст.

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

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

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

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

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

Все классы неявноимеют ассоциации сами с собой и, следовательно, объект может послатьсообщение сам себе.Пусть имеются объекты A и B и связь L между ними. Тогда A можетвызвать любую операцию, имеющуюся в классе B и доступную A. То же вернодля операций над A, вызываемых B. Объект, вызывающий операцию,называется объект-клиент, а объект, который предоставляет операцию, объект-сервер. Обычно отправитель сообщения знает получателя, но обратноенеобязательно.В установившемся состоянии структуры классов и объектов системыдолжны быть согласованы. Если мы показываем на диаграмме операцию M наклассе B, вызванную по связи L, то м должна быть объявлена в спецификацииB, или в спецификациях его суперклассов.Как показано на рис.

5-24, рядом с соответствующей связью надиаграмме можно записать набор сообщений. Каждое сообщение состоит изследующих трех элементов:символ синхронизации, обозначающий направление вызова•Dвызов операции или извещение о событии•Mнеобязательный порядковый номер.•SМы показываем направление сообщения стрелкой, указывающей наобъект-сервер. Этот символ означает простейшую форму передачисообщений, семантика которой гарантирована только в присутствииединственного потока контроля. Существуют более развитые формысинхронизации, которые применимы в случае нескольких потоков.

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

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

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