click below
click below
Normal Size Small Size show me how
Software des toolbox
Software design
| Question | Answer |
|---|---|
| System design | identifying large chunks of work that could be assigned to individual teams. |
| Object design | specifying the boundaries between objects. |
| Component | Reusable encapsulated well defined software. Cannot stand alone. |
| Subsystem | Encapsulated well defined stand-alone software. Might or might not be an application by itself. |
| Application | An end-usable piece of software. |
| System design strategies | 1) Layered (high cohesion) 2) Use case based (low coupling) 3) Mixed or balanced FE - use cases BE - layered |
| Toolbox | 1) Logical data model 2) Use case model 3) Communication model 4) Verification strategy |
| Logical data model | 1) What should be persisted 2) Only entities 3) No implementation details |
| System operation contracts | The interface is the code based operation contract Use strong typing. Make inline documentation (JavaDoc) have documentation close to code - easier to update. generates written code contracts. ETOs |
| Verification | We have JUnit for the backend. That is put in a singleton format in the suit run on the system. All these tests are running on the contract, that is running on the backend. |
| Communicational model | MVC + contract, contract + unit test, setup with bridge, system operation contract (interface + documentation), DTOs ETOs, Remote interface |
| Use case model | 1) Use case diagram 2) Detailed Used Case 3) System Sequence diagram 4) System operational contracts |