BS EN 62628:2012 pdf download – Guidance on software aspects of dependability\
In a combined hardware/software system, the software elements of the system contribute in two major roles:
a) operating software to run continuously to sustain hardware elements in system operation; and
b) application software to run as and when required upon user demands for provision of specific customer services. Dependability analysis of the software sub-systems has to consider the software application time factors in the system operational profile and those software elements required for full-time system operation. Software modelling is needed for reliability allocation and dependability assessment of software-based systems. Human aspects of dependability [1 ] 1 play a pivotal role in guiding effective software design and implementation. The human-machine interface and operating environment influence the outcome of software and hardware interaction and affect the dependability of system performance. This leads to a strategic need for software dependability design and perfective maintenance efforts in the software life cycle process .
4.2 Software dependability and software organizations Software dependability is achieved by proper design and appropriate incorporation into system operation. This standard presents an approach where existing dependability techniques and established industry best practices can be identified and used for software dependability design and implementation. The dependability management systems [3, 4] describe where relevant dependability activities can be effectively implemented in the life cycle process. The achievement of software dependability is influenced by
• management policy and technical direction;
• design and implementation processes;
• project specific needs and application environments.
Software organizations are organized and managed groups that have people and facilities with responsibilities, authorities and relationships involving software as part of their routine activities. They exist in governments, public and private corporations, companies, associations and institutions. Software organizations are structured according to specific business needs and application environments for various combinations of development, operation and service provision. Typical software organizations include those that
a) develop software as their primary product,
b) develop hardware products with embedded software,
c) provide software service support to clients,
d) operate and maintain software networks and systems. Annex A describes the categorization of software and software applications provided by typical software organizations.
4.3 Relationship between software and hardware dependability Software behaviour and performance characteristics are different than those experienced in hardware from a dependability perspective. Software codes are created by humans. They are susceptible to human errors, which are influenced by the design environment and organizational culture. Whereas most hardware component failure data are well documented and experienced in use environment, the nature of software faults and their traceability of cause and effects are not easy to determine in system operation. In most cases the software faults leading to system failures cannot be consistently duplicated. Corrective actions on system failures due to software faults do not guarantee total elimination of the root causes of the software problem.
A bug, after being triggered, results in a software failure (event) and exhibits as a software fault (state). All software faults that cause the inability of the software to accomplish its intended functions are noticed by the software user. Faults and bugs cause problems in the software to perform as designed. Software containing bugs could still accomplish its intended function that is not noticeable to the user. Bugs could cause failures, but could also create nuisance issues that are not affecting a certain function.
A software fault can cause system failure, which may exhibit systematic failure symptom. Software systems and hardware products also have many similarities. They both are managed throughout their design and development stages, and followed by integration and test and production. The discovery of failures and latent faults occur through rigorous analysis, test and verification process with high-levels of test or fault coverage. The high-levels of coverage of the verification process are determined by the assessment of its percentage of fault detection, or fault detection probability. While the management techniques are similar, there are also differences [5, 6].