SlideShare a Scribd company logo
Software Design & Architecture
Lecture-5
Lecturer: Junaid Arshad
Outlines
 What Software Architecture Is and What It Isn’t
 Other Points of View
 Architectural Patterns, Reference Models, and Reference
Architectures
 Why Is Software Architecture Important?
What Software Architecture Is and
What It Isn't
The figure is taken from a system description for an underwater
acoustic simulation
What Software Architecture Is and
What It Isn’t cont’d
what can we tell from the figure?
1) The system consists of four elements.
2) Three of the elements— Prop Loss Model (MODP), Reverb Model (MODR),
and Noise Model (MODN)—might have more in common with each other
than with the fourth—Control Process (CP)—because they are positioned
next to each other.
3) All of the elements apparently have some sort of relationship with each
other, since the diagram is fully connected.
Is this an architecture?
What Software Architecture Is and
What It Isn’t cont’d
what can we not tell from the diagram?
1) What is the nature of the elements?
2) What are the responsibilities of the elements?
3) Do the connections mean that the elements communicate with each other,
control each other, send data to each other, use each other, invoke each
other, synchronize with each other, share some information-hiding secret with
each other, or some combination of these or other relations?
The diagram does not show a software architecture
What Software Architecture Is and
What It Isn’t cont’d
what does form a software architecture?
 The software architecture of a program or computing system is the
structure or structures of the system, which comprise software
elements, the externally visible properties of those elements, and the
relationships among them
 “Externally visible” properties are those assumptions other elements
can make of an element, such as its provided services, performance
characteristics, fault handling, shared resource usage
What Software Architecture Is and
What It Isn’t cont’d
Architecture defines software elements
 The architecture is foremost an abstraction of a system that hold back
details of elements that do not affect how they use or interact with
other elements.
 In nearly all modern systems, elements interact with each other by
means of interfaces that partition details about an element into
public and private parts.
 Architecture is concerned with the public side of this division; private
details are not architectural.
What Software Architecture Is and
What It Isn’t cont’d
Architecture defines software elements cont’d
 The architecture can comprise more than one kind of structure
 every computing system with software has a software architecture because
every system can be shown to comprise elements and the relations among
them
 The behavior of each element is part of the architecture
Architectural Patterns, Reference
Models, and Reference Architectures
There are three important architectural structures
1. architectural pattern
2. reference model
3. reference architecture
Architectural pattern
 An architectural pattern is a description of element and relation types
together with a set of constraints on how they may be used.
 A pattern can be thought of as a set of constraints on an architecture
(on the element types and their patterns of interaction)
 these constraints define a set or family of architectures that satisfy
them.
 For example, client-server is a common architectural pattern.
 Client and server are two element types, and their coordination is described in
terms of the protocol that the server uses to communicate with each of its
clients.
 Use of the term client-server implies only that multiple clients exist; the clients
themselves are not identified, and there is no discussion of what functionality,
other than implementation of the protocols, has been assigned to any of the
clients.
 Countless architectures are of the client-server pattern under this (informal)
definition.
 An architectural pattern is not an architecture, but it still conveys a useful
image of the system (it imposes useful constraints on the architecture and, in
turn, on the system).
 patterns exhibit known quality attributes. This is why the architect
chooses a particular pattern and not one at random.
 Some patterns represent known solutions to performance problems,
others lend themselves well to high-security systems, still others have
been used successfully in high-availability systems.
 Choosing an architectural pattern is often the architect's first major
design choice.
 The term architectural style has also been widely used to describe the
same concept of patterns
Reference model
 A reference model is a division of functionality together
with data flow between the pieces.
 A reference model is a standard decomposition of a known
problem into parts that cooperatively solve the problem.
 For example: Can you name the standard parts of a
compiler ? Can you explain in broad terms how the parts
work together to accomplish their purpose? If so, it is
because you have been taught a reference model of these
applications.
Reference architecture
 A reference architecture is a reference model mapped onto
software elements and the data flows between them.
 The mapping may be one to one. A software element may
implement part of a function or several functions.
 Reference models, architectural patterns, and reference
