SlideShare a Scribd company logo
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Architectures
in Context
Software Architecture
Lecture 2
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
2
Fundamental Understanding
 Architecture is a set of principal design decisions about a
software system
 Three fundamental understandings of software
architecture
Every application has an architecture
Every application has at least one architect
Architecture is not a phase of development
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
3
Wrong View: Architecture as a
Phase
Treating architecture as a phase denies its
foundational role in software development
More than “high-level design”
Architecture is also represented, e.g., by object code,
source code, …
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
4
Context of Software Architecture
 Requirements
 Design
 Implementation
 Analysis and Testing
 Evolution
 Development Process
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
5
Requirements Analysis
 Traditional SE suggests requirements analysis should
remain unsullied by any consideration for a design
 However, without reference to existing architectures it
becomes difficult to assess practicality, schedules, or
costs
In building architecture we talk about specific rooms…
…rather than the abstract concept “means for
providing shelter”
 In engineering new products come from the observation
of existing solution and their limitations
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
6
New Perspective on Requirements
Analysis
 Existing designs and architectures provide the solution
vocabulary
 Our understanding of what works now, and how it works,
affects our wants and perceived needs
 The insights from our experiences with existing systems
helps us imagine what might work and
enables us to assess development time and costs
  Requirements analysis and consideration of design
must be pursued at the same time
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
7
Non-Functional Properties (NFP)
 NFPs are the result of architectural choices
 NFP questions are raised as the result of architectural
choices
 Specification of NFP might require an architectural
framework to even enable their statement
 An architectural framework will be required for
assessment of whether the properties are achievable
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
8
The Twin Peaks Model
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
9
Design and Architecture
 Design is an activity that pervades software development
 It is an activity that creates part of a system’s architecture
 Typically in the traditional Design Phase decisions concern
A system’s structure
Identification of its primary components
Their interconnections
 Architecture denotes the set of principal design decisions
about a system
That is more than just structure
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
10
Architecture-Centric Design
 Traditional design phase suggests translating the
requirements into algorithms, so a programmer can
implement them
 Architecture-centric design
stakeholder issues
decision about use of COTS component
overarching style and structure
package and primary class structure
deployment issues
post implementation/deployment issues
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
11
Design Techniques
 Basic conceptual tools
Separation of concerns
Abstraction
Modularity
 A widely adapted strategy
Object-oriented design
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
12
Object-Oriented Design (OOD)
 Objects
Main abstraction entity in OOD
Encapsulations of state with functions for accessing
and manipulating that state
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
13
Pros and Cons of OOD
 Pros
UML modeling notation
Design patterns
 Cons
Provides only
One level of encapsulation (the object)
One notion of interface
One type of explicit connector (procedure call)
 Even message passing is realized via procedure calls
OO programming language might dictate important design
decisions
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
14
Implementation
 The objective is to create machine-executable source
code
That code should be faithful to the architecture
Alternatively, it may adapt the architecture
How much adaptation is allowed?
Architecturally-relevant vs. -unimportant
adaptations
It must fully develop all outstanding details of the
application
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
15
Faithful Implementation
 All of the structural elements found in the architecture
are implemented in the source code
 Source code must not utilize major new computational
elements that have no corresponding elements in the
architecture
 Source code must not contain new connections between
architectural elements that are not found in the
architecture
 Is this realistic?
Overly constraining?
What if we deviate from this?
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
16
Unfaithful Implementation
 The implementation does have an architecture
It is latent, as opposed to what is documented.
 Failure to recognize the distinction between planned and
implemented architecture
robs one of the ability to reason about the
application’s architecture in the future
misleads all stakeholders regarding what they believe
they have as opposed to what they really have
makes any development or evolution strategy that is
based on the documented (but inaccurate)
architecture doomed to failure
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
17
Implementation Strategies
 Generative techniques
e.g. parser generators
 Frameworks
collections of source code with identified places
where the engineer must “fill in the blanks”
 Middleware
