2/6/01usc - center for software engineering 1 marrying software architecture with configuration...
TRANSCRIPT
2/6/01 USC - Center for Software Engineering
1
Marrying Software Architecture with Configuration Management
Techniques
Roshanak [email protected]
ARR February 2001
2/6/01 USC - Center for Software Engineering
2
Background
• Software Architecture Elements• Components, connectors, configurations,
architectural style, architecture description languages (ADL), subtyping
• Configuration Management Elements• Change management at source code level,
versioned archive, revisions, locks, branches, version tree, system models, configurations
2/6/01 USC - Center for Software Engineering
3
Scenario
Word Processor
develops
Architecture Design Implementation
2/6/01 USC - Center for Software Engineering
4
Architecture System Model
• Based on software architecture concepts• ADL and style independent• Component, connector, and interface
types• Component, connector, and interface
instances• Versioning types to capture architectural
evolution
2/6/01 USC - Center for Software Engineering
5
System Model
Name, Revision, Representation, Ascendant, Descendant, Interface instances, Component instances,Connector instances, Behaviors, Constraints, Subtype, Style
ComponentType
ComponentType
ConnectorType
NameDirectionInterfaceType
InterfaceInstance
NameComponentType |
VariantComponentType
ComponentInstance
NameSource InterfaceDestination InterfaceConnectorTypeVariantConnectorType
ConnectorInstance
VariantComponentType
VariantConnectorTypeNameRevisionRepresentationAscendantDescendant
InterfaceType
NameRevisionVariantPropertyNameAscendantDescendantSubtype
VariantComponentType
2/6/01 USC - Center for Software Engineering
6
Mae
• Architectural evolution environment
• Instance of the generic system model
• Mapping onto C2SADEL ADL
2/6/01 USC - Center for Software Engineering
7
Implementation
Mae Dradel Ménage
Expansion and loose integration
Environment for supporting
architecture based evolution
Graphical environment for
specifying versioned software
architecture
2/6/01 USC - Center for Software Engineering
8
Example Application
2/6/01 USC - Center for Software Engineering
9
Mae
2/6/01 USC - Center for Software Engineering
10
Spell CheckerName = tSpellCheckerRevision = 2Interface = { iSpellCheck }Component = { iTokenizer,
iResultCollector}Connector = { iC2bus1,
iC2bus3 }Behavior = { iSpellCheck* }Constraint = { }Representation = { << … >> }Ascendant = { tSpellChecker 1 }Descendant = {tSpellChecker 3}Style = { C2 }SubType = { beh \and int }
Name = tSpellCheckerRevision = 3Interface = { iSpellCheck }Component = { iTokenizer,
iResultCollector,iStatistics, collectStatistics, true }
Connector = { iC2bus1,iC2bus2, collectStatistics, true,iC2bus3 }
Behavior = { iSpellCheck* }Constraint = { }Representation = { << … >> }Ascendant = { tSpellChecker 2 }Descendant = { }Style = { C2 }SubType = { beh \and int }
2/6/01 USC - Center for Software Engineering
11
Benefits of Mae
• Automated change script generation• Architectural level patches
• Subtyping relationship to suggest candidate versions of components for replacement
• Multi-version connectors• Reliable component upgrade
2/6/01 USC - Center for Software Engineering
12
Future work
• Additional design-time functionality for evolving architectural elements
• Tight integration of development-time architectural evolution with the evolution of a deployed system, at run-time
• Enhancing the Mae environment
2/6/01 USC - Center for Software Engineering
13
Acknowledgement
• Andre van der Hoek
• Marija Rakic
• Roshanak Roshandel
• Nenad Medvidovic
Additional information:
“Taming Architectural Evolution”, Andre van der Hoek,
Marija Rakic, Roshanak Roshandel, Nenad Medvidovic
Technical Report: USC-CSE-2000-523