Вариант использования «Фильтрация автомобиля»



Расширяющий вариант использования: Фильтрация автомобилей
Краткое описание: Система отфильтровывает список автомобилей в соответствии с заданными параметрами и выводит их на экран
Главные актеры: Арендатор
Второстепенные актеры: Нет
Предусловие: Открыт диалог поиска автомобилей
Основное поток: 1. Арендатор выбирает опцию «Фильтрация автомобилей» 2. Система запрашивает у Арендатора критерий поиска (год выпуска, модель) 3. Арендатор вводит запрашиваемый критерий 4. Система ищет авто, соответствующие критерию Арендатора 5. Если система находит соответствующие авто, тогда 1. 2. 3. 4. 5. 5.1. Для каждого найденного авто система выводит 1. 2. 3. 4. 5. 5.1. 5.1.1. миниатюрное представление авто 5.1.2. краткое описание продукта (статус занятости, год выпуска, марка, модель) 6. Иначе 6.1. Система сообщает Арендатору о том, что соответствующие авто не найдены
Постусловие: Выведен список отфильтрованных автомобилей
Альтернативные потоки: Нет

Вариант использования «Добавление автомобиля»

Вариант использования «Добавление автомобиля»
Краткое описание: Система позволяет автовладельцам добавить автомобиль для аренды.
Главные актеры: Арендодатель
Второстепенные актеры: Арендатор
Предусловия: 1. Клиент должен иметь при себе действующие на момент выдачи автомобиля водительское удостоверение и паспорт. Водительский стаж должен составлять не менее двух лет. 2. Залоговая сумма и цена проката за автомобиль в течение срока проката зависит от класса выбранного автомобиля. 3. В случае повреждения или кражи автомобиля ответственность клиента ограничивается Франшизой.
Основной поток: 1. Прецедент начинается, когда Арендодатель выбирает опцию «добавить авто». 2. Если система запрашивает данные об автомобиле, тогда 3. Для каждого автомобиля 4. Система показывает марку, модель, год выпуска, сроки аренды. 5. Система добавляет данные об авто  
Постусловия: Нет.
Альтернативные потоки: Нет.

Вариант использования «Посмотреть арендованные»

Вариант использования «Посмотреть арендованные»
Краткое описание: Система позволяет арендатором посмотреть арендованные автомобили.
Главные актеры: Арендатор
Второстепенные актеры: Нет
Предусловия: Нет
Основной поток: 1. Прецедент начинается, когда Арендатор выбирает опцию «посмотреть арендованные». 2. Если Арендатор хочет посмотреть информацию об автомобиле, тогда для каждого арендованного автомобиля выводится: 2.1. марку, 2.2. модель, 2.3. год выпуска, 2.4. сроки аренды.
Постусловия: Нет.
Альтернативные потоки: Нет.

 

Вариант использования «Оставить заявку на желаемое авто»

Прецедент: Оставить заявку на желаемое авто.
Краткое описание: Система позволяет пользователю оставить заявку на добавление необходимого автомобиля в систему проката, в случае его отсутствия.
Главные актеры: Пользователь.
Второстепенные актеры: Нет.
Предусловия: 1. Пользователь вошел в систему.
Основной поток: 1. Прецедент начинается, когда пользователь не находит нужного автомобиля. 2. Система запрашивает у пользователя: год выпуска, марку, модель, цвет и соглашение на обработку персональных данных. 3. Пользователь вводит запрашиваемые данные
Постусловия: Заявка создана.
Альтернативные потоки: 1. Данные введены корректно, система выводит на экран сообщение о том, что все прошло успешно, заявка принята, заявка сохраняется. 2. Система требует исправить или дополнить введенные данные, далее повторяются пункты 3 (основного потока) и 1 (альтернативного) пока все данные не будут введены верно, или пользователь не отменит действие.

 

Вариант использования «Арендовать машину»

Вариант использования: Арендовать машину
Краткое описание: Система арендует автомобиль в соответствии с заданными параметрами и выводит их на экран.
Главные актеры: Арендатор
Второстепенные актеры: Арендодатель
Предусловие: Выбор машины, переход на страницу автомобиля
Основное поток: 1. Арендатор выбирает даты начала и конца аренды 2. Система проверяет статус машины на эти даты 3. Если система подтверждает корректность выбранных параметров, то 3.1.  Система отображает общую стоимость сделки 3.2. Система арендует автомобиль на выбранные даты   5.2. 4. Иначе 4.1 Система сообщает Арендатору о том, что данные введены некорректно. 
Постусловие: Система резервирует машину на эти даты. Оплата ренты
Альтернативные потоки: Нет

 


 

АНАЛИЗ

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

Диаграмма классов анализа

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

На рис. 2.1 представлена диаграмма классов анализа для разрабатываемого приложения.

 

Рис. 2.1 Диаграмма классов анализа

 

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

Основным классом является «Пользователь», который содержит 2 поля, необходимых для идентификации: ФИО и E-mail. «Пользователь» может принимать 2 роли. Это реализуется в классах «Арендодатель» и «Арендатор». Класс «Арендодатель» содержит поля, необходимые для привязки пользователя к определённой компании: Компания и Реквизиты. Класс «Арендатор» содержит единственное поле «Паспортные данные».

У каждого «Арендодателя» есть автопарк, который описывается классом «Автомобиль». Класс содержит поля, которые необходимы для описания автомобиля: Год выпуска, Наименование, Цена, Описание, Статус. Поле «Наименование» составляется путём получения названий из классов «Марка» и «Модель». Поле «Статус» определяет, возможна ли аренда автомобиля, или же он уже находится в аренде.

