Reference no: EM132865203
COM714 Software Design and Development - Solent University
Assessment - Estate Management System
Solent Council owns multiple estates that are occupied by local community members in different parts of the country. Each estate consists of thoroughfares and homes occupied by different occupants (owners or tenants). Estate occupants are required to pay yearly service charges to the council, which can be paid as a one-off payment or by instalments. Currently, the council employs a paper-based system where occupants make payments directly to the council staff and a receipt will be manually issued as evidence of payment. This process results in tremendous paperwork for staff, ineffective validation of payment and process and serious complaints from occupants regarding inefficiency.
As the estates grow over time, there is a significant need for an electronic system for the management of these activities.
Requirements
Consider the following features in the development of the system:
(a) Estate
An estate has a name and consists of multiple thoroughfares and properties. Each estate will always have a contact, the estate manager, who is in-charge and manages the estate affairs. The estate will have a location in a specific area of the country among other features.
(b) Thoroughfare
Every estate is made up of multiple thoroughfares with names and properties on one or both sides of a thoroughfare. For this case study, a thoroughfare can be a street, close, avenue, crescent, lane, court or road.
(c) Property
A property is a building on a thoroughfare within an estate. A property type may be in the form of a detached house, semi-detached, terrace or a block of flats. A property may be occupied by single or multiple households. A property will always have an address (usually the building name, number and thoroughfare name), associated owner or custodian, and a completion date among other features. A property may be owned, rented or managed by a body.
(d) Household
A household refers to occupants of a property who live together as a single unit. For example, a detached house and its occupants will be a single household. A block of flats, on the other hand, may consist of multiple households. Any form of an individual unit of a property (e.g. a house or an individual flat) is regarded as a
household. Each household will have a custodian who usually will be solely responsible for activities related to the household.
(e) System users
Users are considered to be the system actors who will carry out different activities using the system. The system users are considered in three categories as follows:
1. Basic System User
A basic system user is associated with an estate and will be able to carry out basic functionalities in the system. These include:
i. create, view and update thoroughfare for the estate.
ii. create, view and update properties on a thoroughfare in the estate.
iii. create, view and update a household and its associated custodian for a property on a thoroughfare.
iv. generate an invoice for a specific household.
v. take payment on behalf of a custodian and generate a receipt.
vi. print invoices and receipts for any payments that have been made.
2. Manager
An estate manager will be able to complete all basic system user tasks as stated above and, additionally, the following:
i. delete thoroughfares, properties, households and associated custodians.
ii. create a basic system user that is restricted to the estate for which the estate manager has charge.
iii. view the total invoice for the estate i.e. all households.
3. Administrator
An administrator will be able to complete all basic system user and estate manager tasks as stated above as well as the following:
i. create, view, update and delete estates including an associated estate man- ager and basic system users.
ii. view, update and delete estate invoices and payments.
iii. view the total invoice and payment receipt for all estates within the system.
Assessment Tasks
Solent Council has now considered employing you as a software developer to help develop their estate management system.
Using Python, your task is to develop and test an estate management system that meets the requirements described in this assessment brief. You should complete the following tasks to help you achieve this goal:
a) Analyse the problem scenario and derive suitable UML diagrams (use-case, robustness, sequence and class diagram). These should be included in your project in a suitable folder.
b) Implement a graphical user interface-driven object-oriented system using Py- thon. You should use Tkinter to implement the graphical user interface.
c) Suitably test your system using appropriate unit tests.
Scope
You are required to develop an Object-Oriented application with a graphical user interface using Python that meets the requirements as described in this assessment brief. It is expected that you will develop Python classes that model the features of the system as well as a suitable graphical user interface through which users can interact with the system. You are not required to implement a database. You are also not required to implement a payment system or print physical invoices. Instead, you should simulate these aspects of the system by appropriately displaying the results.
Environment
You are required to use the following tools:
- PyCharm as your integrated development environment
- Python 3.9 as the standard python library
- Additionally, the following libraries/modules may be imported and utilised:
csv - to process CSV files
datatime - to manipulate dates and times enum - to add enumerations
json - to process JSON files
math - provides access to mathematical functions os - to retrieve or check file paths
pprint - for ‘pretty printing' data structures random - to generate random numbers
test - allows regression testing
tkinter - to create a graphical user interface typing - to add type hints
unittest - to construct and run tests
- Git Tools and GitHub for version control
- A diagramming tool such as draw.io
- No other python libraries or modules should be used
Tasks
Before You Begin:
You should read this assessment brief in its entirety. Once you are ready, create a new Python project using PyCharm. You should ensure that the interpreter is set to Python 3.9. You should also ensure that your project is added to a private Git repository hosted on GitHub.
Software Product:
You are required to develop a software product that addresses the problem scenario using Python and the tools specified in this assessment brief. You should regularly commit your project to your Git repository. It is expected that your Git repository will evidence the full development history of your software product.
Demonstration:
You will be required to demonstrate your final working solution. During the demonstration, it is expected that you will execute your final solution, explain your implementation, answer any questions related to your solution and show evidence of the development of the software artefact. No presentations slides are expected or required. The demonstrations will take place after the submission of the software product and no later than the date specified in this assessment brief.
Attachment:- Software Design and Development.rar