Deriving Natural Language Specification Templates from requirement patterns

Bachelorarbeit in der Abteilung Softwaretechnik


Development of safety critical systems, such as cars, must comply to industry standards such as the ISO 26262. The company BTC Embedded Systems has recently released the BTC EmbeddedSpecifier, which is a software that assists in developing such systems. The main focus of the BTC EmbeddedSpecifier lies within the formalization of natural language specification. With the BTC EmbeddedSpecifier the user can achieve formal notation by means of a semiformal intermediate step. For this intermediate step each natural language specification requirement must be mapped to a particular requirement pattern. These requirement patterns' main components are Büchi automata and they are similar to those proposed by Gruhn and Laue [1]. This semiformal notation must be linked to an explicit architecture in order to become formal, i.e., unambiguous. While the BTC EmbeddedSpecifier aims to abstract the formalization process completely, the BTC EmbeddedSpecifier in its current version requires a lot of user interaction to achieve formal notation. One task currently requiring knowledge of formal methods is the mapping of the natural language specification to a pattern, as the user must identify which patterns the natural language specification complies to by hand.


This thesis aims to provide a method of deriving natural language specification templates analogical to the requirements specification templates introduced by Pohl and Rupp [2]. An implementation will be given in form of a Java Form prototype. This prototype will help identify an appropriate pattern by displaying the natural language specification template for each pattern. The user can select the template which suits his requirement best and enter his natural language specification into the template. As the requirement is compliant to the template, is it implicitly compliant to the pattern and its variables such as time units, input and output signals can automatically be mapped to the pattern to attain a semiformal notation. Further reseach could use these templates to automatically detect which patterns the natural language specification can comply to in order to reach a higher amount of automization when formalizing requirements with the BTC EmbeddedSpecifier.

[1] V. Gruhn , R. Laue , "Patterns for Timed Property Specifications", Leipzig, Germany, University of Leipzig, 2005.
[2] K. Pohl , C. Rupp , "Requirements Engineering Fundamentals: A Study Guide for the Certified Professional for Requirements Engineering Exam - Foundation Level - IREB Compliant", 1st ed. Santa Barbara, USA , Rocky Nook, 2011.

Prof. Dr. Andreas Winter ()
M.Sc. Jan Jelschen ()

Related Projects
Requirements and Specification
Requirements are important while the complete lifecycle of a software and of a project. In the beginning, requirements help to concretise the goals of a software, which have to be fulfilled by design and implementation, and validated by test cases. This research area targets approaches, techniques, and tools to create, improve, analyze, check, and (re)use requirements and other specifications.

(Changed: 2021-04-30)