Design Class Diagram
Metadata
Version History
| Date |
Status |
Author |
Reviewer |
Change |
Commit |
| 2026-10-07 |
Deprecated |
Jens Tirsvad Nielsen |
S02 |
Default configuration files: --config and --env, else ./config.env and ./.env in the working folder, else the checkout's |
0ab5006 |
| 2026-10-07 |
Accepted |
Jens Tirsvad Nielsen |
S02 |
.env is optional (as in UC-001 extension 2b): only config.env is required; a .env found nowhere means the token is asked |
24f1507 |
Purpose and Scope
Covers UC-002. Adds the classes that start the script through a command link. ProjectCreator, Configuration and Run are the classes of DCD-001 and change only as stated under Method Traceability. The consolidated diagram is DCD-002.
Diagram
Class Table
| Class |
Refines (Domain Model concept) |
Responsibility |
Attributes |
Operations |
Launcher |
Command Link (the object that follows it) |
Follows the command link to the checkout, takes the folder the Maintainer stands in, chooses the two configuration files, and starts the run. |
none |
resolveCheckout, currentFolder, locateConfigFiles, startFromWorkingFolder |
Checkout |
Checkout |
Names the folder that holds the script's own files and the default config.env and .env. |
path |
configFile, envFile |
WorkingFolder |
Working Folder |
Names the base of the default directory of the new project and the files it may hold. |
path |
configFile, envFile |
ConfigFiles |
none (system concept of [OC-002]) |
Carries the two files chosen for the Configuration; envFile is absent when no credentials file was found. |
configFile, envFile |
none |
The concept Command Link has no class: it is a link the Maintainer makes with the shell, and the system only follows it.
Method Traceability
| Method signature |
Operation Contract / SD message |
Launcher.startFromWorkingFolder(configPath, envPath) : PromptSet |
SD-002 startFromWorkingFolder; P1, P6 |
Launcher.resolveCheckout(invocation) : Checkout |
SD-002 resolveCheckout(invocation); P2 |
Launcher.currentFolder() : WorkingFolder |
SD-002 currentFolder(); P3 |
Launcher.locateConfigFiles(configPath, envPath, checkout, workingFolder) : ConfigFiles |
SD-002 locateConfigFiles(...); P5 |
WorkingFolder.configFile() : Path [0..1], WorkingFolder.envFile() : Path [0..1] |
SD-002 locateConfigFiles; P5 |
Checkout.configFile() : Path, Checkout.envFile() : Path |
SD-002 locateConfigFiles; P5 |
ProjectCreator.startProjectCreation(workingFolder, configFiles) : PromptSet |
SD-002 startProjectCreation; P4, P6, P7. Replaces the signature of DCD-001 by adding workingFolder and configFiles |
Pattern Annotations
| Pattern |
Classes |
Rationale |
| Controller |
Launcher |
One class takes the system operation of UC-002 |
| Information Expert |
Launcher, Checkout |
The launcher knows the invocation; the checkout knows where its files are |
Dependency Check
Launcher depends on ProjectCreator, Checkout, WorkingFolder and ConfigFiles; none of them depends on Launcher, so no cycle is added.