Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гафаров_Отчет.doc
Скачиваний:
7
Добавлен:
11.03.2015
Размер:
1.09 Mб
Скачать

5 Вывод

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

Лабораторная работа № 3 «Технология разработки ПО при объектном подходе»

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

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

2 Цель работы

Изучить технологию разработки ПО при объектно-ориентированном подходе. Применить полученные знания на практике, разработав программу.

3 Проектирование ПО при объектном подходе

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

3.1 Объектная декомпозиция задачи

Решение поставленной задачи можно разделить на следующие части:

  • хранение данных о текущем положении мяча и его скорости;

  • управление движением мяча (изменение его положения, проверка касания поверхности, расчет параметров движения);

  • визуализация движения.

Таким образом, задачу можно делегировать 3 классам – классу мяча (TBall), классу, контролирующему физическое поведение мяча (TBallPhysicController), и классу, контролирующему отрисовку мяча и поверхности (TBallVisualController). Кроме того понадобится ещё один класс – класс формы приложения.

3.2 Определение отношений между объектами

На рисунке 3.1 приведена схема отношений между выявленными сущностями.

Рисунок 3.1 – Отношения между объектами

Класс TMainFormимеет свойство типаTBallVisualControllerдля доступа к отрисовке мяча. КлассTBallVisualControllerдолжен иметь свойство типаTBallPhysicControllerдля доступа к данным о поверхности, а также, чтобы классTMainFormимел доступ к экземпляруTBallPhysicController(для задания параметров). КлассTBallPhysicControllerимеет свойство типаTBallдля доступа к данным о мяче, а также, чтобы классыTBallVisualControllerиTMainFormимели доступ к объекту-мячу.

3.3 Проектирование классов

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

Рисунок 3.2 – Диаграмма классов

Класс TMainFormобеспечивает взаимодействие с пользователем, и имеет методыRestartиPause, которые инициируются пользователем. Также класс имеет методTimer, который вызывается обработчиком компонента типаTTimerпо прошествии определенного времени, что позволяет использовать его для инициации начала новой итерации (т.е. движения мяча за малый промежуток времени).

Класс TBallVisualControllerинкапсулирует рисование поверхности и мяча. Т.к. поверхности со временем не меняется выгодно нарисовать её один раз, а затем копировать при перерисовывании, поэтому в классе есть полеFBackgroundи методGenerateBackground. Также для метода является важным изменение границ окна вывода, поэтому у него есть методыRestartиResizeBox, имеющие в качестве параметров ширину и высоту окна вывода. Логично, что методTBallVisualController.Restartвызывается из одноименного метода классаTMainForm.

Класс TBallVisualControllerинкапсулирует изменение координат мяча по рассчитанным параметрам, проверку касания поверхности и расчет новых параметров при столкновении. МетодIterateвызывается из методаTimerклассаTMainFormи выполняет расчет координат мяча и его текущей скорости по известным параметрам и измененному моменту времени. Приватные методыCheckContact,CalculateAlphaиGenerateSurfaceсоответственно проверяют касание поверхности, вычисляют новые параметры движения при столкновении с поверхностью, и генерируют поверхность при рестарте.

Класс TBallинкапсулирует координаты мяча, его текущую скорость, и радиус. И имеет 1 метод – метод получения квадратной области, в которую вписан мячGetRect.