150 likes | 292 Views
Software Configuration Management. METU Computer Engineering CEng 492 Spring'2004. Software development process:. The larger the software, the harder to maintain it. When a change required: Who will do it? How will s/he do it? How will the change incorporated in the whole software?
E N D
Software Configuration Management METU Computer Engineering CEng 492 Spring'2004
Software development process: • The larger the software, the harder to maintain it. • When a change required: • Who will do it? • How will s/he do it? • How will the change incorporated in the whole software? • How to guarantee change will not inject any other troubles? • After a change made: • When it is made? • Who made it, why s/he made it?
Software Configuration Management • Standard definition: • Identification: identifying components, structure • Control: controlling releases and changes • Status accounting: recording, reporting status • Audit and review: validating completeness • Traditional CM: check-in, check-out of sources, builds, compilation. • Process Management: control of the software activities (test, documentation, review). Ensuring life-cycle model
Change Control Process • Evaluate the change request • Assign individuals to configuration objects • check-out configuration objects • make the change • review (audit) the change • check-in the changed configuration items • establish baseline for testing
promote changes for inclusion in next release • rebuild, review • include in new version • distribute the new version
Aspects of CM Tools· • Versioning and version history • Configurations and versions • Transparency of CM • Derived object management • Workspace management • Development transactions • Evolution support • Activity modeling and automation
Problem Management • Tightly coupled with CM • Collecting problems and development issues • Assigning issues to people • Status reporting and auditing • Collecting problems and easily tracking them in the source is essentially importantQuality feedback agentsException dumps
Revision Control Systems • Example: SCCS, RCS • Versions of sources, version history (storing in delta differences: SCCS delta, RCS reverse delta) • Concurrent development (check-in checkout semantics) • Branches of revisions (i.e. stable, development, experimental) • Logging, identification • Merging of revisions
Revision Control with Central Repository • Examples: CVS, SourceSafe • Developers work on their copy on a distributed environment. • Operate on whole SW collection • Transaction based. Development goes in parallel, conflicts resolved in time of commit.
Software CM Tools • SCCS, RCS, CVS, Make • Visual SourceSafe • Apollo DSEE • Rational Environment (ClearCase) • Sun NSE • IST Istar • PVCS • CM Synergy, and many more
A sample CM Plan • 1 Introduction1.1 Purpose of CMP 1.2 Scope of Document 1.3 Definitions, Acronyms and Abbreviations 1.4 Document References 1.5 Document Overview
2 The Organizations CM Framework • 2.1 Organization • 2.2 Responsibilities • 2.3 Tools & Infrastructure
3 The CM Process • 3.1 IdentificationExplain how you will identify the current state of your products and systems. • 3.2 Management and ControlConsider Tools and Practices for: Development, Engineering, Build, Deployment, Change Requests, Defect Tracking, System Management. • 3.3 Configuration Status AccountingDefine what status updates you will provide and how. Consider: Change Request Reports, Build Reports, Defect Reports, Bill of Materials and Release Reports. • 3.4 AuditingArticulates how your solution will carry out Configuration Management Audits. Things to consider: Functional Audits, Physical Audits and Process Audits.
4 Project Schedules - CM MilestonesProvide project planning support/guidelines for CM activities. • 5 Project Resources • 6 Plan Optimization • Appendix
References: • CMU Software Engineering Institute: http://www.sei.cmu.edu./ • Association for Configuration and Data Management: http://www.acdm.org/ • comp.software.config-mgmt FAQ: http://www.daveeaton.com/scm/