Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы структурного анализа и проектирования / Методы структурного анализа и проектирования.doc
Скачиваний:
38
Добавлен:
09.02.2016
Размер:
6.04 Mб
Скачать

Формирование структурного представления системы

Задачи:

В рамках этого занятия вы научитесь:

  • Идентифицировать классы

  • Идентифицировать отношения между классами

  • Создавать диаграммы классов

Начало Работы

  • Что такое объектно-ориентированный подход?

  • Особенности объектно-ориентированного подхода

  • Объектно-ориентированное моделирование

  • Преимущества объектно-ориентированного подхода

  • Формальное определение структурного представления систем

Что такое объектно-ориентированный подход?

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

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

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

«Мотоцикл Хонда», принадлежащий Джозефу Пикардо, можно считать представителем класса «Транспортное средство».

Особенности объектно-ориентированного подхода

Абстракция (обобщение)

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

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

Наследование

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

К примеру, класс «Автоматическая стиральная машина» является подклассом для класса «Стиральная машина» и должен располагать некоторыми атрибутами и видами поведения, которые характерны только для данного разряда стиральных машин. Остальные атрибуты и виды поведения могут быть унаследованы от класса «Стиральная машина».

Инкапсуляция

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

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

Полиморфизм

Полиморфизм – способность объекта изменять поведение в зависимости от обстоятельств.

К примеру, стиральная машина Джозефа Пикардо – является объектом класса «Стиральные машины». Ее поведение зависит от установленного режима работы. Если установлен режим «Стирка», то машина выполняет операции по стирке белья, а если установлен режим «Отжим» выполняемые действия будут совсем другими.

Объектно-ориентированное моделирование

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

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

Преимущества объектно-ориентированного подхода

Почему мы выбираем объектно-ориентированный подход?

Важнейшие причины таковы:

■ Реалистичное моделирование

■ Возможность многократного использования

■ Восприимчивость к изменениям

Реалистичное моделирование

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

Возможность многократного использования

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

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

Восприимчивость к изменениям

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

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

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

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

На диаграммах объектов отображаются различные объекты (экземпляры классов) и связи между ними. Связи обозначаются соединительными линиями между объектами.

Идентификация классов

Постановка задачи

План решения

Постановка задачи

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

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

Идентифицируйте различные классы, их поведение и атрибуты.

План решения

  1. Идентифицировать классы.

  2. Идентификация видов поведения

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

Задача 1: Идентифицируйте классы

Как идентифицировать классы

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

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

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

В процессе размещения объявлений о вакансиях внутри компании, вариант использования под названием «Распространение информации» должен отображаться с помощью таких классов, как менеджер по распространению информации (DistributionManager), вакантная должность (PositionVacant), руководитель отдела по управлению кадрами в том регионе, где появилась вакансия (RegionalHRHead(V)), руководители отделов по управлению кадрами в других регионах (RegionalHRHead(О)) и сотрудник (Employee).

Замечание

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

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

Задача 2: Идентифицируйте виды поведения.

Как идентифицировать виды поведения?

Теперь, когда классы идентифицированы, нужно идентифицировать виды поведения для каждого класса, то есть те действия, которые производит каждый класс.

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

Задача 3: Идентифицируйте атрибуты.

Как идентифицировать атрибуты

Завершив идентификацию классов и их поведений, мы приступаем к идентификации атрибутов, которые являются характеристиками класса.

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

Диаграммы классов

■ Постановка задачи

■ План решения

■ Разработка решения

■ Убедитесь в правильности решения

Постановка задачи

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

Завершив идентификацию классов, их атрибутов и видов поведения, нарисуйте диаграмму классов.

План решения

1.Идентификация отношений между классами.

Задача: Идентифицируйте отношения между классами.

Отношения между классами

Давайте рассмотрим отношения между классами DistributionManager,PositionVacant,RegionalHRHead(V),RegionalHRHead(O) иEmployee, на произвольно выбранном отрезке времени:

В одном регионе могут открыться больше одной вакансии (отношение «один или более»).

Один руководитель регионального отдела по управлению кадрами может уведомить одного менеджера по распространению информации (DistributionManager) о наличии вакансии (отношение «один к одному»).

Менеджер по распространению информации (DistributionManager) может проинформировать руководителей отделов по управлению кадрами во всех остальных регионах об открытых вакансиях (отношение «один или более»).

Менеджер по распространению информации (DistributionManager) может оповестить всех сотрудников того региона, где появилась вакансия (отношение«один или более»).

Разработка решения

  1. Создание диаграммы классов.

Задача: Нарисуйте диаграмму классов.

Соглашения, используемые при создании диаграммы классов

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

Представление

Разнообразие

1

Обозначает ровно единицу

