Создание автоматизированной системы "Сдача в аренду торговых площадей"
Разработка системы для автоматизации процессов, происходящих в области арендования торговых помещений. Анализ ее функциональности с помощью диаграммы прецедентов. Контроль, приемка и тестирование системы. Описание классов, описывающих ее объекты.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.12.2012 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
2
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ. ДИАГРАММА ПРЕЦЕДЕНТОВ
2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА АВТОМАТИЗИРОВАННУЮ СИСТЕМУ
2.1 Общие сведения
2.2 Назначение и цели создания (развития) системы
2.3 Характеристика объектов автоматизации
2.4 Требования к системе
2.5 Состав и содержание работ по созданию (развитию) системы
2.6 Порядок контроля и приемки системы
2.7 Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
2.8 Требования к документированию
2.9 Источники разработки
3. ОПИСАНИЕ КЛАССОВ, АТРИБУТОВ И МЕТОДОВ. КЛАССОВАЯ ДИАГРАММА
4. ТЕСТИРОВАНИЕ
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А. ЛИСТИНГ МОДУЛЕЙ
ВВЕДЕНИЕ
Объектно-ориентированное программирование (ООП) - это совокупность фундаментальных представлений и терминов программирования, в которой основными концепциями являются понятия объектов и классов. Также основными понятиями ООП являются: абстракция, инкапсуляция, наследование и полиморфизм.
Абстрагирование - это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые характеристики. Соответственно, абстракция - это набор всех таких характеристик. Инкапсуляция - это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя. Наследование - это свойство системы, позволяющее описать новый класс на основе уже существующего класса, с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом, а новый класс - потомком, наследником или производным классом. Полиморфизм - это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. Класс является описываемой на языке терминологии исходного кода моделью ещё не существующего объекта. Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект -- это экземпляр класса. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. Объект - это сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса или копирования прототипа. Прототип - это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка. Таким образом, в центре объектно-ориентированного программирования находится понятие объекта.
В данной работе предстоит разработать автоматизированную систему управления, программное средство, приложение, предназначенное для управления различными процессами в рамках конкретной предметной области - сдача в аренду торговых помещений. Первый этап создания такой системы это анализ предметной области, то есть исследование предметной области с целью выявления основных сущностей и их атрибутов. После чего следует разработка системы для автоматизации процессов, происходящих в данной области на основе объектно-ориентированного подхода.
автоматизация система арендование
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ. ДИАГРАММА ПРЕЦЕДЕНТОВ
Предполагается, что система для автоматизации работы должна быть внедрена в крупный торговый центр, сдающий в аренду коммерсантам свои торговые площади. Основной задачей данной системы является наведение порядка в финансовой стороне работы торгового центра.
Работа торгового центра построена следующим образом: в результате планирования определяется некоторое количество торговых точек в пределах конкретного торгового центра, которые могут сдаваться в аренду. Для каждой из торговых точек важными данными являются: этаж, площадь, наличие кондиционера и стоимость аренды в день. Со всех потенциальных клиентов собираются стандартные данные (компании, адрес, телефон, реквизиты, контактное лицо). При появлении потенциального клиента ему показываются имеющиеся свободные торговые площади. При достижении соглашения оформляется договор, фиксирующий в базе данных торговую точку, клиента и период аренды (дата начала и дата окончания аренды).
Каждый потенциальный клиент должен иметь возможность арендовать несколько торговых точек, если имеются свободные площади. При этом несколько арендаторов не должны иметь возможность снимать общие торговые помещения, а при окончании периода аренды или при удалении данных об аренде конкретной точки, торговая площадь должна быть снова доступна для аренды. Помимо этого, при окончании срока аренды, клиент может продлить договор на определенный срок. Также необходимо собирать и хранить всю информацию о платежах, поступающих от арендаторов.
Для рассмотрения функциональности и поведения системы воспользуемся диаграммой прецедентов как единым средством совместной работы заказчика, конечного пользователя и разработчика. Диаграмма прецедентов представляет собой диаграмму, на которой отражены отношения, существующие между актёрами и прецедентами, то есть какие последовательности действий может осуществлять система, взаимодействующая с актёрами. Прецеденты служат для документирования функциональных требований к программным системам. Прецедент описывает некоторый целостный фрагмент поведения системы, не вдаваясь при этом в особенности внутренней структуры субъекта.
В данном случае имеется два актера - менеджер торговых помещений и потенциальный арендатор. Рассмотрим все отношения, существующие между актерами: менеджер заполняет базу данных торговых точек, базу данных клиентов и базу данных договоров по аренде, которая частично заполняется данными из баз данных клиентов и торговых точек, а также данными по сроку аренды, которые зависят только от арендатора. В итоге между менеджером торгового центра, предоставляющего услуги по сдаче торговых помещений, и клиента, арендующего эти помещения, лежит договор об аренде. Схематично данные отношения изображены на рисунке 1.
Рисунок 1 - Диаграмма прецедентов
2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА АВТОМАТИЗИРОВАННУЮ СИСТЕМУ
2.1 Общие сведения
- полное наименование системы - «Сдача в аренду торговых площадей», условное обозначение - Rental;
- тема: разработка автоматизированной системы управления;
- потенциальный заказчик: менеджер крупного торгового центра, сдающего в аренду торговые помещения;
- данная система разрабатывается в учебном порядке, в качестве курсовой работы по предмету «Объектно-ориентированное программирование».
2.2 Назначение и цели создания (развития) системы
Назначение системы: автоматизация процессов, происходящих в области арендования торговых помещений, цель создания - наведение порядка в финансовой стороне работы крупного торгового центра.
2.3 Характеристика объектов автоматизации
Объектом автоматизации является финансовая сторона работы крупного торгового центра, основной деятельностью которой является сдача в аренду торговых площадей. Сдаче подлежат только свободные торговые точки, один арендатор может снимать несколько точек, несколько коммерсантов не могут арендовать одно и то же помещение.
2.4 Требования к системе
Разрабатываемая система должна отвечать всем требованиям заказчика для стабильной и корректной работы в данной предметной области: добавлять, удалять, изменять и сохранять данные. Также важным требованием системы является фактор повторного использования. Разрабатываемая автоматизированная система способна корректно работать на самых минимальных технических требованиях аппаратного обеспечения, а также тестировалась на операционных системах Windows XP SP3 и Windows 7. Система не допускает аварийных завершений, сохранение данных в файл осуществляется с помощью сериализации данных, данная система транспортабельна, может работать с портативных запоминающих устройств, не нуждается в дополнительном обслуживании. Разработанная автоматизированная система не нарушает не чьих авторских прав, создана с помощью свободно распространяемого языка программирования высокого уровня Python.
2.5 Состав и содержание работ по созданию (развитию) системы
Для разработки данной автоматизированной системы был проведен первичный анализ предметной области, в ходе чего была выявлена специфика процессов, происходящих в сфере арендования торговых площадей. После чего был проведен более глубокий анализ с использованием диаграммы прецедентов. Диаграмма прецедентов позволила выявить основные сущности и их атрибуты, в результате чего была создана иерархия классов и методов. Для удобства исполнения разрабатываемое программное обеспечение было разбито на два модуля, в одном из которых содержатся основные классы для работы с арендой торговых площадей, позволяющие добавлять, изменять, удалять и хранить данные, а в другом модуле создан класс для создания пользовательского интерфейса для удобной работы с арендой торговых площадей. Все классы и методы классов разрабатывались с помощью объектно-ориентированного подхода. В ходе написания программного кода учитывался фактор защиты целостности системы при вводе некорректных данных. Также проводилось метрологическое тестирование: проверка правильности вычислений временных данных (дата-время), арифметических вычислений (подсчет стоимости периода аренды), проверка правильной итерации номеров записей баз данных, проверка корректного вывода результата приложения, а также проверка поведения приложения при отсутствии файлов сериализации.
2.6 Порядок контроля и приемки системы
В соответствии с разрабатываемой автоматизированной системой, с учетом всех процессов, протекающих в предметной области арендования торговых помещений, для корректной работы системы были проведены следующие испытания:
- заполнение основных полей некорректными данными;
- арендование одним клиентом нескольких свободных торговых точек;
- попытка арендовать занятую торговую точку;
- истечение срока аренды и освобождение торговой точки;
- попытка открыть, удалить, изменить несуществующую запись баз данных;
- проверка быстродействия вычислений системы.
Разрабатываемая автоматизированная система прошла все испытания, поэтому отвечает всем требованиям той предметной области, в которую данная система должна быть внедрена.
2.7 Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
Для корректной работы разрабатываемой автоматизированной системы необходимо как минимум одно автоматизированное рабочее место, снабженное персональным компьютером на базе микропроцессора с тактовой частотой не менее 1000 МГц, ОЗУ 256 Мб, Видеоадаптер 64 Мб, свободное дисковое пространство размером 150 Мб, а также клавиатура и мышь. Необходимое программное обеспечение: операционная система Windows XP, Windows 7, а также установленный интерпретатор для языка Python, например Python Portable 2.7.3.1.
Для работы с системой не требуется дополнительного обучения, достаточно знание предметной области, куда внедрена данная автоматизированная система, поэтому не требуется создание какого-либо отдельного подразделения или выделения дополнительного штата и материальных средств для освоения системы.
2.8 Требования к документированию
В разрабатываемой автоматизированной системе определена документация для каждого класса, метода класса и отдельного независимого метода. В ходе работы с приложением можно вывести на экран всю необходимую документацию.
2.9 Источники разработки
Технико-экономическое обоснование создания автоматизированной системы: необходимость в систематизации данных финансовой стороны крупного торгового центра. Источники, необходимые для разработки подобной системы представлены в разделе список использованных источников.
3. ОПИСАНИЕ КЛАССОВ, АТРИБУТОВ И МЕТОДОВ. КЛАССОВАЯ ДИАГРАММА
Рассмотрим классы, описывающие предметную область разрабатываемой автоматизированной системы.
Класс Outlets - класс, описывающий торговые площади. Поля класса: floor, square, conditioner, cost, status. Единственный метод класса __init__() содержит следующие атрибуты класса: self.number (номер), self.floor (этаж), self.square (площадь), self.conditioner (кондиционер), self.cost (стоимость), self.status (статус точки).
Класс Personal - класс, описывающий контактное лицо клиента. Поля класса: first_name, last_name, middle_name. Единственный метод __init__() содержит следующие атрибуты класса: self.first_name (имя), self.middle_name (отчество), self.last_name (фамилия).
Класс Clients - класс, описывающий клиентов-арендаторов торговых площадей. Поля класса: company, details, address, phone, last_name, middle_name, first_name. Единственный метод класса __init__() содержит следующие атрибуты класса: self.number (номер), self.company (компания), self.details (реквизиты), self.address (адрес), self.phone (телефон), self.personal = Personal(last_name, first_name, middle_name) - контактное лицо.
Класс Rent - класс, описывающий основную информацию по аренде торговых площадей. Поля класса: outlet, client, start_date, finish_date, payment. Единственный метод класса __init__() содержит следующие атрибуты класса: self.number (номер), self.outlet (торговая точка), self.client (потенциальный клиент), self.start_date (дата начала аренды), self.finish_date (дата окончания аренды), self.payment (платежи за аренду).
Класс OutletsDatabase - класс, описывающий базу данных торговых точек. Метод __init__() содержит следующие атрибуты класса: self.filename (имя файла), self.database (массив записей), self.index (индекс записи). Поля класса: number, floor, square, conditioner, cost, status. Методы класса: __iter__() (метод-итератор), open_database() (метод открытия файла), save_database() (метод сохранения в файл), add_record() (метод добавления новой записи в базу данных), delete_record() (метод удаления записи), change_record() (метод изменения записи), get_record_by_number() (метод получения записи по номеру из базы данных).
Класс ClientsDatabase - класс, описывающий потенциальных клиентов. Метод __init__() содержит следующие атрибуты класса: self.filename (имя файла), self.database (массив записей), self.index (индекс записи). Поля класса: number, company, details, address, phone, first_name, last_name, middle_name. Методы класса: __iter__() (метод-итератор), open_database() (метод открытия файла), save_database() (метод сохранения в файл), add_record() (метод добавления новой записи в базу данных), delete_record() (метод удаления записи), change_record() (метод изменения записи), get_record_by_number() (метод получения записи по номеру из базы данных).
Класс RentDatabase - класс, описывающий базу данных договоров по аренде. Метод __init__() содержит следующие атрибуты класса: self.filename (имя файла), self.database (массив записей), self.index (индекс записи). Поля класса: number, outlet, client, start_date, finish_date, payment. Методы класса: __iter__() (метод-итератор), open_database() (метод открытия файла), save_database() (метод сохранения в файл), add_record() (метод добавления новой записи в базу данных), delete_record() (метод удаления записи), get_record_by_number() (метод получения записи по номеру из базы данных).
Класс Launcher - класс, запускающий пользовательское приложение, выводит результаты обработки информации на экран. Метод __init__() содержит атрибуты класса: self.outlets_database (экземпляр класса OutletsDatabase), self.clients_database (экземпляр класса ClientsDatabase), self.rent_database (экземпляр класса RentDatabase). Методы класса: update (метод обновления баз данных), printOutletsDB() (вывод на экран записей базы данных торговых точек), printClientsDB() (вывод на экран записей базы данных потенциальных клиентов), printRentDB() (вывод на экран записей базы данных договоров по аренде), launch() (метод запуска элементов управления приложением).
Также имеется два независимых метода: _next_number() (метод для инкриминирования номеров записей баз данных), getDays() (метод, вычисляющий разницу в днях между двумя датами).
Для того, чтобы понять всю классовую структуру и взаимодействие между классами и методами строится классовая диаграмма. Классовая диаграмма изображена на рисунке 2.
Рисунок 2 - Классовая диаграмма
4. ТЕСТИРОВАНИЕ
При запуске данной системы пользователь выбирает из списка действий желаемое действие, при наборе в поле ввода числа «12», приложение закроется. На рисунке 3 показано начальное приглашение приложения.
Рисунок 3 - Интерфейс системы
При вводе цифры «1», пользователь может увидеть список торговых площадей, имеющихся в наличии торгового центра (рисунок 4). А при вводе цифры «2», пользователь может посмотреть список потенциальных клиентов (рисунок 5). Так как база данных договоров по аренде не имеет записей, то приложений оповещает пользователя о том, что список договоров пуст (рисунок 6). Тестирование добавления договора в базу данных системы: для этого следует ввести цифру «6» и заполнить необходимые поля, причем данные по номеру точки и номеру клиента берутся из соответствующих баз данных, если пользователь ввел несуществующий номер записи любой из баз данных, то система оповестит об ошибке ввода и прекратит процедуру добавления договора, также с датами, если пользователь пытается ввести одну дату как для начала аренды, так и для окончания, то система оповестит об ошибке, и если дата окончания совпадает с реальной датой, то система предупредит об этом. На рисунке 7 показан пример добавленной записи договора об аренде. При попытке арендовать не свободную точку, система оповещает об этом клиента (рисунок 8). Но система также позволяет одному клиенту иметь сразу несколько торговых точек (рисунок 9).
Рисунок 4 - Список торговых площадей
Рисунок 5 - Список клиентов
Рисунок 6 - Оповещение о пустом списке
Рисунок 7 - Запись договора об аренде
Рисунок 8 - Оповещение системы об ошибке договора
Рисунок 9 - Два договора по аренде для одного клиента
При тестировании системы также проверялась возможность удаления точек, клиентов и договоров баз данных, изменения параметров торговых площадей и клиентов, а также попытку ввести некорректные данные. Система мгновенно обновляет все данные, которые изменялись в ходе различных манипуляций пользователя: добавление, изменение, удаление.
ЗАКЛЮЧЕНИЕ
В ходе работы была создана автоматизированная система управления всеми процессами, происходящими в сфере арендования торговых площадей. Учтены все требования, поставленные для конкретной специфики предметной области, такие как: возможность одному клиенту арендовать сразу несколько точек, невозможность аренды нескольким клиентам одной торговой точки, смена статуса торговой площади при аренде (свободна - занята), а также хранение всех платежей, поступающих от арендаторов. Разработанная система способна хранить всю информацию неограниченное число дней, устойчива к отсутствию файлов сериализации (сохранения), безопасна, способна повторно использоваться, а также не нарушает авторских прав и патентов.
Для создания автоматизированной системы был применен объектно-ориентированный подход, так как объектно-ориентированное программирование в настоящее время является несомненным лидером в области разработки программного обеспечения и в области прикладного программирования.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Деменков М.Е. Объектно-ориентированное программирование: методические указания по выполнению курсовой работы. [Текст] - Архангельск: Изд-во САФУ, 2012. - 40 c.
2 Бизли Д. Python. Подробный справочник. [Текст] - Пер. с англ. - СПб.: Символ-Плюс, 2010. - 864 с., ил.
3 Википедия - Свободная Энциклопедия. [Электронный Ресурс] - Режим доступа: http://ru.wikipedia.org/, свободный.
Размещено на Allbest.ru
Подобные документы
Процесс проектирования программы, состоящий из следующих шагов: описание прецедентов, построение диаграммы прецедентов, диаграммы взаимодействий, создание модели программных классов. Тестирование программы входными тестовыми вариантами, ее листинг.
курсовая работа [1,9 M], добавлен 25.10.2012Анализ предметной области. Выбор и обоснование выбора программного обеспечения. Разработка автоматизированной информационной системы учета торговых операций в автосалоне. Создание модуля данных, запросов и отчетов. Построение проектной диаграммы Ганта.
курсовая работа [8,6 M], добавлен 13.04.2016Теоретические основы проектирования информационной системы и базы данных. Проектирование информационной системы "Автоматизация учета торговых операций в автомобильном салоне". Методология SADT и DFD, описание IDEF0-модели. Разработка форм приложения.
курсовая работа [2,8 M], добавлен 15.04.2015Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.
дипломная работа [869,8 K], добавлен 12.08.2017Анализ информационной системы "Бурятия.INFO". Построение функциональной модели "Как надо", диаграммы прецедентов, диаграммы последовательности действий, диаграммы классов. Разработка программного приложения в интегрированной среде Intellij IDEA.
дипломная работа [1,3 M], добавлен 13.04.2014Исследование системы функционирования зоомагазина "Дракоша" и схематическое описание бизнес-процессов предприятия. Генерация кода и разработка автоматизированной информационной системы магазина на языке программирования С+. Расчет диаграмм автоматизации.
курсовая работа [841,8 K], добавлен 07.08.2013Выбор инструментальной системы управления базами данных. Описание Торговой Информационной Системы, предназначенной для ведения учета на производственных предприятиях, в оптовых и розничных торговых компаниях. Руководство для пользователя программы.
дипломная работа [1,6 M], добавлен 07.12.2012Разработка программного продукта и описание использования банкомата с помощью диаграммы прецедентов, с помощью IDEF0 диаграмм. Разработка информационной системы банкомата. Создание базы данных, форм, бизнес-правил. Возможные пути развития и реинжиниринга.
курсовая работа [1,6 M], добавлен 25.03.2015Создание программы для автоматизации некоторых основных процессов, происходящих на заводе по производству пластиковых окон. Модель процессов предметной области, концептуальное проектирование базы данных. Описание пользователей, создание приложения.
курсовая работа [35,0 K], добавлен 08.08.2011Построение модели прецедентов, модели пригодности для прецедента. Описание атрибутов и операций классов системы. Проектирование с применением методологии ICONIX. Построение диаграммы пригодности, диаграммы последовательностей и диаграмма классов.
курсовая работа [949,5 K], добавлен 25.05.2015