Software Sizing Comes of Age with SNAP!
The International Function Point Users Group (IFPUG) is proud to debut the new Software Non-functional Assessment Process (SNAP) logo to signify the importance of non-functional sizing for estimating, benchmarking and productivity analysis in software development. Non-functional requirements have long been known by estimating experts such as Barry Boehm (USC) and William Perry (QAI) as having a significant impact on the effort and costs of software development, and SNAP formally addresses this problem.
What is SNAP?
SNAP is the Software Non-functional Assessment Process.
While function points measure the functional requirements by sizing the data flow through a software application, SNAP measures the non-functional requirements. It is therefore complementary to FPA.
The SNAP model consists of four categories and fourteen sub-categories to measure the non-functional requirements. Non-functional requirement are mapped to the relevant sub-categories. Each sub-category is sized, and the size of a requirement is the sum of the sizes of its sub-categories.
The SNAP sizing process is very similar to the function point sizing process. Within the application boundary, non-functional requirements are associated with relevant categories and their sub-categories. Using a standardized set of basic criteria, each of the sub-categories is then sized according to its type and complexity; the size of such a requirement is the sum of the sizes of its sub-categories. These sizes are then totaled to give the measure of non-functional size of the software application.
Beta testing of the model shows that SNAP size has a strong correlation with the work effort required to develop the non-functional portion of the software application.
Software development evaluation, planning, management, and production control is enhanced when the size and effects of both functional and non-functional application size are considered. Here is where IFPUG holds a unique competitive advantage over other software sizing methods which do not account for non-functional software size.
Read more about SNAP here.