tehnologia (1018792), страница 32

Файл №1018792 tehnologia (Г.С. Иванова - Учебник - Технология программирования) 32 страницаtehnologia (1018792) страница 322017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

рис. 6.9) и вариантов использования (см. рис. 6.4)позволяют выделить следующие группы классов или пакеты:• Пользовательский интерфейс - классы, реализующие объекты интерфейса с пользователем;• Библиотека интерфейсных компонентов - классы, реализующие интерфейсные компоненты: окна,кнопки, метки и т. п.;• Объекты управления - классы, реализующие сценарии вариантов использования;• Объекты задачи - классы,реализующие объекты предметнойобласти системы;• Интерфейс базы данных классы, реализующие интерфейс сбазой данных;190• База данных;• Базовые структуры данных - классы, реализующие внутренние структуры данных, такие, как деревья, n-связные списки и т.

п.;• Обработка ошибок - классы исключений, реализующие обработку нештатных ситуаций.Последние два пакета объявим глобальными, так как их элементы могут использовать классывсех пакетов.Определим зависимости классов и построим диаграмму пакетов (рис. 7.4).7.2. Определение отношений между объектамиПосле определения основных пакетов разрабатываемого программного обеспеченияпереходят к детальному проектированию классов, входящих в каждый пакет. Классыкандидаты, которые предположительно должны войти и конкретный пакет, показывают надиаграмме классов этапа проектирования и уточняют отношения между объектами указанныхклассов.Пример 7.2. Определить классы-кандидаты пакета Объекты задачи.Используя рекомендации, приведенные в § 7.1, выполним анализ концептуальной моделипредметной области (рис.

6.9), описания основного ва-191рианта использования Решение задачи (см. § 6.2) и его диаграммы деятельностей (см. рис.6.4).Список классов-кандидатов, полученный на основе данного анализа, выглядитследующим образом:• класс Задание - объекты данного класса должны создаваться каждый раз, когдапользователь инициирует новое задание;• семейство классов с базовым классом Алгоритм - объекты данного класса должнысоздаваться, когда определен алгоритм решения задачи;• класс Данные — объекты данного класса должны создаваться при определении (вводеили выборе из базы) данных;• класс Результаты - объекты данного класса должны создаваться при решенииконкретной задачи конкретным алгоритмом с использованием конкретных данных.Исходный вариант диаграммы классов пакета Объекты задачи показан на рис. 7.5.192Основой для проектирования классов является уточнение взаимодействия объектов этихклассов в процессе реализации вариантов использования.

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

7.6).Каждое сообщение представляют в виде линии со стрелкой, соединяющей линии жизнидвух объектов. Эти линии помещают на диаграмму в порядке генерации сообщений (сверхувниз и слева направо). Сообщению присваивают имя, но можно указать и аргументы, иуправляющую информацию, например, условие формирования или маркер итерации (*).Возврат при передаче синхронных сообщений подразумевают по умолчанию.Если объект создается сообщением, то его рисуют справа от стрелки сообщения так,чтобы стрелка сообщения входила в него слева.Диаграммы последовательностей также позволяют изображать параллельные процессы.Асинхронные сообщения, которые не блокируют работу вызывающего объекта, показываютполовинкой стрелки (рис. 7.7, а).

Такие сообщения могут:• создавать новую ветвь процесса;• создавать новый объект (рис. 7.7, б);• устанавливать связь с уже выполняющейся ветвью процесса.На линии жизни в этом случае дополнительно показывают активации, которыеобозначаются прямоугольником, наложенным поверх линии жизни (рис. 7.7, в).193Уничтожение объекта показывают большим знаком «X» (рис.

7.7, г).При необходимости линию жизни можно прервать, чтобы не уточнять обработку, несвязанную с анализируемыми объектами (рис. 7.7, д).Пример 7.3. Разработать диаграмму последовательностей для сценария Решение задачи(фрагмент варианта использования Выполнение задания от момента инициализациипользователем процесса решения до его завершения).Анализ описания варианта использования показывает, что необходимо рассмотреть триварианта последовательности действий:а) нормальный процесс;б) прерывание процесса пользователем;в) возникновение исключения при выполнении алгоритма.Нормальный процесс предполагает, что при выдаче команды Создать создается объектРешение, управляющий данным сценарием. Следующее сообщение Начать активизирует этотобъект. Объект Решение запрашивает у объекта класса Задание тип объекта Алгоритм, создаетобъект требуемого класса и активизирует его, сохраняя способность получать и обрабатыватьсообщения (параллельный процесс).Объект класса Алгоритм, реализующий метод, запрашивает у объекта класса Заданиеданные и начинает обработку, используя вспомогательные объекты.

Нормально завершивобработку, объект класса Алгоритм, реализующий метод, передает объекту класса Заданиерезультаты и возвращает объекту Решение признак нормального завершения. Объект Решениеуничтожает объект класса Алгоритм, реализующий метод, и возвращает вызвавшему егообъекту признак нормального завершения решения (рис. 7.8, а).В случае прерывания процесса объект Решение прерывает процесс решения, уничтожаетобъект Алгоритм и возвращает признак прерванного выполнения (рис.

7.8, 6). В этом случаепри выполнении обработки возникает194аварийная ситуация, результатом которой является генерация исключения. Обрабатываяисключение, объект класса Решение, генерирует соответствующее сообщениепользователю, уничтожает объект класса Алгоритм, реализующий метод, и возвращаетпризнак завершения выполнения с ошибкой (рис. 7.9).195Диаграмма кооперации. Диаграмма кооперации - это альтернативный способпредставления взаимодействия объектов в процессе реализации сценария, который позволяетпо-другому взглянуть на ту же информацию. В отличие от диаграмм последовательностейдиаграммы кооперации показывают потоки данных между объектами классов, что позволяетуточнить связи между ними.Пример 7.4.

Разработать диаграмму кооперации для сценария Процесс решения.Изобразим на одной диаграмме три возможных случая реализации сценария, нумеруясообщения в порядке их возможной генерации (рис. 7.10).196Такое представление позволяет описать потоки данных, передаваемых между объектамиклассов Решение, Задание и Алгоритм, реализующий метод, для сценария Процессрешения.7.3. Уточнение отношений классовПроцесс проектирования классов начинают с уточнения отношений между ними.

Наэтапе проектирования помимо ассоциации и обобщения различают еще два типа отношениямежду классами: агрегацию и композицию.К сожалению, до настоящего времени не существует единой устоявшейся терминологииобъектно-ориентированного проектирования. В табл. 7.1 приведены соответствия междуосновными терминами, используемыми наиболее известными авторами в этой области.Агрегацией называют ассоциацию между целым и его частью или частями.

Агрегациювместо ассоциации указывают, если отношение «целое-часть» в конкретном случаесущественно. Например, если колесо нас интересует только как часть автомобиля, то междусоответствующими классами целесообразно указать отношение агрегации, а если колесо товар, также как и автомобиль, то связь целое-часть не существенна.Композиция - более сильная разновидность агрегации, которая подразумевает, чтообъект-часть может принадлежать только единственному целому.

Объект-часть при этомсоздается и уничтожается только вместе со своим целым.Уточненные отношения между классами фиксируют на диаграмме классов. Для этогоиспользуют специальные уловные обозначения (рис. 7.11).Поскольку отношение ассоциации и его подвиды (агрегация и композиция) означаютналичие обмена сообщениями между объектами классов целеТаблица 7.1НотацияUMLБучКоалЯкобсонОделлРамбоШлеср/ МеллорКлассКлассКласс, объектТерминыАссоциацияОбобщениеИспользованиеНаследованиеСвязь экземпляров ОбобщениеспециализацияАгрегацияВключениеЧасть-целоеОбъектродстваТип объектаАссоциацияНаследованиеСостоит изСвязьПодтипКомпозицияКлассАссоциацияОбобщениеАгрегацияОбъектСвязьПодтипНе определена197сообразно уточнить направление передачи сообщений. Навигацию (направление ассоциации)показывают стрелкой на конце линии ассоциации.

Если стрелки указаны с обеих сторон, тоэто означает двунаправленную ассоциацию.Специальное обозначение на диаграмме классов этапа проектирования используютдля указания абстрактных классов и методов: на диаграмме классов их имена выделяюткурсивом, либо перед именем класса указывают стереотип «abstract».UML также включает специальную нотацию для обозначения параметризованныхклассов или шаблонов (рис. 7.12, а). Получение из такого класса класса с конкретнымитипами элементов называют связыванием. Связывание можно обозначить двумя способами:явно указав тип параметра (рис.

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

Тип файла
PDF-файл
Размер
7,85 Mb
Тип материала
Высшее учебное заведение

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

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