Proceedings of the 5 th National Conference; INDIACom-2011 Computing For Nation Development, March 10 11, 2011 Bharati Vidyapeeth‟s Institute of Computer Applications and Management, New Delhi Copy Right © INDIACom-2011 ISSN 0973-7529 ISBN 978-93-80544-00-7 Metrics for Requirements Engineering and Automated Requirements Tools Mohammad Ubaidullah Bokhari 1 and Shams Tabrez Siddiqui 2 1, 2 Department of Computer Science, AMU, Aligarh 1 mubokhari@gmail.com and 2 ksamtab@rediffmail.com ABSTRACT Software requirements are the foundations from which quality is measured. Measurement enables to improve the software process; assist in planning, tracking and controlling the software project and assess the quality of the software thus produced. Quality issues such as accuracy, security and performance are often crucial to the success of a software system. Quality should be maintained from starting phase of software development. Requirements management, play an important role in maintaining quality of software. A project can deliver the right solution on time and within budget with proper requirements management. Software quality can be maintained by checking quality attributes in requirements document. Requirements metrics such as volatility, traceability, size and completeness are used to measure requirements engineering phase of software development lifecycle. Manual measurement is expensive, time consuming and prone to error therefore automated tools should be used. Automated requirements tools are helpful in measuring requirements metrics. The aim of this paper is to study, analyze requirements metrics and automated requirements tools, which will help in choosing right metrics to measure software development based on the evaluation of Automated Requirements Tools KEYWORDS Software requirements, Software quality, Software development, Requirements management, Quality attributes, Requirements metrics, Automated Requirements Tools 1. INTRODUCTION In the last few decades, software projects have encountered major difficulties. Most software engineering projects tend to be late and over budget. Several of the causes of these failures are related to requirements engineering issues such as requirements creep, poorly documented requirements, requirements that were impossible to satisfy, and requirements that failed to meet the needs of the user. Good requirements management practices help improve customer satisfaction, lower the system development costs and increase the chance of having successful project. Requirements metrics when incorporated in requirements management, it assists in analyzing the quality of requirements and identifying the reasons for software re-engineering/failure. Requirements metrics define the output measures of the software process. Requirements engineering helps software engineers to better understand the problem they will work to solve [5]. Requirement engineering begins with inception-a task that defines the scope and nature of the problem to be solved. Its moves onward to elicitation- a task that helps the customer to define what is required, and then elaboration- where basic requirement are defined and modified. As the customer defines the problem, negotiation occurs- what are the priorities, what is essential, when it is required? Finally the problem is specified in some manner and then reviewed or validated to ensure that a stakeholder understanding of the problem and the customer‟s understanding of the problem coincides. Collecting requirements is not an easy task. Requirements engineering has critical problems which can be due to lack of stakeholder‟s involvement in the requirements process. Lack of requirements management skills also leads to bad requirements engineering. Because of the natural human tending to hide bad news, the real statistic may be even higher [17]. Unclear responsibilities and communication among stake holders can also lead to bad requirements engineering. Functional requirements or behavioral requirements define functions of the product. Functional requirements include input that the software gets and output it generates. Non-Functional requirements or non-behavioral requirements are the properties of software such as portability, reliability, reusability, testability, efficiency and modifiability [6]. Requirements management is the process of eliciting, documenting and communicating requirements. Requirements management play important role in success of software. It manages changes to requirements and maintains traceability in requirements documents. Requirements can be written using quality attributes known as software requirements specification. Success rate of product depends on process used by organization. Every company needs to assess their present approach in order to remain competent in dynamic market. Capability Maturity Model, Goal Question Metrics, BOOTSTRAP, The ISO 9000 process improvement models are used to assess process and suggest methods to improve them. Once new process are adopted their performance should be checked, therefore measurement of software is necessary. Software can be measured using process, product, resources and requirements metrics. Requirements metrics are useful in identifying risks of a project by identifying errors in requirements document. There are many metrics used for measuring the requirements. Volatility metrics checks the changes of the requirements, traceability evaluates links between requirements to requirements within a document and requirements completeness metrics checks