Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development."— Presentation transcript:

1 1 Software Development Configuration management

2 \ 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 \ 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 \ 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 \ 5 SCM deals with …  Change Control  Release Management  Source Code and Document Control  Development Environment Configuration

6 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 12 Baseline When is a “change” a “change”? Lifespan of SCI Creation of SCI Baseline informal change control procedure formal change control procedure...

13 \ 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 \ 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 \ 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 \ 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 17

18 18

19 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 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 \ 31 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


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

Similar presentations


Ads by Google