What Are Software Developers Facing?



Similar documents
Configuration & Build Management

Software Configuration Management

Configuration Management in Software Development Life Cycle

Software Configuration Management. Visiting Lecture Tero Kojo

CHAPTER 7 Software Configuration Management

Software Configuration Management.

Software Configuration Management. Wingsze Seaman COMP250SA February 27, 2008

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Chapter 13 Configuration Management

Chapter 13 Configuration Management

Chapter 5. Choose the answer that mostly suits each of the sentences given:

Configuration Management Models in Commercial Environments

Software Configuration Management

CHAPTER 7 SOFTWARE CONFIGURATION MANAGEMENT

Theme 1 Software Processes. Software Configuration Management

Software Configuration Management. Addendum zu Kapitel 13

Certified Professional in Configuration Management Glossary of Terms

CONFIGURATION MANAGEMENT PLAN GUIDELINES

Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University

What Is Software Configuration Management?

Configuration Management Practices

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

The Impact of Global Software Development on Software Configuration Management. Kaisa Uotila

The Configuration Management process area involves the following:

CMS Policy for Configuration Management

How To Write A Contract For Software Quality Assurance

Software configuration management in agile methods

SOE. managing change in system development projects: configuration management

Leveraging CMMI framework for Engineering Services

19 Configuration Management

JOURNAL OF OBJECT TECHNOLOGY

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

How to introduce maturity in software change management $

SEI Level 2, 3, 4, & 5 1 Work Breakdown Structure (WBS)

Software Configuration Management

CSC 408F/CSC2105F Lecture Notes

Software Configuration Management Draft Version 0.5

Configuration Management for Reusable Software

Role of Software Quality Assurance in Capability Maturity Model Integration

Configuration Management Plan

Engineering Standards in Support of

CENG492 SENIOR DESIGN PROJECT AND SEMINAR II SOFTWARE CONFIGURATION MANAGEMENT PLAN

Future of CMM and Quality Improvement. Roy Ko Hong Kong Productivity Council

Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM)

How Rational Configuration and Change Management Products Support the Software Engineering Institute's Software Capability Maturity Model

References IEEE PUBLICATIONS

Configuration Management

How To Integrate Software And Systems

SYSTEMS ENGINEERING AND MANAGEMENT FOR SUSTAINABLE DEVELOPMENT - Vol. I - Configuration Management - Brouse, Peggy S.

Software Configuration. Management Issues in Product Development

Fundamentals of Measurements

The purpose of Capacity and Availability Management (CAM) is to plan and monitor the effective provision of resources to support service requirements.

Functional Safety Management: As Easy As (SIL) 1, 2, 3

Change Management Best Practices

Software Configuration Management Plan

Change Management. Why Change Management? CHAPTER

SOFTWARE QUALITY & SYSTEMS ENGINEERING PROGRAM. Software Configuration Management Checklist

Software Configuration Management. Context. Learning Objectives

U. S. Department of Energy. Document Online Coordination System (DOCS) Systems Configuration Management Plan (SCMP)

Introduction to Software Engineering. 8. Software Quality

Knowledge Infrastructure for Project Management 1

Requirements-driven Verification Methodology for Standards Compliance

Configuration Management for Open Source Software

SOFTWARE MANAGEMENT PROGRAM. Software Testing Checklist

Department of Energy Quality Managers Software Quality Assurance Subcommittee Reference Document SQAS

Requirements Management

Basic Activities of Software configuration Management

Version Control Tools

The 7 Attributes of a Good Software Configuration Management System

What do you think? Definitions of Quality

STSG Methodologies and Support Structure

How to Write a Software Process Procedures and Policy Manual for YOUR COMPANY

A Configuration Management Model for Software Product Line

Configuration Management. Software Configuration Management. Example of System Families. Configuration Management

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

Software Engineering: Analysis and Design - CSE3308

ALS Configuration Management Plan

Widening the Configuration Management Perspective

Lecture Slides for Managing and Leading Software Projects. Chapter 1: Introduction

Privia Support hours and methods

CONFIGURATION MANAGEMENT (CM) GUIDELINES

Making Process Improvement Work

Design Document Version 0.0

Software Configuration Management, Software Product lines and Summary

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

CREDENTIALS & CERTIFICATIONS 2015

An Integrated Model of ISO 9001:2000 and CMMI for ISO Registered Organizations

<name of project> Software Project Management Plan

F15. Towards a More Mature Test Process. Anne Mette-Hass. P r e s e n t a t i o n

Software Quality Assurance Plan

The V-Model. Prepared for. Prepared by. Christian Bucanac Software Engineering Student, University Of Karlskrona/Ronneby

Transcription:

Configuration Management Tuotteenhallinta ohjelmistoprojektissa 1. Objectives 2. Problems & Motivation 3. CM Concept 4. Making CM system to work 5. Present CM Standards and Terms 6. CM Benefits and Summary 7. References 8. Discussion Marko Setälä, Nokia Networks (marko.setala@nokia.com) 1 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä What Are Software Developers Facing? "If builders built like programmers program a woodpecker could destroy civilization." - Gerald Weinberg 2 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

