Software Development

 

 

 

The Software Development 
Process

 
At Romsoft, we design and build safety critical software to be used in the medical and aerospace sectors and commercial software. We can develop a software solution through all stages of the development process or focus on one stage of the cycle.

Contact Romsoft.



 

  Key Features of our Safety Critical Software Development Process


 

 

V Model Approach 

We use the V model approach to develop our safety critical software.

  • Requirement Capture
  • Software Design
  • Software Implementation
  • Unit Testing
  • Integration Testing
  • System Testing


 



 safety critical software development V Model Approach

 

 


 

 

 

Agile Model Approach

When a company looks to create software for a client, they will typically complete each stage of the V model, before moving onto the next stage of development. The problem here, is that the user/client will not get to see and test the software until it is near completion. At this stage alterations would mean re-visiting the early stages of the life cycle and possibly a re-design of the software – and naturally this will impact on time and budgetary restraints.

When we create software, we take a different approach. We aim to maximise efficiency by taking a more collaborative approach. We do this, by incorporating AGILE processes into every stage of the software creation life cycle.

At each step of the development, we will identify key requirements from the client, so we know just what to implement at every stage. These key requirements will underpin each section of the design, so that when we complete a prototype release, the client will be able to offer feedback and we can respond to this. Our emphasis on ongoing communication with the client creates a unified approach to design and ensures a more dynamic and responsive system of software development.

 

safety critical software development Agile Development approach

 

 

 

 

 

Configuration 
Management

It is important to note that we use configuration management for all of our software and documentation.

We use Git for software configuration management, and Microsoft Business One Drive for documentation and project configuration management. The use of these tools allows minor (draft) and major (approved) releases to the customer at key stages of the project.

Furthermore, clients will be given access to project files using Microsoft Sharepoint, providing the ability to browse the document history and download releases and draft versions.

This is an indispensable tool when it comes to the initial requirement capture.

 

 

Traceability

We always place particular emphasis on traceability. Once we are clear on the key requirements of the client, we break those requirements down into a more detailed design, we make sure that these elements have unique IDs and are traceable throughout the software development life cycle.

By doing this, we can always trace from the top down to key elements of the software. This technique ensures that all of the essential key requirements can be identified within the software to always make the project a successful one.

 

 

Risk assessment

We always perform a DFMEA (Design, Failure, Mode, Effects, Analysis) of the software to be used in a safety critical system, to identify anything that can go wrong in the software and the impact of a failure.

If the risk of a failure can result in something catastrophic, we will insert a risk control measure to reduce the risk. Providing control measures is what we do as part of the normal process in the software development life cycle.

 

 

 

 

Software Design

In the development of safety critical software, we use UML (Unified Modelling Language) which provides excellent clarity for the client. During the design process, the use of diagrams to illustrate essential components of the software means clients have a clearer picture of how the software operates and functions.

Ensuring that the client is fully informed ensures that the process is efficient and streamlined.

 

 UML Design safety critical software development

 UML Design safety critical software development

 UML Design safety critical software development

 

 

 

 



 

safety critical software development in UK Our Software Solutions

 

 

 

Embedded Software

At Romsoft, our specialization is the creation of embedded software.

The majority of our projects are Bare-Metal and involve the development of software for a device with no operating system.

We have worked with a range of software, devices and tools:

  • Software Languages – C and Assembler
  • Microcontrollers – Arm Cortex M3, M4 and M0; ST Family, Cold Fire, Motorola and Infineon
  • Technologies – Motors, sensors and communications (RS232, RS485, SPI, I2C, 1553, Profibus)
  • Tools – Keil, IAR, Workbench and CodeWarrior

 

 

 

 

 

 

Desktop Applications

We can create a range of desktop-based applications including graphical user interfaces for test software and PC based applications to communicate with embedded systems. This includes RS-232 and RS-485 type communications. We have significant experiencing creating desktop applications, that can compile information to be stored in an embedded software.
 

 


 

Python, Java and C++

 Python developer in the uk

 Java developer in the uk

 c++ developer in the uk

 

 

 

Case Study

Our extensive experience in safety critical software development for both desktop and embedded software means we can deliver projects which traverse these two specialisations. We were tasked with creating a graphical user interface for an embedded system. Producing an interface on the embedded software itself can be time consuming and inefficient.

So, we developed a desktop application that allows a designer with no experience of programming to create a graphical user interface on a desktop application. The user interface design can then be compiled into a hex file, which can then be stored in an embedded system. Our proficiency in both disciplines allowed us to find an innovative solution to a problem which would have otherwise consumed a lot more resources.