SlideShare ist ein Scribd-Unternehmen logo
1 von 73
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Domain-Specific
Software Architecture
and Product Lines
Software Architecture
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
2
Objectives
 Concepts
What is domain-specific software engineering
(DSSE)
The “Three Lampposts” of DSSE: Domain,
Business, and Technology
Domain Specific Software Architectures
 Product Lines
 Relationship between DSSAs, Product Lines, and
Architectural Styles
 Examples of DSSE at work
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
3
Objectives
 Concepts
What is domain-specific software engineering
(DSSE)
The Three Key Factors of DSSE: Domain,
Business, and Technology
Domain Specific Software Architectures
 Product Lines
 Relationship between DSSAs, Product Lines, and
Architectural Styles
 Examples of DSSE at work
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
4
Domain-Specific Software
Engineering
 The traditional view of software engineering shows us
how to come up with solutions for problems de novo
 But starting from scratch every time is infeasible
This will involve re-inventing many wheels
 Once we have built a number of systems that do similar
things, we gain critical knowledge that lets us exploit
common solutions to common problems
In theory, we can simply build “the difference”
between our new target system and systems that
have come before
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
5
Examples of Domains
 Compilers for programming languages
 Consumer electronics
 Electronic commerce system/Web stores
 Video game
 Business applications
Basic/Standard/“Pro”
 We can subdivide, too:
Avionics systems
Boeing Jets
 Boeing 747-400
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
6
Traditional Software Engineering
 One particular problem can be solved in innumerable
ways
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
7
Architecture-Based Software
Engineering
 Given a single problem, we select from a handful of
potential architectural styles or architectures, and go
from these into specific implementations
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
8
Domain-Specific Software
Engineering
 We map regions of the problem space (domains) into domain-
specific software architectures (DSSAs)
 These are specialized into application-specific architectures
 These are implemented
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
9
Three Key Factors of DSSE
 Domain
Must have a domain to constrain the problem space and
focus development
 Technology
Must have a variety of technological solutions—tools,
patterns, architectures & styles, legacy systems—to
bring to bear on a domain
 Business
Business goals motivate the use of DSSE
Minimizing costs: reuse assets when possible
Maximize market: develop many related applications
for different kinds of end users
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
10
Domain Business
Technology
Three Key Factors
 Domain
Must have a domain
to constrain the
problem space
and focus
development
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
11
Domain Business
Technology
Three Key Factors
 Technology
Must have a variety
of technological
solutions—tools,
patterns,
architectures &
styles, legacy
systems—to bring
to bear on a
domain
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
12
Domain Business
Technology
Three Key Factors
 Business
Business goals
motivate the use of
DSSE
Minimizing
costs: reuse
assets
when possible
Maximize
market: develop
many related
applications for
different kinds of
end users
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
13
Domain Business
Technology
Three Key Factors
 Domain + Business
 “Corporate Core
Competencies”
Domain expertise
augmented by
business
acumen and
knowledge of
the market
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
14
Domain Business
Technology
Three Key Factors
 Domain + Technology
 “Application Family
Architectures”
All possible
technological
solutions to
problems in a
domain
Uninformed
and unconstrained by
business goals
and knowledge
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
15
Domain Business
Technology
Three Key Factors
 Business + Technology
 “Domain independent
infrastructure”
Tools and
techniques for
constructing
systems
independent of any
particular domain
E.g., most generic
ADLs, UML, compilers,
word processors,
general-purpose PCs
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
16
Domain Business
Technology
Three Key Factors
 Domain + Business +
Technology
 “Domain-specific
software engineering”
 Applies technology
to domain-specific
goals, tempered by
business and market
knowledge
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
17
Domain Business
Technology
Three Key Factors
 Product-Line Architectures
 A specific, related set
of solutions within
a broader DSSE
 More focus on
commonalities and
variability between
individual solutions
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
18
Becoming More Concrete
 Applying DSSE means developing a set of artifacts more
specific than an ordinary software architecture
Focus on aspects of the domain
Focus on domain-specific solutions, techniques, and
patterns
 These are
A domain model and
A domain-specific software architecture (DSSA)
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
19
Domain Model
 A domain model is a set of artifacts that capture
