SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Università degli Studi dell’Aquila




L06: Design Decisions
                                         Henry Muccini
         DISIM Department, University of L’Aquila
                henry.muccini@univaq.it
The material in these slides may be freely reproduced and
distributed, partially or totally, as far as an explicit
reference or acknowledge to the material author is
preserved.
Some of the slides have been originally made by prof.
Patricia Lago.
Thanks to Smrithi for the discussion we had on the topic



                           Henry Muccini
Intro to SA        Intro to Software Testing
SA Case study      Structural Testing
SA style           Model-based Testing
ADLs               Architecture-based Testing
Design Decisions
                   Lab
Views/Viewpoints


UML                Non Functional S.E.
UML Profiling      Performance modeling
Lab                Performance analysis
Software Architecture
The Software Architecture is the earliest model of the
whole software system created along the software
lifecycle

“Traditional” definition:
 →A  set of components and connectors communicating through
  interfaces
“Recent/Future” understanding:
 →A set of architecture design decisions taken to generate the
 architecture artifact
 →Focus on set of Views and Viewpoints, looking at
 stakeholders and their concern
Architecting today
Architecting is the process of creating software
architecture knowledge and artifacts for engineering
software systems



A Software Architecture consists of
 →A blueprint for the chosen solution (product)
 →A set of design decisions (co-product)
Architecture as a set of Design
   Decisions
Design Rationale and Design Decision
Design is a problem-solving process whose
objective is to find and describe a way:
  To implement the functional requirements...
  while respecting the non-functional requirements
  and yet deliver 'good' quality



The result of software Design:
  A blueprint for the chosen solution (product)
  A set of design decisions (co-product)
A designer is faced with a series of design issues
  These are sub-problems of the overall design problem.
  Each issue normally has several alternative solutions (or
  design options)
  The designer makes a design decision to resolve each issue.


This process involves choosing the best option
from among the alternatives.
Taking decisions
                               Design
                               problem                          Problem
                                                                space
                  sub-                        sub-
                  problem                     problem
                  (or issue)                  (or issue)



Decision =
best option

       Design Design
       option option
                                       Design
                                       option
                                                 Design
                                                 option
                                                                Solution
                                                                space
                                                  Decision =
            Alternative         Alternative       best option
            solutions           solutions
   Best, with
   respect to
 some criterion
Design space
The space of possible designs that could be achieved
by choosing different sets of alternatives.
                                                    client-server

         fat-client

                        web browser     architecture peer clients
                        based           style
client
style    thin-client
                        custom client
                        program                      peer-to-peer

                                                                    structured p2p
          rich-client
                                                      layered       unstructured p2p

                                                          ...       hybrid p2p

                                                          tiered
Taking decisions /2
To take each design decision, the software engineer
uses:
 →“current”   knowledge
     ─ the requirements
     ─ the design as created so far
 →and   “past” knowledge
     ─ the technology available
     ─ what has worked well in the past
     ─ software design principles and “best practices”
Collection of Requirements and Constraints
 Identification of Design Issues
 Identification of Design Alternatives
 Identification of Design Decisions (DDs)
 Selection of architectural Components
 Selection of an architectural Solutions that comply to
the DDs
Design Issue 1: how many gateways shall be used to collect
sensored data in a building?
Design Issue2: how to propagate the collected data to the
fire station?
Design Issue 3: how the sensors are connected?
Design Issue 4: how the sensors should be powered?
Design Issue 5: how to sense how many people are present
in the building?
…
Design
                     alternatives
                                      Criteria
 Design Issue
                        Single
                       Gateway          Cost
  DI1: how many
gateways shall be
                     1 gateway per   Reliability
  used to collect
sensored data in a        floor
     building?                       Availability
                     1 Gateway per
                       apartment
DD1: one gateway per floor
DD2: WAN
DD3: Wireless Lan
DD4: battery
DD5: counting
sensors
…
DD1: only one gateway
DD2: WAN
DD3: LAN
DD4: battery
DD5: counting
    sensors
…
Why DD?
According to Anton Jansen and Jan Bosch [4], defining
Architecture as a set of design decisions helps the
architect to:
 a.   Guard the conceptual Integrity of the Software architecture
 b.   Communicate effectively the design space exploration
 c.   Effectively analyze the software architecture and design
      process
 d.   Trace design decisions and their relationship to the
      resulting architecture.
