SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 1
Configuration management
McGill ECSE 428
Software Engineering Practice
Radu Negulescu
Winter 2003
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 2
About this course module
A typical software project may generate thousands of source files and
pieces of documentation, and there are many opportunities for
introducing inconsistencies between these artifacts:
• Teamwork, parallel development and QA
• Change requests
• Bug fixes
• Schedule pressures
Here we discuss how to effectively organize the artifacts of a software
project.
Recommended reading:
• Jalote ch. 10
• Bruegge & Dutoit 10.2,10.3,10.4.1,10.4.3,10.4.4
• McConnell Rapid Dev. pp. 338-341, 403-414
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 3
What is configuration management
B&D: The disciplines and techniques of initiating, evaluating and
controlling change to software products during and after development.
• In other words, staying on top of change
Known by many names:
• CM
• SCM - sometimes pronounced “scum”
• Version control
• Source control (especially in relation to code)
• Document control
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 4
Development problems addressed
Typical problems of software projects due to lack of tracking:
• Communication blocks
• Inconsistencies
Accidental deletes
Wrong releases
Overlapping updates
• Lost issues (and rework)
Lost bug reports
Lost reasons for change
• Poor predictability
Absence of baseline data
• Awkward integration
• High cost of human error
Difficult “undo”
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 5
Challenges of configuration management
Challenges:
• Number of change requests (100s, 1000s, ...)
• Rapid growth of configurations: builds components variants
• Superlinear growth of team coordination overhead
Number of communication paths required
• Dangers of bureaucracy
• ...
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 6
Configurations
Item: artifact under configuration management
• Possibly nested aggregate
• Possibly overlapping with other aggregates
Configuration: state of an item
Variants: configurations of the same item that are intended to coexist
Beware:
• Terminology varies, although needs and solutions are similar
• Focus on the concepts
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 7
Configurations
Version: augmented specification
• Additional features
• Major or minor, depending on the amount of features
Release: same spec, enhanced implementation
• Bug fixes
• Refactored architecture
Build: instance of a system, integrated
• For testing
• Release candidates
Shown to customer for evaluation
Become a release once accepted
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 8
Typical CM functions
Retrieve a configuration / undo a change
• E.g. what was our best build?
• … before we messed up the event model?
Life cycle control
• Static access restrictions
E.g. a code module can only be signed out by the “owner” (Dev.)
E.g. a bug report can only be put in “closed” state by QA
E.g. each new feature must be impact analyzed before it is scheduled for
development
E.g. only PL and CC create releases
• Dynamic access restrictions
E.g. no simultaneous updates
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 9
Typical CM functions
Automatic builds
• Invoke the compiler tools on the updated files only
Concurrent updates
• Branching then merging
• Reconciliation of changes
Tracing rationale
• E.g. why did we need a new event model anyway?
• Who issued a request for change?
Propagating change
• E.g. bug fix for deployed version then new version
• E.g. multiple platforms, languages, user privileges
Statistics
• E.g. determine percentage of testing vs. development delays
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 10
Retrieving a configuration
What we want from a mechanism for retrieving configurations:
• Label configurations in a way that orients the users
• Store configurations efficiently
There can be many of them...
• Be tailored to the actual flow of configurations
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 11
How configurations are generated
Three main sources of change
• Shifting requirements
Rework previous code
• Bug fixes
Batches from QA sessions
Continuous flow from debugging
• Internal issues, such as:
New vendor/new technology
Performance tuning
Refactoring
Not synchronized to the main development process
• Need for change may occur at any time
• Thus, you need some buffering
Req
flow
Issue
flow
Bug
flow
Develop.
process
Customer
QA
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 12
Labeling of configurations
File names are vital
• Orient the developers and customers
• Gets interesting when dealing with 100s of files
… or even 10s of files
Releases
• 2.5: version 2, release 5
• 2.3.5: version 2.3, release 5
Builds
• RN-2002-03-08-16:01:53
• Internal use only
Not in the release file name
CC keeps record of release number
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 13
Example: JAR files
Distinguish release candidates sent to customer
• E.g.: do not send multiple System.jar files to customer
Better: FlatCart-Release4.3-…
Include the purpose of the file in an envelope name
E.g.: FlatCart-Release4.3-ForAcceptanceCandidate2.zip
Can use normal release names in the contained files
E.g.: FlatCart4.3.jar (JAR file)
E.g.: FlatCart4.3.exe (self-extracting archive)
In Java 2, JAR files can be annotated with version info
• Version (“specification-version” attribute)
• Release or build (“package-version” attribute)
What if the system includes multiple components with different version &
release numbers?
• The system can have yet another version scheme
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 14
Example: branch labeling
[After Bruegge & Dutoit]
revised
revised
Main
revised
Branch
derived
merged
released
MUE.1.1:Releas
MUE.1.2:Releas
MUE.1.3:Releas MUE.1.2.1.1:Releas
MUE.1.2.1.2:Releas
MUE.2.0:Releas
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 15
Storage of configurations
Basic operations supported
• Get latest configuration: most frequent
• Insert a new configuration: frequent
• Get previous configurations: on a need-to basis
Rollback (undo changes)
Locate insertion of a defect
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 16
Storage of configurations
Reverse delta
• Complete “baseline” version: latest
• Deltas
See diff tool
• Retrieval: compute previous versions from deltas
• E.g. VSS
Storing branches and variants
• A new base can be created for each branch on splitting from trunk
Not many branches sharing won’t save much space
Storing aggregates
• Store cross-references only consistency, space (preferred)
• Store copies of all included components ready access
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 17
Item life cycles
Enforcing item life cycles
• Proper state transitions
• E.g. program modules
The system is ready for acceptance testing when all modules are OK
(Next page)
• E.g. triage of new feature requests
Impact analysis: which modules will be affected?
Prioritization, cost estimation
Development, testing
Acceptance
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 18
Item life cycles
Passed
Module 1
Private
Ready for
unit test
Baselined
/ released
Done
Failed
Passed
Module 2
Private
Ready for
unit test
Done
Failed
...
System/accepta
nce testing
Passed
Failed
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 19
Life cycle control
Objectives
• Facilitate access by developers
• Permit collection of management stats
• Allow easy traceability
Main mechanisms
• Directories
• Item database
• Document logs
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 20
Directories
Storage
• One directory for each module state
• State transitions: move among directories
• May use read/write permissions for directories
• Use CM tools for access restrictions in common areas
• Example: Infosys’ WAR project
Enforcement
• Directory read/write privileges
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 21
Item database
Storage
• State attributes for each item
• Some tools restrict which users may set which attributes
Enforcement
• Attribute settings
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 22
Document logs
Storage
• Use module headers
• Insert date of change, author
• Specify distribution list
Enforcement
• Self-discipline
• Configuration audits
A reason to maintain redundant info...
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 23
Dynamic rights
Mutual exclusion of updates
• Check-in/check-out
• Except for deliberate branching/merging
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 24
Example: WinCVS
www.wincvs.org
Work areas
• Repository
• Working directory
Check out
• CVS admin → Checkout module
• Specify module and working directory
Check in
• Update the working directory
• Commit to the repository
Related tools
• On-line CVS: www.freepository.org
• CVS
Workspace 1
Workspace 2
Master directory
Software repository
Check-in
Check-out
Baseline
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 25
Example: WinCVS
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 26
Example: document control
[After Jalote]
States = directories
• Under development
← Initial state
Author: Done → Under review
• Under review
Reviewer: Defects found → Under development
Reviewer: No defects → Baselined
• Baselined
CCB: CR authorized → Under development
Under dev
Under
review
Baselined
[author]
[reviewer]
[reviewer]
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 27
Example: document control
Distribution list
Controlled
Proprietary
Limited
Unlimited
Uncontrolled
To be destroyed
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 28
Automatic builds
Builds are frequent
• Some processes support daily builds
E.g. McConnell ch. 18
Highly effective schedule reduction
• Other processes support continuous refactoring
XP compensates de-emphasis of global design
Compilation can take a lot of time
• Idea: recompile only the updates
• Careful not to compile the wrong ones
Redundancy is hard to maintain
• Executables are easily created
⇒ executables are not normally controlled
• Hence the term “source control”
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 29
Example: the make utility
Make
• A tool that controls generation of executables
• Handles multiple source files
• Recompiles if executable is older than a source
• Looks up change dates
• Not tied to a particular language
• Can even be used to format documents
Makefile
• Tells make how to recompile
• A text file
• Two sections: variables and rules
• Variables come first, but are optional
More info (GNU make)
http://www.gnu.org/software/make/make.html
http://www.gnu.org/manual/make/html_mono/make.html
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 30
Makefile rules
E.g. [from GNU]
edith : main.o kbd.o command.o display.o 
insert.o search.o files.o utils.o
cc -o edith main.o kbd.o command.o display.o 
insert.o search.o files.o utils.o
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
display.o : display.c defs.h buffer.h
cc -c display.c
insert.o : insert.c defs.h buffer.h
cc -c insert.c
search.o : search.c defs.h buffer.h
cc -c search.c
files.o : files.c defs.h buffer.h command.h
cc -c files.c
utils.o : utils.c defs.h
cc -c utils.c
clean :
rm edith main.o kbd.o command.o display.o 
insert.o search.o files.o utils.o
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 31
Makefile rules
Call
make Program
make
make clean
General format
target: prerequisite1 prerequisite2 ...
<tab> command1
<tab> command2
...
And here's a very useful one:
clean:
rm *.o core ./tmp/*
Deletes all object files in the current directory
any core dump
all files in ./tmp
// Looks up a file named “makefile”
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 32
Makefile variables
Example
objects = main.o kbd.o command.o display.o 
insert.o search.o files.o utils.o
edith : $(objects)
cc -o edith $(objects)
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
display.o : display.c defs.h buffer.h
cc -c display.c
insert.o : insert.c defs.h buffer.h
cc -c insert.c
search.o : search.c defs.h buffer.h
cc -c search.c
files.o : files.c defs.h buffer.h command.h
cc -c files.c
utils.o : utils.c defs.h
cc -c utils.c
clean : rm edith $(objects)
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 33
Concurrent updates
Branch: concurrent development path requiring independent
configuration management.
Merge: reconcile different branches.
merging
point
UI branch
main trunk
comms
branch
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 34
Concurrent updates
Support for change reconciliation
• View changes side-by-side
Decide which changes to adopt
Might be tedious for divergent versions
Supported for text files, not binary (e.g. VSS)
• Merge the most recent changes
Example: Word for windows “Merge Documents”
Tools → Merge Documents → open document
Accept or reject changes
(Tools→Track changes→ ...)
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 35
Example: feature interaction
Functionality partitioning
• First release: F1, F2
• Second release: F3, F4
F3 is easy
• M4, M5 can be a separate increment
• Versioning of M4, M5 independent of
M1, M2, M3
F4 needs a separate CM branch
• Create branch: copy M2, M4, M5;
create M6
Do not check out M2, M4, M5 at this
time
Other developers keep working on
M2, M4, M5
• Implement F4
• Reintegrate branch to main build
(trunk)
Check out M2, M4, M5
Use delegated permission
Merge changes
Regression tests of F4
Check in M2, M4, M5
Regression tests of F1, F2, F3
(and F4 to be sure)
• If reintegration fails, one version
is dumped…
M1 M2 M3 M4 M5 M6
F1 X X X
F2 X X
F3 X X
F4 X X X X
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 36
Change propagation & traceability
Forward change requests to all related modules
Retrieve reason for each modification
• So the modification can be undone!
Traceability databases
• Propagate changes along dependency relations
E.g. among variants
E.g. from SRS to DD to code to TP
• Dependency matrix
• Dependency tree
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 37
Change propagation & traceability
Example: derived modules
• After the current version is deployed
The current version is in a maintenance phase.
Work may begin on a new version.
• If multiple versions are supported
Bug fixes may occur for any supported version
Bug reports, changes, etc. must propagate to the other versions
Keep module derivation relationships across multiple supported system
versions.
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 38
The CM plan
CM item structure
• Naming scheme
• Versioning scheme
Release
Baseline
Physical setting
Configuration control process
• Staff responsibilities
Configuration audits
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 39
CM item structure
Can be more or less elaborate
• Depends on size of project, usage of artifacts, and change flow
Same idea as in modular design
• Things that are likely to change together should be kept together
• Things that are unlikely to change together should be separate
• The hierarchy of storage should reflect the likelihood of change
Modularity
• Subsystems
Nesting
• E.g. per increment
Overlapping
• E.g. per increment & per artifact type
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 40
Example: client-server system
[From B&D]
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 41
Responsibilities
Example:
• Configuration controller
Create executables
Baseline code and docs
...
• Developers
Check out, check in at specific times
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 42
Configuration auditing
Danger: state related mistakes
• E.g. move a non-tested module into the release directory
Use several mechanism for life-cycle support
• E.g.: directory structure + “master table”
• E.g.: directory structure + revision lists in module headers
Status monitoring
• Consistency of the redundant state mechanisms
E.g. directory placement same as master table entry
• Consistency of the revision list with the artifact life cycle
Audits
• Check whether proper process is being followed
• Check the baseline and release states
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 43
Change control board
The change control board (CCB)
• Analyze changes
• “Triage” changes
• Bundle changes
Representatives from each party
• Development, QA, user documentation
Artifacts owners
• Customer support, marketing, mgmt
Danger: go overboard...
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 44
CASE example: the Rational Suite
The full Rational Enterprise Suite is installed in our lab.
Team integration tools
• RequisitePro: organize, prioritize, track, control requirements
• ClearQuest: manage every type of change
Implements artifact lifecycle
Talks to a database
• SoDA: automated documentation
Extracts info and puts it in a Word template
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 45
Development
• Rose: draw UML diagrams
Checks consistency
Implements code frameworks from the diagram: it writes class and method
declarations and some docs, and you fill in the body of the methods
• Purify: run-time errors and memory leaks
Needed big time in C/C++
Theoretically, not needed in Java (JVM-managed garbage collection)
Practically, Java programs can exhibit object pool overflows, JVM
malfunctions, heap reallocations, etc. -> need memory leak tools
• Visual PureCoverage: expose testing gaps
It instruments the code to register execution
• Visual Quantify:
Profiles the application to check performance bottlenecks
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 46
CASE example: the Rational Suite
Quality assurance
• Robot: record and playback test scripts
Point-and-click operations are saved into a script
Graphical object capture
Verification points: test only certain properties of certain objects. This allows
changes in the UI design without changing all the test cases
The scripting language is called SQA-Basic, and it is very similar to VB
except for a couple of statements. See if you can run SQA-Basic scripts in
VB
• TestFactory
Automatic test generation:
“Best test”: a random run through the code that works out as much of it as
possible
Source code coverage analysis: what code was exercised by the test cases
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 47
CASE example: the Rational Suite
Integration among these tools
• Rational Administrator
Integration with other tools
• MS Project: activities can be linked to requirements in the
RequisitePro database
• MS Office: many of the Rational tools use Access for a RDBMS, and
Word for their documentation interface
• MS VisualStudio: VB, VC++, ...
• Java
McGill University ECSE 428 © 2003 Radu Negulescu
Software Engineering Practice Configuration management—Slide 48
Discussion
Thank you!
Any questions?

Contenu connexe

Tendances

Project Tracking System
Project Tracking SystemProject Tracking System
Project Tracking Systemncct
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignRadu_Negulescu
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiabilityFrank Gielen
 
10 user centered design
10 user centered design10 user centered design
10 user centered designLilia Sfaxi
 
Approaches To System Development
Approaches To System DevelopmentApproaches To System Development
Approaches To System DevelopmentHenhen Lukmana
 
Performance evaluation of a multi-core system using Systems development meth...
 Performance evaluation of a multi-core system using Systems development meth... Performance evaluation of a multi-core system using Systems development meth...
Performance evaluation of a multi-core system using Systems development meth...Yoshifumi Sakamoto
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component Saransh Garg
 
Component design and implementation tools
Component design and implementation toolsComponent design and implementation tools
Component design and implementation toolsKalai Vani V
 
Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Amin Bandeali
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineeringArudra Vishen
 
Trunk and branches for database configuration management
Trunk and branches for database configuration managementTrunk and branches for database configuration management
Trunk and branches for database configuration managementscmsupport
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdmguestc990b6
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architectureLilia Sfaxi
 

Tendances (19)

Ui design final
Ui design finalUi design final
Ui design final
 
Project Tracking System
Project Tracking SystemProject Tracking System
Project Tracking System
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software Design
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
 
10 user centered design
10 user centered design10 user centered design
10 user centered design
 
Approaches To System Development
Approaches To System DevelopmentApproaches To System Development
Approaches To System Development
 
Performance evaluation of a multi-core system using Systems development meth...
 Performance evaluation of a multi-core system using Systems development meth... Performance evaluation of a multi-core system using Systems development meth...
Performance evaluation of a multi-core system using Systems development meth...
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component
 
Component design and implementation tools
Component design and implementation toolsComponent design and implementation tools
Component design and implementation tools
 
Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)Lead Allocation System - Attribute Driven Design (ADD)
Lead Allocation System - Attribute Driven Design (ADD)
 
System development methodologies
System development methodologiesSystem development methodologies
System development methodologies
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineering
 
Trunk and branches for database configuration management
Trunk and branches for database configuration managementTrunk and branches for database configuration management
Trunk and branches for database configuration management
 
Ch 11-component-level-design
Ch 11-component-level-designCh 11-component-level-design
Ch 11-component-level-design
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
 

En vedette

Measurement and metrics in model driven software development
Measurement and metrics in model driven software developmentMeasurement and metrics in model driven software development
Measurement and metrics in model driven software developmentSelman Bozkır
 
Applying software engineering to configuration management
Applying software engineering to configuration managementApplying software engineering to configuration management
Applying software engineering to configuration managementBart Vanbrabant
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementBill Thayer
 
DISE - Introduction to Project Management
DISE - Introduction to Project ManagementDISE - Introduction to Project Management
DISE - Introduction to Project ManagementRasan Samarasinghe
 
Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29koolkampus
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance Webtech Learning
 
DISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementDISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementRasan Samarasinghe
 
Maintenance Metrics
Maintenance MetricsMaintenance Metrics
Maintenance Metricskaskerrigan
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologiesguy_davis
 
Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Chandan Thakur
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementChandan Chaurasia
 
Software quality
Software qualitySoftware quality
Software qualityjagadeesan
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testingpingkapil
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development OverviewStewart Rogers
 

En vedette (20)

Measurement and metrics in model driven software development
Measurement and metrics in model driven software developmentMeasurement and metrics in model driven software development
Measurement and metrics in model driven software development
 
Quality metrices
Quality metricesQuality metrices
Quality metrices
 
Applying software engineering to configuration management
Applying software engineering to configuration managementApplying software engineering to configuration management
Applying software engineering to configuration management
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
DISE - Introduction to Project Management
DISE - Introduction to Project ManagementDISE - Introduction to Project Management
DISE - Introduction to Project Management
 
Metrics
MetricsMetrics
Metrics
 
Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29Configuration Management in Software Engineering - SE29
Configuration Management in Software Engineering - SE29
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
DISE - Software Testing and Quality Management
DISE - Software Testing and Quality ManagementDISE - Software Testing and Quality Management
DISE - Software Testing and Quality Management
 
Maintenance Metrics
Maintenance MetricsMaintenance Metrics
Maintenance Metrics
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Ch16 component based software engineering
Ch16 component based software engineeringCh16 component based software engineering
Ch16 component based software engineering
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software quality
Software qualitySoftware quality
Software quality
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Sw quality metrics
Sw quality metricsSw quality metrics
Sw quality metrics
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testing
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 

Similaire à Software Engineering Practice - Configuration management

HCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfHCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfudhayaveenaa
 
software configuration management
software configuration managementsoftware configuration management
software configuration managementFáber D. Giraldo
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
Inventory and manufacturing system migration - case study
Inventory and manufacturing system migration - case studyInventory and manufacturing system migration - case study
Inventory and manufacturing system migration - case studyAtul Singla
 
CS 123 Lecture 02 2023-2024.pdf take it s
CS 123 Lecture 02 2023-2024.pdf take it sCS 123 Lecture 02 2023-2024.pdf take it s
CS 123 Lecture 02 2023-2024.pdf take it sflyinimohamed
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting examplecorehard_by
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdfkrishnaraj714229
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
Unit 6 Software Configuration Management
Unit 6 Software Configuration ManagementUnit 6 Software Configuration Management
Unit 6 Software Configuration ManagementKanchanPatil34
 
Design principles &amp; quality factors
Design principles &amp; quality factorsDesign principles &amp; quality factors
Design principles &amp; quality factorsAalia Barbe
 
Final Total Preliminary Report
Final Total Preliminary ReportFinal Total Preliminary Report
Final Total Preliminary ReportMrugen Deshmukh
 
Lecture 06 Software Configuration Management
Lecture 06 Software Configuration ManagementLecture 06 Software Configuration Management
Lecture 06 Software Configuration ManagementAchmad Solichin
 
SE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptxSE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptxTangZhiSiang
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance costmalathieswaran29
 

Similaire à Software Engineering Practice - Configuration management (20)

HCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfHCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdf
 
SDLC
SDLC SDLC
SDLC
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Inventory and manufacturing system migration - case study
Inventory and manufacturing system migration - case studyInventory and manufacturing system migration - case study
Inventory and manufacturing system migration - case study
 
CS 123 Lecture 02 2023-2024.pdf take it s
CS 123 Lecture 02 2023-2024.pdf take it sCS 123 Lecture 02 2023-2024.pdf take it s
CS 123 Lecture 02 2023-2024.pdf take it s
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting example
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Unit 6 Software Configuration Management
Unit 6 Software Configuration ManagementUnit 6 Software Configuration Management
Unit 6 Software Configuration Management
 
Design principles &amp; quality factors
Design principles &amp; quality factorsDesign principles &amp; quality factors
Design principles &amp; quality factors
 
Final Total Preliminary Report
Final Total Preliminary ReportFinal Total Preliminary Report
Final Total Preliminary Report
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 
Lecture 06 Software Configuration Management
Lecture 06 Software Configuration ManagementLecture 06 Software Configuration Management
Lecture 06 Software Configuration Management
 
SE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptxSE - Lecture 2 - SW Devl Process.pptx
SE - Lecture 2 - SW Devl Process.pptx
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
 
Ch17
Ch17Ch17
Ch17
 
SDLC
SDLC SDLC
SDLC
 

Plus de Radu_Negulescu

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
 
Final Exam Solutions Fall02
Final Exam Solutions Fall02Final Exam Solutions Fall02
Final Exam Solutions Fall02Radu_Negulescu
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03Radu_Negulescu
 
Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Radu_Negulescu
 
Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Radu_Negulescu
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsRadu_Negulescu
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingRadu_Negulescu
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignRadu_Negulescu
 
Intro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisIntro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisRadu_Negulescu
 
Intro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsIntro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsRadu_Negulescu
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementRadu_Negulescu
 
Software Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationSoftware Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationRadu_Negulescu
 
Software Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business BasicsSoftware Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business BasicsRadu_Negulescu
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project managementRadu_Negulescu
 
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesSoftware Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesRadu_Negulescu
 

Plus de Radu_Negulescu (16)

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Final Exam Solutions Fall02
Final Exam Solutions Fall02Final Exam Solutions Fall02
Final Exam Solutions Fall02
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03
 
Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03
 
Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software Testing
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
 
Intro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisIntro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements Analysis
 
Intro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsIntro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding Standards
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality Management
 
Software Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationSoftware Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and Estimation
 
Software Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business BasicsSoftware Engineering Practice - Software Business Basics
Software Engineering Practice - Software Business Basics
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project management
 
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesSoftware Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
 

Dernier

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Dernier (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

Software Engineering Practice - Configuration management

  • 1. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 1 Configuration management McGill ECSE 428 Software Engineering Practice Radu Negulescu Winter 2003
  • 2. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 2 About this course module A typical software project may generate thousands of source files and pieces of documentation, and there are many opportunities for introducing inconsistencies between these artifacts: • Teamwork, parallel development and QA • Change requests • Bug fixes • Schedule pressures Here we discuss how to effectively organize the artifacts of a software project. Recommended reading: • Jalote ch. 10 • Bruegge & Dutoit 10.2,10.3,10.4.1,10.4.3,10.4.4 • McConnell Rapid Dev. pp. 338-341, 403-414
  • 3. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 3 What is configuration management B&D: The disciplines and techniques of initiating, evaluating and controlling change to software products during and after development. • In other words, staying on top of change Known by many names: • CM • SCM - sometimes pronounced “scum” • Version control • Source control (especially in relation to code) • Document control
  • 4. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 4 Development problems addressed Typical problems of software projects due to lack of tracking: • Communication blocks • Inconsistencies Accidental deletes Wrong releases Overlapping updates • Lost issues (and rework) Lost bug reports Lost reasons for change • Poor predictability Absence of baseline data • Awkward integration • High cost of human error Difficult “undo”
  • 5. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 5 Challenges of configuration management Challenges: • Number of change requests (100s, 1000s, ...) • Rapid growth of configurations: builds components variants • Superlinear growth of team coordination overhead Number of communication paths required • Dangers of bureaucracy • ...
  • 6. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 6 Configurations Item: artifact under configuration management • Possibly nested aggregate • Possibly overlapping with other aggregates Configuration: state of an item Variants: configurations of the same item that are intended to coexist Beware: • Terminology varies, although needs and solutions are similar • Focus on the concepts
  • 7. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 7 Configurations Version: augmented specification • Additional features • Major or minor, depending on the amount of features Release: same spec, enhanced implementation • Bug fixes • Refactored architecture Build: instance of a system, integrated • For testing • Release candidates Shown to customer for evaluation Become a release once accepted
  • 8. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 8 Typical CM functions Retrieve a configuration / undo a change • E.g. what was our best build? • … before we messed up the event model? Life cycle control • Static access restrictions E.g. a code module can only be signed out by the “owner” (Dev.) E.g. a bug report can only be put in “closed” state by QA E.g. each new feature must be impact analyzed before it is scheduled for development E.g. only PL and CC create releases • Dynamic access restrictions E.g. no simultaneous updates
  • 9. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 9 Typical CM functions Automatic builds • Invoke the compiler tools on the updated files only Concurrent updates • Branching then merging • Reconciliation of changes Tracing rationale • E.g. why did we need a new event model anyway? • Who issued a request for change? Propagating change • E.g. bug fix for deployed version then new version • E.g. multiple platforms, languages, user privileges Statistics • E.g. determine percentage of testing vs. development delays
  • 10. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 10 Retrieving a configuration What we want from a mechanism for retrieving configurations: • Label configurations in a way that orients the users • Store configurations efficiently There can be many of them... • Be tailored to the actual flow of configurations
  • 11. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 11 How configurations are generated Three main sources of change • Shifting requirements Rework previous code • Bug fixes Batches from QA sessions Continuous flow from debugging • Internal issues, such as: New vendor/new technology Performance tuning Refactoring Not synchronized to the main development process • Need for change may occur at any time • Thus, you need some buffering Req flow Issue flow Bug flow Develop. process Customer QA
  • 12. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 12 Labeling of configurations File names are vital • Orient the developers and customers • Gets interesting when dealing with 100s of files … or even 10s of files Releases • 2.5: version 2, release 5 • 2.3.5: version 2.3, release 5 Builds • RN-2002-03-08-16:01:53 • Internal use only Not in the release file name CC keeps record of release number
  • 13. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 13 Example: JAR files Distinguish release candidates sent to customer • E.g.: do not send multiple System.jar files to customer Better: FlatCart-Release4.3-… Include the purpose of the file in an envelope name E.g.: FlatCart-Release4.3-ForAcceptanceCandidate2.zip Can use normal release names in the contained files E.g.: FlatCart4.3.jar (JAR file) E.g.: FlatCart4.3.exe (self-extracting archive) In Java 2, JAR files can be annotated with version info • Version (“specification-version” attribute) • Release or build (“package-version” attribute) What if the system includes multiple components with different version & release numbers? • The system can have yet another version scheme
  • 14. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 14 Example: branch labeling [After Bruegge & Dutoit] revised revised Main revised Branch derived merged released MUE.1.1:Releas MUE.1.2:Releas MUE.1.3:Releas MUE.1.2.1.1:Releas MUE.1.2.1.2:Releas MUE.2.0:Releas
  • 15. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 15 Storage of configurations Basic operations supported • Get latest configuration: most frequent • Insert a new configuration: frequent • Get previous configurations: on a need-to basis Rollback (undo changes) Locate insertion of a defect
  • 16. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 16 Storage of configurations Reverse delta • Complete “baseline” version: latest • Deltas See diff tool • Retrieval: compute previous versions from deltas • E.g. VSS Storing branches and variants • A new base can be created for each branch on splitting from trunk Not many branches sharing won’t save much space Storing aggregates • Store cross-references only consistency, space (preferred) • Store copies of all included components ready access
  • 17. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 17 Item life cycles Enforcing item life cycles • Proper state transitions • E.g. program modules The system is ready for acceptance testing when all modules are OK (Next page) • E.g. triage of new feature requests Impact analysis: which modules will be affected? Prioritization, cost estimation Development, testing Acceptance
  • 18. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 18 Item life cycles Passed Module 1 Private Ready for unit test Baselined / released Done Failed Passed Module 2 Private Ready for unit test Done Failed ... System/accepta nce testing Passed Failed
  • 19. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 19 Life cycle control Objectives • Facilitate access by developers • Permit collection of management stats • Allow easy traceability Main mechanisms • Directories • Item database • Document logs
  • 20. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 20 Directories Storage • One directory for each module state • State transitions: move among directories • May use read/write permissions for directories • Use CM tools for access restrictions in common areas • Example: Infosys’ WAR project Enforcement • Directory read/write privileges
  • 21. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 21 Item database Storage • State attributes for each item • Some tools restrict which users may set which attributes Enforcement • Attribute settings
  • 22. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 22 Document logs Storage • Use module headers • Insert date of change, author • Specify distribution list Enforcement • Self-discipline • Configuration audits A reason to maintain redundant info...
  • 23. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 23 Dynamic rights Mutual exclusion of updates • Check-in/check-out • Except for deliberate branching/merging
  • 24. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 24 Example: WinCVS www.wincvs.org Work areas • Repository • Working directory Check out • CVS admin → Checkout module • Specify module and working directory Check in • Update the working directory • Commit to the repository Related tools • On-line CVS: www.freepository.org • CVS Workspace 1 Workspace 2 Master directory Software repository Check-in Check-out Baseline
  • 25. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 25 Example: WinCVS
  • 26. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 26 Example: document control [After Jalote] States = directories • Under development ← Initial state Author: Done → Under review • Under review Reviewer: Defects found → Under development Reviewer: No defects → Baselined • Baselined CCB: CR authorized → Under development Under dev Under review Baselined [author] [reviewer] [reviewer]
  • 27. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 27 Example: document control Distribution list Controlled Proprietary Limited Unlimited Uncontrolled To be destroyed
  • 28. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 28 Automatic builds Builds are frequent • Some processes support daily builds E.g. McConnell ch. 18 Highly effective schedule reduction • Other processes support continuous refactoring XP compensates de-emphasis of global design Compilation can take a lot of time • Idea: recompile only the updates • Careful not to compile the wrong ones Redundancy is hard to maintain • Executables are easily created ⇒ executables are not normally controlled • Hence the term “source control”
  • 29. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 29 Example: the make utility Make • A tool that controls generation of executables • Handles multiple source files • Recompiles if executable is older than a source • Looks up change dates • Not tied to a particular language • Can even be used to format documents Makefile • Tells make how to recompile • A text file • Two sections: variables and rules • Variables come first, but are optional More info (GNU make) http://www.gnu.org/software/make/make.html http://www.gnu.org/manual/make/html_mono/make.html
  • 30. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 30 Makefile rules E.g. [from GNU] edith : main.o kbd.o command.o display.o insert.o search.o files.o utils.o cc -o edith main.o kbd.o command.o display.o insert.o search.o files.o utils.o main.o : main.c defs.h cc -c main.c kbd.o : kbd.c defs.h command.h cc -c kbd.c command.o : command.c defs.h command.h cc -c command.c display.o : display.c defs.h buffer.h cc -c display.c insert.o : insert.c defs.h buffer.h cc -c insert.c search.o : search.c defs.h buffer.h cc -c search.c files.o : files.c defs.h buffer.h command.h cc -c files.c utils.o : utils.c defs.h cc -c utils.c clean : rm edith main.o kbd.o command.o display.o insert.o search.o files.o utils.o
  • 31. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 31 Makefile rules Call make Program make make clean General format target: prerequisite1 prerequisite2 ... <tab> command1 <tab> command2 ... And here's a very useful one: clean: rm *.o core ./tmp/* Deletes all object files in the current directory any core dump all files in ./tmp // Looks up a file named “makefile”
  • 32. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 32 Makefile variables Example objects = main.o kbd.o command.o display.o insert.o search.o files.o utils.o edith : $(objects) cc -o edith $(objects) main.o : main.c defs.h cc -c main.c kbd.o : kbd.c defs.h command.h cc -c kbd.c command.o : command.c defs.h command.h cc -c command.c display.o : display.c defs.h buffer.h cc -c display.c insert.o : insert.c defs.h buffer.h cc -c insert.c search.o : search.c defs.h buffer.h cc -c search.c files.o : files.c defs.h buffer.h command.h cc -c files.c utils.o : utils.c defs.h cc -c utils.c clean : rm edith $(objects)
  • 33. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 33 Concurrent updates Branch: concurrent development path requiring independent configuration management. Merge: reconcile different branches. merging point UI branch main trunk comms branch
  • 34. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 34 Concurrent updates Support for change reconciliation • View changes side-by-side Decide which changes to adopt Might be tedious for divergent versions Supported for text files, not binary (e.g. VSS) • Merge the most recent changes Example: Word for windows “Merge Documents” Tools → Merge Documents → open document Accept or reject changes (Tools→Track changes→ ...)
  • 35. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 35 Example: feature interaction Functionality partitioning • First release: F1, F2 • Second release: F3, F4 F3 is easy • M4, M5 can be a separate increment • Versioning of M4, M5 independent of M1, M2, M3 F4 needs a separate CM branch • Create branch: copy M2, M4, M5; create M6 Do not check out M2, M4, M5 at this time Other developers keep working on M2, M4, M5 • Implement F4 • Reintegrate branch to main build (trunk) Check out M2, M4, M5 Use delegated permission Merge changes Regression tests of F4 Check in M2, M4, M5 Regression tests of F1, F2, F3 (and F4 to be sure) • If reintegration fails, one version is dumped… M1 M2 M3 M4 M5 M6 F1 X X X F2 X X F3 X X F4 X X X X
  • 36. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 36 Change propagation & traceability Forward change requests to all related modules Retrieve reason for each modification • So the modification can be undone! Traceability databases • Propagate changes along dependency relations E.g. among variants E.g. from SRS to DD to code to TP • Dependency matrix • Dependency tree
  • 37. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 37 Change propagation & traceability Example: derived modules • After the current version is deployed The current version is in a maintenance phase. Work may begin on a new version. • If multiple versions are supported Bug fixes may occur for any supported version Bug reports, changes, etc. must propagate to the other versions Keep module derivation relationships across multiple supported system versions.
  • 38. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 38 The CM plan CM item structure • Naming scheme • Versioning scheme Release Baseline Physical setting Configuration control process • Staff responsibilities Configuration audits
  • 39. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 39 CM item structure Can be more or less elaborate • Depends on size of project, usage of artifacts, and change flow Same idea as in modular design • Things that are likely to change together should be kept together • Things that are unlikely to change together should be separate • The hierarchy of storage should reflect the likelihood of change Modularity • Subsystems Nesting • E.g. per increment Overlapping • E.g. per increment & per artifact type
  • 40. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 40 Example: client-server system [From B&D]
  • 41. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 41 Responsibilities Example: • Configuration controller Create executables Baseline code and docs ... • Developers Check out, check in at specific times
  • 42. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 42 Configuration auditing Danger: state related mistakes • E.g. move a non-tested module into the release directory Use several mechanism for life-cycle support • E.g.: directory structure + “master table” • E.g.: directory structure + revision lists in module headers Status monitoring • Consistency of the redundant state mechanisms E.g. directory placement same as master table entry • Consistency of the revision list with the artifact life cycle Audits • Check whether proper process is being followed • Check the baseline and release states
  • 43. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 43 Change control board The change control board (CCB) • Analyze changes • “Triage” changes • Bundle changes Representatives from each party • Development, QA, user documentation Artifacts owners • Customer support, marketing, mgmt Danger: go overboard...
  • 44. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 44 CASE example: the Rational Suite The full Rational Enterprise Suite is installed in our lab. Team integration tools • RequisitePro: organize, prioritize, track, control requirements • ClearQuest: manage every type of change Implements artifact lifecycle Talks to a database • SoDA: automated documentation Extracts info and puts it in a Word template
  • 45. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 45 Development • Rose: draw UML diagrams Checks consistency Implements code frameworks from the diagram: it writes class and method declarations and some docs, and you fill in the body of the methods • Purify: run-time errors and memory leaks Needed big time in C/C++ Theoretically, not needed in Java (JVM-managed garbage collection) Practically, Java programs can exhibit object pool overflows, JVM malfunctions, heap reallocations, etc. -> need memory leak tools • Visual PureCoverage: expose testing gaps It instruments the code to register execution • Visual Quantify: Profiles the application to check performance bottlenecks
  • 46. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 46 CASE example: the Rational Suite Quality assurance • Robot: record and playback test scripts Point-and-click operations are saved into a script Graphical object capture Verification points: test only certain properties of certain objects. This allows changes in the UI design without changing all the test cases The scripting language is called SQA-Basic, and it is very similar to VB except for a couple of statements. See if you can run SQA-Basic scripts in VB • TestFactory Automatic test generation: “Best test”: a random run through the code that works out as much of it as possible Source code coverage analysis: what code was exercised by the test cases
  • 47. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 47 CASE example: the Rational Suite Integration among these tools • Rational Administrator Integration with other tools • MS Project: activities can be linked to requirements in the RequisitePro database • MS Office: many of the Rational tools use Access for a RDBMS, and Word for their documentation interface • MS VisualStudio: VB, VC++, ... • Java
  • 48. McGill University ECSE 428 © 2003 Radu Negulescu Software Engineering Practice Configuration management—Slide 48 Discussion Thank you! Any questions?