Title: Software Checklist
1Software Checklist
- Proposal for controlling and documenting all the
steps in developing software
Program of Work Meeting, June 28-19, 2000 P.
Mato, CERN
2Unified Software Development Process
Software Development Process
Users requirements
Software system
- 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.
() I. Jacobson et al., The Unified Software
Development Process, Addison Wesley, 1999
3USDP 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
analysis/ design
testing
implemen- tation
4UDSP Core Workflows
5Specializing 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, users manual (if
interaction with user) - Code package(s), test programs
- ? templates needed!!
Predominant during construction phase
6Component 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
7Checklist(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 ?
8Proposal
- 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