VisualFSM Patterns

VisualFSM Pattern Manager

The VisualFSM Pattern Manager is used to manage libraries and patterns. These can be built for private use, however, one of the aims of VisualFSM is to be able to share information with other users.
This sharing of information can be performed in a variety of ways, all controlled directly from within the VisualFSM Pattern Manager.

Send and Receive by Email 
fsmPatterns can be exported to a file then transferred by e-Mail or other physical media. The file can then be imported and added to the library.

Realtime Collaboration

VisualFSM offers a subscription service called VisualFSM-RT which provides for realtime collaboration between users subscribed to the service over the Internet. The messages exchanged are encoded then sent over the internet via the VisualFSM-RT Server.

Exchange Patterns directly


When a connection is established between two subscribed users, their fsmPattern Managers are automatically synchronized.

VisualFSM Patterns

COSMIC measures functional size by counting the number of movements of data to and from persistent storage and movements of data to and from the users of a given function.
Users in the COSMIC sense includes humans, devices, sensors, other system etc i.e, anyone or anything that communicates with the software) the aggregate of all the individual functions delivered by the software being its total size.
To depict these movements Pentad devised the Data Movement Sequence Diagram (DMSD), a variation of the UML sequence Diagram which shows in a diagrammatic form the movements of data for each individual function delivered by the software as described above, an example is shown below

Counting these movements by careful analysis of the Functional User Requirements (FUR) for a given function is relatively easy, however it takes time and on occasions an estimate of the size would satisfy the purpose of measuring the size. There are various ways in which this can be achieved and can be researched by referring to published literature on the subject.

However from experience gathered measuring many software systems, Pentad found that the pattern of movements for many different functions take the same diagrammatic form. It was possible therefore to design a set of generic patterns that were common in a given software domain. Pentad has devised such sets and it calls them fsmPatterns©.

The advantage of fsmPatterns is that its size can be determined in advance, This means that the Functional Size Analyst need only identify each individual function then assign a pattern to them. In this way it is possible easily to derive an estimate of the COSMIC functional size of a set of functions.

The VisualFSM software analysis and measurement tool is designed to measure both the actual functional size, and for COSMIC, fsmPatterns can be imported from standard libraries or designed from scratch. When an fsmPattern is assigned to a Functional Process, it adopts the size of the Pattern; this is referred to in VisualFSM as the Pattern Size to distinguish it from the Measured Size.

If subsequently a Functional Process is measured, the Measured Size is reported, but the fsmPattern size is retained, which is useful for analyzing the variance of the fsmPattern size from the Measured Size.
If you want more information about fsmPatterns please download overview here fsmPattern - Overview


fsmPatterns can be used to provide an estimated Functional Size metric using artefacts that come directly from the development process and which requires only the normal skills of a trained Analyst.

VisualFSM Video

Click on the image to view the Overview video

Click on picture to watch the VisualFSM pattern video

Click here to read the Quick Start guide


Estimation Process

The process assumes that a library for the domain of the software has been built or acquired, that value for Productivity in terms of Hours per Function Point is known and that the Functional User Requirements are detailed enough to be able to extract the functions performed by the software. There are 6 main tasks in the process :

1.Extract the Function Model from the Functional user Requirements

2.Create an Analysis Project and set the scope

3.Create a COSMIC Analysis project

4.Assign an fsmPattern to each Functional process

5.Produce the fsmPattern Size Report

6.Use the fsmPattern Size in the productivity equation to derive estimated effort.