35847

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ РАСШИРЕНИЯ WEB-СЕРВЕРОВ

Шпаргалка

Информатика, кибернетика и программирование

Диаграммы Use Cse =диаграммы прецедентов диаграммы вариантов использования Диаграмма Use Cse определяет поведение системы с точки зрения пользователя. Диаграмма Use Cse рассматривается как главное средство для первичного моделирования динамики системы используется для выяснения требований к разрабатываемой системе фиксации этих требований в форме которая позволит проводить дальнейшую разработку. Вершинами в диаграмме Use Cse являются актеры и элементы Use Cse. Элементы Use Cse представляют действия выполняемые системой в интересах...

Русский

2013-09-20

236 KB

13 чел.

  1.  СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ РАСШИРЕНИЯ WEB-СЕРВЕРОВ

Технология  CGI

CGI (Common Gateway Interface -  Интерфейс общего шлюза) является стандартом интерфейса (связи) внешней прикладной программы с информационным  сервером  типа  HTTP,  Web сервер. С помощью CGI можно создавать CGI-программы,  называемые шлюзами, которые смогут выдать на экран пользователя динамическую информацию.

Достоинства

1) простота использования –> широкое распространение;

2) универсальность: расширения CGI мб написаны на разных языках (C/C++,  Fortran,  Perl,  TCL,  Unix  Schell,  Visual Basic, Apple Script) и поддерживаются всеми WEB-серверами (любой архитектуры и на любых платформах).

3) CGI – основной вид серверных расширений WEB-серверов, работающих под управлением Unix-подобных ОС.

Недостатки

1) снижается скорость взаимодействия CGI-приложения с сервером, так как CGI-приложение выполняется в собств. адресном пространстве;

2) CGI-приложение – консольное приложение, кот. получает инфу через переменное окружение;

3) при поступлении каждого запроса от клиента тратятся ресурсы на загрузку CGI-приложения.

Технология SSI

SSI (Server Side Includes - Включение на стороне сервера)  -  это  директивы, вставляемые в HTML-код и служащие для передачи указаний серверу. SSI позволяют "вставлять" фрагменты одних документов в другие. Сервер интерпретирует SSI-директивы и  выполняет  соответствующие  действия. Использование SSI-вставок  позволяет  динамически  формировать  странички  в зависимости от различных параметров (например, типа браузера). Для того чтобы сервер знал, что страничка не обычная, а содержит SSI-директивы, используется специальное расширение: shtml или shtm.  Для того чтобы указать серверу, какой блок нужно вставить и в  каком  месте странички, используется специальная форма записи в виде комментария.

Достоинства

1) если в несколько документов вставляется один и тот же фрагмент,  к  тому же  часто изменяемый, использовать SSI-вставки много удобнее.

2) с точки зрения дизайнера элементы сложной верстки скрыты за счет использования SSI, и поддержка содержимого страничек  становится  гораздо более легким и приятным делом.

3) возможность мгновенной замены  дизайна  сайта,  не  требующая  переделывания страничек. Для смены дизайна достаточно переписать SSI-вставки,  формирующие внешний вид сайта.

SSI не является альтернативой  CGI,  это  дополнение  к CGI, предоставляющее web-программисту множество удобств.

ISAPI

Подобно CGI, спецификация ISAPI  (Internet  Server  Application  Programming Interface)  определяет   правила   взаимодействия   между   Web-сервером   и дополнительными  программами.  Это альтернатива CGI. Основное отличие ISAPI-программы от CGI-сценария состоит в том,  что  ISAPI-программа представляет собой не исполняемый файл, а динамическую  библиотеку (DLL). Благодаря этому появилась  возможность  запускать  программу  не  как отдельный процесс, а как поток, принадлежащий  Web-серверу.  

Достоинства

1) для  выполнения потока требуется значительно меньше ресурсов, чем  для  работы  независимого процесса;

2) поток использует адресное пространство породившего его процесса  и работает намного быстрее, чем отдельный процесс;

3) в отличие от CGI-сценария, ISAPI-программа, окончив свою работу, как  правило, остается резидентной в  памяти  и  используется  для  обработки  последующих запросов –> меньше времени на обслуживание запроса.

Недостатки

1) если  за  универсальность  CGI-сценариев  пришлось   платить   недостаточной производительностью, то  в  качестве  платы  за  высокую  производительность создатели  ISAPI-программ   жертвуют   универсальностью.   Арсенал   языков, имеющихся в распоряжении разработчиков ISAPI-программ,  значительно  беднее, чем у их коллег, создающих CGI-сценарии.

2) поскольку  программа данного типа выполняется как поток,  порожденный  сервером,  она  использует адресное пространство сервера –> ошибка  ISAPI-программы  может вывести из строя сервер.

