Skip to main content

Security, Safety and Mission Critical Software Systems

There are 3 types of software control systems based on the nature of their desired functionality and the environment being operating in:
  1. Security Critical Systems: This category consists of software responsible for ensuring the security of a particular system or its user and thus protecting the privacy of an individual from objects both within the same environment and from outside the environment being operated in. Examples of such systems consists of banks, personal laptops and computers. 
    Security Critical System: Banking Systems

  2. Safety Critical Systems: These are the software responsible for operating systems involving a human life. These software are responsible for operating system providing the desired output without posing a threat to a human life involved in the operation. Examples of these systems consists of air crafts flying on auto-pilot, radiation machines such as Therac-25 etc.
    Safety Critical System: Therac-25 Radiation Machine
    There are 2 possible methods to achieve the desired level of satisfaction in terms of the safety level achieved in such systems:
    • Exhaustive Testing: This method is impracticable as testing of software is dependent on the testing environment and test data. Once the environment changes the testing process has to be started from the beginning identifying system faults according to the new environment. This type of testing is costly in terms of effort required, time required and the budget allocated for software development and complete testing, thus is not practiced in software industry.
    • Application of Defined Safety Standards in each phase of Software Development Life Cycle (SDLC): The method is redundant as it required mapping each SDLC phase task onto the standards defined by the safety insurance department such as the aviation authority defining DO-178B Software Consideration in Airborne Systems and Equipment Certification. This allows the software engineers to avoid exhaustive testing of the developed safety critical software system.Once these standards are applied on the software during SDLC phases, the software is certified by the organization defining the standards for that particular safety critical system, declaring the software to be safety critical. Even after such rigorous phases of SDLC the software still has a probability of 1 for failure and the example can be seen in plane crash after disappearance of Boing MH-370 aircraft.
      Safety Critical Failure Example: Boing Aircraft MH-370
  3. Mission Critical Systems: The systems lying in this category are responsible for providing the user with the desired output only. Failure to produce the desired output leads to the failure of mission critical software system. Examples of such systems consists of missiles, and drones.
    Mission Critical Software System: Drone Systems

Comments

Popular posts from this blog

Quality Practices in Agile Approaches

Agile Approaches Agile is an umbrella consisting of different methods adopted by the practitioners depending upon the circumstances. In the recent years  Agile has been gaining popularity among software practitioners due to its ability in assisting the development team to deliver the software product in a short amount of time.  Original Agile Approaches Based on the circumstances under which the agile methodologies have been used can be classified into the following 3 categories: Classification of Agile Approaches Agile Methodologies consist of the  original agile methods Hybrid Agile Methodologies consist of a combination of several original agile methodologies e.g. Industrial Extreme Programming merged with practices of Rational Unified Process Miscellaneous category consists of methodologies adopting only certain aspects of the original agile methodologies Extreme Programming, Test Driven/Test First Development, and SCRUM are among the most popular agile met

How traceability of non-functional requirements is managed throughout the software development process?

1. Requirements Traceability: Requirements traceability is the process of describing and keeping track of a set of requirements throughout the system’s lifecycle. The process assists in managing changing requirements of a particular software product. Requirements traceability of is two types, forward traceability where a particular requirement involved during the design and implementation phases of the software system, and backward requirement traceability where a particular requirement is being traced back to its source. 2. Proposed Solutions for the Traceability of Non - Functional Requirements : The author J. Merilinna [8], proposed a framework supported by a tool to trace the non-functional requirements in both forward and backward direction. The proposed method is based on the context of DSM (Domain Specific Modeling).  The NFR+1 framework involved are used for the elicitation, definition and redefinition of the system’s non-functional requirements. The proposed

Software Architecture Views and Structures

Description of Views: In the year 1995 Kruchten presented his 4+1 architectural view model consisting of the following five types of views: Logical Development Process Physical Scenario Later with further development and research in the domain of architectural view following new views were developed to represent their respective structures: Views Sub-View of Description Logical None Highlights the functionalities provided by the system to the end-users. Unified Modeling Language (UML) diagrams such as the Class diagram, Domain diagram, Use Case diagram, State diagrams and Activity diagrams can be used to represent the logical view of the architecture. Development None It is also known as an implementation view. It is mainly concerned with the software project management. It represents the system with the programmer’s perspective. Process None It deals with the representation of