This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

software quality - what do you use

just curious folks to what folk use to help develope their software with.

I am an avid user of lint and having a go at trying to design what i am gonna do before i start being a code monkey but would like to find out what others are using.

Recently downloaded Tessy but as i get the feeling trying to apply it to an exsisting project will be a huge project its self and as the vendors havent been rushing to reveal the price cost may be an issue.

Does anybody have any recomendations on tools they find useful?

  • I use this: www.sparxsystems.com/.../index.html
    particularly for State Machine design.

    I first saw it at The Embedded Systems Show (when that was in Birmingham, England) - even though it's not targetted at Embedded at all.

  • Looks an intersting tool Andrew. Has there been any issue in using it with the Keil IDE ?

    When it generates code is it like IAR Visualstates generated code e.g.

    tables of structures/pointers.
    switch() constructs
    if(){}else{}

    I have now gotten to a stage where I do trust RTX and some ST libs - have you reached a level of comfort where you allways trust the generated code?

    Definately going to look further thanks for the recommendation.

  • I just use it as a design tool - I've never tried the code generation.

  • I try to use my brain.

    Same here.
    In my (limited, perhaps) experience there was little opportunity to use automated tools to improve software quality. Experience and discipline are very important.

  • I try to use my brain.
    so do I, however

    one of my early mentors had a wonderful expression: "clerical errors" and running e.g. PC-lint will weed thise out before you start debugging the "mental errors".

    not 'wasting' time debugging your way to find a "clerical error" really can speed up the process.

    Erik

  • Indeed.

    Tools help you to do that more effectively by facilitating the laborious/tedious operations.

    It is, of course, perfecty possible to do state diagrams, etc, using only pencil and paper - and I have done plenty of that in my time!

    Tools cannot do the thinking for you.

  • Its very easy to produce code that has no compiler warnings and very few lint warnings and still be wrong through an over sight of a exceptional conditions. Especially if your working to tight deadlines.

    I am not convinced just claiming to use you head will produce code of better than average quality - I work with gents that claim its been working for years and the user has not found an issue the code must be good "quality" eg fit for purpose. But in reality it could be restarting on a regular basis unseen by the user or occasionally missing important triggers that do not have huge consequences. There are no metrics you could use to prove to others you have been "professional and carried out due diligence"

    Code generation seems to be rearing its head more and more but one thing I am more intersted in is proving the design actually does what I think.

    Having a tool to design on is okay but when the oppertunity for the source code to be modifed away from the design tool occurs and the design is not updated and things start to diverge. I have expereienced situations where the deisgn tool is no longer used after the intail design has been started.

    So apart from Andrews suggestion and using lint no body uses any verification or design tool
    at all?

    my inital thought is yes I understand its expensive and time consuming and like many others I expect you have experience of products that do not "fail" but my concern is I am now working with projects with micros with a meg of flash and its not just simple monitoring IO or comms via CAN messages the complexity is growing expenetially. Not something that was a problem when it was micro with 4K of flash and 192 bytes of ram.

  • By 'using my brain' I meant investigating, being careful and checking.

    For example, in your last response I saw the following errors:

      intersted
      oppertunity
      expereienced
      intail
      expenetially
    

    Some people may need tools to check simple mistakes like these, others might not.

    Of course, the requirements of metrics may depend upon such things as the size of the project, the number of developers involved and their own individual abilities.

    On some reasonably sized projects, brain power can still be the best tool.

    Well, that's my opinion anyway.

  • ah you got me - could be your right, maybe I do just need simple tools and shouldnt bother with others.

  • So apart from Andrews suggestion and using lint no body uses any verification or design tool
    at all?

    Automated verification would be nice. That would mean functionality tests on pieces of code. With MCU's this can prove to be difficult. For instance, to verify the functionality of a pulse generator, you'd have to hook up a scope to the circuit and check the timings. I cannot see how this can be automated without unreasonable amount of work. I think this is a typical example.

  • Yes I had similar thoughts when I looked at the youtube vids about TESSY.

    The amount of work required to set up the functional tests is huge and not something you can easily retrospectively apply to an existing project and thats before making sure the hardware is doing the right thing.

  • Yes I had similar thoughts when I looked at the youtube vids about TESSY.

    The amount of work required to set up the functional tests is huge

    were I to design a simple toy. "it works" would be a sufficient test
    were I to desgin a pacemaker .........

    I think for "life challenging" designs setting up tha maximum possible automated testing is mandated. If you for a "life challenging" design use manual testing, you WILL test too little when a "must be fixed and released immeditely" bug appear.

    Erik

  • www.medicaldesignbriefs.com/.../11334

    it is sad that the FDA find faults in medical devices that the producers easily could have found themselves.

    I wonder how anyone can live with themself and know that a medical device they make could be safer.

    Erik

  • everything is relative

    Absolutely.

    There are so many elements to the equation. A simple universal yes/no response to the question of whether it is needed is just not sensible.

    As I mentioned before, the abilities of the team members must be taken into account.

    The simple task of being careful and being able to check one's own work is a key component that should not be overlooked.

    With all due respect to Erik, there were two typos I spotted in that last response; and that was just with a quick scan. That works out at quite a high percentage of error in such a few lines of text. Now if those errors were in code, ouch!