Software Architecture life-cycle activities
Architectural requirements, Design, Documentation, Evaluation, Implementation/Conformance checking
Architect Role
Leadership, Communication, Negotiation, Technical Skills, Project Skill, Analytical Mind
Architectural Drivers
Design Purpose, Quality Attributes, Primary Functionality, Architectural concerns, Constraints
What is designing in Software Architecture
make decisions to transform the architectural drivers into structures.
Levels of Design
Architectural Design, Element Interaction Design, Element Internals Design
Design Importance
Without doing some architectural thinking and some early design work, you cannot confidently predict project cost, schedule, and quality
What is a Scenario?
The System response to a stimulus.
Quality Attribute Scenario
is a short description of how a system is required to respond to some stimulus.
Quality Attributes eliciting, specifying, prioritizing, and validating Techniques
Quality Attribute Workshop, Mission Thread Workshop, The Utility Tree
The six parts of a Quality Attribute Scenario
Source of stimulus, stimulus, artifact, environment, response, response measure.
Traditional Requirements Elicitation Techniques
Joint Requirements Planning (JRP), Joint Application Design (JAD), discovery prototyping, accelerated system analysis
Architectural Concerns
Aspects that are not expressed as the traditional requirements.
General Concerns
establishing an overall system structure, the allocation of functionality to modules, the allocation of modules to teams, organization of the code base, supporting delivery, deployment, updates.
Specific Concerns
Exception management, Dependency Management, Configuration Management, Logging, Authentication, Authorization, Caching
Constraints
Mandated Technologies, Other Systems, laws/standards, developers, deadlines, backward compatibility