Developing low level engineering software
Overview
This standard identifies the competences you need to develop the specialist software which directly interacts with the hardware. These software functions can be provided singly (such as a specific driver for a particular piece of hardware), as a group of related software functions (such as a library of common drivers), or as part of an operating system, which provides a low level functionality to software applications (such as synchronisation, scheduling, memory management and file handling).
You will be given a detailed brief on the hardware, and will be required to assess these requirements and to extract all necessary information in order to develop software, which exploits the capabilities of the hardware.
You will need to select the appropriate implementation method (such as machine code, assembler, hardware specific implementation) to use, based on the size and complexity of the software functions. You will be expected to use current British, European, international and company standards to produce the software.
Your responsibilities will require you to comply with organisational policy and procedures for software development. You will be required to report any problems with computer hardware, software or procedures that you cannot personally resolve, or that are outside your permitted authority, to the relevant people. You will be expected to work to verbal/written instructions and draft specifications, with a minimum of supervision, taking personal responsibility for your own actions and for the quality and accuracy of the work that you carry out.
Your underpinning knowledge will provide a good understanding of your work, and will provide an informed approach to applying software development procedures. You will understand the computer system and software used, and its application, and will know about the various tools and techniques used to program, test and analyse the software under development, and to ensure that they are sufficient for the intended role within a defined operational environment.
You will understand the safety precautions required when working in the software development team. You will be required to demonstrate safe working practices throughout, and will understand the responsibility you owe to yourself and others in the workplace.
Performance criteria
You must be able to:
- work safely at all times, complying with health and safety legislation, regulations, directives and other relevant guidelines
- plan the programming activities before you start them
- use appropriate sources to obtain the required information for the hardware being programmed
- select an appropriate implementation method
- ensure the correct utilisation of the development tools being used to produce the software
- produce and execute the software
- test the software using appropriate methods
- produce evidence of correct operation
- save the evidence as the appropriate file type and in the correct location
- review and report your findings on the developed software
- deal promptly and effectively with problems within your control, and seek help and guidance from the relevant people if you have problems that you cannot resolve
Knowledge and Understanding
You need to know and understand:
- the specific safety precautions to be taken when working with software development environment hardware (to include such items as safety guidance relating to the use of visual display unit (VDU) equipment and work station environment such as lighting, seating, positioning of equipment; repetitive strain injury (RSI); the dangers of trailing leads and cables; how to spot faulty or dangerous electrical leads, plugs and connections)
- the importance of good housekeeping arrangements (such as cleaning down work surfaces; putting media, manuals and unwanted items of equipment into safe storage; leaving the work area in a safe and tidy condition)
- the relevant sources and methods for obtaining any required technical information relevant to the low level programming (such as hardware data sheets, specification sheets, request for changes or modifications to code; technical information)
- specialist software development methods and tools used for low level programming (such as national, international and relevant company software development procedures, methods and tools)
- identification of the correct version of software tool, and the various techniques that are supported by the tool
- developing low level software
- testing low level software
- how to use and configure the tools
- why it is necessary to be able to recall previous issues of test results
- how to access, recognise and use a wide range of standard components and symbol libraries from the tools
- the need for configuration control on all artefacts (such as ensuring that completed results are approved, labelled and stored on a suitable storage device)
- when to act on your own initiative, and when to seek help and advice from others
Scope/range
Scope Performance
Prepare for software development, by carrying out all of the following:
- check that all software development environment hardware is in a safe, tested and usable working condition (such as cables undamaged, correctly connected, safely routed)
- identify the required standards and all relevant sources (such as Defence Standards, other sector specific software standards, software requirements, software design and code standards)
- identify the evidence required to allow software to be released to the users
- identify all test and diagnostic tools being used as part of the development (such as in-circuit-emulation (ICE), data-bus analysers and temporal execution time measurement devices)
Use four of the following to obtain the necessary data to program the low level code:
- software design
- specifications (hardware and software)
- change order/modification request
- regulations
- software safety requirements
- software development process definition documentation
- quality requirements
Carry out both of the following before commencing the low level programming:
- ensure that the data and information you have is current, complete and under configuration control
- check that all equipment being used is calibrated and tested for electrical safety, as per company standards and procedures
Produce and execute the software, using all of the following:
- target processor
- target emulator
- representative development environment
Test the software on all of the following:
- target processor
- target emulator
- representative development environment
Using three of the following:
4. performance analysis tool
5. in circuit emulation
6. hardware probes
7. instrumented code
Check the test results for all of the following:
- completeness
- traceability
- accuracy
Save and store the results in appropriate locations, to include carrying out all of the following:
- ensure that your results have been checked and that it complies with your company procedure
- check that the results are correctly titled, referenced and annotated
- save the results to an appropriate location (such as storage device, configuration database)
- ensure a separate backup copy is created and placed in safe storage
- register and store the results in the appropriate company information system
Scope Knowledge
Values
Behaviours
Additional Information
You will be able to apply the appropriate behaviours required in the workplace to meet the job profile and overall company objectives, such as:
- strong work ethic
- positive attitude
- team player
- dependability
- responsibility
- honesty
- integrity
- motivation
- commitment