Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lecture 4: Software Architecture (Importance (Inhibit or enable a…
Lecture 4: Software Architecture
Architectural life-cycle
Architectural Requirements
Architecturally significant requirements (ASR)
Important functionality
constraints
quality attributes
Architectural design
Good design is one that satisfy the drivers
Architectural Documentation
some level of preliminary documentation (or sketches)
Architectural evaluation
Typically done informally and internally
important projects is advisable to have formal evaluation done by an external team.
Architectural Implementation/conformance checking
Architect to tweak design
System grows
requirements evolve
Major Responsibility
Ensure conformance of the code to the design
Structures and Views
Module
Modules are assigned areas of functional responsibility
Answered
What is the primary functional responsibility assigned to each module?
What other software elements is a module allowed to use?
What other software does it actually use and depend on?
What modules are related to other modules by generalization or specialization (i.e. inheritance) relationships?
Component and Connector
Decisions as to how the system is to be structured as a set of elements that have runtime behavior (components) and interactions(connectors).
Answered
What are the major executing components and how do they interact at runtime
What are the major shared data store
What parts of the system are replicated?
How does data progress through the system?
What parts of the system can run in parallel?
Can the system's structure change as it executes and, if so, how?
Allocation
Describe the mapping from software structures to the system's environments.
Organizational
Developmental
Installation
Execution
Answered
What processor does each software elements execute on?
In what directories of files is each element stored during development, testing and system building?
What is the assignment of each software element to development teams?
Which Structures are Architectural
A structure is architectural if it supports reasoning about the system and the system's properties
The availability of the system in the face of faults
The difficulty of making specific changes to the system
The responsiveness of the system to user request
Functionality achieved by the system
Importance
Inhibit or enable a system's driving quality attributes
decisions made allow one to reason about and manage change as system evolves
analysis of architecture enable early prediction of a system's qualities
Documented architecture enhances communication among stackholders
Architecture influences the structure of organization, and vice-versa
Allow project manager to reason about the cost and schedule
Architecture can be created as a transferable, reusable model that forms the heart of a product line
focuses on assembly of components
Restricting design alternatives, architecture channels the creativity of developers, reducing design and system complexity.
Architecture can be foundation for training a new team member
Architecture is an Abstraction
Selects certain details and suppresses others
Architecture includes Behavior
how elements interact with each other
Does not mean exact behavior and performance of every element must be documented in all circumstances.
Role of Architect
prerequisites
leadership
Communication
Negotiation
Techinical skills
Project skills
Analysical skills
Intimately involved in
Conception
Business jusdification
Design
Creation
Operation
Maintenance
Retirement