Today’s Agenda  Quick Review  Final Exam  Version Control Software Testing and Maintenance 1.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

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.
Data Modeling and Database Design Chapter 1: Database Systems: Architecture and Components.
Chapter 4 Quality Assurance in Context
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
Configuration Management CS 415, Software Engineering I Mark Ardis, Rose-Hulman Institute February 4, 2003.
1 Software Configuration Management METU Computer Engineering CEng 492 Spring'2004.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Software Configuration Management (SCM)
Methodology Conceptual Database Design
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Dr. Kalpakis CMSC 461, Database Management Systems Introduction.
Configuration Management
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
2. Configuration Management
CSSE 375 Software Construction and Evolution: Configuration Management
Logical Database Design Nazife Dimililer. II - Logical Database Design Two stages –Building and validating local logical model –Building and validating.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
This chapter is extracted from Sommerville’s slides. Text book chapter
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
An Extension to XML Schema for Structured Data Processing Presented by: Jacky Ma Date: 10 April 2002.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Software Engineering Modern Approaches
Software Configuration Management
Rational Unified Process Fundamentals Module 4: Disciplines II.
Software Configuration Management (SCM)
CST203-2 Database Management Systems Lecture 2. One Tier Architecture Eg: In this scenario, a workgroup database is stored in a shared location on a single.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 29Slide 1 Configuration management l Managing the products (code and documentation) of.
1 Introduction to Database Systems. 2 Database and Database System / A database is a shared collection of logically related data designed to meet the.
1 Lecture 19 Configuration Management Software Engineering.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 29Slide 1 Configuration management l Managing the products of system change.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 29 Slide 1 Configuration management.
1 Introduction to Software Configuration Management CprE 556 Electrical and Computer Engineering Department Iowa State University.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Software Quality Assurance
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Software Project Management
Human Computer Interaction
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Configuration Management
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Software Engineering Lecture 9: Configuration Management.
Software Configuration Management (SCM)
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
Database Development Lifecycle
Configuration Management
Software Configuration Management
Software Configuration Management CSC-532
Software Project Configuration Management
Chapter 10, Software Configuration Management
The Development Process of Web Applications
Chapter 11: Software Configuration Management
Configuration Management
Database Management System
Software Configuration Management
Electrical and Computer Engineering Department
Analysis models and design models
Chapter 11: Software Configuration Management
Metadata The metadata contains
Terms: Data: Database: Database Management System: INTRODUCTION
Versioning in Adaptive Hypermedia
Software Configuration Management
Presentation transcript:

Today’s Agenda  Quick Review  Final Exam  Version Control Software Testing and Maintenance 1

Quick Review  What is a product space? What is a version space? Software Testing and Maintenance 2

Software Testing and Maintenance 3 Outline  Introduction  Product & Version Space  Interplay of Product and Version Space  Intensional Versioning  Conclusion

Software Testing and Maintenance 4 SCM  The discipline of managing the evolution of large and complex software systems  A key element in achieving process maturity  Management support: Change control, status accounting, audit and review  Development support: Recording configurations, maintaining consistency, building derived objects, reconstructing previously recorded configurations, constructing new configurations

Software Testing and Maintenance 5 Version Model  Defines the objects to be versioned, version identification and organization, as well as operations for retrieving existing versions and constructing new versions.  Product Space: software objects and their relationships  Version Space: different versions of software objects  Versioned object space: combines product and version space

Software Testing and Maintenance 6 Product Space  Describes the structure of a software product without taking versioning into account  Can be represented by a product graph  Nodes – Software objects  Edges – Relationship between software objects

Software Testing and Maintenance 7 Software Objects  Artifacts created as the result of a development or maintenance activity  Examples of software objects?  Source object vs derived object  Object identification: each software object carries a unique identifier  May or may not have internal structure  For example, a program file can be stored as a text file or a syntax tree

Software Testing and Maintenance 8 Relationship  Composite relationship  Atomic objects, composite objects, and composite hierarchy  Dependency relationship  Lifecycle dependencies between requirements spec, designs, and implementations  Import/include dependencies between modules  Build dependencies between compiled code and source code

Software Testing and Maintenance 9 Representation foo maina b c systemmodule dependencycomposition headerbody compiled code executable

Software Testing and Maintenance 10 Version Space  Represents the various versions of a single item, abstracting from the product space  Version: a state of an evolving item  Versioned item: an item that is put under version control  Versioning can be applied at any level of granularity, ranging from a software product down to text lines

Software Testing and Maintenance 11 Versions  Version identification: How to uniquely identify a version?  Object identifier (OID): determines whether two versions belong to the same item  Version identifier (VID): uniquely identifies a version within the same versioned item  Version invariants: Properties that are shared by all the versions  For example, all versions must realize the same shared interface

Software Testing and Maintenance 12 Version Delta v1 v2 v1\v2 v2\v1 v1  v2 Symmetric delta v1 v2 op 1, …, op m Directed delta  (v1, v2) = (v1\v2)  (v2\v1)  (v1, v2) = op 1 …op m

Software Testing and Maintenance 13 Versioning  Extensional versioning: Versions are explicitly enumerated  V = {v1, v2, …, vn}  Versions can be made immutable automatically or on demand  Intensional versioning: Versions are implicit and constructed on demand  V = {v | c(v)}  For example, conditional compilation can construct different versions of a source file based on certain attributes

Software Testing and Maintenance 14 Revisions and Variants  Revision: a version intended to supersede its predecessor  Bug fixes, enhancements, adaptive changes  Variant: a version intended to co-exist with its predecessor  For example, a software product may support multiple operating systems

