SlideShare a Scribd company logo
Ingeniería del Software-Arquitectura de sistemas software
1Jose María Álvarez Rodríguez
An introduction to
architectural modeling
Software Engineering
Jose María Álvarez Rodríguez
Course 2018/2019
Software Engineering-Systems and Software architecture
2Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
First questions
What is an architecture?
Any example of architecture?
What is a software architecture?
Who affects a software architecture?
What is the role of a software
architect?
How a software architecture is
described and documented?
3Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Notion of architecture (Oxford dictionary)
Domains:
• Civil architecture
• Military architecture
• Hydraulic architecture
• Naval architecture
• Sacred architecture
• …
3
1
2
The art or practice of designing and
constructing buildings.
The style in which a building is
designed and constructed, especially
with regard to a specific period,
place, or culture.
The complex or carefully designed
structure of something.
4Jose María Álvarez Rodríguez
Software Engineering-Systems and
Software architecture
Architecture and architects
5Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
What is the role of an architect?
Stakeholders
• Person, group or entity
• User, client or affected by
Design an infrastructure
• Needs
• Legal framework
• Security, economical, etc.
restrictions
• Art, Science and Engineering
Use cases
• Exploitation
• Enjoy
• …
Holistic/complete view
• All elements
• All relationships
• All interactions
6Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Definition of software architecture
Software
Architecture
Relationships
Structural (static)
Interactions (Dynamic)
Provision
Products and services to a domain
High-level view of an infrastructure
Subsystems and components
Restrictions
Quality, legal, economical, etc..
Use cases
Reach goals
Stakeholders
Meet needs
“<system> fundamental concepts or properties of a system in its
environment embodied in its elements, relationships, and in the
principles of its design and evolution.”
Source: ISO/IEC/IEEE 42010:2011 Systems and software engineering —Architecture description
Complexity Management
7Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
A complex software system: Smart cars
Who are the stakeholders?
Which are their goals?
How goals are reached?
8Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
On-going example: Github
Learn more: https://github.com/
Community Social network
Projects Repositories
• Creation of community of
interest
• Groups
• Organizations
• Project management
• Agile techniques
• Documentation
• Toolchain integration
• Social platform to manage
the lifecycle of a software
Project
• Developers
• Repository and source code
management
• Versioning, “commits”,
“issues”, etc.
9Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
A software architecture as a System of Systems
System of Systems (SoS)
A system of systems (SoS) brings together a set of systems for a task
that none of the systems can accomplish on its own. Each constituent
system keeps its own management, goals, and resources while
coordinating within the SoS and adapting to meet SoS goals.
Fuente: ISO 15288:2015
Data management
Representation, storage and
access.
Repository management
Git protocl
Authentication
User management
Social network
Relationships
Software distribution
Release management
Graphical user interface
Depending on functionality
and end-user
Agreement
Processes
Organizational Project-
Enabling Processes
Technical Management
Processes
Project Planning Process
(Clause 6.3.1)
Project Assessment and
Control Process (Clause
6.3.2)
Risk Management
Process (Clause 6.3.4)
Decisión Management
Process (Clause 6.3.3)
Configuration
Management Process
(Clause 6.3.5)
Information Management
Process (Clause 6.3.6)
Measurement Process
(Clause 6.3.7)
Acquisition Process (Clause
6.1.1)
Supply Process (Clause
6.1.2)
Life Cycle Model
Management Process
(Clause 6.2.1)
Infrastructure
Management Process
(Clause 6.2.2)
Portfolio Management
Process (Clause 6.2.3)
Technical Processes
Bussiness or Mission
Analysis Process (Clause
6.4.1)
Stakeholder Needs &
Requirements Definition
Process (Clause 6.4.2)
Architecture Definition
Process (Clause 6.4.4)
System Requirements
Definition Process
(Clause 6.4.3)
Design Definition Process
(Clause 6.4.5)
System Analysis Process
(Clause 6.4.6)
Implentation Process
(Clause 6.4.7)
System Life Cycle Processes
ISO 15288:2015 10
11Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Principles of a software architecture
Business
• Maximize benefits
• Corporate commitment and business
continuity
• Responsibility, law and ethics
Data management
• Shared and accessible asset
• Common vocabulary
• Security
Applications
• Technological-neutral approach
• Ease to use
Technical
• Requirements and change
management
• Interoperability, performance,
etc.
12Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Definitions
Any software system has an architecture even if it is unknown or not documented...
It is the structure or structures of the
system, which comprise software
elements, the externally visible
properties of those elements, and
the relationships among them.
Software
Architecture
Static
structure
Dynamic
structure
Quality
property
Architectu-
ral
element
Architectural
description
It defines its internal
design-time elements and their
arrangement
It defines its runtime
elements and their interactions.
It is an externally visible,
nonfunctional property of a system
such as performance, security, or
scalability.
It is a fundamental
piece from which a system can be
considered to be constructed.
It is a set of products that
documents an architecture in a way
its stakeholders can understand
and demonstrates that the
architecture has met their concerns
See original definition in [1].
13Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Description of a software architecture
A stakeholder in a software architecture is a person,
group, or entity with an interest in or concerns about
the realization of the architecture.
Stakeholder
A view is a representation of one or more structural aspects of
an architecture that illustrates how the architecture addresses
one or more concerns held by one or more of its stakeholders
View
An abstract representation of a process,
activity o physical reality.
Model
A concern about an architecture is a requirement, an
objective, an intention, or an aspiration a stakeholder has
for that architecture.
Concern
A viewpoint is a collection of patterns, templates, and
conventions for constructing one type of view.
Viewpoint
01
02
03
04
05
See original definitions in [1].
14Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Description of a software architecture
See original model in [1].
15Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Documenting a software architecture: the 4+1 view model by Krutchen [2]
Logical view Development view
Process view Physical view
Scenarios
See original document in [2].
16Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
On-going example: Github scenarios
Active user
Create repository
Make login
«uses»
17Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
The 4+1 view model by Krutchen: logical view
End-users
Stakeholders
Class and/or component
diagram UML
Notation
Information model
Concern
Functional
Requirements
18Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
On-going example: a class diagram for Github
User
Organization TeamRepository
Commit
File
Issue
Comment
1
1..*
1
*
1
*
1
*
1
*
1 *
1
*
1 *
1..*
*
19Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
On-going example: a component diagram for Github
Business
Datos
User interface & API
External services
Cross-cutting
services
GUI User GUI Repository API
User Manager Repo Manager
Data manager
Auth GIT protocol
Social Network
Google Auth
Security
...
20Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
The 4+1 view model by Krutchen: process view
System integrators
Stakeholders
Sequence diagram in UML
Other UML diagrams: activity,
communication, etc.
Notation
Concurrency,
synchronization
Interaction
Concern
Performance
Availability
Reliability
Concurrency
Distribution
Security
Requirements
21Jose María Álvarez Rodríguez
Ingeniería del Software-Arquitectura de sistemas software
On-going example: a sequence diagram for Github
:User Manager :Auth
Registered user
login(credentials)
validate(credentials)
user
:Repo Manager
create_repository(user, repo_data)
:Data Manager
Active user
:User Manager
get_info(user)
user_info
validate(user_info,repo_data)
new_repository(user, repo_data)
OK()
22Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
The 4+1 view model by Krutchen: physical view
IT engineers
Stakeholders
Deployment diagram
in UML
Notation
Mapping software-
hardware
Concern
Performance
Availability
Reliability
Scalability
Topology
Communications
Requirements
23Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
On-going example: a deployment diagram for Github
:jboss
User Manager
Repo Manager Auth
GIT protol
Social Network
:arangodb
Data manager
:tomcat
GUI User
GUI Repository
API
https https
24Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
The 4+1 view model by Krutchen: development view
Developers
Stakeholders
Component and/or
package diagram in
UML
Notation
Software
organization in the
development
environment
Concern
Software management
Reuse
Portability
Maintainability
Platform and technological
restrictions
Requirements
25Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
The 4+1 view model by Krutchen: summary
Logical
(conceptual)
Process
(runtime)
Development
(implementation)
Physical
(deployment)
Stakholders Information model
Concurrency,
synchronization
Interaction
Software organization in
the development
environment
Mapping software-
hardware
Concern End-users System integrators Developers IT engineers
Requirements Functional
Performance
Availability
Reliability
Concurrency
Distribution
Security
Software management
Reuse
Portability
Maintainability
Platform and technological
restrictions
Performance
Availability
Reliability
Scalability
Topology
Communications
Notation
Class and/or component
diagram in UML
Sequence diagram in UML
Component and/or package
diagram in UML
Deployment diagram in
UML
26Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Other view models: Rozanski & Woods [1]
27Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Main risks of a multiple view model
• It is necessary to make a decision of which view are more adequate
• Dependencies among the different system concerns
• In general, a good architecture depends on experience and skills
Wrong
views
• Kruchten 4-1 and Rozanski-Woods 6
• A view → creation and maintenance costs (consistency)
• Join view for the shake of simplicity
Fragmenta-
tion
• All views must be consistent, they represent the same system
• Maintenance costs to keep consistency
• An scenario → process → components → classes
• Establish the proper dependencies to calculate the impact of a change.
Inconsis-
tency
28Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Description of a software architecture
See original description in [1].
29Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Some questions to think about…
How can I build
relationships between
different views?
Why architecture and
architecture descriptions?
What is the relationship
with reverse
engineering?
What is the relationship
with forward engineering?
30Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
Known-problems in a software architecture
Software architecture re-definition
Erosion
Add new design decisions not
included in the initial model
Violate existing models
Drift
Add new design decisions not
included in the initial model
Do not violate existing models
31Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
A good enough software architecture…
It shall meet the needs of the
stakeholders.
All functional and non-
functional requirements
cannot be specified in just one
iteration.
It shall communicate the
relevant concerns to the
proper stakeholders.
32Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
A good enough software architecture…
Cohesion
A measure of the strength of association of the
elements within a module. (ISO/IEC/IEEE
24765)
-Intra-module functionality
Preferred value: high
Coupling
A measure of the interdependence among
modules in a computer program. (ISO/IEC/IEEE
24765)
-Inter-module dependencies
Preferred value: low
33Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
First questions: any answer?
What is an architecture?
Any example of architecture?
What is a software architecture?
Who affects a software architect?
What is the role of a software
architect?
How a software architecture is
described and documented?
34Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
•Make a description of an existing software system
•E.g.: Twitter, Instagram, Linkedin, etc.
Objective
• Work in groups
• 2-3 people
• 20 minutes
Method
• Use case, class and component diagramsOutcome
• Presentation and discussion
• 2 groups (volunteers?)
• 10 minutes
Evaluation
Task
35Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
1-minute quizz questions (Aulaglobal)
a) Architecture is defined by the recommended practice as the fundamental organization
of a system, embodied in its components, their relationships to each other and the
environment, and the principles governing its design and evolution.
b) Architecture is defined by the recommended practice as the functional organization of
a system.
c) Architecture is defined by the recommended practice as the fundamental organization
of a system.
d) None of the answers is correct.
Q1:A definition of “software architecture”…
a) Represents the system from the developer perspective with a class diagram.
b) Represents the system from the developer perspective with a component or
package diagram.
c) Represents the interactions between system components through a component
diagram.
d) a) and b) are correct.
Q2: In the 4+1 model, the development view…
a) Fragmentation
b) Inconsistencies
c) Too much views
d) All of them are problems.
Q3: Which is an issue of having multiple views
of an system?
36Jose María Álvarez Rodríguez
Software Engineering-Systems
and Software architecture
Summary
37Jose María Álvarez Rodríguez
Software Engineering-Systems and Software architecture
References and specific resources
[1] N. Rozanski and E. Woods, Software systems architecture: working with stakeholders using
viewpoints and perspectives, 2nd ed. Upper Saddle River, NJ: Addison-Wesley, 2012.
[2] P. B. Kruchten, “The 4+1 View Model of architecture,” IEEE Softw., vol. 12, no. 6, pp. 42–50, Nov.
1995.
-Section “6.1 Architectural design decisions” from “Software Engineering 10th Edition”, I.
Sommerville, 2016.
-Section “6.2 Architectural views” from “Software Engineering 10th Edition”, I. Sommerville, 2016.

