140 likes | 281 Views
Investigating and Improving a COTS-Based Process. M. Morisio UMD, College Park C. Seaman UMD, Baltimore County and Fraunhofer Center MD A. Parra, S. Condon - Computer Science Corporation V. Basili UMD, College Park Fraunhofer Center MD S. Kraft NASA Goddard Space Flight Center. Context .
E N D
Investigating and Improving a COTS-Based Process M. Morisio UMD, College Park C. Seaman UMD, Baltimore County and Fraunhofer Center MD A. Parra, S. Condon - Computer Science Corporation V. Basili UMD, College Park Fraunhofer Center MD S. Kraft NASA Goddard Space Flight Center
Context • NASA Goddard - Flight Dynamic Division • 150-200 Software staff • Relatively stable domain • ground software - flight dynamic for earth satellites • Good software maturity • SEL started in the 80s • recommended approach to software development • High levels of reuse from project to project • up to 90% reuse level • Shift to COTS based development in the mid 90s • Evidence that existing process did not fit
SEL COTS study • COTS Definition • software product, supplied by a vendor, • integrated into the system to provide operational functionality • or delivered with the system to sustain maintenance efforts. • COTS encountered • Domain specific packages for attitude and orbit determination, mission control, mission planning • Goal • Understand issues in COTS based development and improve the process • To improve it • proposed process(1995) • the actual process (1996-7) • new proposed process (1998-9)
Proposed Process • From literature and recommended approach Vendor Requirements Design Coding, Integration COTS identification COTS selection
The actual process Vendor Non-COTS development Requirements Design Coding Integration COTS identification COTS selection Design glueware and integration Glueware, interfaces
Activity Change • Key activities • Integration of COTS • Evaluation/selection of COTS and modification of requirements • Interaction with vendor - documentation of product, commercial negotiations, procurement • Modified activities • Requirements - COTS provided vs. built internally • Design - how to integrate vs. how to decompose • Reduced Activities • Coding, debugging - less code produced • Unit testing and code inspections no source code available
Other Issues • Dependence on vendor • slippage in release of COTS • documentation (unavailable, incorrect, vaporware, ..) • upgrades to COTS • vendor not responsive • Learning curve for COTS • Less formal process • when traditional process is not suitable
New Proposed Process Review make vs. buy Requirements Design Coding Integration Make vs. Buy Requirements analysis COTS identification and selection Feasibility study Design glueware and integration Incompatibility analysis Glueware, interfaces
Recommendations • Make vs. buy decision • Can the project use COTS? • Formalize this decision, considering • flexibility in requirements • vendor dependence • feasibility of integration • cost/schedule/effort • development • maintenance • COTS Selection • Anticipated in requirements phase • In parallel with requirement analysis, COTS familiarization
Recommendations • Feasibility study • Prototype high level architecture, • First hand experience with • COTS (functionality, vendor) • Integration problems • Costs, risks • Design • Deeper level design of glueware and integration • Integration issues • interaction / dependency model • incompatibility analysis • Review costs and risks
The COTS Selection ProcessDealing with Integration Issues • Evaluate candidate COTS products • with respect to potential incompatibilities • Identify the integration problems • caused by the incompatibilities • Identify the integration solutions • with respect to their estimated size • Compute the effort • based on the solution size and the organization productivity • Compare the candidate COTS products • with respect to the total integration effort
Recommendations • New roles • COTS team • keeps history of COTS usage • consults to projects on • COTS evaluation and selection techniques • procurement • licensing • Interface with vendor • at project level
Research method • Structured interviews to 15 projects • Interviewer + scribe • Quality checks • interviewer and scribe • interviewer and interviewee • Modeling of actual process • constant comparison method
Conclusion • 15 projects using COTS analyzed at NASA • Issues • requirements, COTS selection and design are closely linked • vendor interaction and dependency • integration • To address these issues • make vs. buy decision • requirements, (part of) design and COTS selection together • prototype