Технология ASP

Active Server Pages (ASP) – это серверная среда для разработки и выполнения динамических интерактивных веб-приложений.  Позволяет создавать динамические страницы за счет включения в HTML-код сценариев в виде тэга. ASP формирует только динамическую часть HTML-документа. При интерпретации сценария выполняется алгоритм, выдающий в качестве результата HTML-строки, кот. ASP-процессор должен скопировать в точку вызова сценария в исходном документе. В одном документе может содержаться обращение к разным ASP-серверам.

Достоинства

1) ASP-сервер интегрирован  в  веб-сервер  и  не  требует  отдельного  процесса;

2) ASP-сервер – это сервер OLE Automation, выполняющийся на стороне сервера;

3) для создания ASP-сервера можно использовать любые программные системы, поддерживающие технологию ActiveX (кот. построена на COM)

Недостатки

1) жесткая привязка к платформе Windows;

2) на других серверах поддержка ASP отсутствует.

Язык программирования Perl

Perl - интерпретируемый язык,  приспособленный  для  обработки  произвольных текстовых  файлов,  извлечения  из  них  необходимой  информации  и  выдачи сообщений. Язык Perl широко используется для  CGI-программирования.  Perl  был  создан  как  инструмент  для  администрирования  и конфигурирования системных ресурсов сети, состоящей из Unix-компьютеров.  

Достоинства

1) эффективная обработка текстовых файлов. Perl не ставит  ограничений  на  объем  обрабатываемых  данных  и  если хватает ресурсов, то весь файл  обрабатывается  как  одна  строка.  Рекурсия может быть произвольной глубины;

2) Perl  позволяет обрабатывать различные типы данных в виде скаляров, создавать объекты и вставлять в программы на С, С++ фрагменты кода;

3) Perl доступен на многих платформах с минимальными изменениями;

4) имеет расширения, кот. обеспечивают  доступ  к  SQL-серверам непосредственно из Perl-программы. –> Perl можно использовать для WWW-доступа  к  базам данных;

5) Perl легко выучить: его синтаксис близок к синтаксису C;  при  ошибке  выдается  подробное сообщение, помогающее быстро локализовать проблему.

Недостаки

1) исполнение Perl-приложения создает новый процесс;

2) трудное понимание из-за больших возможностей языка.

Язык программирования PHP

Preprocessor  of   Home   Pages — препроцессор  домашних  страниц.  Это  язык   создан для внедрения   в   HTML-страницы сценариев,  на основе кот. можно max-но быстро создавать динамически генерируемые Web-страницы. Синтаксис заимствован из С, Perl, Java, и при этом  добавлена  масса возможностей, которых этим языкам недостает.

Достоинства

1) обладает полным набором для WEB-программирования;

2) открыт  исходный  код;

3) кроссплатформенный язык;

4) бесплатен; постоянно совершенствуется; работает  на  UNIX  и  Windows платформах;

5) допускает ООП и работу с большинством СУБД;

6) способен использовать протоколы HTTP, FTP, SNMP, NNTP, РОРЗ, net sockets и другие;

7) РНР-скрипты можно запускать  как интерпретируемые файлы и компилировать исполняемые приложения  (в том числе с поддержкой графического интерфейса GTK).

Недостатки

1) требуются ресурсы на запуск обработчика скрипта и интерпретацию;

2) каждый раз при запросах к СУБД каждый раз создается новое соединение с БД.


10.37
КОНЦЕПЦИИ JAVA И C#

Концепция Java, состоящая из структурного ОО языка программирования и сконструированной специально для него виртуальной машины была представлена в августе 1995 г. Переносимость достигается посредством транслирования исходного кода программы в промежуточный язык, называемый байт-кодом, который затем исполняется виртуальной машиной Java (JVM). Следовательно, Java-программа может быть запущена на любой платформе, где установлена JVM.

За основу языка Java был взят язык С и C++ (синтаксис базируется на C, а объектная модель развилась из C++), полезные идеи были заимствованы из SmallTalk. Хотя Java не совместим с C или C++, их знание упрощает изучение нового языка.

В Java сохранен стиль программирования на C++ и удалены черты, которые:

- делают невозможным контроль безопасности приложений;

- не являются абсолютно необходимыми, чаще мешают программисту;

- являются источником наиболее трудно и поздно распознаваемых ошибок

Особенности языка

1. полная ОО. все типы данных инкапсулированы в соответствующие классы, поэтому в программе нет данных, не являющихся объектами, нет функций, не являющихся методами. Возможность работы с простыми методами сохранена. Хотя для простых типов с целью облегчения кода оставлена возможность непосредственного использования. Простые типы используются для передачи параметра метода по значению, а объектные типы – по ссылке. Язык Java реализует все механизмы ОО программирования.