More Related Content

PPTX
Software Architecture: introduction to the abstraction
PDF
Software Architecture and Design Introduction
PPTX
Software Architecture: Trends
PDF
Introduction to SOFTWARE ARCHITECTURE
PPT
24 dssa and_product_lines
PDF
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
PPTX
10 solution architecture concepts
PPTX
Software Architecture Design for Begginers
Software Architecture: introduction to the abstraction
Software Architecture and Design Introduction
Software Architecture: Trends
Introduction to SOFTWARE ARCHITECTURE
24 dssa and_product_lines
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
10 solution architecture concepts
Software Architecture Design for Begginers

What's hot (20)

PPTX
Data Designs (Software Engg.)
PPTX
Architecture vs Design
PDF
10 user centered design
PPT
Oose unit 1 ppt
PDF
Software Architecture: Introduction to the Abstraction
PPTX
unit 5 Architectural design
PDF
Intro to Software Engineering - Software Design
PDF
Architectural approaches for implementing Clinical Decision Support Systems i...
PDF
Software architecture for developers by Simon Brown
PDF
L02 What is Software Architecture?
PPTX
Formal approaches to software architecture design thesis presentation
PDF
Software Architecture: Introduction
PPT
Software Architecture
PPT
Oose unit 4 ppt
PPT
Oose unit 3 ppt
PPTX
Software Architecture
PPTX
PDF
Software Engineering - chp5- software architecture
PPTX
Software Architecture Views and Viewpoints
PDF
System Development Life Cycle (SDLC)
Data Designs (Software Engg.)
Architecture vs Design
10 user centered design
Oose unit 1 ppt
Software Architecture: Introduction to the Abstraction
unit 5 Architectural design
Intro to Software Engineering - Software Design
Architectural approaches for implementing Clinical Decision Support Systems i...
Software architecture for developers by Simon Brown
L02 What is Software Architecture?
Formal approaches to software architecture design thesis presentation
Software Architecture: Introduction
Software Architecture
Oose unit 4 ppt
Oose unit 3 ppt
Software Architecture
Software Engineering - chp5- software architecture
Software Architecture Views and Viewpoints
System Development Life Cycle (SDLC)
Ad

