SlideShare uma empresa Scribd logo
1 de 32
An Introduction to
Software Architecture
Software Engineering Lab.
Summer 2006
Definition
The software architecture of a
program or computing system is the
structure or structures of the system,
which comprise software elements,
the externally visible properties of
those elements, and the relationships
among them.
Who influences SA?
Summary: Influences on the
Architect
Why is architecture important?
►Handling complexity
►Communication among stakeholders
►Early Design Decisions
►SA is a transferable, reusable model
Software Architecture Document
1. Introduction
2. Architectural Representation
3. Architectural Goals and Constraints
4. Use-Case View
5. Logical View
6. Process View
7. Deployment View
8. Implementation View
9. Data View (optional)
10. Size and Performance
11. Quality
Architectural Patterns : Definition
An architectural style or pattern is
 a description of the component and connector
types involved in the style
 the collection of rules that constrain and relate
them
Model-View-Controller
► Context
 Provides a flexible structure for developing interactive applications.
► Problem
 User interfaces are subject to changes. As new features are added
to the system, the UI must provide appropriate command and
menus to handle them.
 Different platforms support different ‘look and feel’ standards; the
UI must be portable.
 Different kind of users may expect different data format from the
UI (bar char, spreadsheet etc.).
► Solution
 Divide the system into three parts: processing, output, and input:
 Model: contains the processing and the data involved.
 View: presents the output; each view provides specific
presentation of the same model.
 Controller: captures user input (events-> mouse clicks, keyboard
input etc.). Each view is associated to a controller, which captures
user input.
Model-View-Controller
► Main goal:
 facilitate and optimize the implementation of interactive systems,
particularly those that use multiple synchronized presentations of shared
information.
► Key idea:
 separation between the data and its presentation, which is carried by
different objects.
► Controllers typically implement event-handling mechanisms that are executed
when corresponding events occur.
► Changes made to the model by the user via controllers are directly propagated
to corresponding views. The change propagation mechanism can be
implemented using the observer (design) pattern.
A Stock Trading Application
Layered Pattern
► Context
 You are working with a large, complex system and you
want to manage complexity by decomposition.
► Problem
 How do you structure an application to support such
operational requirements as maintainability, scalability,
extensibility, robustness, and security?
► Solutions
 Compose the solution into a set of layers. Each layer
should be cohesive and at Roughly the same level of
abstraction. Each layer should be loosely coupled to the
layers underneath.
Layered Pattern
► Layering consists of a hierarchy of layers, each
providing service to the layer above it and
serving as client to the layer below.
► Interactions among layers are defined by suitable
communication protocols.
► Interactions among non-adjacent layers must be
kept to the minimum possible.
► Layering is different from composition
 higher-layers do not encapsulate lower layers
 lower layers do not encapsulate higher layers (even
though there is an existence dependency)
Three-Layered Pattern
► Context
 You are building a business solution using layers to organize your
application.
► Problem
 How do you organize your application to reuse business logic,
provide deployment flexibility and conserve valuable resource
connections?
► Solutions
 Create three layers: presentation, business logic and data
access.
 Locate all database-related code, including database clients access
and utility components, in the data access layer.
 Eliminate dependencies between business layer components and
data access components.
 Either eliminate the dependencies between the business layer and
the presentation layer or manage them using the Observer
pattern.
Software Architecture Document
1. Introduction
2. Architectural Representation
3. Architectural Goals and Constraints
4. Use-Case View
5. Logical View
6. Process View
7. Deployment View
8. Implementation View
9. Data View (optional)
10. Size and Performance
11. Quality
Architectural Goals and Constraints
► The architecture will be formed by considering:
 functional requirements, captured in the Use-Case
Model, and
 non-functional requirements, quality att.
► However these are constraints imposed by the
environment in which the software must operate
that will shape the architecture :
 need to reuse existing assets
 imposition of various standards
 need for compatibility with existing systems
Software Architecture Document
1. Introduction
2. Architectural Representation
3. Architectural Goals and Constraints
4. Use-Case View
5. Logical View
6. Process View
7. Deployment View
8. Implementation View
9. Data View (optional)
10. Size and Performance
11. Quality
Architectural Structures and Views
In construction, there are blueprints of
 Plan , Different sides of construction , Electrical wiring , Plumbing,
