empirical software engineering

51
Rahim Lotfi AhmadReza Ghasemian 1

Upload: rahimlotfi

Post on 01-Nov-2014

121 views

Category:

Education


1 download

DESCRIPTION

Empirical Software Engineering

TRANSCRIPT

Page 1: Empirical Software Engineering

Rahim LotfiAhmadReza Ghasemian

1

Page 2: Empirical Software Engineering

Table of Contents

Introduction Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis

Basic Concepts for Empirical Software Engineering

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Page 3: Empirical Software Engineering

Empirical Software Engineering

• Using other people’s experiences in management and development of softwares

• Empirical, included in all areas of science

• “I could have told you that from the start” or “That’s obvious.”

• Software engineering needs to follow the model of other physical sciences and

develop an experimental paradigm for the field.

• Judging empirical work by the standards of statistics texts would lead to

the suppression of many interesting results

Page 4: Empirical Software Engineering

ESE in the Literature

• “Empirical Software Engineering”

• “Experimentation in Software Engineering”• “ESEM - Empirical Software Engineering and Measurement “

Page 5: Empirical Software Engineering

History of Empirical Software engineering

Page 6: Empirical Software Engineering

• Victor Basili(1996)

• QuotesLike physics, medicine, manufacturing, and many other disciplines, software engineering requires the same high level approach for evolving the knowledge of the discipline; the cycle of model building, experimentation, and learning. We cannot rely solely on observation followed by logical thought.

History of Empirical Software engineering

Page 7: Empirical Software Engineering

Key figure

http://academic.research.microsoft.com

Page 8: Empirical Software Engineering

Key figures in Iran

Page 9: Empirical Software Engineering

Conferences (64) Empirical Software Engineering

Page 10: Empirical Software Engineering

Journals (29) Empirical Software Engineering

Page 11: Empirical Software Engineering

Table of Contents

Introduction Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis

Goal Question Metric

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Page 12: Empirical Software Engineering

Need of Empirical Studies

Why should we conduct empirical studies?

Product evaluation, e.g., prototyping.

Process evaluation1. Prototypes are not possible (simulation based on models).

2. A process is just a description until it is used by people

Important for research: experimentation is mandatory in other disciplines(e.g., medicine, physics, etc.)

Page 13: Empirical Software Engineering

Need of Empirical Studies

Empirical studies provides a systematic, disciplined, quantifiable and controlled way of evaluating human-based activities.

You will learn how to select, plan, conduct and analyse an empirical study.

Page 14: Empirical Software Engineering

Table of Contents

Introduction

Need for empirical studies in the context of software engineering.

Goals and Benefits Basic Concepts: Measurement, Collection, Analysis

Basic Concepts for Empirical Software Engineering

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Page 15: Empirical Software Engineering

Goals and Benefits• The purpose of a study is

• The purpose of a study isto explore ...

to find out what’s happening

to seek for new insights

to ask questions and to find answers

Measurement: usually qualitative

• to describe ...

portray accurate profile of situations, events, projects , technologies

Measurement: quantitative/qualitative

• to explain ...

seek explanation of a situation/problem, usual in the form of causal

Relationships

Measurement: quantitative/qualitative

• relationships, differences, changes

Page 16: Empirical Software Engineering

Empirical Studies in SE

• Empirical Studies is research to improve Software Engineering Practice.

– Apply theoretical concepts in SE practice.

– Add experiences on their appliance to the SE ‘body of knowledge’

– Improve processes, methods and tools (SPPI approach).

– Verify theories and models.

Page 17: Empirical Software Engineering
Page 18: Empirical Software Engineering

Table of Contents

Introduction

Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis Basic Concepts for Empirical Software Engineering

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Page 19: Empirical Software Engineering

Some Basic Concepts• Measurement

- is the process of capturing data which are connected to real-world attributes to

describe them.

- Why is measurement important?

• Data CollectionCollection of qualitative / quantitative data according to research questions

• Data AnalysisAnalyzing the results according to the research questions ;

statistical tests

Page 20: Empirical Software Engineering

Measurement

• Quotes- “You can’t manage what you can’t measure”, Tom DeMarco

– “What is not measurable make measurable”, Galileo Galilei

• ObjectivesOne objective of science is to find ways to measure attributes of entities

we are interested in.

– Measurement makes concepts more visible and thus more

understandable and controllable.

