a modular reference structure for component-based architecture … · 2016-02-29 ·...
TRANSCRIPT
KIT – University of the State of Baden-Wuerttemberg and
National Research Center of the Helmholtz Association
SOFTWARE DESIGN AND QUALITY GROUP
INSTITUTE FOR PROGRAM STRUCTURES AND DATA ORGANIZATION, FACULTY OF INFORMATICS
www.kit.edu
A Modular Reference Structure forComponent-based Architecture Description Languages
ModComp, Ottawa, 28.09.2015
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner
Software Design and Quality Group
Institute for Program Structures and Data Organization2 27.09.2015
Palladio Component Model (PCM)
DSL for component-based software architectures
Initial focus design time performance prediction
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Palladio
[Becker09]
DependenciesIntroduction ConclusionModularization Related WorkApplication
Performance
Software Design and Quality Group
Institute for Program Structures and Data Organization3 27.09.2015
Palladio Component Model (PCM)
DSL for component-based software architectures
Initial focus design time performance prediction
Design did not consider extensibility
Research spectrum broadened
Initial extensions: intrusively
Later: external extensions
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Palladio
[Becker09]
DependenciesIntroduction ConclusionModularization Related WorkApplication
Performance
Software Design and Quality Group
Institute for Program Structures and Data Organization4 27.09.2015
Motivation
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Challenge: extension &
evolution
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization5 27.09.2015
Motivation
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Challenge: extension &
evolution
Inconsistent structuring
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization6 27.09.2015
Motivation
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Challenge: extension &
evolution
Inconsistent structuring
Improper separation of
concerns
Interface Relations
Resource Interfaces:
Relations & Roles
Events
Infrastructure
Variable Characterization
Parameter Class is in Repo
Events
Infrastructure
Events
Infrastructure (Only examples on class level)
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization7 27.09.2015
Motivation
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Challenge: extension &
evolution
Inconsistent structuring
Improper separation of
concerns
Dependency cycles
⇒ all or nothing reuse
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization8 27.09.2015
Motivation
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Challenge: extension &
evolution
Inconsistent structuring
Improper separation of
concerns
Dependency cycles
⇒ all or nothing reuse
⇒ Degradation of
understandability and
maintainability
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization9 27.09.2015
PIB
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
• Metamodels not designed for extensibility or modularity, are hard to evolve and maintain
• Intrusive modification and extension degrades structure over time
• Variants/branches lead to duplication
Problem
• An approach, which categorizes and divides information into modules and layers
• Guidance and mechanisms for metamodel composition and extension
• Constrainment of dependencies
Idea
• Reduced complexity⇒ Improved understandability & maintainability
• Flexibility (pick which modules you really need)⇒ Extensibility, reuse
Benefit
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization10 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Base Metamodel
Extension Metamodel
Base
Ext
At least one element in Ext
does somehow depend on
an element in Base
(EMOF based or similar)
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization11 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference Base Metamodel
Extension Metamodel
Inter-
face
Interface
Modification
PCM
KAMP
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization12 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference Base Metamodel
Extension Metamodel
Inter-
face
Interface
Modification
PCM
KAMP
• Should be a “thing” for itself
• If not: see later
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization13 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference
Contains
BPM
Base Metamodel
Extension Metamodel
Data
Type
DataTransfer
Object
PCM
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization14 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference
Contains
InheritanceRepo
Comp
Base Metamodel
Extension Metamodel
Repo
BlackBox
CompExtend metamodel
by new subclass
Basic
Comp
PCM
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization15 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference
Contains
Inheritance
???
Base Metamodel
Extension Metamodel
Repo
Comp
?
Extend existing class
by new information:
• Attribute
• Reference
• Containment
PCM
Sec
Comp
Security
+sec
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization16 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference
Contains
Inheritance
???
Base Metamodel
Extension Metamodel
Repo
Comp
?
• Not a plain relation as the others
• Only needed when working with
multiple metamodels
PCM
Sec
Comp
Security
+sec
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization17 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference
Contains
Inheritance
Extends
Base Metamodel
Extension Metamodel
Repo
Comp
Comp
Security
PCM
Sec
+sec
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization18 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference
Contains
Inheritance
Extends
= Metamodel extension types
Beware: there are ways to use
inheritance to model the
extends relation.
One of them is really bad.
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization19 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference
Contains
Inheritance
Extends
= Metamodel extension types
Beware: there are ways to use
inheritance to model the
extends relation.
One of them is really bad.
All these relations are allowed
between metamodels
if used correctly
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization20 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Extends: Dependency Inversion
Base Metamodel
Extension Metamodel
Repo
Comp
Comp
Security
PCM
Sec
+sec
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization21 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Extends: Dependency Inversion
Base Metamodel
Extension Metamodel
Repo
Comp
Comp
Security
PCM
Sec
+sec
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization22 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Modularization
(Metamodel) modules
Set of classes
Explicit dependencies
No dependency cycles
Module
Module
Module
Module Module
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization23 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Modularization
(Metamodel) modules
Set of classes
Explicit dependencies
No dependency cycles
Modularization
Module contains set of concerns
Must be meaningful to use
module with or without extension
Module
Module
Module
Module Module
Base
Ext 1
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization24 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Modularization
(Metamodel) modules
Set of classes
Explicit dependencies
No dependency cycles
Modularization
Module contains set of concerns
Must be meaningful to use
module with or without extension
If not: module has to be base for
multiple Extensions
Module
Module
Module
Module Module
Base
Ext 1 Ext 2
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization25 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Layering
Modules form cycle free,
directed graph
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization26 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Layering
Modules form cycle free,
directed graph
Modules are
organized in layers
Specific types of
dependencies
between layers
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization27 27.09.2015
Layers
Π: Paradigm
Δ: Domain
Ω: Quality
Σ: Analyses
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization28 27.09.2015
Layers
Π: Paradigm
Abstract structure
E.g. composition, object orientation, behavioral formalism
Δ: Domain
Ω: Quality
Σ: Analyses
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization29 27.09.2015
Layers
Π: Paradigm
Abstract structure
E.g. composition, object orientation, behavioral formalism
Δ: Domain
Assign domain semantics to paradigm
E.g. software, embedded systems, cyber-physical infrastructures
Ω: Quality
Σ: Analyses
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization30 27.09.2015
Layers
Π: Paradigm
Abstract structure
E.g. composition, object orientation, behavioral formalism
Δ: Domain
Assign domain semantics to paradigm
E.g. software, embedded systems, cyber-physical infrastructures
Ω: Quality
Inherent quality properties assigned to domain entities
Σ: Analyses
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization31 27.09.2015
Layers
Π: Paradigm
Abstract structure
E.g. composition, object orientation, behavioral formalism
Δ: Domain
Assign domain semantics to paradigm
E.g. software, embedded systems, cyber-physical infrastructures
Ω: Quality
Inherent quality properties assigned to domain entities
Static during execution
Mainly second class entities
E.g. performance, security, resilience
Σ: Analyses
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization32 27.09.2015
Layers
Π: Paradigm
Abstract structure
E.g. composition, object orientation, behavioral formalism
Δ: Domain
Assign domain semantics to paradigm
E.g. software, embedded systems, cyber-physical infrastructures
Ω: Quality
Inherent quality properties assigned to domain entities
Static during execution
Mainly second class entities
E.g. performance, security, resilience
Σ: Analyses
In-/output, state
Analysis configuration
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization33 27.09.2015
Application: Starting Point
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
PCM
Modifi-
cations
Artifacts
and Staff
Static
Dependencies
KAMP Maintainability
Prediction
Component Architecture,
Behavior, Performance,
Reliability, Infrastructure,
Events, Resources,
Deployment, Usage, ...
Performance
Results
DependenciesIntroduction ConclusionModularization Related WorkApplication
(Proper elaboration of the PCM’s concerns in [Strittmatter14])
Software Design and Quality Group
Institute for Program Structures and Data Organization34 27.09.2015
Application: Modularization
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Core
Entitiesπ Compo-
sition
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization35 27.09.2015
Application: Modularization
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Core
EntitiesπΔ
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Modifi-
cations
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization36 27.09.2015
Application: Modularization
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization37 27.09.2015
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
Application: Modularization
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization38 27.09.2015
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
Application: Modularization
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization39 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization40 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization41 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization42 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization43 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization44 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization45 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
Confi-
dentiality
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization46 27.09.2015
Application: Benefit
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Σ
Core
EntitiesπΔ
Ω
Compo-
sition
Software
Components
Static
Dependencies
Development
ArtifactsBehavior
Staff
Specification
Perfor-
mance
Performance
Results
Performance
Configuration
KAMP
Input
KAMP
Result
Modifi-
cations
Relia-
bility
Failure
Types
Performance
Metrics
Un
de
rsta
nd
Evo
lve
Software Design and Quality Group
Institute for Program Structures and Data Organization47 27.09.2015
Related Work
Structuring:
Orthographic Software Modeling [Atkinson10]
Deep modeling [Atkinson12]
UML archetypes [Coad99]
Software “blood types” [Siedersleben04]
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization48 27.09.2015
Related Work
Structuring:
Orthographic Software Modeling [Atkinson10]
Deep modeling [Atkinson12]
UML archetypes [Coad99]
Software “blood types” [Siedersleben04]
Extensibility:
JetBrains MPS [Voelter12]
Arch Studio [Dashofy05]
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization49 27.09.2015
Related Work
Structuring:
Orthographic Software Modeling [Atkinson10]
Deep modeling [Atkinson12]
UML archetypes [Coad99]
Software “blood types” [Siedersleben04]
Extensibility:
JetBrains MPS [Voelter12]
Arch Studio [Dashofy05]
Modularity:
Generators [Jung15]
Transformations [Rentschler14]
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization50 27.09.2015
Future Work
Guidance/rules to assign information to layers
Specifics of layers concerning dependency types
and module types
Survey of extension mechanisms
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization51 27.09.2015
Future Work
Guidance/rules to assign information to layers
Specifics of layers concerning dependency types
and module types
Survey of extension mechanisms
Further application (whole PCM, …)
Tool support
modularization
structure visualization
modular graphical editors
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization52 27.09.2015
Conclusion
Idea
Design for extensibility and modularity
Guidance for structuring in modules
Classification of information into layers
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization53 27.09.2015
Conclusion
Idea
Design for extensibility and modularity
Guidance for structuring in modules
Classification of information into layers
Explicit dependencies between modules
Avoid dependency cycles between modules
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization54 27.09.2015
Conclusion
Idea
Design for extensibility and modularity
Guidance for structuring in modules
Classification of information into layers
Explicit dependencies between modules
Avoid dependency cycles between modules
Benefit
Reduced complexity
⇒ Understandability & maintainability
Flexibility (pick which modules you really need)
⇒ Extensibility, reuse
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization55 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
𝑓 Π, Δ, Ω, Σ = 𝑀𝑒𝑡𝑎𝑚𝑜𝑑𝑒𝑙
Paradigm
DomainQuality
Analysis
Module
Selection
Summary
Σ
πΔ
Ω≈
DependenciesIntroduction ConclusionModularization Related WorkApplication
Software Design and Quality Group
Institute for Program Structures and Data Organization56 27.09.2015
Backup
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Software Design and Quality Group
Institute for Program Structures and Data Organization57 27.09.2015
Application: Paradigm
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Com-ponent
Inter-face * Composed
Structure
CompositionCoreEntities
AssemblyContext
Connector
*
*
21π
*
Software Design and Quality Group
Institute for Program Structures and Data Organization58 27.09.2015
Application: Domain
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
∙ ∙ ∙
π
Δ
Com-ponent
Behavior
AbstractAction
Behavior
InternalAction
ExternalCall
*
StartAction
∙ ∙ ∙
Modification
Modification
ModInterface
ModComp
ModConnector
∙ ∙ ∙
Repository
SoftwareComponent
ComponentRepository
BusinessComponent
InfrastructureComponent
*
∙ ∙ ∙
OperationInterface
Inter-face
IntraCompPropagation
Propagation
∙ ∙ ∙
0...1
Software Design and Quality Group
Institute for Program Structures and Data Organization59 27.09.2015
Application: Quality
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Δ
Ω
InternalAction
ResourceDemand
Performance
FailureType
Reliability
FailureTypes
HardwareFailure
SoftwareFailure ∙ ∙ ∙
FailureOccurence
FailureProbability
Software Design and Quality Group
Institute for Program Structures and Data Organization60 27.09.2015
Application: Analysis
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Σ
Δ ΩEvolutionScenario
KAMP Input KAMP Result
ImpactPropagation
Modification
Propa-gation
DevelopmentArtifact
StaffSpecification
PerformanceResults
PerformanceResults
OperationResponseTime
*
Unit
OperationInterface
AssemblyContext
Software Design and Quality Group
Institute for Program Structures and Data Organization61 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies within the Layering
Π
ΔX X XY
Software Design and Quality Group
Institute for Program Structures and Data Organization62 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies within the Layering
Π
Δ
Ω
X X XY
Y X YX
Software Design and Quality Group
Institute for Program Structures and Data Organization63 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies within the Layering
Π
Δ
Ω
Σ
X X XY
Y X YX
Y Y XX
Software Design and Quality Group
Institute for Program Structures and Data Organization64 27.09.2015
Scope
Design-oriented
(Quality-describing)
(Analysis-oriented)
(Component-based)
Architecture vs. Software
Description Language
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Software Design and Quality Group
Institute for Program Structures and Data Organization65 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Dependencies
Reference “… knows …”
Contains “… contains …”
Inheritance “… is a …”
Extends “… is a property of …”
“… is a part of …”
“… is a trait of …”
Software Design and Quality Group
Institute for Program Structures and Data Organization66 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Extension Mechanisms
Implementation of extends relation
Simple reference
Simple inheritance
Abstract reference
Decorator
Stereotyping [Kramer12]
Aspect(-oriented) extension [Jung14]
Roles
Completions [Kapova13]
MIRs?
Model weaving
Software Design and Quality Group
Institute for Program Structures and Data Organization67 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Software Design and Quality Group
Institute for Program Structures and Data Organization68 27.09.2015 Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Π
Δ
Ω
Σ
Software Design and Quality Group
Institute for Program Structures and Data Organization69 27.09.2015
RepositoryComposition
Performance
ResourceTypes
SEFF
RDSEFF
DataTypes
Component Type Hierarchy
ResourceEnvironment
Reliability
QoS Annotations
Misha Strittmatter, Kiana Rostami, Robert Heinrich, Ralf Reussner – A Modular
Reference Structure for Component-based ADLs
Ω