1. OBJECTIVES Get an overview of configuration management Learn the basic elements of CM Understand the importance of CM 3 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä 2. PROBLEMS & MOTIVATION Mid size project About 100 Modules 2 versions of each modules 10 programmers each programmer changes one module per day Assumption: when a system is configured, it is not known whether to use the old or new version of the module Result: 30 about 10 possible configurations 4 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

CM Problems This program worked yesterday - what happened? The document and the program do not match I fixed the bug last week. Why did it reappear? I can not reproduce the bug in this delivery The executable does not match the sources! I forgot to compile a module! 5 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä CM Problems... Whole configuration is unclear Workspaces are not controlled New requirements just appear No metrics can be used No clear knowledge what has been tested and how Delivery contains untested modules The traceability of SW changes is poor 6 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

CM Problems... Several designers must work on this component. How to avoid confusions? Building the system takes many days We must bring the system of last year into operation What is the impact of that change to the system? What is the effect of installing the new version of the support software? What is the impact of changing the OS to the customer base to the product spectrum? 7 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä What is CM? From SEI Definition Identification: identifying components, structure Control: controlling releases and changes Status accounting: recording, reporting status Audit and Review: validating completeness Manufacture: managing construction, building Process modeling: ensuring life-cycle model Team work: controlling team interactions source: SEI 8 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Motivation Summary Every software system evolves into a system family with multiple versions due to corrections, adaptations and extensions Changes occur concurrently Good methods and techniques must be used to control the software system during and after development process. This guarantee the acceptable costs of SW development and maintenance. 9 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Life Cycle Costs Requirements 3 % Specification 5 % Design 7 % Coding 6 % Module Testing 7 % Maintenance 66 % Integration 6 % source : Schach / Haikala, Märijärvi: Ohjelmistotuotanto 10 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Project management Quality Assurance Configuration management Feasibility study Delivery Maintenance Requirements Functionality System testing Implementation plan Integration testing Programming Module testing 11 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Version Management 3. CM CONSEPT Workspace Management SW Build Management Change Control 12 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Version Management Traditional cm tools Versionable files Version history and version graph Branching - merging Operational model - locking Configurations 13 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Version History Abstract file 1 2 3 4 Change record -who made the change -date -changed lines -comment 5 6 14 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Version Management 1.1 1.2 1.3 1.2.1.1 1.4 1.2.1.2 1.2.1.3 1.2.1.2.1.1 1.2.1.4 1.2.1.2.1.2 15 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä CONFIGURATION a.cc b.cc c.cc Makefile 1.1 1.1 1.1 1.1 1.2 1.2 1.2 1.2 1.3 1.3 1.3 1.3 x.lib Module configuration list a.cc 1.2 b.cc 1.1 c.cc 1.3 Makefile 1.3 16 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Application... is composed of modules (libraries and processes) which are versionable. an application library1 library 3 program 2 library 2 program 1 program 3 17 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Why Branching? Variants - different implementations of abstract files for instance, branches for Intel 486 and Pentium Bug fixes Temporary development Concurrent update - locking domain of abstract files 18 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

The Purpose of Version Management Identifying the configuration of the software (i.e., selected software products and their descriptions) at given points of time. Systematically controlling changes to the configuration. Maintaining the integrity and traceability of the configuration throughout the software life cycle. Create and manage baselines 19 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Workspace Management Workspace management is to help the developers to do their jobs. Workspace management focuses on: Concurrent access to same configuration items Workspace capacity consumption Risk of loosing work in progress Status accounting of work in progress Limiting change notification traffic Development tools management 20 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

SW Build Management Needed versions of the files are fetched from the version management database. SW builds must be able to regenerate SW builds are made for different purposes developing testing deliveries maintenance 21 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Change Control Baselines must be able to be changed. To avoid loosing consistency of the configuration the change control procedure must be used. Note, that each type of the configuration item may have a change control procedure of its own. SWCB (Software Control Board) takes care of the change control. A generic procedure can be used. 22 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Baseline and Versions Requirements Specification File A File C File B Code Design Test Plans 23 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Change control... A generic change control procedure analysis Change Request specification accept analyzing impacts implementation plan reject making a decision 24 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

4. MAKING CM SYSTEM TO WORK Write first CM plan - it helps you to think about the CM - basis for further development - organizing CM work is easier Do not forget the support functions - manuals - training - motivating developers and other relevant people Get the needed commitment 25 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Decide Before Development: WHO is responsible for some activity WHAT must be done WHEN some activity must be done HOW these activities are performed 26 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

