Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Conceptual data model-based software size estimation for information systems
Tan H., Zhao Y., Zhang H. ACM Transactions on Software Engineering and Methodology19 (2):1-37,2009.Type:Article
Date Reviewed: Nov 20 2009

This scholarly paper makes several important contributions to the software engineering problem of how to size a system. Remember that size is the principal factor when determining the cost of system development. The authors provide models for sizing certain types of applications. They also indicate how to improve productivity. Their approach is reasonable, a good read, and dovetails with my own sizing experience. I especially like the way the authors carefully qualify their results.

The authors make the wonderful observation that “the number of attributes in classes does not affect the complexity as much as the number of classes and relationship types.” This insight suggests how software engineers can constrain software design in order to minimize size. They clearly define the nature of the sizing problem.

Section 3.1 restricts their findings to information systems. An information system is defined as “a database application that supports business processes and functions through maintaining a database using a standard database management system (DBMS).” In an entity-relationship model, information systems have the following properties: a graphical user interface (GUI); business logic embedded in the database; report generators; the ability to update data structures to reflect business processes; simple data functions; and error correction programs.

The researchers confess that without careful data controls, their results were inconsistent. Then, they explain how to get valid data. Their results are based on a good set of data with Java code.

Although the authors fail to define a physical line of code, I think they count the number of carriage returns, subtracting comment lines and blank lines. They do not indicate whether the lines of code include data definition statements. They use Code Counter Pro 1.21, which implicitly defines a line of code.

Their model contains a set of equations computing KLOC, the metric of 1,000 lines of code, as a linear function of the number of classes, the number of relational types, and the average number of attributes per class. Each equation deals with a carefully defined subset of information systems. They do not study nonfeature code needed to satisfy architectural constraints such as reliability, performance, recovery, operability, scalability, and maintainability. Also, when function points are used for sizing, the authors report that reuse level, security, GUI, and external reports and inquiry need to be added to adjustment factors.

There is a small but important error in Section 5.1.2: the conversion factor of 53 is not prescribed; it is an industry approximation and needs to be calibrated individually for each software shop.

Overall, this paper presents a thoughtful approach to software sizing. If your application fits within the authors’ constraints, you can profitably use their approach. (Heed their warning and do not apply their model carelessly.) I look forward to future papers on these continuing research efforts and insights.

Reviewer:  Larry Bernstein Review #: CR137518 (1005-0495)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Product Metrics (D.2.8 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Product Metrics": Date
Communication Metrics for Software Development
Dutoit A., Bruegge B. IEEE Transactions on Software Engineering 24(8): 615-628, 1998. Type: Article
Oct 1 1998
Analyzing Data Sets with Missing Data: An Empirical Evaluation of Imputation Methods and Likelihood-Based Methods
Myrtveit I., Stensrud E., Olsson U. IEEE Transactions on Software Engineering 27(11): 999-1013, 2001. Type: Article
Jul 2 2002
The Optimal Class Size for Object-Oriented Software
El Emam K., Benlarbi S., Goel N., Melo W., Lounis H., Rai S. IEEE Transactions on Software Engineering 28(5): 494-509, 2002. Type: Article
Jan 3 2003
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy