Team-based Enterprise Application Development Project
The Assignment 2 Specification and Marking Criteria
Team-based Enterprise Application Development Project
This assignment is a team-based software development project. You will work in a small team for the design and development of a 3-tier enterprise application. You will practise to work collaboratively and communicate effectively as part of a productive team.
You will need to negotiate with your fellow students to form a team of at least 2 students and at most 3 students; each team needs to elect a team leader. The online students will be facilitated by the unit coordinator to form teams.
Warning: the teamwork (including forming a team) of this assignment is compulsory. In some personal particular circumstances including that you cannot form yourself into a team, you may ask the unit coordinator for attempting the assignment individually. However, you will lose the 10 marks that are allocated for the effective teamwork.
Team Membership Agreement
By default, a team works collaboratively; with all members performing their duties timely. The team leader submits the project and each member must submit his/her own teamwork report of Template A (see Part 2 of this document) by the assignment due time.
A large emphasis of this group project is solving minor collaborative problems as a part of teamwork and this should be reflected upon in the teamwork report. Each team should minimise contacts with lecturer/tutor/coordinator for minor collaborative problems, as too many contacts show the ineffectiveness or inefficiency of the team for solving minor problems and will result in loss of marks.
Each team member should use the following agreement if a major problem arose. The unit coordinator should be contacted as a last resort, only when the dispute cannot be solved by the following agreement.
When forming a team, each team member must agree that the whole team is to take its own risk when including an individual member and that the project progress can be delayed by that individual member. Some circumstances are:
- A team member cannot take his/her allocated duty normally for a particular reason, e.g. health condition.
If an extension is given to that particular member, the extension is applied to the whole team. If there is no extension granted for that particular member, the whole team is to take the risk of a late penalty. In addition, the whole team is to take its own risk of any other impact, e.g. influence on schedule of other units of study, which may be caused by the improper delivery of duty of that team member.
- The other members of a team are to complete the whole project if a team member leaves in the middle of project for any sound reasons or no reasons.
- If a team splits into individuals in the middle of the project, each individual needs to complete the whole project separately.
- If a team member does not take his/her allocated duty and cannot be contacted, the team can provide evidence of 3 contacts without responses or other relevant evidence to the unit coordinator. The unit coordinator reserves the final right to decide whether the member should be excluded from the team. However, as mentioned in point 2 previously, the rest of the team needs to complete the whole project if a team member is excluded from the team.
- Any individual, who separates/quits from a team for any reasons in the middle of the project, needs to complete the whole project and the teamwork report of Template B (see Part 2 of this document).
This assignment consists of 2 parts.
Part 1: Software Development and Documentation.
This part is to design, implement, test and document a 3 tier enterprise application. The application scenario and project specification are as follows.
The application scenario
An online car sale company needs to implement an e-business system. The system is a typical 3-tier enterprise application that integrates a presentation tier, a business tier and a persistence tier. After user requirement and budget analysis, the executive of IT Department of the company has decided to use Java EE open source technology and related platforms and tools for the implementation of the system. As an officer of the IT Department of the company, you are designated as the developer for the system core. To accomplish this task, you will need to design, implement and test and document the e-business system. The project specification
- The persistence tier
- The company sells both brand new cars and used cars, and may extend to more products in the future through this general framework. A major assumption is that brand new car and used car share some common properties. For example, both brand new cars and used cars have the properties of Make, Model, Drive Type, Colour, Transmission, Engine, Fuel Type, Doors and Seats etc. However, a brand new car has speciality properties such as Warranty, Extending Warranty and Roadside Assistance Packages; a used car has speciality properties such as Odometer, Rego No., Rego Expiry, Service History and VIN (Vehicle Identification Number) and Car History etc.
- The car information must be persisted into a Derby database. You are required to use Java Persistence API (JPA) to persist the car information into a Derby database. In order to reduce code redundancy, you should use inheritance mapping. That is, in your design and implementation, the Java entity classes should be at least 3 with 1 class as the super class to abstract the common properties and operations for both brand new car and used car and the other 2 classes as the sub-class for the specialty of a brand new car or a used car. You are required to use the Joined-Subclass Strategy (detailed from page 170 of the textbook) in your design and implementation.
- The company needs to store customer details and customer orders. You are required to use entities to persist customer details and customer orders. The relationship between a customer and his/her orders must be one-to-many (detailed from page 156 of the textbook), i.e. a customer can have multiple orders.
- The business tier
Develop the business tier by using Enterprise Java Beans (EJB). The business tier will process the data persistence or retrieval requests from users and interact with the persistence tier for accomplishing the requests.
Note: to interact with the persistence tier, the EJBs need to use Java Persistence Query Language (JPQL) to query entities and return the processed results to the presentation tier.
- The presentation tier
Develop the presentation tier by using JavaServer Faces (JSF). The presentation tier will provide a web-based user interface, which will allow users to enter product details, customer details and order details and retrieve these persisted information later on. Presenting exception messages, e.g. a user doesn’t enter data for a required textbox, is necessary and required for this tier.
Note: you need to review Backing Beans as the core component of presentation tier and its functions for JSF pages’ navigation (detailed from page 354 of the textbook) and do some personal research if necessary.
Note: a separate document for the demonstration of the system functions is available on the unit Moodle site. You will need to use that demonstration document as a part of the assignment specification. You will need to ensure that you fully understand the scenario and project specification before developing the project; you will also need to ensure the developed system fulfilling the function requirements as shown in the demonstration document.
The whole team will need to negotiate and divide the whole project into multiple tasks, which are allocated to the team members. The team members need to communicate frequently so that each member’s software modules can be integrated into a complete system to fulfil the project specification.
Submission for Part 1
The submission of this part includes:
- Documentation
- The diagram of architecture: it should include major components from all 3 tiers, which are depicted by using any formal method e.g. UML.
- The typical workflow: you need to use an example workflow, e.g. creating a customer’s order, to describe the tier components interaction and JSF pages navigation.
- The end user manual and test instruction: you are required to provide detailed instructions about how a user would compile and deploy the software and use the software to persist at least 2 brand new cars and 2 used cars, 2 customers, where each customer puts in at least 2 orders, one for a brand new car and the other for a used car.
- Software
You will need to provide the complete implementation code of the 3 tiers, including Java source code and executable files, persistence files and JavaServer Faces xhtml pages. You need to provide your implementation by a NetBeans project, which must satisfy:
- The project can be compiled directly without any further revision/re-development or debugging.
- The generated .war application from the project can be executed on a separate GlassFish server (not the NetBeans embedded one) to interact with a separate Derby database (not the NetBeans embedded one).
Only one submission of this part from the team leader is required. The complete project and the documents will need to be compressed into a zip file for the team leader to submit. This part will be marked and the same marks will be given to all team members.
Part 2: Teamwork Report
A student, who completes the whole project as a member of a productive team, is to prepare a document in the following format and address the following questions.
Template A
- Team Details
- Team Name (optional):
- Your Name and Student ID:
- Team Leader (Name and Student ID):
- Other Team Members (Name and Student ID):
- Teamwork Report
- Describe team forming, task assigning, your role and responsibility and the project timeline
- List 2 technical problems in the project development and describe how the problems have been solved by the team.
- List 2 collaborative problems in the teamwork and how the problems are negotiated and solved by the team.
- Describe and justify what are important for the success of teamwork.
- Describe the communication skills that you have developed in this small team-based project.
A student, who separates/quits a team in the middle of project, is to prepare a document in the following format and address the following questions.
Template B
- Team Details
- Team Name (optional):
- Your Name and Student ID:
- Team Leader (Name and Student ID):
- Team Members (Name and Student ID):
- Teamwork Report
- Describe team forming, task assigning, your role and responsibility and the project timeline
- Describe what major problems that cause you leave the team or cause the team break into individuals.
- Describe and justify the impact on you and other team members caused by your leave or the break of the team
- Describe and justify what are important strategies for successful teamwork.
- Describe and justify how you can avoid such hindrances of teamwork in future opportunities of teamwork.
Note: this part is to address a team member’s own individual experience with the teamwork. The document is not shared between the team members; each team member needs to submit his/her own document individually. The same/copying contents of this part by 2 or more team members will be treated as plagiarism.
Submission for Part 2
Every team member is to prepare the report in a Microsoft Word document. This part will be marked for each team member. You must submit your report via the unit Moodle site. Any hardcopy or email submission will not be accepted. After the marked assignments are returned, any late submissions will not be accepted.
The Marking Criteria
The marking criteria of this assignment are detailed in the following table.
Marking Criteria |
Available Marks |
Part 1: Software and Documents (team leader submission) |
40 |
Documentation |
16 |
1. Whether the architecture diagram is sound for the given application scenario |
3 |
2. Description of a typical workflow for the given application scenario |
3 |
3. Whether the user’s manual covers compiling and deploying of the project |
2 |
4. Whether the user’s manual covers the Products (the brand new car and used car) functions in details and with necessary screenshots |
4 |
5. Whether the user’s manual covers the Customer functions in details and with necessary screenshots |
2 |
6. Whether the user’s manual covers the Order functions in details and with necessary screenshots |
2 |
Software Implementation |
24 |
1. Whether the project is compilable and runnable |
2 |
2. Whether the implementation of entities, managed (backing) beans, EJBs and JSF pages is consistent with the project specification |
4 |
3. Whether the data persistence is functioning well and reliable |
4 |
4. Whether the data retrieval is functioning well and reliable |
4 |
5. Whether the presentation is functioning well and with necessary exception messaging |
4 |
6. Whether the JSF page navigation is working well with the managed (backing) beans |
2 |
7. Whether all the business logic is delegated to EJBs |
2 |
8. Source code in-line comments, layout and readability |
2 |
Part 2: Teamwork and Report (individual submission, either Template A or Template B) |
10 |
Whether the student performs a successful teamwork |
2 |
Template A | |
1. Description of team forming, task assigning, your role and responsibility and the project timeline |
2 |
2. List 2 technical problems in the project development and describe how the problems have been solved by the team |
2 |
3. List 2 collaborative problems in the teamwork and how the problems are negotiated and solved by the team |
2 |
4. Describe and justify what are important strategies for successful teamwork |
1 |
5. Description of the communication skills that you have developed in this small team-based project |
1 |
Template B | |
1. Describe team forming, task assigning, your role and responsibility and the project timeline |
2 |
2. Describe what major problems that cause you leave the team or cause the team break into individuals. |
2 |
3. Describe and justify the impact on you and other team members caused by your leave or the break of the team |
2 |
4. Describe and justify what are important strategies for successful teamwork |
1 |
5. Describe and justify how you can avoid such hindrances of teamwork in future opportunities of teamwork |
1 |
Subtotal for Assignment 2 |
50 |
Late Penalty for Part 1 (applied to all team members) |
-2 (5% of 40) for each calendar day (either full or part) |
Late Penalty for Part 2 (applied to individual team members) |
-0.5 (5% of 10 ) for each calendar day (either full or part) |
Plagiarism Related Penalty | |
Total for Assignment 2 |