Tailoring effective requirement's specification for ingenuity in Software Development Life Cycle

Software Requirements Engineering (SRE) process define software manuscripts with sustaining Software Requirement Specification (SRS) and its activities. SRE comprises many tasks requirement analysis, elicitation, documentation, conciliation and validation. Natural language is most popular and commonly used to form the SRS document. However, natural language has its own limitations wrt quality approach for SRS. The constraints include incomplete, incorrect, ambiguous, and inconsistency. In software engineering, most applications are object-oriented. So requirements are unlike problem domain need to be developed. So software documentation is completed in such a way that, all authorized users like clients, analysts, managers, and developers can understand it. These are the basis for success of any planned project. Most of the work is still dependent on intensive human (domain expert) work. consequences of the project success still depend on timeliness with tending errors. The fundamental quality intended for each activity is specified during the software development process. This paper concludes critically with best practices in writing SRS. This approach helps to mitigate SRS limitation up to some extent. An initial review highlights capable results for the proposed practices.


Introduction
A Software document is a representation of information designed for developing a software product by the analyst. This document explains all the requirements related to the business process, user experience, product development at different phases...etc… Such documents are persistent, and suitable in the system development life cycle for archival uses, or it may be ephemeral, lasting only for viewings.
Requirements Specification (SRS) is a detailed description of a proposed software system. This is widely acknowledged and used by most of the software developers, irrespective whether it's a service, product or system, even any distinct requirements also integrated. This document consists of all essential requirements required within the Software Development Process (SDP) or Software Development Life Cycle (SDLC). To develop a proposed system one should have clear understandings of the system. This can be achieved by gathering all necessary requirement with the stakeholders recurrently. The SRS document is flourished between stakeholder (users/clients) and company contractors based on the mutual contract. This document is prepared by System Analysts and delineates how software is developed,. What are the main business objectives and functionality of the proposed product, and how core functions are performed. Structured software documentation helps to create metrics in which capabilities are identified with their results for improvement. Uniform software development processes are necessary for training, management, review, and tools supporting.

Literature Review
A software development process usually consists of multiple phases as a given System development life cycle. In which, from requirement analysis to implementation most of the applications face similar problem domains with common similarities. In software engineering, most applications are object-oriented. So requirements are unlike problem domain need to be developed. To check similarities in requirement specification both SRS and MIS are chosen w.r.t. scaling small and medium companies. Eko Handoyo, R Rizal Isnantoa, Mikhail Anachiva Sonda [1] explains "how to generate common requirements from the active business process. So it can minimize errors and helps users to understand the overall system". Valentina Lenarduzzi [2] research finds there is a lot of knowledge while developing Artificial Intelligence (AI) applications. Which are often poorly tested with low quality. This is due to inappropriate documentation and adaptation with indecent practice in development process. They also highlight "the most common quality issues that developers face during the development and why the training of developers in AI lacks". Vineet Dubey, Vandana Pandey, and Dhirendra Pandey [3] explains how "effectiveness of expressing requirements specifications can be greatly improved with simple and readily existing methods. Project managers ensure standard requirements and design the outset the project. They also suggested the technical environment and intended apply of the SRS are emphasized to support a straightforward simple sentence structures to specify all requirement. It is necessary for SRS to communicate effectively with the user. H. A. Soares and R. S. Moura [4] describes requirements engineering is the process to define, and maintain needs that intend to support SRS in formation and maintenances. Documents must be user-friendly, easy to understand by users. This is the main fundamental quality to make success for most of the projects. Work eyes on Natural Language Processing techniques with ERS-EDITOR tool to automate process steps for promising results.
[5] research work describe "model base test approach accepts test-cases extracted from the requirements (RSL) specifications. Automatically it is adapted to test automation framework. Which is to be executed against web application under some test". Their approach encourage practising specifying requirements as well as tests during planning stages and keep specifications aligned with one another. Sandeep Kulkarni and Vipan Kumari [6] assume that "human intelligence can be represented in symbolic structure with functions. Debate is still open to discuss, but AI developers and researchers merely wait to create imaginary computer that might model all of human intelligence".
A. Rashwan,O. Ormandjieva and R. Witte [7], study limns "Non-Functional Requirements have major impact on overall time and cost of the process in system development. To improve system development an automated test for SRS is conducted with various Non-Functional Requirements. Some cost cutting concern also highlighted in their research work". Results obtained from ontology and Vector Machine (SVM) classifier demonstrate the uses. M. Riaz,J. King,J. Slankas,L. Williams,and N. Carolina [8], [9], [10] and [11] study reveals "There are many techniques where non-functional requirements (NFR) are captured from all requirement arti_facts. These techniques used by many researchers and authors. To capture NFR multiple dataset and machine learning techniques are used, such as PROMISE-Datasets, JohnSlanks-Dataset and AlessoFerrari-Dataset which are available publicly. Brooks, Frederick P. Jr.
[12], [13], "Developments in technology or management is multidimensional. Every decade, there are improvements in the order of magnitude that promised increase in productivity with simplicity and reliability". Department of defense, USA [14] documents describes "conventionality in standards that were followed during SRS writing process. Designing SRS with good fonts, style, color with highlighting make document significantly special". Alberto Rodrigues da Silva. [15], work result proposes "a generic approach to validate automatically for requirement specification by describing toolset (i.e., SpecQuA tool) with utility and practicability. Their approach help to mitigate some limitation particularly w.r.t ambiguous, inconsistency, and incompleteness".
Software engineering comprises many tasks requirement analysis, elicitation, documentation, conciliation, and validation. Natural language is most popular and commonly used to form the SRS document. However, natural language has its own limitations w.r.t quality approach for requirement specification. The constraints include incomplete, incorrect, ambiguous, and inconsistency.

