Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.pdf
Скачиваний:
2
Добавлен:
10.06.2024
Размер:
3.87 Mб
Скачать

private double вычПотреблениеБулочек()

{

double потреблениеБулочек = 0; if (егоПосещения.size() > 1)

{

for (int i = 1; i < егоПосещения.size(); i++)

{

ПосещениеКафе v = (ПосещениеКафе) егоПосещения.get(i);

потреблениеБулочек += v.получитьБулочки();

}

}

return потреблениеБулочек;

}

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

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

Контрольные вопросы

1.Что такое CRC-карта? Как ее применить для тестирования визуальных моделей?

2.Поясните особенности тестирования объектно-ориентированных модулей.

3.В чем состоит суть методики тестирования интеграции объектно-ориентированных систем, основанной на потоках?

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

5.В чем заключаются особенности объектно-ориентированного тестирования правильности?

6.К чему приводит учет инкапсуляции, полиморфизма и наследования при проектировании тестовых вариантов?

7.Поясните содержание тестирования, основанного на ошибках.

8.Поясните содержание тестирования, основанного на сценариях.

9.Чем отличается тестирование поверхностной структуры от тестирования глубинной структуры системы?

10.В чем состоит стохастическое тестирование класса?

11.Охарактеризуйте тестирование разбиений на уровне классов. Как в этом случае получить категории разбиения?

12.Поясните на примере разбиение на категории по состояниям.

13.Приведите пример разбиения на категории по свойствам.

14.Перечислите известные вам методы тестирования взаимодействия классов. Поясните их содержание.

15.Приведите пример стохастического тестирования взаимодействия классов.

16.Приведите пример тестирования взаимодействия классов путем разбиений.

17.Приведите пример тестирования взаимодействия классов на основе состояний. В чем заключается особенность методики «преимущественно в ширину»?

18.Поясните суть предваряющего тестирования.

19.Какую роль в процессе экстремальной разработки играет рефакторинг?

ГЛАВА 17. АВТОМАТИЗАЦИЯ КОНСТРУИРОВАНИЯ ВИЗУАЛЬНОЙ МОДЕЛИ ПРОГРАММНОЙ СИСТЕМЫ

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

264

рассматривается порядок применения Rational Rose при формировании требований, анализе, проектировании и генерации программного кода.

Общая характеристика CASE-системы Rational Rose

Rational Rose — это CASE-система для визуального моделирования объектно-ориентированных программных продуктов. Визуальное моделирование — процесс графического описания разрабатываемого программного обеспечения. Экран среды Rational Rose показан на рис. 17.1.

Вего составе выделим шесть элементов: строку инструментов, панель «инструменты диаграммы», окно диаграммы, браузер, окно спецификации, окно документации.

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

Содержание панели инструментов диаграммы меняется в зависимости от активной диаграммы. Окно активной диаграммы имеет синюю строку заголовка (рис. 17.3).

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

Рис. 17.1. Экран среды Rational Rose

Рис. 17.2. Кнопки строки инструментов Rational Rose

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

(рис. 17.4).

Знак плюс (+) рядом с папкой означает, что внутри папки находятся дополнительные элементы. Для «разворачивания» папки надо нажать на знак +. Если папка «развернута», то слева от нее появляется знак минус (-). Для «сворачивания» структуры папки нажимается знак минус.

Окно спецификации позволяет задавать характеристики элемента диаграммы (рис. 17.5).

В поле Documentation этого окна вводится словесное описание данного элемента. Это же описание можно вводить в Окно документации Rational Rose (когда данный элемент выделен в диаграмме).

265

Рис. 17.3. Панель инструментов и окно активной диаграммы

Рис. 17.4. Браузер Rational Rose

В качестве примера работы с Rational Rose рассмотрим построение модели университетской системы для регистрации учебных курсов (классический пример компании Rational), автор которой — Терри Кватрани [57].

Эта система используется:

профессором — для задания читаемого курса;

студентом — для выбора изучаемого курса;

регистратором — для формирования учебного плана и расписания;

учетной системой — для определения денежных затрат.

266

Рис. 17.5. Окно спецификации и окно документации Rational Rose

Создание диаграммы Use Case

Моделирование проблемы регистрации курсов начнем с создания диаграммы Use Case. Этот тип диаграммы представляется актерами, элементами Use Case и отношениями между ними. Откроем главную диаграмму Use Case (рис. 17.6).

1.В окне браузера щелкнем по значку + слева от пакета Use Case View.

2.Для открытия диаграммы выполним двойной щелчок по значку Main.

Первый шаг построения этой диаграммы состоит в определении актеров, фиксирующих роли внешних объектов, взаимодействующих с системой. В нашей проблемной области можно выделить 4 актера — Student (Студент), Professor (Профессор), Registrar (Регистратор) и Billing System (Учетная система) (рис. 17.7).

1.На панели инструментов щелкните по значку актера.

2.Для добавления актера в диаграмму щелкните в нужном месте диаграммы.

3.Пока актер остается выделенным, введите имя Student (Студент).

267

Рис. 17.6. Главная диаграмма Use Case

Рис. 17.7. Четыре актера

4.Повторите предыдущие шаги для ввода трех других актеров (Professor, Registrar и Billing System

— Профессор, Регистратор, Учетная система).

Далее для каждого актера нужно определить соответствующие элементы Use Case. Элемент Use Case представляет определенную часть функциональности, обеспечиваемой системой. Вы можете идентифицировать элементы Use Case путем рассмотрения каждого актера и его взаимодействия с системой. В нашей модели актер Student хочет регистрироваться на курсы (Register for Courses). Актер Billing System получает информацию о регистрации. Актер Professor хочет запросить список курса (Request a Course Roster). Наконец, актер Registrar должен управлять учебным планом (Manage Curriculum) (рис. 17.8).

268

Рис. 17.8. Элементы Use Case для актеров

1.На панели инструментов щелкните по значку элемента Use Case.

2.Для добавления элемента Use Case в диаграмму щелкните в нужном месте диаграммы.

3.Пока элемент Use Case остается выделенным, введите имя Register for Courses.

4.Повторите предыдущие шаги для ввода других элементов Use Case (Request Course Roster, Manage Curriculum).

Далее между актерами и элементами Use Case рисуются отношения. Чтобы показать направление взаимодействия (кто инициирует взаимодействие), используются однонаправленные стрелки (unidirectional arrows). В системе регистрации курсов актер Student инициирует элемент Use Case Register for Courses, который, в свою очередь, взаимодействует с актером Billing System. Актер Professor

инициирует элемент Use Case Request Course Roster. Актер Registrar инициирует элемент Use Case Manage Curriculum (рис. 17.9).

Рис. 17.9. Отношения между актерами и элементами Use Case

1.На панели инструментов щелкните по значку однонаправленной ассоциации (стрелке).

2.Щелкните по актеру Student и перетащите линию на элемент Use Case Register for Courses.

3.На панели инструментов щелкните по значку однонаправленной ассоциации (стрелке).

4.Щелкните по элементу Use Case Register for Courses и перетащите линию на актера Billing System.

5.Повторите предыдущие шаги для ввода других отношений (от актера Professor к элементу Use

269

Соседние файлы в предмете Технология программирования