Lecture3-Software Configuration Management 9thaugust2009
Lecture3-Software Configuration Management 9thaugust2009
Lecture-3
Course No. : SEWP ZG661
Title : Software Quality
Management
Prof.N.Prasanna Balaji
B.E(CSC),M.Tech(IT),MBA(OM),Ph.D(ERP)
email:[email protected]
Software process (simplified
view)
assurance
quality
programming-in-the-large
programming-in-the-small
Definitions
• An architecture is the set of significant decisions about the
organization of a software system, the selection of the structural
elements and their interfaces by which the system is composed,
together with their behavior as specified in the collaborations among
those elements, the composition of these structural and behavioral
elements into progressively larger subsystems, and the architectural
style that guides this organization.
[Booch, Rumbaugh, Jacobson 1999]
• Configuration management is the process of identifying
and defining the items in the system, controlling the changes
to these items throughout their life cycle, recording and reporting
the 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]
Questions/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?
Questions/goals
– 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?
Architectural Description Languages
(ADLs)
Architecture
Tool Support
Modeling Features
• Active
• Components
Specification
– Interface, Types,
Semantics, • Multiple Views
Constraints, • Analysis
Evolution
• Refinement
• Connectors
• Code Generation
– Interface, Types,
Semantics, • Dynamism
Constraints,
Evolution [Medvidovic and Taylor 1997]
Architectural Description Languages
(ADLs)
Architectural
Tool Support
Configurations
– Understandability, • Active
Compositionality, Specification
Heterogeneity, • Multiple Views
Constraints,
Refinement and
• Analysis
Traceability, • Refinement
Scalability, Evolution, • Code Generation
Dynamism
• Dynamism
getContentPane()
#unparser
<<Interface>>
GraphFilter Unparser
(from fil ters)
incrementalUpdate()
completeUpdate()
ADL Examples (2): Acme
[Garlan et al. 1997] configuration
connector
component
representation representation
variant variant
ADL Examples (3): Wright [Allan
and Garlan 1997]
component Client =
port Request = ...
...
component Server =
port Provide = ...
...
specification
of semantics
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
ADL Examples (4): Ménage
[van der Hoek et al. 1997]
revision
ADL Examples (4): Ménage
[van der Hoek et al. 1997]
variant
variant
optional
component
Software configuration management
• Representation of software
architectures
– Make files
– System models dealing with
• design objects
• arbitrary software objects
System models for design
objects (1):
Adele I [Estublier 1984]
manual m2_i2_v2
selimp
built-in m4-i2-v1.05
system selcond
modeling >*(syst = unix)
language >* (connect = pipe)
seldef
>* (type = debug)
attributes
type = debug
syst = unix
author = Jim
state = experimental
date = 84_05_13
end
System models for design objects (2):
Adele II [Estublier 1994]
type Interface is Object;
common
system : {unix, hp, vms};
graphics : {x11, open_win};
user- modifiable
defined belong-to : Conf;
versioned bug-reports : set_of Document
object immutable
type header : File;
realization : versioned
Realization;
end;
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
Comparison of software
architecture and SCM
software architecture SCM
requirements engineering
management
assurance
quality
programming-in-the-large
programming-in-the-small
Thesis 2 Tool integration -
bottom-up or top-down
The relation between software architecture and SCM can be
studied under different assumptions concerning tool integration.
It makes a big difference whether we assume bottom-up or
top-down integration.
... ...