SlideShare a Scribd company logo
1 of 39
Software Architecture 
School of Computer Science University of Oviedo 
University of Oviedo 
Software Architecture 
Part II. Taxonomies 
1: Definitions 
2014 Jose Emilio Labra Gayo
Software Architecture 
School of Computer Science University of Oviedo 
Software Architecture 
High level structure of a software system 
“Main design decisions of a system” 
If you have to change them  High cost
Software Architecture 
School of Computer Science University of Oviedo 
Software Architecture 
¿How to design? 
Creativity 
Fun 
Risk 
Can offer new solutions 
Can be unnecessary 
Method 
Efficient in familiar domains 
Predictable result 
Not always the best solution 
Proven quality techniques 
Architect
Software Architecture 
School of Computer Science University of Oviedo 
Software architecture 
Discipline evolves 
Architect must be aware of new advances 
New development techniques 
Styles and patterns 
Best tool = experience (no silver bullet) 
Self experience 
From community 
Architect
Software Architecture 
School of Computer Science University of Oviedo 
Software architecting 
Principles 
Patterns 
Styles 
Anti-patterns Software 
Architect 
Community 
Experience 
Stakeholders 
Quality 
Attributes 
Constraints 
Technology 
Architecture
Software Architecture 
School of Computer Science University of Oviedo 
Quality attributes 
A requirement that specifies how well the system 
does by some measure 
Also known as non-functional requirements 
Quality attributes are not about some specific behavior 
Most of them are -ities 
Security, Deployability, Modifiability, Accessibility, 
reliability, scalability, testability, usability, operability... 
Not all are -ities: 
Perfomance, resilience, fault tolerance, price, ... 
ISO 25010: list of some non-functional requirements
Software Architecture 
School of Computer Science University of Oviedo 
Constraints 
Pre-specified design decisions 
They reduce the space of architectures in which to 
search for a solution 
Very little software is "greenfield" 
Example: 
Frameworks, languages, languages that are required 
Constraints are given 
Architect makes design decisions to achieve other 
requirements within given constraints
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
Architectural styles 
Architectural style: 
General shape of a system 
It contains: 
Elements: Components that carry out functionality 
Constraints: define how to integrate elements 
Attributes: Advantages/disadvantages of a style
Software Architecture 
School of Computer Science University of Oviedo 
Are there pure styles? 
Pure styles = idealization 
In practice, pure styles rarely appear 
Usually, systems... 
deviate from pure styles... 
...or combine several architectural styles 
It is important to understand pure styles to: 
Understand pros and cons of a style 
Assess the consequences of a deviation from the style
Software Architecture 
School of Computer Science University of Oviedo 
Definitions 
Architectural pattern: 
Reusable and general solution to some problem that 
appears in a given context 
Important: problem
Software Architecture 
School of Computer Science University of Oviedo 
Pattern vs style 
Pattern = solution to a problem 
Style = generic, it does not have to be associated with a 
problem 
Style defines the general architecture of an 
application 
Usually, an application has one style 
...but it can have several patterns 
Patterns can appear at different scales 
High level (architectural patterns) 
Design (design patterns) 
Implementation (idioms) 
. . .
Software Architecture 
School of Computer Science University of Oviedo 
Pattern vs Style 
Styles = independent of each other 
A pattern can be related with other patterns 
A pattern composed of several patterns 
Interactions between patterns
Software Architecture 
School of Computer Science University of Oviedo 
Pattern languages and catalogs 
Pattern catalog 
A set of patterns about a subject 
It does not have to be exhaustive 
Pattern language 
A full pattern catalog about some subject 
Goal: document all the possibilities 
They usually include relationships between patterns 
Graphical map
Software Architecture 
School of Computer Science University of Oviedo 
Example of pattern language 
Source: "SOA with REST" book
Software Architecture 
School of Computer Science University of Oviedo 
Architectural tactic 
A transformation on an architecture that results in 
the improvement of some specific quality attributes 
Enumeration of techniques employed to achieve some 
particular quality attributes 
How to find good tactics? 
Experience of architects 
Documented experience in architectural styles & patterns
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
Temporal aspect 
Architecture has a temporal aspect 
Design decisions are made and unmade over a 
system’s lifetime 
At any given point in time the system has only one 
architecture 
A system’s architecture will change over time
Software Architecture 
School of Computer Science University of Oviedo 
Prescriptive Architecture 
As intended architecture 
Design decisions made prior to system's implementation 
Can be different from the implemented system 
Architecture of the system as-designed 
It usually employs pure styles
Software Architecture 
School of Computer Science University of Oviedo 
Prescriptive architecture: example
Software Architecture 
School of Computer Science University of Oviedo 
Descriptive Architecture 
As-implemented architecture 
Describes how the system was built 
Design decisions taken during development and 
maintenance
Software Architecture 
School of Computer Science University of Oviedo 
Prescriptive vs Descriptive 
Prescriptive (as intended) Descriptive (as implemented) 
Which architecture is “correct”? 
Are the two architectures consistent with one another? 
What criteria are used to establish the consistency between the two architectures? 
On what information is the answer to the preceding questions based?
Software Architecture 
School of Computer Science University of Oviedo 
Architecture evolution 
When a system evolves, ideally its prescriptive 
architecture is modified first 
In practice, the system – and thus its descriptive 
architecture – is often directly modified 
This happens because of 
Developer sloppiness 
Perception of short deadlines which prevent 
thinking through and documenting 
Lack of documented prescriptive architecture 
Need or desire for code optimizations 
Inadequate techniques or tool support
Software Architecture 
School of Computer Science University of Oviedo 
Architecture drift 
Introduction of design decisions that do not appear 
in prescriptive architecture, but do not conflict 
with it. 
Does not necessarily result in violations of 
prescriptive architecture 
It may cause violations of architectural styles 
If not properly addressed, it can lead to architecture 
erosion
Software Architecture 
School of Computer Science University of Oviedo 
Architectural degradation/erosion 
Introduction of design decisions in descriptive architecture 
that violate prescriptive architecture 
It can lead to technical debt
Software Architecture 
School of Computer Science University of Oviedo 
Technical debt 
Work that needs to be done before some job can 
be considered done 
If the debt is not paid, it keeps accumulating 
It makes changes harder later 
Some causes 
Business pressures, lack of process understanding, lack 
of test suite, non-modularity, lack of documentation, 
lack of collaboration, delayed refactoring... 
Interest payments: 
Local maintenance by users or absence of 
maintenance 
http://martinfowler.com/bliki/TechnicalDebt.html
Software Architecture 
School of Computer Science University of Oviedo 
Architecture recovery 
Determining the software architecture from its 
implementation artifacts 
Implementation artifacts: 
source code, executable files, generated docs,... 
Every system has an architecture 
Not always documented or identified 
Architecture recovery from a software system 
Reverse-engineering 
Usually with documentation 
Ensure that descriptive architecture matches 
prescriptive one
Software Architecture 
School of Computer Science University of Oviedo 
Application level view
Software Architecture 
School of Computer Science University of Oviedo 
Deployment view 
A software system cannot fulfill its purpose until it 
is deployed 
Executable modules are physically placed on the 
hardware devices on which they are supposed to 
run 
The deployment view of an architecture can be 
critical in assessing whether the system will be 
able to satisfy its requirements 
Possible assessment dimensions 
Available memory 
Power consumption 
Required network bandwidth
Software Architecture 
School of Computer Science University of Oviedo 
Example: Deployment view 
Source: Software Architecture, foundations, theory and practice. Taylor et al. 2009
Software Architecture 
School of Computer Science University of Oviedo 
Software architecture's elements 
A software system’s architecture typically is not 
(and should not be) a uniform monolith 
A software system’s architecture should be a 
composition and interplay of different elements 
Processing 
Data, also referred as information or state 
Interaction
Software Architecture 
School of Computer Science University of Oviedo 
Components 
Elements that encapsulate processing and data at runtime 
Definition 
A software component is an architectural entity that 
encapsulates a subset of the system’s functionality and/or 
data 
restricts access to that subset via an explicitly defined 
interface 
has explicitly defined dependencies on its required 
execution context 
Components typically provide application-specific services
Software Architecture 
School of Computer Science University of Oviedo 
Connectors 
In complex systems interaction may become more 
important and challenging than the functionality 
of the individual components 
Definition 
A software connector is an architectural building 
block tasked with effecting and regulating 
interactions among components 
Examples: 
procedure calls, shared memory connectors, 
message passing, streaming connectors, 
wrappers/adaptors, ...
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
Taxonomy of Software applications 
Systems software (utilities) 
Helps analyze, configure, optimize, maintain a computer 
It serves some application software 
It doesn't serve a user directly 
Examples 
Operating systems, Utility programs, Library programs, 
Translator software 
Application software 
It serves a user 
It usually depends on system software 
Classification 
General purpose, Special purpose
Software Architecture 
School of Computer Science University of Oviedo 
Some types of Software applications 
Desktop applications 
Libraries 
Command line tools 
Web applications 
Mobile apps 
RIA (Rich Internet Applications) 
Web services 
Mashups 
Embedded systems 
Real Time systems 
… 
More info: http://en.wikipedia.org/wiki/Application_software
Software Architecture 
School of Computer Science University of Oviedo
Software Architecture 
School of Computer Science University of Oviedo 
Parts of a style description 
Overview 
Elements and relations 
Constraints 
Pros & cons (quality attributes) 
Relations with other styles 
Examples
Software Architecture 
School of Computer Science University of Oviedo 
Classification of styles 
Allocation 
Building, deployment and distribution 
Modularity 
Structure of the system at development time 
Components & connectors: Behavior 
Expresses runtime behavior 
Integration 
Relationship between software systems 
Business 
Relationship with enterprise environment

