System and Software Design

We design software primarily for the medical device and embedded systems markets. In both cases, reliability is paramount. We therefore use model-driven design supported by tools such as DOORS for requirements engineering and robust change control procedures. We undertake our design using the Unified Software Development Process, which is well-suited to model-based design.

Design is essentially a creative process. The designer needs to think about the range of requirements that must be satisfied by the product under development and consider how to fulfil these optimally within the system's constraints. The process is made simpler by experience: having previously encountered a related set of circumstances can facilitate how to arrive at a solution to the problem.

We use Object-Oriented technology wherever possible for our designs, since it fits well with the needs of the designer to redeploy tried notions. Object Oriented design is essentially highly modular, meaning that previously designed components hopefully require only minimal modification before being re-applied in a new environment. Testing problems may be reduced by enabling the range of input values that may be encountered by a system to be constrained.