5. PRESENT CM STANDARDS AND TERMS ISO 9000 IEEE Std 828-1998 (IEEE Standard for Software Configuration Management Plans IEEE Std 1042-1987 (IEEE Guide to Software Configuration Management) SEI: CMM Model, Level 2 ISO 12207 Software Life Cycle Processes 27 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä CMM Level 2 Key Process Areas Software project planning Software project tracking and oversight Software subcontract management Software quality assurance Software configuration management Software requirements management 28 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Terms baseline - A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures.[ieee-std-610] baseline configuration management- The establishment of baselines that are formally reviewed and agreed on and serve as the basis for further development. Some software work products, e.g., the software design and the code, should have baselines established at predetermined points, and formal change control process should be applied these items. These baselines provide control and stability when interacting with the customer 29 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Terms cont... baseline management- In configuration management, the application of technical and administrative direction to designate the documents and changes to those documents that formally identify and establish baselines at specific times during the life cycle of a configuration item. [IEEE-STD-610] configuration - In configuration management, the functional and physical characteristics of hardware or software as set forth in technical documentation or achieved in a product. [IEEE-STD-610] configuration control - An element of configuration management, consisting of the evaluation, co-ordination, approval or disapproval, and implementation of changes to configuration items after formal establishment of their configuration identification. [IEEE-STD-610] 30 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Terms cont... configuration identification - An element of configuration management, consisting of selecting the configuration items for a system and recording their functional and physical characteristics in technical documentation. [IEEE-STD-610] configuration item - An aggregation of hardware, software, or both, that is designated for configuration management and treated as a single entity in the configuration management process. [IEEE-STD-610] configuration management - A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements. [IEEE-STD-610] 31 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä Terms cont... Configuration Management Process - A process of applying administrative and technical procedures throughout the software life cycle to: identify, define, and baseline software items in a system; control modifications and releases of the items; record and report the status of the items and modification requests; ensure the completeness, consistency, and correctness of the items; and control storage, handling, and delivery of items. [ISO 12207] configuration unit - The lowest level entity of a configuration item or component that can be placed into, and retrieved from, a configuration management library system 32 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Terms cont... software configuration control board - A group responsible for evaluating and approving or disapproving proposed changes to configuration items, and for ensuring implementation of approved changes. Variant - A version of a program resulting from the application of software diversity. Version - A semantically meaningful snapshot of a versionable item at a point in time. A version can be seen as an evolution A Variant can be seen as an option 33 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä 6. CM BENEFITS AND SUMMARY General improvement in development - developers can focus on the actual development work Shortening in development times Possibility to customize the product for different customers or platforms Helps to manage and do large SW projects Increased reliability on deliveries Maintenance work can be done efficiently Money can be saved 34 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

Summary CM methods give a framework to the software engineering. They ensure the consistency of the configuration during the whole life cycle of the software. Different contexts influence on how the CM procedures are implemented within different organizations. Make sure that CM will be planned and used in your organization. Changes will happen all the time. 35 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä 7. REFERENCES Quality Management and Quality Assurance Standards - Part 3: Guidelines for the Application of ISO 9001 to the Development, Supply and Maintenance of Software, ISO 9000-3, 1991 Software Configuration Management Plans, ANSI/IEEE Std. 828-1998. Guide to Software Configuration Management, ANSI/IEEE Std. 1042-1987. Babich B., Software Configuration Management, Co-ordination for team Productivity. Addison-Wesley 1986. Whitgift D., Methods and Tools for Software Configuration Management. John Wiley&Sons, 1991. Kelly M., Configuration Management The Changing Image. McGraw- Hill 1996 36 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

37 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä References... Gustavsson A., Software Configuration Management in an Integrated Environment. Department of Computer Science Lund University. 1990. Rossi K, Complex Objects in a Software Configuration Management System. TKK 1991. Dart S., The Past, Present and Future of Configuration Management. SEI Technical report CMU/SEI-92-TR-8. SEI: Software Configuration Management: a Key Process area for level2: Repeatable. Tichy W., Design, Implementation and Evaluation of a Revision Control System. 6th ICSE. 1982. Tichy W (ed)., Trends in Software: Configuration Management. Wiley 1994. Karolak D.W., Global Software Development. IEEE Computer Society 1998. References... Gasston J., Rout T., Can the effectiveness of software processes be assessed. Software Quality Journal 3, 153-166 (1994) Plaice J., Wadge W., A New Approach to Version Control. IEEE Trans. on Software Engineering, Vol 19 NO.3 March 1993. Haikala I., Märijärvi J. Ohjelmistotuotanto. Suomen ATK-kustannus Oy. 1998 Humphrey Watts, Managing the Software Process. Addison-Wesley Publishing Company 1989. Bucle J. Software Configuration Management. The MacMillan Press LTD 1982. Bucley F., Implementing Configuration Management. IEEE Computer Press 1993. 38 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä

References... http://www.cs.colorado.edu/users/andre/configuration_management.html http://www.iac.honeywell.com/pub/tech/cm/index.html Books: http://www.quality.org/config/cm-books.html http://www.sei.cmu.edu/cmm/cmm.html http://www.iso.ch/welcome.html http://www.yahoo.com/computers_and_internet/software/programming_tools/so ftware_engineering/configuration_management/ http://www.ieee.org/ 39 NOKIA hytkt1199.ppt/ 11/99 / Marko Setälä