architectures are not architectures; they are useful concepts
that capture elements of an architecture.
Why Is Software Architecture
Important?
There are fundamentally three reasons for software
architecture's importance:
1) Communication among stakeholders.
2) Early design decisions.
1) Transferable abstraction of a system
1. Architecture is the vehicle for
stakeholders communication
Each stakeholder of a software system is concerned with different
system characteristics that are affected by the architecture.
For example:
 the user is concerned that the system is reliable and available when
needed;
 the customer is concerned that the architecture can be implemented
on schedule and to budget;
 the manager is worried (as well as about cost and schedule) that the
architecture will allow teams to work largely independently,
interacting in disciplined and controlled ways.
 The architect is worried about strategies to achieve all of those goals.
 Architecture provides a common language in which different concerns
can be expressed, negotiated, and resolved at a level that is
intellectually manageable even for large, complex systems.
 Without such a language, it is difficult to understand large systems
sufficiently to make the early decisions that influence both quality
and usefulness.
 Architectural analysis, depends on this level of communication and
enhances it.
2. Architecture represents the earliest
set of design decisions
These early decisions are the most difficult to get correct and the
hardest to change later in the development process, and they have the
most far-reaching effects.
1. The Architecture Defines Constraints on Implementation
2. The Architecture Dictates Organizational Structure
3. The Architecture inhibits or Enables a System's Quality Attributes
4. Predicting System Qualities by Studying the Architecture
5. The Architecture Makes It Easier to Reason about and Manage Change
6. The Architecture Helps in Evolutionary Prototyping
7. The Architecture Enables More Accurate Cost and Schedule Estimates
3. Architecture as a transferable
reusable model
 The earlier in the life cycle re-use is applied, the greater the benefit
that can be achieved.
 Not only code can be re-used but so can the requirements that led to
the architecture in the first place, as well as the experience of
building the re-used architecture.
 When architectural decisions can be re-used across multiple systems,
all of the early decision consequences we just described are also
transferred.
Class Assignment
Self Study
Other Points of View in Software Architecture

More Related Content

Similar to Lecture-_-5-_SDA_software design and architecture.doc

software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
SomnathMule5
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
SomnathMule5
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
MahmoudZidan53
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
Ra'Fat Al-Msie'deen
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
ShwetaGajbhiye12
 
Sda 2
Sda   2Sda   2
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
chitranshidheeraj6
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
Tawhidur Rahman Bhuiyan
 
software architecture
software architecturesoftware architecture
software architecture
Manidheer Babu
 
Software Architecture.ppt
Software Architecture.pptSoftware Architecture.ppt
Software Architecture.ppt
MuhammadTalha416221
 
81-T48
81-T4881-T48
Software architecture in practice unit1 1
Software architecture in practice unit1 1Software architecture in practice unit1 1
Software architecture in practice unit1 1
sush-sushma
 
Software architecture in practice unit1 1
Software architecture in practice unit1 1Software architecture in practice unit1 1
Software architecture in practice unit1 1
sush-sushma
 
Architectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software ArchitecturesArchitectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software Architectures
Andrea Porter
 
Full Paper
Full PaperFull Paper
Full Paper
Arash Heidarian
 
chapter-1 Software Design.pptx
chapter-1 Software Design.pptxchapter-1 Software Design.pptx
chapter-1 Software Design.pptx
haroon451422
 
Chapter1
Chapter1Chapter1
Chapter1
Hoang Vu Dinh
 
_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
 
Software-Architecture_Course-Notes.pdf
Software-Architecture_Course-Notes.pdfSoftware-Architecture_Course-Notes.pdf
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
 

Similar to Lecture-_-5-_SDA_software design and architecture.doc (20)

software engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptxsoftware engineering Architecture and design Unit 3.pptx
software engineering Architecture and design Unit 3.pptx
 
Software requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptxSoftware requirement specification Unit 3.pptx
Software requirement specification Unit 3.pptx
 
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptxchapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Sda 2
Sda   2Sda   2
Sda 2
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
 
software architecture
software architecturesoftware architecture
software architecture
 
