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

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

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

7.12, б) и используя условное обозначение уточнения (рис.7.12, в).Диаграммы классов позволяют также отобразить ограничения, которые невозможнопоказать, используя только понятия, рассмотренные выше (ассоциации, обобщения,атрибуты, операции). Например, показать, что средний198балл студентов должен определяться по соответствующей формуле. Подобную информациюна диаграмме классов можно представить в виде записи на естественном языке или в видематематической формулы, поместив их в фигурные скобки.Особое место в процессе проектирования классов занимает проектированиеинтерфейсов.Интерфейсы.

Интерфейсом в UML называют класс, содержащий только объявлениеопераций. Отдельное описание интерфейсов улучшает технологические качествапроектируемого программного обеспечения. Интерфейсы широко применяют при разработкесетевого программного обеспечения, которое должно идентично функционировать вгетерогенных средах, а также для организации взаимодействия с системами управлениябазами данных и т. п., так как механизм полиморфного наследования позволяет создаватьразличные реализации одного и того же интерфейса.С точки зрения теории объектно-ориентированного программирования интерфейспредставляет собой особый вид абстрактного класса, отличающийся тем, что он не содержитметодов, реализующих указанные операции, и объявлений полей.

Другими словами,абстрактные классы позволяют определить реализацию некоторых методов, а интерфейсытребуют отложить определение всех методов.На диаграмме классов интерфейс можно показать двумя способами: с помощьюспециального условного обозначения (рис. 7.13, а) или, объявив для класса стереотип«interface» (рис. 7.13, б).Реализацию интерфейса также можно показать двумя способами: сокращенно (рис.7.14, а) или, используя отношение реализации (рис. 7.14, б).199Дляостальныхклассов,ассоциированных с интерфейсом, следуетуточнить ассоциацию, показавотношениезависимости.Этоотношение в данном случае означает, чтокласс использует указанный интерфейс(рис.

7.15), т. е. обращается к описанным винтерфейсе функциям.Одновременносуточнениемотношений классов в пакете следует продумать и отношения классов, включенных вразличные пакеты, между собой.Пример 7.5. Уточнить отношения классов пакета Объекты задачи между собой и склассом Решение из пакета Объекты управления, используя результаты детализацииотношений между объектами рассматриваемых классов.Анализ диаграммы кооперации, представленной на рис.

7.10, показывает, что:• класс Задание по сути дела представляет собой таблицу, в которой фиксируется всяинформация о конкретной задаче: вид задачи, алгоритм решения, данные и результат,причем результат связан с заданием неразрывно, так как теряет смысл вне контекста задания(отношение композиции), а данные имеют смысл сами по себе (отношение агрегации);• класс Алгоритм целесообразно разрабатывать как абстрактный; этот класс будетописывать интерфейс между объектом класса Решение и конкретным алгоритмом, а такжемежду объектом класса Задание и опять же конкретным алгоритмом;• отношение между классами Задание и Алгоритм, Решение и Алгоритм, а такжеЗадание и Решение - ассоциации, направленные к классу Задание (рис.

7.16).Кроме того, анализ структур исходных данных и результатов решаемых задачпоказывает их существенное различие, следовательно, классы Данные и Результаты такженеобходимо реализовать как абстрактные и наследовать от них классы, уточняющиеструктуры данных и результатов для каждого случая. При дальнейшем анализе следуетвыяснить, будут ли классы Данные и Результаты описывать какие-либо поля или они толькоопределят интерфейсы, через которые будет осуществляться доступ к данным и результатамконкретных заданий.На диаграмме классов целесообразно также указать множественность» объектов.Поскольку каждый раз решается одна задача с единственными данными, используяконкретный алгоритм, и в результате получают единствен-200ное решение, все перечисленные выше ассоциации связывают объекты «один к одному».7.4.

Проектирование классовСобственно проектирование классов предполагает окончательноё определениеструктуры и поведения его объектов. Структура объектов определяется совокупностьюатрибутов и операций класса. Каждый атрибут - это поле или совокупность полей данных,содержащихся в объекте класса.201Поведение объектов класса определяется реализуемыми обязанностями. Обязанностивыполняются посредством операций класса.Таким образом, при проектировании класса, помимо имени и максимально полногосписка атрибутов, необходимо уточнить его ответственность и операции.

