1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Configuration Management
Configuration Management
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Software Configuration Management
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Software Configuration Management (SCM)
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Configuration Management
1 CMPT 275 Software Engineering Revision Control.
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Software Configuration Management
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
This chapter is extracted from Sommerville’s slides. Text book chapter
SE-02 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): - What? - Why? - How?
Software Configuration Management (SCM)
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Software Engineering Modern Approaches
Software Configuration Management
Configuration Management Copyright, 2002 © Jerzy R. Nawrocki Quality Management.
1 Lecture 19 Configuration Management Software Engineering.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
Chapter 4: Software Configuration Management (SCM)
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
Software Quality Assurance
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
© Mahindra Satyam 2009 Configuration Management QMS Training.
Software Engineering 2003 Jyrki Nummenmaa 1 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): -
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa Configuration management.
Software Project Management
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 29 Slide 1 Configuration management.
Configuration Management CSCI 5801: Software Engineering.
Management of Software Project CSM Software Configuration Management (SCM)
Configuration Management at CMM Level 2 Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
Software Configuration Management n Art of coordinating SW development to minimize confusion n Software quality assurance (umbrella) activity n Set of.
Objectives Understand Corrective, Perfective and Preventive maintenance Discuss the general concepts of software configuration management.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Configuration Management
Configuration Management (II) Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Configuration Management How to keep from losing control of change.
Software Engineering Lecture 9: Configuration Management.
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 27 Change Management Software Engineering: A Practitioner’s Approach, 6/e Chapter 27 Change.
Software Configuration Management (SCM)
 Software Configuration Management is the process of controlling and monitoring change to work products.  Or  “It is the art of identifying, organizing.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Configuration Management
Software Configuration Management
Software Configuration Management
Software Configuration Management
Software Project Configuration Management
Chapter 10, Software Configuration Management
Chapter 11: Software Configuration Management
Software Engineering (CSI 321)
Configuration Management
Software Configuration Management
Maintaining software solutions
Chapter 11: Software Configuration Management
Configuration management
Software Configuration Management
Presentation transcript:

1 Software Development Configuration management

\ 2 Software Configuration  Items that comprise all information produced as part of the software development process  documents  source code  data are collectively called software configuration

\ 3 Software Configuration Items  SCI’s  Items created as part of the software development process  documents  source code  test cases  data internal to software system external to software system (e.g. customization)

\ 4 Some definitions  Version: instance of a software system that differs from other instances  Release: a version distributed to a customer  Revision: a revised software configuration item (SCI)

\ 5 SCM deals with …  Change Control  Release Management  Source Code and Document Control  Development Environment Configuration

\ 6 Imagine …  Scene 1 You are working on a large project, there are several programmers working on the same build of the software. Each of the developers are using the same previous build as a basis for their development. Each developer is implementing a different set of methods.  How to document/record and communicate to the rest of the team your changes?  How do you make sure you have your teammates additions to the build?  How do you assure that an up to integrated version of the developers efforts is maintained?

\ 7 Imagine …  Scene 2 Once you have released your first software system, your client let’s you know that s/he would like an additional feature to be added to it.  How to record this request for change and how do you track its implementation?

\ 8 Imagine …  Scene 3 Once you have released your first software system, your client reports a previously undiscovered fault (bug) and requests that it be fixed.  How to record this request for a fix and how do you track the process of fixing the bug?

\ 9 Imagine …  Scene 4 You need to make changes to your Software Requirements Specification document after it has been “signed-off”  How to document/record and communicate to the rest of the team your changes?

\ 10 Imagine …  Scene 5 During design, your client let’s you know that s/he would like to change a requirement  How to deal with this request?  How to integrate this modified requirement in your current software development effort?

\ 11 SCM Definition  Software configuration management deals with the processes and tools (s/w) put in place to control changes that occur during the development and the maintenance of software systems  Role: Software Configuration Manager

\ 12 Baseline When is a “change” a “change”? Lifespan of SCI Creation of SCI Baseline informal change control procedure formal change control procedure...

