1 SPIKE Seminar Process Improvement and Risk Management in OTS (Off-The-Shelf) Component-Based Development Jingyue Li Norwegian University.

Slides:



Advertisements
Similar presentations
Computer Science Department
Advertisements

System Integration Verification and Validation
Software Quality Assurance Plan
Lecture # 2 : Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Software Project Management
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 3 Process Models
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Project Proposal.
Rational Unified Process
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
Design and Evaluation of Iterative Systems n For most interactive systems, the ‘design it right first’ approach is not useful. n The 3 basic steps in the.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Systems Analysis and Design
Embedding Security into a Software Development Methodology April 5 th, 8:30 AM Jonathan Minter Director, IT Development and Engineering Liberty University.
Information Systems Development : Overview. Information systems development practice Concept and role of a systems development methodology Approaches.
Software Life Cycle Model
1 Project Planning CIS 375 Bruce R. Maxim UM-Dearborn.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 14 Systems Analysis and Design: The Big Picture.
Effective Methods for Software and Systems Integration
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
S/W Project Management
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
An industrial study in Norway, Germany and Italy Seminar on CBSE (component-based software engineering) Simula Research Lab., Oslo, 4 Feb. 2005
Preliminary Results from a State- of-the-Practice Survey on Risk Management in Off-The-Shelf Component-Based Development Jingyue Li 23 Nov
1 Chapter 11 Implementation. 2 System implementation issues Acquisition techniques Site implementation tools Content management and updating System changeover.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
COTS and OSS – What is it? M. Morisio, M. Torchiano Politecnico di Torino – Italy {morisio, Seminar on CBSE An industrial study in.
1 Jingyue Li et al. An Empirical Study on Decision Making in Off-the-Shelf Component-Based Development.
Introduction to Systems Analysis and Design
Systems Analysis and Design
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, Fourth Edition
Developed by Reneta Barneva, SUNY Fredonia The Process.
Investigating and Improving a COTS-based Software Development Process
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
CBSE Seminar -4 Feb OSLO 1 Risk management and Process Improvement of Off-The-Shelf Based Development Jingyue Li Reidar Conradi,
The Code and Fix model It is a simple two phase model. In first phase: code is developed In second phase: fix the code until the client is not satisfied.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Investigating and Improving a COTS-based Software Development Process Morisio, Seaman, Parra, Basili, Kraft, Condon icse 2000.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Component D: Activity D.3: Surveys Department EU Twinning Project.
Advanced Software Engineering Dr. Cheng
Lecture 3 Prescriptive Process Models
Managing the Project Lifecycle
Chapter 18 Maintaining Information Systems
Software Life Cycle “What happens in the ‘life’ of software”
Topic for Presentaion-2
CS310 Software Engineering Lecturer Dr.Doaa Sami
Empirical Study on Component-Based Development
Presentation transcript:

1 SPIKE Seminar Process Improvement and Risk Management in OTS (Off-The-Shelf) Component-Based Development Jingyue Li Norwegian University of Science and Technology 7 th September 2004

2 SPIKE Seminar Agenda Section 1: An Empirical Study of Variations in COTS-based Software Development Process Section 2: Risk management in OTS (COTS and Open Source) based development

3 SPIKE Seminar Section 1: An Empirical Study of Variations in COTS-based Software Development Process State-of-the-art Research motivation and research questions Research methods Results Discussions

4 SPIKE Seminar State-of-the-art Process of the whole software development lifecycle –Boehm et al.: Both the waterfall model and evolutionary development process were regarded as unsuitable for COTS-based development. –NASA COTS-based development process –SEI EPIC (Evolutionary Process for Integrating COTS-based system) –Seven theses about COTS-based development COTS component selection and evaluation processes –MAUT, MCDA etc. (decision making algorithm drvien ) –RCPEP (requirement driven)

5 SPIKE Seminar Research Motivation Limitations of previous studies –Focused on propose new revised process without empirical evidence –Small project sample with similar contexts –Difficult for project managers to customize their processes based on their project context (developer skill, applicaiton domain, requirement ”toughness” etc.). Our motivation –To find out how to customize a COTS-based development process based on their project context.

6 SPIKE Seminar Research Questions RQ1: What was the actual process used in the projects using COTS Components. RQ2:What are the commonalities and possible variations in COTS-based development processes. RQ3: What are process scenarios of the projects using COTS components successfully and not successfully? What are the relationship between possible risks and process scenarios

7 SPIKE Seminar Research Methods Semi-structured interviews –Interview guide include both open and close questions –Definitions: COTS Is either provided by some other organizations in the same company, or provided by external companies as a commercial product. Is integrated into the final delivered system. Is not a commodity, i.e. not shipped with an operating system, not provided with the development environment, not generally included in any pre-existing platforms. Is not controllable by the user, in terms of provided features and their evolution. Our addition: This normally means “black box”, i.e. no source code available. Pre-test of interview guide Data collection method Data analysis method

8 SPIKE Seminar Results - Background information Companies (13 Norwegian IT companies) –1 small sized companies (3<staff size <15) –7 medium sized companies (15 =<staff size <=100 ) –5 large sized companies (staff size > 100) Projects (16 finished project using one or more COTS components) Respondents –3 IT manager, 4 project manager, 5 software architects, 4 developers –9 of them have more than 10 years SW development experience COTS Component samples –Following COM/DCOM, CORBA, EJB, etc. –C++, or Java library

9 SPIKE Seminar Results - Answers to research question RQ1 RQ1: What was the actual process used in the projects using COTS Components. Data: –Process can be classified into three categories: Pure waterfall Waterfall with prototyping Incremental mixted with prototyping –The main process was decided before they started to think about using COTS component or not. Answer: the so-called COTS-based development process is to customize the traditional development process due to the use of COTS components.

10 SPIKE Seminar Results - Answers to research question RQ2 RQ2:What are the commonalities and possible variations in COTS-based development processes. Data: Commonalities –Some new activites added Build vs. buy decision COTS component selection Learn and understand COTS component Build glueware and addware –New roles added COTS component knowledge keeper (12 projects)

11 SPIKE Seminar Results - Answers to research question RQ2 (cont’) Data: Variations –The phase to make the build vs. buy decision and the COTS component selection –The COTS component selection and evaluation process SP_fam: Familiarity-based selection process SP_unfam: Internet search, trial-based selection process –Step 1: First, developers used a search engine to browse the Internet, using keywords to express decided functionality. This usually gave them a handful of candidates. –Step 2: If there were more than 2 to 3 possible candidates, they selected 2 to 3 of them very quickly based on some key issues, such as license issues, cost and vendor reputation etc. –Step 3: After a small number of candidate COTS components had been decided, they downloaded a demo version of these from the web and test the COTS components.

12 SPIKE Seminar Results - Answers to research question RQ2 (cont’) Answer: There are some common new activities and one new role added in the COTS-based development process. The possible variations are when and how to perform these new activities

13 SPIKE Seminar Results - Answers to research question RQ3 RQ3: What are process scenarios of the projects using COTS components successfully and not successfully? What are the relationship between possible risks and process scenarios Data: –12 successful projects and 4 unsuccessful projects –6 Scenarios –6 Lessons learned

14 SPIKE Seminar Results - Answers to research question RQ3 (cont’) IDCharacterizationsLesson learned Sc1Two projects used waterfall processes. Made the build vs. buy decision and the COTS component selection in the implementation phase. Selected unfamiliar COTS components. Lesson 1: The COTS component selection should be implemented no later than the design phase in the waterfall processes. Lesson 2: They should inform the customer after they decided to use COTS components. Sc2One project used waterfall process. Selected COTS components in design phase but mainly on their functionalities. Selected unfamiliar COTS components. Lesson 3: They should consider more on how to integrate the COTS components. If the COTS components were hard to be integrated, they should build alternative components themselves. Sc3One project used incremental & prototyping process. Selected the COTS components in design phase but mainly on their functionalities. Selected unfamiliar COTS components. Lesson 3: See above Scenarios of 4 unsuccessful projects

15 SPIKE Seminar Results - Answers to research question RQ3 (cont’) Scenarios of 12 successful projects IDCharacterizationsLesson learned Sc4Two projects used waterfall process. Made the build vs. buy decision and selected COTS components in the requirement phase. Selected familiar COTS components. Lesson 4: Selected the COTS components mainly based on the easiness of integration. Sc5One project used waterfall with some prototyping process. Made the build vs. buy decision and selected COTS components in design phase. Selected familiar COTS components. Lesson 4: See above Sc6Nine projects used incremental with prototyping processes. Seven projects selected COTS components in requirement with familiar COTS components. Two projects selected COTS component in design phase with unfamiliar COTS components. Lesson 5: Using COTS components in the incremental & prototyping process helped the success of the project. Lesson 6: Rank the integration of unfamiliar COTS components as high risk task and integrate such components before other components.

16 SPIKE Seminar Results - Answers to research question RQ3 (cont’) Answer: COTS-based development could be performed successfully using waterfall and evolutionary processes. However, different process scenairos may face different risks.

17 SPIKE Seminar Variations in COTS-based Software development Processes SP_fam: Familiarity-based selection process SP_unfam: Internet search, trial-based selection process Possible COTS-based development process customizations

18 SPIKE Seminar Discussions Comparing with related work –Boehm et al. –EPIC & NASA process –Proposed COTS selection processes Possible threats to validity –Internal validity –External validity –Construct validity –Conclusion validity

19 SPIKE Seminar Conclusions Use of COTS components can be done as part of traditional development processes (e.g. waterfall and evolutionary) – there is no special “COTS-based development process”. Successful use of COTS components in such processes, however, requires that some new activities and roles are introduced in order to reduce risks. Typical new activities are the build vs. buy decision, COTS component selection, and COTS component integration. A new role is that of a knowledge keeper. Two COTS component selection processes have been verified in practice, i.e. familiarity-based selection process and process combining Internet searches with hands- on trials. Two of the new activities, the build vs. buy decision and the COTS component selection, can be placed in different development phases (requirements, design, or implementation). This depends on project context, especially on the familiarity with possible COTS components and the flexibility of requirements. A set of explanatory scenarios and guidelines have been synthesized to assist in the customization of the traditional development processes with the new activities and roles.

20 SPIKE Seminar Section 2: Risk management in OTS (COTS and Open Source) based development State-of-the-art Research motivation and research questions Research methods Results Discussions

21 SPIKE Seminar State-of-the-art OTS component based development processes Risks in component-based development –Component functionalities may not sufficiently match system requirements. –Whenever an assembler employs a component from a less-reputable source, it is difficult to gauge the quality of the corresponding component-based system. –Component-based assembly requires personnel with a different set of skills than the one employed in traditional life-cycle development etc. Risks in COTS component based development –Insufficient effort planned for integration, i.e. glue-code development and testing. –COTS components could not be sufficiently adapted to changing system requirements. –Ineffective management of the vendor relationship etc. Risks in Open Source Component based development –Security –Quality etc.

22 SPIKE Seminar State-of-the-art (cont’) Proposed risk management strategies –Involving customers into the “acquire” vs. “build” decision. –Significant quality features must be tested before finally selecting OTS components. –A most likely OTS component learning curve must be accounted for in cost estimation. –Involving OTS-knowledgeable individuals in all analytical processes. –Using a stringent configuration control etc.

23 SPIKE Seminar Research framework Decide the whole development process (When and how? RQ2) Make vs. Buy decision (Why? RQ1) OTS selection (When and how? RQ2) OTS integration Have found the proper OTS ? OTS maintenance and evolution Y Start project level risk mitigation (RQ3) Y N Non-OTS process Decide to use OTS ? N Start OTS level risk management (RQ4) Start project level risk identification and evaluation (RQ3) P1 P2 P3 P4

24 SPIKE Seminar Research questions RQ1: What are the main motivations of using OTS components instead of building in-house? RQ2: What are the real common OTS-based process models, and what are the possible variances? RQ3: What project-level risks have been identified and their relationships with the project contexts? Which risk reduction methods have been performed from the project level and the results? RQ4: What OTS component-level risks have been identified and their relationships with OTS component characteristics? Which risk reduction methods have been done for specific OTS components and the results?

25 SPIKE Seminar Research methods Survey (questionnaire) Sample selection strategies –Norway We gathered a company list from the Norwegian “Census Bureau ”. We included mostly companies which were registered as IT companies. Based on the number of employees, we selected the 115 largest IT companies (100 IT companies and 15 IT departments in the largest 3 companies in 5 other sectors), 150 medium-sized software companies (20-99 employees), and 100 small-sized companies (5-19 employees) as the original contacting list. –Italy We first got software companies from yellow pages. We then randomly selected companies from them. For these randomly selected companies, we read their web-site to ensure they are software companies or not. 196 companies were finally clarified as software companies, and were used as the original contacting list. –Germany We selected name list from a company list from an organization similar to the Norwegian “Census Bureau”. We then used the existing IESE customer database to get contact information of relevant IT/Software companies, in line with the Norwegian selection.

26 SPIKE Seminar Research methods (cont’) Data collection procedure –The final questionnaire was first designed and pre-tested in English (internal and external preview). It was then translated into the native languages and published on the SESE web survey tool at Simula Research Lab. –Possible respondents were contacted by telephone first. If they have suitable OTS-based projects and would like to join our study, a username and password will be sent to them, so that they can log into the SESE web tool to fill in the questionnaire (they can also use paper version). –The respondents who didn’t want to answer the questionnaire was also registered so that we could find the underlying reasons, e.g., no OTS- based projects, “busy”, not interested etc.

27 SPIKE Seminar Preliminary results Data collection is still on-going 15 filled-in questionnaire (9 from Norway, 6 from Italy) till the middle of August. Summarized the answers to RQ3 based on current data.

28 SPIKE Seminar Answers to RQ3 - Project level risks IDRisksRelative frequency (1..5) RgRequirements were changed a lot3.33 RbEffort to select OTS components was not satisfactorily estimated2.79 RoProvider did not provide enough technical support/ training2.33 RcEffort to integrate OTS components was not satisfactorily estimated2.29 RlIt was difficult to update the system with the last OTS component version2.29 RaThe project was delivered long after schedule2.20 RhOTS components could not be sufficiently adapted to changing requirements2.20 RiProject could not (re)negotiate requirements with the customer, if OTS components could not satisfy all requirements 2.08 RjIt was difficult to identify whether defects were inside or outside the OTS components1.93 RkIt was difficult to plan system maintenance, e.g. because different OTS components had asynchronous release cycles 1.93 RfOTS components negatively affected system performance1.87 RnInformation on the reputation and technical support ability of provider were inadequate1.85 RmOTS components were not satisfactorily compatible with the production environment when the system was deployed 1.80 RdOTS components negatively affected system reliability1.60 ReOTS components negatively affected system security1.50

29 SPIKE Seminar Answers to RQ3 (cont’) – Project level risk management IDRisk management actionRelative frequency MhDid integration testing incrementally (after each OTS component was integrated3.64 MdOTS components qualities (reliability, security etc.) were seriously considered in the selection process3.33 MeEffort in learning OTS component was seriously considered in effort estimation2.87 MaCustomer had been actively involved in the “acquire” vs. “build” decision of OTS components2.73 MfEffort in black-box testing of OTS components was seriously considered in effort estimation2.46 MbCustomer had been actively involved in OTS component selection2.33 MgUnfamiliar OTS components were integrated first2.29 MjMaintained a continual watch on the market and looked for possible substitute components2.20 MiLocal OTS-experts actively followed updates of OTS components and possible consequences2.14 McOTS components were selected mainly based on architecture and standards compliance, instead of expected functionality 2.13 MkMaintained a continual watch on provider support ability and reputation.2.07

30 SPIKE Seminar Answers to RQ3 (cont’) –Relationships between risks and risk management RisksRisk management actionsCorrelationP-value RaMa, RaMb RisksRisk management actionsCorrelationP-value RdMd RdMh RisksRisk management actionsCorrelationP-value RhMa RhMb Cost-estimation risk Quality risk Scope and requirement risk Somers’d in SPSS Version 11.0

31 SPIKE Seminar Preliminary conclusions Comparing with related work –The scope and requirement risks are the relative most frequent risks. Our results also show that customer involvement can help to reduce the scope and requirement risk. Customers can not only be involved into the “acquire” vs. “build” decision, they can also be involved in the selection of OTS component. –Estimation of selection and integration costs in OTS-based projects is perceived challenging. Most proposed risk mitigation methods focus on solving this problem by experienced project manager or a formal cost- estimation model. Our results show that customer involvement may help make it easy to estimate. –Most previous studies regard quality (reliability, security, or performance) risks are very challenging in OTS component-based development. Our results show that they are not as frequent as assumed. Project managers used careful selection and incremental testing to help to mitigate OTS components’ negative effect on the quality of the system. –For maintenance risks, these are perceived important but with less level of control.

32 SPIKE Seminar Discussions Methodology lessons learned –Definition of IT companies? –Sample selection (Representative IT companies may not be the representative sample of OTS component-development) –Compare the representativeness of different selection strategies in different countries –Motivation of survey? –Compare with structure interview

33 SPIKE Seminar Questions & Comments ?