SlideShare uma empresa Scribd logo
1 de 35
SOFTWARE
ARCHITECTURE
OUTLINE – Software Architecture(SA)
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
OUTLINE
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
Introduction
 Software architecture refers to the high level structures of a
software system, the discipline of creating such structures, and
the documentation of these structures.
 basically an “intellectually graspable” abstraction of a complex
software system.
 It is about making fundamental structural choices.
OUTLINE
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
A brief history
 a relatively newer discipline.
 early attempts were imprecise and disorganized.
 Scientists like Dijkstra emphasized that the structure of a
software system matters, getting it right is critical.
 emerged in its full sense in the 90s, research institutes like
CMU and UC, Irvine played major role.
 research work concentrated around architectural styles,
architecture description languages, architecture
documentation and formal methods.
 IEEE 1471-2000 was the first formal standard in the
discipline, adopted by ISO in 2007.
OUTLINE
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
Scope
 Macroscopic system structure — high level abstraction.
 Covers subjects that are fundamental to understanding a
system in its environment.
 constitutes factors that are hard to undo once implemented.
 Architectural design decisions — Software Architecture
Knowledge Management.
OUTLINE
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
Characteristics
 Caters to the various stakeholders having different
concerns, often takes a multidisciplinary approach.
 Separation of concerns, to reduce complexity — achieved
by describing the architecture from separate points of view
of the stakeholders. Separate descriptions are known as
Architectural Views.
e.g., 4+1 Architectural View Model
4+1 Architectural View Model*
 View Model designed by Philippe Kruchten of UBC for
describing the architecture, based on multiple,
concurrent views.
 views describe the system from the viewpoint of
stakeholders, such as end users, developers and project
managers.
 4 views are: Logical, development, process and physical.
Additionally, some use cases or scenarios make up the +1.
* Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1”
View Model of Software Architecture.
http://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf
1. Development – illustrates the system from a programmer’s
perspective and is concerned with software management.
2. Logical – concerned with the functionality that the system
provides to the end-users.
3. Physical – system engineer’s point of view. Concerned with the
topology and connections between software components.
4. Process – deals with the system processes and the runtime
behavior of the system.
5. Scenarios – or “use cases” describes sequences of interactions
between objects and processes to achieve certain goals.
Other characteristics (continued):
 Quality driven, closely related to the quality attributes, unlike
software design. Stakeholders concerns translated into quality
attributes. Functional vs. Non-functional requirements.
 Conceptual integrity, represents vision of what it should do
and how it should do it; should be separated from its
implementation; architect preserves conceptual integrity by
ensuring additions to system are in line with the architecture.
OUTLINE
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
Why S.A.?
 Analysis of system behavior before it has been built; ability
to verify that a system fulfills stakeholders’ needs before
actually building it represents cost-saving and risk
mitigation.
ATAM (Architecture Tradeoff Analysis Method)* is
one of the techniques to perform such analysis.
*Rick Kazman; Mark Klein; Paul Clements. "ATAM: Method for Architecture
Evaluation". Carnegie Mellon Software Engineering Institute. p. 39f.
http://www.sei.cmu.edu/reports/00tr004.pdf
ATAM
 Risk-mitigation process, used early in the SDLC;
developed by software engineering institute at CMU.
 used to choose suitable architecture for a system by
discovering tradeoffs, sensitivity points and risks.
 beneficial only when used early in the SDLC, when the
cost of changing is minimal.
ATAM benefits
1. Provides documented basis for architecture decisions.
2. Enables early risks detection.
3. Encourages communication between stakeholders.
4. Resolves conflicting goals through prioritizing.
5. Promotes cross-project reuse.
Why S.A.? (continued..)
 Allows reuse of strategies and decisions, when
stakeholders require similar quality attributes; saves
time, reduces cost and associated risks.
 Supports early design decisions that impacts a system’s
development, deployment and maintenance; important
to prevent schedule and budget overruns.
 facilitates communication with stakeholders,
