Safety Critical Systems Assignment 4 PDF
Safety Critical Systems Assignment 4 PDF
Safety Critical Systems Assignment 4 PDF
Assignment -4
1. Please review the SWEBOK V3.0:
• Since the Lab project will start with its Requirements Analysis Phase, please review the
corresponding part of SWEBOK V3.0!
The published version of SWEBOK V3 has the following 15 knowledge areas (KAs) within the
field of software engineering and mainly used areas are:
• Software requirements
• Software design
• Software construction
• Software testing
• Software maintenance
• Software configuration management
• Software engineering management
• Software engineering process
• Software engineering models and methods
• Software quality
• Software engineering professional practice
• Software engineering economics
Software requirements
Software requirements is a field within software engineering that deals with establishing the
needs of stakeholders that are to be solved by software. The IEEE Standard Glossary of
Software Engineering Terminology defines a requirement as:
Software design-
Software design is the process by which an agent creates a specification of a software artifact,
intended to accomplish goals, using a set of primitive components and subject to constraints.
Software design may refer to either "all the activity involved in conceptualizing, framing,
implementing, commissioning, and ultimately modifying complex systems" or "the activity
following requirements specification and before programming, as a stylized software engineering
process”. Software design usually involves problem solving and planning a software solution.
This includes both a low-level component and algorithm design and a high-
level, architecture design.
Software construction-
Software Testing-
Software testing involves the execution of a software component or system component to
evaluate one or more properties of interest. In general, these properties indicate the extent to
which the component or system under test:
Software maintenance-
Software configuration management (SCM or S/W CM) is the task of tracking and controlling
changes in the software, part of the larger cross-disciplinary field of configuration management.
SCM practices include revision control and the establishment of baselines. If something goes
wrong, SCM can determine what was changed and who changed it. If a configuration is working
well, SCM can determine how to replicate it across many hosts. The acronym "SCM" is also
expanded as source configuration management process and software change and configuration
management. However, "configuration" is generally understood to cover changes typically made
by a system administrator.
Software Engineering Management
Most modern development processes can be vaguely described as agile. Other methodologies
include waterfall, prototyping, iterative and incremental development, spiral development, rapid
application development, and extreme programming.
Some people consider a life-cycle "model" a more general term for a category of methodologies
and a software development "process" a more specific term to refer to a specific process chosen
by a specific organization. For example, there are many specific software development
processes that fit the spiral life-cycle model. The field is often considered a subset of the systems
development life cycle.
"the systematic application of scientific and technological knowledge, methods, and experience
to the design, implementation, testing, and documentation of software"—The Bureau of Labor
Statistics—IEEE Systems and software engineering
Software quality
In the context of software engineering, software quality refers to two related but distinct notions:
Software functional quality reflects how well it complies with or conforms to a given design,
based on functional requirements or specifications. That attribute can also be described as the
fitness for purpose of a piece of software or how it compares to competitors in the marketplace
as a worthwhile product. It is the degree to which the correct software was produced.
Software structural quality refers to how it meets non-functional requirements that support the
delivery of the functional requirements, such as robustness or maintainability. It has a lot more to
do with the degree to which the software works as needed.
Software engineering economics had the microeconomics branch of economics deals more with
the types of decisions we need to make as software engineers or managers. Clearly, we deal
with limited resources. There is never enough time or money to cover all the good features we
would like to put into our software products. And even in these days of cheap hardware and
virtual memory, our more significant software products must always operate within a world of
limited computer power and main memory.
The objective of this phase is to define in more detail the system inputs, processes, outputs and
interfaces. At the end of this phase the system’s processes will be defined at the functional level,
meaning the functions to be performed will be known, but not necessarily how they will be
performed. Unless specifically constrained by the Project Charter, Requirements
Analysis should not consider the computer programs, files and data streams.
Requirements Analysis will identify and consider the risks related to how the technology will be
integrated into the standard operating procedures. Requirements Analysis will collect the
functional and system requirements of the business process, the user requirements and the
operational requirements (e.g., when operational what is necessary to keep the system up and
running)
Entry Criteria
In order for Requirements Analysis to begin, there must be an approved Project Charter. The
scope of the project will be understood and stated in the Project Charter. The roles and
responsibilities for the various activities in the Development Life cycle will be known.
Roles & Responsibilities
Project Manager: The project manager is accountable for the success of this phase. The
primary responsibility of the Project Manager during Requirements Analysis is to ensure the
Business Analyst(s) has access to the proper: Subject Matter Experts, Business Process
documentation, existing technology and potential technological solutions as well as current and
desired artifacts. A major impediment to successful requirements analysis is lack of exposure to
any of the previously listed items
Business Analyst – The BA must first develop a plan for how the requirements analysis activity
will be accomplished. The BA must then document the business process descriptions and
collect the requirements of the system from the Subject Matter Experts (SME’s) in a manner
which allows traceability to documents generated in previous activities and creates a framework
for future activities. All identified requirements should fall within the constraints of the project
scope and align with the customer’s statement of needs. The BA will generate a requirements
traceability matrix which becomes the basis for the Design activity.
The BA constructs a logical model that describes the data and processes needed to support the
requested functionality. Processes are identified along with any of the associated data they use
or create. The interactions of dependent processes is also defined.
Because of the variability in scope of the projects intended to fall within the confines of this life
cycle, it is expected that the BA will need a flexible set of tools to properly elicit and document the
business requirements. The BA will work closely with the SME’s to ensure a logical model
showing processes, data structures and business activities in an accurate, consistent and
complete manner.
The BA must also consider the current technical architecture, application software and data that
is used to support the business function to guarantee that no necessary functionality has been
overlooked. The BA will also be aware of considerations surrounding persons with disabilities
and any other legal considerations. Some consideration must also be paid to capacity and
growth associated with the project.
Subject Matter Expert – The Subject Matter Expert understands the current business processes
and any new requirements that are to be satisfied by the project. They must work closely with
the BA to transfer both stated and tacit knowledge for inclusion in the Functional Requirements
Documents
Designer – The Designer receives the Artifacts produced in the Requirements Analysis phase.
Because of the variability in scope of the projects intended to fall within the confines of this life
cycle, it is expected that the Designers will coordinate with the BA early on to ensure there is an
agreed upon set of artifacts delivered.
Testing Lead – The Testing Lead is involved during this activity to ensure that the requirements
identified by the BA and accepted by the customer are measurable and that IT has the resources
to complete adequate testing. Having the Testing Lead involved at this step allows for proper
scheduling and preparation for the various stages of testing that occur during the SDLC.
Artifacts
Functional Requirements Document.dotx (FRD): This is a document that defines in more detail
the system inputs, processes, outputs and interfaces. Such detail can be provided in various
formats. Usually no individual technique or model is sufficient to express the requirements of a
nontrivial system. Different types of projects and different varieties of customers will find success
using different techniques for collecting and representing the functional requirements. Some of
the optional techniques for the expression of functional requirements which could define the
contents of the FRD are shown in the italicized list below. Note that all of the techniques should
be briefly considered at the beginning of the Requirements Analysis and appropriate ones should
be determined based on type of project and customer. The FRD should ultimately contain a
Requirements Traceability Matrix which will be uniformly adopted as the main component of all
FRDs. Note that none of the optional techniques listed are technology dependent nor do they
dictate specifics to the Designers of HOW process work and accomplish the goals of the system.
Answer - In safety circles, the draft standard IEC 1508, published in 1995 by the International
Electrotechnical Commission, received wide publicity and has been hugely influential. The recent
publication of its successor, IEC 61508 [IEC 1998], has raised considerable interest, for the principles
embodied in it are recognised as fundamental to modern safety management.
The standard gives guidance on good practice. It offers recommendations but does not absolve its
users of responsibility for safety. Recognising that safety cannot be based on retrospective proof but
must be demonstrated in advance, and that there can never be perfect safety (zero risk), the
recommendations are not restricted to technical affairs but include the planning, documentation
and assessment of all activities. Thus, IEC 61508 is not a system development standard but a
standard for the management of safety throughout the entire life of a system, from conception to
decommissioning. It brings safety management to system management and, in respect of the
development of safety-related systems, it brings safety engineering to software engineering. It is a
'generic' standard, intended to be used as the basis for writing more specific (e.g. sector-specific and
application-specific) standards. Where these do not exist, it is also intended to be used directly. In
this author's view, it is preferable to use the standard in the former mode, with a few experts
producing a shorter document specifically interpreted to a given industry sector or application. To
use it directly will require considerable understanding, planning, directing and monitoring by
management, because of the current lack of understanding of the standard and of safety
engineering
OBJECTIVES OF THE STANDARD IEC 61508 is a basic safety publication of the International
Electrotechnical Commission (IEC). As such, it is an “umbrella” document covering multiple
industries and applications. A primary objective of the standard is to help individual industries
develop supplemental standards, tailored specifically to those industries based on the original 61508
standard. A secondary goal of the standard is to enable the development of E/E/PE safety-related
systems where specific application sector standards do not already exist. Several such industry
specific standards have now been developed with more on the way. IEC 61511 has been written for
the process industries. IEC 62061 has been written to address machinery safety. IEC 61513 has been
written for the nuclear industry. All of these standards build directly on IEC 61508 and reference it
accordingly.
The development of software for safety-critical systems is guided by standards. For software where
it is not possible to quantify the associated risks, current standards in the aerospace, rail and
defence sectors identify design and safety processes for different Safety Integrity levels (SILs) or
Development Assurance Levels (DALs). From the SIL/DAL assigned to a software function, guidance
on the development process, use of tools and techniques can be found accordingly from standards.
Software is shown to be fit for use primarily by appeal to conforming to the standards, supported
with appropriate evidence. The assumption is that software developed against the process
requirements of higher SILs/DALs will be less prone to critical failures and thus have a lower impact
on the overall system safety. UK Defence Standard 00-56 defines the SIL as “an indicator of the
required level of protection against systematic failure” [26]. A number of standards (e.g., UK Defence
Standard 00-56 Issue 2, IEC 61508 [25], Australian Defence Standard 5679 [24], US Military Standard
MIL-STD-882C [55], UK Automotive Standard MISRA [56]) use the SIL concept to provide guidance on
the design and development of safety-critical systems, 37 although each standard interprets the
concept differently. The SIL approaches defined in Defence Standard 00-56 and IEC 61508 are
discussed in more detail in this section. In IEC 61508, safety integrity requirements for safety
functions are set directly from target failure rates. The target failure rates are determined from the
necessary risk reduction which is calculated from the actual risk of the Equipment Under Control
(EUC), assuming that no safety measures are taken, and the tolerable level of risk. The target failure
rates are measured in two different ways: as dangerous failures per year, for continuous control
systems; and as probability of failure to perform design function on demand, for protection systems
SILs are allocated to the safety functions in the designated computer system, taking into account
other technological systems, external risk reduction facilities and the independence of these
systems. The resultant SILs are used to determine appropriate processes to be applied in software
development. Part 3 of the standard refers specifically to the software requirements for electrical /
electronic / programmable electronic safety-related systems. Based upon the SIL of the software
component, various techniques and measures are highly recommended (HR), recommended (R),
have no recommendation (-) or are not recommended (NR). For example, formal proof is a highly
recommended technique for SIL4 software verification, and there is no recommendation for its use
on SIL1 software verification. As the guidelines for SILs are defined in terms of the amount of risk
reduction achieved by adding protection mechanisms, they fail to take account of the possibility that
such additions may result in new failure modes and new risks
b.)The process model for IEC 61508
The name comes from the basic shape of the model. The development phases start on the left
side going down, from gathering and refining the requirements to implementation of the design.
The test effort goes along the right side from the bottom up, starting with unit testing and
continuing until validation testing is correct. The V-model twists the traditional waterfall model a
bit by linking the test plans with the respective development phase. For example, after the
requirements are created, reviewed, and approved, a validation test plan can be developed. This
can also be a great tool to help refine the requirements so they are clear, understandable, and
testable. The Integration test plan is linked closely with the Architecture Design phase, where all
the interfaces are defined. The integration test plan focuses on ‘big block’ functions and
collections of functionality. The lowest test level, unit testing, is linked to the implementation
phase. Unit testing looks at the smallest functional levels of implementation to make sure they
work correctly.