HLA Software Development Cycle
1. Gather Requirements and Use Cases
Include interviews with physicists, operators, engineers, project leads, and any other stakeholders for use cases
2. Write Requirements document.
Requirements Template: https://slacspace.slac.stanford.edu/sites/LCLS%20Document%20Storage/01%20-%20LCLS%20Systems/electronbeamsys/controls/Shared%20Documents/Applications/Requirements%20Specification%20Template.doc
3. Review Requirements with users
- Email requirements doc to distribution prior to review meeting
- Prepare power point for review meeting
- Take minutes and notes during review and publish
- Update requirements doc after review, republish and distributet
4. Gui Mockup Review with HLA developers
Include Mike, the GUI consistency guy
For Java apps, use our standard GUI framework unless you get authority to do otherwise
5. Gui Mockup Review with users
Note: 3 and 5 can be the same review
6. Prototype the code (usually no longer than 2-4 weeks)
7. Write Software Conceptual Design
Conceptual and Design Template: https://slacspace.slac.stanford.edu/sites/LCLS%20Document%20Storage/01%20-%20LCLS%20Systems/electronbeamsys/controls/Shared%20Documents/Applications/SoftwareCandDDesignTemplate.doc
8. Review Design with developers
Ensure Model/View/Control Architecture.
Ensure desired functionality has public API such that Matlab, java packages, and other scripts, etc, can call desired functions.
9. Write Software
10. Write Test Plan
11. Unit Test / Test and Integrate
12. Code Review
13. Comissioning
Release procedures: /usr/local/lcls/physics/README
14. Training and Help
Plan is to place html on operations wiki
Notes:
Documentation
Post all documents on Sharepoint under Controls | Applications folder
Confluence wiki home for Accelerator Software - Meeting minutes and more interactive documentation:
http://confluence.slac.stanford.edu/display/ACCSOFT/Home