Учебно-методический комплекс

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ  

А. М. Гудов, С. Ю. Завозкин, С. Н. Трофимов


[Титульная] [Программа] [Учебное пособие] [Лабораторный практикум] [Дополнительные материалы]


[Глава 1] [Глава 2] [Глава 3] [Глава 4] [Глава 5] [Глава 6] [Глава 7] [Глоссарий] [Метод. рекомендации]

 

Глава 2. Разработка требований к ПО

Анализ осуществимости

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

Различают четыре основных этапа процесса разработки требований:

-       анализ технической осуществимости создания системы,

-       формирование и анализ требований,

-       специфицирование требований и создание соответствующей документации,

-       аттестация этих требований.

Рис. 13 – Процесс формирования требований

Анализ осуществимости должен осветить следующие вопросы:

  1. Отвечает ли система общим и бизнес-целям организации-заказчика и организации-разработчика?

  2. Можно ли реализовать систему, используя существующие на данный момент техно¬логии и не выходя за пределы заданной стоимости?

  3. Можно ли объдинить систему с другими системами, которые уже эксплуатируются?

Выполнение анализа осуществимости включает сбор и анализ информации о будущей системе, написание соответствующего отчета. Например, эту информацию можно получить, ответив на следующие вопросы:

  1. Что произойдет с организацией, если система не будет введена в эксплуатацию?

  2. Какие текущие проблемы существуют в организации и как новая система поможет их решить?

  3. Каким образом система будет способствовать целям бизнеса?

  4. Требует ли разработка системы технологии, которая до этого не использовалась в организации?

После обработки собранной информации готовится отчет по анализу осуществимости создания системы.

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

Процесс формирования и анализа требований достаточно сложен по ряду причин:

  • На требования к системе могут влиять политические факторы.

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

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

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

  • Лица, участвующие в формировании требований, часто не знают конкретно, чего они хотят от компьютерной системы.

Рис. 14 – Процесс формирования и анализа требований

Процесс формирования и анализа требований проходит через ряд этапов:

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

  • Сбор требований. Это процесс взаимодействия с лицами, формирующими требования. Во время этого процесса продолжается анализ предметной области.

  • Классификация требований. На этом этапе бесформенный набор требований преобразуется в логически связанные группы требовании.

  • Разрешение противоречий. Без сомнения, требования многочисленных лиц, занятых в процессе формирования требований, будут противоречивыми. На этом этапе определяются и разрешаются противоречия такого рода.

  • Назначение приоритетов. В любом наборе требований одни из них будут более важны, чем другие. На этом этапе совместно с лицами, формирующими требования, определяются наиболее важные требования.

  • Проверка требований. На этом этапе определяется их полнота, последовательность и непротиворечивость.

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

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

Не существует универсального подхода к формированию и анализу требований. Обычно для разработки требований одновременно используется несколько подходов.

Метод опорных точек зрения

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

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

Различные методы предлагают разные трактовки выражения "точка зрения". Точки зрения можно трактовать следующим образом:

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

  • Как получатели системных сервисов. В этом случае точки зрения являются внешними (относительно системы) получателями системных сервисов. Точки зрения помогают определить данные, необходимые для выполнения системных сервисов или их управления.

  • Как получатели системных сервисов. В этом случае точки зрения являются внешними (относительно системы) получателями системных сервисов. Точки зрения помогают определить данные, необходимые для выполнения системных сервисов или их управления.

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

Этот тип точек зрения имеет ряд преимуществ:

  • Точки зрения, внешние к системе, — естественный способ структурирования про­цесса формирования требований.

  • Сравнительно просто решить, какие точки зрения следует оставить в качестве опорных: они должны отображать какой-либо способ взаимодействия с системой.

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

 

 

Рис. 15 ‑ Диаграмма идентификации точек зрения

 

 Таблица 1 ‑ Сервисы, соотнесенные с точками зрения

ВЛАДЕЛЕЦ СЧЕТА      

ИНОСТРАННЫЙ КЛИЕНТ     

КАССИР БАНКА

 

Список сервисов

Список сервисов

Список сервисов

 

Выдача денег

Запрос баланса Выдача чеков Посылка сообщения

Список транзакций

Порядок операций

Перевод денег

Выдача денег

Запрос баланса

Выполнение

диагностики Зачисление денег

Обработка счетов

Посылка сообщения

 

 

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

Рис. 16 – Диаграмма пользователей, соотнесенная с возможными сервисами

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

Сценарий начинается с общего описания, затем постепенно детализируется для создания полного описания взаимодействия пользователя с системой.

В большинстве случаев сценарий включает следующее:

-       Описание состояния системы после завершения сценария.

-       Информацию относительно других действий, которые можно осуществлять во время выполнения сценария.

