Requirements and Safety Engineering

Expert's List

  • Software engineering is the study of processes, tools and activities involved in producing software of high quality that suits customer needs. Many defects, accidents and product failures can be attributed to poor software engineering practices.
  • Requirements engineering and safety engineering are subtopics of software engineering. Requirements engineering is concerned with overcoming the cliff between non-technically oriented customers, who are typically interested in having their specific needs met, and the development team, which typically thinks and works technologically. Requirements engineering elicits customer requirements and is the first step in developing successful products.
  • Safety engineering is the study of safety properties of safety-critical systems, such as aircraft, nuclear plants or health care IT systems. Since these systems operate in the real world, particular care must be placed on ensuring that no people get hurt or killed through action or inaction of a system. Doing so requires dedicated analysis and engineering techniques that start at the requirements level, must be implemented in software, and achieved by the system's hardware.
  • In requirements engineering, it is a significant advantage to use formal and semi-formal languages, which make use of symbols to specify what a system is supposed to do for a customer. Graphical languages can be used with varying degrees of formality: informal to communicate with customers, users and managers; semi-formal to talk to colleagues, collaborators and developers; and strictly formal, to mathematically prove correctness of systems.