Notations and Tools
Archium: A meta-model and tool developed my Anton Jansen et al
ADDSS: a web based tool developed by Rafael Capilla et al
AREL: a rationale based model developed by Antony Tang et al
DAMSAK: Data Model for Software Architecture Knowledge
developed by Babar et al
PAKME : a tool that supports DAMSAK
SEURAT: Software Engineering using Rationale, which integrates tools
for rationale capture, visualization, and use into a standard software
engineering environment
QOC
Questions, Options, Criteria
      Questions: key design issues
      Options: possible answers
      Criteria: assess and compare the options
Example
QOC3 Which technology should be used by the user to
communicate locally with the devices which are
located at home?
QOC3 Which technology should be used by the user to
communicate locally with the devices which are
located at home?
QOC Template (Open the Excel File)
ADD: what is interesting to discuss?
1. Granularity of design decisions
2. Dependencies among decisions
3. ADD taken in a collaborative way
4. ADD that uses genetic algorithms in order to find
   the optimal solution
5. Evolving ADD
Granularity…
ADD Question:
   How the FireFighter system components shall
   communicate?




   How is the payment handled?
Dependencies…
                             Single Gateway
DI1. How many                                                Cost
                                                             Reliability               DI2. how the
gateways can we              1 Gateway per floor                                       sensors are                               Installation
                                                                                                                Wired
place?                                                       Availability              connected?
                                                                                                                                 Performance
                             1 Gateway per
                             apartment                                                                          Wireless Wi-Fi
                                                              Cost                                                               Availability
     Enables question
                                                                                                                Wireless
                             Using gateways
DI3.How should                                                Reliability                                       ZigBee
data be broadcasted
                             Directly through                 Availability
                             sensors
                                                                                             Enables decision


                                 Wearable sensor
      Which device can
      the Firefighter Use?

                                 Mobile-Wi-Fi




                                Online map                                   Reliability
     Best way to get a
     city map for the                                                        Performance
     truck manager              Local offline GPS device
                                                                             Availability

                                                Enables decision
Dependencies…
Are of various types:
  •   Excludes
  •   Requires
  •   Depends On
  •   Subsumes
  •   Enables
  •   …

  Con#1: Which kind of technology is used for node-to-node
  communication?
    Con#1-Opt#1 : Bluetooth
    Con#1-Opt#2 : Wi-Fi
    Con#1-Opt#3: Zigbee

  Con#5: How the WSN infrastructure shall communicate with the trucks and central
    station?
    Con#5-Opt#1 – 3G
    Con#5-Opt#2 – GPRS
    Con#5-Opt#3 – Wi-Fi
Collaborative Decision Making




                   http://saw.inf.unisi.ch/drupal/home
Collaborative Decision Making
Optimal Solution to ADD




Tariq Al-Naeem, Ian Gorton, Muhammed Ali Babar, Fethi Rabhi and Boualem Benatallah. “A Quality-Driven
Systematic Approach for Architecting Distributed Software Applications”. In Proc. ICSE 2005.
Evolving ADD
Requirements, Concerns, technology evolves, and so
the associated design decisions.


Con#2: How the nodes should be powered?
 •   Cr#1 – Cost
 •   Cr#2 – nodes life duration
 •   Cr#3 – availability
 •   Opt#1 : Battery
 •   Opt#2 : Electrical network

Weitere ähnliche Inhalte

Was ist angesagt?

Cost Benefit Analysis Method
Cost Benefit Analysis MethodCost Benefit Analysis Method
Cost Benefit Analysis Method
Himanshu
 

Was ist angesagt? (20)

Requirements prioritization
Requirements prioritizationRequirements prioritization
Requirements prioritization
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software Engineering
 
Spm software effort estimation
Spm software effort estimationSpm software effort estimation
Spm software effort estimation
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Slides chapters 13-14
Slides chapters 13-14Slides chapters 13-14
Slides chapters 13-14
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Project control and process instrumentation
Project control and process instrumentationProject control and process instrumentation
Project control and process instrumentation
 
Sqa plan
Sqa planSqa plan
Sqa plan
 
Android Project Presentation
Android Project PresentationAndroid Project Presentation
Android Project Presentation
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Unit 5 st ppt
Unit 5 st pptUnit 5 st ppt
Unit 5 st ppt
 
Cost Benefit Analysis Method
Cost Benefit Analysis MethodCost Benefit Analysis Method
Cost Benefit Analysis Method
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metrics
 
2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf
 
Software design
Software designSoftware design
Software design
 
Firebase PPT
Firebase PPTFirebase PPT
Firebase PPT
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Flutter presentation.pptx
Flutter presentation.pptxFlutter presentation.pptx
Flutter presentation.pptx
 