Methods and Tools
Requirements Engineering is the practice to define software manuscripts with sustaining requirement specification and its activities. SRS documentation is prepared in such a way that, all users like clients, analysts, managers, and developers can understand it. It is the base to success for most projects. Software Development Life Cycle includes 7 phases they are shown in above " Fig-1" The fundamental quality is intended to each activity specified during the software development process. IEEE sets some standards and provides standard documentation methodology for software development process [16].
As an example, we consider AltexSoft Inc company for how they do documentation process. AltexSoft Inc, is a Technology and Solution Consulting company that offers variety of IT services. Stages in project documentation with their purpose are shown below. Below " Fig-3" is the documentation process used in AltexSoft software company

Forbes Technology Council released insights reports [17] for tech & business on
March 2020. Insights report revealed why software projects are derailed. Common factors that cause project failure includes not understanding business needs, requirement priority, lack of clarity, unclear requirements, failing in coordination and planning, undefined roles, over customization…etc… According to insight published by Standish Group's Annual CHAOS report [18], 66% IT projects ends with failure. Out of three only one project is succeeded. Other two are prone to risk of failure. This is given in below table. When we analyze this table large projects prone to more challenge or failure. Whereas one in every tenth projects fails. One of the main reason for such project failure is lack of quality requirement specification. UK govt projects like e-borders system (200 million pound), BBC video archive project (100 million pounds), Back office project for Ministry of Justice (56 million pounds) are some best examples for project failure. millions of employs from UK govt unable to launched the said bespoke software. Now we must think about the chances? we have with smaller business.

Suggested criteria for developing high-quality SRS
1. Ensure reliability i.e., requirement must satisfy output with either pass/ fail.
2. Avoid Ambiguity. Where each and every specification is clearly defined with single meaning even at multiple level. different meaning is strictly avoided.
3. All types of requirements should be complete. It should not possess any type of errors. But errors are unavoidable. In case of an error a respective message in displayed.
4. There should be no conflicts between requirements event at distinct places. Maintain consistent makes testing and debugging easier. 5. Requirements ID helps uniquely identify particular module. It is the base for test case.
6. Ranking criteria helps to address problem with its importance and stability 7. Verification of requirements with required results for intended system 8. SRS must be dynamic with index and cross-reference and should not impact on dependents.
9. Document with unique identification is traceable with bidirectional reference.
10. Pre-conditions must be verified clearly. 11. Design independence is nothing but providing alternate choice without implementation details.
12. Abstraction is rightly explained with less details 13. Shunning notations and symbols makes user friendly system even for non computer experts.
14. Freeze document means, it remain intact until further action/review.

Scrapping irrelevant requirements not only reduces workload, it stops confusion.
16. Ensure software security. Any kind of attack and misuse must be prevented 17. Assessing performance w.r.t key elements like quality, speed, cost, flexibility...etc 18. Feasibility test checks whether new system is practically adoptable and fulfil specific condition within the said time frame.
19. As per set condition, document is tested with User Acceptance Testing (UAT). New system is implemented only UAT and client approval. 20. In validation. the whole product with code is examined by testers to ensure legality of new products.

Proposed solution for ranking requirements
There are number of choices (n) out of which only one (r) should be choose to assign ranking for requirement. This can be represented mathematically using combination formula when order doesn't matter.
Combination Formula : C (n, r) = nCr = nCr =C (n¦r) = n!/r!(n-r)! Where n  is a number of choices which has 9 possibilities and only one rank assigned at a time i.e., r=1. Each requirement is assigned to one rank at a time. Analyst must ensure that each requirement should be complete, non-ambiguous and maintain consistency while assigning rank. The structure format for ranking looks like below.
The structure of matrix will be [■(Rank_1&Rank_2&Rank_3@Rank_4&Rank_5&Rank_6@Rank_7&Ranl_8&Rank_9)] According to the output we needed from the specific requirement, the intensity of the ranking is decided and assigned by the analyst or developer. Assigning ranking depends on knowledge of the analyst, developer skill and nature of the project. This ranking approach reduces complexity in the software development process. There is some consequence when requirements address complex problems, then it becomes a difficult task to a design document that ease rather than inhibit understandings.

Conclusion and Future scope
It is hard to assume, but true that the writing SRS process is rigid and impossible for most clients to understand what are the exact business requirements?. It is unfeasible, even for software engineers who are working in the company to specify a complete, precise, and correct requirement specification for the proposed system. Since IT projects are complex and uncertain inherently. This is okay, modern tools help to mitigate risks that are prone to failure. The best practical approaches are discussed above. Keeping time constraint requirements are planned in advance and executed efficiently. Our effective analyses claim that the ranking approach for requirement specification and User Acceptance Testing (UAT) Since, both factors play an important role in project success.
As Data Science is rising rapidly. Artificial Intelligence is still in development state. Both technology are capable to reinvent the whole SRS writing process. Intelligent system may reduce skilled human intensive work. In this transformation stage, our upcoming study will be based on these technologies. How best practices are achievable through AI and data science.