-       Описание исключительных ситуаций и способов их обработки.

-       Описание нормального протекания событий.

-       Описание состояния системы в начале сценария.

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

Рис. 17 – Диаграмма сценариев

Условные обозначения:

1.     Данные, поступающие в систему или исходящие из нее, представлены в эллипсах.

2.     Управляющая информация показана стрелками в верхней части прямоугольников.

3.     Внутрисистемные данные показаны справа от прямоугольников.

4.     Исключительные ситуации показаны в нижней части прямоугольников.

5.     Имя следующего события, ожидаемого после завершения сценария, приводится в затененном прямоугольнике.

Варианты использования (use-case) — это методика формирования требований, основанная на сценариях. Они стали основой нотаций в языке моделирования UML при описании объектных моделей систем.

Рис. 18 – Диаграмма вариантов использования

 

Рис. 19 – Диаграмма последовательности

 

Этнографический подход

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

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

Рис. 20 – Процесс разработки требований согласно этнографическому подходу

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

1.     Проверка правильности требований.

2.     Проверка на непротиворечивость.

3.     Проверка на полноту.

4.     Проверка на выполнимость.

Существует ряд методов аттестации требований:

1.     Обзор требований.

2.     Прототипирование.

3.     Генерация тестовых сценариев.

4.     Автоматизированный анализ непротиворечивости.

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

С точки зрения разработки требования можно разделить на два класса:

1.     Постоянные требования.

2.     Изменяемые требования.

Планирование управления требованиями

1.     Идентификация требований.

2.     Управление процессом внесения изменений.

3.     Стратегия оперативного контроля.

-       Информация об источнике требования

-       Информация о требованиях

-       Информация о структуре системы

4.     Поддержка CASE-средств.

Процесс управления изменениями состоит из трех основных этапов:

1.     Анализ проблем изменения спецификации.

2.     Анализ изменений и расчет их стоимости.

3.     Реализация изменений.

 

Рис. 21 – Процесс управления требованиями

 

Вопросы для обсуждения

  1. Предложите, кто бы мог участвовать в формировании требований для университетской системы регистрации студентов.

  2. Разрабатывается система ПО для автоматизации библиотечного каталога. Эта система будет содержать информацию относительно всех книг в библиотеке и будет полезна библиотечному персоналу, абонентам и читателям. Система должна иметь средства просмотра каталога, средства создания запросов и средства, позволяющие пользователям резервировать книги, находящиеся в данный момент на руках. Определите основные опорные точки зрения, которые необходимо учесть в спецификации системы.

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

Формальные спецификации

Так называемые формальные методы разработки программных систем широко не используются. Многие компании, разрабатывающие ПО, не считают экономически выгодным применение этих методов в процессе разработки.

Термин "формальные методы" подразумевает ряд операций, в состав которых входят создание формальной спецификации системы, анализ и доказательство спецификации, реализация системы на основе преобразования формальной спецификации в программы и верификация программ. Все эти действия зависят от формальной спецификации программного обеспечения. Формальная спецификация — это системная спецификация, записанная на языке, словарь, синтаксис и семантика которого определены формально. Необходимость формального определения языка предполагает, что этот язык основывается на математических концепциях. Здесь используется область математики, которая называется дискретной математикой и основывается на алгебре, теории множеств и алгебре логики.

В инженерии ПО определены три уровня спецификации программного обеспечения. Это пользовательские и системные требования и спецификация структуры программной системы. Пользовательские требования наиболее обобщенные, спецификация структуры наиболее детальна. Формальные математические спецификации находятся где-то между системными требованиями и спецификацией структуры. Они не содержат деталей реализации сис­темы, но должны представлять ее полную математическую модель.

Разработка спецификация и проектирование могут выпол­няться параллельно, когда информация от этапов разработки спецификации передается к этапам проектирования и наоборот.

 

Рис. 22 – Процесс разработки формальной спецификации

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

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

  1. Алгебраический подход, при котором система описывается в терминах операций и их отношений.

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

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

 Таблица  2 ‑ Языки разработки формальных спецификаций

Тип языка

Последовательные системы

Параллельные системы

Алгебраический

Larch, OBJ

Lotos

Основанный на моделях

Z, VDM, В

CSP, сети Петри

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

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

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

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

Структура спецификации объекта состоит из четырех компонентов:

  • Введение, где объявляется класс (sort) объектов. Класс — это общее название для множества объектов. Он обычно реализуется как тип данных. Введение может так­же включать объявление импорта (imports), где указываются имена спецификаций, определяющие другие классы. Импортирование спецификаций делает эти классы доступными для использования.

  • Описательная часть, в которой неформально описываются операции, ассоцииро­ванные с классом. Это делает формальную спецификацию более простой для пони­мания. Формальная спецификация дополняет это описание, обеспечивая одно­значный синтаксис и семантику операций.

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

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

 