CORBA, DCOM, RPC, …
 Reuse-based techniques
COTS, open-source, in-house
 Writing all code manually
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
18
Analysis and Testing
 Analysis and testing are activities undertaken to assess
the qualities of an artifact
 The earlier an error is detected and corrected the lower
the aggregate cost
 Rigorous representations are required for analysis, so
precise questions can be asked and answered
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
19
Analysis of Architectural Models
 Formal architectural model can be examined for internal
consistency and correctness
 An analysis on a formal model can reveal
Component mismatch
Incomplete specifications
Undesired communication patterns
Deadlocks
Security flaws
 It can be used for size and development time estimations
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
20
Analysis of Architectural Models
(cont’d)
 Architectural model
may be examined for consistency with requirements
may be used in determining analysis and testing
strategies for source code
may be used to check if an implementation is faithful
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
21
Evolution and Maintenance
 All activities that chronologically follow the release of an
application
 Software will evolve
Regardless of whether one is using an
architecture-centric development process or not
 The traditional software engineering approach to maintenance
is largely ad hoc
Risk of architectural decay and overall quality degradation
 Architecture-centric approach
Sustained focus on an explicit, substantive, modifiable,
faithful architectural model
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
22
Architecture-Centric Evolution
Process
 Motivation
 Evaluation or assessment
 Design and choice of approach
 Action
includes preparation for the next round of adaptation
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
23
Processes
 Traditional software process discussions make the
process activities the focal point
 In architecture-centric software engineering the product
becomes the focal point
 No single “right” software process for architecture-centric
software engineering exists
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
24
Turbine – A New Visualization
Model
 Goals of the visualization
Provide an intuitive sense of
 Project activities at any given time
 Including concurrency of types of development activities
 The “information space” of the project
Show centrality of the products
 (Hopefully) Growing body of artifacts
 Allow for the centrality of architecture
 But work equally well for other approaches,
including “dysfunctional” ones
Effective for indicating time, gaps, duration of activities
Investment (cost) indicators
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
25
Coding
Design
Requirements
Testing
Simplistic Waterfall,
Side perspective
time
The Turbine Model
“Core” of project
artifacts
Radius of rotor indicates
level of staffing at time t
Gap between rotors
indicates no project
activity for that ∆t
ti
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
26
Cross-section at time ti
Design
(activity)
Requirements
Design
doc
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
27
The Turbine Model
Waterfall example,
Angled perspective
time
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
28
A Richer Example
S1
Design/Build/
Requirements
Test/Build/
Deploy
Assess/…
Requirements/Architecture
assessment/Planning
Build/Design/
Requirements/Test
time
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
29
A Sample Cross-Section
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
30
A Cross-Section at Project End
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
31
Volume Indicates Where Time was
Spent
Design/Build/
Requirements
Test/Build/
Deploy
Assess/…
Requirements/
Architecture Assessment / Planning
Build/Design/
Requirements/Test
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
32
A Technically Strong Product-Line
Project
Assessment
Parameterization
Customization
Deployment
Capture of new work
Other
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
33
Visualization Summary
 It is illustrative, not prescriptive
 It is an aid to thinking about what’s going on in a project
 Can be automatically generated based on input of
monitored project data
 Can be extended to illustrate development of the
information space (artifacts)
The preceding slides have focused primarily on the
development activities
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
34
Processes Possible in this Model
 Traditional, straight-line waterfall
 Architecture-centric development
 DSSA-based project
 Agile development
 Dysfunctional process
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
35
Summary (1)
 A proper view of software architecture affects every
aspect of the classical software engineering activities
 The requirements activity is a co-equal partner with
design activities
 The design activity is enriched by techniques that exploit
knowledge gained in previous product developments
 The implementation activity
is centered on creating a faithful implementation of
the architecture
utilizes a variety of techniques to achieve this in a
cost-effective manner
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
36
Summary (2)
 Analysis and testing activities can be focused on and
