Best practices of Software Engineering

Last updated: Feb. 23, 2006


Objectives:

Symptoms of Software Development Problems:

Trace Symptoms to Root Causes:

Symptoms Root Causes

Best practices

Needs not met

Requirements churn

Modules do not fit

Hard to maintain

Late discovery

Poor quality

Poor performance

Colliding developers

Build-and-release
Insufficient requirements

Ambiguous communications

Brittle architectures

Overwhelming complexity

Undetected inconsistencies

Poor testing

Subjective assessment

Waterfall development

Uncontrolled change

Insufficient automation

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Best Practices Reinforce Each Other:

Develop Iteratively:

Manage Requirements:

Use Component Architectures:

Component-based Resilient
  • Reuse or customize components
  • Select from commercially available components
  • Evolve existing software incrementally
  • Meets current and future requirements
  • Improves extensibility
  • Enables reuse
  • Encapsulates system dependencies

Model Visually (Unified Modeling Language, UML):

Continuously Verify Quality:

Manage Change:

Rational Unified Process (RUP) Implements Best Practices:

Summary: