SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software Design
Radu_Negulescu
 

Tendances (20)

Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Architecture vs Design
Architecture vs DesignArchitecture vs Design
Architecture vs Design
 
10 user centered design
10 user centered design10 user centered design
10 user centered design
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 ppt
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the Abstraction
 
unit 5 Architectural design
 unit 5 Architectural design unit 5 Architectural design
unit 5 Architectural design
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software Design
 
Architectural approaches for implementing Clinical Decision Support Systems i...
Architectural approaches for implementing Clinical Decision Support Systems i...Architectural approaches for implementing Clinical Decision Support Systems i...
Architectural approaches for implementing Clinical Decision Support Systems i...
 
Software architecture for developers by Simon Brown
Software architecture for developers by Simon BrownSoftware architecture for developers by Simon Brown
Software architecture for developers by Simon Brown
 
L02 What is Software Architecture?
L02 What is Software Architecture?L02 What is Software Architecture?
L02 What is Software Architecture?
 
Formal approaches to software architecture design thesis presentation
Formal approaches to software architecture design   thesis presentationFormal approaches to software architecture design   thesis presentation
Formal approaches to software architecture design thesis presentation
 
Software Architecture: Introduction
Software Architecture: IntroductionSoftware Architecture: Introduction
Software Architecture: Introduction
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
Oose unit 3 ppt
Oose unit 3 pptOose unit 3 ppt
Oose unit 3 ppt
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Sda 2
Sda   2Sda   2
Sda 2
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
 
Software Architecture Views and Viewpoints
Software Architecture Views and ViewpointsSoftware Architecture Views and Viewpoints
Software Architecture Views and Viewpoints
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 

Similaire à Systems and Software Architecture: an introduction to architectural modelling

Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
stanbridge
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
stanbridge
 

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

NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
 
Jacques Van Niekerk Workshop on IWMC 2015
Jacques Van Niekerk Workshop on IWMC 2015Jacques Van Niekerk Workshop on IWMC 2015
Jacques Van Niekerk Workshop on IWMC 2015
 
Chapter 1(1) system development life .ppt
Chapter 1(1) system development life .pptChapter 1(1) system development life .ppt
Chapter 1(1) system development life .ppt
 
Sda 1
Sda   1Sda   1
Sda 1
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
Chapter1
Chapter1Chapter1
Chapter1
 
Secure Design: Threat Modeling
Secure Design: Threat ModelingSecure Design: Threat Modeling
Secure Design: Threat Modeling
 
Week-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdfWeek-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdf
 
Keynote at-icpc-2020
Keynote at-icpc-2020Keynote at-icpc-2020
Keynote at-icpc-2020
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
UNIT 01 SMD.pptx
UNIT 01 SMD.pptxUNIT 01 SMD.pptx
UNIT 01 SMD.pptx
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
V5 i3201613
V5 i3201613V5 i3201613
V5 i3201613
 

Plus de CARLOS III UNIVERSITY OF MADRID

Plus de CARLOS III UNIVERSITY OF MADRID (20)

Proyecto IVERES-UC3M
Proyecto IVERES-UC3MProyecto IVERES-UC3M
Proyecto IVERES-UC3M
 
RTVE: Sustainable Development Goal Radar
RTVE: Sustainable Development Goal  RadarRTVE: Sustainable Development Goal  Radar
RTVE: Sustainable Development Goal Radar
 
Engineering 4.0: Digitization through task automation and reuse
Engineering 4.0:  Digitization through task automation and reuseEngineering 4.0:  Digitization through task automation and reuse
Engineering 4.0: Digitization through task automation and reuse
 
LOTAR-PDES: Engineering digitalization through task automation and reuse in t...
LOTAR-PDES: Engineering digitalization through task automation and reuse in t...LOTAR-PDES: Engineering digitalization through task automation and reuse in t...
LOTAR-PDES: Engineering digitalization through task automation and reuse in t...
 
SESE 2021: Where Systems Engineering meets AI/ML
SESE 2021: Where Systems Engineering meets AI/MLSESE 2021: Where Systems Engineering meets AI/ML
SESE 2021: Where Systems Engineering meets AI/ML
 
Sailing the V: Engineering digitalization through task automation and reuse i...
Sailing the V: Engineering digitalization through task automation and reuse i...Sailing the V: Engineering digitalization through task automation and reuse i...
Sailing the V: Engineering digitalization through task automation and reuse i...
 
Deep Learning Notes
Deep Learning NotesDeep Learning Notes
Deep Learning Notes
 
H2020-AHTOOLS Use Case 3 Functional Design
H2020-AHTOOLS Use Case 3 Functional DesignH2020-AHTOOLS Use Case 3 Functional Design
H2020-AHTOOLS Use Case 3 Functional Design
 
AI4SE: Challenges and opportunities in the integration of Systems Engineering...
AI4SE: Challenges and opportunities in the integration of Systems Engineering...AI4SE: Challenges and opportunities in the integration of Systems Engineering...
AI4SE: Challenges and opportunities in the integration of Systems Engineering...
 
INCOSE IS 2019: AI and Systems Engineering
INCOSE IS 2019: AI and Systems EngineeringINCOSE IS 2019: AI and Systems Engineering
INCOSE IS 2019: AI and Systems Engineering
 
Challenges in the integration of Systems Engineering and the AI/ML model life...
Challenges in the integration of Systems Engineering and the AI/ML model life...Challenges in the integration of Systems Engineering and the AI/ML model life...
Challenges in the integration of Systems Engineering and the AI/ML model life...
 
Blockchain en la Industria Musical
Blockchain en la Industria MusicalBlockchain en la Industria Musical
Blockchain en la Industria Musical
 
OSLC KM: Elevating the meaning of data and operations within the toolchain
OSLC KM: Elevating the meaning of data and operations within the toolchainOSLC KM: Elevating the meaning of data and operations within the toolchain
OSLC KM: Elevating the meaning of data and operations within the toolchain
 
Blockchain y sector asegurador
Blockchain y sector aseguradorBlockchain y sector asegurador
Blockchain y sector asegurador
 
OSLC KM (Knowledge Management): elevating the meaning of data and operations ...
OSLC KM (Knowledge Management): elevating the meaning of data and operations ...OSLC KM (Knowledge Management): elevating the meaning of data and operations ...
OSLC KM (Knowledge Management): elevating the meaning of data and operations ...
 
Detection of fraud in financial blockchain-based transactions through big dat...
Detection of fraud in financial blockchain-based transactions through big dat...Detection of fraud in financial blockchain-based transactions through big dat...
Detection of fraud in financial blockchain-based transactions through big dat...
 
News headline generation with sentiment and patterns: A case study of sports ...
News headline generation with sentiment and patterns: A case study of sports ...News headline generation with sentiment and patterns: A case study of sports ...
News headline generation with sentiment and patterns: A case study of sports ...
 
Blockchain y la industria musical
Blockchain y la industria musicalBlockchain y la industria musical
Blockchain y la industria musical
 
Preparing your Big Data start-up pitch
Preparing your Big Data start-up pitchPreparing your Big Data start-up pitch
Preparing your Big Data start-up pitch
 
Internet of Things (IoT) in a nutshell
Internet of Things (IoT) in a nutshellInternet of Things (IoT) in a nutshell
Internet of Things (IoT) in a nutshell
 

Dernier

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 

Dernier (20)

Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 

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.