We can supply quality code to your specification. From a driver for a bespoke hardware interface to a fully automated system, we will work closely with your engineers to provide the necessary solution. We design using UML and will provide full documentation. Importantly, our software engineers understand hardware! This greatly improves communication and productivity.
When designing a system we will work closely with you to draw up a list of requirements and from this we will prepare a software specification. Once the specification has been agreed by both parties we will start the design process.
Where possible we use Object Orientation to produce code that is maintainable and reuseable. For all OO designs we use UML (Unified Modelling Language) as our standard for visualisation and documentation. This allows us to adjust and hone the design before we write any code. We also use proven design patterns if applicable. You may choose to have your engineers involved at this stage if they will work on the system in future.
Having finalised the design of your system, the coding process is usually straightforward. For the majority of applications we use C / C++ for control code on PC platforms ( MS Windows, Linux). We generally use C, C++ and assembler for embedded systems. On Windows platforms we use C++, Visual C# or (.Net) for user interfaces and some non real time control code.
Testing can be conducted after coding using test cases written against the requirements. Alternatively, TDD (test driven development) can be employed for iterative testing during the design/coding phase.