• Definition

Measurement is the process by which numbers or symbols are mapped

to attributes of entities in the real world in such a way as to describe

them according to clearly defined rules.

Page 21: Empirical Software Engineering
Page 22: Empirical Software Engineering
Page 23: Empirical Software Engineering
Page 24: Empirical Software Engineering
Page 25: Empirical Software Engineering

Introduction

Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis

Basic Concepts for Empirical Software Engineering Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Table of Contents

Page 26: Empirical Software Engineering
Page 27: Empirical Software Engineering

Quality Improvement Paradigm

Characterize & understand

Setgoals

Chooseprocesses,methods,techniques,and tools

Package &store experience

Analyzeresults

Executeprocess

Provide processwith feedback

Analyzeresults

Corporatelearning

Projectlearning

Page 28: Empirical Software Engineering
Page 29: Empirical Software Engineering

The Experience Factory Organization

A Different Paradigm

Project Organization Experience FactoryProblem Solving Experience Packaging

Decomposition of a problem Unification of different solutionsinto simpler ones and re-definition of the problem

Instantiation Generalization, Formalization

Design/Implementation process Analysis/Synthesis process

Validation and Verification Experimentation

Product Delivery within Experience / RecommendationsSchedule and Cost Delivery to Project

Page 30: Empirical Software Engineering
Page 31: Empirical Software Engineering
Page 32: Empirical Software Engineering
Page 33: Empirical Software Engineering
Page 34: Empirical Software Engineering

Introduction

Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis

Basic Concepts for Empirical Software Engineering

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Table of Contents

Page 35: Empirical Software Engineering
Page 36: Empirical Software Engineering
Page 37: Empirical Software Engineering
Page 38: Empirical Software Engineering
Page 39: Empirical Software Engineering
Page 40: Empirical Software Engineering
Page 41: Empirical Software Engineering
Page 42: Empirical Software Engineering
Page 43: Empirical Software Engineering
Page 44: Empirical Software Engineering

Table of Contents

Introduction

Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis

Basic Concepts for Empirical Software Engineering

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Page 45: Empirical Software Engineering
Page 46: Empirical Software Engineering

Table of Contents

Introduction

Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis

Goal Question Metric

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools State of the art

Page 47: Empirical Software Engineering
Page 48: Empirical Software Engineering

Table of Contents

Introduction

Need for empirical studies in the context of software engineering.

Goals and Benefits

Basic Concepts: Measurement, Collection, Analysis

Basic Concepts for Empirical Software Engineering

Empirical Strategies: survey, case study, controlled experiment

Process of an empirical study

Tools

State of the art

Page 49: Empirical Software Engineering

State of the art

• Finding better ways to experiment and integrate the results of the studies

• Propagate the empirical discipline

• Build an empirical research engine for software engineering

• Build test beds for experimentation and evolution of processes

• Build product models that allow us to make trade-off decisions

• Build decision support systems offering the best empirical advice for selecting and tailoring the right processes for the problem

Page 50: Empirical Software Engineering

• References• V. Basili, G. Caldiera, D. Rombach: „The Goal Question Metric Approach“,2000.

• B. Boehm, H.D. Rombach, M.V. Zelkowitz: „Foundations of Empirical

• Software Engineering – The Legacy of Victor R. Basili“, Springer, 2005.

• Freimut et al.: "Empirical Studies in Software Engineering", Tutorial, VISEK

• Technical Report, 2002.

• IESE Tutorials on Empirical Software Engineering.

• A. Jedlitschka and D. Pfahl: "Reporting Guidelines for Controlled

• Experiments in Software Engineering", ISESE, 2005.

• B. Kitchenham: “Evidence-Based Software Engineering and Systematic

• Literature Review”, Profes, 2006.

• C. Wohlin, P. Runeson, M. Höst, M.C. Ohlsson, B. Regnell and A. Wesslen:

• "Introduction to Experimentation in Software Engineering", Kluver, 2000.

• M. V. Zelkowitz, D. R. Wallace: “Experimental Models for Validating

• Technology”, IEEE Computer, 1997.

• Site : http:// www.microstrategy.com

• Site : http:// www.jamasoftware.com

• Site : http://academic.research.microsoft.com

Page 51: Empirical Software Engineering

AcknowledgmentsBahman Zamani

Thank you for your attention

This research work has been supported by University of Isfahan