Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000
History 15 projects at NASA/GSFC guided by Software Engineering Laboratory (SEL). SEL developed a process for COTS-based development for FDD. It was studied by FDD, modified. Another process was developed together with SEL.
What is a COTS? A software product supplied by a vendor that is integrated into the system. COTS-based development: rapid configuration of systems based on COTS packages or GOTS (Government-Off-The- Shelf) packages, and some custom-build reusable packages.
3 Types of COTS-based Systems Defined by Carney: –Turnkey systems: Build around a suite of commercial products such as Microsoft Office. Customization does not change the nature of the initial product. –Intermediate systems: Built around one COTS but integrate other (also developed in-house) –Other: Built on several COTS with same importance.
Study of the Actual Process Structured interviews using the GQM approach. All projects in 2. and 3.category of Carney definition.
Differences between COTS projects and traditional projects 3 types of differences: –New activities: product evaluation, product familiarization, vendor interaction. New roles. –Reduced activities: coding, debugging, unit testing. –Modified activities: integration of pieces, compatibility, configurability. More effort on integration and test, less on design and coding.
Major Issues for COTS projects Dependence on vendor: slippage in schedules, poor documentation, Vaporware, no control on modifications, communication Flexibility in requirements: Some requirements may be fulfilled by COTS, some not.
New COTS Process Main phases are: –Requirement –Design –Coding –Integration
Requirement Make versus buy decision I: technical and non- technical issues, Requirement definition COTS identification and selection COTS familiarization: learn about COTS Feasibility study: describe the product on a high level, an effort estimation, a risk assessment model. Both for COTS and non-COTS. Make versus buy decision II Requirement review
Design Definition of architecture and integration issues at lower level of details Decision on glueware Re-estimate cost and risk Review
New Roles Cost Team at the organization level: –Evaluation and selection of COTS –History of COTS evaluations –COTS usage database –Buying of COTS Single point of contact with vendors