0..*

Обозначает ноль или более

1..*

Обозначает единицу и более

0..1

Обозначает ноль или единицу

1..5

Обозначает определенный диапазон

На диаграмме классов каждый класс представлен в виде прямоугольника, поделенного на секции.

<Class Name>

<Class Attributes>

<Class Behaviors>

Убедитесь в правильности решения

1. проверки диаграммы классов.

Задача: Проверьте диаграмму классов.

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

Итоги

Достигнутые цели:

В рамках этого занятия вы научились;

  • Идентифицировать классы.

  • Создавать диаграммы классов.

Идентификация классов

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

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

И другие аспекты работы программных систем.

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

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

Определение диаграмм классов

На диаграмме классов каждый класс представлен в виде прямоугольника, поделенного на секции.

Практическое занятие 3

Формирование поведенческого представления системы

Задачи:

В рамках этого занятия вы научитесь:

  • Чертить диаграммы сотрудничества

  • Анализировать диаграммы состояния

Начало работы

  • Динамические и статические аспекты системы

  • Типы данных

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

Динамические и статические аспекты системы

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

Для примера рассмотрим процесс сохранения файлов при работе в MSWord. Статические свойства системы характеризует метод, содержащий подробное описание тех шагов, которые должны быть выполнены внутри программы для сохранения файла. Процесс сохранения файла во время работы, вызываемые нажатием клавишCtrl+Sили через пункт меню Файла => Сохранить, осуществляется путем вызова встроенного метода. Выполнение задачи путем взаимодействия с пользователем и является динамическим свойством системы.

Определение поведенческого представления системы

Поведенческое представление отражает динамические свойства модели системы.

Типы диаграмм

Динамические свойства поведения системы могут быть представлены в виде следующих программ:

Диаграммы сотрудничества

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

Диаграммы последовательностей

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

Диаграммы состояний

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

Диаграммы деятельности

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

Диаграммы сотрудничества

  • Постановка задачи

  • Разработка решения

  • План решения

  • Убедитесь в правильности решения

Постановка задачи

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

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

Класс

Виды поведения

Атрибуты

Distribution Manager

  • informRegions()

  • notifyEmployees()

Vacancy

  • regionName

  • noOfVacancy

  • skillsRequired

Regional HR Head(V)

- enterVacancyDetails()

- regionName

Regional HR Head(O)

- regionName

Employee

  • empCode

  • empName

  • qualification

  • dateOfJoining

  • yearsOfExperience

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

План решения

  1. Идентифицировать роли ассоциаций.

  1. Идентифицировать потоки сообщений

Задача 1: Идентифицируйте роли ассоциаций.

Что такое роли ассоциаций?

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

Задача

Исходные данные

Результат

Идентифицировать роли ассоциаций

Постановка задачи.

Ввод данных о вакансии

Регистрация данных о вакансии

Распространение данных о вакансии

Задача 2: Идентифицируйте потоки сообщений.

Что такое потоки сообщений?

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

Задача

Исходные данные

Результат

Идентифицировать потоки сообщений

Постановка задачи.

Сведения о вакансии поступают от руководителя регионального отдела по управлению кадрами (regionalHRHead(V))к менеджеру по распределению информации (DistributionManager).

Сведения о вакансии поступают от менеджера по распространению информации (DistributionManager) к сотруднику (Employee).

Сведения о вакансии поступают от менеджера по распространению информации (DistributionManager) к руководителю регионального отдела по управлению кадрами

(Regional HR Head(O))

Разработка решения

  1. Создания диаграммы сотрудничества.

Задача: Создайте диаграмму сотрудничества.

Назначение диаграммы сотрудничества

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

Соглашения, используемые при созданиидиаграммы сотрудничества

Роли ассоциаций изображаются следующим образом:

<Роль ассоциаций>

потоки сообщений изображаются следующим образом:

Убедитесь в правильности решения

  1. Проверка диаграммы сотрудничества.

Задача: проверьте диаграмму сотрудничества.

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

Итоги

Достигнутые цели:

В рамках этого занятия вы научились;

  • Определять потоки сообщений.

  • Чертить диаграммы сотрудничества.

  • Определять состояния.

  • Определять переходы.

  • Анализировать диаграммы состояний.

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

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

Создание диаграмм сотрудничества

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

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

Определение состояний

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

Определение переходов

Переходы отражают связь между различными состояниями объекта.

Диаграммы состояний

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

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

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

Практическое занятие 4

Формирование представления системы с точки зрения реализации

Задачи:

В рамках этого урока вы научитесь:

  • Идентифицировать программные компоненты системы

  • Чертить диаграммы компонентов

Начало работы

Формальное определение представления системы с точки зрения реализации

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

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