Sign in



Don't have an account?

Signing up is free and easy
Home -> Our Services -> Programming Tools BU -> C Compilers -> Maintenance of 'C' compiler for 8-bit MCU

Maintenance of 'C' compiler for 8-bit MCU

Requirements

We got this compiler maintenance work from one of our Japanese customer as first project. The customer required us to do the following tasks as part of compiler maintenance work.

  • Evaluation of a compiler with standard test suites
  • Defect identification and rectification
  • New feature Upgradation
  • Improvement in performance

The compiler is for an 8-bit micro-controller which was extensively used by our customer's customers. So the compiler to be maintained was very important for our customer.

Challenges

  • Lack of documentation in compiler source
  • Complex module interface and coupling
  • Lack of coding standards
  • Duplication of source code
  • Complex design and functionality

Solution

  • Environment
    OS
    Windows
    Language/Platform C
    Quality validation tools
    • Numega Dev Partner Studio to check for memory errors, memory leaks and test coverage
    • QAC for static analysis of code
  • Description

    Defect rectification task is one of the primary tasks of a compiler maintenance work. During initial period of maintenance work, we did not adopt certain level of development practices. These inadequate practices caused significant issues in the improvement of quality of the compiler. Then we started to gradually refine our development process. We learned the hard way that well defined process is essential for the maintenance of legacy compiler.

    These lessons helped us to establish well defined defect rectification process. It facilitates to fix the defect correctly and completely. We have been rectifying the maintenance issues while fixing the defect.

    We perform the following mandatory activities during the defect rectification task as part of maintenance work.

    1. Preparation of defect analysis report
    2. Root cause analysis ( 5 why's method)
    3. Horizontal development (Suihei-Tenkai)
    4. Preparation of testing check sheet
    5. Generation of test programs
    6. Defect fix demo to team
    7. Preparation of algorithm and PDL
    8. Source code correction
    9. Smoke test
    10. Unit test
    11. Source integration and commit into CVS
    12. Causal Analysis Meeting to improve the development process
    13. Regression test and evaluation

    We perform complete regression test and evaluation before the release. Now we have more than 2,00,000 test programs apart from standard test suite's test programs. We have been using all these test programs during the time of regression test and perform thorough evaluation.

    We learned that many quality issues were caused by improper schedule. Therefore, the release schedule is being made using relevant past data, which avoids the last minute panic during shipment.

    The following two issues are in the legacy compiler:

    1. Maintainability
    2. Testability

    These issues are being rectified by us through consistent and regular quality improvement discussion with customer. The quality improvement actions were undertaken by us after getting the approval from customer. Now the customer and acmet are aware about the time and effort required for improving the quality of the legacy compiler.

    Similarly, the customer's requirements were met without any incompleteness. The possible obscurity in the requirement or specification received from customer is clarified promptly through email exchanges. We learned that, the origin of such quality or schedule issue may trigger by unclear requirement or specification. Therefore, we promptly communicate with customer on clarification to avoid further issues.

    The maintenance of this compiler is being done till date to the satisfaction of the customer.