…
Each of these views specifies a single entity (i.e. the
construction) from a different perspective (used by a
different person, for a different goal).
Similarly there are different structures and views in SA.
► View is a representation of software architecture based on
an structure as written by the architect and read by
stakeholders (an instance of the structure)
► SA is documented by a number of views.
The “4+1” Views of Architecture
Use-case View
► Contains only architecturally significant use cases
(whereas the final use case model contains all the
use cases).
 The logical view is derived using the use cases identified
in the architectural view of the use case model.
► Architecturally significant use cases:
 critical use cases, those that are most important to the
users of the system (from a functionality perspective)
 use cases that carry the major risks
 use cases that have the most important quality
requirements, such as performance, security, usability,
etc.
Use-case View : Example
Logical View
► The Logical View is a subset of the Design Model
which presents architecturally significant design
elements
► describes the most important classes
► their organization in packages and subsystems
► organization of these packages and subsystems
into layers
► It also describes the most important use-case
realizations, for example, the dynamic aspects of
the architecture
Logical View : Class Diagram
Logical View : Collaboration Diagram
Deposit Use case
Logical View : Package Diagram
Process View
►Consists of the processes and threads
that form the system’s concurrency and
synchronization mechanisms, as well as
their interactions
Deployment View
►This section describes one or more physical
network (hardware) configurations on which
the software is deployed and run.
Implementation View
► Describes the organization of static software
modules (source code, data files, executables,
documentation etc.) in the development
environment in terms of Packaging and
layering
► Are modeled using UML Component Diagrams.
► UML components are physical and replaceable
parts of a system that conform to and provide the
realization of a set of interfaces
Software Architecture Document
1. Introduction
2. Architectural Representation
3. Architectural Goals and Constraints
4. Use-Case View
5. Logical View
6. Process View
7. Deployment View
8. Implementation View
9. Data View (optional)
10. Size and Performance
11. Quality
Size and Performance
► The number of key elements the system will have to handle
(the number of concurrent online users for an airline
reservation system, …)
► The key performance measures of the system, such as
average response time for key events
Most of these qualities are captured as requirements; they
are presented here because they shape the architecture in
significant ways and warrant special focus. For each
requirement, discuss how the architecture supports this
requirement.
Quality
►Operating performance requirements, such
as mean-time between failure (MTBF).
►Quality targets, such as "no unscheduled
down-time"
►Extensibility targets, such as "the software
will be upgradeable while the system is
running".
►Portability targets, such as hardware
platforms, operating systems, languages

Mais conteúdo relacionado

Mais procurados

Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software EngineeringVarsha Ajith
 
Software Architecture Design Decisions
Software Architecture Design DecisionsSoftware Architecture Design Decisions
Software Architecture Design DecisionsAfaq Mansoor Khan
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
Ch 6 development plan and quality plan
Ch 6 development plan and quality planCh 6 development plan and quality plan
Ch 6 development plan and quality planKittitouch Suteeca
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycleHimanshu
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecturebashcode
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modelingSyed Zaid Irshad
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessKumar
 
Software architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding GuideSoftware architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding GuideMohammed Fazuluddin
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software designMr. Swapnil G. Thaware
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 

Mais procurados (20)

Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Software Architecture Design Decisions
Software Architecture Design DecisionsSoftware Architecture Design Decisions
Software Architecture Design Decisions
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Ch 6 development plan and quality plan
Ch 6 development plan and quality planCh 6 development plan and quality plan
Ch 6 development plan and quality plan
 
ATAM
ATAMATAM
ATAM
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Software architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding GuideSoftware architectural patterns - A Quick Understanding Guide
Software architectural patterns - A Quick Understanding Guide
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 

Semelhante a Software architecture

Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
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.pptxMahmoudZidan53
 
Architectural Design
Architectural DesignArchitectural Design
Architectural DesignJay Thakkar
 
Architectural Design.pptx
Architectural Design.pptxArchitectural Design.pptx
Architectural Design.pptxssuser8c0d24
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfProf. Dr. K. Adisesha
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9Ian Sommerville
 
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.pptxSomnathMule5
 
ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)Rida Sajid
 
