Email:
Password: [?] 
  Register with the DACS
Site Search: Advanced Search Search: Bibliographic Database(SEBD)     Lifecycle Database(SLED)    DoD Acronyms 
DACS Home Advertising Submitting Articles Archives About Us Suggest A Link
Rate this page's content:
  poor
excellent

Tech Views

By Ellen Walker, DACS Analyst

The software community has been trying to accurately estimate the size of software products for a long time and has searched for a metric that is objective, consistent, accurate, a good predictor of effort, and is obtainable with minimal resources,. This ideal metric would provide a common frame of reference to communicate and make decisions about software development across organizations, regardless of the domain or development environment. Physical size metrics such as source lines of code (SLOC) or number of requirements statements have been widely used but some groups within the software community believe that functional size metrics are better than physical size metrics because Functional Size Measurement (FSM) [1], in theory, has the following characteristics:

  • Works for all types of software (scientific, business apps, web portals, embedded systems, etc.)
  • Works for all types of projects (new development, enhancements, maintenance, etc.)
  • Is language independent
  • Is technology independent
  • Is repeatable (consistent) – two analysts independently measuring the same software will arrive at essentially the same size assuming they are both adhering to the same FSM method.
  • Produces statistically significant results
  • Can be applied early in the development life cycle

But in reality, there is a pervasive perception in the software community that functional sizing is only good for business applications and not applicable to other types of systems. Those who are knowledgeable about functional sizing techniques claim that FSM works for any type of software and assert that those responsible for technical applications such as real time systems, embedded systems, control software and utility software, just need to get educated about functional sizing. Thus, we have “the great divide”, the gap between real world practitioners and the metrics experts who are perceived to be, essentially, “preaching to the choir”. Our goal in presenting this issue of STN is to narrow this gap by providing information to developers and/or acquirers involved with real time and embedded systems that will aid them in understanding the potential benefits that can be achieved from implementing FSM.

Figure 1
Figure 1.

Figure 1, provided courtesy of Pam Morris[2], presents an historical view of the development and evolution of functional sizing methods from one construct to several, illustrating the fact that now there are choices of sizing methods.

Functional sizing first made its debut in the early 80s with Allan Albrecht’s Function Point Analysis (FPA) method. During the 80s and 90s the number of methods grew from one to six (Full FPs emerged)). Some (3-D fps and Feature Points) faded away for lack of support or lack of robustness. In the late 90s there was a convergence of methods into two key methods that gained international support (IFPUG and COSMIC) and two methods with apparent national scope (NESMA and MK II). Appropriately, an International Standards (ISO) framework for FSM (ISO/IEC 14143 series) has been developed along with ISO standards for each of the major FSM methods.

As the diagram in Figure 1 shows, developers today have choices to make regarding the FSM method that best meets their needs. Both of the major FSM methods (COSMIC and IFPUG) assert that their method works for sizing all types of software. Both methods yield a count that quantifies the functionality of the subject software in some way, regardless of the domain. But, so what? The question that each developer must ask is, “What is the value of having this particular functional size metric? What does it do for us?” What does the size metric need to do in order to enable us to say, “It works for us?” We are really talking about how useful the functional size metric is for predicting and decision-making. The theory is that functional size should be a good predictor of effort, which, in turn, enables us to predict cost. Therefore, the size metric must be independent (decoupled) from, rather than a reflection of, effort. We want to be able to determine size easily and early and use it to estimate the effort and cost associated with development in our particular environment with assurance that the estimates are, in fact, reasonably accurate. That is a simple statement to make but the target remains elusive for many developers.

In the last issue of the STN (Vol 9-2 June 2006) the DACS presented the concept of functional sizing and described the implementation of the functional sizing method maintained by the International Function Point Users Group (IFPUG), which has existed since the 1970s, and is used extensively by the business application software community with great success. IFPUG calls its functional size unit a function point (FP). The issue also presented information about sizing with benchmark data from the project repository maintained by the International Software Benchmarking Standards Group (ISBSG) and demonstrated how the repository data could be used to obtain reasonably accurate size estimates early in the project life cycle with minimal effort.

Now, in this issue, we present functional sizing as it relates particularly to non-business applications such as real-time and embedded systems, utility applications and control systems. We also provide some commentary on innovative uses of functional sizing that are independent of the chosen sizing method.

Sizing, by itself, is just a number. It does not increase productivity; it does not increase quality; it does not reduce cost [2]. However, it can provide consistent objective quantitative data, which we can then use to make better decisions that will help us increase productivity, increase quality and reduce costs.

The articles in this issue of the Software Tech News were selected to help you further understand functional sizing by:

  1. Presenting a synopsis of a methodology specifically designed for use with ‘process-rich’ applications such as real time and embedded systems
  2. Comparing IFPUG and COSMIC sizing methods to each other to demonstrate why an organization might choose one method over the other depending on how the size metric is to be used
  3. Illustrating the importance of statistical analysis to determine the circumstances in which the size metric can be considered a good predictor for effort estimates
  4. Presenting size metric usage scenarios that reflect innovative and effective acquisition strategies based on the ‘cost per delivered functional unit’ paradigm.

In the first article, author, Charles Symons, describes the methodology for functional sizing called COSMIC-FFP (Full Function Point). COSMIC, the Common Software Measurement International Consortium, is the group responsible for the creation and maintenance of COSMIC-FFP, established in 1998”. The consortium designed this sizing approach specifically for real time and embedded systems software that is essentially “process-rich”. This method has a strong user base in Europe and the data from many projects sized with COSMIC-FFP resides in the ISBSG repository. “Cfsu” denotes a COSMIC functional size unit. Symons exemplifies how the sizing method works by applying it to the security alarm system in his home.

