Главная страница
Навигация по странице:

  • Вспомогательные операции

  • Обобщения (Наследование)

  • Пакет. Механизм пакетов

  • Существует несколько наиболее распространенных подхо- дов к группировке.

  • надо. Методические указания к выполнению лабораторных работ по курсу «. Методические указания к выполнению лабораторных работ по курсу инструментальные средства информационных систем Для студентов бакалавриата


    Скачать 1.81 Mb.
    НазваниеМетодические указания к выполнению лабораторных работ по курсу инструментальные средства информационных систем Для студентов бакалавриата
    Дата01.12.2021
    Размер1.81 Mb.
    Формат файлаpdf
    Имя файлаМетодические указания к выполнению лабораторных работ по курсу «.pdf
    ТипМетодические указания
    #288496
    страница5 из 8
    1   2   3   4   5   6   7   8
    Операции реализации
    Операции реализации (implementor operations) реализуют не- которые бизнес-функции. Такие операции можно найти, исследуя диаграммы взаимодействия. Диаграммы этого типа фокусируются на бизнес-функциях, и каждое сообщение диаграммы, скорее всего, можно соотнести с операцией реализации.

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко
    Каждая операция реализации должна быть легко просле- живаема до соответствующего требования. Это достигается на раз- личных этапах моделирования. Операция выводится из сообщения на диаграмме взаимодействия, сообщения исходят из подробного описания потока событий, который создается на основе варианта использования, а последний – на основе требований. Возможность проследить всю эту цепочку позволяет гарантировать, что каждое требование будет реализовано в коде, а каждый фрагмент кода реализует какое-то требование.
    Операции управления
    Операции управления (manager operations) управляют созда- нием и уничтожением объектов. В эту категорию попадают кон- структоры и деструкторы классов.
    Операции доступа
    Атрибуты обычно бывают закрытыми или защищенными.
    Тем не менее, другие классы иногда должны просматривать или изме- нять их значения. Для этого существуют операции доступа (access operations). Такой подход дает возможность безопасно инкапсулиро- вать атрибуты внутри класса, защитив их от других классов, но все же позволяет осуществить к ним контролируемый доступ. Созда- ние операций Get и Set (получения и изменения значения) для каждого атрибута класса является стандартом.
    Вспомогательные операции
    Вспомогательными (helper operations) называются такие опе- рации класса, которые необходимы ему для выполнения его ответст- венностей, но о которых другие классы не должны ничего знать.
    Это закрытые и защищенные операции класса.
    Чтобы идентифицировать операции, выполните следующие действия:
    1. Изучите диаграммы последовательности и кооперативные диаграммы. Большая часть сообщений на этих диаграммах является операциями реализации. Рефлексивные сообщения будут вспомогательными операциями.
    2. Рассмотрите управляющие операции. Может потребоваться добавить конструкторы и деструкторы.
    3. Рассмотрите операции доступа. Для каждого атрибута класса, с которым должны будут работать другие классы, надо создать операции Get и Set.
    Связи
    Связь представляет собой семантическую взаимосвязь меж- ду классами. Она дает классу возможность узнавать об атрибутах,

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко операциях и связях другого класса. Иными словами, чтобы один класс мог послать сообщение другому на диаграмме последовательности или кооперативной диаграмме, между ними должна существовать связь.
    Существуют четыре типа связей, которые могут быть установ- лены между классами: ассоциации, зависимости, агрегации и обобще- ния.
    Ассоциации
    Ассоциация (association) – это семантическая связь между классами. Их рисуют на диаграмме классов в виде обыкновенной ли- нии.
    Рис. 4.10. Связь ассоциация
    Ассоциации могут быть двунаправленными, как в приме- ре, или однонаправленными. На языке UML двунаправленные ассо- циации рисуют в виде простой линии без стрелок или со стрелками с обеих ее сторон. На однонаправленной ассоциации изображают только одну стрелку, показывающую ее направление.
    Направление ассоциации можно определить, изучая диа- граммы последовательности и кооперативные диаграммы. Если все сообщения на них отправляются только одним классом и прини- маются только другим классом, но не наоборот, между этими классами имеет место однонаправленная связь. Если хотя бы од- но сообщение отправляется в обратную сторону, ассоциация должна быть двунаправленной.
    Ассоциации могут быть рефлексивными. Рефлексивная ас- социация предполагает, что один экземпляр класса взаимодейству- ет с другими экземплярами этого же класса.
    Зависимости
    Связи зависимости (dependency) также отражают связь меж- ду классами, но они всегда однонаправлены и показывают, что один класс зависит от определений, сделанных в другом. Например, класс A использует методы класса B. Тогда при изменении класса B необходимо произвести соответствующие изменения в классе A.
    Зависимость изображается пунктирной линией, проведенной между двумя элементами диаграммы, и считается, что элемент, привя-

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко занный к концу стрелки, зависит от элемента, привязанного к началу этой стрелки.
    Рис. 4.11. Связь зависимость
    При генерации кода для этих классов к ним не будут добав- ляться новые атрибуты. Однако, будут созданы специфические для языка операторы, необходимые для поддержки связи.
    Агрегации
    Агрегации (aggregations) представляют собой более тесную форму ассоциации. Агрегация – это связь между целым и его частью.
    Например, у вас может быть класс Автомобиль, а также классы Дви- гатель, Покрышки и классы для других частей автомобиля. В ре- зультате объект класса Автомобиль будет состоять из объекта класса
    Двигатель, четырех объектов Покрышек и т. д. Агрегации визуали- зируют в виде линии с ромбиком у класса, являющегося целым:
    Рис. 4.12. Связь агрегация
    В дополнение к простой агрегации UML вводит более сильную разновидность агрегации, называемую композицией. Со- гласно композиции, объект-часть может принадлежать только единственному целому, и, кроме того, как правило, жизненный цикл частей совпадает с циклом целого: они живут и умирают вместе с ним. Любое удаление целого распространяется на его части.
    Такое каскадное удаление нередко рассматривается как часть определения агрегации, однако оно всегда подразумевается в том случае, когда множественность роли составляет 1..1; например, если необходимо удалить Клиента, то это удаление должно распро- страниться и на Заказы (и, в свою очередь, на Строки заказа).
    Обобщения (Наследование)
    Обобщение (наследование) - это отношение типа общее- частное между элементами модели. С помощью обобщений
    (generalization) показывают связи наследования между двумя клас-

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко сами. Большинство объектно-ориентированных языков непосредст- венно поддерживают концепцию наследования. Она позволяет од- ному классу наследовать все атрибуты, операции и связи другого.
    Наследование пакетов означает, что в пакете-наследнике все сущно- сти пакета-предка будут видны под своими собственными именами
    (т.е. пространства имен объединяются). Наследование показывается сплошной линией, идущей от класса-потомка к классу-предку (в тер- минологии ООП - от потомка к предку, от сына к отцу, или от под- класса к суперклассу). Со стороны более общего элемента рисуется большой полый треугольник.
    Рис. 4.13. Пример связи наследование
    Помимо наследуемых, каждый подкласс имеет свои собст- венные уникальные атрибуты, операции и связи.
    Множественность
    Множественность (multiplicity) показывает, сколько экземп- ляров одного класса взаимодействуют с помощью этой связи с одним экземпляром другого класса в данный момент времени.

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко
    Например, при разработке системы регистрации курсов в университете можно определить классы Course (курс) и Student
    (студент). Между ними установлена связь: у курсов могут быть сту- денты, а у студентов – курсы. Вопросы, на который должен ответить параметр множественности: «Сколько курсов студент может посе- щать в данный момент? Сколько студентов может за раз посещать один курс?»
    Так как множественность дает ответ на оба эти вопроса, еѐ индикаторы устанавливаются на обоих концах линии связи. В при- мере регистрации курсов мы решили, что один студент может посещать от нуля до четырех курсов, а один курс могут слушать от 0 до 20 студентов.
    В языке UML приняты определенные нотации для обозна- чения множественности.
    Таблица 1 - Обозначения множественности связей в UML
    Имена связей
    Связи можно уточнить с помощью имен связей или ролевых имен. Имя связи – это обычно глагол или глагольная фраза, описы- вающая, зачем она нужна. Например, между классом Person (человек) и классом Company (компания) может существовать ассоциация.
    Можно задать в связи с этим вопрос, является ли объект класса
    Person клиентом компании, еѐ сотрудником или владельцем? Что- бы определить это, ассоциацию можно назвать «employs» (нанима- ет):
    Рис. 4.14. Пример имен связей
    Роли
    Ролевые имена применяют в связях ассоциации или агрегации вместо имен для описания того, зачем эти связи нужны. Возвращаясь к примеру с классами Person и Company, можно сказать, что класс

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко
    Person играет роль сотрудника класса Company. Ролевые имена – это обычно имена существительные или основанные на них фра- зы, их показывают на диаграмме рядом с классом, играющим со- ответствующую роль. Как правило, пользуются или ролевым име- нем, или именем связи, но не обоими сразу. Как и имена связей, ро- левые имена не обязательны, их дают, только если цель связи не оче- видна. Пример ролей приводится ниже:
    Рис. 4.15. Пример ролей связей
    Пакет. Механизм пакетов
    В контексте диаграмм классов, пакет - это вместилище для не- которого набора классов и других пакетов. Пакет является самостоя- тельным пространством имен.
    Рис. 4.16. Обозначение пакета в UML
    В UML нет каких-либо ограничений на правила, по которым разработчики могут или должны группировать классы в пакеты. Но есть некоторые стандартные случаи, когда такая группировка уместна, например, тесно взаимодействующие классы, или более общий случай
    - разбиение системы на подсистемы.
    Пакет физически содержит сущности, определенные в нем (го- ворят, что "сущности принадлежат пакету"). Это означает, что если будет уничтожен пакет, то будут уничтожено и все его содержимое.
    Существует несколько наиболее распространенных подхо-
    дов к группировке.
    Во-первых, можно группировать их по стереотипу. В таком случае получается один пакет с классами-сущностями, один с граничными классами, один с управляющими классами и т.д.
    Этот подход может быть полезен с точки зрения размещения го-

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко товой системы, поскольку все находящиеся на клиентских машинах пограничные классы уже оказываются в одном пакете.
    Другой подход заключается в объединении классов по их функциональности. Например, в пакете Security (безопасность) со- держатся все классы, отвечающие за безопасность приложения. В та- ком случае другие пакеты могут называться Employee Maintenance
    (Работа с сотрудниками), Reporting (Подготовка отчетов) и Error
    Handling (Обработка ошибок). Преимущество этого подхода за- ключается в возможности повторного использования.
    Механизм пакетов применим к любым элементам модели, а не только к классам. Если для группировки классов не использовать некоторые эвристики, то она становится произвольной. Одна из них, которая в основном используется в UML, – это зависимость. За- висимость между двумя пакетами существует в том случае, если между любыми двумя классами в пакетах существует любая зави- симость.
    Таким образом, диаграмма пакетов представляет собой диа- грамму, содержащую пакеты классов и зависимости между ними.
    Строго говоря, пакеты и зависимости являются элементами диаграм- мы классов, то есть диаграмма пакетов – это форма диаграммы клас- сов.
    Рис. 4.17. Пример диаграммы пакетов
    Зависимость между двумя элементами имеет место в том слу- чае, если изменения в определении одного элемента могут по-

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко влечь за собой изменения в другом. Что касается классов, то причи- ны для зависимостей могут быть самыми разными: один класс посылает сообщение другому; один класс включает часть данных другого класса; один класс использует другой в качестве параметра операции.
    Если класс меняет свой интерфейс, то любое сообщение, кото- рое он посылает, может утратить свою силу.
    Пакеты не дают ответа на вопрос, каким образом можно уменьшить количество зависимостей в вашей системе, однако они по- могают выделить эти зависимости, а после того, как они все окажутся на виду, остается только поработать над снижением их количества.
    Диаграммы пакетов можно считать основным средством управле- ния общей структурой системы.
    Пакеты являются жизненно необходимым средством для больших проектов. Их следует использовать в тех случаях, когда диаграмма классов, охватывающая всю систему в целом и разме- щенная на единственном листе бумаги формата А4, становится нечи- таемой.
    Диаграммы состояний
    Диаграммы состояний определяют все возможные состоя- ния, в которых может находиться конкретный объект, а также процесс смены состояний объекта в результате наступления некоторых со- бытий.
    Существует много форм диаграмм состояний, незначитель- но отличающихся друг от друга семантикой.
    На диаграмме имеются два специальных состояния – началь- ное (start) и конечное (stop). Начальное состояние выделено черной точкой, оно соответствует состоянию объекта, когда он только что был создан. Конечное состояние обозначается черной точкой в белом кружке, оно соответствует состоянию объекта непосредст- венно перед его уничтожением. На диаграмме состояний может быть одно и только одно начальное состояние. В то же время, может быть столько конечных состояний, сколько вам нужно, или их может не быть вообще. Когда объект находится в каком-то кон- кретном состоянии, могут выполняться различные процессы. Процес- сы, происходящие, когда объект находится в определенном состоя- нии, называются действиями (actions).
    С состоянием можно связывать данные пяти типов: дея- тельность, входное действие, выходное действие, событие и исто- рия состояния.
    Деятельность

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко
    Деятельностью (activity) называется поведение, реализуемое объектом, пока он находится в данном состоянии. Деятельность – это прерываемое поведение. Оно может выполняться до своего завершения, пока объект находится в данном состоянии, или мо- жет быть прервано переходом объекта в другое состояние. Дея- тельность изображают внутри самого состояния, ей должно предшест- вовать слово do (делать) и двоеточие.
    Входное действие
    Входным действием (entry action) называется поведение, ко- торое выполняется, когда объект переходит в данное состояние. Дан- ное действие осуществляется не после того, как объект перешел в это состояние, а, скорее, как часть этого перехода. В отличие от дея- тельности, входное действие рассматривается как непрерываемое.
    Входное действие также показывают внутри состояния, ему пред- шествует слово entry (вход) и двоеточие.
    Выходное действие
    Выходное действие (exit action) подобно входному. Однако, оно осуществляется как составная часть процесса выхода из дан- ного состояния. Оно является частью процесса такого перехода. Как и входное, выходное действие является непрерываемым.
    Выходное действие изображают внутри состояния, ему пред- шествует слово exit (выход) и двоеточие.
    Поведение объекта во время деятельности, при входных и вы- ходных действиях может включать отправку события другому объек- ту. В этом случае описанию деятельности, входного действия или выходного действия предшествует знак « ^ ».
    Соответствующая строка на диаграмме выглядит как
    Do: ^Цель.Событие (Аргументы)
    Здесь Цель – это объект, получающий событие, Событие – это посылаемое сообщение, а Аргументы являются параметрами по- сылаемого сообщения.
    Деятельность может также выполняться в результате полу- чения объектом некоторого события. При получении некоторого события выполняется определенная деятельность.
    Переходом (Transition) называется перемещение из одного со- стояния в другое. Совокупность переходов диаграммы показывает, как объект может перемещаться между своими состояниями. На диаграмме все переходы изображают в виде стрелки, начинающейся на первоначальном состоянии и заканчивающейся последующим.
    Переходы могут быть рефлексивными. Объект может перейти в то же состояние, в котором он в настоящий момент находится. Реф-

    Инструментальные средства ИС. Лабораторный практикум.
    Составитель: Ст. преп. каф. ИТМиУ - Е.А. Миронченко лексивные переходы изображают в виде стрелки, начинающейся и завершающейся на одном и том же состоянии.
    У перехода существует несколько спецификаций. Они включают события, аргументы, ограждающие условия, действия и посылаемые события.
    События
    Событие (event) – это то, что вызывает переход из одного со- стояния в другое. Событие размещают на диаграмме вдоль линии пе- рехода.
    На диаграмме для отображения события можно использовать как имя операции, так и обычную фразу.
    Большинство переходов должны иметь события, так как имен- но они, прежде всего, заставляют переход осуществиться. Тем не ме- нее, бывают и автоматические переходы, не имеющие событий. При этом объект сам перемещается из одного состояния в другое со скоро- стью, позволяющей осуществиться входным действиям, деятельности и выходным действиям.
    Ограждающие условия
    Ограждающие условия (guard conditions) определяют, когда переход может, а когда не может осуществиться. В противном случае переход не осуществится.
    Ограждающие условия изображают на диаграмме вдоль линии перехода после имени события, заключая их в квадратные скобки.
    Ограждающие условия задавать необязательно. Однако ес- ли существует несколько автоматических переходов из состояния, необходимо определить для них взаимно исключающие ограж- дающие условия. Это поможет читателю диаграммы понять, какой путь перехода будет автоматически выбран.
    1   2   3   4   5   6   7   8


    написать администратору сайта