information about a domain
Functions performed
Objects (also known as entities) that perform the
functions, and on which the functions are performed
Data and information that flows through the system
 Standardizes terminology and semantics
 Provides the basis for standardizing (or at least
normalizing) descriptions of problems to be solved in the
domain
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
20
Domain Model
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
21
Domain Model
 Defines vocabulary for the domain
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
22
Domain Model
 Describes the entities and data in the domain
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
23
Domain Model
 Defines how entities and data combine to provide features
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
24
Domain Model
 Defines how data and control flow through entities
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
25
(Partial) Domain Dictionary
Lunar Module (LM): this is the portion of the spacecraft that lands on the moon.
It consists of two main parts: the Ascent Stage (which holds the crew cabin) and the
Descent Stage, which contains thrusters used for controlling the landing of the LM.
Reaction Control System (RCS): a system on the Lunar Module responsible for the
stabilization during lunar surface ascent/descent and control of the spacecraft’s orientation
(attitude) and motion (translation) during maneuvers
Vertical velocity (see also One-dimensional motion):
For a free-falling object with no air resistance, ignoring the rotation of the lunar surface,
the altitude is calculated as follows:
y = ½ * a * t2 + vi * t + yi
y = altitude
a = constant acceleration due to gravity on a lunar body (see Acceleration for sample values)
t = time in seconds; vi = initial velocity; yi = initial altitude
When thrust is applied, the following equation is used:
y = ½ * (aburner – agravity) * t2 + vi * t + yi
y = altitude
aburner = constant acceleration upward due to thrust
agravity = constant acceleration due to gravity on a lunar
(see Acceleration for sample values)
t = time in seconds; vi = initial velocity; yi = initial altitude
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
26
Info Model: Context Info Diagram
 Defines high-
level entities
 Defines what is
considered
inside and
outside the
domain (or
subdomains)
 Defines
relationships
and high-level
flows
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
27
 Defines entities
and cardinal
relationships
between them
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Info Model: Entity-Relationship
Diagram
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
28
Info Model: Object Diagram
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
 Defines attributes and operations on entities
 Closely resembles class diagram in UML but may be
more abstract
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
29
Feature Model: Feature
Relationship Diagram
 Describes overall mission operations of a system
 Describes major features and decomposition
Feature Relationship Diagram – Landing Phase
Mandatory: The Lunar Lander must continually read altitude from the Landing Radar and
relay that data to Houston with less than 500 msec of latency. Astronauts must be able to
control the descent of the Lunar Lander using manual control on the descent engine.
The descent engine must respond to control commands in 250msec, with or without
a functioning DSKY…
Optional/Variant: Lunar Lander provides the option to land automatically or allow the
crew to manually steer the spacecraft.
Quality Requirements:
Real-time requirements: The thrusters and the descent engine must be able to respond to
commands from the computer system in real-time.
Fault tolerance: Lunar Lander must be able to continue in its flight-path even when the
main computer system (Primary Navigation Guidance & Control) goes down. Lunar Lander
must be able to maintain system altitude even when one of the thrusters and propellant
supplies goes down in the Reaction Control System.
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
30
Feature Model: Use Case Diagram
 Defines use cases
within the domain
 Similar to use case
models in UML
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
31
Feature Model: Representation
Diagram
 Defines how
information is
presented to
human users
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
32
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Operational Model: Data Flow
Diagram
 Focuses on
data flow between
entities with no
notion of control
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
33
Operational
Model:
Control Flow
Diagram
 Focuses on
control flow between
entities separate from
data flow
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
34
Operational Model: State
Transition Diagram
 Focuses on states
of systems and
transitions between
them
 Resembles UML
state diagrams
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
35
Reference Requirements
 Mandatory
Must display the current status of the Lunar Lander (horizontal and
vertical velocities, altitude, remaining fuel)
Must indicate points earned by player based on quality of landing
 Optional
May display time elapsed
 Variant
May have different levels of difficulty based on pilot experience
(novice, expert, etc)
May have different types of input depending on whether
 Auto Navigation is enabled
 Auto Throttle is enabled