In the second article, Pam Morris makes a technical comparison of the IFPUG and COSMIC methods and illustrates the impact that the choice of method can have in the implementation of outsourcing agreements or other types of contracting based on cost per delivered functional unit. This article should help readers to understand why there is currently not a single “one size fits all” functional sizing method that is equally valuable (useable) for all types of software development.

Article three, by Alain Abran, illustrates the use of functional size measures (using COSMIC-FFP) in building estimation models for maintenance projects. The research is based on 19 maintenance projects (implementing small functional enhancements) on a single real-time embedded software application in the Canadian Defense industry. His article illustrates that there is no easy road to deriving value from using functional sizing. An organization must be prepared to do thorough analyses of their data in order to find the best models for their particular environment, whether they are involved in maintenance or developing new software.

Article four, by Terry Wright, titled “With or without a navigator? --- it’s your call!”, describes the use of functional sizing as an acquisition strategy. The initiative, called SouthernSCOPE, undertaken by the State of Victoria in Australia, was unique in two ways: First, it required bidders to submit proposals based on a ‘cost per delivered functional unit’, and second, the acquirer engaged a ‘Scope Surveyor’ throughout the development life cycle.

Although the initiative proved very successful, sustaining the best practices of that initiative proved to be very difficult. Terry tells the story about a functional role that addresses sizing throughout the project and seems to be important for success. He hints, however, that the cultural aspects of project management are a formidable barrier to the adoption of this new role by acquirers and developers alike.

The last article, written by Juan Carlos Molina, describes how his organization has used functional sizing as the basis for charging customers for code generation based on a Model-driven Architecture approach (MDA). The MDA tool automatically sizes the application (using the IFPUG counting method) from the software model before code is generated. Developers or Acquirers can then calculate the cost of code generation before any resources are committed to it. Developers focus on the model, not the code. Subsequently, this approach can have a significant impact on planning both the effort and schedule needed to develop software and therefore the cost. It seems to be a WIN-WIN situation for all --- the developer, the acquirer and the service provider --- because everyone knows up front how much the code will cost, and because the method used for determining size is consistent and objective. The developer can focus on estimating the effort required to develop the model.

The information about FSM is vast. It is of global significance and it touches many software domains. This issue only scratches the surface of FSM knowledge, but it does demonstrate that FSM is no longer relegated to the domain of business applications only. These articles all suggest that FSM is not something you do occasionally. Nor is it very useful in a short-term scenario. Its value increases as it is applied to more and more projects, and as the organization builds its project repository. “Which method is best?” is not necessarily the right question. Instead, you need to ask, “Which method is right for us?” Focus on what you want to do with the metric and let that drive your decision-making. Think usage! Usage! Usage!

References

[1] Tichenor, Charley, “The Management Science of Function Point Analysis”, 2006 Functional Sizing Summit, IFPUG Spring Workshop, Cambridge, Mass

[2] Morris, Pam, “Cosmic-FFP and IFPUG 4.1: Similarities and Differences”, Presentation at 2003 IFPUG Fall Conference, Scottsdale, Arizona.

About the Author
Ellen Walker, a DACS Analyst, is currently developing a series of publications on software “best practices” as part of the DACS Gold Practice Initiative. She has spent the past 20 years as a software developer in various roles spanning the entire software life cycle including project management of multiple business process re-engineering efforts within the DoD community. She is also experienced with assessment initiatives such as the Capability Maturity Model for Software (CMM-SW) and the quality management practices of the New York State Empire State Advantage program. Ellen has an MS in Management Science (State University of New York (SUNY) at Binghamton), and bachelor degrees in both Computer Science (SUNY – Utica/Rome) and Mathematics (LeMoyne College).

Ph: 315-334-4936
Email: ellen.walker@itt.com

September 2006
Vol. 9, Number 3

Functional Sizing of Real-time & Embedded Systems
 

Articles in this issue:
Tech Views
Sizing and Estimating for Real-time Software - the COSMIC-FFP Method
COSMIC-FFP - A Method for Sizing All the Software Not Just What the User Sees
Estimation Models for Software Maintenance Based on Functional Size
With or Without a Navigator? - It’s Your Call
Sizing and Developing Software Using a Model Driven Architecture (MDA) Approach
Total Electronic Migration System (TEMS): Providing Real-Time Access to Scientific and Technical Inf

Download this issue (PDF)

Get Acrobat

Receive the Software Tech News
 
Click here to submit
an article or to check out future themes of the Software Tech News

STN Issues

2010

2009

2008

2007

2006

2005

2004

2003

2002

2001

2000

1999

1998

1997

1996

1995

1994

1993


About the Software Tech News
 
  Advertising Opportunities
 
  Article Reprints
   DACS Gold Practice Initiative  ROI Dashboard
 
Acquisition Process Improvement
Architecture-First Approach
Assess Reuse Risks and Costs
Binary Quality Gates at the Inch-Pebble Level
Capture artifacts in rigorous, model-based notation
Commercial Specifications and Standards/Open Systems
Defect Tracking Against Quality Targets
Develop and Maintain a Life-cycle Business Case
Ensure Interoperability
Formal Inspections
Formal Risk Management
Goal-Question-Metric Approach
Integrated Product and Process Development
Manage Requirements
Metrics-based Scheduling
Model Based Testing
Plan for Technology Insertion
Requirements Trade-Off/Negotiation
Statistical Process Control
Track Earned Value
  Access benefit data from software technical and management improvements including SEI CMMI, PSP/TSP, Cleanroom, Inspections, and Agile Development.

View the ROI Dashboard
Copyright © 2010, ITT Corporation    Privacy Policy
webmaster@thedacs.com
775 Daedalian Drive Rome, NY 13441
(800) 214-7921 Fax: 315-838-7130
This site is best viewed in Firefox 1.0+ or IE 6.0+
XHTML