Причем какатрибуты, так и операции в процессе проектирования целесообразно дополнительноспецифицировать. В зависимости от степени детализации диаграммы классов обозначениеатрибута может, помимо имени, включать: тип, описание видимости и значение поумолчанию. Для этого используют следующий формат:<признак видимости> <имя>:<тип> = <значение по умолчанию>,где признак видимости может принимать одно из трех значений: «+» - общий; «#» защищенный; «-» - скрытый.Как упоминалось выше, операциями называют основные действия, реализуемыеклассом. В отличие от методов, операции не всегда реализуются классом непосредственно.Например, операция Ввод числа может быть реализована агрегатированным интерфейснымэлементом «окно ввода».Полное описание операции на диаграмме класса в UML может выглядеть следующимобразом:<признак видимости> <имя>(<список параметров>):<тип возвращаемого значения>.Ответственностью класса называют краткое неформальное перечисление основныхфункций объектов класса.

Ответственность класса обычно определяют на начальных этапахпроектирования, когда атрибуты и операции класса еще не определены. Эту информациюотображают на диаграмме классов в специальных секциях условного изображения класса(рис. 7.17).Исходный список операций класса формируют, анализируя диаграммы деятельностей,диаграммы взаимодействия и диаграммы последовательностей действий, построенные дляразличных сценариев с участием объектов проектируемого класса. На начальных этапахпроектирования в секции операций класса обычноуказываютлишьименаосновныхопераций,определяющих наиболее общее поведение объектовсоответствующих классов.

По мере уточнения добавляютновые операции, а информацию об уже имеющихсяоперациях детализируют.Большинство атрибутов выявляется при анализепредметной области, требований технического задания иописаний потоков событий.202Кроме того, как указывалось выше, отношение ассоциации и его подвиды - агрегацияи композиция - означают наличие обмена сообщениями между объектами классов.

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

Изменение состояния, связанное с нарушением условия или,соответственно, завершением дёятельности или наступлением события называют переходом.Диаграммы состояний показывают состояния объекта, возможные переходы, а такжесобытия или сообщения, вызывающие каждый переход.Условные обозначения состояний приведены на рис. 7.18. Действие, указанное послеслова Вход, выполняется при входе в состояние, а действие, указанное после слова Выход при выходе из него. Деятельность связывается с нахождением в состоянии.Переход обозначается линией со стрелкой и может быть помечен меткой, состоящейиз трех частей, каждую из которых можно опустить;<Событие> [<Условие>]/<Действие>.Если событие не указано, то это означает, что переход выполняется позавершению деятельности, связанной с данным состоянием.

Если же оно указано - то при наступлении события.203Условие записывается в виде логического выражения. Переход происходит, если результат выражения - «истина». Объект не может одновременноперейти в два разных состояния, поэтому условия перехода для любого события должны быть взаимоисключающими.В отличие от деятельностей, действия, указанные для перехода, связывают с последним и рассматривают как мгновенные и непрерываемые.При необходимости можно определять суперсостояния (рис. 7.18, г),которые объединяют несколько состояний в одно. Этот механизм обычно используют, чтобы показать переход из нескольких состояний в одно и то жёсостояние, например, при отмене каких-либо действий.Пример 7.6. Разработать диаграмму состояний для объекта класса Решение.Диаграмму состояний объекта строим, анализируя соответствующиедиаграммы последовательности действий (см.

рис. 7.8 и 7.9). При этом необходимо уточнить, в какой момент разрешить прерывание процесса извне.Чтобы показать, что прерывание процесса возможно еще во время егоинициализации, вводим суперсостояние Процесс. При реализации следуетучесть возможность прерывания процесса до активации Алгоритма (рис. 7.19).204Результаты уточнения структуры и поведения объектов классов отразим на диаграммеклассов.Пример 7.7. Уточнить атрибуты и операции классов Решение, Задание, Алгоритм,Данные и Результаты, используя полученные в данном параграфе сведения.К л а с с З а д а н и е.

Поскольку объект класса Задание должен хранитьидентификатор задачи и тип алгоритма, то он должен иметь соответствующие поля ивключать операции Определить задачу(), Определить алгоритм(), Сообщить тип задачи(),Сообщить тип алгоритма().Кроме того, объект класса Задание отвечает за объекты классов Данные и Результаты,связанные с ним, следовательно, он должен хранить их адреса и выполнять операции:Определить данные(), Сообщить данные(), Фиксировать результаты(), Сообщитьрезультаты(),К л а с с ы Д а н н ы е и Р е з у л ь т а т ы. Данные задач и их результаты должныхраниться в базе данных, но они имеют различные структуры.

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

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

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

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