Similar to Systems and Software Architecture: an introduction to architectural modelling (20)

PPTX
NISI Agile Software Architecture Slide Deck
PDF
Jacques Van Niekerk Workshop on IWMC 2015
PPTX
UNIT-3_SE_PPT1.pptx software engineering
PPTX
SoftwareArchitecture.pptx Software Architecture
PPT
The system development environment The system development environment
PPT
Chapter 1(1) system development life .ppt
PPTX
Software Engineering and management project development
PPTX
PDF
Lecture-2-Architectural_Concepts.pdf
PDF
lecture 1.pdf
PPT
Chapter1
PPTX
Software Architecture and Design CS.pptx
PPTX
This is about systems development methodology designed and prepared by A prof...
PPTX
Secure Design: Threat Modeling
PDF
Week-2_LectureA1_701.pdf
PPTX
software engineering introduction is a gateway of engineer
PDF
Keynote at-icpc-2020
PPTX
SDA 01.pptx
PPTX
UNIT 01 SMD.pptx
PPTX
Final project presentation at arba minch university (3).pptx
NISI Agile Software Architecture Slide Deck
Jacques Van Niekerk Workshop on IWMC 2015
UNIT-3_SE_PPT1.pptx software engineering
SoftwareArchitecture.pptx Software Architecture
The system development environment The system development environment
Chapter 1(1) system development life .ppt
Software Engineering and management project development
Lecture-2-Architectural_Concepts.pdf
lecture 1.pdf
Chapter1
Software Architecture and Design CS.pptx
This is about systems development methodology designed and prepared by A prof...
Secure Design: Threat Modeling
Week-2_LectureA1_701.pdf
software engineering introduction is a gateway of engineer
Keynote at-icpc-2020
SDA 01.pptx
UNIT 01 SMD.pptx
Final project presentation at arba minch university (3).pptx
Ad

