Файл: Применение объектно-ориентированного подхода при проектировании информационной системы.pdf
Добавлен: 19.06.2023
Просмотров: 36
Скачиваний: 3
Важным качеством объектного подхода является согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации. Заявочное пожелание слаженности моделей выполняется благодаря способности внедрения абстрагирования, модульности, полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сопоставлению с моделями реализации. По объектным моделям может быть изучено отображение настоящих сущностей моделируемой предметном области (организации) в объекты и классы информационной системы.
1.3 ВАРИАНТЫ ИСПОЛЬЗОВАНИЯ
В течение довольно долгого периода времени в процессе как объектно-ориентированного, так и обычного структурного проектирования разработчики использовали обычные сценарии, помогающие лучше понять запросы к системе. Эти сценарии трактовались очень неофициально - они практически постоянно применялись и очень редко протоколировались. И вар Якобсон в первый раз использовал понятие "вариант использования" (use case) и дал ему такую значимость, что он превратился в главный элемент разработки и планирования проекта.
Вариант использования представляет собой очередность действий (транзакций), исполняемых системой в ответ на явление, стимулируемое некоторым внешним объектом (действующим лицом). Вариант применения описывает обычное взаимодействие меж пользователем и системой. К примеру, два обычных варианта использования обыденного текстового процессора — "создаьб некий текст полужирным" и "создать индекс". Даже на этом элементарном примере можно отметить разряд параметров варианта применения: он охватывает некую явную для пользователей функцию, может быть как маленьким, так и довольно большим и постановляет для пользователя некую дискретную задачу В простом варианте применения ориентируется в процессе дискуссии с пользователем тех функций, которые он желал бы воплотить.
Когда Якобсон в 1994 г. предложил варианты применения в качестве главных частей процесса разработки ПО, он еще внес предложение использовать для их приятного понятия диаграммы разновидностей применения. На рис.1 представлены некоторые варианты применения для системы торговой фирмы; человеческие фигуры тут означают действующих лиц, эллипсы - варианты применения, а линии и стрелки — разные взаимосвязи меж действующими лицами и вариациями применения.
Рис.1 Диаграмма вариантов использования
Действующее лицо(actor) —это роль, которую юзер играет сообразно отношению к системе. На рис.1 4 действующих лица: Клерк по продажам, Оптовый купец, Торговец и Система учета. Действующие лица представляют собой роли, а не конкретных людей либо названия дел. Несмотря на то, что на диаграммах разновидностей применения они представляются в облике стилизованных человеческих фигурок, действующее лицо имеет возможность также быть внешней системой, которой нужна некая информация от предоставленной системы (к примеру, Система учета). Демонстрировать на диаграмме действующих лиц системы надлежит лишь в том варианте, когда им вправду нужны некие варианты применения.
Все варианты применения так либо иначе соединены с наружными требованиями к работоспособности системы. Ежели Системе учета требуется файл, то это заявочное пожелание обязано быть удовлетворено. Варианты применения постоянно надлежит разбирать вкупе с действующими лицами системы, характеризуя при данном настоящие задачи пользователей и рассматривая другие методы заключения данных задач.
Действующие лица могут играть разные роли по отношению к варианту применения. Они могут воспользоваться его результатами либо могут сами непосредственно в нем принять участие. Значимость различных ролей действующего лица находится в зависимости от того, каким образом употребляются его взаимосвязи.
Неплохим источником для идентификации разновидностей использования служат внешние события. Надлежит приступить с перечисления всех явлений, происходящих во внешнем мире, на которые система должна каким-то образом реагировать. Какое-либо определенное явление имеет возможность вызвать за собой реакцию системы, не спрашивающую вмешательства пользователей, либо, напротив, побудить чисто пользовательскую реакцию. Идентификация явлений, на которые необходимо реагировать, помогает отметить варианты применения.
В добавление к взаимосвязям меж действующими лицами и вариациями применения есть 2 других вида связей(см.рис.1): "использование" (uses) и "расширение" (extends) меж вариациями использования. Ассоциация вида "расширение" используется тогда, когда один вариант применения сходственнее иному, однако несет некоторое количество большей нагрузку
В предоставленном образце главным вариантом применения считается Заключить сделку В этом варианте ожидается обычный ход процесса. Но в варианте превышения некого предела — к примеру, наибольшей суммы торговой аферы, поставленной для конкретного клиента, процесс, соединенный с этим вариантом применения, есть исключения, то это действующее лицо не имеет отношения к осуществления остальных разновидностей применения.
Выбор использующейся взаимосвязи ориентируется последующими правилами:
• связь "расширение" надлежит использовать при отображенье конфигураций в нормальном поведении системы;
• связь "использование" надлежит использовать для предотвращения повторов в 2-ух (либо более) вариантах применения. Варианты применения считаются необходимым средством на стадии созиданья притязаний к ПО. Любой вариант применения — это возможное требование к системе, и пока оно не обнаружено, невозможно запланировать его осуществление.
Разные разработчики подходят к отображению разновидностей применения с различной степенью детализации. К примеру, Ивар Якобсон заявляет, что для плана с трудозатратностью в 10 человеко-лет количество разновидностей использования может составлять около 20 (не считая связей "использование" и "расширение"). Надлежит выбирать небольшие и детализированные варианты использования, так как они упрощают составление и осуществление слаженного плана проекта.
Глава II ДИАГРАММЫ
2.1 Диаграммы классов
Диаграммы классов считаются основным звеном объектно-ориентированных методов. Диаграмма классов определяет разновидности объектов системы и различного рода статические связи, которые есть меж ними. Есть два главных вида статических связей:
•ассоциации(к примеру, клиент имеет возможность свершить заявку);
•подтипы(частный клиент является типом клиент
Рис. 2 Диаграмма классов
На диаграммах классов представляются также принадлежности классов, операции классов и лимитирования, которые накладываются на связи меж объектами.
На рис.2 обрисована обычная диаграмма классов. Перед тем как приступить к отображению диаграмм классов, следует направить интерес на один важный эпизод, связанный с характером применения данных диаграмм разработчиками. Данный эпизод традиционно никоим образом не протоколируется, но оказывает существенное воздействие на метод интерпретации диаграмм и потому имеет важное положение к тому, что описывается при помощи модели.
Построение диаграмм классов можно рассматривать в разных качествах:
концептуальный аспект —диаграммы классов показывают понятия изучаемой предметной области (имитируемой организации). Эти понятия, естественно, станут подходить реализующим их классам, но это непосредственное соотношение часто отсутствует. В действительности концептуальная модель может обладать очень слабым отношением либо в общем не обладать никаким отношения к реализующему её программному обеспечению, потому её можно рассматривать как не зависимую от средств осуществления (языка программирования);
•аспект спецификации —модель опускается на уровень ПО, однако рассматриваются лишь интерфейсы, а не программная осуществление классов (под интерфейсом тут понимается комплект операций класса, заметных извне);
•аспект реализации -модель вправду описывает реализацию классов ПО. Данный аспект более важен для программистов.
Сознание аспекта имеет огромное значение как для построения, так и для чтения диаграмм классов. К сожалению, отличия меж аспектами не настолько отчетливы, и большая часть разработчиков при возведенье диаграмм допускают их слияние.
При возведенье диаграммы нужно избрать единый аспект. При чтении диаграммы надлежит узнать, в согласовании с каким аспектом она выстраивалась. Ежели необходимо разъяснять эту диаграмму безошибочным образом, то без такового познания не обойтись.
Точка зрения на диаграммы классов, не будучи фактически формальной частью UML, но при возведенье и разборе моделей считается очень важной. Системы UML можно применять с хоть какой из трех точек зрения. Большая часть опытных разработчиков-программистов выбирают аспект реализации. С другой стороны, разумеется, что возведение диаграмм классов на стадии формирования притязаний к ПО обязано проделываться с концептуальной точки зрения.
На рис.2 изображена обычная модель классов, связанная с обработкой заказов клиентов. Обрисуем любой отрывок модели и рассмотрим его вероятную интерпретацию с разных точек зрения.
Ассоциации представляют собой взаимосвязи меж экземплярами классов (личность действует в фирме, фирма владеет рядом кабинетов).
С концептуальной точки зрения связи представляют собой концептуальные связи меж классами. На диаграмме представлено, что Заявка обязана поступить от единого Клиента, а Клиент в течение некого времени имеет возможность свершить некоторое количество Заявок. Любая из этих Заявок охватывает некоторое количество Строк заявки, любая из которых подходит единому Продукту.
Любая связь обладает 2-мя ролями; любая роль представляет собой направленность связи. Таковым образом, связь меж Клиентом и Заявкой охватывает 2 роли: 1 от Клиента к Заявке, иная - от Заявки к Клиенту.
Роль может быть очевидно поименованная с помощью метки. К примеру, роль связи в направленности от Заявки к Строчкам заявки именуется «позиция заявки». Ежели таковая метка отсутствует, роли присваивается имя класс – цели – таким образом, роль связи от Заказа к Клиенту может быть названа Клиент (термины «начало» (source) и «цель» (target) используются для обозначения классов, проявляющихся соответственно исходным и окончательным для ассоциации).
2.2 ДИАГРАММЫ ВЗАИМОДЕЙСТВИЯ
Диаграммы взаимодействия (interaction diagrams) являются моделями, описывающими поведение взаимодействующих групп объектов.
Как правило, диаграмма взаимодействия охватывает поведение объектов в рамках только одного варианта использования. На такой диаграмме отображаются ряд объектов и те сообщения, которыми они обмениваются между собой.
Проиллюстрируем данный подход на примере достаточно простого варианта использования, который описывает следующее поведение:
• Окно Ввода Заказа посылает Заказу сообщение "приготовиться".
• Заказ посылает данное сообщение каждой Строке заказа в данном Заказе.
• Каждая Строка заказа проверяет состояние определенного Запаса товара:
Если данная проверка удовлетворяется (результат - true), то Строка заказа удаляет соответствующее количество товара из Запаса.
В противном случае количество Запаса снижается до уровня повторного заказа, и Запас запрашивает новую поставку товара.
Существуют два вида диаграмм взаимодействия: диаграммы последовательности (sequence diagrams) и кооперативные диаграммы (collaboration diagrams).
На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии (рис.3).
Эта вертикальная линия называется линией жизни(lifeline) объекта. Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия. Такую форму представления впервые ввел Ивар Якобсон.
Каждое сообщение представляется в виде стрелки между линиями жизни двух объектов. Сообщения появляются в том порядке, как они показаны на странице - сверху вниз. Каждое сообщение помечается, как минимум, именем сообщения; при желании можно добавить также аргументы и некоторую управляющую информацию и, кроме того, можно показать само делегирование.
Рис. 3 Диаграмма последовательности
(self-delegation) — сообщение, которое объект посылает самому себе, при этом стрелка сообщения указывает на ту же самую линию жизни.
Из всей возможной управляющей информации два ее вида имеют существенное значение. Во-первых, это условие, показывающее, когда посылается сообщение (например, [нужен Повторный Заказ="true"]). Сообщение посылается только при выполнении данного условия. Другой полезный управляющий маркер - это маркер итерации, показывающий, что сообщение посылается много раз для множества объектов-адресатов (например,* приготовиться).