2. наличие пакетов стандартных библиотек. 

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

- для изолирования пространства идентификаторов;

- для ограничения видимости.

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

Встроенные классы в языке Java, входящие в комплект поставки, хранятся в пакете java. Они размещены в специальном файле, который называют библиотекой классов.

Система Java включает в себя полный готовый набор стандартных библиотек классов, который разбит на следующие пакеты.

 java.lang – базовый набор типов, отраженных в самом языке. Пакет содержит базовые классы Object и Class. Имеются специальные классы для работы со строками и символами. Для поддержки многопотоковости разработан класс Thread. Класс Exception содержит все необходимые средства для корректной работы со всеми объектами и ресурсами в случае возникновения исключительных ситуаций. Пакет java.lang обязательно входит в состав любого приложения.

java.io – содержит средства для работы с потоками и файлами последовательного доступа. Аналог библиотеки стандартного ввода-вывода системы UNIX.

 java.util – содержит классы-контейнеры с множеством полезных функций (Date, Time, Dictionary, HashTable, Stack, …) и другие утилиты.

java.awt – библиотека (Abstract Windowing Toolkit), представляющая новый, не зависящий от конкретной графической оболочки стандарт для разработки приложений, использующих архитектурно-независимый оконный интерфейс. Содержит базовые компоненты интерфейса, такие как события, цвета, фонты, а также основные оконные компоненты: кнопки, линейки прокрутки и т. д.

3. Переносимость и нейтральность относительно архитектуры. Байт-код языка Java един для всех платформ и архитектур. Благодаря наличию виртуальных машин Java-приложения могут разрабатываться и исполняться на самых разных вычислительных платформах. Это решение в дальнейшем было применено и в языке С#. Формат команд JVM прост: обычно команды не имеют операндов и занимают один байт. Таким образом, возможна эффективная эмуляция JVM для большого числа платформ.

4. Интерпретируемость. Исходный код Java-приложений преобразуется компилятором в байт-код, исполняемый виртуальной машиной в режиме интерпретации. Java использует «позднее связывание», начинаемое непосредственно перед исполнением. При создании байт-кода компилятор не определяет адресов и размеров объектов в памяти. Связывание имен и настройку адресов в оперативной памяти осуществляет виртуальная машина.

5. Надежность. Язык строго типизирован, поэтому значительная часть ошибок может быть выявлена на стадии компиляции. Такие возможности для контроля как переполнение стека, отслеживание границ массивов, поиск резервов для оптимизации и другие стали обязательными элементами разработки языка.

6. Работа в сети

Язык имеет развитые средства для создания сетевых приложений, находящиеся в библиотеке java.net, которая содержит классы для поддержки IP-адресов, URL, а также различных протоколов, таких как TCP/IP, UDP, telnet и т. д.

7. Автоматическая сборка «мусора»

В Java отсутствуют деструкторы. Объект существует до тех пор, пока на него есть ссылки, т. е. он прямо или косвенно доступен хотя бы одной переменной. Механизм удаления объектов встроен в виртуальную машину, работает в фоновом режиме, осуществляя поиск потерянных объектов и освобождая занятую ими память. В момент утилизации объекта сборщиком мусора будет вызван асинхронный метод finalize.

8. Динамичность и открытость для обновлений

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

 Недостаток: отсутствие прямой поддержки платформы Windows, являющейся в настоящее время наиболее широко используемой ОС в мире.

Схема процессов разработки и исполнения Java-программ

Язык С# разрабатывался для создания кода .NET Framework, поэтому он использует две важные составляющие этой технологии:

- не зависящую от языка среду исполнения CLR, которая поддерживает программирование с использованием нескольких языков, обеспечивает переносимость кода и безопасность передачи данных;

- библиотеку классов .NET, которая дает программе доступ к среде исполнения,

-Microsoft позиционирует С# как универсальную переносимую платформу аналогичную Java. С# вобрал в себя лучшее от С++ и Java, устранив их недостатки. C# имеет стиль синтаксиса языка C (для управляющих конструкций, блоков кода, описания сигнатуры методов и др.), много общего с Java (отсутствие множественного наследования и шаблонов, наличие сборщика мусора) и с Delphi (ориентированность на создание компонент), и в то же время имеет и свои особенности.

Важной и отличительной от языка С++ особенностью C# является его простота. При создании языка в основу дизайна легли следующие основные принципы:

- легкость написания приложений, доминирующая над мощностью языка и скоростью выполнения;