More from CARLOS III UNIVERSITY OF MADRID (20)

PDF
TSUNAMI DESINFORMACIÓN: IA contra el caos Informativo. Proyecto IVERES UC3M ...
PDF
Proyecto IVERES-UC3M
PDF
RTVE: Sustainable Development Goal Radar
PPTX
Engineering 4.0: Digitization through task automation and reuse
PDF
LOTAR-PDES: Engineering digitalization through task automation and reuse in t...
PPTX
SESE 2021: Where Systems Engineering meets AI/ML
PDF
Sailing the V: Engineering digitalization through task automation and reuse i...
PPTX
Deep Learning Notes
PDF
H2020-AHTOOLS Use Case 3 Functional Design
PDF
AI4SE: Challenges and opportunities in the integration of Systems Engineering...
PDF
INCOSE IS 2019: AI and Systems Engineering
PDF
Challenges in the integration of Systems Engineering and the AI/ML model life...
PDF
Blockchain en la Industria Musical
PDF
OSLC KM: Elevating the meaning of data and operations within the toolchain
PDF
Blockchain y sector asegurador
PDF
OSLC KM (Knowledge Management): elevating the meaning of data and operations ...
PDF
Detection of fraud in financial blockchain-based transactions through big dat...
PDF
News headline generation with sentiment and patterns: A case study of sports ...
PDF
Blockchain y la industria musical
PDF
Preparing your Big Data start-up pitch
TSUNAMI DESINFORMACIÓN: IA contra el caos Informativo. Proyecto IVERES UC3M ...
Proyecto IVERES-UC3M
RTVE: Sustainable Development Goal Radar
Engineering 4.0: Digitization through task automation and reuse
LOTAR-PDES: Engineering digitalization through task automation and reuse in t...
SESE 2021: Where Systems Engineering meets AI/ML
Sailing the V: Engineering digitalization through task automation and reuse i...
Deep Learning Notes
H2020-AHTOOLS Use Case 3 Functional Design
AI4SE: Challenges and opportunities in the integration of Systems Engineering...
INCOSE IS 2019: AI and Systems Engineering
Challenges in the integration of Systems Engineering and the AI/ML model life...
Blockchain en la Industria Musical
OSLC KM: Elevating the meaning of data and operations within the toolchain
Blockchain y sector asegurador
OSLC KM (Knowledge Management): elevating the meaning of data and operations ...
Detection of fraud in financial blockchain-based transactions through big dat...
News headline generation with sentiment and patterns: A case study of sports ...
Blockchain y la industria musical
Preparing your Big Data start-up pitch