Andere mochten auch

Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
koolkampus
 
Ch6-Software Engineering 9
Ch6-Software Engineering 9Ch6-Software Engineering 9
Ch6-Software Engineering 9
Ian Sommerville
 

Andere mochten auch (20)

Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
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
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
 
Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10Architectural Design in Software Engineering SE10
Architectural Design in Software Engineering SE10
 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture Styles
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Design Patterns : Solution to Software Design Problems
Design Patterns : Solution to Software Design ProblemsDesign Patterns : Solution to Software Design Problems
Design Patterns : Solution to Software Design Problems
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
Ch6-Software Engineering 9
Ch6-Software Engineering 9Ch6-Software Engineering 9
Ch6-Software Engineering 9
 
Software Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & ConnectorsSoftware Architecture Taxonomies - Behaviour: Components & Connectors
Software Architecture Taxonomies - Behaviour: Components & Connectors
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
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
 
software architecture
software architecturesoftware architecture
software architecture
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
 

Ähnlich wie Software Architecture: Design Decisions

BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze
 
Enabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of ThingsEnabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of Things
Pankesh Patel
 
Cisco Presentation 1
Cisco Presentation 1Cisco Presentation 1
Cisco Presentation 1
changcai
 
Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)
Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)
Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)
Keith Nolan
 
DAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptxDAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptx
IakovosIoannou1
 
Panache Brochure (English)
Panache Brochure (English)Panache Brochure (English)
Panache Brochure (English)
Dan Sinawat
 
Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...
Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...
Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...
Videoguy
 
Android application development
Android application developmentAndroid application development
Android application development
Linh Vi Tường
 
Application development for the internet of things
Application development for the internet of thingsApplication development for the internet of things
Application development for the internet of things
Pankesh Patel
 

Ähnlich wie Software Architecture: Design Decisions (20)

BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)BusinessIntelligenze - On Cloud BI (English)
BusinessIntelligenze - On Cloud BI (English)
 
The Business Impact of Virtualization
The Business Impact of VirtualizationThe Business Impact of Virtualization
The Business Impact of Virtualization
 
Enabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of ThingsEnabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of Things
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
 
Cisco Presentation 1
Cisco Presentation 1Cisco Presentation 1
Cisco Presentation 1
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Server vs Client in real life and in programming world
Server vs Client in real life and in programming worldServer vs Client in real life and in programming world
Server vs Client in real life and in programming world
 
IBM BP Kickoff 2013 VDI Solutions
IBM BP Kickoff 2013    VDI SolutionsIBM BP Kickoff 2013    VDI Solutions
IBM BP Kickoff 2013 VDI Solutions
 
Enterprise Mobility with Sybase Unwired Platform
Enterprise Mobility with Sybase Unwired PlatformEnterprise Mobility with Sybase Unwired Platform
Enterprise Mobility with Sybase Unwired Platform
 
Agile EE2011 holistic devployment
Agile EE2011 holistic devploymentAgile EE2011 holistic devployment
Agile EE2011 holistic devployment
 
Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)
Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)
Dirk Pesch - Networked systems research at NIMBUS (Cork Institute of Technology)
 
DAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptxDAI Framework_CEII_2022.pptx
DAI Framework_CEII_2022.pptx
 
Testing banking apps
Testing banking appsTesting banking apps
Testing banking apps
 
The Fluent Interface Pattern
The Fluent Interface PatternThe Fluent Interface Pattern
The Fluent Interface Pattern
 
Panache Brochure (English)
Panache Brochure (English)Panache Brochure (English)
Panache Brochure (English)
 
Company presentation
Company presentationCompany presentation
Company presentation
 