More Related Content

What's hot

Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An OverviewOliver Stadie
 
Architecture vs Design
Architecture vs DesignArchitecture vs Design
Architecture vs DesignLuc Trudeau
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with GitIvano Malavolta
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms Ivano Malavolta
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersDan Douglas
 
Architecture: where do you start?
 Architecture: where do you start? Architecture: where do you start?
Architecture: where do you start?Skills Matter
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software ArchitectureSimon Guest
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software ArchitectureIvano Malavolta
 
Innoslate, A Model-Based Systems Engineering Tool
Innoslate, A Model-Based Systems Engineering ToolInnoslate, A Model-Based Systems Engineering Tool
Innoslate, A Model-Based Systems Engineering ToolElizabeth Steiner
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architectureIvano Malavolta
 
Learning uml 2_part_1
Learning uml 2_part_1Learning uml 2_part_1
Learning uml 2_part_1Mark Gaad
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect DoesEberhard Wolff
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture PatternsAssaf Gannon
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Developmenttyrantbrian
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
Data modelling tool in CASE
Data modelling tool in CASEData modelling tool in CASE
Data modelling tool in CASEManju Pillai
 

What's hot (20)

Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
Architecture vs Design
Architecture vs DesignArchitecture vs Design
Architecture vs Design
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms
 
