Главная » Просмотр файлов » М. Фаулер, К. Скотт - UML Основы

М. Фаулер, К. Скотт - UML Основы (1114905), страница 30

Файл №1114905 М. Фаулер, К. Скотт - UML Основы (М. Фаулер, К. Скотт - UML Основы) 30 страницаМ. Фаулер, К. Скотт - UML Основы (1114905) страница 302019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

В большинстве случаев я рисую по меньшей мере одну диаграмму, на которой показаны узлы и основные компоненты в стиле рис. 10,1. При этом я стараюсь использовать графические пиктограммы, если зто не приводит к излишнему усложнению диаграммы. Язык 0М~ и программирование Итак, мы практически полностью рассмотрели нотацию языка СМ1.. Остался один большой вопрос: как обычный программист может реально использовать язык СМЕ в повседневной однообразной работе? Попытаюсь ответить на этот вопрос, повествуя о том, как я сам использую язык БМ~. при программировании, хотя и в небольшом масштабе. Я не буду слишком вдаваться в детали, но надеюсь, это поможет вам понять, что можно делать с помощью языка Т1М1.. Представим себе компьютерную систему, которая проектируется для сбора информации о пациентах больницы.

Различные специалисты-медики наблюдают своих пациентов. Эта несложная система позволит каждому из них получать информацию о проведенных наблюдениях и вводить новую информацию. Поскольку объем данной книги ограничен, я не буду касаться базы данных и пользовательского интерфейса, а рассмотрю только основные классы предметной области. Пример настолько прост, что может быть описан единственным вариантом использования под названием ~просмотр и ввод данных наблюдения пациентов». Мы можем конкретизировать его с помощью следующих сценариев: ° Запросить последние данные сердечного ритма пациента. ° Запросить группу крови пациента. ° Обновить данные аб уровне сознания пациента.

152 Глаза 11. Язык ОМ~ и программирование ° Обновить данные о сердечном ритме пациента. Система определяет ритм как медленный, нормальный или быстрый в соответствии с заданными в системе диапазонами. Мой первый шаг в этом процессе состоит в разработке концептуальной модели, которая описывает понятия данной предметной области. На этой стадии я не задумываюсь, как будет реализовано соответствующее программное обеспечение, а думаю только о том, как выстроить систему понятий в представлении докторов и медсестер.

