Конспект лекций, страница 17

PDF-файл Конспект лекций, страница 17 Объектно-ориентированный анализ и проектирование (53235): Лекции - 7 семестрКонспект лекций: Объектно-ориентированный анализ и проектирование - PDF, страница 17 (53235) - СтудИзба2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Конспект лекций", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 17 страницы из PDF

Это может быть набор элементов пользовательского интерфейса,зависящий от возможностей среды разработки, или набор классов, реализующийсистемный или аппаратный интерфейс.FatClassКлассы-сущности- transientAttr1сучетомсоображений<<entity>>производительности и+ getCommonlyUsedAttr2()FatClass+ getCommonlyUsedAttr3()защиты данных могут- transientAttr1+ getRarelyUsedAttr4()разбиваться на ряд+ getRarelyUsedAttr5()+ commonlyUsedAttr2классов.Основанием+ commonlyUsedAttr3для разбиения является+ rarelyUsedAttr411+ rarelyUsedAttr5наличиевклассеFatClassLazyDataHelperFatClassDataHelperатрибутов с различной- RarelyUsedAttr4+ CommonlyUsedAttr2частотой использования- RarelyUsedAttr5+ CommonlyUsedAttr3или видимостью.

Такиеатрибуты, как правило,выделяются в отдельные классы.Что касается управляющих классов, то классы, реализующие простую передачуинформации от граничных классов к сущностям, могут быть удалены. Сохраняютсяклассы, выполняющие существенную работу по управлению потоками событий(управление транзакциями, распределенная обработка и т.д.).Полученные в результате уточнения классы подлежат непосредственной реализациив коде системы.Обязанности классов, определенные в процессе анализа и документированные ввиде «операций анализа», преобразуются в операции, которые будут реализованы в коде.При этом: каждой операции присваивается краткое имя, характеризующее ее результат; определяется полная сигнатура операции; создается краткое описание операции, включая смысл всех ее параметров;11определяется видимость операции: public, private или protected;определяется область действия операции: операция объекта или операция класса.Уточнение атрибутов классов заключается в следующем: задается его тип атрибута и значение по умолчанию (необязательно); задается видимость атрибутов: public, private или protected; при необходимости определяются производные (вычисляемые) атрибуты.Если в системе присутствуют объекты со сложным поведением, то строятдиаграммы состояний.

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

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

Квалификатор не обязательно состоитиз одного атрибута (также как и потенциальный ключ записей в таблице). Указываются12типы множественных связей: множество, упорядоченное множество, мультимножество,упорядоченное мультимножество. Используются классы-контейнеры (список, хэштаблица и проч.). Классам с необязательными связями добавляются операции проверки,существования соединения между их экземплярами.Связи обобщения могут преобразовываться в ситуациях с так называемойметаморфозой подтипов, когда есть необходимость менять тип объектов (например,преобразовывать студента-заочника в студента дневного отделения или наоборот).В модели добавляются ограничения. Для их записи используется язык OCL,рассматриваемый на лекции 8.Проектирование баз данных производится, если используется реляционная БД, приэтом классы-сущности объектной модели отображаются в таблицы реляционной БД.Подробное рассмотрение вопросов проектирования БД содержится в лекции 9.Литература к лекции 71.

Вендров А. М. Проектирование программного обеспечения экономическихинформационных систем. 2-е изд. – М.: Финансы и статистика, 2005. – Глава 4.2. Рамбо Дж., Блаха М. UML 2.0. Объектно-ориентированное моделированиеи разработка. 2-е изд.: Пер. с англ. – СПб.: Питер, 2007. – Главы 14.3. Якобсон А., Буч Г., Рамбо Дж.

Унифицированный процесс разработки программногообеспечения.: Пер. с англ. – СПб.: Питер, 2002. – Глава 9.4. Коналлен Дж. Разработка Web-приложений с использованием UML.: Пер. с англ. –М.: Вильямс, 2001. – Глава 10.13Лекция 8. Объектный язык ограничений (OCL)Ограничение (constraint) – это условие, накладываемое на значения одного илинескольких элементов модели. Ограничение не является инструкцией или командой,которую следует выполнить, оно формулируется как утверждение, которое должно бытьистинным. Под элементом модели здесь имеется в виду объект, или класс, или пакет, илиподсистема, или атрибут, или операция, или связь.Рассмотрим пример:ГрузовойРейсПассажирскийРейс0..*0..*«redefine»Рейс0..*1«redefine»Самолет1ГрузовойСамолет1ПассажирскийСамолетДиаграмма содержит большое количество связей (ассоциаций и обобщений)необходимых для указания, что тип самолета должен соответствовать типу рейса, т.

е. чтопассажиров нельзя перевозить грузовым самолетом. Это ограничение можнозафиксировать иначе, упростить диаграмму, сделать ее более наглядной:тип самолета должен соответствовать типу рейсаСамолетРейстип : enum of грузовой, пассажирский 0..*1 тип : enum of грузовой, пассажирскийОграничение, записанное на естественном языке, неформально, его можнонеправильно трактовать (например, что чартерные рейсы должны выполняться старымисамолетами, а регулярные – новыми). Поэтому имеет смысл использовать для записиформальный язык, который не допускает произвольных толкований и имеет стандартныйсинтаксис и семантику.

Таковым является объектный язык ограничений OCL (ObjectConstraint Language), являющийся одним из расширений UML. С использованием OCLдиаграмма будет выглядеть так:{context Рейсinv: тип = #грузовой implies самолет.тип = #грузовойinv: тип = #пассажирский implies самолет.тип = #пассажирский}СамолетРейстип : enum of грузовой, пассажирский 0..*11тип : enum of грузовой, пассажирскийСлово implies означает логическую операцию импликации (a → b, читается так: из aследует b, это выражение ложно лишь при a – истина и b – ложь, в остальных случаях оноистинно). Вообще говоря, для записи ограничений можно использовать и другиеформальные языки, например, языки программирования. Основное неудобство при этом– ограничение, записанное на языке программирования, похоже на часть программы, чтопридает ограничению посторонний смысл (может сложиться впечатление, что происходяткакие-либо манипуляции над элементами модели, а это противоречит определениюпонятия ограничения).Классификация ограничений:• Инвариант класса – условие, которое всегда справедливо для всех экземпляров класса(ключевое слово inv:).• Предусловие операции – условие, которое должно быть истинно перед выполнениемоперации (ключевое слово pre:).• Постусловие операции – условие, истинное всегда после выполнения операции(ключевое слово post:).• Тело запроса – описание результата операции-запроса, не модифицирующей объекты(ключевое слово body:)• Начальное значение атрибута или соединения (ключевое слово init:)• Правило вывода, описывающее производные атрибуты, связи или классы (ключевоеслово derive:).В примере мы описали инварианты класса Рейс.Характеристики OCL:• текстовый (невизуальный) язык описания ограничений;• формальный язык, часть стандарта UML;• язык со строгой типизацией;• декларативный язык (для ограничений не определяется конкретная процедураих проверки);• платформо-независимый.Никакое ограничение OCL не меняет состояния элементов модели (у него нетпобочных эффектов), но с его помощью можно добавлять производные атрибуты иоперации (def:).Синтаксис OCL-выражения<OCL-выражение> ::=<указание контекста>[(inv | pre | post | body | init | derive | def) : <тело выражения>]В записи использованы символы языка БНФ: <> выделяют нетерминалы, ( | ) –вхождение одной из указанных альтернатив, [] вхождение 1 или более раз, {} – вхождение0 или более раз.

Терминалы записаны жирным шрифтом.Контекст. В любом OCL-выражении указывается определенный контекст. Какправило, контекстом является элемент модели (пакет, класс, атрибут, операция),с которым связано ограничение.<указание контекста> ::= context <имя элемента модели>В примере контекстом является класс Рейс.Для того чтобы сослаться на контекст в теле выражения используется слово self.Чтобы много раз не писать self, оно часто опускается. По смыслу self аналогично this в C++. В примере тип – сокращенная запись self.тип.В теле выражения используются• выражения простых типов (boolean, integer, string, real);• элементы модели, для которой составлено ограничение;• коллекции.Логический тип OCL почти таков как в языках программирования.

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