110 likes | 148 Views
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).
E N D
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