Рис. 23 ‑ Структура алгебраической спецификации

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

  1. Структурирование спецификации. Представление неформальной спецификации интерфейса в виде множества абстрактных типов данных или объектных классов. Также неформально определяются операции, ассоциированные с каждым классом.
  2. Именование спецификаций. Задаются имена для каждой спецификации абстрактного типа, определяются параметры спецификаций (если они необходимы) и имена определяемых классов.
  3. Определение операций. На основании списка выполняемых интерфейсом функций для каждой спецификации определяется связанный с ней набор операций. Необходимо предусмотреть операции по созданию экземпляров классов, по изменению значений экземпляров классов и по проверке этих значений. Вероятно, придется добавить новые функции к первоначально определенному списку функций интерфейса.
  4. Неформальная спецификация операций. Написание неформальной спецификации для каждой операции, где должно быть указано, как операции воздействуют на определяемый класс.
  5. Определение синтаксиса операций. Определение синтаксиса и параметров для каждой операции. Это часть сигнатуры формальной спецификации.
  6. Определение аксиом. Определение семантики операций путем описания условий, которые должны выполняться для различных комбинаций операций.

Операции над абстрактным типом данных обычно относятся к одному из двух классов.

  1. Операции конструирования, которые создают или изменяют объекты класса. Обычно их называют Create (Создать), Update (Изменить), Add (Добавить) или Cons (Конструирование).

  2. Операции проверки, которые возвращают атрибуты класса. Обычно им дают имена, соответствующие именам атрибута, или имена, подобные Eval (Значение), Get (Получить) и т.п.

 Хорошим эмпирическим правилом для написания алгебраической спецификации является создание аксиом для каждой операции конструирования с применением всех операций проверки. Это означает, что если есть m операций конструирования и n операций проверки, то должно быть определено m x n аксиом.

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

В спецификации списка операциями конструирования являются Create, Cons и Tail, которые создают списки. Операциями проверки являются Head и Length, которые используются для получения значений атрибутов списка. Операция Tail не является примитивной конструкцией, поэтому для нее можно не определять аксиомы с использованием операций Head и Length, но в таком случае Tail необходимо определить посредством при­митивных конструкций.

При написании алгебраических спецификаций часто используется рекурсия. Результат операции Tail — список, сформированный из входного списка путем удаления верхнего элемента. Это определение подсказывает, как использовать рекурсию для построения данной операции. Операция определяется на пустых списках, затем рекурсивно переходит на непустые списки и завершается, когда результатом снова будет пустой список.

Иногда проще понять рекурсивные преобразования, используя короткий пример. Предположим, что есть список [5, 7], где элемент 5 — начало (вершина) списка, а элемент 7— конец списка. Операция Cons([5, 7], 9) должна возвратить список [5, 7, 9], а операция Tail, примененная к этому списку, должна возвратить список [7, 9]. Приведем последова­тельность рекурсивных преобразований, приводящую к этому результату.

 

Tail ([5,7,9]) =

 

= Tail (Cons ([5, 7], 9)) =

 

= Cons (Tail ([5, 7]), 9) =

 

= Cons (Tail (Cons ([5], 7)), 9) =

 

= Cons (Cons (Tail ([5]), 7), 9) =

 

= Cons (Cons (Tail (Cons ([], 5)), 7), 9) =

 

= Cons (Cons ([Create], 7), 9) =

 

= Cons ([7], 9) =

 

= [7, 9]

 

Здесь систематически использовались аксиомы для Tail, что привело к ожидаемому результату. Аксиому для операции Head можно проверить подобным способом.

 Простые алгебраические методы подходят для описания интерфейсов, когда операции, ассоциированные с объектом, не зависят от состояния объекта. Тогда результаты любой операции не зависят от результатов предыдущих операций. Если это условие не выполняется, алгебраические методы могут стать громоздкими. Более того, я думаю, что алгебраические описания поведения систем часто ис­кусственны и трудны для понимания.

Альтернативным подходом к созданию формальных спецификаций, который широко используется в программных проектах, является спецификация, основанная на моделях системы. Такие спецификации используют модели состояний системы. Системные операции определяются посредством изменений состояний системной модели. Таким образом определяется поведение системы.

 Вопросы для обсуждения

  1. Перед вами поставлена задача "продажи" методов формальной спецификации организации, разрабатывающей программное обеспечение. Как вы будете объяснять преимущества формальной спецификации скептически настроенным разработчикам ПО?

  2. Объясните, почему необходимо определять интерфейсы подсистем как можно точнее и почему алгебраическая спецификация наиболее подходит для специфицирования интерфейсов подсистем.

  3. Абстрактный тип данных, представляющий стек, имеет следующие операции:

