SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Introduction to
Modeling
Software Architecture
Software Architecture: Foundations, Theory, and Practice
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
2
Software Architecture: Foundations, Theory, and Practice
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.
3
Software Architecture: Foundations, Theory, and Practice
How do We Choose What to
Model?
 Architects and other stakeholders must make critical
decisions:
1. What architectural decisions and concepts should be
modeled,
2. At what level of detail, and
3. 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
4
Software Architecture: Foundations, Theory, and Practice
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
5From Maier and Rechtin, “The Art of Systems Architecting” (2000)
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
What do We Model?
 Basic architectural elements
Components
Connectors
Interfaces
Configurations
Rationale – reasoning behind decisions
6
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
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
…
7
Software Architecture: Foundations, Theory, and Practice
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 8
Software Architecture: Foundations, Theory, and Practice
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)
9
Software Architecture: Foundations, Theory, and Practice
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
10
Software Architecture: Foundations, Theory, and Practice
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
11
Software Architecture: Foundations, Theory, and Practice
Accuracy vs. Precision
12
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; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
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’
13
Software Architecture: Foundations, Theory, and Practice
Views and Viewpoints Example
14
Deployment view of a 3-tier
application
Deployment view of a
Lunar Lander system
Both instances of the
deployment viewpoint
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
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.
15
Software Architecture: Foundations, Theory, and Practice
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.
16
Software Architecture: Foundations, Theory, and Practice
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 17
Software Architecture: Foundations, Theory, and Practice
Example of View Inconsistency
18
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
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)
19
Software Architecture: Foundations, Theory, and Practice
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
20
Software Architecture: Foundations, Theory, and Practice
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?
21
Software Architecture: Foundations, Theory, and Practice
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?
22
Software Architecture: Foundations, Theory, and Practice
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?
23
Software Architecture: Foundations, Theory, and Practice
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 views?
24
Software Architecture: Foundations, Theory, and Practice
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
25
Software Architecture: Foundations, Theory, and Practice
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
26
Software Architecture: Foundations, Theory, and Practice
27
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.”
Software Architecture: Foundations, Theory, and Practice
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
28
Software Architecture: Foundations, Theory, and Practice
Natural Language Evaluation
29
 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)
 View consistency
Manual reviews and inspection
Software Architecture: Foundations, Theory, and Practice
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
30
Software Architecture: Foundations, Theory, and Practice
Informal Graphical Model Example
31
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
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
32
Software Architecture: Foundations, Theory, and Practice
Informal Graphical Evaluation
33
 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)
 View consistency
Manual reviews and inspection
Software Architecture: Foundations, Theory, and Practice
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
34
Software Architecture: Foundations, Theory, and Practice
UML Example
35
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
UML Evaluation
36
 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
 View consistency
Constraint checking, ersatz
tool methods, manual

Weitere ähnliche Inhalte

Was ist angesagt?

Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)stanbridge
 
Systems Engineering : The Art of Gluing Pieces
Systems Engineering : The Art of Gluing Pieces Systems Engineering : The Art of Gluing Pieces
Systems Engineering : The Art of Gluing Pieces Bernardo A. Delicado
 
Introduction to Systems Engineering
Introduction to Systems EngineeringIntroduction to Systems Engineering
Introduction to Systems EngineeringBernardo A. Delicado
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 
Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Panos Fitsilis
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2Ankit Dubey
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 
INCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion Paper
INCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion PaperINCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion Paper
INCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion PaperNic Plum
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteICSM 2011
 
Dealing with non-functional requirements in Model-driven development
Dealing with non-functional requirements in Model-driven developmentDealing with non-functional requirements in Model-driven development
Dealing with non-functional requirements in Model-driven developmentJordi Cabot
 
helbredte
helbredtehelbredte
helbredtebutest
 

Was ist angesagt? (14)

020170482 x
020170482 x020170482 x
020170482 x
 
Design pattern
Design patternDesign pattern
Design pattern
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
 
Systems Engineering : The Art of Gluing Pieces
Systems Engineering : The Art of Gluing Pieces Systems Engineering : The Art of Gluing Pieces
Systems Engineering : The Art of Gluing Pieces
 
Introduction to Systems Engineering
Introduction to Systems EngineeringIntroduction to Systems Engineering
Introduction to Systems Engineering
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland
 
Module 2 design patterns-2
Module 2   design patterns-2Module 2   design patterns-2
Module 2 design patterns-2
 
Stoop 430-design patternsintro
Stoop 430-design patternsintroStoop 430-design patternsintro
Stoop 430-design patternsintro
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
INCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion Paper
INCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion PaperINCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion Paper
INCOSE ASEC 2010. Human Factors - On the Right TRAK? Companion Paper
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
 
Dealing with non-functional requirements in Model-driven development
Dealing with non-functional requirements in Model-driven developmentDealing with non-functional requirements in Model-driven development
Dealing with non-functional requirements in Model-driven development
 
helbredte
helbredtehelbredte
helbredte
 

Ähnlich wie Cs 1023 lec 7 architecture (week 1)

Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.pptRohanBorgalli
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)stanbridge
 
