80 likes | 95 Views
Software Checklist. Proposal for controlling and documenting all the steps in developing software. Program of Work Meeting, June 28-19, 2000 P. Mato, CERN. Unified Software Development Process *. Use-Case Driven Use cases capture functional requirements. They drive the development process.
E N D
Software Checklist Proposal for controlling and documenting all the steps in developing software Program of Work Meeting, June 28-19, 2000 P. Mato, CERN P. Mato, CERN
Unified Software Development Process* • Use-Case Driven • Use cases capture functional requirements. • They drive the development process. • Architecture-Centric • The software system is developed around an architecture. • The architecture ennobles the most significant static and dynamic aspects of the system. • Iterative and Incremental • Iterations refer to steps in the workflow • Increments are the growth in the product. Software Development Process User’s requirements Software system (*) I. Jacobson et al., “The Unified Software Development Process”, Addison Wesley, 1999 P. Mato, CERN
USDP: Phases and Iterations • Phases • Inception (feasibility) • Elaboration (“do-ability”) • Construction (building) • Transition (release) • Iterations • Several iterations in each phase • Each iteration: • requirements, analysis, design, implementation & test • Iteration == mini-project requirements testing analysis/ design implemen- tation P. Mato, CERN
UDSP: Core Workflows P. Mato, CERN
Specializing USDP to our situation • Simplification • Remove some “workers” and “artifacts” to better fit our immature organization and minimize overheads • Workers • “User-case specifier”, “Architect”, “Component Engineer”, “Test engineer”, “Librarian” • Artifacts • Documents: Use-case, analysis & design, test plan, release notes, user’s manual (if interaction with user) • Code: package(s), test programs templates needed!! Predominant during construction phase P. Mato, CERN
Component Engineer • Scale of project • few days to few weeks • Single person performs the 4 activities • Move to next activity if corresponding document reviewed • Checklist to support process • Templates for documentation are essential Component Engineer Analyses use cases Use case, requirements, problem report Component Design component Analysis & Design document User Manual Implement component Release Notes Implement & Perform test Tests P. Mato, CERN
Checklist(s) • The idea is to produce a number of “checklists”, one for each type of development • Bug fix • New functionality in existing component • New component • The checklist should guide the developer through the agreed workflow • Links to the tools to be used • Template locations • Memo aid • Checklist for Bug Fixes • Set problem report assigned • Analyze bug (reproduce, get more information,…) • Produce (update) analysis & designdocumentation • Reviewed by ______ date _____ • Checkout CVS head revision • Implement code • Unit test • Build on all platforms • Run code checker • Reviewed by ______ date _____ • Write release notes • Commit changes to CVS • Send request to librarian • Write (update) user manual • Set problem fixed P. Mato, CERN
Proposal • Produce a set of basic checklists for Component Engineer • Bug fixes or small enhancements • New Components (e.g. Toolbox) • New Frameworks (e.g. Conditions Data Framework) • Web or paper based? • The checklists should be designed • Not too heavy • Easy to be followed • Only put things that are useful • Enforce checklist within the Computing Group P. Mato, CERN