Home    News and Events    Software Development    Services    Products    Presentations    Contact   

Network Signature's Seven Step approach to succesful software development

Specification I

The specification is the blueprint, the master score, the grand plan. Through a short, iterative process, Network Signature identifies the exact requirements of the client, and produces a detailed specification and a conceptual project plan.

Architecture and Algorithms

Often overlooked, this step combines the required operating environment and performance with the desired functionality, and breaks the specification down into a set of individual components and their interdependencies.

Specification II

Particular milestones are defined, a selection of review meetings, according to client requirements, are scheduled, and a detailed project plan is produced.

Development

The components are developed in accordance with the project plan and overall architecture, and tested. Irrespective of implementation language, Network Signature deploys a modular, iterative development process, whereby separate components of the total solution are developed, refined, and tested individually. This is in fact the essence of object oriented design and development, and is at the core of Network Signature's design philosophy. The testing itself employs a combination of several methods, including:
  • Dress Rehearsal, whereby code-level debuggers are used to step through every line of the code, and all corner cases are forced
  • Bulk Automated Testing, whereby test data (simulated or real) is fed to the individual components, and output/behaviour verified to be correct
  • Formal Verification, whereby correct behaviour is verified using formal, mathematical methods (this methodology was originally described by David Gries in his book "The Science of Programming")
Irrespective of method, any discrepancies are fed back to the appropriate earlier stage, and revised specifications and/or code developed. At the same time, performance-critical sections of the code are analysed at machine code level, and all run-time logging, tracing, and debugging functionality is verified.

Integration

This is where the wings meet the fuselage and we take it for a spin. Another step often overlooked (it is a purely practical consideration), this is where many software projects start to falter, and sometimes meet an early demise. However exact the specification is, and however careful and precise the development has been, integration is a critical step, and requires end-to-end understanding of all aspects of client requirements, the actual code, and its working environment.

Code review and audit

Often implemented informally, code review is one of the most important aspects of quality assurance, but, because of its informal nature, is often passed over. The fact is that quality is built into things, it isn't tested into them. And yet, practically all quality assurance schemes emphasise testing, in the blindest sense, as the preferred quality control mechanism. While it is true that testing can verify operation within certain parameters, software and the environments in which it is expected to operate are very complex, and frequently cannot be verified using blind testing. Code review addresses this issue by subjecting the software to an intelligent review and detailed inspection, primarily at the source code level, but also at the specification and architecture levels.

Commissioning

The software is delivered to the client, followed by client's acceptance testing. Where necessary, documentation and training is developed jointly with the client, in accordance with client's requirements. Frequently, however, the specification effectively serves as a manual.

© 2002 qbfox ltd  qbfox - footprint- Logo