Software Development Approach

Proxima Designs considers the software development process as naturally partitioning into several stages, including:

  • Project Scoping - establishing the business case for the project, determining the project scope and initial requirements, obtaining management buy-off on further investigation
  • Design Elaboration - refining the project requirements, establishing priorities, determining the risks involved and investigating approaches, setting a project schedule
  • Implementation - an iterative process of designing, building, and testing code that implements progressively larger subsets of the project requirements, while refining the requirements to reflect increased understanding and refactoring the existing code as needed to preserve a clean object structure
  • Delivery - extensive testing of the completed product specifically to detect flaws, with development efforts directed exclusively toward correcting the flaws

These stages are not exclusive, and often overlap to some extent. They also may be repeated during the course of a larger project.

Various tools are available to assist with the different stages of the project, many of which have been incorporated into the Unified Modeling Language (UML). Use Cases, which provide scenarios detailing the operation of the system from the standpoint of the user, make up an important part of the Design Elaboration stage. Class Diagrams at various levels of detail are useful during both the Design Elaboration and Implementation stages, as are Interaction and Activity Diagrams.

Proxima Designs advocates the use of these tools in all but the simplest projects, with the assurance that effort invested in providing a proper foundation for the implementation will be more than repaid by reducing the amount of restructuring and bug fixing required later.

During the Implementation stage, Design Patterns also become extremely useful. These distillations of common approaches to problem solving in software provide conceptual building blocks which can be plugged directly into designs. Besides aiding the clean structuring of the design, they allow complex concepts to be clearly communicated to others involved in the project. Proxima Designs strongly believes in the utility of Design Patterns and recommends that all developers become familiar with at least the basic set described in the classic book on the topic.

CountZ.com