2011 Теормин ООАиП (по лекциям Малышко), страница 2
Описание файла
PDF-файл из архива "2011 Теормин ООАиП (по лекциям Малышко)", который расположен в категории "". Всё это находится в предмете "(uml) методы анализа и проектирования по" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Поток объектов отмечается сплошной или пунктирной стрелкой от узла действия к объектномуузлу или от объектного узла к узлу действия, использующего объект. Ребра (сплошные стрелки) между узламидействий показывают потоки управления или потоки объектов. Узел разветвления (узел принятия решения), атакже узел объединения потоков изображается ромбом. Если необходимо показать, что две или более ветвейпотока выполняются параллельно, используются «линейки синхронизации» – узлы разделения и узлыслияния (жирные горизонтальные линии).4Стереотип – это новый тип элемента модели, который определяется на основе уже существующего элемента.Стереотипы расширяют нотацию модели, могут применяться к любым элементам модели и представляются ввиде текстовой метки или пиктограммы.Теги (именованные значения) – специальные термины, используемые спецификации ограничений и свойств,такие как disjoint, complete, incomplete и др., могут сопровождаться указанием значения свойства, например,author=Вася или location=server.Примечание – элемент диаграммы для комментария или другой текстовой информации.
Примечание можетсодержать дополнительные сведения об элементах модели (с ними его соединяет пунктирная линия).Ограничение – это семантическое ограничение, имеющее вид текстового выражения на естественном илиформальном языке (OCL – Object Constraint Language), которое невозможно выразить с помощью нотации UML.Он может быть использован для решения следующих задач:● описание инвариантов классов и типов в модели классов;● описание пред- и постусловий в операциях и методах;● описание ограничивающих условий элементов модели;● навигация по структуре модели;● спецификация ограничений на операции.Лекция 4.Классификация ограничений:● Инвариант класса – условие, которое всегда справедливо для всех экземпляров класса (ключевоеслово inv:).● Предусловие операции – условие, которое должно быть истинно перед выполнением операции(ключевое слово pre:).● Постусловие операции – условие, истинное всегда после выполнения операции (ключевое словоpost:).● Тело запроса – описание результата операции-запроса, не модифицирующей объекты (ключевое словоbody:)● Начальное значение атрибута или соединения (ключевое слово init:)● Правило вывода, описывающее производные атрибуты, связи или классы (ключевое слово derive:).● Определение (ключевое слово def:).Характеристики OCL:● текстовый (невизуальный) язык описания ограничений;● формальный язык, часть стандарта UML;● язык со строгой типизацией;● декларативный язык (для ограничений не определяется конкретная процедура их проверки);● платформо-независимый.Синтаксис OCL-выражения:● <OCL-выражение> ::= <указание контекста> [(inv | pre | post | body | init | derive | def) : <тело выражения>]● <указание контекста> ::= context <имя элемента модели>В теле выражения используются:● выражения простых типов (boolean, integer, string, real);● элементы модели, для которой составлено ограничение;● коллекции.Примеры использования и описание операций:● context Airline inv: name.toLower = ‘klm’ – здесь ‘klm’ – строка, toLower – стандартная операция надстрокой, дающая как результат строку в нижнем регистре.
Смысл ограничения: у любого экземпляракласса Airline значение атрибута name, записанное строчным буквами совпадает со строкой ‘klm’.5●context Passenger inv: age >= ((9.6 - 3.5)* 3.1).floor implies mature = true – здесь floor – «округлениевниз». Смысл ограничения: у любого экземпляра класса Passenger значения атрибутов age и matureтаковы, что если age > 18, то mature = true.● context Flight inv: self.maxNrPassengers <= 1000 – в любом рейсе максимальное количество пассажировне превышает 1000 (использован атрибут объекта – экземпляра класса Flight).● context Flight:maxNrPassengers:Integer init: 1000 – в любом рейсе максимальное количествопассажиров по умолчанию = 1000.● context Passenger inv: self.age >= Passenger::minAge – у любого пассажира возраст большеминимального (использован атрибут age экземпляра класса Passenger и атрибут того же класса minAge).● context Airport inv: self.arrivingFlights -> collect(airLine) -> nonEmpty – для любого аэропортамножество авиакомпаний, выполняющих прибывающие рейсы, не пусто.● context Airport inv: self.departingFlights->select(duration<4)->notEmpty – для любого аэропорта естьхоть один отправляющийся рейс длительностью менее 4 часов.● context Airport inv: self.departingFlights->forAll(maxNrPassengers < 1000) – для любого аэропортасправедливо, что у любого отправляющегося рейса максимальное количество пассажиров < 1000.Некоторые дополнительные операции над коллекциями:● exists: истина, если хотя бы для одного элемента коллекции истинно;● isEmpty: истина, если коллекция пуста;● notEmpty: истина, если коллекция непуста;● size: количество элементов коллекции;● sum: сумма элементов коллекции чисел;● count(<элемент>): количество вхождений элемента;● includes(<элемент>): истина, если <элемент> входит в коллекцию;● excludes(<элемент>): истина, если <элемент> отсутствует в коллекции;● includesAll(<коллекция>): истина, если все элементы параметра <коллекция> входят в коллекцию.Лекция 5.Бизнес-процесс (производственный процесс) определяется как логически завершенный наборвзаимосвязанных и взаимодействующих видов деятельности, поддерживающий деятельность организации иреализующий ее политику, направленную на достижение поставленных целей.
Бизнес-процесс используетопределенные ресурсы (финансовые, материальные, человеческие, информационные). Выделяют следующиеклассы процессов:● основные процессы (производство товаров и услуг, приносят доход, составляют основную деятельностькомпании);● обеспечивающие процессы (обеспечение основных процессов финансами, кадрами, комплектующими,тех. обслуживанием, администрирование и юридическое обеспечение);● процессы управления (планирование и контроль бизнес-процессов других видов).Бизнес-модель – это формализованное описание бизнес-процессов предприятия, фиксирующее существующееположение дел (модель AS-IS «как есть») или устанавливающее новые усовершенствованные способыосуществления деятельности (модель AS-TO-BE «как будет»).Модель бизнес-процессов (Business Use Case Model) – модель, описывающая бизнес-процессы организации втерминах ролей и их потребностей.
Она представляет собой расширение модели вариантов использования UMLза счет введения набора стереотипов Business Actor (деловое действующее лицо – стереотип действующеголица) и Business Use Case (бизнес-процесс – стереотип варианта использования). Из этой модели видно вкаком контексте работает предприятие, но не видно как именно протекает его работа (это описывает модельбизнес-анализа).Каждый бизнес-процесс сопровождается спецификацией, в которой содержится:● наименование;● краткое описание бизнес-процесса;● цели и результаты;● описание сценариев (основного и альтернативных);6● специальные требования (время и стоимость);● расширения (исключительные ситуации);● связи;● диаграммы деятельности (моделирующие сценарии бизнес-процесса).Модель бизнес-анализа – это объектная модель, элементами которой являются исполнитель (business worker)и бизнес-сущность (business entity).Лекция 6.Требование – это условие, которому должно удовлетворять программное обеспечение, или свойство, которымоно должно обладать, чтобы:● удовлетворить потребность пользователя в решении некоторой задачи;● удовлетворить требования контракта, спецификации или стандарта.Методы выявления требований:● собеседование (интервьюирование);● анкетирование;● проведение совещаний;● сессии по выявлению требований (мозговой штурм);● раскадровка (storyboard);● создание и демонстрация работающих прототипов;● ролевые игры.Лекция 7.При построении диаграмм взаимодействия возникают проблемы правильного распределения обязанностеймежду классами.
Для их решения существует ряд образцов: Information Expert, Creator, Low Coupling, HighCohesion.Образец “Information Expert”. Проблема: Нужно определить наиболее общий принцип распределенияобязанностей между классами. Решение: Следует назначить обязанность информационному эксперту – классу,у которого имеется информация, требуемая для выполнения обязанности.Образец "Creator". Проблема: Нужно определить, кто должен отвечать за создание нового экземпляранекоторого класса. Создание новых объектов в объектно-ориентированной системе является одним изстандартных видов деятельности.
Следовательно, при назначении обязанностей, связанных с созданиемобъектов, полезно руководствоваться некоторым основным принципом. Решение: Следует назначить классу Вобязанность создавать экземпляры класса А, если выполняется одно из следующих условий:● класс В агрегирует, содержит или активно использует объекты класса А;● класс В обладает данными инициализации, которые будут передаваться объектам класса А при ихсоздании (т.е.
класс В является информационным экспертом).Класс В при этом определяется как создатель (creator) объектов класса А.Если несколько классов удовлетворяют этим условиям, то предпочтительнее использовать в качестве создателякласс, агрегирующий или содержащий класс А.Образец "Low Coupling" (низкая связанность). Проблема: Нужно распределить обязанности между классамитаким образом, чтобы снизить взаимное влияние изменений в них и повысить возможность повторногоиспользования. Решение: Следует распределить обязанности таким образом, чтобы обеспечить низкуюсвязанность.Образец "High Cohesion" (высокая функциональная прочность или сильное зацепление обязанностей).Проблема: Нужно распределить обязанности между классами таким образом, чтобы каждый класс не выполнялмного разнородных функций или несвязанных между собой обязанностей.
Такие классы создаватьнежелательно, поскольку они приводят к возникновению таких же проблем, как у классов с сильнойсвязанностью. Решение: Следует распределить обязанности таким образом, чтобы обеспечить высокуюфункциональную прочность.7Лекция 8.Процесс – это ресурсоемкий поток управления, который может выполняться параллельно с другими потоками.Он выполняется в независимом адресном пространстве и в случае высокой сложности может разделяться надва или более потоков.Поток (нить) – это облегченный поток управления, который может выполняться параллельно с другимипотоками в рамках одного и того же процесса в общем адресном пространстве.Лекция 9.База данных – долговременное самодокументированное хранилище данных.Структура реляционных данных – совокупность таблиц.
В любой таблице фиксированное количествостолбцов и произвольное – строк. Совокупность значений ячеек одной строки – запись.Оператор SQL – предложение SQL для манипуляции данными (выборка, изменение, добавление, удаление).Отображение классов:● Каждый класс переводится в отдельную таблицу, атрибуты становятся столбцами таблицы. Операции наструктуру таблицы не влияют. Они могут переводиться в хранимые процедуры, если мы ходимпереложить часть работы по манипулированию данными на СУБД.● Уникальный идентификатор устойчивого класса превращается в первичный ключ таблицы. Если имеетсянесколько альтернативных уникальных идентификаторов, выбирается наиболее используемый. Если вмодели для устойчивого класса явно не указан идентификатор, то в таблицу добавляется столбец ID –первичный ключ.Отображение бинарных ассоциаций:● «1 к 1му» – возможны различные решения, лучше создать общую таблицу для 2х классов.