TSIMMIS Project Stanford University


Guidelines for Developers


Suggestions for Efficient Software Design & Implementation




Date created: August 2, 1996

Last modified: August 13, 1996





Joachim Hammer and Ramana Yerneni

Stanford University


TABLE OF CONTENTS

1. Introduction

2. The Software Design Process

2.1. Requirements Analysis
2.1.1. Survey the current situation (if applicable)
2.1.2. Specify the new project requirements
2.1.3. Specify the interface (external) requirements
2.1.4. Specify test scenarios
2.1.5. Review
2.2. Physical Design
2.2.1. Develop the (internal) design
2.2.2. Design a test suite
2.2.3. Review
2.3. Implementation
2.3.1. Coding
2.3.2. Code review
2.3.3. Unit testing & debugging
2.3.4. Develop comprehensive integration tests
2.4. Test and Integration
2.4.1. Fix testing
2.4.2. Regression testing
2.4.3. Acceptance test
2.5. Installation and Release
2.5.1. Educate potential users
2.5.2. Install and integrate with existing software
2.6. Maintenance
2.6.1. Implement change requests
2.6.2. Collect performance data
2.6.3. Demonstrate software
2.6.4. Train additional users

3. General Observations

4. Project Management Issues

4.1. Resources
4.2. Schedule
4.2.1. Estimation
4.2.2. Contingency planning
4.3. Coding Standards
4.3.1. Version control
4.4. Teamwork
4.5. Documentation