130 likes | 279 Views
Marrying Software Architecture with Configuration Management Techniques. Roshanak Roshandel roshande@usc.edu ARR February 2001. Background. Software Architecture Elements Components, connectors, configurations, architectural style, architecture description languages (ADL), subtyping
E N D
Marrying Software Architecture with Configuration Management Techniques Roshanak Roshandel roshande@usc.edu ARR February 2001 USC - Center for Software Engineering
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 USC - Center for Software Engineering
Word Processor develops Architecture Implementation Design Scenario USC - Center for Software Engineering
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 USC - Center for Software Engineering
VariantConnectorType VariantComponentType InterfaceType ComponentType InterfaceInstance ConnectorInstance ComponentInstance ConnectorType VariantComponentType Name Revision Representation Ascendant Descendant Name ComponentType | VariantComponentType Name Revision VariantPropertyName Ascendant Descendant Subtype Name Direction InterfaceType Name, Revision, Representation, Ascendant, Descendant, Interface instances, Component instances, Connector instances, Behaviors, Constraints, Subtype, Style Name Source Interface Destination Interface ConnectorType VariantConnectorType ComponentType System Model USC - Center for Software Engineering
Mae • Architectural evolution environment • Instance of the generic system model • Mapping onto C2SADEL ADL USC - Center for Software Engineering
Graphical environment for specifying versioned software architecture Environment for supporting architecture based evolution Mae Ménage Dradel Implementation Expansion and loose integration USC - Center for Software Engineering
Example Application USC - Center for Software Engineering
Mae USC - Center for Software Engineering
Name = tSpellChecker Revision = 2 Interface = { iSpellCheck } Component = { iTokenizer, iResultCollector} Connector = { iC2bus1, iC2bus3 } Behavior = { iSpellCheck* } Constraint = { } Representation = { << … >> } Ascendant = { tSpellChecker 1 } Descendant = {tSpellChecker 3} Style = { C2 } SubType = { beh \and int } Spell Checker Name = tSpellChecker Revision = 3 Interface = { 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 } USC - Center for Software Engineering
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 USC - Center for Software Engineering
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 USC - Center for Software Engineering
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 USC - Center for Software Engineering