Enterprise Java Development@TOPIC@

Chapter 20. Project 1 Grading

Your project will be graded on completeness and quality of product. In order for you to receive full credit in each area, it must be a) complete, b) done well, and c) tested. The breakdown of grading will be as follows:

The following table contains examples of where projects have lost points in the past. Of course, each project submitted can introduce new issues or different severity levels of the same issues. Do not treat this as a complete list.

Table 20.1. Sample Lost Points

README   
Not provided10  
Projects cleanly builds with Maven   
groupIds, schema, java packaging, etc do not have a project-specific name mangler2  
Avoidable build errors2  
Key areas not building10  
Poluting project with do-nothing tests or tests that are not tests2  
Managing multiple copies of the same source file.1  
Large commented out blocks of code.2-5  
Non-portable references to external resources (e.g., ingested file)2  
Managed Schema   
Database columns not well defined and constrained (e.g., FKs, non-null, max size)1  
Improper use of DATE, TIME, and/or TIMESTAMP 1  
No definition of any indexes2  
Business Objects   
Improper/no TemporalType declaration for Dates1  
PK classes (if exist) did not implement required constructs1  
Use of Validation API   
Missing any declaration of validation criteria in BOs3  
Not explicitly performing validation2  
JPA DAO and JPA O/R Mapping   
Missing key relationships5  
Managing transactions in DAO1  
Relationships should not be modeled as entities2  
Using provider-specific mechanisms over JPA-provided technique1  
Not honoring dependencies. Attempt to delete entities with incoming relationships/FKs.1  
Walking the object tree functionally works but using a JPA-QL query would be much cleaner and more efficient. 2  
Ingest   
Re-used IDs from ingested XML file and did not generate IDs local to project2  
Did not include a unit test that *verified* injest worked1  
Business Logic   
Implemented stateful logic (Wrong!)5  
No separate testing of business logic. Relied too much on end-to-end as unit test.1  
Managing transactions in business logic1  
Did not implement all methods required for end-to-end1  
Not exhibiting good command of what it means for an entity to be managed and what you do and don't need to do in that state 1  
Persisting BOs from other application. Not preserving separation between applications.1  
End-to-end Integration Test   
Poluted, hard to follow, too much extra stuff2  
Missing resetAll and populate at start of scenarios5  
Missing step X1