Automated software requirements analysis
Definition: Static Software Requirements Analysis is the automated testing of software requirements for quality and measurement.

Background

Software requirements analysis (or backlog analysis) is the set of techniques for deriving insight from written software requirements, or user stories. User stories, are written statements describing the functional need and purpose of software to be developed; what brings value to users. The authors of user stories will typically write them from the perspective of a business user. It is then the job of the developer to read the requirements, and design and code to meet these needs. The written requirements or user stories are therefore a means of communication. In agile teams the user story is a placeholder for a conversation, nevertheless it needs to convey sufficient meaning that the reader can adequately understand, without ambiguity, what functionality is needed. If poor choices are made in the wording of the stories, then communication can become mis-communication. Poor wording leads to misunderstandings that lead to design and coding mistakes. These mistakes lead to rework and/or bugs. Bugs that are not found until later in the development cycle can cause a lot of extra work and therefore are very costly.

Static Requirements Analyser

ScopeMaster® is a text analyser tool that has been designed to test written requirements for quality and insight. It may sound strange that a machine can test requirements, but it can. (That is precisely what ScopeMaster® has been designed to do.)

Back in the 1990’s Nasa created the ARM tool that was recreated, for basic requirements text testing. Nowadays we have more computing power available and are able to perform more advanced testing of requirements. IBM has recently 2018 released the IBM Requirements Quality Assistant for Doors This is a trainable extension to their requirements management tool that tests for common language errors in written requirements. ScopeMaster® goes far beyond these early tools and combines Natural Language Processing (a detailed analysis of the wording and sentence structure) together with 15 other levels of analysis, in order to give insight into the quality and size of written requirements.

Insight from Requirements Analysis

The insight achievable by analysing Individual Requirements includes:

  • Identify types of words (nouns, verbs, adjectives)
  • Links between words (dependency chain)
  • Intent from a data manipulation perspective.
  • Ambiguity caused by failure to use language appropriate to software construction.
  • Size Measurement by detecting the data movement intent
  • Patterns of usage of words
  • use and misuse of word types

Insight achievable by analysing Sets of Requirements

  • Consistency in naming of nouns
  • Duplication of intent
  • Potential missing requirements
  • Data dictionary

Static Requirements Analysis and Static Code Analysis

More and more developers include static code analysis as a technique for testing code early. This testing becomes part of the daily activity of preparing software for deployment. Static code analysis helps to identify potential causes of problems before they are exposed to anyone else (testers, users) so that they can be resolved quickly and efficiently. The same is true of static requirements analysis, it is a very useful technique to find and fix problems before they are exposed to others in the team.

Testing Requirements for Quality

Here at Scopemaster we have examined the guidance from the IIBA, Business Analysts Body of Knowledge, IEEE standards, INCOSE, Requirements Engineeering Experts and Agile experts for the categories and explanations of requirements quality attributes. What does a good software requirement look like? We have found value and wisdom in all the sources.

Continuous Integration

Most static code analysis becomes part of a continuous build process. This idea can also apply to requirements except that every time a requirements statement changes, it should be re-checked for being unambiguous and (compared with other user stories) for consistency, duplication and omissions across the set of requirements.

Visual Insight

One of the most powerful features of automated requirements analysis is the dynamic auto-creation of use case model diagrams that are a visual means of interpreting the meaning of your set of user stories.

Requirements analysis - automated, schematic diagram
Test your software requirements

Requirements Analysis Tool

ScopeMaster is the only tool available for product owner, business analysts and solution designers that does all these things.  In fact our closest competitor does only two of the 23+ valuable analysis activiteis that ScopeMaster does.

  1. Functional intent detection (using NLP)
  2. Object detection
  3. User detection
  4. Object consistency analysis
  5. User consistency analysis
  6. CRUD analysis
  7. Missing requirements detection
  8. Duplicate requirements detection
  9. Use case modelling
  10. Class diagram autogeneration
  11. Requirements quality testing
  12. Requirements set quality testing
  13. Requirements quality grading
  14. Requirements quality tracking (over time).
  15. Requirements quality auditing
  16. COSMIC Functional sizing estimation automated
  17. IFPUG functional size estimation partly automated
  18. Simple function Point size estimation partly automated
  19. Suggested sequence diagram auto generation
  20. Test steps auto-generation
  21. Tests flow auto-generation
  22. Pseudo test scripts autogenerated.
  23. Non-functional requirement detection.