Update on Activities at USC Center for Software Engineering

David Klappholz
Associate Director, New Jersey Center for Software Engineering

 

The New Jersey Center for Software Engineering is a university affiliate of Prof. Barry Boehm's Center for Software Engineering at the University of Southern California. The purpose of our affiliation with USC is to foster collaboration between USC CSE and NJCSE researchers and to bring awareness of developments at USC to the New Jersey software community.

As an essential aspect of NJCSE's affiliation, one or two NJCSE members regularly attend the USC CSE Annual Research Review in early February. This year the Review was held on Tuesday, February 6. It was followed, as is usual, by a three-day (February 7-9) Focused  Workshop, with this year's focus on COTS-Based Systems (CBS); as is also typical, the Focused Workshop was co-sponsored by the Software Engineering Institute (SEI) at Carnegie Mellon University. This year the Annual Research Review was also preceded by a two-day (February 4-5) review of the activities and status of CeBase (Center for Empirically-Based Software Engineering), an NSF grant held jointly by Prof. Boehm of USC and Prof. Vic Basili of the University of Maryland. Attendees included members of the three sponsoring organizations, including their three directors, Prof. Boehm (USC CSE), Prof. Basili (UMD), and Steve Cross (SEI), as well as representatives of USC CSE's Affiliates program, which includes such commercial/industrial organizations as Microsoft, IBM, Rational, Motorola, Hughes, Sun, Telcordia, Boeing, and Lockheed Martin, and such government/FFRD organizations as FAA, USARL, and JPL.

The most interesting aspect of this year's activities was the discussion of what the software development world has learned since the beginning of the COTS revolution, i.e., the move away from pure custom development towards the use of Commercial Off The Shelf components (COTS), with entire systems of applications consisting of COTS components tied together with "glue code." Among the important issues raised were the following:

  • Choice of COTS components must be done not only on the basis of features, performance, and cost, but also on the basis of evaluations of the financial health of the companies producing those COTS components, and the levels of customer service provided by those companies. (COTS product documentation is often incomplete and/or inaccurate. Successful producers of consumer-market COTS products are more likely to be long-lived, but less likely to be helpful; producers of niche-market COTS products are less likely to be long-lived, but more likely to be helpful.)

  • Requirements must often be tailored to features and performance characteristics of available COTS products -- or the use of COTS may be impossible; claims of COTS component features and performance must be carefully tested, in-house, by potential integrators, using benchmarks specific to systems/applications into which COTS components are to be integrated.

  • Requirements must be constantly revisited as development with COTS progresses; as a result, the waterfall lifecycle model cannot be used in the context of COTS-based development; additionally, more sophisticated lifecycle models, e.g., iterative, incremental, spiral, etc., must be adapted for use in COTS-based development.

  • Non-synchronized COTS-based-product version release and COTS-component version release make release planning far more difficult than without COTS; in fact, new versions of COTS components may be missing features specifically needed in software products into which earlier versions have been integrated; new versions may not perform as required by software products into which earlier versions have been integrated. Finally, COTS products are often terminated by their producers.

  • Reduction in total cost for COTS-based vs. custom development is often illusory, especially given the version-synchronization problem discussed in the previous point; specifically, the added cost of product maintenance and evolution often exceeds savings during the development phase. As a result, the best argument for COTS-based development is usually speed of development of feature-rich products. (I.e., products with features achievable using COTS would take far longer to bring to market without the use of COTS components.)

  • Cost-estimation methods, scheduling methods, process metrics and process maturity metrics are, as yet, either unavailable or far less sophisticated for COTS-based development than are their custom-development counterparts.

  • COTS-based software is often especially vulnerable to security problems because: the source code is known by the COTS component developers, but not by the COTS-based product developers; security is often just an afterthought in commercial-market COTS components; the widespread use of popular COTS components makes them prime targets for hackers; etc., etc.

During the course of both the Annual Research Review and the Focused Workshop, demonstrations were given of software products developed through USC CSE research and available either through CSE or from commercial developers. Of particular note are COCOMO, CSE's cost-, effort- and schedule-estimation model/tool, and EasyWinWin, a recently-commercialized requirements-engineering tool. 

Information about COCOMO, including the COTS-based version, COCOTS, as well as software downloads, are available at http://sunset.usc.edu/research/cocomosuite/index.html and associated web pages. 

Information about Easy WinWin, and university-produced  WinWin software may be found at http://sunset.usc.edu/research/WINWIN/index.html.

Information about Easy WinWin, the commercial version of WinWin, is available from http://www.groupsystems.com.

Information about MBASE, a tool for Model Based Architecting and Software Engineering, may be found at http://sunset.usc.edu/research/MBASE/index.html.