07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)Jaya Chavan
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniquesMajong DevJfu
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docesrabilgic2
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)stanbridge
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?ingo
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software ArchitectureYuriy Guts
 

Ähnlich wie Cs 1023 lec 7 architecture (week 1) (20)

lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
03 basic concepts
03 basic concepts03 basic concepts
03 basic concepts
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
What is Software Architecture?
What is Software Architecture?What is Software Architecture?
What is Software Architecture?
 
07 software connectors (2)
07 software connectors (2)07 software connectors (2)
07 software connectors (2)
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniques
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
Class notes
Class notesClass notes
Class notes
 
Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?Architectural Thinking - What Is Architecture?
Architectural Thinking - What Is Architecture?
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software Architecture
 

Mehr von stanbridge

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecturestanbridge
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2stanbridge
 
Creating a poster
Creating a posterCreating a poster
Creating a posterstanbridge
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Disseminationstanbridge
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5stanbridge
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4stanbridge
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors stanbridge
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learnerstanbridge
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policystanbridge
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentstanbridge
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005stanbridge
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007stanbridge
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006stanbridge
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004stanbridge
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009stanbridge
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008stanbridge
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21stanbridge
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22stanbridge
 

Mehr von stanbridge (20)

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecture
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2
 
Creating a poster
Creating a posterCreating a poster
Creating a poster
 
Sample poster
Sample posterSample poster
Sample poster
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Dissemination
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learner
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policy
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessment
 
Ot5101 week1
Ot5101 week1Ot5101 week1
Ot5101 week1
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22
 

Kürzlich hochgeladen

ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 

Cs 1023 lec 7 architecture (week 1)

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture
  • 2. Software Architecture: Foundations, Theory, and Practice 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 2
  • 3. Software Architecture: Foundations, Theory, and Practice 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. 3
  • 4. Software Architecture: Foundations, Theory, and Practice How do We Choose What to Model?  Architects and other stakeholders must make critical decisions: 1. What architectural decisions and concepts should be modeled, 2. At what level of detail, and 3. 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 4
  • 5. Software Architecture: Foundations, Theory, and Practice 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 5From Maier and Rechtin, “The Art of Systems Architecting” (2000) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
  • 6. Software Architecture: Foundations, Theory, and Practice What do We Model?  Basic architectural elements Components Connectors Interfaces Configurations Rationale – reasoning behind decisions 6 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
  • 7. Software Architecture: Foundations, Theory, and Practice 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 … 7
  • 8. Software Architecture: Foundations, Theory, and Practice 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 8
  • 9. Software Architecture: Foundations, Theory, and Practice 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) 9
  • 10. Software Architecture: Foundations, Theory, and Practice 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 10
  • 11. Software Architecture: Foundations, Theory, and Practice 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 11
  • 12. Software Architecture: Foundations, Theory, and Practice Accuracy vs. Precision 12 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; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
  • 13. Software Architecture: Foundations, Theory, and Practice 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’ 13
  • 14. Software Architecture: Foundations, Theory, and Practice Views and Viewpoints Example 14 Deployment view of a 3-tier application Deployment view of a Lunar Lander system Both instances of the deployment viewpoint Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
  • 15. Software Architecture: Foundations, Theory, and Practice 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. 15
  • 16. Software Architecture: Foundations, Theory, and Practice 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. 16
  • 17. Software Architecture: Foundations, Theory, and Practice 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 17
  • 18. Software Architecture: Foundations, Theory, and Practice Example of View Inconsistency 18 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
  • 19. Software Architecture: Foundations, Theory, and Practice 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) 19
  • 20. Software Architecture: Foundations, Theory, and Practice 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 20
  • 21. Software Architecture: Foundations, Theory, and Practice 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? 21
  • 22. Software Architecture: Foundations, Theory, and Practice 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? 22
  • 23. Software Architecture: Foundations, Theory, and Practice 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? 23
  • 24. Software Architecture: Foundations, Theory, and Practice 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 views? 24
  • 25. Software Architecture: Foundations, Theory, and Practice 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 25
  • 26. Software Architecture: Foundations, Theory, and Practice 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 26
  • 27. Software Architecture: Foundations, Theory, and Practice 27 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.”
  • 28. Software Architecture: Foundations, Theory, and Practice 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 28
  • 29. Software Architecture: Foundations, Theory, and Practice Natural Language Evaluation 29  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)  View consistency Manual reviews and inspection
  • 30. Software Architecture: Foundations, Theory, and Practice 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 30
  • 31. Software Architecture: Foundations, Theory, and Practice Informal Graphical Model Example 31 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
  • 32. Software Architecture: Foundations, Theory, and Practice 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 32
  • 33. Software Architecture: Foundations, Theory, and Practice Informal Graphical Evaluation 33  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)  View consistency Manual reviews and inspection
  • 34. Software Architecture: Foundations, Theory, and Practice 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 34
  • 35. Software Architecture: Foundations, Theory, and Practice UML Example 35 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2010 John Wiley & Sons, Inc. Reprinted with permission.
  • 36. Software Architecture: Foundations, Theory, and Practice UML Evaluation 36  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  View consistency Constraint checking, ersatz tool methods, manual