A cutting-edge application developed by Logapps, Cadence (formerly Machine Assisted Requirements Inspection and Evaluation – MARINE) automates the review of software requirements for quality and consistency and develops high-level software size estimates through Function Point automation. Software measurement professionals will not be replaced; some mundane tasks can be automated through artificial intelligence. Such innovations will help analysts understand requirements, identify duplication in both language and meaning, and dramatically reduce the time and effort necessary to accurately analyze projects.


The first step in most software projects is for Business Analysts to elicit requirements from stakeholders and document them within a requirements management tool. Requirements come in the form of requirement statements, user stories, use cases, and other formats. Well-written requirements specify system behavior and determine what should be implemented. Poorly written requirements often result in lower quality, ineffective design, additional rework, and unnecessary test runs. Once functional requirements have been documented, they can be sized through function point analysis. Although Cadence is not a requirement management system, it can identify duplicate, similar, and non-functional requirements, and improve requirement quality.


The capability to automate functional sizing has evolved due to changes in technology, such as Natural Language Processing (NLP) and Artificial Intelligence. In 2013, the Object Management Group (OMG) adopted the Automated Function Point (AFP) specification using the International Function Point User Group (IFPUG) counting guidelines. This adoption was met very positively by the functional sizing community. To date, automated functional sizing has been performed on developed code through static code analysis. The next breakthrough is automating Functional Size Measurement (FSM) through the evaluation of project requirement statements.


The Cadence desktop tool automates both requirements analysis and function point estimation processes with NLP and a robust rules engine. Cadence provides the Requirements Analyst with immediate feedback on the clarity of requirement statements and removes duplicate requirements. The tool assists the Cost Estimator in producing software size, in addition to cost and schedule estimates from a given set of requirements. Cadence also allows the Project Manager to summarize system capabilities and verify that business needs align with the project requirements, as well as provide rough order of magnitude (ROM) costs by the requirement to support trade-off decisions.

Cadence is built around a core NLP capability that processes each requirement. It separates the statements that make up each requirement into parts of speech that are important to the analyst: action word, action phrase, object, prepositional phrase, and word pairings. Figure 1 (below) shows the main dashboard of the Cadence application after the requirements set has been uploaded into the application.

Figure 1: Cadence Dashboard


FSM is based upon IFPUG rules and counting practices, which is now an ISO standard (ISO/IEC 20926:2009) but it remains a labor-intensive activity.

Practitioners, who are trained and frequently certified, go through artifacts such as user stories, use cases, logical data models, user guides, and design specifications to develop robust software size estimates. Subsequently, they iterate through discussions with the development organization’s engineers or project managers. FSM practitioners apply and document counting rules at the requirement level. There are different methods of FSM, some of which require less rigor, such as Fast Function Points. The challenge with manual FSM is the time involved in extracting, reviewing, and evaluating each requirement. Many project managers have at best an elementary understanding of FSM, and there is a limited supply of trained Certified Function Point Specialists (CFPS). The opportunity with FSM automation is to expand the capability to create rough order of magnitude FSM and reach a broader audience.

Cadence automation involves FSM at the proposal or requirements phase. It should be noted that within Cadence, the analyst will need to refine the FSM, but the tasks of identifying transactions and data objects are simplified. Some of the intricacies of FSM within the IFPUG context, such as identifying File Types Referenced (FTRs), Data Element Types (DETs), and Record Element Types (RETs), are currently beyond the scope of Cadence. In many cases, not enough information is available early in the life cycle to identify DETs in the requirements phase. However, fast function point counting at the proposal stage can be automated, in which case the analyst identifies data and transactional functions, and then makes complexity assumptions. A key aspect of automation is simply exporting requirements into a manageable format, which can be cumbersome. The core of the automation involves cycling through functional requirements and identifying transactions and their associated objects (data) through keyword analysis. There is still a human factor, as the user can review Cadence’s initial size evaluation and adjust at the requirements level, or export to a CSV or Microsoft Excel format for further evaluation. Cadence is also designed as a learning tool that will aid analysts with tips and automated suggestions that can be used as a training resource. Reports can be exported from Cadence in three formats: HTML, PDF, and MS Word. Figure 2 (below) displays a sample metrics summary report.

Figure 2: Cadence Metrics Summary Report


Cadence has been designed based on IFPUG CPM 4.3 rules but is not IFPUG compliant in the sense that it follows the Fast Function Point counting process at the requirements phase and does not identify FTRs, DETs, and RETs. While many within the IFPUG community may view this as a limitation, it may also be viewed as the evolving role of the analyst. It is reasonable to expect Cadence’s automation capability to expand into ingesting images (such as entity relationship models) and design files (such as wireframes) and be able to automate in a manner that is closely aligned with IFPUG rules.


A 2017 study commissioned by Logapps identified variances between 2% and 60%, with an average variance of 20% between automated and manual size estimates. The variance can be reduced by analyzing requirements and reviewing redundant data functions and duplicate requirements. As with function point analysis in general, Cadence is well suited for transactional systems.

Logapps has used a crowd-sourcing model to identify desired future capabilities. The feedback has been positive with many users seeing great value in the efficiency of automated FSM. Many reviewers have requested integration with requirements and estimation tools, the ability to ingest images, and access to a database of project requirements and associated size metrics.


How software is developed, driven by Agile and Dev Ops, is rapidly evolving. Thus, it stands to reason that software analysis will also change. In the not-so-distant future, functional size measurement will rely more on automation. Delivered systems will be sized from static code analysis tools, and early design sizing will rely on tools like Cadence. The shift in the automation of functional software measurement and requirements analysis will present opportunities for labor efficiency and change the way software applications are analyzed. The role of CFPS and other functional sizing subject matter experts will likely focus on adjusting the dials of the automated models, and then identifying DETs, RETs, and FTRs for more precise functional sizing. Cadence brings this technology to the analyst’s desktop.