Good judgement is usually the result of experience. And experience is frequently the result of bad judgment. But to learn from the experience of others requires those who have the experience to share the knowledge with those who follow. – Barry LePatner
What is architecture
Architecture is the set of design decisions which, if made correctly can make the project successful where otherwise it would fail. It is the bridge between the (often abstract) business goals and the final resulting system.
Architecture is the set of structures needed to reason about the system.
Views of the structures are documented to explain then for a defined audience.
This means that depending on the audience different views of the same structure will be documented.
Different kind of architectures
We will discuss a couple disciplines related to software architecture. Enterprise architecture
Enterprise architecture is the description of the structure and the behavior of enterprise processes and the dataflows aligne d with the core business goals.
Frameworks as TOGAF and the Zachman Framework, distinguish between different enterprise architectural layers. System architecture
System architecture is the description of a system (both software and hardware). The main concern that is addressed is the in tegration of software and hardware in a complete device. Software architecture
Software architecture is the description of a software system. The main concern that is addressed is making all necessary des ign decisions to achieve the best possible match between all functional and non-functional requirements.
What makes a good architecture
All requirements below have to ensure a project is
- 1) Finished according to the predefined requirements
- 2) Ready within budget
- 3) Ready within schedule
- □ There has to be one architect leaded so that conception integrity and technical consistency is ensured
- □ The architecture has to be based on a prioritized list of well-specified quality attribute requirements.
- □ The architecture should be documented with Views tailored to different stakeholders.
- □ The architecture has to be evaluated to ensure that all desired requirements are addressed.
- □ The architecture should lent itself to incremental implementation.
- □ Try to avoid to depend on particular versions of a commercial product or tool
- □ Try to be consistent on all areas. (Data communication, module structures, naming conventions, documentation, …)
- □ All above have to be communicated very well with the several stakeholders
- □ Evaluations/code reviews have to ensure the system is built like it is intended.Quality attributesQuality attributes are the overall factors that affect run -time behavior, system design, and user experience. It is impossible to achieve the maximum level on all Quality attributes be cause some of them need opposite design decisions.
A main characteristic of a Quality attribute is that it is measurable.
For example: Availability can be expressed
- □ in a percentage that is reflecting the minimum uptime of a system.
- □ in the time that a system needs to detect an error
- □ in the time that a system needs to recover from an error.Examples of Quality attributes are □ Availability
□ Interoperability
□ Modifiability□ Performance □ Security
□ Testablility
□ Usability□ Scalability
□ Deployability □ Mobility
□ Monitorability
Losse notities Page 1
□ Monitorability □ Safety
□…