investigating and improving a cots-based software development process morisio, seaman, parra,...
TRANSCRIPT
Investigating and Improving a COTS-based Software Development
ProcessMorisio, Seaman, Parra, Basili, Kraft,
Condon
icse 2000
Outline• Background
– SEL and Strawman process
• Study design– Strutured interview
• Results of the study– Differences between COTS projects and traditional projects– Disadvatage of COTS projects
• New proposed process model• Conclusion
Background
• Software Engineering Laboratory (SEL), known for empirical study of software development practice, provides guides to NASA/GSFC projects.
• SEL developed a process for COTS-based development for FDD – Strawman process
• 15 COTS projects are studied to evaluate and improve the process model
Strawman processPhase Major Activities Products Management
Check-points
Requirements Analysis and COTS Identification
•Requirements analysis
•COTS survey and preliminary evaluation
•Requirements
•Strawman high-level architecture
•Candidate COTS
•System requirements review
Architecture definition and COTS Selection
•COTS evaluation
•Requirements modification to use existing COTS
•Prototyping
•Modified requirements
•System architecture
•Final COTS
•System design review
System Integration and test •Use-case implementation
•Independent testing
•Delivered system •Uer demonstrations
•Operational readiness review
Tchnology Update and System Maintenance
•Evaluation of new products and technology
•Enhanced system •User demonstrations
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• 25 representatives from 15 projects in 2. and
3.category of Carney definition. • Two study teams:
– Interviewer
– Scribe
• Analysis by constant comparison method
Differences between COTS projects and traditional projects
• More effort on requirements, test and integration, less on design and coding.
• 3 types of differences:– New activities: COTS selection, COTS familiarization,
vendor interaction
– Reduced activities: coding, debugging, unit testing.
– Modified activities: design, architecture issues (compatibility, configurability)
Disadvantage of COTS projects
• Dependence on vendor: functionality available, the schedule for release, the reliability level, documentation…
• Flexibility in requirements: COTS drives the requirements at least to some extent
• A trade-off between disadvantage and the benefits of COTS
New COTS Process
• Main phases are:– Requirement
– Design
– Coding
– Integration
New process model
Package IdentificationEvaluation/Selection
Requirements Analysis
Requirements
Identify Glueware andIntegration
Requirements
Non-COTS Design
Design
Write Glueware
AndInterfaces
Non-COTS Coding
Coding
Integrationand Test
Target systemInstallation
and AcceptanceTest
Integration
RequirementsReview
DesignReview
COTS specific activities
Vendor
Customer
Requirement• Make versus buy decision I
– Consider trade-off between non-technical issues and disadvantages of COTS project
• 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– The result is the product variant that will be developed
• Requirements Review
Design
• Definition of architecture and integration issues at lower level of details
• Decision on glueware• Design Review
New Roles
• COTS Team – At the organization level
– A repository about COTS
• Interface with vendors– At the project level
– Build partnership with vendors
Conclusion
• COTS-based processes differ considerably from traditional software development– New activities– Reduced activities– Modified activities
• Disadvantage of COTS projects:– Dependence on vendors– Flxibility in requirements
• The new process is defined– Requirements and design phases are most challenging