SlideShare a Scribd company logo
Introduction to Modeling Software Architecture Lecture 9
Objectives Concepts What is modeling? How do we choose what to model? What kinds of things do we model? How can we characterize models? How can we break up and organize models? How can we evaluate models and modeling notations? Examples Concrete examples of many notations used to model software architectures Revisiting Lunar Lander as expressed in different modeling notations
What is Architectural Modeling? Recall that we have characterized architecture as  the set of principal design decisions  made about a system We can define models and modeling in those terms An architectural  model  is an artifact that captures some or all of the design decisions that comprise a system’s architecture Architectural  modeling  is the reification and documentation of those design decisions How we model is strongly influenced by the notations we choose: An architectural modeling  notation  is a language or means of capturing design decisions.
How do We Choose What to Model? Architects and other stakeholders must make critical decisions: What architectural decisions and concepts should be modeled, At what level of detail, and With how much rigor or formality These are cost/benefit decisions The benefits of creating and maintaining an architectural model must exceed the cost of doing so
Stakeholder-Driven Modeling Stakeholders identify aspects of the system they are concerned about Stakeholders decide the relative importance of these concerns Modeling depth should roughly mirror the relative importance of concerns From Maier and Rechtin, “The Art of Systems Architecting” (2000) Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy;  © 2008 John Wiley & Sons, Inc. Reprinted with permission.
What do We Model? Basic architectural elements Components Connectors Interfaces Configurations Rationale – reasoning behind decisions Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy;  © 2008 John Wiley & Sons, Inc. Reprinted with permission.
What do We Model? (cont’d) Elements of the architectural style Inclusion of specific basic elements (e.g., components, connectors, interfaces) Component, connector, and interface types Constraints on interactions Behavioral constraints Concurrency constraints …
What do We Model? (cont’d) Static and Dynamic Aspects Static aspects of a system  do not  change as a system runs e.g., topologies, assignment of components/connectors to hosts, … Dynamic aspects  do  change as a system runs e.g., State of individual components or connectors, state of a data flow through a system, … This line is often unclear Consider a system whose topology is relatively stable but changes several times during system startup
What do We Model? (cont’d) Important distinction between:  Models of dynamic aspects of a system (models do not change) Dynamic models (the models themselves change)
What do We Model? (cont’d) Functional and non-functional aspects of a system Functional “ The system prints medical records” Non-functional “ The system prints medical records  quickly  and  confidentially .” Architectural models tend to be functional, but like rationale it is often important to capture non-functional decisions even if they cannot be automatically or deterministically interpreted or analyzed
Important Characteristics of Models Ambiguity A model is  ambiguous  if it is open to more than one interpretation Accuracy and Precision Different, but often conflated concepts A model is  accurate  if it is correct, conforms to fact, or deviates from correctness within acceptable limits A model is  precise  if it is sharply exact or delimited
Accuracy vs. Precision Inaccurate and imprecise: incoherent or contradictory assertions Accurate but imprecise: ambiguous or shallow assertions Inaccurate but precise: detailed assertions that are wrong  Accurate and precise: detailed assertions that are correct Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy;  © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Views and Viewpoints Generally, it is not feasible to capture everything we want to model in a single model or document The model would be too big, complex, and confusing So, we create several coordinated models, each capturing a subset of the design decisions Generally, the subset is organized around a particular concern or other selection criteria We call the subset-model a ‘view’ and the concern (or criteria) a ‘viewpoint’
Views and Viewpoints Example Deployment view of a 3-tier application Deployment view of a Lunar Lander system Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy;  © 2008 John Wiley & Sons, Inc. Reprinted with permission.   Both instances of the deployment  viewpoint
Commonly-Used Viewpoints Logical Viewpoints Capture the logical (often software) entities in a system and how they are interconnected. Physical Viewpoints Capture the physical (often hardware) entities in a system and how they are interconnected. Deployment Viewpoints Capture how logical entities are mapped onto physical entities.
Commonly-Used Viewpoints (cont’d) Concurrency Viewpoints Capture how concurrency and threading will be managed in a system. Behavioral Viewpoints Capture the expected behavior of (parts of) a system.
Consistency Among Views Views can contain overlapping and related design decisions There is the possibility that the views can thus become inconsistent with one another Views are  consistent  if the design decisions they contain are compatible Views are  inconsistent  if two views assert design decisions that cannot simultaneously be true Inconsistency is usually but not always indicative of problems Temporary inconsistencies are a natural part of exploratory design Inconsistencies cannot always be fixed
Example of View Inconsistency Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy;  © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Common Types of Inconsistencies Direct inconsistencies E.g., “The system runs on two hosts” and “the system runs on three hosts.” Refinement inconsistencies High-level (more abstract) and low-level (more concrete) views of the same parts of a system conflict Static vs. dynamic aspect inconsistencies Dynamic aspects (e.g., behavioral specifications) conflict with static aspects (e.g., topologies)
Common Types of Inconsistencies (cont’d) Dynamic vs. dynamic aspect inconsistencies Different descriptions of dynamic aspects of a system conflict Functional vs. non-functional inconsistencies
Evaluating Modeling Approaches Scope and purpose What does the technique help you model? What does it  not  help you model? Basic elements What are the basic elements (the ‘atoms’) that are modeled? How are they modeled? Style To what extent does the approach help you model elements of the underlying architectural style? Is the technique bound to one particular style or family of styles?
Evaluating Modeling Approaches (cont’d) Static and dynamic aspects What static and dynamic aspects of an architecture does the approach help you model? Dynamic modeling To what extent does the approach support models that change as the system executes? Non-functional aspects To what extent does the approach support (explicit) modeling of non-functional aspects of architecture?
Evaluating Modeling Approaches (cont’d) Ambiguity How does the approach help you to avoid (or embrace) ambiguity? Accuracy How does the approach help you to assess the correctness of models? Precision At what level of detail can various aspects of the architecture be modeled?
Evaluating Modeling Approaches (cont’d) Viewpoints Which viewpoints are supported by the approach? Viewpoint Consistency How does the approach help you assess or maintain consistency among different viewpoints?
Surveying Modeling Approaches Generic approaches Natural language PowerPoint-style modeling UML, the Unified Modeling Language Early architecture description languages Darwin Rapide Wright Domain- and style-specific languages Koala Weaves AADL Extensible architecture description languages Acme ADML xADL
Surveying Modeling Approaches (cont’d) Generic approaches Natural language PowerPoint-style modeling UML, the Unified Modeling Language Early architecture description languages Darwin Rapide Wright Domain- and style-specific languages Koala Weaves AADL Extensible architecture description languages Acme ADML xADL
Natural Language Spoken/written languages such as English Advantages Highly expressive Accessible to all stakeholders Good for capturing non-rigorous or informal architectural elements like rationale and non-functional requirements Plentiful tools available (word processors and other text editors) Disadvantages Ambiguous, non-rigorous, non-formal Often verbose Cannot be effectively processed or analyzed by machines/software
Natural Language Example “ The Lunar Lander application consists of three components: a  data store  component, a  calculation  component, and a  user interface  component.  The job of the  data store  component is to store and allow other components access to the height, velocity, and fuel of the lander, as well as the current simulator time. The job of the  calculation  component is to, upon receipt of a burn-rate quantity, retrieve current values of height, velocity, and fuel from the  data store  component, update them with respect to the input burn-rate, and store the new values back. It also retrieves, increments, and stores back the simulator time. It is also responsible for notifying the calling component of whether the simulator has terminated, and with what state (landed safely, crashed, and so on).  The job of the  user interface  component is to display the current status of the lander using information from both the  calculation  and the  data store  components. While the simulator is running, it retrieves the new burn-rate value from the user, and invokes the  calculation  component.”
Related Alternatives Ambiguity can be reduced and rigor can be increased through the use of techniques like ‘statement templates,’ e.g.: The  (name)  interface on  (name)  component takes  (list-of-elements)  as input and produces  (list-of-elements)  as output  (synchronously | asynchronously) . This can help to make rigorous data easier to read and interpret, but such information is generally better represented in a more compact format
Natural Language Evaluation Scope and purpose Capture design decisions in prose form Basic elements Any concepts required Style Can be described by using more general language Static & Dynamic Aspects Any aspect can be modeled  Dynamic Models No direct tie to implemented/ running system Non-Functional Aspects Expressive vocabulary available (but no way to verify) Ambiguity Plain natural language tends to be ambiguous; statement templates and dictionaries help Accuracy Manual reviews and inspection Precision Can add text to describe any level of detail Viewpoints Any viewpoint (but no specific support for any particular viewpoint) Viewpoint consistency Manual reviews and inspection
Informal Graphical Modeling General diagrams produced in tools like PowerPoint and OmniGraffle Advantages Can be aesthetically pleasing Size limitations (e.g., one slide, one page) generally constrain complexity of diagrams Extremely flexible due to large symbolic vocabulary Disadvantages Ambiguous, non-rigorous, non-formal But often treated otherwise Cannot be effectively processed or analyzed by machines/software
Informal Graphical Model Example Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy;  © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Related Alternatives Some diagram editors (e.g., Microsoft Visio) can be extended with semantics through scripts and other additional programming Generally ends up somewhere in between a custom notation-specific editor and a generic diagram editor Limited by extensibility of the tool PowerPoint Design Editor (Goldman, Balzer) was an interesting project that attempted to integrate semantics into PowerPoint
Informal Graphical Evaluation Scope and purpose Arbitrary diagrams consisting of symbols and text Basic elements Geometric shapes, splines, clip-art, text segments Style In general, no support Static & Dynamic Aspects Any aspect can be modeled, but no semantics behind models  Dynamic Models Rare, although APIs to manipulate graphics exist Non-Functional Aspects With natural language annotations Ambiguity Can be reduced through use of rigorous symbolic vocabulary/dictionaries Accuracy Manual reviews and inspection Precision Up to modeler; generally canvas is limited in size (e.g., one ‘slide’) Viewpoints Any viewpoint (but no specific support for any particular viewpoint) Viewpoint consistency Manual reviews and inspection
UML – the Unified Modeling Language 13 loosely-interconnected notations called diagrams that capture static and dynamic aspects of software-intensive systems Advantages Support for a diverse array of viewpoints focused on many common software engineering concerns Ubiquity improves comprehensibility Extensive documentation and tool support from many vendors Disadvantages Needs customization through profiles to reduce ambiguity Difficult to assess consistency among views Difficult to capture foreign concepts or views
UML Example Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy;  © 2008 John Wiley & Sons, Inc. Reprinted with permission.
UML Evaluation Scope and purpose Diverse array of design decisions in 13 viewpoints Basic elements Multitude – states, classes, objects, composite nodes… Style Through (OCL) constraints Static & Dynamic Aspects Some static diagrams (class, package), some dynamic (state, activity)  Dynamic Models Rare; depends on the environment Non-Functional Aspects No direct support; natural-language annotations Ambiguity Many symbols are interpreted differently depending on context; profiles reduce ambiguity Accuracy Well-formedness checks, automatic constraint checking, ersatz tool methods, manual Precision Up to modeler; wide flexibility Viewpoints Each diagram type represents a viewpoint; more can be added through overloading/profiles Viewpoint consistency Constraint checking, ersatz tool methods, manual