guided by the architecture
 Evolution activities revolve around the product’s
architecture.
 An equal focus on process and product results from a
proper understanding of the role of software architecture

More Related Content

PPT
02 architectures in_context
PPT
Analysis of software architectures
PPTX
Agile architecture
PPT
Innovate 2013 Design on a Diet - session 2131
PPTX
Software architecture introduction
PPT
13 analysis of_software_architectures
PPTX
The Role of the Software Architect (short version)
PPTX
02 architectures in_context
Analysis of software architectures
Agile architecture
Innovate 2013 Design on a Diet - session 2131
Software architecture introduction
13 analysis of_software_architectures
The Role of the Software Architect (short version)

What's hot (20)

PDF
Accelerating rtl reuse
PPTX
Basics of Software Architecture for .NET Developers
PPTX
A Model-Based Systems Engineering Approach to Portfolio Management
PPTX
Reducing Technical Debt
PDF
Agile Product Line Engineering Literature Review
PPTX
PPT
27 people roles_and_teams
PDF
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
PPTX
Software Architecture Fundamentals Part-1 Architecture soft skill
PDF
L06 Architecting Activities
PPTX
Solution Architecture tips & tricks by Roman Shramkov
PPTX
System Architect and Rhapsody
PDF
The Role of IT Architect in Startup Company
PPT
Carol daniele
PPTX
Bhasin reinert barnes_golden
PPT
Aspect Oriented Programming
PDF
Keynote at-icpc-2020
PDF
Afrekenen met functiepunten
PDF
Qiang Yu Resume
DOCX
Mayuresh Warkhandkar_Resume
Accelerating rtl reuse
Basics of Software Architecture for .NET Developers
A Model-Based Systems Engineering Approach to Portfolio Management
Reducing Technical Debt
Agile Product Line Engineering Literature Review
27 people roles_and_teams
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Software Architecture Fundamentals Part-1 Architecture soft skill
L06 Architecting Activities
Solution Architecture tips & tricks by Roman Shramkov
System Architect and Rhapsody
The Role of IT Architect in Startup Company
Carol daniele
Bhasin reinert barnes_golden
Aspect Oriented Programming
Keynote at-icpc-2020
Afrekenen met functiepunten
Qiang Yu Resume
Mayuresh Warkhandkar_Resume
Ad

Similar to Cs 1023 lec 3 architecture (week 1) (20)

PPT
02_Architectures_In_Context.ppt
PDF
Lecture-1-Introduction.pdf
PPT
Cs 1023 lec 1 big idea (week 1)
PPT
Cs 1023 lec 1 big idea (week 1)
PPT
lecture7.ppt
PPT
lecture7.ppt
PPT
Cs 1023 lec 4 (week 1)
PPT
Cs 1023 lec 7 architecture (week 1)
PDF
Lecture-2-Architectural_Concepts.pdf
PDF
Software architect - roles & responsabilities
PPTX
NISI Agile Software Architecture Slide Deck
PDF
How to Speak the Language of Application Architecture
PPTX
Software Design And Architecture Introduction
PDF
The Language of Application Architecture
PDF
Design and Implementation in Software Engineering
PPTX
Software Engineering Architectural Design
PPTX
Software Architecture and Design
PPT
Object oriented sad-5 part i
PPT
01 the big_idea
PPTX
UNIT-3_SE_PPT1.pptx software engineering
02_Architectures_In_Context.ppt
Lecture-1-Introduction.pdf
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
lecture7.ppt
lecture7.ppt
Cs 1023 lec 4 (week 1)
Cs 1023 lec 7 architecture (week 1)
Lecture-2-Architectural_Concepts.pdf
Software architect - roles & responsabilities
NISI Agile Software Architecture Slide Deck
How to Speak the Language of Application Architecture
Software Design And Architecture Introduction
The Language of Application Architecture
Design and Implementation in Software Engineering
Software Engineering Architectural Design
Software Architecture and Design
Object oriented sad-5 part i
01 the big_idea
UNIT-3_SE_PPT1.pptx software engineering
Ad