\ 13 Baseline  Baseline may be different depending on the SCI and the type of management considered:  e.g. baseline for document management of SRS can be when client signs the document off during formal walk-through session  e.g. baseline for source code control can be when it is ready for integration testing  When SCI has reached its baseline, it can be checked into project DB or library from which it can be checked out when it needs to be modified

\ 14 Baseline  On a large project you will generally have a group or unit DB or library  e.g. baseline for development of unit code when programming team begins integration of methods into the unit before unit testing (use a group DB or library to build the unit, the group DB may be a child of the project DB or library)  The completed unit DB will be unit tested  The completed unit DB will be integrated with the project DB and integration testing will be completed  At this point in development you may have source code and document control, but perhaps not change control  The baseline for source code and document control may be different (usually earlier in development) than the baseline for change control

\ 15 Change Control  Manage changes  Changes can occur when …  Changes can occur in  Requirements  Design  Implementation  Etc…  Must be able to control changes occurring in all SCI’s

\ 16  The following Figure 9.5 Change Control Process is from Software Engineering: A practitioner’s approach by Roger S. Pressman, page 235  ECO: Engineer Change Order  Configuration objects = SCI

17

18

\ 19 Testing Issue  Regression testing is the process of retesting elements of the system that were tested in a previous version or release  This is to test that a change (bug fix or added feature) has not interacted with other components of the system to create further problems.  Since the whole system needs to be tested after every change to verify that the change has not introduced unexpected faults it is common to automate the regression testing for the system.

\ 20 Release Management  Deals with questions such as  How many releases are to be produced?  What version/release numbering scheme is to be used?  Which functionality is in a particular version?  Which version will be released?  What is the difference between releases?

\ 21 Release Management  Possible situations produced by poor release management:  Customer (with release X) reported a bug but you cannot reproduce it (hence fix it) because you do not have a copy of the source code  A bug fixed in one release reappears in a later release  Customers lose all their preferences (customization data) after upgrading to a new release

\ 22 Release Management  You plan and document your versions and releases, i.e., what functionality is to be developed within which version and which version is to be released

\ 23 Release Page  Contains:  Release number of software configuration  Revision (version) number for every document Software requirement specification Design document User Manual Source code files etc.  Date of the release  Part of your release documentation

\ 24 Source Code Control  How to control our source code?  Tools: Software version control such as  RCS  CVS  SourceSafe  SubVersion  Do you know any others?  These tools allow: (Us to build project DB (or library))  Either file lock or concurrent editing (synchronization control)  File versioning  Inclusion of comments for a version

\ 25 Source Code Control  Why do we need to control our source code?  You may:  Work with other software developers  Work on projects containing thousand of files  You will:  Delete your code when you should not have  Delete somebody else’s code when you should not have  Make change that breaks something and not know how you did it

\ 26 Development Environment Configuration  Configuration manager provides and maintains tools for the project team:  Editor macros – for code formatting and header comment blocks (abiding to code standards)  Makefiles – to make compiles fast and easy  Debuggers  Profilers – identifies location where memory leaks, where computationally intensive calculations occur

\ 27  Configuration manager configures the documentation needed for the project  Layout of SCI’s SRS, Design, test cases So software developers do not have to worry these configuration aspects  Code Standards Development Environment Configuration

\ 28 Validation & Verification  How can we be sure that an accepted request for change has been dealt with properly?  Formal reviews  Software configuration audit

\ 29 Configuration Status Reporting  To keep all (management and software developers) in the loop  about changes made to the software system  about versions and releases of the software system  etc…  Hence improving communication in the team

\ 30 Configuration Status Reporting  All changes can be logged into some DB system (tool) which can be queried to obtain info about …  Which changes have been made?  Who made them?  When?  Configuration audit result for a particular change request?  Which change requests have been rejected? etc...

\ 31 More info about SCM  Configuration Management Yellow Pages contains comprehensive listing of SCM resources on Web t.html