CMII in Software Development Based on Open Source Tools Michael Diers, Olaf Kosel
Presentation Outline Introduction Evaluation criteria for an OS out of the box solution Tool evaluation Short presentation of the chosen tool combination Trade-offs and possible solutions Requirements specification and design basis for further development Conclusion
Portfolio & References Software Services - Manage and conduct ambitious and complex software projects Software CM Services - CM analysis in software developing enterprises - CM consulting and implementation - CM training and coaching References - SIEMENS COM, TOREX RETAIL, DGB (German trade union), DResearch Digital Media Systems, KLOPOTEK,
Introduction Michael Diers - Consultant CM/software development processes since 1994 - Comprehensive experience regarding CM tools for distributed development - Actively engaged in the open source projects Distributed CVS and XEmacs Olaf Kosel - Project manager in the field of software development since 1996 for Daimler Benz Interservices, ICL, Fresenius IT, et al - Experience from many software process optimization projects - CMII certified since April 2006
Motivation for CMII CM as basis for software process optimization Detailed, concrete description of process and roles Basis or precise design for other procedure models (CMMI, RUP, V-Model) Basis for the compliance of software standards (ISO 9001:2000, ISO 15504 (SPICE)) Interface to other fields of process Handling of documents, release before implementation
Challenges for Applying CMII in Software CM Structuring documentation/item hierarchy - Tool necessities Separation of development and coding - Development and coding often closely meshed Specific CM patterns in software development - Branching/merging Software development on CMMI level I/II in many enterprises - Recent engineering discipline with established unconventional methods
Why Open Source Software? Low barrier for tool supported CMII introduction Potential for enhancing and adapting the individual needs Broad basis of experience and developers Cost sharing Open reference for CMII in the software development as the development is effected according to CMII principles
Presentation Outline Introduction Evaluation criteria for an OS out of the box solution Tool evaluation Short presentation of the chosen tool combination Trade-offs and possible solutions Requirements specification and design basis for further development Conclusion
Tool Requirements CMII: Baseline and Repository Class Criteria Identification and metadata Unique item number CMII-Baseline Physical item hierarchy, changes & enhancements Document by number, type, revision, creator & user Mapping between documents and items Visualization of all relevant metadata Visualization of mapping document <-> ECN Recall of older baselines Security Authorization and data access protection Technology Architecture and interfaces
Tool Requirements CMII: Change Process Class Criteria Change forms Forms & separate number ranges for PR, ECR, ECN, WA Relations between ECRs and ECNs can be mapped Users/ roles Possibility to define specific users and to assign roles Workflow CMII workflows (closed loop and fast track) Support for the activities CSI, CSII, CSIII, CRB, CIB Scheduling Plans can be derived from accepted tasks Plans can be illustrated (Gantt) Display of critical path and date deadlines Archiving Information about closed PRs, ECRs, ECNs, WAs is stored
Tool Pre-Selection CMII Baseline/ Repository - Concurrent Versions System (CVS) - Subversion (SVN) CMII Change Process - Bugzilla - Mantis - Trac
Presentation Outline Introduction Evaluation criteria for an OS out of the box solution Tool evaluation Short presentation of the chosen tool combination Trade-offs and possible solutions Requirements specification and design basis for further development Conclusion
Tool Evaluation Results: CMII Baseline and Repository Class Criteria SVN CVS Identification and metadata Unique item number, document by number, type, revision, creator & user CMII-Baseline Physical item hierarchy, changes & enhancements Recall of older baselines Security Authorization & data access protection Technology Architecture & interfaces Visualization of physical hierarchy, all metadata,mapping document <-> ECN easily adaptable adaptable with some restrictions o not adaptable or additional development efforts required
Tool Evaluation Results: CMII Change Process Class Criteria Bugzilla Mantis Trac Change forms Forms for PR, ECR, ECN, WA Mapping ECRs & ECNs o Terminology CMII terms usable Users/ roles CMII user & roles Workflow Closed loop & fast track Scheduling Derivable from tasks o Visualization (Gantt) o o Critical path o o o PRs, ECRs, ECNs Archiving
Tool Selection: Subversion/Trac Advantages Subversion - Additional definition of properties incl. versioning for all files - Efficient diff algorithm for binary files - Flexible changes in repository structure Advantages Trac - Integrated bundle with Subversion and a Wiki - Custom fields - Built-in scheduling concept - Plug-in & patch mechanism for enhancements
Presentation Outline Introduction Evaluation criteria for an OS out of the box solution Tool evaluation Short presentation of the chosen tool combination Trade-offs and possible solutions Requirements specification and design basis for further development Conclusion
Welcome Screen Trac for CMII
CMII Item Structure With Subversion
CMII Forms With Trac
CMII Workflow Adaptation With Trac
ECR Change Log Created by Trac
CMII Report: ECRs by ECN
CMII Baseline Adaptation With Trac
Presentation Outline Introduction Evaluation criteria for an OS out of the box solution Tool evaluation Short presentation of the chosen tool combination Trade-offs and possible solutions Requirements specification and design basis for further development Conclusion
Open Issues to Fully Map CMII Separate forms & number ranges for PR, ECR, ECN, WA, DW Integrated ECN impact matrix Complete CMII-Baseline Full workflow support Fine grained access protection Flexible mapping of software item hierarchies
Basis for Further or New Development Application requirements - Training material CMII (course 1-6) ICM/GfKM - Requirements specification elego Design basis elego - Functional specification - System specification - GUI design - Process plan
Presentation Outline Introduction Evaluation criteria for an OS out of the box solution Tool evaluation Short presentation of the chosen tool combination Trade-offs and possible solutions Requirements specification and design basis for further development Conclusion
Functional Specification: Project Context
Functional Specification: Process Model
Functional Specification: Use Case Model (Section)
System Design: Domain Model
System Design: Domain Model (Section)
System Design: Item Hierarchy
Layout Specification: GUI Design
Process Plan: Build Environment Project: DCCSII - www.dccsii.org Process tool: CMII compliant - Trac/Subversion (later DCCSII) Development method and tools: Model Driven Engineering - MDE: Medini Component Modeler - UML: Enterprise Architect - IDE: Eclipse - Language: Java (J2EE)
Presentation Outline Introduction Evaluation criteria for an OS out of the box solution Tool evaluation Short presentation of the chosen tool combination Trade-offs and possible solutions Requirements specification and design basis for further development Conclusion
Conclusion When to use Open Source Tools? - To start with CMII - As long as one can accept trade-offs Why use Open Source Tools? - Easily adaptable - Can be enhanced in a limited range with little effort How to get a full CMII mapping? - Development is necessary
Thank you very much for your attention!