Answered step by step
Verified Expert Solution
Question
1 Approved Answer
In this assessment, you will create an advanced Customer Management System using object - oriented programming principles and applying best practices and design patterns. The
In this assessment, you will create an advanced Customer Management System using objectoriented programming principles and applying best practices and design patterns. The system should meet the specifications outlined in the case study and demonstrate your proficiency in advanced concepts and techniques.
You will be provided with a case study which will require you to use your problemsolving skills and you will create an application via objectoriented programming and apply best practices and design patterns to an application. You will need to create a solution and develop the program using Python language.
Case Study:
You have been hired as a lead software engineer to develop an advanced Customer Relationship Management CRM System for a multinational corporation. The system should provide comprehensive customer management functionalities and integrate with various external services. You need to design and implement classes for customer data management, incorporate advanced features, and ensure high performance and security.
Customer class
Properties: id integer name string email string phonenumber string date
string and address string
Getters: getId getName getEmail getPhoneNumber getAddress
Setters: setNamenewName setEmailnewEmail
setPhoneNumbernewPhoneNumber setAddressnewAddress
Methods:
o Areprmethodthatdisplaysdetailedinformationaboutthecustomer
o Acalculateagemethodthatcalculatesthecustomersagebasedontheirdate
of birth provided as a parameter
CustomerManager class
Properties: customers list of Customer objects Methods:
o addCustomercustomer: Customer adds a customer to the customer list
o removeCustomercustomer: Customer removes a customer from the customers
list
o getCustomersByAgeRangeminage: int, maxage: int returns a list of
customers within the specified age range
o getCustomersByAddressaddress: str returns a list of customers with a
matching address
o exportDatafilename: str exports customer data to a CSV file optionally you may
use JSON file structure
Note: You are required to implement appropriate exception handling techniques to handle potential errors, such as invalid data inputs or file handling issues. Ensure that meaningful error messages are displayed to the user when exceptions occur. Develop comprehensive unit tests using a suitable testing framework to verify the functionalities of the Customer and CustomerManager classes. Ensure that the tests cover various scenarios and edge cases.
LO
Create unit tests and a testdriven development environment.
LO
Use exception handling and debugging to identify and manage runtime errors.
LO
Create an application via objectoriented programming.
LO
Develop an application using best practices and design patterns.Implement the Python classes and methods based on the provided requirements.
Utilise appropriate inheritance and class properties.
Apply basic principles of objectoriented programming, including encapsulation and inheritance.
Follow the PEP coding conventions and use meaningful names for variables and functions.
Includecommentstoexplainthefunctionalityandanyassumptionsmade.
Develop comprehensive unit tests using an appropriate testing framework to validate the
functionalities.
Apply robust exception handling techniques to handle potential errors.Aim to demonstrate advanced proficiency in objectoriented programming, software design, and exception handling. Consider code correctness, performance, and adherence to best practices in your implementation. Please provide the testing and the print commands for the the output that I should get.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started