May have to land on different celestial bodies
 Moon
 Mars
 Jupiter’s moons
 Asteroid
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
36
Domain-Specific Software
Architecture
 Definition: Definition. A domain-specific software
architecture (DSSA) comprises:
a reference architecture, which describes a general
computational framework for a significant domain of
applications;
a component library, which contains reusable chunks
of domain expertise; and
an application configuration method for selecting and
configuring components within the architecture to
meet particular application requirements.
(Hayes-Roth)
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
37
Reference Architecture
 Definition. Reference architecture is the set of principal
design decisions that are simultaneously applicable to
multiple related systems, typically within an application
domain, with explicitly defined points of variation.
 Reference architectures are still architectures (since they
are also sets of principal design decisions)
Distinguished by the presence of explicit points of
variation (explicitly “unmade” decisions)
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
38
Different Kinds of Reference
Architecture
 Complete single product architecture
A fully worked out exemplar of a system in a
domain, with optional documentation as to how to
diversify
Can be relatively weak due to lack of explicit
guidance and possibility that example is a ‘toy’
 Incomplete invariant architecture
Points of commonality as in ordinary architecture,
points of variation are indicated but omitted
 Invariant architecture with explicit variation
Points of commonality as in ordinary architecture,
specific variations indicated and enumerated
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
39
Example Reference Architecture
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
 Structural view
of Lunar Lander
DSSA
 Invariant with
explicit points
of variation
Satellite relay
Sensors
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
40
Objectives
 Concepts
What is domain-specific software engineering
(DSSE)
The “Three Lampposts” of DSSE: Domain,
Business, and Technology
Domain Specific Software Architectures
 Product Lines
 Relationship between DSSAs, Product Lines, and
Architectural Styles
 Examples of DSSE at work
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
41
Objectives
 Concepts
What is domain-specific software engineering
(DSSE)
The “Three Lampposts” of DSSE: Domain,
Business, and Technology
Domain Specific Software Architectures
 Product Lines
 Relationship between DSSAs, Product Lines, and
Architectural Styles
 Examples of DSSE at work
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
42
Product Lines
 A set of related products that have substantial
commonality
In general, the commonality exists at the architecture
level
 One potential ‘silver bullet’ of software engineering
Power through reuse of
Engineering knowledge
Existing product architectures, styles, patterns
Pre-existing software components and connectors
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
43
Domains vs. Product Lines
 Domain
Consumer
electronics
Avionics
Compilers
Video games
 Product Line
Sony WEGA TVs
Boeing 747 Family
GNU compiler suite
Suite of games
built on same
engine
Domains are in the problem space, product lines are in
the solution space
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
44
Business vs. Engineering Product
Lines
 Business Product Line
A set of products marketed under a common banner
to increase sales and market penetration through
bundling and integration
 Engineering Product Line
A set of products that have substantial commonality
from a technical/engineering perspective
 Generally, business product lines are engineering
product lines and vice-versa, but not always
Applications bundled after a company acquisition
Chrysler Crossfire & Mercedes SLK V6
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
45
A Business or Engineering
Product Line?
 40% reuse of Mercedes
parts in the Crossfire
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
46
Business Motivation for Product
Lines
Traditional Software
Engineering
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
47
Business Motivation for Product
Lines
Traditional Software
Engineering
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
48
Business Motivation for Product
Lines Product Line-Based
Software Engineering
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
49
Capturing Product Line
Architectures
 Common: features common to all products
 A: features specific to product A
 B: features specific to product B
 Product A = Common + A
 Product B = Common + B
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
50
A Product-Line Architecture
 Definition: A product-line architecture captures the
architectures of many related products simultaneously
 Generally employs explicit variation points in the
architecture indicating where design decisions may
diverge from product to product
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
51
A Lunar Lander Product Line
“Lite” “Demo” “Pro”
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
52
Product Component Table
 Helps us
decide
whether
creating a
product line is
viable or
feasible
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
53
Group Components into Features
 Not a mechanical
process
 Attempt to identify
(mostly) orthogonal
features, or features
that would be
beneficial in different
products
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
54
Reconstitute Products from
Features
 Use technical and business
