Site Log In


Contact Calytrix

Offices

Resellers


ISO 9001:2008

ISO 9001 logo Certificate No.: AS/NZ-028

Development Approach

Calytrix applies its already well-established COTS product development cycle to each project undertaken. This software lifecycle borrows heavily from the eXtreme Programming (XP) and Rational Unified Process (RUP) methodologies.

Key aspects of our design and development process include:

  • UPFRONT DESIGN FOCUS:

    We invest significant resources into the upfront design and architecture of each software project we undertake to ensure that all knowledge and anticipated 'use cases' are covered prior to starting implementation. This greatly reduces the risk of implementing software components that deviate from their intended use and requirements.

  • OBJECT-ORIENTED DESIGN:

    Our software is implemented in small and logical units (components/objects). We follow an iterative development approach, decomposing each macro task into sub-units of work that can be easily managed and quality assured.

  • PEER REVIEW:

    A Peer Engineer reviews every unit of software to ensure that the code is of high quality and complies with coding standards (including documentation). Doxygen API documentation files are also created and reviewed as part of this process.

  • UNIT TESTING:

    Unit tests are developed in conjunction with a component's business logic. This ensures that each new piece of functionality is tested as it is developed.

  • QA ANALYSIS:

    Unit testing is augmented with Quality Assurance (QA) analysis for memory, threading and performance as part of our standard Software Development lifecycle. We currently use a number of tools to monitor the quality of our software, including gdb, gcov, jcoverage, gprof, valgrind.

  • TEST AND BUILD FRAMEWORK:

    Our major products and projects, are integrated into an automated overnight build system that exercises and reports on all unit and QA tests. Build failures and test failures can therefore be detected and addressed immediately. This approach also reduces the costs associated with future enhancements and maintenance.

  • VERSION CONTROL:

    We use a revision control system during the development of each and every project. This ensures that every change is monitored and incremental baselines can be set.

  • TEAM ENVIRONMENT:

    Our engineers do not work in isolation and thrive on sharing implementation problems with other team members via brainstorming sessions.

All of these processes go towards ensuring that the end result is delivered on time without having to compromise on quality, functionality or end-product stability.