- простота поддержки приложений, в связи с чем в язык включили поддержку XML-комментариев и контроля версий.

Особенности языка C#

1. C# – ОО язык, как и вся платформа .NET. Более того, это язык, ориентированный на написание компонент. Язык позволяет рассматривать все типы (даже примитивные) как объекты. Указатели больше не нужны, но в отличие от Java обеспечивается возможность их использования. Управление памятью производится автоматически.

2. C# создан для программирования в управляемой среде с присутствующим сборщиком мусора, но позволяет писать и неуправляемый (unmanaged) код. Перед удалением недоступного объекта из памяти автоматически вызывается деструктор. В отличие от C++ деструктор не вызывается при выходе за пределы области видимости, в которой объект был создан. Для утилизации объектов, инкапсулирующих неуправляемые ресурсы, деструктор неявным образом вызывает метод Finalize для базового класса объекта.

3. В язык C# включены и инновационные элементы – делегаты (delegates) и индексаторы (indexers).

4. В С# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов. В С# осталась возможность перегружать операторы, унаследованные от C++. При этом значительная часть возникавших при этом сложностей ликвидирована.

5. В C# представлена концепция пространств имен, аналогичная пакетам в Java. Это позволяет иерархически структурировать систему типов, что делает код намного более понятным и оптимизирует именование. Можно рассматривать пространства имен как директории, а языковые типы как файлы в этих директориях.

6. Предусмотрена полная поддержка использования программных интерфейсов. Однако в отличие от классической модели СОМ применение интерфейсов – это не единственный способ работы с типами, использующий различные двоичные модули. .NET позволяет передавать объекты (как ссылки или как значения) через границы программных модулей.

7. C# позволяет использовать при разработке парадигму атрибутивного программирования, когда в компиляционных модулях вместе с типом может сохраняться метаинформация. Это позволяет присваивать типам характеристики для описания в будущем поведения данной сущности. Данная информация впоследствии может быть получена и использована во время выполнения, причем, не запуская компонент. Работа с атрибутами позволяет использовать COM, COM+ и DLL в C# приложениях, работающих в среде .NET.

8. В C# были предприняты меры для исключения ошибок при обновлении программного обеспечения. Изменение кода, в такой ситуации, может непредсказуемо изменить суть самой программы. Чтобы помочь разработчикам бороться с этой проблемой C# включает в себя поддержку совместимости версий. В частности, в отличие от C++ и Java, если метод класса был изменен, это должно быть специально оговорено. Это позволяет обойти ошибки в коде и обеспечить гибкую совместимость версий.

9. Также новой особенностью является native-поддержка интерфейсов и наследования интерфейсов.

 Недостаток: язык С# генерирует код, предназначенный для выполнения только в среде выполнения .NET. Например, невозможно использовать С# для создания классического СОМ сервера.

Процесс разработки и исполнения .NET приложения

Дополнительно: сравнение Java и C#.

Сходства

  1.  Исходный текст программы компилируется в промежуточный код, не зависящий от языка и платформы; этот код в дальнейшем выполняется в специальной управляемой среде.
  2.  Автоматический сбор мусора (Garbage Collection).
  3.  Программы в Java и C# состоят из классов (class) – основной структурной единицы приложения.
  4.  Механизм области видимости имен. В C# – пространство видимости имен, в Java – использование пакетов (packages).
  5.   Рабочий язык – С.

  1.  Запрет на использование указателей. В C# допускается ограниченное использование указателей в блоках кода, помечаемых как "ненадежные" (unsafe).
  2.  Отсутствие заголовочных файлов. Весь код помещается в пакеты (packages) и сборки (assemblies).
  3.  Объекты создаются с помощью ключевого слова new, выделение памяти производится из "кучи" (heap), находящейся в распоряжении среды выполнения.
  4.  Многопоточность поддерживается путем блокирования объектов
  5.  И в Java, и C# разрешается наследование только от одного класса; вместе с тем, можно подключать к классу более одного интерфейса
  6.  Отсутствие глобальных функций и констант, все элементы должны принадлежать классам.
  7.  Не применяются операторы ->, ::. Во всех случаях используется оператор ".".
  8.  Любая величина должна быть проинициализирована до того, как будет использована.
  9.  Нельзя использовать целые числа (integers) для управления операторами if.
  10.  Блоки try могут иметь заключительное предложение finally.

Отличия

  1.  В Java главная точка входа в приложение есть public static void main (String [] args). Этот синтаксис является неизменным. В C# метод Main ( ) мб переопределен.
  2.  В C# имеется оператор goto (gперехода на метку), в языке Java – нет.
  3.  В C# можно определять структуры и перечисления; в Java эта возможность исключена.
  4.  Имеются различия в реализации оператора switch.


