software architecture in practice
DESCRIPTION
Software Architecture in Practice. Part One: Envisioning Architecture. 2nd Ed. Len Bass, Paul Clements, Rick Kazman. The Architecture Business Cycle. For decades, software designers have been taught to build systems based exclusively on the technical requirements. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/1.jpg)
Software Architecture in Practice
Part One:Envisioning Architecture
2nd Ed.Len Bass, Paul Clements, Rick Kazman
![Page 2: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/2.jpg)
The Architecture Business Cycle
•For decades, software designers have been taught to build systems based exclusively on the technical requirements.•Software architecture encompasses the structures of large software systems:
• abstract view• eliminates details of implementation, algorithm, & data
representation• concentrates on the behavior & interaction of “black box”
elements
![Page 3: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/3.jpg)
Definition
The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
![Page 4: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/4.jpg)
Architecture Business Cycle (ABC)
•Quick Exercise :• What is the relationship of a system’s software
architecture to the environment in which the system will be constructed and exist?
![Page 5: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/5.jpg)
Architecture Business Cycle (ABC)
•Answer:• Software architecture is a result of technical, business,
and social influences.• In turn, it affects each of these environments.
EnvironmentArchitecture
![Page 6: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/6.jpg)
Where do Architectures Come From?
•The result of a set of business and technical decisions.•In any development effort, the requirements make explicit some - but only some - of the desired properties of the final system.•Failure to satisfy non-documented constraints can cause as many problems as if it functioned poorly.
![Page 7: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/7.jpg)
Architectural Influences•Stakeholders
• each stakeholder has different concerns & goals, some contradictory
•Development Organization• immediate business, long-term business, and organizational
structure (staff skills, schedule, & budget)
•Background & Experience of the Architects• repeat good results, avoid duplicating disasters, architect’s
education and training, and exposure to successful architectural pattern
•The Technical Environment• standard industry practices or common SE techniques
![Page 8: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/8.jpg)
Figure 1.2 Influence of stakeholders on the architect
Architectural Influences
![Page 9: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/9.jpg)
Ramifications of Influences•Almost never are the properties required by the business & organizational goals consciously understood, let alone fully articulated.
• Architects need to know & understand the nature, source, and priority of constraints on the project as early as possible.
•Architects must identify & actively engage the stakeholders to solicit their needs & expectations.
• Use architecture reviews & iterative prototyping.
Lecture3
![Page 10: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/10.jpg)
Book’s Main Message
•Architectures affect the factors that influence them.
• The relationships among business goals, product requirements, architects’ experience, architectures, and fielded systems form a cycle with feedback loops that a business can manage:
• to handle growth, to expand enterprise area, and to take advantage of previous investments in architecture & system building.
![Page 11: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/11.jpg)
Software Processes & the ABC
•What activities are involved in creating a software architecture, using that architecture to realize a design, and then implementing or managing the evolution of a target system or application?
![Page 12: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/12.jpg)
Architectural Activities
•Creating the Business Case for the System•Understanding the Requirements•Creating or Selecting the Architecture•Communicating the Architecture•Analyzing or Evaluating the Architecture•Implementing Based on the Architecture•Ensuring Conformance to an Architecture
![Page 13: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/13.jpg)
What makes a Good Architecture?
•No such thing as an inherently good or bad architecture.•Architectures are more or less fit for some stated purpose.•Architectures can be evaluated - one of the great benefits of paying attention to them - but only in the context of specific goals.•Rules of Thumb: process & product (structural) recommendations
![Page 14: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/14.jpg)
Rules of Thumb (pp 15 & 16)
•Process Recommendations:• include functional requirements and a prioritized list of
quality attributes the system must satisfy• analyze & formally evaluate before it is too late to change
•Product Recommendations:• well-defined modules using principles of information
hiding & separation of concerns• separate modules that produce data from those that
consume data to increase modifiability & staged upgrades• write tasks or processes to allow easy reallocation, perhaps
at runtime
![Page 15: Software Architecture in Practice](https://reader035.vdocument.in/reader035/viewer/2022081415/568168b2550346895ddf7b53/html5/thumbnails/15.jpg)
Exercise
•Write-up and hand-in a short summary of you so your professor can get to know you better: Name, company, job/role/title, any architecting experience? •What are two important objectives you have for this class.