1 / 24

Software Architecture and Software Configuration Management

Software Architecture and Software Configuration Management. Bernhard Westfechtel and Reidar Conradi RWTH Aachen, Germany/ NTNU Trondheim, Norway SCM 10. requirements engineering. quality assurance. software configuration management. programming-in-the-large. programming-in-the-small.

tracen
Download Presentation

Software Architecture and Software Configuration Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. requirements engineering quality assurance software configuration management programming-in-the-large programming-in-the-small Software process (simplified view)

  3. 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, recordingand 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] Definitions

  4. 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? Questions/goals

  5. 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 Architectural Description Languages (ADLs) [Medvidovic and Taylor 1997]

  6. ADL Examples (1): UML

  7. ADL Examples (2): Acme [Garlan et al. 1997] connector configuration component representation variant representation variant

  8. 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   specification of semantics

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

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

  11. 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 Software configuration management

  12. System models for design objects (1):Adele I [Estublier 1984] manual m2_i2_v2 selimp m4-i2-v1.05 selcond >*(syst = unix) >* (connect = pipe) seldef >* (type = debug) attributes type = debug syst = unix author = Jim state = experimental date = 84_05_13 end built-in system modeling language

  13. System models for design objects (2): Adele II [Estublier 1994] type Interface is Object; common system : {unix, hp, vms}; graphics : {x11, open_win}; modifiable belong-to : Conf; bug-reports : set_of Document immutable header : File; realization : versioned Realization; end; user- defined versioned object type

  14. System models for arbitrary software objects:PCL [Tryggeseth et al. 1995] family foo attributes os : {Unix, VMS, DOS}; ... end parts root  main; files  if os = Unix then unix_fs elsif os = VMS then vms_fs else dos_fs; ... end end

  15. Comparison of software architecture and SCM

  16. 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. requirements engineering quality assurance software configuration management programming-in-the-large programming-in-the-small Thesis 1 Architectural design vs. the whole lifecycle

  17. 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. architectural design tool 1 SCM system 1 ... ... architectural design tool m SCM system n Thesis 2 Tool integration - bottom-up or top-down

  18. 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. Thesis 3 Different system description languages

  19. 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. Thesis 4 Unavoidable redundancy in system descriptions

  20. 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. Thesis 5 Planned evolution is easy

  21. 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. Thesis 6 Unplanned evolution is hard

  22. 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. Thesis 7 Evolution at different abstraction levels

  23. 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 Summary: Spectrum of modeling alternatives

  24. 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 modelRaise the semantic level of version and configuration control Interplay between software architecture and SCM

More Related