Enterprise Java Development@TOPIC@
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:
README provided that describes where each requirement satisfied: 10pts
Projects cleanly builds with Maven: 15pts
Managed schema to include declaration of key indexes (i.e., defined in a set of files and explicitly used to coldstart and initialize the database at defined times): 5pts
Business Objects: 10pts
Use of Validation API: 5pts
JPA DAO and JPA O/R Mapping: 25pts
Ingest: 10pts
Business Logic: 10pts
End-to-end Integration Test: 10pts
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 provided | 10 |
Projects cleanly builds with Maven | |||
---|---|---|---|
groupIds, schema, java packaging, etc do not have a project-specific name mangler | 2 | ||
Avoidable build errors | 2 | ||
Key areas not building | 10 | ||
Poluting project with do-nothing tests or tests that are not tests | 2 | ||
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 indexes | 2 |
Business Objects | |||
---|---|---|---|
Improper/no TemporalType declaration for Dates | 1 | ||
PK classes (if exist) did not implement required constructs | 1 |
Use of Validation API | |||
---|---|---|---|
Missing any declaration of validation criteria in BOs | 3 | ||
Not explicitly performing validation | 2 |
JPA DAO and JPA O/R Mapping | |||
---|---|---|---|
Missing key relationships | 5 | ||
Managing transactions in DAO | 1 | ||
Relationships should not be modeled as entities | 2 | ||
Using provider-specific mechanisms over JPA-provided technique | 1 | ||
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 project | 2 | ||
Did not include a unit test that *verified* injest worked | 1 |
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 logic | 1 | ||
Did not implement all methods required for end-to-end | 1 | ||
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 stuff | 2 | ||
Missing resetAll and populate at start of scenarios | 5 | ||
Missing step X | 1 |