Software Architecture.ppt
Software Architecture.pptSoftware Architecture.ppt
Software Architecture.ppt
 
81-T48
81-T4881-T48
81-T48
 
Software architecture in practice unit1 1
Software architecture in practice unit1 1Software architecture in practice unit1 1
Software architecture in practice unit1 1
 
Software architecture in practice unit1 1
Software architecture in practice unit1 1Software architecture in practice unit1 1
Software architecture in practice unit1 1
 
Architectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software ArchitecturesArchitectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software Architectures
 
Full Paper
Full PaperFull Paper
Full Paper
 
chapter-1 Software Design.pptx
chapter-1 Software Design.pptxchapter-1 Software Design.pptx
chapter-1 Software Design.pptx
 
Chapter1
Chapter1Chapter1
Chapter1
 
_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
 

Recently uploaded

🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
alowpalsadig
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
Philip Schwarz
 
Trailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptxTrailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptx
ImtiazBinMohiuddin
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
OnePlan Solutions
 
Hyperledger Besu 빨리 따라하기 (Private Networks)
Hyperledger Besu 빨리 따라하기 (Private Networks)Hyperledger Besu 빨리 따라하기 (Private Networks)
Hyperledger Besu 빨리 따라하기 (Private Networks)
wonyong hwang
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdfThe Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
kalichargn70th171
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
ICS
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
jrodriguezq3110
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 

Recently uploaded (20)

🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)Photoshop Tutorial for Beginners (2024 Edition)
Photoshop Tutorial for Beginners (2024 Edition)
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
 
Trailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptxTrailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptx
 
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsEnsuring Efficiency and Speed with Practical Solutions for Clinical Operations
Ensuring Efficiency and Speed with Practical Solutions for Clinical Operations
 
Hyperledger Besu 빨리 따라하기 (Private Networks)
Hyperledger Besu 빨리 따라하기 (Private Networks)Hyperledger Besu 빨리 따라하기 (Private Networks)
Hyperledger Besu 빨리 따라하기 (Private Networks)
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdfThe Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
The Ultimate Guide to Top 36 DevOps Testing Tools for 2024.pdf
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 