contributing to a system that better fulfills their needs.
 helps in risk management.
 enables cost reduction, manages costs and risks in
complex IT projects.
OUTLINE
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
Architecture Activities
 Understanding the environment in which system will
operate and determining the requirements of the
system.
 It takes inputs from stakeholders as functional and non-
functional requirements, outputs architecturally
significant requirements.
Architectural Analysis
Architectural Synthesis
 Creation of an architecture, known as “design”.
 Given the architecturally significant requirements, the
current state of the design and the results of any evaluation
activities, the design is created and improved.
Architecture Evaluation
 It is determining how well the current design satisfies
the requirement derived during analysis.
 Can be carried out anytime, before, in between or after
the design or the system has been constructed.
 Some well known architecture evaluation techniques are
ATAM and TARA.
Architecture Evolution
 It is the process of maintaining and adapting a software
architecture to meet changing requirements and
environment.
 It is concerned with adding new functionalities as well as
maintaining existing functionalities and system
behaviors.
Architecture supporting activities
These are used to gather knowledge, evaluate decisions
and document them.
 Knowledge Management and Communication – It is
about exploring, communicating and retaining knowledge
essential to designing an architecture.
 Design Reasoning and Decision Making – the activity of
evaluating design decisions.
 Documentation – recording design generated during the
software architecture processes.
OUTLINE
Introduction
A brief history
Scope
Characteristics
Why SA?
SA Activities
SA Topics
Software Architecture Topics
 Software architecture description involves the principles and
practices of modelling and representing architectures, using
mechanisms such as: architecture description languages,
architecture viewpoints, and architecture frameworks.
Software architecture description
 An architecture description language (ADL) is any means of
