SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Importance of software architecture
Importance of software architectureImportance of software architecture
Importance of software architectureHimanshu
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
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 Ivano Malavolta
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Unit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleUnit iii-Architecture in the lifecycle
Unit iii-Architecture in the lifecycleDhivyaa C.R
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )Dr Reeja S R
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycleHimanshu
 
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 ExamsMuhammadTalha436
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural designdevika g
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architectureHimanshu
 
IT6701-Information Management Unit 1
IT6701-Information Management Unit 1IT6701-Information Management Unit 1
IT6701-Information Management Unit 1SIMONTHOMAS S
 
Architecture vs Design
Architecture vs DesignArchitecture vs Design
Architecture vs DesignLuc Trudeau
 
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 ArchitectureDhivyaa C.R
 
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...mircea.lungu
 
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 modellingCARLOS III UNIVERSITY OF MADRID
 

Was ist angesagt? (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
 

Ähnlich wie Software Architecture

02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
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 ReviewEditor IJCATR
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 
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.docesrabilgic2
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
 
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 STYLESijfcstjournal
 
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 STYLESijfcstjournal
 
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 STYLESADEIJ Journal
 
Software Architecture Views and Viewpoints
Software Architecture Views and ViewpointsSoftware Architecture Views and Viewpoints
Software Architecture Views and ViewpointsHenry Muccini
 
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 - DefinitionsJose Emilio Labra Gayo
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdfdo_2013
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfdo_2013
 
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdf
_773d48108e2dda1c1a731bf69b06c3be_Software-Architecture_Course-Notes.pdfdo_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.pptxJayaramB11
 
Fostering MBSE in Engineering Culture
Fostering MBSE in Engineering CultureFostering MBSE in Engineering Culture
Fostering MBSE in Engineering CultureObeo
 
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...38aartidhage
 

Ähnlich wie 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
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
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
 
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...
 

Kürzlich hochgeladen

What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2
 

Kürzlich hochgeladen (20)

What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 

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.