More from stanbridge (20)

PPTX
Micro Lab 3 Lecture
PPTX
Creating a poster v2
PPTX
Creating a poster
PPTX
Sample poster
PPTX
OT 5018 Thesis Dissemination
PPTX
Ot5101 005 week 5
PPTX
Ot5101 005 week4
PPTX
Compliance, motivation, and health behaviors
PPTX
Ch 5 developmental stages of the learner
PPTX
OT 5101 week2 theory policy
PPTX
OT 5101 week3 planning needs assessment
PPTX
Ot5101 week1
PPT
NUR 304 Chapter005
PPT
NUR 3043 Chapter007
PPT
NUR 3043 Chapter006
PPT
NUR 3043 Chapter004
PPT
3043 Chapter009
PPT
3043 Chapter008
PPT
Melnyk ppt chapter_21
PPT
Melnyk ppt chapter_22
Micro Lab 3 Lecture
Creating a poster v2
Creating a poster
Sample poster
OT 5018 Thesis Dissemination
Ot5101 005 week 5
Ot5101 005 week4
Compliance, motivation, and health behaviors
Ch 5 developmental stages of the learner
OT 5101 week2 theory policy
OT 5101 week3 planning needs assessment
Ot5101 week1
NUR 304 Chapter005
NUR 3043 Chapter007
NUR 3043 Chapter006
NUR 3043 Chapter004
3043 Chapter009
3043 Chapter008
Melnyk ppt chapter_21
Melnyk ppt chapter_22

Recently uploaded (20)

PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Cell Structure & Organelles in detailed.
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
RMMM.pdf make it easy to upload and study
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
01-Introduction-to-Information-Management.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Basic Mud Logging Guide for educational purpose
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Complications of Minimal Access Surgery at WLH
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
master seminar digital applications in india
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Anesthesia in Laparoscopic Surgery in India
Cell Structure & Organelles in detailed.
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Final Presentation General Medicine 03-08-2024.pptx
RMMM.pdf make it easy to upload and study
VCE English Exam - Section C Student Revision Booklet
01-Introduction-to-Information-Management.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
Basic Mud Logging Guide for educational purpose
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
human mycosis Human fungal infections are called human mycosis..pptx
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Complications of Minimal Access Surgery at WLH
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Microbial diseases, their pathogenesis and prophylaxis
master seminar digital applications in india