KNOWLEDGE KONSULTANTS PROFILE
KNOWLEDGE KONSULTANTS PROFILEKNOWLEDGE KONSULTANTS PROFILE
KNOWLEDGE KONSULTANTS PROFILE
 
Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...
Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...
Linux Based Access Grid Presented by PRAGMA 4, Melbourne (06 ...
 
Android application development
Android application developmentAndroid application development
Android application development
 
Application development for the internet of things
Application development for the internet of thingsApplication development for the internet of things
Application development for the internet of things
 

Mehr von Henry Muccini

Mehr von Henry Muccini (20)

Human Behaviour Centred Design
Human Behaviour Centred Design Human Behaviour Centred Design
Human Behaviour Centred Design
 
How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...How cultural heritage, cyber-physical spaces, and software engineering can wo...
How cultural heritage, cyber-physical spaces, and software engineering can wo...
 
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle SegreterieLa gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
La gestione dell’utenza numerosa - dalle Segreterie, ai Musei, alle Segreterie
 
Turismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibileTurismo 4.0: l'ICT a supporto del turismo sostenibile
Turismo 4.0: l'ICT a supporto del turismo sostenibile
 
Sustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd managementSustainable Tourism - IoT and crowd management
Sustainable Tourism - IoT and crowd management
 
Software Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of ThingsSoftware Engineering at the age of the Internet of Things
Software Engineering at the age of the Internet of Things
 
The influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design DecisionsThe influence of Group Decision Making on Architecture Design Decisions
The influence of Group Decision Making on Architecture Design Decisions
 
An IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building ArchitectureAn IoT Software Architecture for an Evacuable Building Architecture
An IoT Software Architecture for an Evacuable Building Architecture
 
Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)Web Engineering L8: User-centered Design (8/8)
Web Engineering L8: User-centered Design (8/8)
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
 
Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)Web Engineering L6: Software Architecture for the Web (6/8)
Web Engineering L6: Software Architecture for the Web (6/8)
 
Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)Web Engineering L5: Content Model (5/8)
Web Engineering L5: Content Model (5/8)
 
Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)Web Engineering L3: Project Planning (3/8)
Web Engineering L3: Project Planning (3/8)
 
Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)Web Engineering L2: Requirements Elicitation for the Web (2/8)
Web Engineering L2: Requirements Elicitation for the Web (2/8)
 
Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)Web Engineering L1: introduction to Web Engineering (1/8)
Web Engineering L1: introduction to Web Engineering (1/8)
 
Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)Web Engineering L4: Requirements and Planning in concrete (4/8)
Web Engineering L4: Requirements and Planning in concrete (4/8)
 
Collaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on SustainabilityCollaborative aspects of Decision Making and its impact on Sustainability
Collaborative aspects of Decision Making and its impact on Sustainability
 
Engineering Cyber Physical Spaces
Engineering Cyber Physical SpacesEngineering Cyber Physical Spaces
Engineering Cyber Physical Spaces
 
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPISI progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
I progetti UnivAq-UFFIZI, INCIPICT, e  CUSPIS
 
Exploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software ArchitectureExploring the Temporal Aspects of Software Architecture
Exploring the Temporal Aspects of Software Architecture
 

Kürzlich hochgeladen

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Kürzlich hochgeladen (20)

Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
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.
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.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
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
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)
 

