Priorities in selecting SW Architectures
- Simplicity
- Don't Repeat Yourself (DRY)
- Law of Dementer (locality of concern)
- Clear and Simple Responsibilities
- Separation of Concerns
- Commonality versus Variability
- Clear and Simple Interfaces. System Design is Interface Design
- Favour Composition over Inheretance
- Delay decision as late as possible
- Encapsulate what might change
- Model View Controller (MVC)
- Bottom up design - Engineers start with the details and manage to system
- Top Down design - Architect defines system shape and engineers fill in the components
- Round Trip - merges Top Down and Bottom Up
Buzz-words:
- Loose coupling
- High Cohesion
- Existing solution Frameworks
- UML / AADL / Structured Programming
- MDA
- TDD
....
- Client Server & Interprocess comms (pipes, filters, sockets)
- Event Based & (Pure & Extended) Finite State Machines
- ADTs
- Layering (OSI)
- Corba ...
UML Diagrams are :
- Class & SubClass Diagrams (is-a, has-a, ...)
- Interaction Diagrams / Message Sequence Charts / Collaboration Diagrams
- Use cases / activity diagrams
- State Charts
Old code :
- defined and reliable
- original architecture may be lost, or eroded, making evolution difficult
No comments:
Post a Comment