Cs 1023 lec 3 architecture (week 1)

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectures in Context Software Architecture Lecture 2
  • 2. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 2 Fundamental Understanding  Architecture is a set of principal design decisions about a software system  Three fundamental understandings of software architecture Every application has an architecture Every application has at least one architect Architecture is not a phase of development
  • 3. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 3 Wrong View: Architecture as a Phase Treating architecture as a phase denies its foundational role in software development More than “high-level design” Architecture is also represented, e.g., by object code, source code, …
  • 4. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 4 Context of Software Architecture  Requirements  Design  Implementation  Analysis and Testing  Evolution  Development Process
  • 5. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 5 Requirements Analysis  Traditional SE suggests requirements analysis should remain unsullied by any consideration for a design  However, without reference to existing architectures it becomes difficult to assess practicality, schedules, or costs In building architecture we talk about specific rooms… …rather than the abstract concept “means for providing shelter”  In engineering new products come from the observation of existing solution and their limitations
  • 6. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 6 New Perspective on Requirements Analysis  Existing designs and architectures provide the solution vocabulary  Our understanding of what works now, and how it works, affects our wants and perceived needs  The insights from our experiences with existing systems helps us imagine what might work and enables us to assess development time and costs   Requirements analysis and consideration of design must be pursued at the same time
  • 7. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 7 Non-Functional Properties (NFP)  NFPs are the result of architectural choices  NFP questions are raised as the result of architectural choices  Specification of NFP might require an architectural framework to even enable their statement  An architectural framework will be required for assessment of whether the properties are achievable
  • 8. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 8 The Twin Peaks Model
  • 9. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 9 Design and Architecture  Design is an activity that pervades software development  It is an activity that creates part of a system’s architecture  Typically in the traditional Design Phase decisions concern A system’s structure Identification of its primary components Their interconnections  Architecture denotes the set of principal design decisions about a system That is more than just structure
  • 10. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 10 Architecture-Centric Design  Traditional design phase suggests translating the requirements into algorithms, so a programmer can implement them  Architecture-centric design stakeholder issues decision about use of COTS component overarching style and structure package and primary class structure deployment issues post implementation/deployment issues
  • 11. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 11 Design Techniques  Basic conceptual tools Separation of concerns Abstraction Modularity  A widely adapted strategy Object-oriented design
  • 12. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 12 Object-Oriented Design (OOD)  Objects Main abstraction entity in OOD Encapsulations of state with functions for accessing and manipulating that state
  • 13. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 13 Pros and Cons of OOD  Pros UML modeling notation Design patterns  Cons Provides only One level of encapsulation (the object) One notion of interface One type of explicit connector (procedure call)  Even message passing is realized via procedure calls OO programming language might dictate important design decisions
  • 14. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 14 Implementation  The objective is to create machine-executable source code That code should be faithful to the architecture Alternatively, it may adapt the architecture How much adaptation is allowed? Architecturally-relevant vs. -unimportant adaptations It must fully develop all outstanding details of the application
  • 15. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 15 Faithful Implementation  All of the structural elements found in the architecture are implemented in the source code  Source code must not utilize major new computational elements that have no corresponding elements in the architecture  Source code must not contain new connections between architectural elements that are not found in the architecture  Is this realistic? Overly constraining? What if we deviate from this?
  • 16. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 16 Unfaithful Implementation  The implementation does have an architecture It is latent, as opposed to what is documented.  Failure to recognize the distinction between planned and implemented architecture robs one of the ability to reason about the application’s architecture in the future misleads all stakeholders regarding what they believe they have as opposed to what they really have makes any development or evolution strategy that is based on the documented (but inaccurate) architecture doomed to failure
  • 17. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 17 Implementation Strategies  Generative techniques e.g. parser generators  Frameworks collections of source code with identified places where the engineer must “fill in the blanks”  Middleware CORBA, DCOM, RPC, …  Reuse-based techniques COTS, open-source, in-house  Writing all code manually
  • 18. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 18 Analysis and Testing  Analysis and testing are activities undertaken to assess the qualities of an artifact  The earlier an error is detected and corrected the lower the aggregate cost  Rigorous representations are required for analysis, so precise questions can be asked and answered
  • 19. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 19 Analysis of Architectural Models  Formal architectural model can be examined for internal consistency and correctness  An analysis on a formal model can reveal Component mismatch Incomplete specifications Undesired communication patterns Deadlocks Security flaws  It can be used for size and development time estimations
  • 20. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 20 Analysis of Architectural Models (cont’d)  Architectural model may be examined for consistency with requirements may be used in determining analysis and testing strategies for source code may be used to check if an implementation is faithful
  • 21. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 21 Evolution and Maintenance  All activities that chronologically follow the release of an application  Software will evolve Regardless of whether one is using an architecture-centric development process or not  The traditional software engineering approach to maintenance is largely ad hoc Risk of architectural decay and overall quality degradation  Architecture-centric approach Sustained focus on an explicit, substantive, modifiable, faithful architectural model
  • 22. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 22 Architecture-Centric Evolution Process  Motivation  Evaluation or assessment  Design and choice of approach  Action includes preparation for the next round of adaptation
  • 23. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 23 Processes  Traditional software process discussions make the process activities the focal point  In architecture-centric software engineering the product becomes the focal point  No single “right” software process for architecture-centric software engineering exists
  • 24. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 24 Turbine – A New Visualization Model  Goals of the visualization Provide an intuitive sense of  Project activities at any given time  Including concurrency of types of development activities  The “information space” of the project Show centrality of the products  (Hopefully) Growing body of artifacts  Allow for the centrality of architecture  But work equally well for other approaches, including “dysfunctional” ones Effective for indicating time, gaps, duration of activities Investment (cost) indicators
  • 25. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 25 Coding Design Requirements Testing Simplistic Waterfall, Side perspective time The Turbine Model “Core” of project artifacts Radius of rotor indicates level of staffing at time t Gap between rotors indicates no project activity for that ∆t ti Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 26. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 26 Cross-section at time ti Design (activity) Requirements Design doc Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 27. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 27 The Turbine Model Waterfall example, Angled perspective time Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 28. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 28 A Richer Example S1 Design/Build/ Requirements Test/Build/ Deploy Assess/… Requirements/Architecture assessment/Planning Build/Design/ Requirements/Test time Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 29. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 29 A Sample Cross-Section Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 30. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 30 A Cross-Section at Project End Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 31. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 31 Volume Indicates Where Time was Spent Design/Build/ Requirements Test/Build/ Deploy Assess/… Requirements/ Architecture Assessment / Planning Build/Design/ Requirements/Test Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 32. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 32 A Technically Strong Product-Line Project Assessment Parameterization Customization Deployment Capture of new work Other Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 33. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 33 Visualization Summary  It is illustrative, not prescriptive  It is an aid to thinking about what’s going on in a project  Can be automatically generated based on input of monitored project data  Can be extended to illustrate development of the information space (artifacts) The preceding slides have focused primarily on the development activities
  • 34. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 34 Processes Possible in this Model  Traditional, straight-line waterfall  Architecture-centric development  DSSA-based project  Agile development  Dysfunctional process
  • 35. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 35 Summary (1)  A proper view of software architecture affects every aspect of the classical software engineering activities  The requirements activity is a co-equal partner with design activities  The design activity is enriched by techniques that exploit knowledge gained in previous product developments  The implementation activity is centered on creating a faithful implementation of the architecture utilizes a variety of techniques to achieve this in a cost-effective manner
  • 36. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 36 Summary (2)  Analysis and testing activities can be focused on and guided by the architecture  Evolution activities revolve around the product’s architecture.  An equal focus on process and product results from a proper understanding of the role of software architecture