expression used to describe a software architecture.
Examples are AADL, Wright (CMU), xADL (UCI), Darwin
(Imperial College London), SBC-ADL (National Sun Yat-Sen
University), ByADL (University of L'Aquila, Italy), etc.
Architecture description languages
Architecture viewpoints
 Software architecture descriptions
are commonly organized
into views, analogous to the
different types of blueprints made
in building architecture.
 Each view addresses a set of system concerns, following the
conventions of its viewpoint, where a viewpoint is a specification that
describes the notations, modelling and analysis techniques.
Architecture patterns and styles
 An architectural pattern is a general, reusable solution to a
commonly occurring problem in software architecture.
 A software architectural style is a specific method of
construction, characterized by the features and constraints
that make it notable.
Software architecture and agile development
 A number of methods have been developed to balance the
trade-offs of up-front design and agility.
 “up-front design” is a software development approach in
which the program's design is to be completed and
perfected before that program's implementation is
started.
Software architecture erosion
 Refers to the gap observed between the planned and actual
architecture of a software system.
 Reflexion model (RM) techniques compare a high-level
model provided by the system's architects with the source
code implementation.
 Domain-specific languages focus on specifying and
checking architectural constraints.
Software architecture recovery
 Methods and processes to uncover a software system's
architecture from available information.
 Reverse Engineering: re-producing anything based on
the extracted knowledge or design information.
Software Architecture

Mais conteúdo relacionado

Mais procurados

Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architecture
Himanshu
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
Himanshu
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
Majong DevJfu
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architecture
Himanshu
 

Mais procurados (20)

Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architecture
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Chapter1
Chapter1Chapter1
Chapter1
 
03 basic concepts
03 basic concepts03 basic concepts
03 basic concepts
 
Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization  Software Architecture by Reuse, Composition and Customization
Software Architecture by Reuse, Composition and Customization
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycle
 
Sda 2
Sda   2Sda   2
Sda 2
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Unit 1
Unit 1Unit 1
Unit 1
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architecture
 
IT6701-Information Management Unit 1
IT6701-Information Management Unit 1IT6701-Information Management Unit 1
IT6701-Information Management Unit 1
 
Architecture vs Design
Architecture vs DesignArchitecture vs Design
Architecture vs Design
 
Unit iv -Documenting and Implementation of Software Architecture
Unit iv -Documenting and Implementation of Software ArchitectureUnit iv -Documenting and Implementation of Software Architecture
Unit iv -Documenting and Implementation of Software Architecture
 
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
 
Systems and Software Architecture: an introduction to architectural modelling
Systems and Software Architecture: an introduction to architectural modellingSystems and Software Architecture: an introduction to architectural modelling
Systems and Software Architecture: an introduction to architectural modelling
 

Semelhante a Software Architecture

02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
Majong DevJfu
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
do_2013
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
do_2013
 
20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx
JayaramB11
 

Semelhante a Software Architecture (20)

3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Class notes
Class notesClass notes
Class notes
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature Review
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
Software Architecture Views and Viewpoints
Software Architecture Views and ViewpointsSoftware Architecture Views and Viewpoints
Software Architecture Views and Viewpoints
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdf
 
20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx20CB304 - SE - UNIT V - Digital Notes.pptx
20CB304 - SE - UNIT V - Digital Notes.pptx
 
Fostering MBSE in Engineering Culture
Fostering MBSE in Engineering CultureFostering MBSE in Engineering Culture
Fostering MBSE in Engineering Culture
 
Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...Design Engineering is a topic of software engineering of second year fourth s...
Design Engineering is a topic of software engineering of second year fourth s...
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 

Software Architecture

  • 2. OUTLINE – Software Architecture(SA) Introduction A brief history Scope Characteristics Why SA? SA Activities SA Topics
  • 4. Introduction  Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures.  basically an “intellectually graspable” abstraction of a complex software system.  It is about making fundamental structural choices.
  • 6. A brief history  a relatively newer discipline.  early attempts were imprecise and disorganized.  Scientists like Dijkstra emphasized that the structure of a software system matters, getting it right is critical.  emerged in its full sense in the 90s, research institutes like CMU and UC, Irvine played major role.
  • 7.  research work concentrated around architectural styles, architecture description languages, architecture documentation and formal methods.  IEEE 1471-2000 was the first formal standard in the discipline, adopted by ISO in 2007.
  • 9. Scope  Macroscopic system structure — high level abstraction.  Covers subjects that are fundamental to understanding a system in its environment.  constitutes factors that are hard to undo once implemented.  Architectural design decisions — Software Architecture Knowledge Management.
  • 11. Characteristics  Caters to the various stakeholders having different concerns, often takes a multidisciplinary approach.  Separation of concerns, to reduce complexity — achieved by describing the architecture from separate points of view of the stakeholders. Separate descriptions are known as Architectural Views. e.g., 4+1 Architectural View Model
  • 12. 4+1 Architectural View Model*  View Model designed by Philippe Kruchten of UBC for describing the architecture, based on multiple, concurrent views.  views describe the system from the viewpoint of stakeholders, such as end users, developers and project managers.  4 views are: Logical, development, process and physical. Additionally, some use cases or scenarios make up the +1. * Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1” View Model of Software Architecture. http://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf
  • 13. 1. Development – illustrates the system from a programmer’s perspective and is concerned with software management. 2. Logical – concerned with the functionality that the system provides to the end-users. 3. Physical – system engineer’s point of view. Concerned with the topology and connections between software components. 4. Process – deals with the system processes and the runtime behavior of the system. 5. Scenarios – or “use cases” describes sequences of interactions between objects and processes to achieve certain goals.
  • 14. Other characteristics (continued):  Quality driven, closely related to the quality attributes, unlike software design. Stakeholders concerns translated into quality attributes. Functional vs. Non-functional requirements.  Conceptual integrity, represents vision of what it should do and how it should do it; should be separated from its implementation; architect preserves conceptual integrity by ensuring additions to system are in line with the architecture.
  • 16. Why S.A.?  Analysis of system behavior before it has been built; ability to verify that a system fulfills stakeholders’ needs before actually building it represents cost-saving and risk mitigation. ATAM (Architecture Tradeoff Analysis Method)* is one of the techniques to perform such analysis. *Rick Kazman; Mark Klein; Paul Clements. "ATAM: Method for Architecture Evaluation". Carnegie Mellon Software Engineering Institute. p. 39f. http://www.sei.cmu.edu/reports/00tr004.pdf
  • 17. ATAM  Risk-mitigation process, used early in the SDLC; developed by software engineering institute at CMU.  used to choose suitable architecture for a system by discovering tradeoffs, sensitivity points and risks.  beneficial only when used early in the SDLC, when the cost of changing is minimal.
  • 18. ATAM benefits 1. Provides documented basis for architecture decisions. 2. Enables early risks detection. 3. Encourages communication between stakeholders. 4. Resolves conflicting goals through prioritizing. 5. Promotes cross-project reuse.
  • 19. Why S.A.? (continued..)  Allows reuse of strategies and decisions, when stakeholders require similar quality attributes; saves time, reduces cost and associated risks.  Supports early design decisions that impacts a system’s development, deployment and maintenance; important to prevent schedule and budget overruns.
  • 20.  facilitates communication with stakeholders, contributing to a system that better fulfills their needs.  helps in risk management.  enables cost reduction, manages costs and risks in complex IT projects.
  • 22. Architecture Activities  Understanding the environment in which system will operate and determining the requirements of the system.  It takes inputs from stakeholders as functional and non- functional requirements, outputs architecturally significant requirements. Architectural Analysis
  • 23. Architectural Synthesis  Creation of an architecture, known as “design”.  Given the architecturally significant requirements, the current state of the design and the results of any evaluation activities, the design is created and improved.
  • 24. Architecture Evaluation  It is determining how well the current design satisfies the requirement derived during analysis.  Can be carried out anytime, before, in between or after the design or the system has been constructed.  Some well known architecture evaluation techniques are ATAM and TARA.
  • 25. Architecture Evolution  It is the process of maintaining and adapting a software architecture to meet changing requirements and environment.  It is concerned with adding new functionalities as well as maintaining existing functionalities and system behaviors.
  • 26. Architecture supporting activities These are used to gather knowledge, evaluate decisions and document them.  Knowledge Management and Communication – It is about exploring, communicating and retaining knowledge essential to designing an architecture.  Design Reasoning and Decision Making – the activity of evaluating design decisions.  Documentation – recording design generated during the software architecture processes.
  • 28. Software Architecture Topics  Software architecture description involves the principles and practices of modelling and representing architectures, using mechanisms such as: architecture description languages, architecture viewpoints, and architecture frameworks. Software architecture description
  • 29.  An architecture description language (ADL) is any means of expression used to describe a software architecture. Examples are AADL, Wright (CMU), xADL (UCI), Darwin (Imperial College London), SBC-ADL (National Sun Yat-Sen University), ByADL (University of L'Aquila, Italy), etc. Architecture description languages
  • 30. Architecture viewpoints  Software architecture descriptions are commonly organized into views, analogous to the different types of blueprints made in building architecture.  Each view addresses a set of system concerns, following the conventions of its viewpoint, where a viewpoint is a specification that describes the notations, modelling and analysis techniques.
  • 31. Architecture patterns and styles  An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture.  A software architectural style is a specific method of construction, characterized by the features and constraints that make it notable.
  • 32. Software architecture and agile development  A number of methods have been developed to balance the trade-offs of up-front design and agility.  “up-front design” is a software development approach in which the program's design is to be completed and perfected before that program's implementation is started.
  • 33. Software architecture erosion  Refers to the gap observed between the planned and actual architecture of a software system.  Reflexion model (RM) techniques compare a high-level model provided by the system's architects with the source code implementation.  Domain-specific languages focus on specifying and checking architectural constraints.
  • 34. Software architecture recovery  Methods and processes to uncover a software system's architecture from available information.  Reverse Engineering: re-producing anything based on the extracted knowledge or design information.