Software Architecture: Design Decisions

  • 1. Università degli Studi dell’Aquila L06: Design Decisions Henry Muccini DISIM Department, University of L’Aquila henry.muccini@univaq.it
  • 2. The material in these slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the material author is preserved. Some of the slides have been originally made by prof. Patricia Lago. Thanks to Smrithi for the discussion we had on the topic Henry Muccini
  • 3. Intro to SA Intro to Software Testing SA Case study Structural Testing SA style Model-based Testing ADLs Architecture-based Testing Design Decisions Lab Views/Viewpoints UML Non Functional S.E. UML Profiling Performance modeling Lab Performance analysis
  • 4. Software Architecture The Software Architecture is the earliest model of the whole software system created along the software lifecycle “Traditional” definition: →A set of components and connectors communicating through interfaces “Recent/Future” understanding: →A set of architecture design decisions taken to generate the architecture artifact →Focus on set of Views and Viewpoints, looking at stakeholders and their concern
  • 5. Architecting today Architecting is the process of creating software architecture knowledge and artifacts for engineering software systems A Software Architecture consists of →A blueprint for the chosen solution (product) →A set of design decisions (co-product)
  • 6. Architecture as a set of Design Decisions
  • 7. Design Rationale and Design Decision Design is a problem-solving process whose objective is to find and describe a way: To implement the functional requirements... while respecting the non-functional requirements and yet deliver 'good' quality The result of software Design: A blueprint for the chosen solution (product) A set of design decisions (co-product)
  • 8. A designer is faced with a series of design issues These are sub-problems of the overall design problem. Each issue normally has several alternative solutions (or design options) The designer makes a design decision to resolve each issue. This process involves choosing the best option from among the alternatives.
  • 9. Taking decisions Design problem Problem space sub- sub- problem problem (or issue) (or issue) Decision = best option Design Design option option Design option Design option Solution space Decision = Alternative Alternative best option solutions solutions Best, with respect to some criterion
  • 10. Design space The space of possible designs that could be achieved by choosing different sets of alternatives. client-server fat-client web browser architecture peer clients based style client style thin-client custom client program peer-to-peer structured p2p rich-client layered unstructured p2p ... hybrid p2p tiered
  • 11. Taking decisions /2 To take each design decision, the software engineer uses: →“current” knowledge ─ the requirements ─ the design as created so far →and “past” knowledge ─ the technology available ─ what has worked well in the past ─ software design principles and “best practices”
  • 12.
  • 13. Collection of Requirements and Constraints Identification of Design Issues Identification of Design Alternatives Identification of Design Decisions (DDs) Selection of architectural Components Selection of an architectural Solutions that comply to the DDs
  • 14. Design Issue 1: how many gateways shall be used to collect sensored data in a building? Design Issue2: how to propagate the collected data to the fire station? Design Issue 3: how the sensors are connected? Design Issue 4: how the sensors should be powered? Design Issue 5: how to sense how many people are present in the building? …
  • 15. Design alternatives Criteria Design Issue Single Gateway Cost DI1: how many gateways shall be 1 gateway per Reliability used to collect sensored data in a floor building? Availability 1 Gateway per apartment
  • 16. DD1: one gateway per floor DD2: WAN DD3: Wireless Lan DD4: battery DD5: counting sensors …
  • 17. DD1: only one gateway DD2: WAN DD3: LAN DD4: battery DD5: counting sensors …
  • 18. Why DD? According to Anton Jansen and Jan Bosch [4], defining Architecture as a set of design decisions helps the architect to: a. Guard the conceptual Integrity of the Software architecture b. Communicate effectively the design space exploration c. Effectively analyze the software architecture and design process d. Trace design decisions and their relationship to the resulting architecture.
  • 19. Notations and Tools Archium: A meta-model and tool developed my Anton Jansen et al ADDSS: a web based tool developed by Rafael Capilla et al AREL: a rationale based model developed by Antony Tang et al DAMSAK: Data Model for Software Architecture Knowledge developed by Babar et al PAKME : a tool that supports DAMSAK SEURAT: Software Engineering using Rationale, which integrates tools for rationale capture, visualization, and use into a standard software engineering environment
  • 20. QOC Questions, Options, Criteria Questions: key design issues Options: possible answers Criteria: assess and compare the options
  • 21. Example QOC3 Which technology should be used by the user to communicate locally with the devices which are located at home?
  • 22. QOC3 Which technology should be used by the user to communicate locally with the devices which are located at home?
  • 23. QOC Template (Open the Excel File)
  • 24. ADD: what is interesting to discuss? 1. Granularity of design decisions 2. Dependencies among decisions 3. ADD taken in a collaborative way 4. ADD that uses genetic algorithms in order to find the optimal solution 5. Evolving ADD
  • 25. Granularity… ADD Question: How the FireFighter system components shall communicate? How is the payment handled?
  • 26. Dependencies… Single Gateway DI1. How many Cost Reliability DI2. how the gateways can we 1 Gateway per floor sensors are Installation Wired place? Availability connected? Performance 1 Gateway per apartment Wireless Wi-Fi Cost Availability Enables question Wireless Using gateways DI3.How should Reliability ZigBee data be broadcasted Directly through Availability sensors Enables decision Wearable sensor Which device can the Firefighter Use? Mobile-Wi-Fi Online map Reliability Best way to get a city map for the Performance truck manager Local offline GPS device Availability Enables decision
  • 27. Dependencies… Are of various types: • Excludes • Requires • Depends On • Subsumes • Enables • … Con#1: Which kind of technology is used for node-to-node communication? Con#1-Opt#1 : Bluetooth Con#1-Opt#2 : Wi-Fi Con#1-Opt#3: Zigbee Con#5: How the WSN infrastructure shall communicate with the trucks and central station? Con#5-Opt#1 – 3G Con#5-Opt#2 – GPRS Con#5-Opt#3 – Wi-Fi
  • 28. Collaborative Decision Making http://saw.inf.unisi.ch/drupal/home
  • 30. Optimal Solution to ADD Tariq Al-Naeem, Ian Gorton, Muhammed Ali Babar, Fethi Rabhi and Boualem Benatallah. “A Quality-Driven Systematic Approach for Architecting Distributed Software Applications”. In Proc. ICSE 2005.
  • 31. Evolving ADD Requirements, Concerns, technology evolves, and so the associated design decisions. Con#2: How the nodes should be powered? • Cr#1 – Cost • Cr#2 – nodes life duration • Cr#3 – availability • Opt#1 : Battery • Opt#2 : Electrical network