software architecture and software configuration management · scm 10 software architecture and...

24
Software Architecture and Software Architecture and Software Configuration Management Software Configuration Management Bernhard Westfechtel and Reidar Conradi RWTH Aachen, Germany/ NTNU Trondheim, Norway SCM 10

Upload: dodang

Post on 08-Sep-2018

274 views

Category:

Documents


0 download

TRANSCRIPT

Software Architecture andSoftware Architecture andSoftware Configuration Management Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

RWTH Aachen, Germany/

NTNU Trondheim, Norway

SCM 10

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Software process (simplified view)Software process (simplified view)

soft

war

e co

nfig

ura

tion

man

agem

ent

qu

alit y

assu

ran

ce

requirements engineering

programming-in-the-large

programming-in-the-small

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

DefinitionsDefinitions

An architecture is the set of significant decisions about theorganization of a software system, the selection of the structuralelements and their interfaces by which the system is composed,together with their behavior as specified in the collaborations amongthose elements, the composition of these structural and behavioralelements into progressively larger subsystems, and the architecturalstyle that guides this organization.[Booch, Rumbaugh, Jacobson 1999]

Configuration management is the process of identifyingand defining the items in the system, controlling the changesto these items throughout their life cycle, recording and reportingthe status of items and change requests, and verifying the completeness and correctness of items.[IEEE 1983]

Or: the discipline of controlling the evolution of complex software systems[Tichy 1988]

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Questions/goalsQuestions/goals

Investigate the borderline between software architecture and SCM» Product space» Version space

Investigate the division of labor between ADL tools and SCM systems» To what extent may an ADL tool rely on services provided by

an SCM system?» To what extent should an SCM system already incorporate

support for software architecture?» From the perspective of an ADL tool builder:

What are the requirements to SCM services?

In what respects do current SCM systems not (or not adequately) address these requirements?

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Architectural Description Languages (ADLs)Architectural Description Languages (ADLs)

Architecture Modeling Features

Components» Interface, Types, Semantics,

Constraints, Evolution

Connectors» Interface, Types, Semantics,

Constraints, Evolution

Architectural Configurations» Understandability,

Compositionality, Heterogeneity, Constraints, Refinement and Traceability, Scalability, Evolution, Dynamism

Tool Support

Active Specification

Multiple Views

Analysis

Refinement

Code Generation

Dynamism

[Medvidovic and Taylor 1997]

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

ADL Examples (1): UMLADL Examples (1): UML

SubRepresentation

getContentPane()

ReprElement

1..*1..*

ViewWindowManagerviewWindowNames : ArrayviewWindowDescriptions : HashMapviewWindowImplementations : HashMap

openViewWindow()removeViewWindow()getViewWindowNames()getViewWindowDescription()retrieveInstalledViews()

GraphFilter(from fi l ters)

ViewviewName : String

getName()incrementalUpdate()completeUpdate()closed()attach()detach()

ViewWindow

open()close()attachView()detachView()

0..*-openViewWindows 0..*

1..*

-openViews

1..*

Unparser

incrementalUpdate()completeUpdate()

<<Interface>>

#unparser

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

ADL Examples (2): Acme [Garlan et al. 1997]ADL Examples (2): Acme [Garlan et al. 1997]

component

connector configuration

representationvariant

representationvariant

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

ADL Examples (3): Wright [Allan and Garlan 1997]ADL Examples (3): Wright [Allan and Garlan 1997]

component Client =port Request = ......

component Server =port Provide = ......

connector Service = role Client = request!x → result?y → Client ∏ √role Server = invoke?x → return!y → Server √glue = Client.request?x → Server.invoke!x

→ Server.return?y → Client.result!y → glue

specificationof semantics

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

ADL Examples (4): Ménage [van der Hoek et al. 1997]ADL Examples (4): Ménage [van der Hoek et al. 1997]

revision

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

ADL Examples (4): Ménage [van der Hoek et al. 1997]ADL Examples (4): Ménage [van der Hoek et al. 1997]

optionalcomponent

variantvariant

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Software configuration managementSoftware configuration management

Deals with items = software objects and their relationships,objects are typed: source/derived, atomic/composite, etc.

Composition of these elements into configurations

Version control (evolution of objects, relationships, and configurations)

Representation of software architectures» Make files» System models dealing with

design objects

arbitrary software objects

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

System models for design objects (1):System models for design objects (1):Adele I [Estublier 1984]Adele I [Estublier 1984]

manual m2_i2_v2selimp

m4-i2-v1.05selcond

>*(syst = unix)>* (connect = pipe)

seldef>* (type = debug)