Ch6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxCh6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxubaidullah75790
 
Architecture and design
Architecture and designArchitecture and design
Architecture and designhimanshu_airon
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptBule Hora University
 

Semelhante a Software architecture (20)

Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Ch 6
Ch 6Ch 6
Ch 6
 
Lecture 6 se
Lecture 6 seLecture 6 se
Lecture 6 se
 
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
 
Ch6.ppt
Ch6.pptCh6.ppt
Ch6.ppt
 
Ch6
Ch6Ch6
Ch6
 
Ch6
Ch6Ch6
Ch6
 
Sda 2
Sda   2Sda   2
Sda 2
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
 
Architectural Design.pptx
Architectural Design.pptxArchitectural Design.pptx
Architectural Design.pptx
 
software architecture
software architecturesoftware architecture
software architecture
 
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdfSoftware Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Ch7-Software Engineering 9
Ch7-Software Engineering 9Ch7-Software Engineering 9
Ch7-Software Engineering 9
 
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
 
ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)ch6 ArchitecturalDesign (NTU)
ch6 ArchitecturalDesign (NTU)
 
Ch6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptxCh6 archtchure design in software en.pptx
Ch6 archtchure design in software en.pptx
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
 
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.pptChapter 3_Software Design sunorganisedASE_BW_finalised.ppt
Chapter 3_Software Design sunorganisedASE_BW_finalised.ppt
 

Último

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 AidPhilip Schwarz
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%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 Stilfonteinmasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
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
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 

Último (20)

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
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%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
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
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
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

