Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 125
Текст из файла (страница 125)
Ответы к избранным упражнениям 527 Сапсем ЗваФ Рис. 012.9. Диаграмма классов для системы бронирования Рис. 012.10. Диаграмма классов для неориентированных графов ° Планирование сезона. Определяется список соревнований в рамках сезона. Для каждого соревнования определяется дата, список упражнений и список соревнуюшихся команд. ° Оценка упражнения. Судья следит за выступлением участника на уп- ражнении и выставляет ему оценку. ° Определение очков.
Секретарь получает от судей их оценки и вычис- ляет суммарное количество очков. ° Вычисление статистики. Система вычисляет требуемую статистику, такую как максимальный индивидуальный результат в упражнении или суммарный командный результат на соревновании. Твагл огеавврег Согоренл дание Рис. 013.12. Диаграмма вариантов использования для системы подсчета очков лиги синхронного плавания 13.21. На рис. 013.14 показаны «операции по списку» (не все). 528 Ответы к избранным упражнениям Зсогеаеерег Мает Зтаноп Зеавоп в1айп90а1е епп!пдОа1е Саге !осааоп !осааоп гед!втегСоптрейог всьеао!еЕчепт всьеоо!еМеет спадов Р!доге Ечепт Зоеде вйпгп9Твпе 1 ° чеп!уСогпрейогв 1 ЗдигеТйе ОИГ!соауяастог Оевспрвоп паве Тг!а! Теапт петвсоге пате соптротеМеетлчегаде соптри1евеавопАчегаде сошро1епе18соге Согпретног пате а9е авд геев те!ерлопемогпьег рпптМеетвсогев сойрйеМеетАчегаде соптротевеавоплчегаде Рис.
013.14. Часть диаграммы классов для системы подсчета очков (с операциями) 14.6. На рис. 014.1 показан один из возможных вариантов разбиения. 14.7. Одна программа обеспечивает быстрое выявление и исправление ошибок, устраняет необходимость реализации интерфейса между двумя программами. В этом случае любые ошибки, обнаруженные системой в процессе преобразования диаграммы классов в схему базы данных, могут быть быстро переданы пользователю для исправления.
Кроме того, части программы, отвечаюшие за редактирование и преобразование, могут работать с одними и теми же данными, благодаря чему исключается потребность в интерфейсе (например, файле), который служил бы для передачи диаграммы классов из одной программы в другую. Рис. 014.1. Структурная схема интерактивной символьной системы для работы с полиномами Ответы к избранным упражнениям 529 Деление функциональности между двумя программами снижает требования к памяти и делает возможной независимую разработку программ. Требования к памяти, предъявляемые единой программой, будут приблизительно соответствовать сумме требований двух раздельных программ.
Поскольку обе программы будут, скорее всего, нуждаться в больших объемах памяти, их объединение может вызвать проблемы с производительностью. Деление на две программы упрощает их разработку, которая может осуществляться независимо. Изменения в одной программе с меньшей вероятностью затронут другую программу. Две программы отлаживать проще, чем одну большую. Если интерфейс между программами будет жестко определен, проблемы в системе легко можно будет связать с одной из ее частей, которой они вызваны. Еще одно преимушество деления системы на две части состоит в повышении гибкости. Редактор может использоваться с другими преобразующими программами, например с системой, генерирующей объявления классов на каком-либо языке программирования. Генератор схемы базы данных может быть адаптирован к другим графическим редакторам.
14.10. Рассмотрим каждое из возможных решений. 1) Не беспокоиться о потере данных. Каждый раз при включении системы полностью сбрасывать все данные. Это самый дешевый и самый простой подход. Его относительно легко запрограммировать, потому что достаточно всего лишь написать подпрограмму инициализации, которая будет запускаться каждый раз при включении питания и будет давать пользователю возможность ввести параметры. Однако этот подход неприемлем для систем, которые должны обеспечивать непрерывное обслуживание клиентов, или для тех, где потеря данных при отключении питания недопустима.
3) Хранить критическую информацию на магнитном диске. Периодически делать полные и добавочные копии на магнитной ленте. Этот подход характеризуется Средней стоимостью и средним уровнем сложности. В случае отказа питания система прекращает работу. Для работы с диском и магнитной лентой требуется работоспособная система. Для работы с лентами требуется присутствие оператора, что исключает возможность применения данного решения для полностью автоматизированных приложений.
5) Использовать специальную память, такую как память на магнитных пузырьках или энергонезависимую память ЕЕРГгОМ. Это дешевый подход, допускающий автоматизацию. Однако в отсутствие питания система все равно не сможет работать. Кроме того, энергонезависимая память может накладывать дополнительные ограничения, такие как количество операций перезаписи или объем хранимых данных. Для сохранения важных параметров при обнаружении отказа питания может потребоваться специальная программа.
530 Ответы к избранным упражнениям 14.11. 1) Карманный бухгалтерский калькулятор. Не беспокоиться о потере данных. Все остальные варианты слишком дороги. Такие калькуляторы продаются по низкой цене и используются бухгалтерами. Требования к объему памяти — порядка 10 байтов. 3) Системные часы персонального компьютера. Требуется всего несколько байтов памяти, но часы должны работать при отключении питания. Дешевое решение — резервная батарейка. Электронные часы могут работать от такой батареи в течение 5 лет и более.
5) Блок управления и защиты двигателя от перегрева. Требуется порядка 10 — 100 байтов памяти. Для этого приложения важным критерием является цена. Источник бесперебойного питания стоит слишком дорого. Ленточные и дисковые накопители слишком ненадежны, учитывая условия работы. Нужно использовать переключатели, специальные виды памяти и резервную батарею. При помощи переключателей можно вводить параметры (интерфейс системе управления требуется в любом случае). В специальной памяти можно хранить вычисленные данные.
Батарейку можно использовать для продолжения работы при отключении питания, однако в данном приложении батарея вызовет сложности в обслуживании. Мы предложили бы пересмотреть последнее требование, например установить датчик для измерения температуры двигателя или предположить, что двигатель может быть натрет при первом включении. 14 12. 1) Описание диаграммы выглядит следующим образом: (отлаяли (сьлзз (ИЛИЕ "Ротуооп")) (Сълза (МАМЕ "Ротпс") (лттнтвоте "и") (лттвтвоте "у")) (лззостлтгом (ЕМО (МАМЕ "Ротулоп") ОМЕ) (ЕМО (НАИЕ "Родпс") МАМУ))) 14.13.
Аппаратное решение работает быстрее всего, но стоит дороже. Программ нос решение дешевле и более гибкое, но может быть недостаточно быстрым. Программный подход следует использовать везде, где его производительности хватает. В универсальных системах он предпочтительнее благодаря гибкости.
В специальных системах добавочные схемы интегрируются с дополнительным оборудованием. Вообще говоря, существует еше один подход — программно-аппаратный (Вгппчаге). Обычно аппаратный контроллер вычисляет контрольную сумму в соответствии с закодированной в постоянной памяти и недоступной извне программой. Этот подход мы относим к аппаратным решениям. 1) Контроллер гибкого диска. Используйте аппаратный подход.
Гибкость тут не нужна, потому что такой контроллер представляет собой спе- Ответы к избранным упражнениям 531 циализированную систему. Потребность в высокой производительности обусловлена высокой скоростью передачи данных. 3) Плата памяти в компьютере космического корабля. Используйте аппаратный контроль памяти. Это пример специального приложения, где функциональность можно интегрировать в микросхемы плат памяти.
Скорость передачи данных очень высокая. 5) Проверка номера счета. Используйте программный подход. Скорость передачи данных очень низкая. Система, обрабатывающая номер счета, скорее всего, работает на универсальном компьютере. 15.6. Рисунок О15 1 накладывает ограничение, отсутствующее на рис. У15.1. Каждый ВоипгйпВВок (ОграничивающийПрямоугояьник) соответствует ровно одному экземпляру ЕВ(рве (Эллипс) или Яесгапд!е (Прямоугольник).