10.39
 Описание статической модели на языке UML

Статические модели обеспечивают представление структуры систем в терминах базовых строительных блоков и отношений между ними. «Статичность» этих моделей состоит в том, что здесь не показывается динамика изменений системы во времени. Эти модели несут в себе структурные описания и описания операций, реализующих заданное поведение системы. Основным средством для представления статических моделей являются диаграммы классов. Вершины диаграмм классов нагружены классами, а дуги (ребра) — отношениями между ними.

Вершина в диаграмме классов — класс. Имя класса указывается всегда, свойства и операции — выборочно. Предусмотрено задание области действия свойства (операции). Если свойство (операция) подчеркивается, его областью действия является класс, в противном случае областью действия является экземпляр.

Свойства

Общий синтаксис представления свойства имеет вид

Видимость Имя [Множественность]: Тип = НачальнЗначение {Характеристики}

Уровни видимости:

public(по умолч)

protected

private 

Любой клиент класса может использовать свойство (операцию), символ +

Любой наследник класса может использовать свойство (операцию), символ #

Свойство (операция) может использоваться только самим классом, символ - 

Характеристики свойств:

changeable

addOnly

frozen 

Нет ограничений на модификацию значения свойства

Для свойств с множественностью, большей единицы; дополнительные значения могут быть добавлены, но после создания значение не может удаляться или изменяться

После инициализации объекта значение свойства не изменяется 

Операции

Общий синтаксис представления операции имеет вид

Видимость Имя (Список Параметров): ВозвращаемыйТип {Характеристики}

Характеристики операций:

leaf

isQuery

sequential

guarded

concurrent 

Конечная операция, операция не может быть полиморфной и не может переопределяться (в цепочке наследования)

Выполнение операции не изменяет состояния объекта

В каждый момент времени в объект поступает только один вызов операций. Как следствие, в каждый момент времени выполняется только одна операция объекта.

Допускается одновременное поступление в объект нескольких вызовов, но в каждый момент времени обрабатывается только один вызов охраняемой операции.

В объект поступает несколько потоков вызовов операций (из параллельных потоков управления). Разрешается параллельное (и множественное) выполнение операции.

Множественность

Иногда бывает необходимо ограничить количество экземпляров класса:

- задать ноль экземпляров (в этом случае класс превращается в утилиту, которая предлагает свои свойства и операции);

- задать один экземпляр (класс-singleton);

- задать конкретное количество экземпляров;

- не ограничивать количество экземпляров (по умолчанию).

Количество экземпляров класса называется его множественностью. Выражение множественности записывается в правом верхнем углу значка класса. Множественность применима не только к классам, но и к свойствам. Множественность свойства задается выражением в квадратных скобках, записанным после его имени.

Отношения в диаграммах классов

Ассоциации отображают структурные отношения между экземплярами классов, то есть соединения между объектами. Каждая ассоциация может иметь метку — имя. Когда класс участвует в ассоциации, он играет в этом отношении определенную роль. Запись мощности на одном конце ассоциации определяет количество объектов, соединяемых с каждым объектом на противоположном конце ассоциации. Роли в ассоциациях могут иметь пометки видимости.

Агрегация показывает отношение по ссылке (в агрегат включены только указатели на части), композиция — отношение физического включения (в агрегат включены сами части). Отношения агрегации и композиции в языке UML считаются разновидностями ассоциации, применяемыми для отображения структурных отношений между «целым» (агрегатом) и его «частями».

Зависимость является отношением использования между клиентом (зависимым элементом) и поставщиком (независимым элементом).

Обобщение — отношение между общим предметом (суперклассом) и специализированной разновидностью этого предмета (подклассом). Подкласс может иметь одного родителя (один суперкласс) или несколько родителей (несколько суперклассов). Во втором случае говорят о множественном наследовании.

Реализация — семантическое отношение между классами, в котором класс-приемник выполняет реализацию операций интерфейса класса-источника.

Деревья наследования

При использовании отношений обобщения строится иерархия классов. Некоторые классы в этой иерархии могут быть абстрактными. Абстрактным называют класс, который не может иметь экземпляров. Имена абстрактных классов записываются курсивом.

Конечный класс, который не может иметь детей, помечается теговой величиной (характеристикой) leaf, записываемой за именем класса. Корневой класс, который не может иметь родителей, помечается теговой величиной (характеристикой) root, записываемой за именем класса.

Примеры диаграмм классов

Диаграмма классов системы управления полетом летательного аппарата.