Editor's Notes

  • #28: Rotors are the activities. Core are the artifacts. Time goes upward. Volume of rotor represents cost. Volume of core represents information content. Wide rotor represents lots of investment of (people) resources.
  • #29: Rotor 1: Reqts 50%; Architecture assessment 30%; Project planning 20%. Rotor 2: Design: 50%; Impl. 25%; Reqts 12.5%; Other 12.5% Rotor 3: Design 15%; Impl. 50%; A&T: 25%; Reqts 5%; Other 5% Rotor 4: Impl. 15%, A&T 50%; Deployment 20%; Other 15% Rotor 5: Analysis of lessons learned: 85%; Other 15% GAP rotor (i.e. some amount of the core sticks out above the top rotor
  • #32: Rotor 1: Reqts 50%; Architecture assessment 30%; Project planning 20%. Rotor 2: Design: 50%; Impl. 25%; Reqts 12.5%; Other 12.5% Rotor 3: Design 15%; Impl. 50%; A&T: 25%; Reqts 5%; Other 5% Rotor 4: Impl. 15%, A&T 50%; Deployment 20%; Other 15% Rotor 5: Analysis of lessons learned: 85%; Other 15% GAP rotor (i.e. some amount of the core sticks out above the top rotor
  • #33: Lots of substance coming in. Small volume (cost) in the rotors. Rotor 1: Assessment: 100% Rotor 2: Parameterization: 50% Customization: 50 Rotor 3: Deployment: 50 Capture: 30 Other: 20 Capture is the work to take what was customization here and package it so that it is reusable in future projects.