Software architecture

  • 1. An Introduction to Software Architecture Software Engineering Lab. Summer 2006
  • 2. Definition The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
  • 4. Summary: Influences on the Architect
  • 5. Why is architecture important? ►Handling complexity ►Communication among stakeholders ►Early Design Decisions ►SA is a transferable, reusable model
  • 6. Software Architecture Document 1. Introduction 2. Architectural Representation 3. Architectural Goals and Constraints 4. Use-Case View 5. Logical View 6. Process View 7. Deployment View 8. Implementation View 9. Data View (optional) 10. Size and Performance 11. Quality
  • 7. Architectural Patterns : Definition An architectural style or pattern is  a description of the component and connector types involved in the style  the collection of rules that constrain and relate them
  • 8. Model-View-Controller ► Context  Provides a flexible structure for developing interactive applications. ► Problem  User interfaces are subject to changes. As new features are added to the system, the UI must provide appropriate command and menus to handle them.  Different platforms support different ‘look and feel’ standards; the UI must be portable.  Different kind of users may expect different data format from the UI (bar char, spreadsheet etc.). ► Solution  Divide the system into three parts: processing, output, and input:  Model: contains the processing and the data involved.  View: presents the output; each view provides specific presentation of the same model.  Controller: captures user input (events-> mouse clicks, keyboard input etc.). Each view is associated to a controller, which captures user input.
  • 9. Model-View-Controller ► Main goal:  facilitate and optimize the implementation of interactive systems, particularly those that use multiple synchronized presentations of shared information. ► Key idea:  separation between the data and its presentation, which is carried by different objects. ► Controllers typically implement event-handling mechanisms that are executed when corresponding events occur. ► Changes made to the model by the user via controllers are directly propagated to corresponding views. The change propagation mechanism can be implemented using the observer (design) pattern.
  • 10. A Stock Trading Application
  • 11.
  • 12. Layered Pattern ► Context  You are working with a large, complex system and you want to manage complexity by decomposition. ► Problem  How do you structure an application to support such operational requirements as maintainability, scalability, extensibility, robustness, and security? ► Solutions  Compose the solution into a set of layers. Each layer should be cohesive and at Roughly the same level of abstraction. Each layer should be loosely coupled to the layers underneath.
  • 13. Layered Pattern ► Layering consists of a hierarchy of layers, each providing service to the layer above it and serving as client to the layer below. ► Interactions among layers are defined by suitable communication protocols. ► Interactions among non-adjacent layers must be kept to the minimum possible. ► Layering is different from composition  higher-layers do not encapsulate lower layers  lower layers do not encapsulate higher layers (even though there is an existence dependency)
  • 14. Three-Layered Pattern ► Context  You are building a business solution using layers to organize your application. ► Problem  How do you organize your application to reuse business logic, provide deployment flexibility and conserve valuable resource connections? ► Solutions  Create three layers: presentation, business logic and data access.  Locate all database-related code, including database clients access and utility components, in the data access layer.  Eliminate dependencies between business layer components and data access components.  Either eliminate the dependencies between the business layer and the presentation layer or manage them using the Observer pattern.
  • 15.
  • 16. Software Architecture Document 1. Introduction 2. Architectural Representation 3. Architectural Goals and Constraints 4. Use-Case View 5. Logical View 6. Process View 7. Deployment View 8. Implementation View 9. Data View (optional) 10. Size and Performance 11. Quality
  • 17. Architectural Goals and Constraints ► The architecture will be formed by considering:  functional requirements, captured in the Use-Case Model, and  non-functional requirements, quality att. ► However these are constraints imposed by the environment in which the software must operate that will shape the architecture :  need to reuse existing assets  imposition of various standards  need for compatibility with existing systems
  • 18. Software Architecture Document 1. Introduction 2. Architectural Representation 3. Architectural Goals and Constraints 4. Use-Case View 5. Logical View 6. Process View 7. Deployment View 8. Implementation View 9. Data View (optional) 10. Size and Performance 11. Quality
  • 19. Architectural Structures and Views In construction, there are blueprints of  Plan , Different sides of construction , Electrical wiring , Plumbing, … Each of these views specifies a single entity (i.e. the construction) from a different perspective (used by a different person, for a different goal). Similarly there are different structures and views in SA. ► View is a representation of software architecture based on an structure as written by the architect and read by stakeholders (an instance of the structure) ► SA is documented by a number of views.
  • 20. The “4+1” Views of Architecture
  • 21. Use-case View ► Contains only architecturally significant use cases (whereas the final use case model contains all the use cases).  The logical view is derived using the use cases identified in the architectural view of the use case model. ► Architecturally significant use cases:  critical use cases, those that are most important to the users of the system (from a functionality perspective)  use cases that carry the major risks  use cases that have the most important quality requirements, such as performance, security, usability, etc.
  • 22. Use-case View : Example
  • 23. Logical View ► The Logical View is a subset of the Design Model which presents architecturally significant design elements ► describes the most important classes ► their organization in packages and subsystems ► organization of these packages and subsystems into layers ► It also describes the most important use-case realizations, for example, the dynamic aspects of the architecture
  • 24. Logical View : Class Diagram
  • 25. Logical View : Collaboration Diagram Deposit Use case
  • 26. Logical View : Package Diagram
  • 27. Process View ►Consists of the processes and threads that form the system’s concurrency and synchronization mechanisms, as well as their interactions
  • 28. Deployment View ►This section describes one or more physical network (hardware) configurations on which the software is deployed and run.
  • 29. Implementation View ► Describes the organization of static software modules (source code, data files, executables, documentation etc.) in the development environment in terms of Packaging and layering ► Are modeled using UML Component Diagrams. ► UML components are physical and replaceable parts of a system that conform to and provide the realization of a set of interfaces
  • 30. Software Architecture Document 1. Introduction 2. Architectural Representation 3. Architectural Goals and Constraints 4. Use-Case View 5. Logical View 6. Process View 7. Deployment View 8. Implementation View 9. Data View (optional) 10. Size and Performance 11. Quality
  • 31. Size and Performance ► The number of key elements the system will have to handle (the number of concurrent online users for an airline reservation system, …) ► The key performance measures of the system, such as average response time for key events Most of these qualities are captured as requirements; they are presented here because they shape the architecture in significant ways and warrant special focus. For each requirement, discuss how the architecture supports this requirement.
  • 32. Quality ►Operating performance requirements, such as mean-time between failure (MTBF). ►Quality targets, such as "no unscheduled down-time" ►Extensibility targets, such as "the software will be upgradeable while the system is running". ►Portability targets, such as hardware platforms, operating systems, languages