Download presentation
Presentation is loading. Please wait.
1
PINTS Software Practices Jarett Hailes July 22, 2003
2
Acknowledgements Practices have been developed in conjunction with: –Surrey Kim –David Ballantyne –Calvin Chan –Jonathan Wiersma –Jesse McCrosky –Nikki Hu –Liam Stewart –Mike Kouritzin
3
Outline Background Objectives Practices –Organization –Standards –Testing & Review –Software Design Framework
4
Background Before: –One off project development –Little coding standards –Limited independent testing –Management burden
5
Background Cont. Early initiatives: –Determine common interfaces –Provide group collaboration –Discussed standard way of presenting data/code
6
Background Cont. We found: –Bottom-up approach didn’t catch everything –Common code helped speed development –Needed to build more consistent structure usage –Haven’t made independent testing a reality
7
Objectives Reorganize PINTS to distribute leadership and maximize productivity Finish developing management reporting, and coding standards Establish and execute trial run of testing and code review Develop versatile framework for all projects
8
Organization Project Leader Project Manager Project Head … Project Members
9
Standards Project Standards –Outline –Informal updates –Project Reports Coding Standards –Style & Substance Documentation Standards –Recording all relevant information
10
Testing Independent, black box testing Based on code documentation in interfaces Deterministic versus random components
11
Code Review Process: 1.Prior to meeting, main author sends out code to reviewers 2.Reviewers look over code for: a)Correctness b)Coding style standards c)Clarity/relevance of comments
12
Review Contd. 3.Meeting: a)Tester presents black box results b)Reviewers provide feedback on code c)Suggest/Require changes 4.Post-Meeting: a)Alter code as necessary b)Follow-up with subset of reviewers
13
Framework Outline Requirements Interface Directions
14
Requirements Easy to assimilate (new users) ‘Plug and Play’ filters/problems Provide distributable computing interface Ability to build language around framework Make filter code more versatile
15
Interface Basic Object Hierarchy Signal / Observation Models Filter breakdown –Modules –Filter interface Executables
16
Basic Objects
17
Signal / Observations
18
Modules
19
Filter
20
Executables
21
Putting it Together Example: ProjectManager::buildEnvironments() { numFilters = parameterFile.getFilterCount(); for (i=0; i<numFilters; i++) { parameterFile.getFilterVariables (i, vars); switch(vars.filterType) { case SERP: this->buildSERPEnvironment(vars); … }
22
Example Contd. ProjectManager::run() { for (int i=0; i<numFilters; i++) { for(int j=0; j<moduleCount[i]; j++) executeModule(filters[i], moduleOrder[i][j]); }
23
Directions Complete interface standardization Realize helper classes (updater, visualizer, etc.) Implement on all combinations for: –2 Signal/Observation pairs –2 Filters: Particle & (REST or IDEX)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.