Класс «Аренда» описывает основную функцию системы – аренда автомобиля. Класс обладает атрибутами: Начало аренды, Дата расторжения, Конец аренды, Статус. Все атрибуты, кроме «Статус» принадлежат к типу Дата. «Статус» определяет, в каком состоянии находится аренда: в режиме ожидания, началась или уже закончилась. Класс «Аренда» обладает процедурами: Начать аренду, Расторгнуть аренду, Завершить аренду. Метод «Начать аренду» принимает аргументы, необходимые для создания самого факта аренды: Начало аренды, Арендодатель, Арендатор, Автомобиль. Метод «Завершить аренду» принимает аргумент «Отзыв».

Класс «Отзыв» необходим для того чтобы охарактеризовать «Пользователя» другим «Пользователем». После завершения аренды «Арендодатель» может оставить отзыв об «Арендаторе», где приводит его удовлетворение или недовольство от выполнения обязательствами аренды «Арендатором». «Арендатор» может в своём отзыве дать оценку аренде, поведению «Арендодателя». Класс «Отзыв» содержит поля: Текст, Оценка, Дата подтверждения. Так же, класс обладает методом «Подтвердить»: модератор или другой привилегированный пользователь подтверждает отзыв. «Дата подтверждения» – дата, когда привилегированный пользователь подтвердил корректность «Отзыва».

1.

2.

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

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

От других диаграмм диаграмма состояний отличается тем, что описывает процесс изменения состояний только одного экземпляра определенного класса – одного объекта, причем объекта реактивного, то есть объекта, поведение которого характеризуется его реакцией на внешние события. Понятие жизненного цикла применимо как раз к реактивным объектам, настоящее состояние (и поведение) которых обусловлено их прошлым состоянием. Но диаграммы состояний важны не только для описания динамики отдельного объекта. Они могут использоваться для конструирования исполняемых систем путем прямого и обратного проектирования [4].

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

На рис. 2.2 представлена диаграмма конечных автоматов для класса «Аренда» данной системы.

Рис. 2.2 Диаграмма конечных автоматов класса «Аренда»

 

Как видно на рис. 2.2, класс «Аренда» может находиться в 4-х состояниях: не начатая, начатая, завершенная и отмененная.

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

После наступления даты начала аренды она переходит в состояние «Начатая аренда».

Из состояния «Начатая» аренду может перевести в состояние «Отмененная» пользователь, который её начал, до её начала.

Из состояния «Начатая» заказ может перевести в состояние «Отмененная» переводит арендодатель после окончания аренды и возвращения автомобиля.

На рис. 2.3 представлена диаграмма конечных автоматов для класса «Автомобиль» данной системы.

 

Рис. 2.3 Диаграмма конечных автоматов класса «Автомобиль»

Как видно на рис. 2.3, класс «Автомобиль» может находиться в 2-х состояниях: свободный и арендованный.

При добавлении экземпляра класса «Автомобиль», автомобиль автоматически переходит в состояние «Свободный автомобиль».

Из состояния «Свободный автомобиль» автомобиль переходит в состояние «Арендованный автомобиль» автоматически после начала аренды данного авто.

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

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


 

ПРОЕКТИРОВАНИЕ

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

Проектные классы

Проектные классы – это классы, описание которых настолько полно, что они могут быть реализованы [3, с. 372]. В отличие от классов анализа, описание содержит детали реализации. Диаграмма проектных классов представлена на рис. 3.1.

 

Рис. 3.1 Диаграмма проектных классов

 

По сравнению с диаграммой классов анализа произошли следующие изменения: класс «Отзыв» был опущен до следующей модификации проекта, классы «Арендатор» и «Арендодатель» были объединены в один класс «Пользователь». В класс «Автомобиль» были добавлены атрибуты: «Цена», «Подробности о машине», «Подробности аренды», «Изображение машины», «Статус». В класс «Аренда» был добавлен атрибут «Статус».

Диаграмма пакетов системы

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

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

Подпакет – пакет, который является составной частью другого пакета.

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

Для графического изображения пакетов на диаграммах применяется специальный графический символ – большой прямоугольник с небольшим прямоугольником, присоединенным к левой части верхней стороны первого. Можно сказать, что визуально символ пакета напоминает пиктограмму папки в популярном графическом интерфейсе. Внутри большого прямоугольника может записываться информация, относящаяся к данному пакету. Если такой информации нет, то внутри большого прямоугольника записывается имя пакета, которое должно быть уникальным в пределах рассматриваемой модели. Если же такая информация имеется, то имя пакета записывается в верхнем маленьком прямоугольнике [4].

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

Проект «Car_rental» содержит в себе следующие пакеты: «User», «Auto», «Rent» и «Feedback».  Пакет «User» состоит из класса «User» и от этого пакета зависят «Rent» , «Auto» и «Feedback». Пакет «Rent» состоит только из класса «Rent» и зависит только от пакета «Feedback», состоящего из одноименного класса «Feedback». Пакет «Auto» состоит из классов «Car», «CarModel» и «CarMark» и от этого пакета зависит пакет «Rent».

 

Рис. 3.2 Диаграмма пакетов программной системы

 

Пакет «User» содержит класс «User», который может просматривать, создавать  или отменять аренды, так же он может добавлять авто. Пакет «Auto» содержит списки автомобилей с подробной информацией о них.  Пакет «Rent» содержит информацию об арендах. Пакет «Feedback» содержит отзывы пользователей об аренде.


Дата добавления: 2019-03-09; просмотров: 655; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!