Software Development Configuration management 1 Software Configuration Items

  • Slides: 31
Download presentation
Software Development Configuration management 1

Software Development Configuration management 1

Software Configuration ¯Items that comprise all information produced as part of the software development

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

Software Configuration Items ¯SCI’s ¯Items created as part of the software development process Ødocuments

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

Some definitions ¯Version: instance of a software system that differs from other instances ¯Release:

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) 4

SCM deals with … ¯Change Control ¯Release Management ¯Source Code and Document Control ¯Development

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

Imagine … ¯ Scene 1 You are working on a large project, there are

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? 6

Imagine … ¯Scene 2 Once you have released your first software system, your client

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? 7

Imagine … ¯Scene 3 Once you have released your first software system, your client

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? 8

Imagine … ¯Scene 4 You need to make changes to your Software Requirements Specification

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? 9

Imagine … ¯Scene 5 During design, your client let’s you know that s/he would

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? 10

SCM Definition ¯Software configuration management deals with the processes and tools (s/w) put in

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 11

Baseline When is a “change”? Creation of SCI Baseline. . . Lifespan of SCI

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

Baseline ¯Baseline may be different depending on the SCI and the type of management

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 13

Baseline ¯ On a large project you will generally have a group or unit

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 14

Change Control ¯Manage changes ¯Changes can occur when … ¯Changes can occur in ØRequirements

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 15

¯ The following Figure 9. 5 Change Control Process is from Software Engineering: A

¯ 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 16

17

17

18

18

Testing Issue ¯ Regression testing is the process of retesting elements of the system

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. 19

Release Management ¯Deals with questions such as ØHow many releases are to be produced?

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? 20

Release Management ¯Possible situations produced by poor release management: ØCustomer (with release X) reported

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 21

Release Management ¯You plan and document your versions and releases, i. e. , what

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 22

Release Page ¯Contains: ØRelease number of software configuration ØRevision (version) number for every document

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

Source Code Control ¯ How to control our source code? ¯ Tools: Software version

Source Code Control ¯ How to control our source code? ¯ Tools: Software version control such as Ø RCS Ø CVS Ø Source. Safe Ø Sub. Version Ø 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 24

Source Code Control ¯Why do we need to control our source code? ¯You may:

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 25

Development Environment Configuration ¯Configuration manager provides and maintains tools for the project team: ØEditor

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 26

Development Environment Configuration ¯Configuration manager configures the documentation needed for the project ØLayout of

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

Validation & Verification ¯How can we be sure that an accepted request for change

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

Configuration Status Reporting ¯To keep all (management and software developers) in the loop Øabout

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 29

Configuration Status Reporting ¯All changes can be logged into some DB system (tool) which

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. . . 30

More info about SCM ¯ Configuration Management Yellow Pages contains comprehensive listing of SCM

More info about SCM ¯ Configuration Management Yellow Pages contains comprehensive listing of SCM resources on Web http: //www. cmtoday. com/yp/configuration_managemen t. html 31