knowledge to identify which
combinations form feasible
or marketable products
that will be constructed
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
55
Modeling Product Line
Architectures
 Architectural models need to be diversified with
information about variation points and features
 Not all ADLs have good support for this
Exceptions include
Koala
xADL 2.0
These ADLs have explicit support for capturing
variation points
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
56
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
57
Selection
 Product-line selection is the process of extracting a
single product architecture (or smaller product line) from
an architectural model that contains explicit points of
variation
 ADLs such as Koala and xADL 2.0 can do selection
automatically with tools
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
58
Product Lines for Evolution
 Products in a product line don’t have to exclusively capture
alternatives
They can also capture variation over time
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
59
Product Lines for Evolution
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
60
Product Lines for ‘What-If’
Analysis
 In addition to alternative products and different versions
of the same product, product lines can capture different
potential products
Selection can be used to quickly generate product
architectures for potential products
These can be checked for certain properties or
subjected to more rigorous analysis for feasibility or
quality
Can also be used to generate new product ideas
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
61
Implementation Issues
 Important to partition implementations along variation-
point boundaries
Bad Good
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
62
Implementation Issues (cont’d)
 Keeping evolving architectures and version-controlled
source repositories (e.g., RCS, CVS, Subversion) in
sync
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
63
Unifying Products with Different
Heritage
 Often, the idea to create a product line emerges after several
products have been implemented and commonality is noticed
 Strategies include
No product line
 It may be more expensive to create a product line or there
may not be enough commonality
One master product
 One product architecture becomes the basis for the product
line
Hybrid
 A new product line architecture emerges out of many
products
 Seems ideal but can be hard in practice
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
64
Architectural Styles, DSSAs,
Product Lines
 Architectural Styles
Can be general or domain-specific
Provides general guidelines for diverse kinds of
applications; focus on –ility development
 DSSAs
Domain specific; includes elaborate domain model
and specific reference architecture
 Product lines
Explicit set of related products with common aspects
Style DSSA / Ref Arch Product Line
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
65
Families of Styles:
Batch-Sequential vs. Pipe-and-Filter
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
66
Objectives
 Concepts
What is domain-specific software engineering
(DSSE)
The “Three Lampposts” of DSSE: Domain,
Business, and Technology
Domain Specific Software Architectures
 Product Lines
 Relationship between DSSAs, Product Lines, and
Architectural Styles
 Examples of DSSE at work
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
67
Koala
 An ADL and tool-set for developing product lines of
consumer electronics
 A successor to Darwin in terms of structural modeling
 One of the first ADLs to capture points of variation
explicitly
 Has tight bindings to implementations such that
architecture descriptions can be “compiled” into
application skeletons
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
68
Lunar Lander in Koala
 No product line features yet
 Note similarities to Darwin,
xADL 2.0
xADL 2.0 Archipelago
visualization is derived
from Koala
interface IDataStore{
void setAltitude(int altitudeInMeters);
int getAltitude();
void setBurnRate(int newBurnRate);
int getBurnRate();
...
}
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
69
Lunar Lander PL in Koala
 Switch construct
routes calls to one
of two potential data
stores
 ‘Diversity interface’
lets game logic
component select
callee from external
config component
 Same IDataStore
interface ensures
call compatibility
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
70
Software Defined Radios
 Variation points in radio configuration, board
configuration, software configuration
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
71
SDR in xADL 2.0
 Two-node “SCARI” SDR with just device drivers
loaded
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
72
SDR in xADL 2.0
 Same radio with one waveform deployed
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
73
SDRs in xADL 2.0
 By applying product line techniques to SDRs
Can manage different configurations of the radio
Deploying components on alternative hosts
Deployments with
 No waveforms
 One waveform
 Different combinations of waveforms
Can show radio in different states as radio starts up
or transitions from one waveform to another

Weitere ähnliche Inhalte

Ähnlich wie Cs 1023 lec 11 dsse (week 4)

Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
stanbridge
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
Majong DevJfu
 
Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)
stanbridge
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2
Majong DevJfu
 
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
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
Majong DevJfu
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
Majong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
Majong DevJfu
 

