Главная » Просмотр файлов » Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование

Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование (1158625), страница 27

Файл №1158625 Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование (Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование) 27 страницаДж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование (1158625) страница 272019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Librarian вводит данные штрафа в систему.2. Система распечатывает штраф.extension points: overdueBook, payFine«extend»первый сегмент расширяющегопрецедента IssueFine вводится в точкерасширения overdueBook, а второйсегмент – в точке payFineIssueFineСегмент 1 постусловия:1. Штраф записан в системе.2. Система распечатала штраф.Сегмент 2 предусловия:1. Штраф взыскан с должника.Поток сегмента 2:1. Librarian принимает платеж по штрафу от должника.2. Librarian вводит выплаченный штраф в систему.3. Librarian распечатывает квитанцию об уплате штрафа.Сегмент 2 постусловия:1. Штраф зарегистрирован как выплаченный.2. Система распечатала квитанцию об уплате штрафа.Рис.

5.13. Расширяющий прецедент с двумя сегментами вставки132Глава 5. Дополнительные аспекты моделирования прецедентоввставляется в первой точке расширения и т. д. Поэтому надо очень аккуратно записывать сегменты в правильном порядке, а затем придерживаться его.5.5.3. Условные расширенияПример на рис. 5.14 демонстрирует другой, более гуманный подходк должнику: если он впервые задержал книгу, выдается предупреждение, а штраф выписывается только при повторном нарушении правил.Это можно смоделировать путем добавления нового расширяющегопрецедента IssueWarning (выдать предупреждение) и введения условийв отношения «extend».

Условия (conditions) – это логические выражения. Вставка осуществляется только в том случае, если выражениеистинно.Обратите внимание, что расширяющий прецедент IssueWarning вводится только в точке расширения overdueBook (просроченная книга). Однако (как и ранее) расширяющий прецедент IssueFine вводится и в точкеReturnBookextension pointsoverdueBookpayFine«extend»condition: {первое нарушение}extension points:overdueBookIssueWarningусловие«extend»condition: {!первое нарушение}extension points:overdueBook, payFineIssueFineРис. 5.14. Добавление условного расширяющего прецедентаРасширяющий прецедент: IssueWarningID: 11Краткое описание:Сегмент 1: Librarian выдает предупреждение.Главные актеры:LibrarianВторостепенные актеры:Нет.Сегмент 1 предусловия:1. Возвращенная книга просрочена.Поток сегмента 1:1.

Librarian вводит данные предупреждения в систему.Сегмент 1 постусловия:1. Предупреждение записано в системе.Рис. 5.15. Описание условного расширяющего прецедента5.6. Когда применять дополнительные возможности133overdueBook, и в точке payFine (выплатить штраф). Это свидетельствуето том, что IssueWarning (рис. 5.15) содержит только один сегмент вставки, тогда как IssueFine (как мы уже видели) – два.5.6.

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

Запомните, что модель прецедентов – это изложение требований, то есть она должна быть понятнойне только разработчикам моделей, но и заинтересованным сторонам.Простая модель прецедентов, в которой дополнительные возможностиприменяются редко или вообще отсутствуют, предпочтительнее модели, переполненной дополнительными возможностями, даже если последняя кажется разработчику более изысканной.Учитывая опыт моделирования прецедентов в различных компаниях,можно сделать следующие выводы:• обычно заинтересованные стороны после небольшой тренировкии обучения могут без труда разбираться в актерах и прецедентах;• заинтересованным сторонам сложнее воспринимать обобщение актеров;• широкое использование отношения «include» затрудняет пониманиемоделей прецедентов – заинтересованным сторонам и разработчикам моделей приходится рассматривать несколько прецедентов дляполучения полной картины;• у заинтересованных сторон возникают большие сложности с пониманием отношения «extend» даже после подробных объяснений;• как это ни удивительно, многие разработчики объектных моделейневерно понимают семантику отношения «extend»;• обобщение прецедентов следует применять, только если в системеиспользуются абстрактные (а не конкретные) родительские прецеденты, в противном случае это сильно усложняет дочерние прецеденты.5.7.

Советы и рекомендации по написаниюпрецедентовВ данном разделе предлагается несколько советов и рекомендацийпо написанию прецедентов.134Глава 5. Дополнительные аспекты моделирования прецедентов5.7.1. Делайте прецеденты короткими и простымиОсновной девиз: «Делайте прецеденты короткими, делайте их простыми». Они должны включать именно такой объем информации, которого достаточно для записи требований. К сожалению, в некоторых проектах разработчики избегают простого и сжатого изложения и стремятся к непомерному увеличению объема документации.

Гради Бучназывает эту тенденцию «бумажной жадностью».Есть хорошее правило: основной поток прецедента должен помещаться на одной странице. Немного больше, и прецедент практически наверняка окажется слишком длинным. В реальности большинство прецедентов короче половины страницы.Начать надо с упрощения фраз (использовать только короткие повествовательные предложения, как описано в разделе 3.6.2). Затем удалить все детали проектирования (см. следующий раздел).