Я начну с модели, основанной на нескольких образцах анализа из моей книги (Фаулер, 1997(18)): «Наблюдение» (ОЬзегзга((оп), «Количество» (ь(иапЫ$у), «Диапазон» (Канне) и «Показатель с диапазоном» (РЬепопзепоп ««ЫЬ Ванне). Наблюдение пациента: модель предметной области На рис. 11.1 показана начальная модель предметной области для нашей системы. Каким образом эти понятия представляют информацию о данной предметной области7 Я начну с самых простых понятий: Количество, Единица и Диапазон. Количество представляет собой значение, обладающее размерностью, например 6 футов — количество, величина которого равна 6, а единица измерения — фут. Единицы просто представляют собой те категории измерения, которые нужны нам для работы. Диапазон позволяет рассматривать их как единичное понятие, например, диапазон от 4 до 6 футов представляется как единственный объект «Диапазон с верхней границей 6 футов и нижней границей 4 фута». В общем случае диапазоны могут быть выражены в терминах, допускающих сравнение (с использованием операторов <, >, <=, >= и =), таким образом, и верхняя и нижняя границы некоторого Диапазона являются некоторыми величинами (Количество представляет собой разновидность величины).

Каждое выполненное доктором или медсестрой наблюдение представляет собой экземпляр понятия Наблюдение и является либо Измерением, либо Категорией Наблюдения. Таким образом, измерение роста в 6 футов для Мартина Фаулера следует представить как экземпляр Измерения. С этим Измерением ассоциированы величина «6 футов», Тип Показателя «рост» и Пациент по имени Мартин Фаулер. Типы Показателей представляют собой измеримые величины: рост, вес, сердечный ритм и т. д. Некоторое наблюдение, согласно которому Мартин Фаулер имеет группу крови О, следует представить как Категорию Наблюдения, с которой 153 Наблюдение пациента: модель предметной области Рис. 13Л. Модель предметной области наблюдения пациента ассоциирован Показатель «группа крови 0».

Этот Показатель в свою очередь связан с Типом Показателя «группа крови». Диаграмма объектов на рис. 11.2 может несколько прояснить данную ситуацию. Рис. 11.3 иллюстрирует, что можно выполнить Наблюдение, которое служит одновременно Измерением и Категорией Наблюдения. Основой етого факта служит то, что Измерение «90 ударов в минуту» может также являться Категорией Наблюдения, с которой связан Показатель «быстрый сердечный ритм». 154 Гпаэа11. Язык 0М~ и программирование Рие. 11.2.

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

(Должен же я как-нибудь вставить в эту книгу код на Лача1) Большинство рассмотренных понятий могут быть преобразованы в классы языка дача. Понятия Пациент, Тип Показателя, Показатель, Единица Измерения и Количество преобразуются без проблем. Проблема возникает только с понятиями Диапазон и Наблюдение. Проблема с Диапазоном обусловлена тем, что мне нужно сформировать количественный диапазон для Показателя. Это можно было бы осуществить, создав интерфейс «величина» и установив, что Количество реализует данный интерфейс, но это привело бы к определенным трудностям. В языке Бша11Са1к подобных проблем не возникает, да и в языке С++ для этой цели можно воспользоваться параметризованными типами. Что касается данного примера, то здесь целесообразно использовать класс КоличественныйДиапазон, который, в свою очередь, использует образец «Диапазон«.

Наблюдение пациента: модель предметной области 155 Рие. 11.3. Другая диаграмма обэентов наблюдения нациенога Проблема, связанная с Наблюдением, заключается в том, что Наблюдение одновременно может быть Категорией Наблюдения и Измерением (рис.

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

156 Глава 11. Язык 0М~ и программирование Наблюдение пациента: модель спецификации На рис. 11.4 отражены модификации, которые внесены в модель предметной области, чтобы учесть некоторые из факторов, связанных с языком реализации. Рис. 11.4. Модель наблюдения пациента уровня спецификации Модель наблюдения пациента представлена здесь с точки зрения спецификации. На ней указаны скорее интерфейсы классов, чем сами классы.

Можно было бы поддерживать эту концептуальную модель и далее, но более вероятно, что начиная с етого момента, я буду работать только с моделью спецификации. Я не стараюсь поддерживать слишком много моделей. Мое личное правило состоит в следующем: если я не могу поддерживать модель посредством внесения в нее необходимых обновлений, то она отправляется в корзину. (Я знаю, что я к тому же ленив!) Теперь рассмотрим поведение, ассоциированное с нашей моделью наблюдения пациента (рис. 11.5).

Наблюдение пациента: модель спецификации 157 Рис. 11.Б. Операции модели наблюдения пациента Первый сценарий запрашивает последние данные о сердечном ритме пациента. В связи с этим возникает первый вопрос: кто должен нести ответственность за выполнение этого запроса2 Естественным ответом представляется Пациент. Пациент должен просмотреть все свои наблюдения, выбрать из них измерения с Типом Показателя «сердечный ритм» и найти среди них самое последнее значение.

Чтобы сделать это, необходимо добавить в Измерение момент времени. Поскольку аналогичные рассуждения могут быть применены и к другим наблюдениям, я также добавлю момент времени и в Наблюдение. Пациент имеет такую же ответственность по отношению к Показателю: Найти последнюю Категорию Наблюдения, которая обладает Показателем для данного Типа Показателя. На рис. 11.5 показаны те операции, которые были мною добавлены к классу Пациент, чтобы отразить в модели все сказанное выше. 158 Глава Ц. Язык ОМ1.

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

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

Тип файла
DJVU-файл
Размер
978,55 Kb
Тип материала
Высшее учебное заведение

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

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