ROSE Compiler Framework/Best Practices

The goal of this page is to collect input, feedback and comments about best practices in software development. We periodically review the best practices to see if any of them can be applied to ROSE.

Development Process
"For most modern software development projects, some kind of spiral-based methodology is used over a waterfall process. ...Having a process is better than not having one at all, and in many cases it is less important on what process is used than how well it is executed."

Quoted from...

Wikipedia Article on Software Development Processes

Waterfall Model

Spiral Model

Agile Model

Extreme Programming Model

Requirements
Gathering and agreeing on requirements. A good way is to use Use Cases. Wikipedia On Use Cases

Design
Apply tried and true design patterns. Be aware of anti-patterns which usually fail.

Wikipedia on Design Patterns from the Gang of Four Book

Peer Review
Benefits: problems are eliminated earlier this way and reviews are as effective or even more effective than testing.

What to review: any artifact from the development process, including plans, requirements, architecture, design, code, and test cases, etc.

Testing
An integral part of software development. Testing is used to ensure the software meet functionality and performance requirements.

There are testing patterns.

Testing should cover performance/overload testing to catch design or coding problems.

Project Management
Be aware of best practices in project management
 * lessons learned

References:
 * Rapid Development by Steve McConnell