a.     New (Создать) — создает пустой стек;

b.     Push (Добавить) — добавляет элемент в вершину стека;

c.      Тор (Вершина) — возвращает элемент на вершине стека;

d.     Retract (Удалить) — удаляет элемент из вершины стека и возвращает модифицированный стек;

e.      Empty (Пустой) — возвращает значение истины, если стек пустой.

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

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

 

Модели систем

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

Модели могут представить систему в различных аспектах:

  • Внешнее представление, когда моделируется окружение или рабочая среда системы.

  • Описание поведения системы, когда моделируется ее поведение.

  • Описание структуры системы,  когда моделируется системная архитектура или структуры данных, обрабатываемых системой.

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

Типы системных моделей, которые могут создаваться в процессе анализа систем:

  • Модель обработки данных. Диаграммы потоков данных показывают последователь­ность обработки данных в системе.

  • Композиционная модель. Диаграммы "сущность-связь" показывают, как системные сущности составляются из других сущностей.

  • Архитектурная модель. Эти модели показывают основные подсистемы, из которых строится система.

  • Классификационная модель. Диаграммы  наследования  классов  показывают,   какие объекты имеют общие характеристики.

  • Модель "стимул-ответ". Диаграммы изменения состояний показывают, как система реагирует на внутренние и внешние события.

 

Модели системного окружения

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

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

Рис. 24 – Пример модели окружения 

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

Рис. 25 ‑ Модель процесса приобретения оборудования

 

 Поведенческие модели

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

Модели потока данных — это интуитивно понятный способ показа последовательности обработки данных внутри системы. Нотации, используемые в этих моделях, описывают обработку данных с помощью системных функций, а также хранение и перемещения данных между системными функциями.

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

Рис. 26 – Модель потоков данных

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

Рис. 27 ‑ Диаграмма потоков данных комплекса CASE-средств

 

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

Модели конечных автоматов являются неотъемлемой частью методов проектирования систем реального времени. Такие модели определяются диаграммами состояний, которые стали основой системы нотаций в языке моделирования UML. 

Рис. 28 – Модель конечного автомата

Наиболее широко используемой методологией моделирования данных является моделирование типа "сущность-связь". Для описания структуры обрабатываемой информации модели данных часто используются совместно с моделями потоков данных.

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

Подобно всем графическим моделям, модели "сущность-связь" недостаточно детализированы, поэтому они обычно дополняются более подробным описанием объектов, связей и атрибутов, включенных в модель. Эти описания собираются в словари данных или репозитории.

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

Класс объектов - это абстракция множества объектов, которые определяются общими атрибутами и сервисами (операциями).

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

 

Рис. 29 – Модель классов

Важным этапом объектно-ориентированного моделирования является определение классов объектов, которые затем систематизируются. Это подразумевает создание схемы классификации, которая показывает, как классы объектов связаны друг с другом посредством общих атрибутов и сервисов.

Схема классификации организована в виде иерархии наследования, на вершине которой представлены наиболее общие классы объектов. Более специализированные объекты наследуют их атрибуты и сервисы. Эти объекты могут иметь собственные атрибуты и сервисы.

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

Рис.  30 ‑ Модели наследования

Объекты могут создаваться из нескольких объектов. Такой объект агрегируется из совокупности других объектов. Классы, представляющие такие объекты, можно смоделировать, используя модель агрегирования объектов.

В UML для показа агрегирования объектов используется связь с окончанием ромбовидной формы.

Рис. 31 ‑ Агрегирование объектов

 

Модели поведения объектов показывают операции, выполняемые объектами.

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

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

Рис. 32 ‑ Моделирование поведения объектов

 

CASE-средства проектирования

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

Рис. 33 – Структура CASE-системы

Средства, которые входят в пакет инструментальных средств:

  • Редакторы диаграмм предназначены для создания диаграмм потоков данных, иерархий объектов, диаграмм "сущность-связь" и т.д.

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

  • Центральный репозиторий позволяет проектировщику найти нужный проект и соответствующую проектную информацию.

  • Словарь данных хранит информацию об объектах, которые используются в структуре системы.

  • Средства генерирования отчетов на основе информации из центрального репозитория автоматически генерируют системную документацию.

  • Средства создания форм определяют форматы документов и экранных форм.

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

  • Генераторы программного кода автоматически генерируют программы на основе проектов, хранящихся в центральном репозитории.

  

Задания для контроля

 

 [Глава 1] [Глава 2] [Глава 3] [Глава 4] [Глава 5] [Глава 6] [Глава 7] [Глоссарий] [Метод. рекомендации]


[Титульная] [Программа] [Учебное пособие] [Лабораторный практикум] [Дополнительные материалы]