The criticality of the Software Requirements Specifications (SRS) phase is widely recognised for the success of the whole software project and the attention played on it by the software developers is more and more significant. The software science developed in the past methods and techniques for producing quality SRS: structured languages, controlled languages, formal languages.
Nevertheless the SRS phase is, especially in the Small and Medium Enterprises (SME) community, still one of the weaker steps of the whole software process. One of the principal reason of this situation is that SME, stressed by the time-to-market, do not have enough resources for establishing rigorous methods for the SRS. Furthermore such rigorous methods, should be shared among all the parties involved in a software project, customer included, asking for a further effort in terms of resources to be expended. It is not surprising then that the Natural Language (NL) SRS are, in spite of their inherent inaccuracies, still the most used technique for SRS.
With the objective of transferring methodologies and tools for improving the software development process of SMEs, the IEI/CNR started a new project, funded by CNR, aiming to realise an automatic tool supporting the analysis and quality evaluation of NL SRS. The adopted approach has been, first to define a Quality Model for SRS, then to verify this Model on real cases of SRS in order to be sure that the Quality Model provides a real contribution for solving some NLSRS related problems for SMEs. Finally we have developed an automatic tool for the verification of the requirements to guarantee their conformance to the Quality Model itself. The process for evaluating SRS by using the defined Quality Model and the corresponding Tool is shown in the figure below:
The Quality Model against which to evaluate the quality of NLSRS has been defined so that the Quality Properties included in it can be really evaluated by means of Metrics automatically and numerically computable. The Quality Model inovolves the following components:
Definitions of Terms:
- Implicit Subjects Sentences: A sentence is an implicit subject sentence if its subject contains a demonstrative adjective, is expressed by means of pronouns, is specified by a preposition as: above, below, or by an adjective as such: previous, next, following, last, first, ...
- Optional Sentences: A sentence is optional if it contains an option (e.g. it contains words as: possibly, eventually, if appropriate, if needed .....
- Subjective Sentences: A sentence is subjective if it refers to personal opinion or feeling
- Vague Sentences: A sentence is vague if it contains a vague adjective or derived adverb
- Weak Sentences: A sentence is weak if it contains a weak verb (Weak verbs are: can / could, may)
- Underspecified sentences: A sentence is underspecified if its subject contains a word identifying a class of objects without a modifier specifying an instance of such class.
- Multiple sentences: A Sentence is multiple if it has more than one subject or more than one main verb or more than one direct or indirect complement that specifies its subject
The above Properties, although not covering all the possible quality properties of NLSRS, are sufficiently specific to compare and verify the quality of SRS Documents. The above Metrics represent tangible aspects of SRS that can be automatically calculated and they can provide information on the related Quality Property of the Model.
In order to verify if the defined Quality Model provides significant and useful results on real cases, it has been applied on two different sets of documents of real industrial requirements specifications. The first is a set of Telecommunication Software Requirements Specification documents, the second is a case of Safety Critical Space Software Requirements Specification documents. In both cases the organizations that produced these SRS use standards for writing them, perform revision sessions and produce the related reports. The results achieved, on a set of over 800 requirements, are shown below:
The results obtained are encouraging because many possible problems, then risk identifications, have been detected and pointed out, and that has been appreciate by the firms who provided the SRS.
Fabrizio Fabbrini obtained his degree in Computer Science from the University of Pisa, Italy, in 1974. Since 1975 he has served as a scientific researcher at the Institute for Information Processing (IEI) of the Italian National Research Council (CNR), where now he is Senior Researcher. Fabrizio Fabbrini's present activity is focused on Software Quality, and more precisely on the development of methodologies and standards for the assessment and the evaluation of software products and processes, with particular attention to Software Engineering Standards and Software Certification. Software Process Assessment & Improvement, Software Verification & Validation, Computer Security & Data Privacy represent the main fields of application of such research activities.
Mario Fusani obtained his degree in Electrical engineering from the University of Pisa, Italy, in 1971. Since 1973 he has served as a scientific researcher at the Institute for Information Processing (IEI) of the National Research Council (CNR), where now he is Senior Research. His present activity is focused on Software Quality, including the development of methodologies and standards for the assessment and the evaluation of software products and processes.
Stefania Gnesi graduated cum laude in Computer Science at the University of Pisa, Italy. Since 1984 she has been a researcher in the Programming Languages and Operating Systems group of the Italian National Research Council (CNR), Pisa, Italy. Her current research interests include methods and tools for the high-level specification and formal verification of concurrent systems, and applications of temporal logic.
Giuseppe Lami since 1994, when he obtained the degree in Computer Science from the University of Pisa, Italy, focused his interests on Software Engineering and Software Quality issues. His current research activity at the Institute for Information Processing (IEI) of the National Research Council (CNR) includes methods and tools for software testing and requirements engineering.