Ähnlich wie Cs 1023 lec 11 dsse (week 4) (20)

Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Analysis of software architectures
Analysis of software architecturesAnalysis of software architectures
Analysis of software architectures
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
18 applied architectures_part_2
18 applied architectures_part_218 applied architectures_part_2
18 applied architectures_part_2
 
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)
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 
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
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
A World In Motion
A World In MotionA World In Motion
A World In Motion
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
Chapter 1(1) system development life .ppt
Chapter 1(1) system development life .pptChapter 1(1) system development life .ppt
Chapter 1(1) system development life .ppt
 
GSwErc
GSwErcGSwErc
GSwErc
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz Questions
 
Software Architecture - Quiz Questions
Software Architecture - Quiz QuestionsSoftware Architecture - Quiz Questions
Software Architecture - Quiz Questions
 
System engineering
System engineeringSystem engineering
System engineering
 

Mehr von stanbridge

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

VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 

Kürzlich hochgeladen (20)

Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 

Cs 1023 lec 11 dsse (week 4)

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Domain-Specific Software Architecture and Product Lines Software Architecture
  • 2. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 2 Objectives  Concepts What is domain-specific software engineering (DSSE) The “Three Lampposts” of DSSE: Domain, Business, and Technology Domain Specific Software Architectures  Product Lines  Relationship between DSSAs, Product Lines, and Architectural Styles  Examples of DSSE at work
  • 3. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 3 Objectives  Concepts What is domain-specific software engineering (DSSE) The Three Key Factors of DSSE: Domain, Business, and Technology Domain Specific Software Architectures  Product Lines  Relationship between DSSAs, Product Lines, and Architectural Styles  Examples of DSSE at work
  • 4. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 4 Domain-Specific Software Engineering  The traditional view of software engineering shows us how to come up with solutions for problems de novo  But starting from scratch every time is infeasible This will involve re-inventing many wheels  Once we have built a number of systems that do similar things, we gain critical knowledge that lets us exploit common solutions to common problems In theory, we can simply build “the difference” between our new target system and systems that have come before
  • 5. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 5 Examples of Domains  Compilers for programming languages  Consumer electronics  Electronic commerce system/Web stores  Video game  Business applications Basic/Standard/“Pro”  We can subdivide, too: Avionics systems Boeing Jets  Boeing 747-400 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 6. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 6 Traditional Software Engineering  One particular problem can be solved in innumerable ways Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 7. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 7 Architecture-Based Software Engineering  Given a single problem, we select from a handful of potential architectural styles or architectures, and go from these into specific implementations Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 8. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 8 Domain-Specific Software Engineering  We map regions of the problem space (domains) into domain- specific software architectures (DSSAs)  These are specialized into application-specific architectures  These are implemented Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 9. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 9 Three Key Factors of DSSE  Domain Must have a domain to constrain the problem space and focus development  Technology Must have a variety of technological solutions—tools, patterns, architectures & styles, legacy systems—to bring to bear on a domain  Business Business goals motivate the use of DSSE Minimizing costs: reuse assets when possible Maximize market: develop many related applications for different kinds of end users
  • 10. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 10 Domain Business Technology Three Key Factors  Domain Must have a domain to constrain the problem space and focus development
  • 11. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 11 Domain Business Technology Three Key Factors  Technology Must have a variety of technological solutions—tools, patterns, architectures & styles, legacy systems—to bring to bear on a domain
  • 12. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 12 Domain Business Technology Three Key Factors  Business Business goals motivate the use of DSSE Minimizing costs: reuse assets when possible Maximize market: develop many related applications for different kinds of end users
  • 13. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 13 Domain Business Technology Three Key Factors  Domain + Business  “Corporate Core Competencies” Domain expertise augmented by business acumen and knowledge of the market
  • 14. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 14 Domain Business Technology Three Key Factors  Domain + Technology  “Application Family Architectures” All possible technological solutions to problems in a domain Uninformed and unconstrained by business goals and knowledge
  • 15. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 15 Domain Business Technology Three Key Factors  Business + Technology  “Domain independent infrastructure” Tools and techniques for constructing systems independent of any particular domain E.g., most generic ADLs, UML, compilers, word processors, general-purpose PCs
  • 16. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 16 Domain Business Technology Three Key Factors  Domain + Business + Technology  “Domain-specific software engineering”  Applies technology to domain-specific goals, tempered by business and market knowledge
  • 17. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 17 Domain Business Technology Three Key Factors  Product-Line Architectures  A specific, related set of solutions within a broader DSSE  More focus on commonalities and variability between individual solutions
  • 18. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 18 Becoming More Concrete  Applying DSSE means developing a set of artifacts more specific than an ordinary software architecture Focus on aspects of the domain Focus on domain-specific solutions, techniques, and patterns  These are A domain model and A domain-specific software architecture (DSSA)
  • 19. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 19 Domain Model  A domain model is a set of artifacts that capture information about a domain Functions performed Objects (also known as entities) that perform the functions, and on which the functions are performed Data and information that flows through the system  Standardizes terminology and semantics  Provides the basis for standardizing (or at least normalizing) descriptions of problems to be solved in the domain
  • 20. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 20 Domain Model Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 21. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 21 Domain Model  Defines vocabulary for the domain Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 22. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 22 Domain Model  Describes the entities and data in the domain Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 23. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 23 Domain Model  Defines how entities and data combine to provide features Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 24. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 24 Domain Model  Defines how data and control flow through entities Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 25. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 25 (Partial) Domain Dictionary Lunar Module (LM): this is the portion of the spacecraft that lands on the moon. It consists of two main parts: the Ascent Stage (which holds the crew cabin) and the Descent Stage, which contains thrusters used for controlling the landing of the LM. Reaction Control System (RCS): a system on the Lunar Module responsible for the stabilization during lunar surface ascent/descent and control of the spacecraft’s orientation (attitude) and motion (translation) during maneuvers Vertical velocity (see also One-dimensional motion): For a free-falling object with no air resistance, ignoring the rotation of the lunar surface, the altitude is calculated as follows: y = ½ * a * t2 + vi * t + yi y = altitude a = constant acceleration due to gravity on a lunar body (see Acceleration for sample values) t = time in seconds; vi = initial velocity; yi = initial altitude When thrust is applied, the following equation is used: y = ½ * (aburner – agravity) * t2 + vi * t + yi y = altitude aburner = constant acceleration upward due to thrust agravity = constant acceleration due to gravity on a lunar (see Acceleration for sample values) t = time in seconds; vi = initial velocity; yi = initial altitude Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 26. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 26 Info Model: Context Info Diagram  Defines high- level entities  Defines what is considered inside and outside the domain (or subdomains)  Defines relationships and high-level flows Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 27. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 27  Defines entities and cardinal relationships between them Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission. Info Model: Entity-Relationship Diagram
  • 28. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 28 Info Model: Object Diagram Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.  Defines attributes and operations on entities  Closely resembles class diagram in UML but may be more abstract
  • 29. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 29 Feature Model: Feature Relationship Diagram  Describes overall mission operations of a system  Describes major features and decomposition Feature Relationship Diagram – Landing Phase Mandatory: The Lunar Lander must continually read altitude from the Landing Radar and relay that data to Houston with less than 500 msec of latency. Astronauts must be able to control the descent of the Lunar Lander using manual control on the descent engine. The descent engine must respond to control commands in 250msec, with or without a functioning DSKY… Optional/Variant: Lunar Lander provides the option to land automatically or allow the crew to manually steer the spacecraft. Quality Requirements: Real-time requirements: The thrusters and the descent engine must be able to respond to commands from the computer system in real-time. Fault tolerance: Lunar Lander must be able to continue in its flight-path even when the main computer system (Primary Navigation Guidance & Control) goes down. Lunar Lander must be able to maintain system altitude even when one of the thrusters and propellant supplies goes down in the Reaction Control System. Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 30. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 30 Feature Model: Use Case Diagram  Defines use cases within the domain  Similar to use case models in UML Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 31. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 31 Feature Model: Representation Diagram  Defines how information is presented to human users Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 32. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 32 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission. Operational Model: Data Flow Diagram  Focuses on data flow between entities with no notion of control
  • 33. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 33 Operational Model: Control Flow Diagram  Focuses on control flow between entities separate from data flow Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 34. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 34 Operational Model: State Transition Diagram  Focuses on states of systems and transitions between them  Resembles UML state diagrams Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 35. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 35 Reference Requirements  Mandatory Must display the current status of the Lunar Lander (horizontal and vertical velocities, altitude, remaining fuel) Must indicate points earned by player based on quality of landing  Optional May display time elapsed  Variant May have different levels of difficulty based on pilot experience (novice, expert, etc) May have different types of input depending on whether  Auto Navigation is enabled  Auto Throttle is enabled May have to land on different celestial bodies  Moon  Mars  Jupiter’s moons  Asteroid Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 36. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 36 Domain-Specific Software Architecture  Definition: Definition. A domain-specific software architecture (DSSA) comprises: a reference architecture, which describes a general computational framework for a significant domain of applications; a component library, which contains reusable chunks of domain expertise; and an application configuration method for selecting and configuring components within the architecture to meet particular application requirements. (Hayes-Roth)
  • 37. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 37 Reference Architecture  Definition. Reference architecture is the set of principal design decisions that are simultaneously applicable to multiple related systems, typically within an application domain, with explicitly defined points of variation.  Reference architectures are still architectures (since they are also sets of principal design decisions) Distinguished by the presence of explicit points of variation (explicitly “unmade” decisions)
  • 38. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 38 Different Kinds of Reference Architecture  Complete single product architecture A fully worked out exemplar of a system in a domain, with optional documentation as to how to diversify Can be relatively weak due to lack of explicit guidance and possibility that example is a ‘toy’  Incomplete invariant architecture Points of commonality as in ordinary architecture, points of variation are indicated but omitted  Invariant architecture with explicit variation Points of commonality as in ordinary architecture, specific variations indicated and enumerated
  • 39. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 39 Example Reference Architecture Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.  Structural view of Lunar Lander DSSA  Invariant with explicit points of variation Satellite relay Sensors
  • 40. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 40 Objectives  Concepts What is domain-specific software engineering (DSSE) The “Three Lampposts” of DSSE: Domain, Business, and Technology Domain Specific Software Architectures  Product Lines  Relationship between DSSAs, Product Lines, and Architectural Styles  Examples of DSSE at work
  • 41. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 41 Objectives  Concepts What is domain-specific software engineering (DSSE) The “Three Lampposts” of DSSE: Domain, Business, and Technology Domain Specific Software Architectures  Product Lines  Relationship between DSSAs, Product Lines, and Architectural Styles  Examples of DSSE at work
  • 42. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 42 Product Lines  A set of related products that have substantial commonality In general, the commonality exists at the architecture level  One potential ‘silver bullet’ of software engineering Power through reuse of Engineering knowledge Existing product architectures, styles, patterns Pre-existing software components and connectors
  • 43. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 43 Domains vs. Product Lines  Domain Consumer electronics Avionics Compilers Video games  Product Line Sony WEGA TVs Boeing 747 Family GNU compiler suite Suite of games built on same engine Domains are in the problem space, product lines are in the solution space
  • 44. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 44 Business vs. Engineering Product Lines  Business Product Line A set of products marketed under a common banner to increase sales and market penetration through bundling and integration  Engineering Product Line A set of products that have substantial commonality from a technical/engineering perspective  Generally, business product lines are engineering product lines and vice-versa, but not always Applications bundled after a company acquisition Chrysler Crossfire & Mercedes SLK V6
  • 45. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 45 A Business or Engineering Product Line?  40% reuse of Mercedes parts in the Crossfire
  • 46. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 46 Business Motivation for Product Lines Traditional Software Engineering Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 47. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 47 Business Motivation for Product Lines Traditional Software Engineering Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 48. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 48 Business Motivation for Product Lines Product Line-Based Software Engineering Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 49. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 49 Capturing Product Line Architectures  Common: features common to all products  A: features specific to product A  B: features specific to product B  Product A = Common + A  Product B = Common + B Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 50. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 50 A Product-Line Architecture  Definition: A product-line architecture captures the architectures of many related products simultaneously  Generally employs explicit variation points in the architecture indicating where design decisions may diverge from product to product
  • 51. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 51 A Lunar Lander Product Line “Lite” “Demo” “Pro” Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 52. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 52 Product Component Table  Helps us decide whether creating a product line is viable or feasible Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 53. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 53 Group Components into Features  Not a mechanical process  Attempt to identify (mostly) orthogonal features, or features that would be beneficial in different products Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 54. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 54 Reconstitute Products from Features  Use technical and business knowledge to identify which combinations form feasible or marketable products that will be constructed Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 55. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 55 Modeling Product Line Architectures  Architectural models need to be diversified with information about variation points and features  Not all ADLs have good support for this Exceptions include Koala xADL 2.0 These ADLs have explicit support for capturing variation points
  • 56. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 56 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 57. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 57 Selection  Product-line selection is the process of extracting a single product architecture (or smaller product line) from an architectural model that contains explicit points of variation  ADLs such as Koala and xADL 2.0 can do selection automatically with tools Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 58. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 58 Product Lines for Evolution  Products in a product line don’t have to exclusively capture alternatives They can also capture variation over time Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 59. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 59 Product Lines for Evolution Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 60. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 60 Product Lines for ‘What-If’ Analysis  In addition to alternative products and different versions of the same product, product lines can capture different potential products Selection can be used to quickly generate product architectures for potential products These can be checked for certain properties or subjected to more rigorous analysis for feasibility or quality Can also be used to generate new product ideas
  • 61. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 61 Implementation Issues  Important to partition implementations along variation- point boundaries Bad Good Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 62. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 62 Implementation Issues (cont’d)  Keeping evolving architectures and version-controlled source repositories (e.g., RCS, CVS, Subversion) in sync Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 63. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 63 Unifying Products with Different Heritage  Often, the idea to create a product line emerges after several products have been implemented and commonality is noticed  Strategies include No product line  It may be more expensive to create a product line or there may not be enough commonality One master product  One product architecture becomes the basis for the product line Hybrid  A new product line architecture emerges out of many products  Seems ideal but can be hard in practice
  • 64. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 64 Architectural Styles, DSSAs, Product Lines  Architectural Styles Can be general or domain-specific Provides general guidelines for diverse kinds of applications; focus on –ility development  DSSAs Domain specific; includes elaborate domain model and specific reference architecture  Product lines Explicit set of related products with common aspects Style DSSA / Ref Arch Product Line
  • 65. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 65 Families of Styles: Batch-Sequential vs. Pipe-and-Filter Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 66. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 66 Objectives  Concepts What is domain-specific software engineering (DSSE) The “Three Lampposts” of DSSE: Domain, Business, and Technology Domain Specific Software Architectures  Product Lines  Relationship between DSSAs, Product Lines, and Architectural Styles  Examples of DSSE at work
  • 67. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 67 Koala  An ADL and tool-set for developing product lines of consumer electronics  A successor to Darwin in terms of structural modeling  One of the first ADLs to capture points of variation explicitly  Has tight bindings to implementations such that architecture descriptions can be “compiled” into application skeletons
  • 68. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 68 Lunar Lander in Koala  No product line features yet  Note similarities to Darwin, xADL 2.0 xADL 2.0 Archipelago visualization is derived from Koala interface IDataStore{ void setAltitude(int altitudeInMeters); int getAltitude(); void setBurnRate(int newBurnRate); int getBurnRate(); ... } Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 69. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 69 Lunar Lander PL in Koala  Switch construct routes calls to one of two potential data stores  ‘Diversity interface’ lets game logic component select callee from external config component  Same IDataStore interface ensures call compatibility Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 70. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 70 Software Defined Radios  Variation points in radio configuration, board configuration, software configuration Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 71. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 71 SDR in xADL 2.0  Two-node “SCARI” SDR with just device drivers loaded Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 72. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 72 SDR in xADL 2.0  Same radio with one waveform deployed Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 73. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 73 SDRs in xADL 2.0  By applying product line techniques to SDRs Can manage different configurations of the radio Deploying components on alternative hosts Deployments with  No waveforms  One waveform  Different combinations of waveforms Can show radio in different states as radio starts up or transitions from one waveform to another