More Related Content

PPT
Cs 1023 lec 7 architecture (week 1)
PPT
14 analysis techniques
PPT
04 designing architectures
PPT
PDF
Software Architecture: How Much Design?
PDF
[2015/2016] RESEARCH in software engineering
PDF
Unit 11-systems-analysis-and-design
Cs 1023 lec 7 architecture (week 1)
14 analysis techniques
04 designing architectures
Software Architecture: How Much Design?
[2015/2016] RESEARCH in software engineering
Unit 11-systems-analysis-and-design

What's hot (20)

PPTX
Brief introduction to Object Oriented Analysis and Design
PDF
How to Perform 21st Century Systems Engineering
PDF
10 Hinweise für Architekten
PDF
Interaction Patterns In User Interfaces
PPTX
PDF
020170482 x
PDF
Patterns as Tools for User Interface Design
PPTX
Innoslate, A Model-Based Systems Engineering Tool
PPTX
What's New in Innoslate 4.2?
PPT
5 transition to design
PDF
5. ch 4-principles that guide practice
PPTX
Software Architecture: Why and What?
PDF
System analysis and_design_tutorial
PDF
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
PDF
Quality and Software Design Patterns
PDF
Requirements Engineering - Stakeholders
PPT
Lecture4 requirement engineering
PPTX
Requirements Management Using Innoslate
PDF
Requirements Engineering - Domain Models
PPT
Brief introduction to Object Oriented Analysis and Design
How to Perform 21st Century Systems Engineering
10 Hinweise für Architekten
Interaction Patterns In User Interfaces
020170482 x
Patterns as Tools for User Interface Design
Innoslate, A Model-Based Systems Engineering Tool
What's New in Innoslate 4.2?
5 transition to design
5. ch 4-principles that guide practice
Software Architecture: Why and What?
System analysis and_design_tutorial
AsianPLoP'14: How and Why Design Patterns Impact Quality and Future Challenges
Quality and Software Design Patterns
Requirements Engineering - Stakeholders
Lecture4 requirement engineering
Requirements Management Using Innoslate
Requirements Engineering - Domain Models
Ad

Viewers also liked (20)

PPT
12 visualizing software_architectures_part_2
PPT
13 analysis of_software_architectures
PPT
01 the big_idea
PPT
10 modeling and_notations
PPT
15 implementing architectures
PPT
11 visualizing software_architectures
PPT
18 applied architectures_part_2
PPT
27 people roles_and_teams
PPT
16 implementation techniques
PPT
06 styles and_greenfield_design
PPT
17 applied architectures
PDF
Linguaggi Formali e Compilazione: Automi
PPT
03 basic concepts
PPT
02 architectures in_context
PPT
22 deployment and_mobility
PPT
20 nfp design_techniques
PPT
23 intro to_dsse
PPT
21 security and_trust
PPT
19 designing for_nf_ps
PPT
25 architectural adaptation
12 visualizing software_architectures_part_2
13 analysis of_software_architectures
01 the big_idea
10 modeling and_notations
15 implementing architectures
11 visualizing software_architectures
18 applied architectures_part_2
27 people roles_and_teams
16 implementation techniques
06 styles and_greenfield_design
17 applied architectures
Linguaggi Formali e Compilazione: Automi
03 basic concepts
02 architectures in_context
22 deployment and_mobility
20 nfp design_techniques
23 intro to_dsse
21 security and_trust
19 designing for_nf_ps
25 architectural adaptation
Ad

Similar to 09 introduction to_modeling (20)

PPT
lecture7.ppt
PPT
lecture7.ppt
PPT
Software architecture
PPTX
Software architecture simplified
PPT
Software Design
PDF
Software Architecture: views and viewpoints
ODP
Software Patterns
PPT
oomd-unit-i-cgpa.ppt
PDF
Ten Advices for Architects
PPT
Software_Archi-1.ppt
PPT
4plus1-View.ppt
PPT
Cs 1023 lec 4 (week 1)
PDF
Introduction to UML
PPT
Cs 1023 lec 3 architecture (week 1)
PPT
Cs 1023 lec 3 architecture (week 1)
PDF
An Introduction To Fundamental Architecture Concepts
PDF
Models, Sketches and Everything In Between
PPTX
Software Engineering Architectural Design
PPTX
Introduction to Modern Software Architecture
PDF
lecture7.ppt
lecture7.ppt
Software architecture
Software architecture simplified
Software Design
Software Architecture: views and viewpoints
Software Patterns
oomd-unit-i-cgpa.ppt
Ten Advices for Architects
Software_Archi-1.ppt
4plus1-View.ppt
Cs 1023 lec 4 (week 1)
Introduction to UML
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
An Introduction To Fundamental Architecture Concepts
Models, Sketches and Everything In Between
Software Engineering Architectural Design
Introduction to Modern Software Architecture

More from Majong DevJfu (20)

PDF
9 - Architetture Software - SOA Cloud
PDF
8 - Architetture Software - Architecture centric processes
PDF
7 - Architetture Software - Software product line
PDF
6 - Architetture Software - Model transformation
PDF
5 - Architetture Software - Metamodelling and the Model Driven Architecture
PDF
4 - Architetture Software - Architecture Portfolio
PDF
3 - Architetture Software - Architectural styles
PDF
2 - Architetture Software - Software architecture
PDF
1 - Architetture Software - Software as a product
PDF
10 - Architetture Software - More architectural styles
PDF
PDF
4 (uml basic)
POT
Tmd template-sand
PPT
26 standards
PPT
24 dssa and_product_lines
9 - Architetture Software - SOA Cloud
8 - Architetture Software - Architecture centric processes
7 - Architetture Software - Software product line
6 - Architetture Software - Model transformation
5 - Architetture Software - Metamodelling and the Model Driven Architecture
4 - Architetture Software - Architecture Portfolio
3 - Architetture Software - Architectural styles
2 - Architetture Software - Software architecture
1 - Architetture Software - Software as a product
10 - Architetture Software - More architectural styles
4 (uml basic)
Tmd template-sand
26 standards
24 dssa and_product_lines

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Electronic commerce courselecture one. Pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectral efficient network and resource selection model in 5G networks
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
MIND Revenue Release Quarter 2 2025 Press Release
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation_ Review paper, used for researhc scholars
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Electronic commerce courselecture one. Pdf
Understanding_Digital_Forensics_Presentation.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Unlocking AI with Model Context Protocol (MCP)
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology

09 introduction to_modeling

  • 1. Introduction to Modeling Software Architecture Lecture 9
  • 2. Objectives Concepts What is modeling? How do we choose what to model? What kinds of things do we model? How can we characterize models? How can we break up and organize models? How can we evaluate models and modeling notations? Examples Concrete examples of many notations used to model software architectures Revisiting Lunar Lander as expressed in different modeling notations
  • 3. What is Architectural Modeling? Recall that we have characterized architecture as the set of principal design decisions made about a system We can define models and modeling in those terms An architectural model is an artifact that captures some or all of the design decisions that comprise a system’s architecture Architectural modeling is the reification and documentation of those design decisions How we model is strongly influenced by the notations we choose: An architectural modeling notation is a language or means of capturing design decisions.
  • 4. How do We Choose What to Model? Architects and other stakeholders must make critical decisions: What architectural decisions and concepts should be modeled, At what level of detail, and With how much rigor or formality These are cost/benefit decisions The benefits of creating and maintaining an architectural model must exceed the cost of doing so
  • 5. Stakeholder-Driven Modeling Stakeholders identify aspects of the system they are concerned about Stakeholders decide the relative importance of these concerns Modeling depth should roughly mirror the relative importance of concerns From Maier and Rechtin, “The Art of Systems Architecting” (2000) Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 6. What do We Model? Basic architectural elements Components Connectors Interfaces Configurations Rationale – reasoning behind decisions Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 7. What do We Model? (cont’d) Elements of the architectural style Inclusion of specific basic elements (e.g., components, connectors, interfaces) Component, connector, and interface types Constraints on interactions Behavioral constraints Concurrency constraints …
  • 8. What do We Model? (cont’d) Static and Dynamic Aspects Static aspects of a system do not change as a system runs e.g., topologies, assignment of components/connectors to hosts, … Dynamic aspects do change as a system runs e.g., State of individual components or connectors, state of a data flow through a system, … This line is often unclear Consider a system whose topology is relatively stable but changes several times during system startup
  • 9. What do We Model? (cont’d) Important distinction between: Models of dynamic aspects of a system (models do not change) Dynamic models (the models themselves change)
  • 10. What do We Model? (cont’d) Functional and non-functional aspects of a system Functional “ The system prints medical records” Non-functional “ The system prints medical records quickly and confidentially .” Architectural models tend to be functional, but like rationale it is often important to capture non-functional decisions even if they cannot be automatically or deterministically interpreted or analyzed
  • 11. Important Characteristics of Models Ambiguity A model is ambiguous if it is open to more than one interpretation Accuracy and Precision Different, but often conflated concepts A model is accurate if it is correct, conforms to fact, or deviates from correctness within acceptable limits A model is precise if it is sharply exact or delimited
  • 12. Accuracy vs. Precision Inaccurate and imprecise: incoherent or contradictory assertions Accurate but imprecise: ambiguous or shallow assertions Inaccurate but precise: detailed assertions that are wrong Accurate and precise: detailed assertions that are correct Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 13. Views and Viewpoints Generally, it is not feasible to capture everything we want to model in a single model or document The model would be too big, complex, and confusing So, we create several coordinated models, each capturing a subset of the design decisions Generally, the subset is organized around a particular concern or other selection criteria We call the subset-model a ‘view’ and the concern (or criteria) a ‘viewpoint’
  • 14. Views and Viewpoints Example Deployment view of a 3-tier application Deployment view of a Lunar Lander system Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. Both instances of the deployment viewpoint
  • 15. Commonly-Used Viewpoints Logical Viewpoints Capture the logical (often software) entities in a system and how they are interconnected. Physical Viewpoints Capture the physical (often hardware) entities in a system and how they are interconnected. Deployment Viewpoints Capture how logical entities are mapped onto physical entities.
  • 16. Commonly-Used Viewpoints (cont’d) Concurrency Viewpoints Capture how concurrency and threading will be managed in a system. Behavioral Viewpoints Capture the expected behavior of (parts of) a system.
  • 17. Consistency Among Views Views can contain overlapping and related design decisions There is the possibility that the views can thus become inconsistent with one another Views are consistent if the design decisions they contain are compatible Views are inconsistent if two views assert design decisions that cannot simultaneously be true Inconsistency is usually but not always indicative of problems Temporary inconsistencies are a natural part of exploratory design Inconsistencies cannot always be fixed
  • 18. Example of View Inconsistency Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 19. Common Types of Inconsistencies Direct inconsistencies E.g., “The system runs on two hosts” and “the system runs on three hosts.” Refinement inconsistencies High-level (more abstract) and low-level (more concrete) views of the same parts of a system conflict Static vs. dynamic aspect inconsistencies Dynamic aspects (e.g., behavioral specifications) conflict with static aspects (e.g., topologies)
  • 20. Common Types of Inconsistencies (cont’d) Dynamic vs. dynamic aspect inconsistencies Different descriptions of dynamic aspects of a system conflict Functional vs. non-functional inconsistencies
  • 21. Evaluating Modeling Approaches Scope and purpose What does the technique help you model? What does it not help you model? Basic elements What are the basic elements (the ‘atoms’) that are modeled? How are they modeled? Style To what extent does the approach help you model elements of the underlying architectural style? Is the technique bound to one particular style or family of styles?
  • 22. Evaluating Modeling Approaches (cont’d) Static and dynamic aspects What static and dynamic aspects of an architecture does the approach help you model? Dynamic modeling To what extent does the approach support models that change as the system executes? Non-functional aspects To what extent does the approach support (explicit) modeling of non-functional aspects of architecture?
  • 23. Evaluating Modeling Approaches (cont’d) Ambiguity How does the approach help you to avoid (or embrace) ambiguity? Accuracy How does the approach help you to assess the correctness of models? Precision At what level of detail can various aspects of the architecture be modeled?
  • 24. Evaluating Modeling Approaches (cont’d) Viewpoints Which viewpoints are supported by the approach? Viewpoint Consistency How does the approach help you assess or maintain consistency among different viewpoints?
  • 25. Surveying Modeling Approaches Generic approaches Natural language PowerPoint-style modeling UML, the Unified Modeling Language Early architecture description languages Darwin Rapide Wright Domain- and style-specific languages Koala Weaves AADL Extensible architecture description languages Acme ADML xADL
  • 26. Surveying Modeling Approaches (cont’d) Generic approaches Natural language PowerPoint-style modeling UML, the Unified Modeling Language Early architecture description languages Darwin Rapide Wright Domain- and style-specific languages Koala Weaves AADL Extensible architecture description languages Acme ADML xADL
  • 27. Natural Language Spoken/written languages such as English Advantages Highly expressive Accessible to all stakeholders Good for capturing non-rigorous or informal architectural elements like rationale and non-functional requirements Plentiful tools available (word processors and other text editors) Disadvantages Ambiguous, non-rigorous, non-formal Often verbose Cannot be effectively processed or analyzed by machines/software
  • 28. Natural Language Example “ The Lunar Lander application consists of three components: a data store component, a calculation component, and a user interface component. The job of the data store component is to store and allow other components access to the height, velocity, and fuel of the lander, as well as the current simulator time. The job of the calculation component is to, upon receipt of a burn-rate quantity, retrieve current values of height, velocity, and fuel from the data store component, update them with respect to the input burn-rate, and store the new values back. It also retrieves, increments, and stores back the simulator time. It is also responsible for notifying the calling component of whether the simulator has terminated, and with what state (landed safely, crashed, and so on). The job of the user interface component is to display the current status of the lander using information from both the calculation and the data store components. While the simulator is running, it retrieves the new burn-rate value from the user, and invokes the calculation component.”
  • 29. Related Alternatives Ambiguity can be reduced and rigor can be increased through the use of techniques like ‘statement templates,’ e.g.: The (name) interface on (name) component takes (list-of-elements) as input and produces (list-of-elements) as output (synchronously | asynchronously) . This can help to make rigorous data easier to read and interpret, but such information is generally better represented in a more compact format
  • 30. Natural Language Evaluation Scope and purpose Capture design decisions in prose form Basic elements Any concepts required Style Can be described by using more general language Static & Dynamic Aspects Any aspect can be modeled Dynamic Models No direct tie to implemented/ running system Non-Functional Aspects Expressive vocabulary available (but no way to verify) Ambiguity Plain natural language tends to be ambiguous; statement templates and dictionaries help Accuracy Manual reviews and inspection Precision Can add text to describe any level of detail Viewpoints Any viewpoint (but no specific support for any particular viewpoint) Viewpoint consistency Manual reviews and inspection
  • 31. Informal Graphical Modeling General diagrams produced in tools like PowerPoint and OmniGraffle Advantages Can be aesthetically pleasing Size limitations (e.g., one slide, one page) generally constrain complexity of diagrams Extremely flexible due to large symbolic vocabulary Disadvantages Ambiguous, non-rigorous, non-formal But often treated otherwise Cannot be effectively processed or analyzed by machines/software
  • 32. Informal Graphical Model Example Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 33. Related Alternatives Some diagram editors (e.g., Microsoft Visio) can be extended with semantics through scripts and other additional programming Generally ends up somewhere in between a custom notation-specific editor and a generic diagram editor Limited by extensibility of the tool PowerPoint Design Editor (Goldman, Balzer) was an interesting project that attempted to integrate semantics into PowerPoint
  • 34. Informal Graphical Evaluation Scope and purpose Arbitrary diagrams consisting of symbols and text Basic elements Geometric shapes, splines, clip-art, text segments Style In general, no support Static & Dynamic Aspects Any aspect can be modeled, but no semantics behind models Dynamic Models Rare, although APIs to manipulate graphics exist Non-Functional Aspects With natural language annotations Ambiguity Can be reduced through use of rigorous symbolic vocabulary/dictionaries Accuracy Manual reviews and inspection Precision Up to modeler; generally canvas is limited in size (e.g., one ‘slide’) Viewpoints Any viewpoint (but no specific support for any particular viewpoint) Viewpoint consistency Manual reviews and inspection
  • 35. UML – the Unified Modeling Language 13 loosely-interconnected notations called diagrams that capture static and dynamic aspects of software-intensive systems Advantages Support for a diverse array of viewpoints focused on many common software engineering concerns Ubiquity improves comprehensibility Extensive documentation and tool support from many vendors Disadvantages Needs customization through profiles to reduce ambiguity Difficult to assess consistency among views Difficult to capture foreign concepts or views
  • 36. UML Example Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 37. UML Evaluation Scope and purpose Diverse array of design decisions in 13 viewpoints Basic elements Multitude – states, classes, objects, composite nodes… Style Through (OCL) constraints Static & Dynamic Aspects Some static diagrams (class, package), some dynamic (state, activity) Dynamic Models Rare; depends on the environment Non-Functional Aspects No direct support; natural-language annotations Ambiguity Many symbols are interpreted differently depending on context; profiles reduce ambiguity Accuracy Well-formedness checks, automatic constraint checking, ersatz tool methods, manual Precision Up to modeler; wide flexibility Viewpoints Each diagram type represents a viewpoint; more can be added through overloading/profiles Viewpoint consistency Constraint checking, ersatz tool methods, manual