Paper: “Impact of Software Engineering Research on the Practice of Software Configuration Management Authors: Estublier, Leblang, Hoek, Conradi, Clemm,

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Software change management
Configuration management
Configuration Management
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
Configuration Management Main issues:  manage items during software life cycle  usually supported by powerful tools.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
CS 5521 Configuration Management the problem Not a simple task! –Different versions of software usually is in the field during the life cycle –Different.
1 Software Configuration Management METU Computer Engineering CEng 492 Spring'2004.
Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of California, Irvine
A Brief Introduction to Configuration Management
Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine
1 / 16 CS 425/625 Software Engineering Software Configuration Management Guest Speaker Jim Hunt November 17, 2008.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Institute for Software Research©2001, University of California, Irvine Software Configuration Management André van der Hoek Institute for Software Research.
Software Configuration Management (SCM)
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Informatics 211: Configuration Management & Coordination André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Configuration Management
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Configuration Management
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Chapter 6– Artifacts of the process
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Configuration Management (SCM)
© 2012 IBM Corporation Rational Insight | Back to Basis Series SCM introduction Chu Shu June 2012.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Software Engineering Modern Approaches
Software Configuration Management
Rational Unified Process Fundamentals Module 4: Disciplines II.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
1 Lecture 19 Configuration Management Software Engineering.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Configuration Management (CM)
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
1 Introduction to Software Configuration Management CprE 556 Electrical and Computer Engineering Department Iowa State University.
Version control Using Git Version control, using Git1.
Software Quality Assurance
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
CS370 Spring 2007 CS 370 Database Systems Lecture 1 Overview of Database Systems.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
ClearCase Concepts and Terminology
Today’s Agenda  Quick Review  Final Exam  Version Control Software Testing and Maintenance 1.
Software Project Management
Configuration Management Main issues:  manage items during software life cycle  usually supported by powerful tools ©2008 John Wiley & Sons Ltd.
Management of Software Project CSM Software Configuration Management (SCM)
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI.
Software Engineering Lecture 9: Configuration Management.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
 Software Configuration Management is the process of controlling and monitoring change to work products.  Or  “It is the art of identifying, organizing.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Building Enterprise Applications Using Visual Studio®
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management CSC-532
LECTURE 2: Software Configuration Management
Chapter 18 Maintaining Information Systems
Configuration Management
Software Configuration Management
Configuration Management
LECTURE 3: Software Configuration Management
Software Configuration Management
Presentation transcript:

Paper: “Impact of Software Engineering Research on the Practice of Software Configuration Management Authors: Estublier, Leblang, Hoek, Conradi, Clemm, Tichy, Wiborg- Weber Citation: ACM TOSEM Oct 2005

The Impact Project Provide scientific scholarly answers to: – What impact has academic and industry research really had on the practice of software engineering? – What future impacts should be expected? – What future directions will software research take? How? – ACM Sigsoft project (international) – NSF and Sigsoft funding – EU, Japanese, private funding - Deliverables: journal articles, conference panels

Initial Subject Areas Reviews/Walkthroughs – Dieter Rombach/Dewayne Perry Configuration Management – Jacky Estublier Testing and Analysis – Lori Clarke/David Rosenblum Middleware – Wolfgang Emmerich Process/workflow/lifecycle models – Volker Gruhn Modern Programming Languages – Mary Lou Soffa/Barbara Ryder Requirements Engineering – Anthony Finkelstein/Axel van Lamsweerde Reverse Engineering – Hausi Muller Cost/Economic Models

How do they define Impact? The research must have been: 1.Published – publicly available, AND 2.Incorporated in actual SCM product that are (or were) on the market, commercially or free. Other impacts not considered: - people (graduates) - workshops and conferences

Software Configuration Management is… The discipline of managing change in large, complex software systems. Goals: manage and control corrections, extensions, and adaptations throughout lifetime of software system - Systematic and traceable software development process - Managing files and directories

In the beginning… 1950s Aerospace industry Colored punch cards 1960s Integrated within OS 1970s Separate discipline

Evolution of context of SCM Systems

Construction Building Snapshots Regeneration Optimization (create exec) Construction Building Snapshots Regeneration Optimization (create exec) Auditing History Traceability Logging (archive/rollback) Auditing History Traceability Logging (archive/rollback) Components Versions Configurations Baselines Project contexts (keep track) Components Versions Configurations Baselines Project contexts (keep track) SCM Spectrum of Functionality Susan Dart, SCM-3, 1991 Accounting Statistics Status Reports (gather stats) Accounting Statistics Status Reports (gather stats) Process Lifecycle support Task mgmt. Communication Documentation (choose tasks) Process Lifecycle support Task mgmt. Communication Documentation (choose tasks) Controlling Access control Change requests Bug tracking Partitioning (track change) Controlling Access control Change requests Bug tracking Partitioning (track change) Team Workspaces Merging Families (conflicts) Team Workspaces Merging Families (conflicts) Structure System model Interfaces Consistency Selection (how related) Structure System model Interfaces Consistency Selection (how related) And,…remain universally applicable – PL and App independent

