Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.

Similar presentations


Presentation on theme: "Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required."— Presentation transcript:

1 Software Configuration Management (SCM)

2 Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management Development Product Assurance

3 Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management -Assignment of resources -Allocation of resources -Control of resources Development Product Assurance

4 Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management Development -Elicitation -Design -Implementation Product Assurance

5 Product Developer Disciplines One view of the world is that there are three types of activities are required for software development Project Management Development Product Assurance -quality assurance -validation and verification -test and evaluation -configuration management

6 Questions: Suppose five developers are working on a piece of software. How do you track changes during software development? Suppose we have a thousand customers and thirty developers. How do we ensure that the next release of the software is configured correctly? Our thousand customers are using any of the last four releases, and they report bugs regularly. We fix them. How do we ensure that changes are made to the version of software that needs them?

7 Vocabulary Configuration item Configuration Configuration management Software Configuration Management Baseline Updates

8 Vocabulary Configuration item A system component or artifact: design document, source code module, test suite,... In the case of software, they are called Software Configuration Items (SCI). Configuration Configuration management Software Configuration Management Baseline Updates

9 Vocabulary Configuration item Configuration A set of system configuration items sometimes referred to as a version of a system. Configuration management Software Configuration Management Baseline Updates

10 Vocabulary Configuration item Configuration Version Configuration management Software Configuration Management Baseline –stable snapshot of the aggregate system components as they exist at a given point in time –a configuration or version that has been verified and released Updates

11 Vocabulary Configuration item Configuration Version Configuration management Software Configuration Management Baseline Updates –Changes to baseline configuration item

12 Configuration Management Definition: The discipline of identifying the configuration of a system at discrete points in time for the purpose of systematically controlling changes to the configuration and maintaining the integrity and traceability of the configuration throughout the system’s life cycle.

13 Software Configuration Management A set of procedures that tracks: 1.Requirements that define what the system should do. 2.Design modules that are generated from requirements. 3.Program code that implements the design. 4.Tests that verify the functionality of the system. 5.Documents that describe the system.

14 Elements of SCM There are four elements of SCM: 1.Software Configuration Identification. 2.Software Configuration Control. 3.Software Configuration Auditing. 4.Software Configuration Status Accounting.

15 Software Configuration Identification Provides labels for the baselines and their updates First identify the elements that will make up a configuration software == SRS + design + tests + code + … An early configuration may only have a few configuration items (e.g. requirements)

16 Software Configuration Identification Identify a labeling scheme for baselines Identify a labeling scheme for updates to baselines Example: HATS GUI 1.4 Baseline: 1.0 4 updates to baseline 1.0 Next Baseline: 2.0

17 Software Configuration Control Provides a mechanism for precipitating, preparing, evaluating, and approving or disapproving all change proposals throughout the life cycle.

18 Software Configuration Control Three basic ingredients to SCC 1.Documentation for formally precipitating and defining a proposed change to a software system. 2.An organizational body (Configuration Control Board) for formally evaluating and approving or disapproving a proposed change to a software system. 3.Procedures for controlling changes to a software system.

19 Software Configuration Control Why are these needed? 1.Documentation 2.An organizational body 3.Procedures

20 Software Configuration Control Why are these needed? 1.Documentation 2.An organizational body 3.Procedures Consider an open source project like Apache …

21 Software Configuration Control Why needed? Not all possible changes are beneficial. Need a mechanism to control access to different items of the configuration. -Example: We don’t want everyone to be accessing everyone else’s code and be able to make changes. -other example?

22 Software Configuration Auditing Activity performed to independently evaluate the conformance of software products and processes to applicable regulations, standards, guidelines, plans, and procedures.

23 Software Configuration Auditing Activity performed to independently evaluate the conformance of software products and processes to applicable regulations, standards, guidelines, plans, and procedures. What does that mean?

24 Software Configuration Auditing Two goals: 1: Ensure that the development staff is following procedures 2: Ensure the product produced is the right product

25 Software Configuration Auditing Determines the extent to which an item satisfies the required functional and physical characteristics Can be conducted at key points in the life cycle Two types of formal audits might be required –Functional Configuration Audit (FCA) –Physical Configuration Audit (PCA)

26 FCA Purpose: ensure that the audited software item is consistent with its governing specifications Output of the software verification and validation activities is a key input to this audit (Make sure the software works correctly)

27 PCA Purpose: ensure that the design and reference documentation is consistent with the as-built software product (make sure the product is assembled correctly)

28 Software Configuration Status Accounting What version has a particular bug fixed? What is the status of a configuration item? What is the difference between this version and the previous? What is the cause of this trouble report? How many faults are detected each month and how many are fixed?

29 Software Configuration Status Accounting Provides a mechanism for maintaining a record of where the system is at any point with respect to what appears in published baseline documentation. -When a change proposal is approved it may take some time before the change is initiated or completed.

30 Software Configuration Status Accounting Why needed? -We need to ensure that there is progress within the development of the project. -Updates to baselines must take place sometime, otherwise we can’t continue.

31 Questions to ask about Configuration Management Is your software configuration-management plan designed to help programmers and minimize overhead? Do you group change requests, either through informal means such as a list of pending changes or a more formal approach such as a change-control board? Do you formally estimate the effect of each proposed change? Do you view major changes as a warning that requirements analysis isn't yet complete? http://fox.wikis.com/wc.dll?Wiki~ConfigurationManagementAudit~SoftwareEng

32 Questions to ask about Configuration Management Do you use version-control software to facilitate configuration management? Do you use version-control software to reduce coordination problems of working in teams? Do you use Make or other dependency-control software to build programs efficiently and reliably? Do you backup all project materials periodically? Are project backups transferred to offsite storage periodically? Are all materials backed up including source code, documents, graphics, and important notes? Have you tested the backup-recovery procedure?

33 Questions to ask about Configuration Management For your last 10 (this number may differ depending upon your situation) changes, what was your average duration from when the change was requested until it was implemented? Is your average duration increasing or decreasing? What do you want your average duration to be? What are you doing about it?


Download ppt "Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required."

Similar presentations


Ads by Google