Top Banner
PINTS Software Practices Jarett Hailes July 22, 2003
23

PINTS Software Practices Jarett Hailes July 22, 2003.

Dec 18, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PINTS Software Practices Jarett Hailes July 22, 2003.

PINTS Software Practices

Jarett HailesJuly 22, 2003

Page 2: PINTS Software Practices Jarett Hailes July 22, 2003.

Acknowledgements

• Practices have been developed in conjunction with:– Surrey Kim– David Ballantyne– Calvin Chan– Jonathan Wiersma– Jesse McCrosky– Nikki Hu– Liam Stewart– Mike Kouritzin

Page 3: PINTS Software Practices Jarett Hailes July 22, 2003.

Outline

• Background

• Objectives

• Practices– Organization– Standards– Testing & Review– Software Design Framework

Page 4: PINTS Software Practices Jarett Hailes July 22, 2003.

Background

• Before:– One off project development

– Little coding standards

– Limited independent testing

– Management burden

Page 5: PINTS Software Practices Jarett Hailes July 22, 2003.

Background Cont.

• Early initiatives:– Determine common interfaces

– Provide group collaboration

– Discussed standard way of presenting data/code

Page 6: PINTS Software Practices Jarett Hailes July 22, 2003.

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

Page 7: PINTS Software Practices Jarett Hailes July 22, 2003.

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

Page 8: PINTS Software Practices Jarett Hailes July 22, 2003.

Organization

Project Leader

Project Manager

Project Head Project Head Project Head…

Project Members

Project Members

Project Members

Page 9: PINTS Software Practices Jarett Hailes July 22, 2003.

Standards

• Project Standards– Outline– Informal updates– Project Reports

• Coding Standards– Style & Substance

• Documentation Standards– Recording all relevant information

Page 10: PINTS Software Practices Jarett Hailes July 22, 2003.

Testing

• Independent, black box testing

• Based on code documentation in interfaces

• Deterministic versus random components

Page 11: PINTS Software Practices Jarett Hailes July 22, 2003.

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

Page 12: PINTS Software Practices Jarett Hailes July 22, 2003.

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

Page 13: PINTS Software Practices Jarett Hailes July 22, 2003.

Framework Outline

• Requirements

• Interface

• Directions

Page 14: PINTS Software Practices Jarett Hailes July 22, 2003.

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

Page 15: PINTS Software Practices Jarett Hailes July 22, 2003.

Interface

• Basic Object Hierarchy

• Signal / Observation Models

• Filter breakdown– Modules– Filter interface

• Executables

Page 16: PINTS Software Practices Jarett Hailes July 22, 2003.

Basic Objects

Page 17: PINTS Software Practices Jarett Hailes July 22, 2003.

Signal / Observations

Page 18: PINTS Software Practices Jarett Hailes July 22, 2003.

Modules

Page 19: PINTS Software Practices Jarett Hailes July 22, 2003.

Filter

Page 20: PINTS Software Practices Jarett Hailes July 22, 2003.

Executables

Page 21: PINTS Software Practices Jarett Hailes July 22, 2003.

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);

}

}

Page 22: PINTS Software Practices Jarett Hailes July 22, 2003.

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]);

}

Page 23: PINTS Software Practices Jarett Hailes July 22, 2003.

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)