Partition of SCM Approaches Product - Versioning - System Models and selection: support aggregate artifacts – configuration concept Tool - Workspace control: distributed users?, integration of change - Building: executable Process - Support for general development processes to manipulate artifacts

Approaches to Versioning Capture artifacts as configuration items Track relations among items in version graph Edges: -revision-of – seq develop -variant-of - || development -merge variants

When disk space was scarce: Delta storage (eg, SCCS, RCS): baseline+deltas Data compression Combination of delta and compression More accuracy in deltas: –Context-oriented –Operation-oriented –Semantics-oriented –Syntax-oriented But for generality -> classic line-based merging

Advanced Versioning – Change sets How it works: –Each change stored as a delta independently from other changes –Allow more flexibility –Can combine changes as desired Not used in practice: –Deltas overlap/conflict – some combos do not work –For binary objects – cannot combine some deltas Too unwieldy for large projects with large change

Alternative: Change Packages Task, Activity, package, Subproject,… track changes at logical level

Aggregating and Accessing Multiple Artifacts Data Models Early 1970s – SCCS and RCS = file system Since then – on top of commercial database systems Research systems: –Adele, 1985: active, oop, versioned model –Object=any entity –Attribute=primitive, compound, predefined –Relations=model associations like derivation, dependency, composition More advance commercial system: Aide-De-Camp 1989

Aggregating and Accessing Multiple Artifacts System Models – late 1970s onward –MIL (Module interconnection language) to describe system structure Model interfaces – provided, required functions Behaviors - Pre and post conditions Hierarchical construction of modules  system architecture; UML –Integrate into SCM – users can manage real organization of software –Major Problem – keeping evolution of model and implementation versions in synch

Aggregating and Accessing Multiple Artifacts Selection –How do I get a set of artifacts in my workspace without requesting them individually? –Default: All latest version in workspace. Fetch the rest individually. –Other approaches: Hierarchical workspaces local, parent,… General queries –(status = approved) AND owner = Jacky) OR (date > ) Leverage change-sets –Baseline bug-fix bugfix.2 + feature-12 Rule-based 88, 94. –First, my checked-out versions –Otherwise, the latest versions on my branch –Otherwise, the latest versions on the main branch

A Typical Development Scenario CM repository Pete’s workspace CBA Ellen’s workspace ECD

Workspace Control 3 functions of the workspace: 1.Sandbox – freely edit. May be locks. 2.Building – expand compressed files, keep compiled/derived objects 3.Isolation – allow developer to make changes, compile, test, debug without interference

Workspace Control Classic SCCS and RCS Systems – no workspace management CVS – first scripts on top of RCS Need: avoid source file copies in 100s of workspaces Sun/Forte Teamware – manage projects of subprojects Virtual workspaces – only copies of files editing ClearCase – avoid recompiling sources on builds

Building Make, – dependencies, date-based rebuild, fast. Improvement - Rebuild only if any source versions now in workspace are not exactly the same as in last build. –BOMs – bill of materials for each target object built Language-based smart rebuild: semantic changes and dependencies Winking-in (ClearCase) – language independent, reuse binaries across workspaces

Process Support Software Process = sequence of activities during creation and evolution -Change control: -Change request (requirement change) -Trouble report (malfunction issue)

Landmark Contributions with Great Impact AcademicIndustry 1972SCCE 1976Diff 1977Make 1980Variants, RCS 1980Change sets (Aide-de- Camp) 1982Merging, and/or graph 1984Selection 1985System model st SCM workshop, process support, workspaces 1990Virtual file system, multisite 1996Activity-oriented SCM

Successful Transitions SCCE, Make, RCS – immediate, long lasting impact Change sets – slow, nonpractical, but standard feature – change packages. Process support – advanced support for modeling and enforcing process Differencing/merging – binary deltas, not semantic-based Distributed/remote development – client- server protocol, web-based interfaces

Failed Transitions Semantic-based recompilation – language dependent Advanced systems models – more power than needed Generic platform - research has focused on managing source code only. Too much needed for extra artifacts.

Summary -High impact Research – useful, ease of use by developer, generality -Low impact Research – level of complexity too high, not easy to master idea as a feature

What is Next for SCM? How to fit SCM with rest of development process/tools? –Manage other artifacts beyond source code –Maybe not be language independent

Recognizing a Valuable Resource: Mining Software Repositories Configuration management repositories are traditionally a “depot” –occasional roll-back –occasional search for relevant information But what if we used the information captured by configuration management repositories to our advantage –understanding software developers –helping software developers