Use of finite state automaton as an attempt to simplify, automate and improve requirements engineering

  • Authors:
  • Amit Sugandhi

  • Affiliations:
  • Tata Consultancy Services Ltd., Everett, Washington

  • Venue:
  • SEPADS'10 Proceedings of the 9th WSEAS international conference on Software engineering, parallel and distributed systems
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Requirements Engineering is the phase from where a Software System begin it's life. Requirements gathered and analyzed in this phase is designed, coded, tested and finally delivered in the form of a Software. Incomplete, misinterpreted or missed requirements may cause budget over run, schedule slippage and a not so good product at the end. Thus, it is really important to derive as precise requirements as possible. The requirements are typically gathered in a face to face meeting where Analyst(s) note down the points and later transform them into written Requirements in the form of a document. Different Analysts have different styles of documenting the requirements. The document so created is passed on further to different teams, such as Software Developers, to develop the Software. Because of different knowledge level, assumptions, abbreviations, the way of interpretation; or because of any incompleteness or inconsistency, the requirements may be modeled differently than expected. This may further lead to the development of the Software with missing or misinterpreted requirements. Suggesting ways to improve this scenario is the objective and scope of this paper. The paper will first explore ways to standardize the way the document is written. The standardization will go a long way in creating, maintaining and understanding the document. Further, it will also help us to bring some Automation where a proposed Finite State Automaton will review the document and generate errors wherever it will find the document deviating from the standard way of writing the document as proposed in this paper. We will also discuss on generation of Use Cases and Classes. All these will result in putting in less effort, resources and getting a more improved output.