Здесь представлен класс ПрограммаПолета, который имеет свойство ТраекторияПолета, операцию-модификатор ВыполнятьПрограмму () и операцию-селектор ПрогнозОкончУправления (). Имеется ассоциация между этим классом и классом Контроллер СУ — экземпляры программы задают параметры движения, которые должны обеспечивать экземпляры контроллера.

Класс Контроллер СУ — агрегат, чьи экземпляры включают по одному экземпляру классов Регулятор скорости и Регулятор углов, а также по шесть экземпляров класса Датчик. Экземпляры Регулятора скорости и Регулятора углов включены в агрегат физически (с помощью отношения композиция), а экземпляры Датчика — по ссылке, то есть экземпляр Контроллера СУ включает лишь указатели на объекты-датчики. Регулятор скорости и Регулятор углов — это подклассы абстрактного суперкласса Регулятор, который передает им в наследство абстрактные операции Включить () и Выключить (). В свою очередь, класс Регулятор использует конкретный класс Порт.

Как видим, ассоциация имеет имя (Определяет полет), роли участников ассоциации явно указаны (Сервер, Клиент). Отношения композиции также имеют имена (Включать), причем на эти отношения наложено ограничение — контроллер не может включать Регулятор скорости и Регулятор углов одновременно.

Для класса Контроллер СУ задано ограничение на множественность — допускается не более трех экземпляров этого класса. Класс Регулятор скорости имеет ограничение другого типа — повторное включение его экземпляра разрешается не раньше, чем через 64 мс.


10.40
 Описание ДИНАМической модели на языке UML

Динамические модели обеспечивают представление поведения систем. «Динамизм» этих моделей состоит в том, что в них отражается изменение состояний в процессе работы системы (в зависимости от времени).

Для моделирования поведения системы используют:

Автоматы; Автомат описывает поведение в терминах последовательности состояний, через которые проходит объект в течение своей жизни. Автомат задает поведение системы как цельной, единой сущности; моделирует жизненный цикл единого объекта. Автоматы отображают с помощью: диаграмм схем состояний, диаграмм деятельности.

Взаимодействия. Взаимодействие описывает поведение в терминах обмена сообщениями между объектами. Взаимодействия определяют поведение системы в виде коммуникаций между его частями (объектами), представляя систему как сообщество совместно работающих объектов. Взаимодействия отображают с помощью диаграмм сотрудничества (кооперации), диаграмм последовательности.

Диаграмма схем состояний(ДСС) отображает конечный автомат, выделяя поток управления, следующий от состояния к состоянию. Конечный автомат — поведение, которое определяет последовательность состояний в ходе существования объекта. ДСС показывает:

1) набор состояний системы;

2) события, которые вызывают переход из одного состояния в другое;

3) действия, которые происходят в результате изменения состояния.

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

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

Диаграмма взаимодействия (ДВ) показывает взаимодействие, включающее набор объектов и их отношений, а также пересылаемые между объектами сообщения. Существуют две разновидности ДВ — диаграмма последовательности и диаграмма сотрудничества. Элементами ДВ являются участники взаимодействия — объекты, связи, сообщения.

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

Для формирования ДС выполняются следующие действия:

1) отображаются объекты, которые участвуют во взаимодействии;

2) рисуются связи, соединяющие эти объекты;

3) связи помечаются сообщениями, которые посылают и получают выделенные объекты.

Диаграмма последовательности (ДП) — вторая разновидность ДВ. Отражая сценарий поведения в системе, эта диаграмма обеспечивает более наглядное представление порядка передачи сообщений.

Как показано на рисунке объекты, участвующие во взаимодействии, помещаются на вершине диаграммы, вдоль оси X. Обычно слева размещается объект, инициирующий взаимодействие, а справа — объекты по возрастанию подчиненности. Сообщения, посылаемые и принимаемые объектами, помещаются вдоль оси Y в порядке возрастания времени от вершины к основанию диаграммы.

Линия жизни объекта — это вертикальная пунктирная линия, которая обозначает период существования объекта. Фокус управления — это высокий тонкий прямоугольник, отображающий период времени, в течение которого объект выполняет действие (свою или подчиненную процедуру).

Диаграммы Use Case (=диаграммы прецедентов, диаграммы вариантов использования)

Диаграмма Use Case определяет поведение системы с точки зрения пользователя. Диаграмма Use Case рассматривается как главное средство для первичного моделирования динамики системы, используется для выяснения требований к разрабатываемой системе, фиксации этих требований в форме, которая позволит проводить дальнейшую разработку.

Вершинами в диаграмме Use Case являются актеры и элементы Use Case. Актеры представляют внешний мир, нуждающийся в работе системы. Элементы Use Case представляют действия, выполняемые системой в интересах актеров.

