investigating and improving a cots-based software development process morisio, seaman, parra,...

14
Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

Upload: millicent-hunt

Post on 17-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

Investigating and Improving a COTS-based Software Development

ProcessMorisio, Seaman, Parra, Basili, Kraft,

Condon

icse 2000

Page 2: Investigating and Improving a COTS-based Software Development Process Morisio, 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

Page 3: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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

Page 4: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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

Page 5: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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.

Page 6: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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

Page 7: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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)

Page 8: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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

Page 9: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

New COTS Process

• Main phases are:– Requirement

– Design

– Coding

– Integration

Page 10: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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

Page 11: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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

Page 12: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

Design

• Definition of architecture and integration issues at lower level of details

• Decision on glueware• Design Review

Page 13: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

New Roles

• COTS Team – At the organization level

– A repository about COTS

• Interface with vendors– At the project level

– Build partnership with vendors

Page 14: Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000

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