| 1 |
SOLID principles applied; no god classes |
Mandatory |
Pass |
Each class has one reason to change: one host API each (GiteaClient, GitHubClient), local work (LocalProjectBuilder), the framework (FrameworkInstaller), prompts for credentials (CredentialCollector), the project .env (EnvFileWriter), the report (SummaryReport). ProjectCreator has two operations and no data. The clients share GitHost instead of repeating its three operations. |
| 2 |
Visibility markers correct and consistent |
Mandatory |
Pass |
Every attribute and operation has + or -; the only private operation is GiteaClient.requestSync, which no other class calls. Enumeration literals carry no marker, as is usual. |
| 3 |
Association, aggregation, composition and dependency correctly distinguished |
Mandatory |
Pass |
Composition where the part cannot outlive the whole (Run, Configuration, LocalProject and their parts); plain association for the links between independent objects; dependency for "creates" and "asks"; generalization for Repository and GitHost. No aggregation is used. |
| 4 |
Multiplicities and navigability specified on all associations |
Mandatory |
Pass after fix |
Found during this review: most associations gave only the target multiplicity. Fixed: both ends now carry a multiplicity and every association has one arrow. Dependencies carry none, as UML does not give them one. |
| 5 |
Applied design patterns annotated |
Optional |
Pass |
The Pattern Annotations table names Controller, Facade, Pure Fabrication, Creator, Protection from variations and a data transfer object. |
| 6 |
Method signatures traceable to Operation Contracts and Sequence Diagrams |
Mandatory |
Pass |
The Method Traceability table has a row for each of the 20 operations, each naming the SD-001 message and the contract postcondition. SD-001 was aligned in the same change (createRepository(request, license), compose(request) and others). |
| 7 |
Class names consistent with the Domain Model concepts they refine |
Mandatory |
Pass |
The IT terms of DICT-001 are used (ProjectRequest for Project, Credential for Access Token, EnvFile for Credentials File, and so on). GitHost is a class of its own, as the dictionary has one IT term for the PO term. The system concepts without a PO term (Run, ToolCheck, PreflightResult, PromptSet, InstallResult) are marked as such in the class table. |
| 8 |
No circular dependencies |
Optional |
Pass |
Stated and argued in the Dependency Check; Summary points at ProjectRequest and nothing points back; the helper classes depend on the data classes and the controller, never the other way round. |