Basics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET DevelopersBasics of Software Architecture for .NET Developers
Basics of Software Architecture for .NET Developers
 
Architecture: where do you start?
 Architecture: where do you start? Architecture: where do you start?
Architecture: where do you start?
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture[2016/2017] Introduction to Software Architecture
[2016/2017] Introduction to Software Architecture
 
Innoslate, A Model-Based Systems Engineering Tool
Innoslate, A Model-Based Systems Engineering ToolInnoslate, A Model-Based Systems Engineering Tool
Innoslate, A Model-Based Systems Engineering Tool
 
[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture[2015/2016] Introduction to software architecture
[2015/2016] Introduction to software architecture
 
Learning uml 2_part_1
Learning uml 2_part_1Learning uml 2_part_1
Learning uml 2_part_1
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect Does
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Development
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Data modelling tool in CASE
Data modelling tool in CASEData modelling tool in CASE
Data modelling tool in CASE
 

Viewers also liked

Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorJose Emilio Labra Gayo
 
Domain Driven Design com Python
Domain Driven Design com PythonDomain Driven Design com Python
Domain Driven Design com PythonFrederico Cabral
 
Software Architecture - Business software taxonomies
Software Architecture - Business software taxonomiesSoftware Architecture - Business software taxonomies
Software Architecture - Business software taxonomiesJose Emilio Labra Gayo
 
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracingTracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracingYuri Shkuro
 
Wso2 con 2014 event driven architecture Publish/Subscribe Pubsub
Wso2 con 2014 event driven architecture Publish/Subscribe PubsubWso2 con 2014 event driven architecture Publish/Subscribe Pubsub
Wso2 con 2014 event driven architecture Publish/Subscribe PubsubJohn Mathon
 
Implementing DDD Concepts in PHP
Implementing DDD Concepts in PHPImplementing DDD Concepts in PHP
Implementing DDD Concepts in PHPSteve Rhoades
 
Clean architecture with ddd layering in php
Clean architecture with ddd layering in phpClean architecture with ddd layering in php
Clean architecture with ddd layering in phpLeonardo Proietti
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10koolkampus
 
Architecture drawing presentation
Architecture drawing presentationArchitecture drawing presentation
Architecture drawing presentationCarlson Ko
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering conceptsKomal Singh
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptswweinmeyer79
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelinprajods
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 

Viewers also liked (18)

Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el Servidor
 
03 basic concepts
03 basic concepts03 basic concepts
03 basic concepts
 
Domain Driven Design com Python
Domain Driven Design com PythonDomain Driven Design com Python
Domain Driven Design com Python
 
Software Architecture - Business software taxonomies
Software Architecture - Business software taxonomiesSoftware Architecture - Business software taxonomies
Software Architecture - Business software taxonomies
 
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracingTracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
 
Wso2 con 2014 event driven architecture Publish/Subscribe Pubsub
Wso2 con 2014 event driven architecture Publish/Subscribe PubsubWso2 con 2014 event driven architecture Publish/Subscribe Pubsub
Wso2 con 2014 event driven architecture Publish/Subscribe Pubsub
 
Implementing DDD Concepts in PHP
Implementing DDD Concepts in PHPImplementing DDD Concepts in PHP
Implementing DDD Concepts in PHP
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
Clean architecture with ddd layering in php
Clean architecture with ddd layering in phpClean architecture with ddd layering in php
Clean architecture with ddd layering in php
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
5 Type Of Architecture Design Process
5 Type Of Architecture Design Process 5 Type Of Architecture Design Process
5 Type Of Architecture Design Process
 
Architecture drawing presentation
Architecture drawing presentationArchitecture drawing presentation
Architecture drawing presentation
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
 
Big Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and ZeppelinBig Data visualization with Apache Spark and Zeppelin
Big Data visualization with Apache Spark and Zeppelin
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 

Similar to Software Architecture Course - Part III Taxonomies - Definitions

02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architecturesMajong DevJfu
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.pptRohanBorgalli
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureVikas Dhyani
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
15 object orienteddesign
15 object orienteddesign15 object orienteddesign
15 object orienteddesignrandhirlpu
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
09 introduction to_modeling
09 introduction to_modeling09 introduction to_modeling
09 introduction to_modelingMajong DevJfu
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 

Similar to Software Architecture Course - Part III Taxonomies - Definitions (20)

02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architectures
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
01 the big_idea
01 the big_idea01 the big_idea
01 the big_idea
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
software architecture
software architecturesoftware architecture
software architecture
 
15 object orienteddesign
15 object orienteddesign15 object orienteddesign
15 object orienteddesign
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
09 introduction to_modeling
09 introduction to_modeling09 introduction to_modeling
09 introduction to_modeling
 
Chapter1
Chapter1Chapter1
Chapter1
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
The Design Process
The Design ProcessThe Design Process
The Design Process
 
Basics of se
Basics of seBasics of se
Basics of se
 

More from Jose Emilio Labra Gayo

Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctoradoJose Emilio Labra Gayo
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapesJose Emilio Labra Gayo
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data qualityJose Emilio Labra Gayo
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesJose Emilio Labra Gayo
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesJose Emilio Labra Gayo
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosJose Emilio Labra Gayo
 

More from Jose Emilio Labra Gayo (20)

Publicaciones de investigación
Publicaciones de investigaciónPublicaciones de investigación
Publicaciones de investigación
 
Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctorado
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapes
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data quality
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectives
 
Wikidata
WikidataWikidata
Wikidata
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologies
 
ShEx by Example
ShEx by ExampleShEx by Example
ShEx by Example
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
Introducción a la Web Semántica
Introducción a la Web SemánticaIntroducción a la Web Semántica
Introducción a la Web Semántica
 
RDF Data Model
RDF Data ModelRDF Data Model
RDF Data Model
 
2017 Tendencias en informática
2017 Tendencias en informática2017 Tendencias en informática
2017 Tendencias en informática
 
RDF, linked data and semantic web
RDF, linked data and semantic webRDF, linked data and semantic web
RDF, linked data and semantic web
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
19 javascript servidor
19 javascript servidor19 javascript servidor
19 javascript servidor
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazados
 
16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
XSLT
XSLTXSLT
XSLT
 
XPath
XPathXPath
XPath
 
RDF validation tutorial
RDF validation tutorialRDF validation tutorial
RDF validation tutorial
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingWSO2
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuidePixlogix Infotech
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformWSO2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 

Software Architecture Course - Part III Taxonomies - Definitions

  • 1. Software Architecture School of Computer Science University of Oviedo University of Oviedo Software Architecture Part II. Taxonomies 1: Definitions 2014 Jose Emilio Labra Gayo
  • 2. Software Architecture School of Computer Science University of Oviedo Software Architecture High level structure of a software system “Main design decisions of a system” If you have to change them  High cost
  • 3. Software Architecture School of Computer Science University of Oviedo Software Architecture ¿How to design? Creativity Fun Risk Can offer new solutions Can be unnecessary Method Efficient in familiar domains Predictable result Not always the best solution Proven quality techniques Architect
  • 4. Software Architecture School of Computer Science University of Oviedo Software architecture Discipline evolves Architect must be aware of new advances New development techniques Styles and patterns Best tool = experience (no silver bullet) Self experience From community Architect
  • 5. Software Architecture School of Computer Science University of Oviedo Software architecting Principles Patterns Styles Anti-patterns Software Architect Community Experience Stakeholders Quality Attributes Constraints Technology Architecture
  • 6. Software Architecture School of Computer Science University of Oviedo Quality attributes A requirement that specifies how well the system does by some measure Also known as non-functional requirements Quality attributes are not about some specific behavior Most of them are -ities Security, Deployability, Modifiability, Accessibility, reliability, scalability, testability, usability, operability... Not all are -ities: Perfomance, resilience, fault tolerance, price, ... ISO 25010: list of some non-functional requirements
  • 7. Software Architecture School of Computer Science University of Oviedo Constraints Pre-specified design decisions They reduce the space of architectures in which to search for a solution Very little software is "greenfield" Example: Frameworks, languages, languages that are required Constraints are given Architect makes design decisions to achieve other requirements within given constraints
  • 8. Software Architecture School of Computer Science University of Oviedo
  • 9. Software Architecture School of Computer Science University of Oviedo Architectural styles Architectural style: General shape of a system It contains: Elements: Components that carry out functionality Constraints: define how to integrate elements Attributes: Advantages/disadvantages of a style
  • 10. Software Architecture School of Computer Science University of Oviedo Are there pure styles? Pure styles = idealization In practice, pure styles rarely appear Usually, systems... deviate from pure styles... ...or combine several architectural styles It is important to understand pure styles to: Understand pros and cons of a style Assess the consequences of a deviation from the style
  • 11. Software Architecture School of Computer Science University of Oviedo Definitions Architectural pattern: Reusable and general solution to some problem that appears in a given context Important: problem
  • 12. Software Architecture School of Computer Science University of Oviedo Pattern vs style Pattern = solution to a problem Style = generic, it does not have to be associated with a problem Style defines the general architecture of an application Usually, an application has one style ...but it can have several patterns Patterns can appear at different scales High level (architectural patterns) Design (design patterns) Implementation (idioms) . . .
  • 13. Software Architecture School of Computer Science University of Oviedo Pattern vs Style Styles = independent of each other A pattern can be related with other patterns A pattern composed of several patterns Interactions between patterns
  • 14. Software Architecture School of Computer Science University of Oviedo Pattern languages and catalogs Pattern catalog A set of patterns about a subject It does not have to be exhaustive Pattern language A full pattern catalog about some subject Goal: document all the possibilities They usually include relationships between patterns Graphical map
  • 15. Software Architecture School of Computer Science University of Oviedo Example of pattern language Source: "SOA with REST" book
  • 16. Software Architecture School of Computer Science University of Oviedo Architectural tactic A transformation on an architecture that results in the improvement of some specific quality attributes Enumeration of techniques employed to achieve some particular quality attributes How to find good tactics? Experience of architects Documented experience in architectural styles & patterns
  • 17. Software Architecture School of Computer Science University of Oviedo
  • 18. Software Architecture School of Computer Science University of Oviedo Temporal aspect Architecture has a temporal aspect Design decisions are made and unmade over a system’s lifetime At any given point in time the system has only one architecture A system’s architecture will change over time
  • 19. Software Architecture School of Computer Science University of Oviedo Prescriptive Architecture As intended architecture Design decisions made prior to system's implementation Can be different from the implemented system Architecture of the system as-designed It usually employs pure styles
  • 20. Software Architecture School of Computer Science University of Oviedo Prescriptive architecture: example
  • 21. Software Architecture School of Computer Science University of Oviedo Descriptive Architecture As-implemented architecture Describes how the system was built Design decisions taken during development and maintenance
  • 22. Software Architecture School of Computer Science University of Oviedo Prescriptive vs Descriptive Prescriptive (as intended) Descriptive (as implemented) Which architecture is “correct”? Are the two architectures consistent with one another? What criteria are used to establish the consistency between the two architectures? On what information is the answer to the preceding questions based?
  • 23. Software Architecture School of Computer Science University of Oviedo Architecture evolution When a system evolves, ideally its prescriptive architecture is modified first In practice, the system – and thus its descriptive architecture – is often directly modified This happens because of Developer sloppiness Perception of short deadlines which prevent thinking through and documenting Lack of documented prescriptive architecture Need or desire for code optimizations Inadequate techniques or tool support
  • 24. Software Architecture School of Computer Science University of Oviedo Architecture drift Introduction of design decisions that do not appear in prescriptive architecture, but do not conflict with it. Does not necessarily result in violations of prescriptive architecture It may cause violations of architectural styles If not properly addressed, it can lead to architecture erosion
  • 25. Software Architecture School of Computer Science University of Oviedo Architectural degradation/erosion Introduction of design decisions in descriptive architecture that violate prescriptive architecture It can lead to technical debt
  • 26. Software Architecture School of Computer Science University of Oviedo Technical debt Work that needs to be done before some job can be considered done If the debt is not paid, it keeps accumulating It makes changes harder later Some causes Business pressures, lack of process understanding, lack of test suite, non-modularity, lack of documentation, lack of collaboration, delayed refactoring... Interest payments: Local maintenance by users or absence of maintenance http://martinfowler.com/bliki/TechnicalDebt.html
  • 27. Software Architecture School of Computer Science University of Oviedo Architecture recovery Determining the software architecture from its implementation artifacts Implementation artifacts: source code, executable files, generated docs,... Every system has an architecture Not always documented or identified Architecture recovery from a software system Reverse-engineering Usually with documentation Ensure that descriptive architecture matches prescriptive one
  • 28. Software Architecture School of Computer Science University of Oviedo Application level view
  • 29. Software Architecture School of Computer Science University of Oviedo Deployment view A software system cannot fulfill its purpose until it is deployed Executable modules are physically placed on the hardware devices on which they are supposed to run The deployment view of an architecture can be critical in assessing whether the system will be able to satisfy its requirements Possible assessment dimensions Available memory Power consumption Required network bandwidth
  • 30. Software Architecture School of Computer Science University of Oviedo Example: Deployment view Source: Software Architecture, foundations, theory and practice. Taylor et al. 2009
  • 31. Software Architecture School of Computer Science University of Oviedo Software architecture's elements A software system’s architecture typically is not (and should not be) a uniform monolith A software system’s architecture should be a composition and interplay of different elements Processing Data, also referred as information or state Interaction
  • 32. Software Architecture School of Computer Science University of Oviedo Components Elements that encapsulate processing and data at runtime Definition A software component is an architectural entity that encapsulates a subset of the system’s functionality and/or data restricts access to that subset via an explicitly defined interface has explicitly defined dependencies on its required execution context Components typically provide application-specific services
  • 33. Software Architecture School of Computer Science University of Oviedo Connectors In complex systems interaction may become more important and challenging than the functionality of the individual components Definition A software connector is an architectural building block tasked with effecting and regulating interactions among components Examples: procedure calls, shared memory connectors, message passing, streaming connectors, wrappers/adaptors, ...
  • 34. Software Architecture School of Computer Science University of Oviedo
  • 35. Software Architecture School of Computer Science University of Oviedo Taxonomy of Software applications Systems software (utilities) Helps analyze, configure, optimize, maintain a computer It serves some application software It doesn't serve a user directly Examples Operating systems, Utility programs, Library programs, Translator software Application software It serves a user It usually depends on system software Classification General purpose, Special purpose
  • 36. Software Architecture School of Computer Science University of Oviedo Some types of Software applications Desktop applications Libraries Command line tools Web applications Mobile apps RIA (Rich Internet Applications) Web services Mashups Embedded systems Real Time systems … More info: http://en.wikipedia.org/wiki/Application_software
  • 37. Software Architecture School of Computer Science University of Oviedo
  • 38. Software Architecture School of Computer Science University of Oviedo Parts of a style description Overview Elements and relations Constraints Pros & cons (quality attributes) Relations with other styles Examples
  • 39. Software Architecture School of Computer Science University of Oviedo Classification of styles Allocation Building, deployment and distribution Modularity Structure of the system at development time Components & connectors: Behavior Expresses runtime behavior Integration Relationship between software systems Business Relationship with enterprise environment