Recently uploaded (20)

PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
01-Introduction-to-Information-Management.pdf
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PDF
Classroom Observation Tools for Teachers
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
Basic Mud Logging Guide for educational purpose
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
Pre independence Education in Inndia.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
PPTX
Cell Structure & Organelles in detailed.
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Microbial diseases, their pathogenesis and prophylaxis
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Final Presentation General Medicine 03-08-2024.pptx
01-Introduction-to-Information-Management.pdf
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
Classroom Observation Tools for Teachers
FourierSeries-QuestionsWithAnswers(Part-A).pdf
O5-L3 Freight Transport Ops (International) V1.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Microbial disease of the cardiovascular and lymphatic systems
Basic Mud Logging Guide for educational purpose
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
Pre independence Education in Inndia.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
Origin of periodic table-Mendeleev’s Periodic-Modern Periodic table
Cell Structure & Organelles in detailed.
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...

Systems and Software Architecture: an introduction to architectural modelling

  • 1. Ingeniería del Software-Arquitectura de sistemas software 1Jose María Álvarez Rodríguez An introduction to architectural modeling Software Engineering Jose María Álvarez Rodríguez Course 2018/2019 Software Engineering-Systems and Software architecture
  • 2. 2Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture First questions What is an architecture? Any example of architecture? What is a software architecture? Who affects a software architecture? What is the role of a software architect? How a software architecture is described and documented?
  • 3. 3Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Notion of architecture (Oxford dictionary) Domains: • Civil architecture • Military architecture • Hydraulic architecture • Naval architecture • Sacred architecture • … 3 1 2 The art or practice of designing and constructing buildings. The style in which a building is designed and constructed, especially with regard to a specific period, place, or culture. The complex or carefully designed structure of something.
  • 4. 4Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Architecture and architects
  • 5. 5Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture What is the role of an architect? Stakeholders • Person, group or entity • User, client or affected by Design an infrastructure • Needs • Legal framework • Security, economical, etc. restrictions • Art, Science and Engineering Use cases • Exploitation • Enjoy • … Holistic/complete view • All elements • All relationships • All interactions
  • 6. 6Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Definition of software architecture Software Architecture Relationships Structural (static) Interactions (Dynamic) Provision Products and services to a domain High-level view of an infrastructure Subsystems and components Restrictions Quality, legal, economical, etc.. Use cases Reach goals Stakeholders Meet needs “<system> fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution.” Source: ISO/IEC/IEEE 42010:2011 Systems and software engineering —Architecture description Complexity Management
  • 7. 7Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture A complex software system: Smart cars Who are the stakeholders? Which are their goals? How goals are reached?
  • 8. 8Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture On-going example: Github Learn more: https://github.com/ Community Social network Projects Repositories • Creation of community of interest • Groups • Organizations • Project management • Agile techniques • Documentation • Toolchain integration • Social platform to manage the lifecycle of a software Project • Developers • Repository and source code management • Versioning, “commits”, “issues”, etc.
  • 9. 9Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture A software architecture as a System of Systems System of Systems (SoS) A system of systems (SoS) brings together a set of systems for a task that none of the systems can accomplish on its own. Each constituent system keeps its own management, goals, and resources while coordinating within the SoS and adapting to meet SoS goals. Fuente: ISO 15288:2015 Data management Representation, storage and access. Repository management Git protocl Authentication User management Social network Relationships Software distribution Release management Graphical user interface Depending on functionality and end-user
  • 10. Agreement Processes Organizational Project- Enabling Processes Technical Management Processes Project Planning Process (Clause 6.3.1) Project Assessment and Control Process (Clause 6.3.2) Risk Management Process (Clause 6.3.4) Decisión Management Process (Clause 6.3.3) Configuration Management Process (Clause 6.3.5) Information Management Process (Clause 6.3.6) Measurement Process (Clause 6.3.7) Acquisition Process (Clause 6.1.1) Supply Process (Clause 6.1.2) Life Cycle Model Management Process (Clause 6.2.1) Infrastructure Management Process (Clause 6.2.2) Portfolio Management Process (Clause 6.2.3) Technical Processes Bussiness or Mission Analysis Process (Clause 6.4.1) Stakeholder Needs & Requirements Definition Process (Clause 6.4.2) Architecture Definition Process (Clause 6.4.4) System Requirements Definition Process (Clause 6.4.3) Design Definition Process (Clause 6.4.5) System Analysis Process (Clause 6.4.6) Implentation Process (Clause 6.4.7) System Life Cycle Processes ISO 15288:2015 10
  • 11. 11Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Principles of a software architecture Business • Maximize benefits • Corporate commitment and business continuity • Responsibility, law and ethics Data management • Shared and accessible asset • Common vocabulary • Security Applications • Technological-neutral approach • Ease to use Technical • Requirements and change management • Interoperability, performance, etc.
  • 12. 12Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Definitions Any software system has an architecture even if it is unknown or not documented... It is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Software Architecture Static structure Dynamic structure Quality property Architectu- ral element Architectural description It defines its internal design-time elements and their arrangement It defines its runtime elements and their interactions. It is an externally visible, nonfunctional property of a system such as performance, security, or scalability. It is a fundamental piece from which a system can be considered to be constructed. It is a set of products that documents an architecture in a way its stakeholders can understand and demonstrates that the architecture has met their concerns See original definition in [1].
  • 13. 13Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Description of a software architecture A stakeholder in a software architecture is a person, group, or entity with an interest in or concerns about the realization of the architecture. Stakeholder A view is a representation of one or more structural aspects of an architecture that illustrates how the architecture addresses one or more concerns held by one or more of its stakeholders View An abstract representation of a process, activity o physical reality. Model A concern about an architecture is a requirement, an objective, an intention, or an aspiration a stakeholder has for that architecture. Concern A viewpoint is a collection of patterns, templates, and conventions for constructing one type of view. Viewpoint 01 02 03 04 05 See original definitions in [1].
  • 14. 14Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Description of a software architecture See original model in [1].
  • 15. 15Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Documenting a software architecture: the 4+1 view model by Krutchen [2] Logical view Development view Process view Physical view Scenarios See original document in [2].
  • 16. 16Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture On-going example: Github scenarios Active user Create repository Make login «uses»
  • 17. 17Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture The 4+1 view model by Krutchen: logical view End-users Stakeholders Class and/or component diagram UML Notation Information model Concern Functional Requirements
  • 18. 18Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture On-going example: a class diagram for Github User Organization TeamRepository Commit File Issue Comment 1 1..* 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1..* *
  • 19. 19Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture On-going example: a component diagram for Github Business Datos User interface & API External services Cross-cutting services GUI User GUI Repository API User Manager Repo Manager Data manager Auth GIT protocol Social Network Google Auth Security ...
  • 20. 20Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture The 4+1 view model by Krutchen: process view System integrators Stakeholders Sequence diagram in UML Other UML diagrams: activity, communication, etc. Notation Concurrency, synchronization Interaction Concern Performance Availability Reliability Concurrency Distribution Security Requirements
  • 21. 21Jose María Álvarez Rodríguez Ingeniería del Software-Arquitectura de sistemas software On-going example: a sequence diagram for Github :User Manager :Auth Registered user login(credentials) validate(credentials) user :Repo Manager create_repository(user, repo_data) :Data Manager Active user :User Manager get_info(user) user_info validate(user_info,repo_data) new_repository(user, repo_data) OK()
  • 22. 22Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture The 4+1 view model by Krutchen: physical view IT engineers Stakeholders Deployment diagram in UML Notation Mapping software- hardware Concern Performance Availability Reliability Scalability Topology Communications Requirements
  • 23. 23Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture On-going example: a deployment diagram for Github :jboss User Manager Repo Manager Auth GIT protol Social Network :arangodb Data manager :tomcat GUI User GUI Repository API https https
  • 24. 24Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture The 4+1 view model by Krutchen: development view Developers Stakeholders Component and/or package diagram in UML Notation Software organization in the development environment Concern Software management Reuse Portability Maintainability Platform and technological restrictions Requirements
  • 25. 25Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture The 4+1 view model by Krutchen: summary Logical (conceptual) Process (runtime) Development (implementation) Physical (deployment) Stakholders Information model Concurrency, synchronization Interaction Software organization in the development environment Mapping software- hardware Concern End-users System integrators Developers IT engineers Requirements Functional Performance Availability Reliability Concurrency Distribution Security Software management Reuse Portability Maintainability Platform and technological restrictions Performance Availability Reliability Scalability Topology Communications Notation Class and/or component diagram in UML Sequence diagram in UML Component and/or package diagram in UML Deployment diagram in UML
  • 26. 26Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Other view models: Rozanski & Woods [1]
  • 27. 27Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Main risks of a multiple view model • It is necessary to make a decision of which view are more adequate • Dependencies among the different system concerns • In general, a good architecture depends on experience and skills Wrong views • Kruchten 4-1 and Rozanski-Woods 6 • A view → creation and maintenance costs (consistency) • Join view for the shake of simplicity Fragmenta- tion • All views must be consistent, they represent the same system • Maintenance costs to keep consistency • An scenario → process → components → classes • Establish the proper dependencies to calculate the impact of a change. Inconsis- tency
  • 28. 28Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Description of a software architecture See original description in [1].
  • 29. 29Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Some questions to think about… How can I build relationships between different views? Why architecture and architecture descriptions? What is the relationship with reverse engineering? What is the relationship with forward engineering?
  • 30. 30Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Known-problems in a software architecture Software architecture re-definition Erosion Add new design decisions not included in the initial model Violate existing models Drift Add new design decisions not included in the initial model Do not violate existing models
  • 31. 31Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture A good enough software architecture… It shall meet the needs of the stakeholders. All functional and non- functional requirements cannot be specified in just one iteration. It shall communicate the relevant concerns to the proper stakeholders.
  • 32. 32Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture A good enough software architecture… Cohesion A measure of the strength of association of the elements within a module. (ISO/IEC/IEEE 24765) -Intra-module functionality Preferred value: high Coupling A measure of the interdependence among modules in a computer program. (ISO/IEC/IEEE 24765) -Inter-module dependencies Preferred value: low
  • 33. 33Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture First questions: any answer? What is an architecture? Any example of architecture? What is a software architecture? Who affects a software architect? What is the role of a software architect? How a software architecture is described and documented?
  • 34. 34Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture •Make a description of an existing software system •E.g.: Twitter, Instagram, Linkedin, etc. Objective • Work in groups • 2-3 people • 20 minutes Method • Use case, class and component diagramsOutcome • Presentation and discussion • 2 groups (volunteers?) • 10 minutes Evaluation Task
  • 35. 35Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture 1-minute quizz questions (Aulaglobal) a) Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. b) Architecture is defined by the recommended practice as the functional organization of a system. c) Architecture is defined by the recommended practice as the fundamental organization of a system. d) None of the answers is correct. Q1:A definition of “software architecture”… a) Represents the system from the developer perspective with a class diagram. b) Represents the system from the developer perspective with a component or package diagram. c) Represents the interactions between system components through a component diagram. d) a) and b) are correct. Q2: In the 4+1 model, the development view… a) Fragmentation b) Inconsistencies c) Too much views d) All of them are problems. Q3: Which is an issue of having multiple views of an system?
  • 36. 36Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture Summary
  • 37. 37Jose María Álvarez Rodríguez Software Engineering-Systems and Software architecture References and specific resources [1] N. Rozanski and E. Woods, Software systems architecture: working with stakeholders using viewpoints and perspectives, 2nd ed. Upper Saddle River, NJ: Addison-Wesley, 2012. [2] P. B. Kruchten, “The 4+1 View Model of architecture,” IEEE Softw., vol. 12, no. 6, pp. 42–50, Nov. 1995. -Section “6.1 Architectural design decisions” from “Software Engineering 10th Edition”, I. Sommerville, 2016. -Section “6.2 Architectural views” from “Software Engineering 10th Edition”, I. Sommerville, 2016.