SlideShare a Scribd company logo
1 of 83
Download to read offline
Ivano Malavolta
RESEARCH
in software engineering
Roadmap
Software engineering research
Empirical strategies
Writing good research papers
Software engineering research
Some contents of this part of lecture extracted from Ivica Crnkovic’s lecture on
software engineering research at Mälardalen University (Sweden)
What makes good research?
is it HARD?
is it USEFUL?
is it ELEGANT?
These are all
orthogonal and
equally respectful
Very little chances
that you will excel in
all three axes
We are young
researchers, don’t
refuse usefulness,
why limit your impact
to dusty publications?
http://goo.gl/d1YM9v
My vision about research
Research
Theory Industrial projectsProgramming Experimentation
Ivano Malavolta.Research Statement. November 2013. http://goo.gl/99N5AS
The basic characteristic of SE
Real world
practical PROBLEM
Real world
practical SOLUTION
?
Research objectives
Key objectives
• Quality àutility as well as functional correctness
• Cost à both of development and of use
• Timeliness à good-enough result, when it’s needed
Address problems that affect practical software
Real world
practical PROBLEM
Real world
practical SOLUTION
Research objectives: example
Example
Research strategy
Real world
practical PROBLEM
Real world
practical SOLUTION
Research setting
IDEALIZED PROBLEM
Research setting
SOLUTION to
IDEALIZED PROBLEM
Research product
(technique, method,
model, system, …)
Research product: example
Validation of the results
Real world
practical PROBLEM
Real world
practical SOLUTION
Research setting
IDEALIZED PROBLEM
Research setting
SOLUTION to
IDEALIZED PROBLEM
Research product
(technique, method,
model, system, …)
Validation of the results
Real world
practical PROBLEM
Real world
practical SOLUTION
Research setting
IDEALIZED PROBLEM
Research setting
SOLUTION to
IDEALIZED PROBLEM
Research product
(technique, method,
model, system, …)
Validation task 1
Does the product
solve the idealized problem?
Validation of the results
Real world
practical PROBLEM
Real world
practical SOLUTION
Research setting
IDEALIZED PROBLEM
Research setting
SOLUTION to
IDEALIZED PROBLEM
Research product
(technique, method,
model, system, …)
Validation task 1
Does the product
solve the idealized problem?
Validation task 2
Does the product
help to solve the practical problem?
Validation of the results: example
SE research process
Research
questions
Research
validation
Research
results
Types of research questions
FEASIBILITY
CHARACTERIZATION
METHOD/MEANS
GENERALIZATION
DISCRIMINATION
Does X exist, and what is it?
Is it possible to do X at all?
What are the characteristics of X?
What exactly do we mean by X?
What are the varieties of X, and how are
they related?
How can we do X?
What is a betterway to do X?
How can we automate doing X?
Is X always true of Y?
Given X, what will Y be?
How do I decide whetherX orY?
Example: software architecture
The software architecture of a program or computing system is the
structure or structures of the system,which comprise software
components, the externallyvisible properties of those components and
the relationships among them
L. Bass, P. Clements, R. Kazman, Software Architecture In Practise, Addison Wesley, 1998
System
subsystem Subsystem
component component component
Example: SA research questions
FEASIBILITY
CHARACTERIZATION
METHOD/MEANS
GENERALIZATION
DISCRIMINATION
Is it possible to automatically generate code
from an architecturalspecification?
What are the important concepts for
modeling software architectures?
How can we exploit domain knowledge to
improve software development?
What patterns capture and explain a
significant set of architectural constructs?
How can a designer make tradeoff choices
among architectural alternatives?
Example: SA research questions
FEASIBILITY
CHARACTERIZATION
METHOD/MEANS
GENERALIZATION
DISCRIMINATION
Is it possible to automatically generate code
from an architecturalspecification?
What are the important concepts for
modeling software architectures?
How can we exploit domain knowledge to
improve software development?
What patterns capture and explain a
significant set of architectural constructs?
How can a designer make tradeoff choices
among architectural alternatives?
Types of research questions
FEASIBILITY
CHARACTERIZATION
METHOD/MEANS
GENERALIZATION
DISCRIMINATION
Does X exist, and what is it?
Is it possible to do X at all?
What are the characteristics of X?
What exactly do we mean by X?
What are the varieties of X, and how are
they related?
How can we do X?
What is a betterway to do X?
How can we automate doing X?
Is X always true of Y?
Given X, what will Y be?
How do I decide whetherX orY?
SE research process
Research
questions
Research
results
Research
validation
Research results
Real world
practical PROBLEM
Real world
practical SOLUTION
Research setting
IDEALIZED PROBLEM
Research product
(technique, method,
model, system, …)
Types of research results
QUALITATIVE &
DESCRIPTIVE
MODELS
TECHNIQUES
SYSTEM
EMPIRICAL
MODELS
ANALYTIC
MODELS
Report interesting observations
Generalize from (real-life) examples
Structure a problem area; ask good questions
Invent newways to do some tasks, including
implementation techniques
Develop ways to select from alternatives
Embody result in a system, using the system
both for insight and as carrier of results
Develop empirical predictive models from
observed data
Develop structuralmodels that permit formal
analysis
Example: SA research results
QUALITATIVE &
DESCRIPTIVE
MODELS
TECHNIQUES
SYSTEM
EMPIRICAL
MODELS
ANALYTIC
MODELS
Early architecturalmodels
Architecturalpatterns
Domain-specific software architectures
UML to support object-oriented design
Architecturallanguages
Communication metrics as indicator of
impact on project complexity
Formal specification of higher-level
architecture for simulation
Example: SA research results
QUALITATIVE &
DESCRIPTIVE
MODELS
TECHNIQUES
SYSTEM
EMPIRICAL
MODELS
ANALYTIC
MODELS
Early architecturalmodels
Architecturalpatterns
Domain-specific software architectures
UML to support object-oriented design
Architecturallanguages
Communication metrics as indicator of
impact on project complexity
Formal specification of higher-level
architecture for simulation
Types of research results
QUALITATIVE &
DESCRIPTIVE
MODELS
TECHNIQUES
SYSTEM
EMPIRICAL
MODELS
ANALYTIC
MODELS
Report interesting observations
Generalize from (real-life) examples
Structure a problem area; ask good questions
Invent newways to do some tasks, including
implementation techniques
Develop ways to select from alternatives
Embody result in a system, using the system
both for insight and as carrier of results
Develop empirical predictive models from
observed data
Develop structuralmodels that permit formal
analysis
SE research process
Research
questions
Research
results
Research
validation
Research validation
Real world
practical PROBLEM
Real world
practical SOLUTION
Research setting
IDEALIZED PROBLEM
Research setting
SOLUTION to
IDEALIZED PROBLEM
Research product
(technique, method,
model, system, …)
Validation task 1
Does the product
solve the idealized problem?
Validation task 2
Does the result
help to solve the practical problem?
Types of research validation
PERSUASION
IMPLEMENTATION
EVALUATION
ANALYSIS
Formal model
Empirical model
EXPERIENCE
Qualitative model
Decision criteria
Empirical model
I thought hard about this, and I believe…
Here is a prototype of a system that…
Given these criteria, the object rates as…
Given the facts, here are consequences…
Rigorous derivation and proof
Data on use in controlled situation
Report on use in practice
Narrative
Comparison of systems in actual use
Data, usually statistical, on practice
Example: SA research validation
PERSUASION
IMPLEMENTATION
EVALUATION
ANALYSIS
Formal model
Empirical model
EXPERIENCE
Qualitative model
Decision criteria
Empirical model
Early architecturalmodels
Early architecturallanguages
Taxonomies, performance improvement
Formal schedulability analysis
User interface structure
Architecturalpatterns
Domain-specific architectures
Communication and project
complexity
Example: SA research validation
PERSUASION
IMPLEMENTATION
EVALUATION
ANALYSIS
Formal model
Empirical model
EXPERIENCE
Qualitative model
Decision criteria
Empirical model
Early architecturalmodels
Early architecturallanguages
Taxonomies, performance improvement
Formal schedulability analysis
User interface structure
Architecturalpatterns
Domain-specific architectures
Communication and project
complexity
Types of research validation
PERSUASION
IMPLEMENTATION
EVALUATION
ANALYSIS
Formal model
Empirical model
EXPERIENCE
Qualitative model
Decision criteria
Empirical model
I thought hard about this, and I believe…
Here is a prototype of a system that…
Given these criteria, the object rates as…
Given the facts, here are consequences…
Rigorous derivation and proof
Data on use in controlled situation
Report on use in practice
Narrative
Comparison of systems in actual use
Data, usually statistical, on practice
“NO-NO”s for software engineering
research
• Assume that a result demonstrated fro a 10K-line system
will scale to a 500K-line system
• Expect everyone to do things “my way”
• Believe functional correctness is sufficient
• Assume the existence of a complete, consistent
specification
• Just build things without extracting enduring lessons
• Devise a solution in ignorance of how the world really
works
Building blocks for research
Feasibility
Characterization
Method/means
Generalization
Selection
Qualitative model
Technique
System
Empirical model
Analytic model
Persuasion
Implementation
Evaluation
Analysis
Experience
Question Result Validation
Is this a good plan?
Feasibility
Characterization
Method/means
Generalization
Selection
Qualitative model
Technique
System
Empirical model
Analytic model
Persuasion
Implementation
Evaluation
Analysis
Experience
Question Result Validation
A common good plan
Feasibility
Characterization
Can X be
done better?
Generalization
Selection
Qualitative model
Technique
Build Y
Empirical model
Analytic model
Persuasion
Implementation
Measure Y,
compare to X
Analysis
Experience
Question Result Validation
Is this a good plan?
Feasibility
Characterization
Method/means
Generalization
Selection
Qualitative model
Technique
System
Empirical model
Analytic model
Persuasion
Implementation
Evaluation
Analysis
Experience
Question Result Validation
A common, but bad, plan
Feasibility
Characterization
Method/means
Generalization
Selection
Qualitative model
Technique
System
Empirical model
Analytic model
Persuasion
Implementation
Evaluation
Analysis
Experience
Question Result Validation
Two other good plans
Can X be done
at all?
Characterization
Is X always
true of Y?
Selection
Qualitative model
Technique
Build a Y
that does X
Empirical model
Formally model
Y, prove X
“Look it works!”
Implementation
Check proof
Experience
Question Result Validation
Method/means Evaluation
Exercise
Choose a research paper and try to map it into the building
blocks of SE research
Feasibility
Characterization
Method/means
Generalization
Selection
Qualitative model
Technique
System
Empirical model
Analytic model
Persuasion
Implementation
Evaluation
Analysis
Experience
Question Result Validation
How do you trust a research then?
1. What are the problems from the real world?
– Are they “real” and widespread?
– What are the elements of them?
2. Are the solutions general? What are their limits?
Real world
practical PROBLEM
Real world
practical SOLUTION
?
EMPIRICAL SOFTWARE ENGINEERING
Some contents of this part of lecture extracted from Matthias Galster ‘s tutorial
titled “Introduction to Empirical Research Methodologies” at ECSA 2014
Empirical strategies*
*We will have a dedicated course on this topic
Empirical software engineering
Scientific use of quantitative and qualitative data to
– understand and
– improve
software products and software development processes
Data is central to address any research question
Issues related to validity addressed continuously
[Victor Basili]
Why empirical studies?
Anecdotal evidence or “common-sense” often not good
enough
– Anecdotes often insufficient to support decisions in the industry
– Practitioners need betteradvice on how and when to use
methodologies
Evidence important for successful technology transfer
– systematicgathering of evidence
– wide dissemination of evidence
Example
End Users’ Perception of Hybrid Mobile Apps
in the Google Play Store
Ivano Malavolta, Stefano Ruberto
Tommaso Soru, Valerio Terragni
Ivano Malavolta
Gran Sasso Science Institute (Italy)
ivano.malavolta@gssi.infn.it
ABSTRACT
Recently, companies like IBM and Adobe and a growing
community of developers advocate hybrid mobile apps
development as a possible solution to mobile platforms
fragmentation. Hybrid mobile apps are consistent across
platforms and built on web standards.
In this study, we present an empirical investigation into mobile
hybrid apps. Our goal is to identify and analyse the traits and
distinctions of publicly available hybrid mobile apps from end
users’ perspective. The study has been conducted by mining
11,917 free apps and 3,041,315 reviews from the Google Play
Store, and analyzing them from the end users’ perception
perspective. The results of this study build an objective and
reproducible snapshot about how hybrid mobile development is
performing “in the wild” in real projects, thus establishing a base
for future methods and techniques for developing hybrid mobile
apps.
FINDINGS
•  hybrid development frameworks are perceived as better
suited for data-intensive mobile apps, whereas they
perform poorly when dealing with low-level, platform-
specific features
•  end users value hybrid and native apps similarly
•  in some categories, end users perceive native apps better
than hybrid apps with respect to performance and the
presence of bugs
RESEARCH QUESTIONS
What is the difference between hybrid and native mobile apps
as perceived by end users?
– RQ1: What is the difference in the perceived value between
hybrid and native mobile apps?
– RQ2: What is the difference in the perceived performance
between hybrid and native mobile apps?
– RQ3: What is the difference in the perceived bugginess
between hybrid and native mobile apps?
– RQ4: What is the difference in the initial download overhead
between hybrid and native mobile apps?
Dimensions of empirical studies
“In the lab” versus “in the wild” studies
Qualitative versus quantitative studies
Primary versus secondary studies
“In the lab” versus “in the wild”
studies
Common “in the lab” methods
– Controlled experiments
– Literature reviews
– Simulations
Common “in the wild” methods
– Quasi-experiments
– Case studies
– Survey research
– Ethnographies
– Action research
Examples
Qualitative versus quantitative
studies
Qualitative research
studying objects in their natural setting and letting the
findings emerge from the observations
– inductive process
– the subject is the person
Quantitative research
quantifying a relationship or to compare two or more groups
with the aim to identify a cause-effect relationship
– fixed implied factors
– focus on collected quantitative data à promotes comparison and
statistical analyses
They are
complementary
Primary versus secondary studies
Primary studies
empirical studies in which we directly make measurements
or observations about the objects of interest, whether by
surveys, experiments, case studies, etc.
Secondary studies
empirical studies that do not generate any data from direct
measurements, but:
– analyze a set of primary studies
– usually seek to aggregate the results from these in order to
provide strongerforms of evidence about a phenomenon
Examples
…and what about this?
Types of empirical studies
• Survey
• Case study
• Experiment
Survey
Def: a system for collecting information from or about
people to describe, compare or explain their knowledge,
attitudes and behavior
Often an investigation performed in retrospect
Interviews and questionnaires are the primary means of
gathering qualitative or quantitative data
These are done through taking a sample which is
representative from the population to be studied
Example: our survey on arch. languages
1. ALs Identification
– Definition of a preliminary set of ALs
– Systematic search
2. Planning the Survey
3. Designing the survey
4. Analyzing the Data
– vertical analysis (and coding) + horizontalanalysis
Case study
Def: an empirical enquiry to investigate one instance (or a
small number of instances) of a contemporary software
engineering phenomenon within its real-life context,
especially when the boundary between phenomenon and
context cannot be clearly specified
Observational study
Data collected to track a specific attribute or establishing
relationships between different attributes
Multivariate statistical analysis is often applied
Example
Experiment
Def: an empirical enquiry that manipulates one factor or
variable of the studied setting.
1. Identify and understand the variables that play a role in software
development, and the connections between variables
2. Learn cause-effect relationships between the development
process and the obtained products
3. Establish laws and theories about software construction that
explain development behaviour
Experiment
process
Example
http://dl.acm.org/citation.cfm?id=2491411.2491428
What to choose?
How to have an impact in reality?
This is called technology transfer
Writing good software
engineering papers
Contents of this part of lecture extracted from Ivica Crnkovic’s lecture on
software engineering research papers writing at Mälardalen University
(Sweden)
Research Papers
The basic and most important activity of the research
• Visible results, quality stamp
• Means for communications with other researchers
What, precisely, was your contribution?
– What questiondid you answer?
– Why should the reader care?
– What larger question does this address?
What is your new result?
– What new knowledge have you contributed that the reader can use
elsewhere?
– What previous work (yours or someone else’s) do you build on?
– How is your result different from and better than this prior work?
– What, precisely and in detail, is your new result?
Why should the reader believe your result?
– What standard should be used to evaluate yourclaim?
– What concrete evidence shows that your result satisfies your claim?
If you answer these questions clearly, you’ll probably
communicate your result well
A good research paper should
answer a number of questions
Let’s reconsider our SE research
process…
Research
questions
Research
results
Research
validation
What do program committees
look for?
The program committee looks for
– a clear statement of the specific problem you solved
– the question about software development you answered
– an explanation of how the answerwill help solve an important
software engineering problem
You'll devote most of your paper to describing your result,
but you should begin by explaining what question you're
answering and why the answer matters
Research
questions
Research results
Explain precisely
– what you have contributed to the store of software engineering
knowledge
– how this is useful beyond your own project
What do program committees look
for?
The program committee looks for
– interesting, novel, exciting results that significantly enhance our
ability
• to develop and maintain software
• to know the quality of the software we develop
• to recognize general principles about software
• or to analyze properties of software
You should explain your result in such a way that someone
else could use your ideas
What do program committees look
for? What’s new here?
Use verbs that shows
RESULTS, not only efforts
• What existing technology does your research build on?
• What existing technology or prior research does your
research provide a superior alternative to?
• What’s new here compared to your own previouswork?
• What alternatives have other researchers pursued?
• How is your work different or better?
What has been done before? How is
your work different or better?
72
Explain the relation to other work
clearly
What, precisely, is the result?
• Explain what your result is and how it works. Be concrete
and specific. Use examples.
– Example: system implementation
• If the implementation demonstrates an implementation
technique, how does it help the reader use the technique
in another setting?
• If the implementation demonstrates a capability or
performance improvement, what concrete evidence does
it offer to support the claim?
• If the system is itself the result, in what way is it a
contribution to knowledge? Does it, for example, show
you can do something that no one has done before?
Why should the reader believe your
result?
Show evidence that your result is valid—that it actually helps
to solve the problem you set out to solve
What do program committees look for? Why
should the reader believe your result?
• If you claim to improve on prior art, compare your result
objectivelyto the prior art
• If you used an analysis technique, follow the rules of that
analysis technique
• If you offer practical experience as evidence for your result,
establish the effect your research has. If at all possible,
compare similar situations with and without your result
• If you performed a controlled experiment, explain the
experimentaldesign.What is the hypothesis? What is the
treatment? What is being controlled?
• If you performed an empirical study, explainwhat you
measured, how you analyzed it, and what you concluded
A couple of words on the abstract of
a paper
People judge papers by their abstracts and read the
abstract in order to decide whether to read the whole paper.
It's important for the abstract to tell the whole story
Don't assume, though, that simply adding a sentence about
analysis or experience to your abstract is sufficient; the
paper must deliver what the abstract promises
Example of an abstract structure:
1. Two or three sentences about the current state of the art,
identifying a particular problem
2. One or two sentences about what this paper contributes to
improving the situation
3. One or two sentences about the specific result of the paper
and the main idea behind it
4. A sentence about how the result is demonstrated or defended
Coming back to the initial example…
State of
the art
Overall
contribution
Specific
results
Validation
✗ ✓✓✗ ✗
Second try…
State of
the art
Overall
contribution
Specific
results
Validation
What this lecture means to you?
You now know how to carry on research in SE
Don’t focus on the “size” of the problem, but on
– the relevance (the practical, but also the theoretical!)
– the accuracy in the investigation (problem and evaluation
research)
When conducting empirical research, don’t make claims you
cannot eventually measure
Finally, don’t think in black and white only
– don’t divide the world in methods, analyses, case study, etc.
– don’t be afraid to look also at otherdisciplines à we are software
engineers in any case J
Suggested readings
1. Checking App Behavior Against App Descriptions (Alessandra Gorla,
Ilaria Tavecchia, Florian Gross, Andreas Zeller), In Proceedings of the
36th InternationalConference on Software Engineering, ACM, 2014.
2. Linares-Vásquez, M., Bavota, G., Bernal-Cárdenas, C., Oliveto, R., Di
Penta, M., and Poshyvanyk, D., "Mining Energy-Greedy API Usage
Patterns in Android Apps: an Empirical Study", in Proceedings of 11th
IEEE Working Conference on Mining Software Repositories (MSR'14),
Hyderabad, India, May 31- June 1, 2014, pp. 2-11
3. Shaw, M. (2003), Writing Good Software Engineering Research
Paper., in Lori A. Clarke; Laurie Dillon & Walter F. Tichy, ed., 'ICSE' ,
IEEE Computer Society, , pp. 726-737 .
4. Shaw, M. (2002), 'What makes good research in software
engineering?', STTT 4 (1) , 1-7 .
References
http://link.springer.com/book/10.1007%2F978-3-642-29044-2
Contact
Ivano Malavolta |
Post-doc researcher
Gran Sasso Science Institute
iivanoo
ivano.malavolta@gssi.infn.it
www.ivanomalavolta.com

More Related Content

What's hot

Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Design Thinking for Requirements Engineering
Design Thinking for Requirements EngineeringDesign Thinking for Requirements Engineering
Design Thinking for Requirements EngineeringDaniel Mendez
 
Surveys in Software Engineering
Surveys in Software EngineeringSurveys in Software Engineering
Surveys in Software EngineeringDaniel Mendez
 
Theory Building in RE - The NaPiRE Initiative
Theory Building in RE - The NaPiRE InitiativeTheory Building in RE - The NaPiRE Initiative
Theory Building in RE - The NaPiRE InitiativeDaniel Mendez
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overviewrmk_rrj
 
A Simplified Agile Methodology for Ontology Development
A Simplified Agile Methodology for Ontology DevelopmentA Simplified Agile Methodology for Ontology Development
A Simplified Agile Methodology for Ontology DevelopmentUniversity of Bologna
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysisHoang Nguyen
 
1Introduction to OOAD
1Introduction to OOAD1Introduction to OOAD
1Introduction to OOAD Shahid Riaz
 
WMJ&GMBwosc08-Effective Learning & Production Via Modelling
WMJ&GMBwosc08-Effective Learning & Production Via ModellingWMJ&GMBwosc08-Effective Learning & Production Via Modelling
WMJ&GMBwosc08-Effective Learning & Production Via ModellingGary Boyd
 
Past and Future of Software Testing and Analysis
Past and Future of Software Testing and AnalysisPast and Future of Software Testing and Analysis
Past and Future of Software Testing and AnalysisLionel Briand
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
UML-Driven Software Performance Engineering: A systematic mapping and a revie...
UML-Driven Software Performance Engineering: A systematic mapping and a revie...UML-Driven Software Performance Engineering: A systematic mapping and a revie...
UML-Driven Software Performance Engineering: A systematic mapping and a revie...Vahid Garousi
 
software requirement engineering
software requirement engineeringsoftware requirement engineering
software requirement engineeringdeviyasharwin
 
Machine learning the high interest credit card of technical debt [PWL]
Machine learning the high interest credit card of technical debt [PWL]Machine learning the high interest credit card of technical debt [PWL]
Machine learning the high interest credit card of technical debt [PWL]Jenia Gorokhovsky
 

What's hot (20)

CS8592-OOAD Lecture Notes Unit-1
CS8592-OOAD Lecture Notes Unit-1CS8592-OOAD Lecture Notes Unit-1
CS8592-OOAD Lecture Notes Unit-1
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Design Thinking for Requirements Engineering
Design Thinking for Requirements EngineeringDesign Thinking for Requirements Engineering
Design Thinking for Requirements Engineering
 
Surveys in Software Engineering
Surveys in Software EngineeringSurveys in Software Engineering
Surveys in Software Engineering
 
Theory Building in RE - The NaPiRE Initiative
Theory Building in RE - The NaPiRE InitiativeTheory Building in RE - The NaPiRE Initiative
Theory Building in RE - The NaPiRE Initiative
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
CS8592-OOAD Question Bank
CS8592-OOAD  Question BankCS8592-OOAD  Question Bank
CS8592-OOAD Question Bank
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overview
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
A Simplified Agile Methodology for Ontology Development
A Simplified Agile Methodology for Ontology DevelopmentA Simplified Agile Methodology for Ontology Development
A Simplified Agile Methodology for Ontology Development
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
1Introduction to OOAD
1Introduction to OOAD1Introduction to OOAD
1Introduction to OOAD
 
WMJ&GMBwosc08-Effective Learning & Production Via Modelling
WMJ&GMBwosc08-Effective Learning & Production Via ModellingWMJ&GMBwosc08-Effective Learning & Production Via Modelling
WMJ&GMBwosc08-Effective Learning & Production Via Modelling
 
Past and Future of Software Testing and Analysis
Past and Future of Software Testing and AnalysisPast and Future of Software Testing and Analysis
Past and Future of Software Testing and Analysis
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
UML-Driven Software Performance Engineering: A systematic mapping and a revie...
UML-Driven Software Performance Engineering: A systematic mapping and a revie...UML-Driven Software Performance Engineering: A systematic mapping and a revie...
UML-Driven Software Performance Engineering: A systematic mapping and a revie...
 
software requirement engineering
software requirement engineeringsoftware requirement engineering
software requirement engineering
 
SIMULATION
SIMULATIONSIMULATION
SIMULATION
 
ooAD
ooADooAD
ooAD
 
Machine learning the high interest credit card of technical debt [PWL]
Machine learning the high interest credit card of technical debt [PWL]Machine learning the high interest credit card of technical debt [PWL]
Machine learning the high interest credit card of technical debt [PWL]
 

Similar to SE Research Process

[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 
1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docxdrennanmicah
 
Research: Why? What? How?
Research: Why? What? How?Research: Why? What? How?
Research: Why? What? How?Jan Claes
 
Experimenting with eXtreme Design (EKAW2010)
Experimenting with eXtreme Design (EKAW2010)Experimenting with eXtreme Design (EKAW2010)
Experimenting with eXtreme Design (EKAW2010)evabl444
 
Systematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping StudiesSystematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping Studiesalessio_ferrari
 
A New Model for Testing
A New Model for TestingA New Model for Testing
A New Model for TestingSQALab
 
Goal Dynamics_From System Dynamics to Implementation
Goal Dynamics_From System Dynamics to ImplementationGoal Dynamics_From System Dynamics to Implementation
Goal Dynamics_From System Dynamics to ImplementationAmjad Adib
 
Case Study Research in Software Engineering
Case Study Research in Software EngineeringCase Study Research in Software Engineering
Case Study Research in Software Engineeringalessio_ferrari
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
Writing good research papers
Writing good research papersWriting good research papers
Writing good research papersAhmed Sabbah
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniquesMajong DevJfu
 
Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Panos Fitsilis
 
Non Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdfNon Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdfJeevaPadmini
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?Òscar Vilaplana
 
Empirical Software Engineering
Empirical Software EngineeringEmpirical Software Engineering
Empirical Software EngineeringRahimLotfi
 
2cee Master Cocomo20071
2cee Master Cocomo200712cee Master Cocomo20071
2cee Master Cocomo20071CS, NcState
 
How to conduct systematic literature review
How to conduct systematic literature reviewHow to conduct systematic literature review
How to conduct systematic literature reviewKashif Hussain
 
2015-11-11 research seminar
2015-11-11 research seminar2015-11-11 research seminar
2015-11-11 research seminarifi8106tlu
 
2016 03-09 research seminar
2016 03-09 research seminar2016 03-09 research seminar
2016 03-09 research seminarifi8106tlu
 

Similar to SE Research Process (20)

[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx1How to Perform ExperimentsBasic Concepts CSCI .docx
1How to Perform ExperimentsBasic Concepts CSCI .docx
 
Research: Why? What? How?
Research: Why? What? How?Research: Why? What? How?
Research: Why? What? How?
 
Experimenting with eXtreme Design (EKAW2010)
Experimenting with eXtreme Design (EKAW2010)Experimenting with eXtreme Design (EKAW2010)
Experimenting with eXtreme Design (EKAW2010)
 
Systematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping StudiesSystematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping Studies
 
A New Model for Testing
A New Model for TestingA New Model for Testing
A New Model for Testing
 
Goal Dynamics_From System Dynamics to Implementation
Goal Dynamics_From System Dynamics to ImplementationGoal Dynamics_From System Dynamics to Implementation
Goal Dynamics_From System Dynamics to Implementation
 
Case Study Research in Software Engineering
Case Study Research in Software EngineeringCase Study Research in Software Engineering
Case Study Research in Software Engineering
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Writing good research papers
Writing good research papersWriting good research papers
Writing good research papers
 
14 analysis techniques
14 analysis techniques14 analysis techniques
14 analysis techniques
 
Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland
 
3 analysis and design overview
3 analysis and design overview3 analysis and design overview
3 analysis and design overview
 
Non Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdfNon Functional Requirements in Requirement Engineering.pdf
Non Functional Requirements in Requirement Engineering.pdf
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?
 
Empirical Software Engineering
Empirical Software EngineeringEmpirical Software Engineering
Empirical Software Engineering
 
2cee Master Cocomo20071
2cee Master Cocomo200712cee Master Cocomo20071
2cee Master Cocomo20071
 
How to conduct systematic literature review
How to conduct systematic literature reviewHow to conduct systematic literature review
How to conduct systematic literature review
 
2015-11-11 research seminar
2015-11-11 research seminar2015-11-11 research seminar
2015-11-11 research seminar
 
2016 03-09 research seminar
2016 03-09 research seminar2016 03-09 research seminar
2016 03-09 research seminar
 

More from Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green ITIvano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Ivano Malavolta
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile developmentIvano Malavolta
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architecturesIvano Malavolta
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionIvano Malavolta
 

More from Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perception
 

Recently uploaded

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

SE Research Process

  • 2.
  • 3. Roadmap Software engineering research Empirical strategies Writing good research papers
  • 4. Software engineering research Some contents of this part of lecture extracted from Ivica Crnkovic’s lecture on software engineering research at Mälardalen University (Sweden)
  • 5. What makes good research? is it HARD? is it USEFUL? is it ELEGANT? These are all orthogonal and equally respectful Very little chances that you will excel in all three axes We are young researchers, don’t refuse usefulness, why limit your impact to dusty publications? http://goo.gl/d1YM9v
  • 6. My vision about research Research Theory Industrial projectsProgramming Experimentation Ivano Malavolta.Research Statement. November 2013. http://goo.gl/99N5AS
  • 7. The basic characteristic of SE Real world practical PROBLEM Real world practical SOLUTION ?
  • 8. Research objectives Key objectives • Quality àutility as well as functional correctness • Cost à both of development and of use • Timeliness à good-enough result, when it’s needed Address problems that affect practical software Real world practical PROBLEM Real world practical SOLUTION
  • 11. Research strategy Real world practical PROBLEM Real world practical SOLUTION Research setting IDEALIZED PROBLEM Research setting SOLUTION to IDEALIZED PROBLEM Research product (technique, method, model, system, …)
  • 13. Validation of the results Real world practical PROBLEM Real world practical SOLUTION Research setting IDEALIZED PROBLEM Research setting SOLUTION to IDEALIZED PROBLEM Research product (technique, method, model, system, …)
  • 14. Validation of the results Real world practical PROBLEM Real world practical SOLUTION Research setting IDEALIZED PROBLEM Research setting SOLUTION to IDEALIZED PROBLEM Research product (technique, method, model, system, …) Validation task 1 Does the product solve the idealized problem?
  • 15. Validation of the results Real world practical PROBLEM Real world practical SOLUTION Research setting IDEALIZED PROBLEM Research setting SOLUTION to IDEALIZED PROBLEM Research product (technique, method, model, system, …) Validation task 1 Does the product solve the idealized problem? Validation task 2 Does the product help to solve the practical problem?
  • 16. Validation of the results: example
  • 18. Types of research questions FEASIBILITY CHARACTERIZATION METHOD/MEANS GENERALIZATION DISCRIMINATION Does X exist, and what is it? Is it possible to do X at all? What are the characteristics of X? What exactly do we mean by X? What are the varieties of X, and how are they related? How can we do X? What is a betterway to do X? How can we automate doing X? Is X always true of Y? Given X, what will Y be? How do I decide whetherX orY?
  • 19. Example: software architecture The software architecture of a program or computing system is the structure or structures of the system,which comprise software components, the externallyvisible properties of those components and the relationships among them L. Bass, P. Clements, R. Kazman, Software Architecture In Practise, Addison Wesley, 1998 System subsystem Subsystem component component component
  • 20. Example: SA research questions FEASIBILITY CHARACTERIZATION METHOD/MEANS GENERALIZATION DISCRIMINATION Is it possible to automatically generate code from an architecturalspecification? What are the important concepts for modeling software architectures? How can we exploit domain knowledge to improve software development? What patterns capture and explain a significant set of architectural constructs? How can a designer make tradeoff choices among architectural alternatives?
  • 21. Example: SA research questions FEASIBILITY CHARACTERIZATION METHOD/MEANS GENERALIZATION DISCRIMINATION Is it possible to automatically generate code from an architecturalspecification? What are the important concepts for modeling software architectures? How can we exploit domain knowledge to improve software development? What patterns capture and explain a significant set of architectural constructs? How can a designer make tradeoff choices among architectural alternatives? Types of research questions FEASIBILITY CHARACTERIZATION METHOD/MEANS GENERALIZATION DISCRIMINATION Does X exist, and what is it? Is it possible to do X at all? What are the characteristics of X? What exactly do we mean by X? What are the varieties of X, and how are they related? How can we do X? What is a betterway to do X? How can we automate doing X? Is X always true of Y? Given X, what will Y be? How do I decide whetherX orY?
  • 23. Research results Real world practical PROBLEM Real world practical SOLUTION Research setting IDEALIZED PROBLEM Research product (technique, method, model, system, …)
  • 24. Types of research results QUALITATIVE & DESCRIPTIVE MODELS TECHNIQUES SYSTEM EMPIRICAL MODELS ANALYTIC MODELS Report interesting observations Generalize from (real-life) examples Structure a problem area; ask good questions Invent newways to do some tasks, including implementation techniques Develop ways to select from alternatives Embody result in a system, using the system both for insight and as carrier of results Develop empirical predictive models from observed data Develop structuralmodels that permit formal analysis
  • 25. Example: SA research results QUALITATIVE & DESCRIPTIVE MODELS TECHNIQUES SYSTEM EMPIRICAL MODELS ANALYTIC MODELS Early architecturalmodels Architecturalpatterns Domain-specific software architectures UML to support object-oriented design Architecturallanguages Communication metrics as indicator of impact on project complexity Formal specification of higher-level architecture for simulation
  • 26. Example: SA research results QUALITATIVE & DESCRIPTIVE MODELS TECHNIQUES SYSTEM EMPIRICAL MODELS ANALYTIC MODELS Early architecturalmodels Architecturalpatterns Domain-specific software architectures UML to support object-oriented design Architecturallanguages Communication metrics as indicator of impact on project complexity Formal specification of higher-level architecture for simulation Types of research results QUALITATIVE & DESCRIPTIVE MODELS TECHNIQUES SYSTEM EMPIRICAL MODELS ANALYTIC MODELS Report interesting observations Generalize from (real-life) examples Structure a problem area; ask good questions Invent newways to do some tasks, including implementation techniques Develop ways to select from alternatives Embody result in a system, using the system both for insight and as carrier of results Develop empirical predictive models from observed data Develop structuralmodels that permit formal analysis
  • 28. Research validation Real world practical PROBLEM Real world practical SOLUTION Research setting IDEALIZED PROBLEM Research setting SOLUTION to IDEALIZED PROBLEM Research product (technique, method, model, system, …) Validation task 1 Does the product solve the idealized problem? Validation task 2 Does the result help to solve the practical problem?
  • 29. Types of research validation PERSUASION IMPLEMENTATION EVALUATION ANALYSIS Formal model Empirical model EXPERIENCE Qualitative model Decision criteria Empirical model I thought hard about this, and I believe… Here is a prototype of a system that… Given these criteria, the object rates as… Given the facts, here are consequences… Rigorous derivation and proof Data on use in controlled situation Report on use in practice Narrative Comparison of systems in actual use Data, usually statistical, on practice
  • 30. Example: SA research validation PERSUASION IMPLEMENTATION EVALUATION ANALYSIS Formal model Empirical model EXPERIENCE Qualitative model Decision criteria Empirical model Early architecturalmodels Early architecturallanguages Taxonomies, performance improvement Formal schedulability analysis User interface structure Architecturalpatterns Domain-specific architectures Communication and project complexity
  • 31. Example: SA research validation PERSUASION IMPLEMENTATION EVALUATION ANALYSIS Formal model Empirical model EXPERIENCE Qualitative model Decision criteria Empirical model Early architecturalmodels Early architecturallanguages Taxonomies, performance improvement Formal schedulability analysis User interface structure Architecturalpatterns Domain-specific architectures Communication and project complexity Types of research validation PERSUASION IMPLEMENTATION EVALUATION ANALYSIS Formal model Empirical model EXPERIENCE Qualitative model Decision criteria Empirical model I thought hard about this, and I believe… Here is a prototype of a system that… Given these criteria, the object rates as… Given the facts, here are consequences… Rigorous derivation and proof Data on use in controlled situation Report on use in practice Narrative Comparison of systems in actual use Data, usually statistical, on practice
  • 32. “NO-NO”s for software engineering research • Assume that a result demonstrated fro a 10K-line system will scale to a 500K-line system • Expect everyone to do things “my way” • Believe functional correctness is sufficient • Assume the existence of a complete, consistent specification • Just build things without extracting enduring lessons • Devise a solution in ignorance of how the world really works
  • 33. Building blocks for research Feasibility Characterization Method/means Generalization Selection Qualitative model Technique System Empirical model Analytic model Persuasion Implementation Evaluation Analysis Experience Question Result Validation
  • 34. Is this a good plan? Feasibility Characterization Method/means Generalization Selection Qualitative model Technique System Empirical model Analytic model Persuasion Implementation Evaluation Analysis Experience Question Result Validation
  • 35. A common good plan Feasibility Characterization Can X be done better? Generalization Selection Qualitative model Technique Build Y Empirical model Analytic model Persuasion Implementation Measure Y, compare to X Analysis Experience Question Result Validation
  • 36. Is this a good plan? Feasibility Characterization Method/means Generalization Selection Qualitative model Technique System Empirical model Analytic model Persuasion Implementation Evaluation Analysis Experience Question Result Validation
  • 37. A common, but bad, plan Feasibility Characterization Method/means Generalization Selection Qualitative model Technique System Empirical model Analytic model Persuasion Implementation Evaluation Analysis Experience Question Result Validation
  • 38. Two other good plans Can X be done at all? Characterization Is X always true of Y? Selection Qualitative model Technique Build a Y that does X Empirical model Formally model Y, prove X “Look it works!” Implementation Check proof Experience Question Result Validation Method/means Evaluation
  • 39. Exercise Choose a research paper and try to map it into the building blocks of SE research Feasibility Characterization Method/means Generalization Selection Qualitative model Technique System Empirical model Analytic model Persuasion Implementation Evaluation Analysis Experience Question Result Validation
  • 40. How do you trust a research then? 1. What are the problems from the real world? – Are they “real” and widespread? – What are the elements of them? 2. Are the solutions general? What are their limits? Real world practical PROBLEM Real world practical SOLUTION ? EMPIRICAL SOFTWARE ENGINEERING
  • 41. Some contents of this part of lecture extracted from Matthias Galster ‘s tutorial titled “Introduction to Empirical Research Methodologies” at ECSA 2014 Empirical strategies* *We will have a dedicated course on this topic
  • 42. Empirical software engineering Scientific use of quantitative and qualitative data to – understand and – improve software products and software development processes Data is central to address any research question Issues related to validity addressed continuously [Victor Basili]
  • 43. Why empirical studies? Anecdotal evidence or “common-sense” often not good enough – Anecdotes often insufficient to support decisions in the industry – Practitioners need betteradvice on how and when to use methodologies Evidence important for successful technology transfer – systematicgathering of evidence – wide dissemination of evidence
  • 44. Example End Users’ Perception of Hybrid Mobile Apps in the Google Play Store Ivano Malavolta, Stefano Ruberto Tommaso Soru, Valerio Terragni Ivano Malavolta Gran Sasso Science Institute (Italy) ivano.malavolta@gssi.infn.it ABSTRACT Recently, companies like IBM and Adobe and a growing community of developers advocate hybrid mobile apps development as a possible solution to mobile platforms fragmentation. Hybrid mobile apps are consistent across platforms and built on web standards. In this study, we present an empirical investigation into mobile hybrid apps. Our goal is to identify and analyse the traits and distinctions of publicly available hybrid mobile apps from end users’ perspective. The study has been conducted by mining 11,917 free apps and 3,041,315 reviews from the Google Play Store, and analyzing them from the end users’ perception perspective. The results of this study build an objective and reproducible snapshot about how hybrid mobile development is performing “in the wild” in real projects, thus establishing a base for future methods and techniques for developing hybrid mobile apps. FINDINGS •  hybrid development frameworks are perceived as better suited for data-intensive mobile apps, whereas they perform poorly when dealing with low-level, platform- specific features •  end users value hybrid and native apps similarly •  in some categories, end users perceive native apps better than hybrid apps with respect to performance and the presence of bugs RESEARCH QUESTIONS What is the difference between hybrid and native mobile apps as perceived by end users? – RQ1: What is the difference in the perceived value between hybrid and native mobile apps? – RQ2: What is the difference in the perceived performance between hybrid and native mobile apps? – RQ3: What is the difference in the perceived bugginess between hybrid and native mobile apps? – RQ4: What is the difference in the initial download overhead between hybrid and native mobile apps?
  • 45. Dimensions of empirical studies “In the lab” versus “in the wild” studies Qualitative versus quantitative studies Primary versus secondary studies
  • 46. “In the lab” versus “in the wild” studies Common “in the lab” methods – Controlled experiments – Literature reviews – Simulations Common “in the wild” methods – Quasi-experiments – Case studies – Survey research – Ethnographies – Action research
  • 48. Qualitative versus quantitative studies Qualitative research studying objects in their natural setting and letting the findings emerge from the observations – inductive process – the subject is the person Quantitative research quantifying a relationship or to compare two or more groups with the aim to identify a cause-effect relationship – fixed implied factors – focus on collected quantitative data à promotes comparison and statistical analyses They are complementary
  • 49.
  • 50. Primary versus secondary studies Primary studies empirical studies in which we directly make measurements or observations about the objects of interest, whether by surveys, experiments, case studies, etc. Secondary studies empirical studies that do not generate any data from direct measurements, but: – analyze a set of primary studies – usually seek to aggregate the results from these in order to provide strongerforms of evidence about a phenomenon
  • 53. Types of empirical studies • Survey • Case study • Experiment
  • 54. Survey Def: a system for collecting information from or about people to describe, compare or explain their knowledge, attitudes and behavior Often an investigation performed in retrospect Interviews and questionnaires are the primary means of gathering qualitative or quantitative data These are done through taking a sample which is representative from the population to be studied
  • 55. Example: our survey on arch. languages 1. ALs Identification – Definition of a preliminary set of ALs – Systematic search 2. Planning the Survey 3. Designing the survey 4. Analyzing the Data – vertical analysis (and coding) + horizontalanalysis
  • 56. Case study Def: an empirical enquiry to investigate one instance (or a small number of instances) of a contemporary software engineering phenomenon within its real-life context, especially when the boundary between phenomenon and context cannot be clearly specified Observational study Data collected to track a specific attribute or establishing relationships between different attributes Multivariate statistical analysis is often applied
  • 58. Experiment Def: an empirical enquiry that manipulates one factor or variable of the studied setting. 1. Identify and understand the variables that play a role in software development, and the connections between variables 2. Learn cause-effect relationships between the development process and the obtained products 3. Establish laws and theories about software construction that explain development behaviour
  • 62. How to have an impact in reality? This is called technology transfer
  • 63. Writing good software engineering papers Contents of this part of lecture extracted from Ivica Crnkovic’s lecture on software engineering research papers writing at Mälardalen University (Sweden)
  • 64. Research Papers The basic and most important activity of the research • Visible results, quality stamp • Means for communications with other researchers
  • 65. What, precisely, was your contribution? – What questiondid you answer? – Why should the reader care? – What larger question does this address? What is your new result? – What new knowledge have you contributed that the reader can use elsewhere? – What previous work (yours or someone else’s) do you build on? – How is your result different from and better than this prior work? – What, precisely and in detail, is your new result? Why should the reader believe your result? – What standard should be used to evaluate yourclaim? – What concrete evidence shows that your result satisfies your claim? If you answer these questions clearly, you’ll probably communicate your result well A good research paper should answer a number of questions
  • 66. Let’s reconsider our SE research process… Research questions Research results Research validation
  • 67. What do program committees look for? The program committee looks for – a clear statement of the specific problem you solved – the question about software development you answered – an explanation of how the answerwill help solve an important software engineering problem You'll devote most of your paper to describing your result, but you should begin by explaining what question you're answering and why the answer matters Research questions
  • 68. Research results Explain precisely – what you have contributed to the store of software engineering knowledge – how this is useful beyond your own project
  • 69. What do program committees look for? The program committee looks for – interesting, novel, exciting results that significantly enhance our ability • to develop and maintain software • to know the quality of the software we develop • to recognize general principles about software • or to analyze properties of software You should explain your result in such a way that someone else could use your ideas
  • 70. What do program committees look for? What’s new here? Use verbs that shows RESULTS, not only efforts
  • 71. • What existing technology does your research build on? • What existing technology or prior research does your research provide a superior alternative to? • What’s new here compared to your own previouswork? • What alternatives have other researchers pursued? • How is your work different or better? What has been done before? How is your work different or better?
  • 72. 72 Explain the relation to other work clearly
  • 73. What, precisely, is the result? • Explain what your result is and how it works. Be concrete and specific. Use examples. – Example: system implementation • If the implementation demonstrates an implementation technique, how does it help the reader use the technique in another setting? • If the implementation demonstrates a capability or performance improvement, what concrete evidence does it offer to support the claim? • If the system is itself the result, in what way is it a contribution to knowledge? Does it, for example, show you can do something that no one has done before?
  • 74. Why should the reader believe your result? Show evidence that your result is valid—that it actually helps to solve the problem you set out to solve
  • 75. What do program committees look for? Why should the reader believe your result? • If you claim to improve on prior art, compare your result objectivelyto the prior art • If you used an analysis technique, follow the rules of that analysis technique • If you offer practical experience as evidence for your result, establish the effect your research has. If at all possible, compare similar situations with and without your result • If you performed a controlled experiment, explain the experimentaldesign.What is the hypothesis? What is the treatment? What is being controlled? • If you performed an empirical study, explainwhat you measured, how you analyzed it, and what you concluded
  • 76. A couple of words on the abstract of a paper People judge papers by their abstracts and read the abstract in order to decide whether to read the whole paper. It's important for the abstract to tell the whole story Don't assume, though, that simply adding a sentence about analysis or experience to your abstract is sufficient; the paper must deliver what the abstract promises
  • 77. Example of an abstract structure: 1. Two or three sentences about the current state of the art, identifying a particular problem 2. One or two sentences about what this paper contributes to improving the situation 3. One or two sentences about the specific result of the paper and the main idea behind it 4. A sentence about how the result is demonstrated or defended
  • 78. Coming back to the initial example… State of the art Overall contribution Specific results Validation ✗ ✓✓✗ ✗
  • 79. Second try… State of the art Overall contribution Specific results Validation
  • 80. What this lecture means to you? You now know how to carry on research in SE Don’t focus on the “size” of the problem, but on – the relevance (the practical, but also the theoretical!) – the accuracy in the investigation (problem and evaluation research) When conducting empirical research, don’t make claims you cannot eventually measure Finally, don’t think in black and white only – don’t divide the world in methods, analyses, case study, etc. – don’t be afraid to look also at otherdisciplines à we are software engineers in any case J
  • 81. Suggested readings 1. Checking App Behavior Against App Descriptions (Alessandra Gorla, Ilaria Tavecchia, Florian Gross, Andreas Zeller), In Proceedings of the 36th InternationalConference on Software Engineering, ACM, 2014. 2. Linares-Vásquez, M., Bavota, G., Bernal-Cárdenas, C., Oliveto, R., Di Penta, M., and Poshyvanyk, D., "Mining Energy-Greedy API Usage Patterns in Android Apps: an Empirical Study", in Proceedings of 11th IEEE Working Conference on Mining Software Repositories (MSR'14), Hyderabad, India, May 31- June 1, 2014, pp. 2-11 3. Shaw, M. (2003), Writing Good Software Engineering Research Paper., in Lori A. Clarke; Laurie Dillon & Walter F. Tichy, ed., 'ICSE' , IEEE Computer Society, , pp. 726-737 . 4. Shaw, M. (2002), 'What makes good research in software engineering?', STTT 4 (1) , 1-7 .
  • 83. Contact Ivano Malavolta | Post-doc researcher Gran Sasso Science Institute iivanoo ivano.malavolta@gssi.infn.it www.ivanomalavolta.com