attributestype = debugsyst = unixauthor = Jimstate = experimentaldate = 84_05_13

end

built-insystem

modelinglanguage

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

System models for design objects (2):System models for design objects (2): Adele II [Estublier 1994] Adele II [Estublier 1994]

type Interface is Object;common

system : {unix, hp, vms};graphics : {x11, open_win};

modifiablebelong-to : Conf;bug-reports : set_of Document

immutableheader : File;realization : versioned

Realization;end;

user-defined

versionedobjecttype

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

System models for arbitrary software objects:System models for arbitrary software objects:PCL [Tryggeseth et al. 1995]PCL [Tryggeseth et al. 1995]

family fooattributes os : {Unix, VMS, DOS};...endparts

root ⇒ main;

files ⇒ if os = Unix then unix_fselsif os = VMS then vms_fselse dos_fs;

...end

end

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Comparison of software architecture and SCMComparison of software architecture and SCM

software architecture SCM

coverage programming-in-the-large(high-level design)

whole lifecycle

softwareobjects

components, modules,classes, ...

all kinds of software objects

relationships inheritance, import, portconnections, ...

all kinds of relationships

semantic level high (syntactic or semanticconsistency)

fairly low

granularity overall organization, butalso detailed interface

descriptions

overall organization(software objects as black

boxes)versions variants variants and revisions

version selection usually hard-wired rule-based

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Thesis 1 Architectural design vs. the whole lifecycleThesis 1 Architectural design vs. the whole lifecycle

Software architecture and SCM overlap since they both dealwith the overall organization of a software system. However,while software architecture refers to programming-in-the-large,SCM addresses the whole software lifecycle.

soft

war

e co

nfig

ura

tion

man

agem

ent

qu

alit y

assu

ran

ce

requirements engineering

programming-in-the-large

programming-in-the-small

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Thesis 2 Tool integration - bottom-up or top-downThesis 2 Tool integration - bottom-up or top-down

The relation between software architecture and SCM can bestudied under different assumptions concerning tool integration.It makes a big difference whether we assume bottom-up ortop-down integration.

architecturaldesign tool 1

architecturaldesign tool m

SCM system 1

SCM system n

... ...

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Thesis 3 Different system description languagesThesis 3 Different system description languages

Since there are many architectural description languageswith different syntax and semantics, an SCM system must notprescribe a specific language for describing software architectures.In contrast, the software architecture description has to be handled like any other document.

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Thesis 4 Unavoidable redundancy in system descriptionsThesis 4 Unavoidable redundancy in system descriptions

Under the constraints of bottom-up integration, there is no hopeto unify software architectures and software configurations in thesense that only a single, integrated description needs to bemaintained. A certain amount of redundancy is therefore inevitable.

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Thesis 5 Planned evolution is easyThesis 5 Planned evolution is easy

Architectural design deals with architectural evolution at asemantic level. In particular, variants can be represented withinthe software architecture description (as realization variants,subclasses, or instances of generic modules). In the way, plannedevolution may be taken care of.

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Thesis 6 Unplanned evolution is hardThesis 6 Unplanned evolution is hard

SCM offers general version control services for all kinds ofapplications. These address not only variants, but also revisions.Version control is performed at a fairly low semantic level. TheSCM system deals with versioning of the architecture, coveringin particular unplanned evolution.

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Thesis 7 Evolution at different abstraction levelsThesis 7 Evolution at different abstraction levels

Altogether, the evolution of software architectures has to be dealtwith at two levels: “structured” version control within the architecture (planned changes) and “unstructured” version controlof the architecture (unplanned changes). These two levelscomplement each other and cannot be unified easily.

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Summary: Spectrum of modeling alternativesSummary: Spectrum of modeling alternatives

Standard design languages, such as UML, SDL, etc.

Make files (composition, dependencies, derivation),can be partly extracted from source code

Simple system modeling languages from SCM systems:Adele, PCL, DSEE, etc.general objects/relationships, version support

Richer architectural languages:Acme, Wright, Ménage, etc.design objects, relationships, rich semantics

SCM 10

Software Architecture and Software Configuration Management

Bernhard Westfechtel and Reidar Conradi

Interplay between software architecture and SCMInterplay between software architecture and SCM

Redundancy cannot be avoided» How to keep consistency between architectural

configurations and SCM configurations?» How to select the appropriate level of granularity?

Potential problems of current SCM systems from the perspective of ADL tool builders» SCM version model does not match the needs of an ADL

tool» SCM version control is performed at a low semantic level» SCM system enforces its own ADL

Desired features of SCM systems:» Customizable support for representing design objects and

their relationships» More flexible version model

Raise the semantic level of version and configuration control