Lecture-_-5-_SDA_software design and architecture.doc

  • 1. Software Design & Architecture Lecture-5 Lecturer: Junaid Arshad Outlines  What Software Architecture Is and What It Isn’t  Other Points of View
  • 2.  Architectural Patterns, Reference Models, and Reference Architectures  Why Is Software Architecture Important? What Software Architecture Is and What It Isn't The figure is taken from a system description for an underwater acoustic simulation
  • 3. What Software Architecture Is and What It Isn’t cont’d what can we tell from the figure? 1) The system consists of four elements.
  • 4. 2) Three of the elements— Prop Loss Model (MODP), Reverb Model (MODR), and Noise Model (MODN)—might have more in common with each other than with the fourth—Control Process (CP)—because they are positioned next to each other. 3) All of the elements apparently have some sort of relationship with each other, since the diagram is fully connected. Is this an architecture? What Software Architecture Is and What It Isn’t cont’d what can we not tell from the diagram?
  • 5. 1) What is the nature of the elements? 2) What are the responsibilities of the elements? 3) Do the connections mean that the elements communicate with each other, control each other, send data to each other, use each other, invoke each other, synchronize with each other, share some information-hiding secret with each other, or some combination of these or other relations? The diagram does not show a software architecture What Software Architecture Is and What It Isn’t cont’d what does form a software architecture?
  • 6.  The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them  “Externally visible” properties are those assumptions other elements can make of an element, such as its provided services, performance characteristics, fault handling, shared resource usage What Software Architecture Is and What It Isn’t cont’d Architecture defines software elements
  • 7.  The architecture is foremost an abstraction of a system that hold back details of elements that do not affect how they use or interact with other elements.  In nearly all modern systems, elements interact with each other by means of interfaces that partition details about an element into public and private parts.  Architecture is concerned with the public side of this division; private details are not architectural. What Software Architecture Is and What It Isn’t cont’d Architecture defines software elements cont’d
  • 8.  The architecture can comprise more than one kind of structure  every computing system with software has a software architecture because every system can be shown to comprise elements and the relations among them  The behavior of each element is part of the architecture Architectural Patterns, Reference Models, and Reference Architectures There are three important architectural structures 1. architectural pattern
  • 9. 2. reference model 3. reference architecture Architectural pattern  An architectural pattern is a description of element and relation types together with a set of constraints on how they may be used.  A pattern can be thought of as a set of constraints on an architecture (on the element types and their patterns of interaction)  these constraints define a set or family of architectures that satisfy them.
  • 10.  For example, client-server is a common architectural pattern.  Client and server are two element types, and their coordination is described in terms of the protocol that the server uses to communicate with each of its clients.  Use of the term client-server implies only that multiple clients exist; the clients themselves are not identified, and there is no discussion of what functionality, other than implementation of the protocols, has been assigned to any of the clients.  Countless architectures are of the client-server pattern under this (informal) definition.
  • 11.  An architectural pattern is not an architecture, but it still conveys a useful image of the system (it imposes useful constraints on the architecture and, in turn, on the system).  patterns exhibit known quality attributes. This is why the architect chooses a particular pattern and not one at random.  Some patterns represent known solutions to performance problems, others lend themselves well to high-security systems, still others have been used successfully in high-availability systems.  Choosing an architectural pattern is often the architect's first major design choice.  The term architectural style has also been widely used to describe the same concept of patterns
  • 12. Reference model  A reference model is a division of functionality together with data flow between the pieces.  A reference model is a standard decomposition of a known problem into parts that cooperatively solve the problem.  For example: Can you name the standard parts of a compiler ? Can you explain in broad terms how the parts work together to accomplish their purpose? If so, it is because you have been taught a reference model of these applications.
  • 13.
  • 14. Reference architecture  A reference architecture is a reference model mapped onto software elements and the data flows between them.  The mapping may be one to one. A software element may implement part of a function or several functions.  Reference models, architectural patterns, and reference architectures are not architectures; they are useful concepts that capture elements of an architecture.
  • 15.
  • 16. Why Is Software Architecture Important? There are fundamentally three reasons for software architecture's importance: 1) Communication among stakeholders. 2) Early design decisions. 1) Transferable abstraction of a system
  • 17. 1. Architecture is the vehicle for stakeholders communication Each stakeholder of a software system is concerned with different system characteristics that are affected by the architecture. For example:  the user is concerned that the system is reliable and available when needed;  the customer is concerned that the architecture can be implemented on schedule and to budget;  the manager is worried (as well as about cost and schedule) that the architecture will allow teams to work largely independently, interacting in disciplined and controlled ways.
  • 18.  The architect is worried about strategies to achieve all of those goals.  Architecture provides a common language in which different concerns can be expressed, negotiated, and resolved at a level that is intellectually manageable even for large, complex systems.  Without such a language, it is difficult to understand large systems sufficiently to make the early decisions that influence both quality and usefulness.  Architectural analysis, depends on this level of communication and enhances it.
  • 19. 2. Architecture represents the earliest set of design decisions These early decisions are the most difficult to get correct and the hardest to change later in the development process, and they have the most far-reaching effects. 1. The Architecture Defines Constraints on Implementation 2. The Architecture Dictates Organizational Structure 3. The Architecture inhibits or Enables a System's Quality Attributes 4. Predicting System Qualities by Studying the Architecture 5. The Architecture Makes It Easier to Reason about and Manage Change 6. The Architecture Helps in Evolutionary Prototyping
  • 20. 7. The Architecture Enables More Accurate Cost and Schedule Estimates 3. Architecture as a transferable reusable model  The earlier in the life cycle re-use is applied, the greater the benefit that can be achieved.  Not only code can be re-used but so can the requirements that led to the architecture in the first place, as well as the experience of building the re-used architecture.
  • 21.  When architectural decisions can be re-used across multiple systems, all of the early decision consequences we just described are also transferred. Class Assignment Self Study Other Points of View in Software Architecture