Актер — это роль объекта вне системы, который прямо взаимодействует с ее частью — конкретным элементом (элементом Use Case). Различают актеров и пользователей. Пользователь — это физический объект, который использует систему. Он может играть несколько ролей и поэтому может моделироваться несколькими актерами. Справедливо и обратное — актером могут быть разные пользователи.

Элемент Use Case — это описание последовательности действий (или нескольких последовательностей), которые выполняются системой и производят для отдельного актера видимый результат. Один актер может использовать несколько элементов Use Case, и наоборот, один элемент Use Case может иметь несколько актеров, использующих его.

Отношения в диаграммах Use Case

Между актером и элементом Use Case возможен только один вид отношения — ассоциация, отображающая их взаимодействие. Как и любая другая ассоциация, она может быть помечена именем, ролями, мощностью. Между актерами допустимо отношение обобщения, означающее, что экземпляр потомка может взаимодействовать с такими же разновидностями экземпляров элементов Use Case, что и экземпляр родителя. Между элементами Use Case определены отношение обобщения и две разновидности отношения зависимости — включения и расширения. Отношение обобщения фиксирует, что потомок наследует поведение родителя. Кроме того, потомок может дополнить или переопределить поведение родителя. Элемент Use Case, являющийся потомком, может замещать элемент Use Case, являющийся родителем, в любом месте диаграммы. Отношение включения между элементами Use Case означает, что базовый элемент Use Case явно включает поведение другого элемента Use Case в точке, которая определена в базе. Отношение расширения между элементами Use Case означает, что базовый элемент Use Case неявно включает поведение другого элемента Use Case в точке, которая определяется косвенно расширяющим элементом Use Case.

Пример диаграммы Use Case

В этой диаграмме один базовый элемент Use Case Сеанс банкомата, который взаимодействует с актером Клиент. К базовому элементу Use Case подключены два расширяющих элемента Use Case (Состояние, Снять) и два включаемых элемента Use Case (Идентификация клиента, Проверка счета). В свою очередь, к элементу Use Case Идентификация клиента подключен включаемый элемент Use Case Проверить достоверность, а к элементу Use Case Снять — расширяющий элемент Use Case Захват карты (он же расширяет элемент Use Case Проверить достоверность).

Элемент Use Case Сеанс банкомата имеет две точки расширения (диалог возможен, выдача квитанции), а элементы Use Case Снять и Проверить достоверность — по одной точке расширения (проверка снятия и проверка соответственно). В точки расширения возможна вставка поведения из расширяющего элемента Use Case. Вставка происходит, если выполняется условие расширения:

- для расширяющего элемента Use Case Состояние — это условие запрос состояния;

- для расширяющего элемента Use Case Снять — это условие запрос снятия;

- для расширяющего элемента Use Case Захват карты — это условие список подозрений.

Опишем возможное поведение модели, задаваемое этой диаграммой.

Актер Клиент инициирует действия базового элемента Use Case Сеанс банкомата. На первом шаге запускается включаемый элемент Use Case Идентификация клиента. Этот элемент Use Case получает имя клиента и запускает элемент Use Case Проверить достоверность, в результате чего устанавливается соединение с базой данных клиентов и получаются параметры клиента. Если к этому моменту исполняется условие расширения список подозрений, то «срабатывает» расширяющий элемент Use Case Захват карты, карта арестовывается, и работа системы прекращается. В противном случае происходит возврат к элементу Use Case Идентификация клиента, который получает номер счета клиента и возвращает управление базовому элементу Use Case.

Базовый элемент Use Case переходит ко второму шагу работы — вызывает включаемый элемент Use Case Проверка счета, который устанавливает соединение с базой данных счетов и получает состояние и ограничения счета. Управление опять возвращается к базовому элементу Use Case. Базовый элемент Use Case переходит к первой точке расширения диалог возможен. В этой точке возможно подключение одного из двух расширяющих элементов Use Case.

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

В последний раз управление возвращается к базовому элементу Use Case — завершается сеанс работы банкомата.

Бизнес-модель Use Case задает внешнее представление бизнес-процессов организации (с точки зрения внешней среды — клиентов и партнеров). Она строится с помощью бизнес-актеров и бизнес-элементов Use Case — простого расширения средств, используемых в обычных диаграммах Use Case. Бизнес-актеры определяют внешние сущности и людей, с которыми взаимодействует бизнес. Бизнес-элементы Use Case изображают различные рабочие потоки бизнеса. Последовательности действий в бизнес-элементах Use Case обычно описываются диаграммами деятельности.

PAGE  13


 

А также другие работы, которые могут Вас заинтересовать