Если прецедент попрежнему слишком велик, необходимо повторно проанализировать проблему. Вероятно, прецедент можно разбить на несколькопрецедентов либо выделить альтернативные потоки.5.7.2. Фокусируйтесь на том «что», а не «как»Помните, прецеденты создаются для того, чтобы понять, чего актерыждут от системы, а не как она должна это осуществлять. «Как» становится ясно позже, при проектировании. Смешение «что» с «как» является повсеместной проблемой. Разработчик, работая над прецедентом,придумывает какоето решение.

Рассмотрим, к примеру, следующийфрагмент прецедента:...4. Система просит Покупателя подтвердить заказ.5. Покупатель нажимает кнопку OK....В данном примере разработчик прецедента представил себе некийпользовательский интерфейс: форму с кнопкой «ОК». Изза этого прецедент перестал быть простым изложением требований, это первичный проект. Лучше записать шаг 5 следующим образом:...5. Покупатель соглашается с заказом....Детали проектирования (которые пока неизвестны!) должны оставаться вне прецедента.5.7.3. Избегайте функциональной декомпозицииФункциональная декомпозиция не подходит для моделей прецедентов.1355.7.

Советы и рекомендации по написанию прецедентовLibrarySystemИзбегайте функциональнойдекомпозиции«include»AddBookMaintainBooks«include»DeleteBook«include»AddTicket«include»«include»RunLibraryMaintainTicketsLibrarian«include»DeleteTicket«include»LendBook«include»MaintainLoans«include»ReturnBookРис. 5.16. Пример функциональной декомпозицииПри анализе прецедентов широко встречается следующая ошибка:создается ряд «высокоуровневых» прецедентов, которые затем разбиваются на ряд прецедентов более низкого уровня и т. д.

до «элементарных» прецедентов, достаточно детализированных для реализации. Такой подход к разработке программного обеспечения называется функциональной декомпозицией. Он абсолютно ошибочен в применениик моделированию прецедентов.Рассмотрим пример. На рис. 5.16 аналитик описал работу библиотечной системы с помощью одного высокоуровневого прецедента RunLibrary (управление библиотекой). Затем путем функциональной декомпозиции разложил его на все более и более детализированные уровни.Многим неОО аналитикам рис.

5.16 кажется вполне приемлемым.Однако с точки зрения моделирования прецедентов в предложенномпримере содержится много ошибок:•Модель сосредоточена не на фиксировании требований, а на искусственном структурировании этих требований – существует множество возможных вариантов декомпозиции.•Модель описывает систему как набор вложенных функций. ОднакоОО системы в действительности являются наборами взаимодействующих объектов, обменивающихся сообщениями. Здесь очевидное концептуальное несоответствие.136Глава 5. Дополнительные аспекты моделирования прецедентов••Интерес представляют только описания прецедентов самого низкого уровня: AddBook (добавить книгу), DeleteBook (удалить книгу), AddTicket (добавить формуляр), DeleteTicket (удалить формуляр), LendBook(выдать книгу) и ReturnBook (вернуть книгу).

Более высокие уровнипросто вызывают нижние и ничего не привносят в модель с точкизрения отражения требований.Модель сложна и непонятна заинтересованным сторонам: в ней несколько абстрактных прецедентов (RunLibrary, MaintainBooks (обслуживание книг), MaintainTickets (обслуживание формуляров) и MaintainLoans (обслуживание выдачи книг)) и много отношений «include»с более низкими уровнями абстракции.Применение функциональной декомпозиции говорит о том, что аналитик неправильно продумал систему. Обычно это свидетельствует о том,что он обучен более традиционным методам процедурного программирования и пока что не уловил принципа ОО программирования. В этомслучае лучше привлечь опытного разработчика моделей прецедентовв качестве руководителя и консультанта.Не все примеры функциональной декомпозиции так очевидны, какприведенный на рис.

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

Что мы узналиМы изучили приемы углубленного моделирования прецедентов. Основная задача моделирования – создать простую понятную модельпрецедентов, в которой вся необходимая информация представленамаксимально четко и лаконично. Модель прецедентов, не использующая расширенные возможности, всегда предпочтительнее той, где такмного обобщений, отношений «include» и «extend», что невозможно понять, о чем идет речь.

Здесь лучшее правило: «Если сомневаешься, невключай».Мы узнали следующее:• Обобщение актеров обеспечивает возможность вынести поведение,общее для двух или более актеров, в актерародителя.• Актерродитель является более обобщенным, чем его потомки,а потомки – более специализированными, чем их родитель.• Дочерний актер везде может заменять актерародителя – этопринцип замещаемости.5.8. Что мы узнали••••137Актерродитель обычно абстрактный – он определяет абстрактную роль.• Дочерние актеры конкретны – они определяют конкретные роли.• Обобщение актеров может упрощать диаграммы прецедентов.Обобщение прецедентов позволяет вынести возможности, общиедля двух или более прецедентов, в родительский прецедент.• Дочерние прецеденты наследуют все возможности родительскихпрецедентов.• Дочерние прецеденты могут вводить новые возможности.• Дочерние прецеденты могут переопределять родительские возможности за исключением отношений и точек расширения.• В дочерних прецедентах мы применяем простые обозначения:• унаследованный без изменений – 3.

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

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

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