Professional Documents
Culture Documents
comprise
✓ software elements
✓ the relationships among them
✓ the externally visible properties of those elements (assumptions that
other elements can make of an element)
• Software architecture is a result of
- technical
- business and
- social influences
• Architecture Business Cycle: cycle of influences from the environment to
the architecture and back to the environment
• Architectures are influenced by
o Stakeholders
o Development Organization
o Background & Experience of the Architects
o The Technical Environment
• What Do Architectures Influence?
- structure of the developing organization | Project context
- goals of developing organization | Business context
- customer requirements for the next system | Technical context
- architect’s experience with subsequent systems | Professional
context
- software engineering culture | technical environment)
• Software Architecture Activities
✓ Creating the business case for the system
✓ Understanding the requirements from stakeholders
✓ Creating or selecting the architecture via conceptual integrity
✓ Communicating the architecture to all stakeholders
✓ Analyzing or evaluating the qualities of the architecture
✓ Implementing the system based on the architecture faithfully
according to the structures and interaction protocols constrained
✓ Ensuring that the implementation conforms to the architecture
• What makes a Good Architecture? Rules of thumb/observations that
should be followed
1. Process recommendations
✓ single architect or small group of architects
✓ gather functional requirements and prioritized list of quality
attributes
✓ well documented, with at least one static view and one
dynamic view
✓ reviewed by the system’s stakeholders
2. Product recommendations
✓ well-defined modules based on information hiding and
separation of concerns
✓ Quality attributes should be achieved using well-known
architectural tactics
✓ architecture should be independent of particular versions of
commercial products or tools
✓ Modules that produce data should be separate from modules
that consume data
• box-and-arrow diagrams, system consists of four elements
o Prop Loss Model (MODP)
o Reverb Model (MODR)
o Noise Model (MODN)
o Control Process (CP)
• Three stages that capture characteristics of an architecture, on the way
from box-and-arrow to full software architectures
1. Architectural Patterns/ architectural styles
✓ description of element & relation types together with a set of
constraints on how they may be used
✓ exhibit known quality attributes, and are a reuse of experience
✓ it is architect’s first major design decision
✓ example: client-server
2. Reference Models
✓ division of functionality together with data flow between the
pieces
✓ arise from experience, and are thus a characteristic of mature
domains
✓ Example: Compilers (lexical analysis, code generation),
Networks (the OSI reference model)
3. Reference Architectures
✓ reference model mapped onto software elements and the data
flows between them
RM:
A reference model: defines a way of decomposing
functionalities
A reference architecture: defines a way of mapping a
functionalities on subsystems/architectural components
• Structures and Views
▪ View: a representation of a coherent set of architectural elements,
consisting of a set of elements and the relationships among them
▪ Structure: is the set of elements itself, as they exist in software or
hardware
• Why is Architecture Important? from a technical perspective
- Communication among stakeholders
- Early design decisions, earliest point decisions analyzed
- Transferable abstraction of a system/ transferable reusable model