Reference no: EM133508496
Software Engineering
Assignment: Objectives
The purpose of this assessment item is to assess your skills attributable to the following learning outcomes and achieving the expected graduate attributes of advanced level knowledge, communication, cognitive, technical, and creative skills, and self-management.
• Design system architecture and components using design patterns and object-oriented design.
• Develop three-tiered software applications using agile and plan-driven methods.
• Plan and conduct test-driven development, validation, and verification testing.
Assessment task
Your task in this assessment is to review the requirements specification developed as part of your Assignment One and correct any errors. You create the class designs and database design following the requirements specification. You also develop a test plan to test your system following the functional and non- functional requirements. You implement the design developing a software application which is a Java desktop application with a front-end GUI, middle layer implementing the business logic and backend database. Test your application using the test plan developed. You will document the detailed design, test plan and evidence of testing.
Problem (Case Study from Assignment One)
"Get It Now (GIN)" is a mid-size e-commerce company that requires a payroll system that would encompass various processes and features to efficiently manage employee compensation (pay, supper and tax ...). The system comprised of the following sub-systems:
Employee Information Management: The payroll system would maintain a comprehensive database of employee information, including personal details, employment contracts, tax withholding allowances, and banking information for salary deposits.
Time and Attendance Tracking: The system would integrate with a time and attendance management module to record employee work hours accurately. This can be done through biometric scanners, web-based clock-ins, or other methods. It would also handle leaves, vacations, and other types of time-off requests.
Payroll Calculation: The system would automatically calculate employee salaries, considering factors such as hours worked, overtime, leave deductions, and any applicable bonuses or commissions. It would also consider tax deductions, social security contributions, and other statutory requirements based on the employee's location.
Taxation and Superannuation: The payroll system would generate and maintain tax and superannuation. Superannuation is calculated before tax on 11%, and fortnightly tax is calculated based on this table.
Payment Processing: It would generate pay stubs or electronic payslips, providing employees with detailed information about their earnings, deductions, and taxes.
Employee Self-Service Portal: The payroll system would provide an employee self- service portal where employees can access their payroll information, view pay stubs, update personal.
Security and Data Privacy: Given the sensitive nature of payroll data, the system would prioritize robust security measures to protect employee information. This includes implementing encryption, access controls, and regular data backups to prevent unauthorized access or data loss.
Scalability and Flexibility: The payroll system should be designed to accommodate the growth of the e-commerce company. It should be scalable, capable of handling an increasing number of employees, and flexible enough to adapt to changing payroll policies, benefits, or regulatory requirements.
Implementing a payroll system tailored to the specific needs of a mid-size e- commerce company can greatly streamline payroll processes, enhance accuracy, and ensure compliance with legal and financial obligations. The company data is stored in a MySQL database; Privacy and security of data are important so only authorized person/s should be allowed to access the information. There should be two levels of access rights, view, and update.
The GIN-Payroll users are ordinary people with different levels of information technology skills. Hence, ease of use, user friendly interface, and low maintenance are important.
An initial prototype of the GIN-Payroll should be developed as a Java desktop application with a front-end GUI, and a backend database. You start with a context diagram to understand the information flow, then follow MVC pattern to develop the system architecture.
(End case study)
You have completed requirements engineering identifying functional and non- functional requirements, developed use case diagrams, system architecture, and use cases as part of Assignment One. You may have received some feedback on aspects to be reviewed and corrected.
In this Assignment you must:
1. Revise your requirements engineering specification incorporating necessary corrections as described below:
a. Make the corrections on your design from the assessment 1 and mark it clearly as "Correction", if any.
b. Identify the Object classes. You can use your use case diagrams, use cases, and functional requirements to correctly identify the classes.
c. Understand the collaboration between classes "class association" and develop the correct UML class diagrams with attributes and methods.d. Correlate the context diagram, use case diagrams, and the attributes of classes to identify the user input and data storage requirements.e. Identify the entities for the database and create an entity relationship diagram (ERD).2. You will follow the revised design specification and develop only 2 modules of the system.a. Module 1: Employee Self-Service Portal:i. Employee Login.ii. Enter hours worked for one week at a time.iii. View their details and edit some that is allowed (i.e., address, phone, etc.)iv. Search and view employee's payslip by date.b. Module 2: Staff Payment Processingi. Staff Loginii. Register a new employee.iii. Search and view a new employee.iv. Edit a new employee information.v. Create reports on the total payroll information for week, or month, or year to date (including total net pay, tax, supper, etc.).
3. Create Test classes for the implemented classes only, using JUnit testing.
4. Develop UI design for module 1 and 2 only, using SceneBuilder. Follow MVC pattern.5. Use PreparedStatements to generate reports from the program.
6. The non-functional requirements from your first assignment gets mapped to quality aspects of your software. Choose two of the quality aspects as focus of your design and implementation, for example maintainability.
7. Conduct unit testing - automated and application testing.
Note: Privacy and security of data are important as these belong to the company and individual employees. Only authorized person/s should be allowed to access the information. There should be two levels of access rights, view and modify. The GIN- Payroll users are people with different levels of information technology skills. Therefore, ease of use, and user-friendly interface, low maintenance is important.
Data Structures
You should have three or more classes for the domain models other than the Database Utility class, Controller, and main. You should use inheritance to improve code re-usability, and include parameterised, default, and copy constructors.
Database
You can name your database "payroll_db". Create your database and tables using your Java Program when it is running for the first time if not exist. Run search queries and extraction of records for displaying reports using prepared statements.
Note: The primary keys are generated during the programmatic creation of the tables and used for other database operations. The primary keys can be auto- incremented integer values. Create an ERD to understand the relationship between tables.
You can use a SQL query to initialise the auto-incremented primary key value to a specific number.
Example: TABLE_SET_FIRST_EMPLOYEE_ID = "ALTER TABLE EMPLOYEE AUTO_INCREMENT = 1001";
Execute the query as shown below after executing the query to create Table. statement.executeUpdate(TABLE_SET_FIRST_EMPLOYEE_ID);
3. Coding
Include necessary accessor, mutator methods, constructors, and toString() method for each class. Also, follow good coding practices, using meaningful names, camel case notation for naming, constants as necessary, and include meaningful comments. You can use NetBeans or another IDE to develop your application.
Follow the coding standards given in the Unit website. Once you have created your UML class diagrams with correct attributes, you can use your IDE to generate most of the methods such as constructors, getters, and setters. The auto-generated toString() method will not give correct display format. Write your own toString() method.
4. Report
You should submit a document file (.doc or .docx) containing the following details.
1. Use case Diagrams.
2. UML class diagrams for the classes
This should show the attributes, methods, and data types, and association with other classes.
3. ERDs
4. Test plan showing input data, expected results, and actual results.
5. Evidence of testing including some screen shots.
6. Write a brief description of the quality aspects you have chosen and how they are followed in your design and implementation.