Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 44
Текст из файла (страница 44)
в Просмотреть треки по исполнителю. Отобразить список треков в музыкальной библиотеке, отсортированный по исполнителю. в Просмотреть треки по альбому. Отобразить список треков в музыкальной библиотеке, отсортированный по альбому. ч Просмотреть треки по жанру. Отобразить список треков в музыкальной библиотеке, отсортированный по жанру. ч Начать воспроизведение.
Начать воспроизведение треков из очереди воспроизведения. Если перед этим воспроизведение было остановлено, начать воспроизведение с последнего воспроизводившегося трека, в противном случае начать с начала очереди. ь Остановить воспроизведение. Прекратить воспроизведение музыки. 8.5.
(8) Рассмотрим простую систему составления платежных ведомостей. Подготовьте диаграмму вариантов использования и укажите отношения между некоторыми вариантами. Для каждого обобщения вы можете добавить абстрактного предка. ч Добавить удержание. Добавить новый тип удержания для сотрудника и включать его в последующие ведомости. ь Убрать удержание. Убрать удержание из списка удержаний сотрудника. ь Просуммировать доходы.
Просуммировать все доходы по ведомости. ь Просуммировать удержания. Просуммировать все удержания по ведомости. о Вычислить суммарный чистый заработок. Посчитать разницу между суммарными доходами и суммарными удержаниями по ведомости. ч Вычислить все пожертвования. Просуммировать все пожертвования на благотворительность по ведомости. ь Вычислить налоги. Просуммировать все налоги, уплаченные по ведомости. а Вычислить отчисления в пенсионный фонд.
Просуммировать все отчисления в пенсионные фонды по ведомости. ь Вычислить прочие удержания. Просуммировать все прочие удержания по ведомости, за исключением благотворительности, налогов и взносов в пенсионный фонд. ь Изменить имя сотрудника. Изменить записанное имя сотрудника. ь Изменить адрес сотрудника. Изменить записанный адрес сотрудника. Упражнения 195 ь Вычислить тарифную ставку оплаты. Вычислить тарифную ставку оплаты сотрудника в данной ведомости. я Вычислить оплату за сверхурочные. Вычислить всю оплату за сверхурочные для данного сотрудника по ведомости.
о Вычислить прочие выплаты. Просуммировать все прочие доходы сотрудника (помимо тарифной оплаты и сверхурочных) по данной ведомости. ь Изменить способ оплаты. Изменить метод оплаты ведомости; наличные, прямое зачисление в депозит по ведомости, выдача чека. 8.6. (4) Рассмотрим брокерскую программу, записывающую все транзакции для данного портфеля. Транзакции могут описывать, к примеру, покупку и продажу акций, получение дивидендов, а также сложные ситуации, подобные разделению акций.
Текущее содержимое портфеля можно определить, просмотрев журнал транзакций. Портфель характеризуется начальным содержимым, а все последующие изменения этого содержимого описываются только записями в журнале транзакций. Для определения текущего содержимого к начальному содержимому применяются все записи из журнала по текущую дату.
Сконструируйте процедурную диаграмму последовательности, показывающую порядок вычисления содержимого портфеля на конкретное число. На диаграмме должно присутствовать не более четырех потоков сообщений. 8.7. (5) Рассчитайте стоимость портфеля на конкретное число. Для этого сна- чала определите содержимое портфеля на эту дату (см. предыдущее упражнение), после чего умножьте количество акций каждого типа на их стоимость на соответствующее число и просуммируйте. 8.8.
(7) В этом упражнении нужно снова рассчитать стоимость портфеля на конкретное число. Однако в этом случае портфель может содержать не только акции, но и другие портфели. Для простоты предположите, что глубина вложенности портфелей не может превышать трех. Например, портфель суммарный может содержать портфели пенсионных фондов и облагаемый налогом счет. Эти портфели в нашем примере содержат только акции. 8.9. (6) Дама принимает решение модернизировать свой компьютер и купить ПЪ'О-проигрыватель. Она начинает со звонка в отдел продаж производителя компьютера, откуда ее перенаправляют в службу поддержки.
Она звонит в службу поддержки, где ее переводят в режим ожидания на время разговора с инженерами. Наконец, служба поддержки сообшает ей о возможных вариантах установки РЧО-проигрывателя. Дама выбирает модель проигрывателя и заказывает доставку почтой. Она получает проигрыватель, успешно устанавливает его в компьютер, после чего отправляет по почте оплаченный счет. Нарисуйте диаграмму деятельности для этого процесса.
Распределите ответственность при помощи плавательных дорожек. Покажите взаимодействия между подразделениями. 196 Глава 8 ° Дополнительные вопросы моделирования взаимодействий 8.10. (6) Компания производит новый продукт и должна координировать несколько отделов. Продукт начинает свое существование с маркетинговой идеи, которая передается в проектный отдел. Проектный отдел моделирует функции продукта и подготавливает проект.
Отдел производства изучает проект и корректирует его, приводя в соответствие с имеющимся оборудованием. Проектный отдел принимает изменения, после чего проект изучает служба поддержки: хороший проект должен подразумевать удобство ремоита. Проектный отдел принимает предложения службы поддержки и проверяет, что после корректировок проект все еще удовлетворяет требованиям, предъявленным к целевой функциональности. Нарисуйте диаграмму деятельности для этого процесса.
Покажите зоны ответственности при помощи плавательных дорожек. Покажите изменения состояния проекта по мере выполнения деятельности. Обзор концепций Нам кажется полезным моделировать системы с трех связанных между собой точек зрения: модель классов описывает объекты системы и отношения между ними; модель состояний описывает историю существования объектов, модель взаимодействия описывает взаимодействия между ними. Полное описание возможно только при использовании всех трех моделей, однако относительный вклад каждой зависит от конкретных задач. Каждая модель применяется на всех этапах разработки и постепенно обрастает деталями. 9.1. Модель классов Модель классов описывает статическую структуру объектов системы: их индивидуальность, отношения с другими объектами, их атрибуты и операции.
Модель классов является каркасом, в рамках которого определяются модели состояний и взаимодействия. Изменения и взаимодействия не имеют смысла, если отсутствует то, что может изменяться или взаимодействовать. Объекты — это элементы нашего мира, молекулы наших моделей. Наиболее важными концепциями модели классов являются классы, ассоциации и обобщения. Класс описывает группу подобных объектов. Ассоциация описывает группу подобных связей между объектами.
Обобщение структурирует описание объектов, упорядочивая классы по их сходствам и различиям. Атрибуты и операции являются вторичными и служат для уточнения фундаментальной структуры, образуемой классами, ассоциациями и обобщениями. 9.2. Модель состояний Модель состояний описывает аспекты объекта, изменяющиеся с течением времени: события, отмечающие изменения, и состояния, определяющие контекст событий.
198 Глава 9 ° Обзор концепций События соответствуют внешним воздействиям, а состояния обозначают значения объектов. С течением времени объекты воздействуют друг на друга, в результате чего их состояния претерпевают последовательные изменения. Модель состояний состоит из множества диаграмм состояний, по одной для каждого класса с нетривиальным поведением. Диаграммы состояний должны быть согласованы по интерфейсам (событиям и сторожевым условиям). Каждая диаграмма состояний показывает события и последовательности состояний, разрешенные для одного класса объектов. Диаграмма состояний указывает возможные состояния, переходы между состояниями, воздействия, вызывающие эти переходы, операции, выполняемые в ответ на воздействия.
Такая диаграмма описывает коллективное поведение объектов класса. Поскольку каждый объект имеет свои собственные значения и связи, то каждый объект имеет и собственное состояние или положение на диаграмме состояний. 9.3. Модель взаимодействия Модель взаимодействия описывает кооперацию объектов для достижения результатов. Это объединенное представление поведения множества объектов, тогда как модель состояний рассматривает поведение каждого обьекта индивидуально. Для полного описания поведения необходимы обе модели. Они дополняют друг друга, поскольку рассматривают поведение с двух различных точек. Взаимодействия можно моделировать на различных уровнях абстракции. На высшем уровне взаимодействие системы с внешними действующими лицами описывается при помощи вариантов использования.
Варианты использования соответствуют элементам функциональности и помогают описать неформализованные требования. Диаграммы последовательности содержат больше подробностей и показывают взаимодействующие объекты и временную последовательность их взаимодействия. Диаграммы деятельности содержат больше всего мелких деталей и показывают поток управления между этапами вычислений. 9.4. Отношения между моделями Модели классов, состояний и взаимодействия оперируют одними и теми же концепциями: данными, последовательностями и операциями, но каждая модель фокусируется на своем аспекте и ничего не говорит о прочих аспектах.
Все три модели необходимы для полного описания задачи. Все три модели объединяются при реализации методов, для которой требуются данные (целевой объект, аргументы, переменные), управление (упорядочивающие конструкции) и взаимодействия (сообщения и вызовы). Каждая модель описывает один аспект системы, но при этом она содержит ссылки на другие модели. Модель классов описывает структуру данных, с которой работают модели состояний и взаимодействия. Операции в модели классов соответствуют событиям, условиям и видам деятельности. Модель состояний 9.4. Отношения между моделями 199 описывает управляющую структуру объектов.
На ней показываются решения, зависящие от значений объектов. Решения вызывают изменения значений объектов и последующих состояний. Модель взаимодействия фокусируется на обмене между объектами и дает единое представление о работе системы в целом. Отношения обобщения и агрегации действуют, в том числе, н между моделями, поэтому мы рассматриваем пх применение в этой главе. 9.4.1. Обобщение Обобщение присутствует во всех трех моделях. Обобщение — это отношение «или», которое показывает различные вариации обшей ситуации.
В БМ«. 2.0 наследование применяется к классификаторам, а классы, сигналы и варианты использования являются классификаторами. ° Обобщение классов. Обобщение позволяет упорядочить классы по их сходствам и различиям. Подкласс наследует атрибуты, операции, ассоциации и диаграммы состояний от своих суперклассов.