Software Testing and Maintenance 15 Version Graph (One level) v1 v2 v3 v1 v2 v4 v3 v5 v1 v2 v3 v4 sequence tree graph

Software Testing and Maintenance 16 Version Graph (Two levels) v1 v2 v3 v1 v2 v3 v4 v1 v2 v3 v1 v2 v3 v4 v5 branch offspring successor merge

Software Testing and Maintenance 17 State-based vs change-based  State-based: Versions are described in terms of revisions and variants  Change-based: Versions are described in terms of changes applied to some baselines  Extensional versioning: changes are only used for documentation  Intensional versioning: changes can be combined freely

Software Testing and Maintenance 18 Change Space changes versions v1 v2 v3 v4 c1c2c3c4c5c6

Software Testing and Maintenance 19 AND/OR Graph (1)  A general model for integrating product space and version space  AND nodes represent composition, and OR nodes represent versioning.  Both objects and configurations can be versioned.

Software Testing and Maintenance 20 AND/OR Graph (2) foo sysmaina b c OR node AND node OR edge AND edge Sample selection

Software Testing and Maintenance 21 AND/OR Graph (3) foo sysmaina b c OR node AND node OR edge AND edge Sample selection 1 2

Software Testing and Maintenance 22 Version Granularity  Component versioning: Only atomic objects are put under version control  Select the product structure first, and then the versions of the atomic objects  Total versioning: all levels of the composition hierarchy are versioned  Product structures and versions can be selected in an intertwined manner  Product versioning: Arranging versions of all objects in a uniform, global version space  Provides a single-version view that hides internally maintained versions of objects and relationships

Software Testing and Maintenance 23 Deltas  Directed deltas: a version is constructed by applying a sequence of changes to some base version  Embedded deltas: all versions are stored in an overlapping manner so that common fragments are shared

Software Testing and Maintenance 24 Data Model  Version model on top of data model: version management considered to be an ordinary database application  No support for storing versions efficiently  Version model built into the data model: data model is extended with versioning  Allows customized support for storing/querying versions efficiently

Software Testing and Maintenance 25 Intensional versioning  Constructs new versions from property-based descriptions  Difference from extensional versioning?  Combinability: versions are constructed on demand by combining different changes  Consistency control: a constructed version must meet certain constraints  Configuration rules: rules to configure consistent versions from a versioned object base

Software Testing and Maintenance 26 Combinability  Assume that there are m components and each has v version. How many possible configurations?  Configuration rules are used to rule out inconsistent combinations  The user must be warned if a new version is created that has never been configured before  Quality assurance, and changes may need to make corrections

Software Testing and Maintenance 27 Conceptual framework Query = submitted configuration rules Product part Selection in the product space version part Selection in the version space Versioned object base (product space + version space) rule base (stored configuration rules) Configurator (evaluates query) version Satisfying configuration rules and product constraints

Software Testing and Maintenance 28 Configuration Rules (1)  Built-in rules: hardwired into the SCM system and cannot be changed by the user  E.g.: At most one version of a software object is contained in any constructed configuration  User-defined rules: supplied by the user  E.g.: select the latest version before Nov. 10th

Software Testing and Maintenance 29 Configuration Rules (2) revision space (1) t = max (2) no = variant space (3) os = Unix && ws = X11 && db = oracle (4) ! (os = DOS && ws = X11) change space (5) c1 c2 c4 (6) c2 => c1 (7) c1  c2  c3 Version Space

Software Testing and Maintenance 30 Configuration Rules (3) 1. a : status = checked_out 2. * : os = Unix && ws = X11 && db = Oracle 3. b.DependsOn* : name = alpha_release Product Space

Software Testing and Maintenance 31 Strictness Class  Constraint: A mandatory rule that must be satisfied  Preference: An optional rule that is applied only when it can be satisfied  Default: An optional rule that is applied only when no unique selection could be performed otherwise  Constraints -> preferences -> defaults

Software Testing and Maintenance 32 Configurators  Constructs a version by evaluating configuration rules against a versioned object base  Functional: Apply a function to its arguments a 1, …, a n, i.e., evaluating q(a 1, …, a n )  Version selection is assumed to be unique.  Rule-based: Evaluate a query against a deductive database, which consists of a versioned object base and a rule base  A search space of potential solutions is explored in a dept-first or breadth-first manner

Software Testing and Maintenance 33 Merging v1 v2v3 v4 c1 c2 b a1a2 m c1 c2 a1a2 m a) raw mergingb) 2-way merging c) 3-way merging

Software Testing and Maintenance 34 Merge Tools  Textual merging: applied to text files that are considered to be flat  Works pretty well in practice  Syntactic merging: exploits the syntax of the versions to be merge  Guarantees a syntactically correct result  Semantic merging: performs sophisticated analyses to detect semantic conflicts  Difficult to define semantic conflict that is neither too strong nor too weak

Software Testing and Maintenance 35 Major SCMs  SCCS: Source Code Control System, Bell Labs, 1972, the first revision control system  RCS: Revision Control System, 1980, Purdue U.  CVS: Concurrent Versions System, 1985, client- server architecture, allows multiple developers to work together, open-Source,  Subversion: Meant to be a better CVS, 2000, open source,  ClearCase: Commercial, large-scale, distributed software development, Rational Software

Software Testing and Maintenance 36 Conclusion  Version control is at the core of any SCM, which is further at the core of any software development organization’s toolset.  The product and version space are from the user’s and tool’s perspective, respectively.  The core issues in version control are: (1) how to represent the two spaces; (2) how to store them efficiently; (3) how to present the user a consistent view?