CSSE 375 Software Construction and Evolution: More SCM, and a loop back to Feathers! Shawn and Steve Left – On big systems, SCM is a well-defined process.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Configuration Management
Configuration Management
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
More CMM Part Two : Details.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
Software Configuration Management
Chapter 13 Configuration Management
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Chapter 13: Configuration Management
Configuration Management
Configuration & Build Management
Configuration Management
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 14, 2001 Software.
Software Configuration Management
CSSE 375 Software Construction and Evolution: Configuration Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
Michael Solomon Tugboat Software Managing the Software Development Process.
Software Project Configuration Management
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?
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
The Key Process Areas for Level 2: Repeatable Ralph Covington David Wang.
Introduction to Software Quality Assurance (SQA)
Software Engineering Modern Approaches
Software Configuration Management
Seattle Area Software Quality Assurance Group Release and Configuration Management, The Acceleration of Change and Its Contribution To Software Quality.
Software Configuration Management
Software Configuration Management (SCM)
Configuration Management Matti Kuikka CONFIGURATION MANAGEMENT by Matti Kuikka, Unit Manager, Ericsson, Turku, Telecom R&D, Wireless Charging.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
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 Configuration Management
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Software Quality Assurance
Software Engineering 2003 Jyrki Nummenmaa 1 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): -
CEN 5011 Ninth Lecture (2 nd part) Nov. 24, 2004 Advance Software Engineering (CEN-5011) Fall 2004 Instructor: Masoud Sadjadi
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa Configuration management.
Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.
Management of Software Project CSM Software Configuration Management (SCM)
Software Configuration Management n Art of coordinating SW development to minimize confusion n Software quality assurance (umbrella) activity n Set of.
Software Construction and Evolution CSSE 375: Course Introduction Steve Chenoweth Office: Meonch Room F220 Phone: (812)
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Configuration Management (II) Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Software Engineering Lecture 9: Configuration Management.
Configuration Control (Aliases: change control, change management )
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
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.
Introduction for the Implementation of Software Configuration Management I thought I knew it all !
Configuration Management
Software Configuration Management
Software Configuration Management
Software Configuration Management
Software Project Configuration Management
Chapter 10, Software Configuration Management
Software Configuration Management (SCM)
Chapter 11: Software Configuration Management
Configuration Management
Software Configuration Management
Configuration Management (managing change)
Chapter 11: Software Configuration Management
Software Configuration Management
Presentation transcript:

CSSE 375 Software Construction and Evolution: More SCM, and a loop back to Feathers! Shawn and Steve Left – On big systems, SCM is a well-defined process.

2 And – likewise for systems! 

3 Recall: Change Management Change management handles change requests General Change Process 1. Change is requested (this can be done by anyone including users and developers) 2. Change request is assessed against project goals 3. Change is accepted or rejected 4. If it is accepted, the change is assigned to a developer and implemented (otherwise, it’s returned to originators with rationale) 5. The implemented change is audited 

4 Two types of controlling change:  Promotion: Internal development state of a software is changed.  Release: A changed software system is made visible outside the development organization. Approaches for controlling change (Change Policy)  Informal (good for research type environments and promotions)  Formal (good for externally developed CIs and for releases) Controlling Changes User Promotion Promote Policy Release Policy Software Engineer Master Directory Software Repository Q9 

5 Standard SCM Directories Programmer’s Directory  (IEEE Std: “Dynamic Library”)  Completely under control of one programmer Master Directory  (IEEE Std: “Controlled Library”)  Central directory of all promotions Software Repository  (IEEE Std: “Static Library”)  Externally released baselines Foo’12Foo’13 Release Central source code archive Promotion 

6 Change Policies When a promotion or a release is performed, one or more policies apply  Purpose of policies is to guarantee that each version, revision, or release conforms to commonly accepted criteria Example change policies: “No developer is allowed to promote source code which cannot be compiled without errors and warnings.” “No baseline can be released without having been beta-tested by at least 500 external users.” Change Policies 

7 Recall: Version vs. Revision vs. Release Version:  An initial release or re-release of a configuration item associated with a complete compilation or recompilation of the item. Different versions have different functionality. Revision:  Change to a version that corrects only errors in the design/code, but does not affect the documented functionality. Release:  The formal distribution of an approved version. Question: Is Windows 8 a new version or a new revision compared to Windows 7? 

8 Software Configuration Management Plan Defines the types of artifacts to be managed and a naming scheme Defines who takes responsibility for the CM procedures and creation of baselines Defines policies for change control and version management Describes tools to be used to assist the CM process and any limitations on their use Defines the configuration management database used to record configuration information 

9 Software Configuration Management Plan 1. Introduction (WHY?) Describes purpose, scope of application, key terms and references 2. Management (WHO?) Identifies the responsibilities and authorities for accomplishing the planned configuration management activities 3. Activities (WHAT?) Identifies the activities to be performed in applying to the project. 4. Schedule (WHEN?) Establishes the sequence and coordination of the SCM activities with project mile stones 5. Resources (HOW?) Identifies tools and techniques required for the implementation of the SCMP 6. Maintenance Identifies activities and responsibilities on how the SCMP will be kept current during the life- cycle of the project.

10 Types of Audits In-process Audits  Verify consistency of the design as it evolves through development process Functional Audits  Verify that functionality and performance are consistent with requirements defined in the SRS Physical Audits  Verify that the as-built version of software and documentation are internally consistent and ready for delivery Quality System Audits  Independent assessment of the compliance to the software QA plan

11 What is the key tradeoff for making software changes like those in refactoring? Think for 15 seconds… Turn to a neighbor and discuss it for a minute Let’s hear what you think… Q10

12 Paradox of Source Code Change Code changes can degrade quality (bugs & ill structure), so it is better not to make changes Not changing code can degrade quality (not fit for purpose), so it is better to change code To escape this we need confidence in changes  How do we know we have it right?  How do we know we didn’t break existing behavior? Q11 

13 Heuristic for Changing Difficult Code Examine code needing change and ask:  What new code will I write?  Can I put it in a new method or class? …If so, do it! Net Gain  New responsibilities are separated from old ones  Writing a test for a new method or class is often easier than writing it for an old one Q12 

14 Wait a minute.. Isn’t that bad Advice? What about putting code where it really belongs? Answer: When changing difficult code, it pays to be cautious First task is to make changes without harming the system  Hippocratic oath: “first, do no harm…” Then the system can be improved Q13

15 For those Safe (and easy) Changes Back to Michael Feathers, one more time! Sprout Method Sprout Class Wrap Method Wrap Class Sprouts are Chia Pet Patterns Q14 