75690. Естественные и антропогенные опасности 11.99 KB
  Естественные и антропогенные опасности Опасностью называют различные явления процессы объекты способные в определенных условиях наносить ущерб здоровью человека или иным его ценностям а также представляющие угрозу для жизни человека. Антропогенные опасности – возникают в результате воздействия человека на среду обитания своей деятельностью и продуктами деятельности техническими средствами выбросами различных продуктов и т.Чем выше преобразующая деятельность человека тем выше уровень и число антропогенных опасностей – вредных и...
75691. Научно-технический прогресс и безопасность трудовой деятельности 18.21 KB
  Состояние условий труда при котором исключено воздействие на работающих опасных и вредных производственных факторов называется безопасностью труда. Безопасность труда это состояние трудовой деятельности труда обеспечивающее приемлемый уровень ее риска. Безопасность труда обеспечивается комплексной системой мер защиты человека от опасностей формируемых в рабочей зоне конкретным производственным технологическим процессом техническим объектом. Безопасность жизнедеятельности в условиях производства имеет и другое название охрана труда.
75692. Основные задачи специалиста (инженера) в области безопасности и труда 11.18 KB
  Задачи специалиста в области безопасности жизнедеятельности сводятся к следующему; – контроль и поддержание допустимых условий параметры микроклимата освещение и др. жизнедеятельности человека в техносфере; – идентификация опасностей генерируемых различными источниками в техносферу; – определение допустимых негативных воздействий производств и технических систем на техносферу; – разработка и применение экобиозащитной техники для создания допустимых условий жизнедеятельности человека и его защиты от опасностей; – обучение работающих и...
75693. Основные причины аварий на производстве 14.55 KB
  Основные причины аварий на производстве Основные причины аварий и несчастных случаев: отступление от требований проектной и технологической документации; нарушение регламента ремонтных работ; неудовлетворительное техническое состояние оборудования; неэффективность производственного контроля; неосторожные или несанкционированные действия исполнителей работ; неправильная организация производства работ. Причины производственного травматизма и профзаболеваний Технические причины. Это причины не зависящие от уровня организации...
75694. Правовые, нормативно – технические и организационные основы обеспечения БЖД 12.7 KB
  Закон содержит свод правил охраны окружающей природной среды в новых условиях хозяйственного развития и регулирует природоохранительные отношения в сфере всей природной среды не выделяя ее отдельные объекты охране которых посвящено специальное законодательство. Задачами природоохранительного законодательства являются: охрана природной среды а через нее и здоровья человека; предупреждение вредного воздействия хозяйственной или иной деятельности; оздоровление окружающей природной среды улучшение ее качества. Эти задачи реализуются через три...
75695. Концепция приемлимого (допустимого) риска 94.13 KB
  Концепция приемлимого допустимого риска Традиционная техника безопасности базировалась на категорическом требовании обеспечить полную безопасность не допустить никаких аварии.В современных условиях от тезиса абсолютной безопасности перешли к концепции допустимого приемлемого риска суть которой в стремлении к такой малой безопасности которую приемлет общество в данный период времени.9 показан упрощенный пример определения приемлемого риска. Определение приемлемого риска Суммарный риск имеет минимум при определённом соотношении между...
75696. Система стандартов безопасности труда (ССБТ) 13.63 KB
  Система стандартов безопасности труда ССБТ Система стандартов безопасности труда комплекс взаимосвязанных стандартов содержащих требования нормы и правила организационнотехнического метрологического санитарногигиенического характера направленные на обеспечение безопасных условий труда сохранение жизни и здоровья и работников в процессе трудовой деятельности. Структура системы стандартов безопасности трудаССБТ включает группы приведенные в таблице. Шифр группы Наименование группы 0 Организационнометодические стандарты 1 Стандарты...
75697. Стандарт организации 13.06 KB
  Организации могут самостоятельно устанавливать порядок разработки своих стандартов принять документально оформленное решение путем подготовки и утверждения соответствующего организационнораспорядительного документа о признании и применении разработанных ранее и действующих на текущий момент стандартов предприятия или стандартов общественного объединения в качестве стандартов данной организации. Одновременно может быть решен вопрос о целесообразности постепенного поэтапного или одномоментного переоформления стандартов предприятия...
75698. Основные принципы государственной политики в области безопасности (охраны) труда 13.71 KB
  Основные принципы государственной политики в области безопасности охраны труда. Государственная политика в области охраны труда предусматривает совместные действия органов законодательной и исполнительной власти Российской Федерации и республик в составе Российской Федерации объединений работодателей профессиональных союзов в лице их соответствующих органов и иных уполномоченных работниками представительных органов по улучшению условий и охраны труда предупреждению производственного травматизма и профессиональных...