This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Green Lab" course of the Computer Science master program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Je vous partage l'un des présentations que j'ai réalisé lorsque j'étais élève ingénieur pour le module 'Anglais Business ' , utile pour les étudiants souhaitant préparer une présentation en anglais sur les Design Pattern - ou les patrons de conception .
Theory Building in RE - The NaPiRE InitiativeDaniel Mendez
Talk I gave on the "Naming the Pain in Requirements Engineering" initiative (www.re-survey.org) at the Seminar on Forty Years of Requirements Engineering – Looking Forward and Looking Back (RE@40) in Kappel am Albis, Switzerland
In this presentation we introduce SAMOD, a.k.a. Simplified Agile Methodology for Ontology Development, a novel agile methodology for the development of ontologies by means of small steps of an iterative workflow that focuses on creating well-developed and documented models starting from exemplar domain descriptions.
WMJ&GMBwosc08-Effective Learning & Production Via ModellingGary Boyd
How to analyse a project venture and How to use a better universal modelling notation technology (j-Maps, CONTEXT+(tm) )for software and system development, troubleshooting and translation to other computer and or natural languages
UML-Driven Software Performance Engineering: A systematic mapping and a revie...Vahid Garousi
Slides for my invited talk in the 1st International Workshop on Advanced Topics on Software Engineering (ATSEN 2014), Istanbul Kultur University, on November 7, 2014
UML-Driven Software Performance Engineering: A systematic mapping and a review of several selected techniques
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
1How to Perform ExperimentsBasic Concepts CSCI .docxdrennanmicah
1
How to Perform Experiments:
Basic Concepts
CSCI 783: Empirical Software Engineering
2
Empirical Software Engineering: How to use empirical research in software engineering?
Repetition of empirical studies is necessary!
Definition
Planning and Design
Execution
Analysis
Packaging
Definition: Determine study goal(s)
Design: and research hypothesis(es). Select type of empirical study to be employed Operationalize study goal(s) and hypotheses. Make study plan: what needs to be done by whom and when. Prepare material required to conduct the study
Execution: Run study according to plan and collect required data
Analysis: Analyze collected data to answer operationalized study goals and hypotheses
Packaging: Report your studies
3
Empiricism in Software Engineering
Confirmation
Evaluation
Identification
Validation
Understanding
Guidance / Control
Of more or less accepted hypotheses:
For example: object-orientation is good for reuse
Of Methods:
For example: Whether Java produces higher quality code than C++
Of Relationships:
For example: Find a relationship between fault prone components and design concepts
Of Models and Measures:
For example: Validate a specific cost estimate model
Of Methods, Techniques and Models:
For example: To understand the relationship between inspections and testing
to help in Management:
For example: as input to personnel to software inspections
To support Decision- Making with respect to Changes:
For example: Whether or not to introduce a new development tool
C
Change / Improve
Experimentation in software engineering
4
Experiment Objective
Cause
Construct
Effect
Construct
Cause-effect
Construct
Theory
Treatment
Outcome
Treatment - Outcome
Construct
Observation
Experiment Operation
Independent variable
Dependent variable
5
What is Empirical Software Engineering Research
What kinds of questions are "interesting"?
What kinds of results help to answer these questions, and what research methods can produce these results?
What kinds of evidence can demonstrate the validity of a result, and how to distinguish good results from bad ones?
6
Types of Research Questions
What kinds of questions are "interesting"?
Types of Research Questions
Method or means of development
Method for analysis
Design, evaluation, or analysis of a particular instance
Generalization or characterization
Feasibility
How can we do/create (or automate doing) X?
What is a better way to do/create X?
How can I evaluate the quality/correctness of X?
How do I choose between X and Y?
What is a (better) design or implementation for application X?
What is property X of artifact/method Y?
How does X compare to Y?
What is the current state of X / practice of Y?
Given X, what will Y (necessarily) be?
What, exactly, do we mean by X?
What are the important characteristics of X?
What is a good formal/empirical model for X?
What are the varieties of X, how are they related?
Is it possible to accomplis.
Je vous partage l'un des présentations que j'ai réalisé lorsque j'étais élève ingénieur pour le module 'Anglais Business ' , utile pour les étudiants souhaitant préparer une présentation en anglais sur les Design Pattern - ou les patrons de conception .
Theory Building in RE - The NaPiRE InitiativeDaniel Mendez
Talk I gave on the "Naming the Pain in Requirements Engineering" initiative (www.re-survey.org) at the Seminar on Forty Years of Requirements Engineering – Looking Forward and Looking Back (RE@40) in Kappel am Albis, Switzerland
In this presentation we introduce SAMOD, a.k.a. Simplified Agile Methodology for Ontology Development, a novel agile methodology for the development of ontologies by means of small steps of an iterative workflow that focuses on creating well-developed and documented models starting from exemplar domain descriptions.
WMJ&GMBwosc08-Effective Learning & Production Via ModellingGary Boyd
How to analyse a project venture and How to use a better universal modelling notation technology (j-Maps, CONTEXT+(tm) )for software and system development, troubleshooting and translation to other computer and or natural languages
UML-Driven Software Performance Engineering: A systematic mapping and a revie...Vahid Garousi
Slides for my invited talk in the 1st International Workshop on Advanced Topics on Software Engineering (ATSEN 2014), Istanbul Kultur University, on November 7, 2014
UML-Driven Software Performance Engineering: A systematic mapping and a review of several selected techniques
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
1How to Perform ExperimentsBasic Concepts CSCI .docxdrennanmicah
1
How to Perform Experiments:
Basic Concepts
CSCI 783: Empirical Software Engineering
2
Empirical Software Engineering: How to use empirical research in software engineering?
Repetition of empirical studies is necessary!
Definition
Planning and Design
Execution
Analysis
Packaging
Definition: Determine study goal(s)
Design: and research hypothesis(es). Select type of empirical study to be employed Operationalize study goal(s) and hypotheses. Make study plan: what needs to be done by whom and when. Prepare material required to conduct the study
Execution: Run study according to plan and collect required data
Analysis: Analyze collected data to answer operationalized study goals and hypotheses
Packaging: Report your studies
3
Empiricism in Software Engineering
Confirmation
Evaluation
Identification
Validation
Understanding
Guidance / Control
Of more or less accepted hypotheses:
For example: object-orientation is good for reuse
Of Methods:
For example: Whether Java produces higher quality code than C++
Of Relationships:
For example: Find a relationship between fault prone components and design concepts
Of Models and Measures:
For example: Validate a specific cost estimate model
Of Methods, Techniques and Models:
For example: To understand the relationship between inspections and testing
to help in Management:
For example: as input to personnel to software inspections
To support Decision- Making with respect to Changes:
For example: Whether or not to introduce a new development tool
C
Change / Improve
Experimentation in software engineering
4
Experiment Objective
Cause
Construct
Effect
Construct
Cause-effect
Construct
Theory
Treatment
Outcome
Treatment - Outcome
Construct
Observation
Experiment Operation
Independent variable
Dependent variable
5
What is Empirical Software Engineering Research
What kinds of questions are "interesting"?
What kinds of results help to answer these questions, and what research methods can produce these results?
What kinds of evidence can demonstrate the validity of a result, and how to distinguish good results from bad ones?
6
Types of Research Questions
What kinds of questions are "interesting"?
Types of Research Questions
Method or means of development
Method for analysis
Design, evaluation, or analysis of a particular instance
Generalization or characterization
Feasibility
How can we do/create (or automate doing) X?
What is a better way to do/create X?
How can I evaluate the quality/correctness of X?
How do I choose between X and Y?
What is a (better) design or implementation for application X?
What is property X of artifact/method Y?
How does X compare to Y?
What is the current state of X / practice of Y?
Given X, what will Y (necessarily) be?
What, exactly, do we mean by X?
What are the important characteristics of X?
What is a good formal/empirical model for X?
What are the varieties of X, how are they related?
Is it possible to accomplis.
Why do we perform research?
What exactly is research?
How to perform research?
How to perform natural science?
How to perform design science?
How to design research?
Systematic Literature Reviews and Systematic Mapping Studiesalessio_ferrari
Lecture slides on Systematic Literature Reviews and Systematic Mapping Studies in software engineering. It describes the different steps, discusses differences between the two methods, and gives guidelines on how to conduct these types of study.
Lecture on case study design and reporting in empirical software engineering. The lecture touches on the topics of units of analysis, data collection, data analysis, validity procedures, and collaboration with industries.
Large software projects cannot be built without some amount of analysis and design. But not all parts of the system require the same amount of design. Some may not require any upfront design at all. Others require a few minutes of architecture discussion; some require weeks of analysis, documents and review. A balance is necessary: too much design and you're delaying the project; too little and you will add technical debt which you'll have to pay in future rewrites and painful maintaining.
How do we decide when design is needed and how much of it is needed? How do other Agile projects do it?
In this talk I discuss what the Agile literature has to say about architecture and how we can answer this question.
How to conduct systematic literature reviewKashif Hussain
The slides show how to conduct systematic literature review (SLR) in any field of research. It is highly important that any SLR should ultimately highlight potential future directions and research gaps so that prospect researchers may focus on those particular areas.
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
Slides of my invited talk at the 2nd workshop on Quality and Reliability Assessment of Robotic Software Architectures and Components (QRARSAC), co-located with the International Conference on Robotics and Automation (ICRA 2023).
Abstract of the talk. Today robotic systems are central to many industrial sectors, such as logistics, autonomous warehousing, and healthcare. If on one side ROS is helping roboticists by providing a standardized communication platform for robotic systems, on the other side ROSsystems are getting more and more large and complex, thus making it extremely difficult to ensure their level of quality, e.g., in terms of performance, security, energy efficiency, testability, maintainability. Improving the quality of robotic systems is not a new activity, but in this talk, we tackle it from a different perspective: we look at them from a software architecture perspective. In this talk, I will walk you through a series of experiments we conducted at the Vrije Universiteit Amsterdam targeting the architecture of ROS systems, we will discuss some architectural tactics for ROS systems, and will close with an overview of our open-source tool for automatically executing experiments on robotics software.
The slides of a short presentation I gave about my experience about working in the context of EU grants. It contains tips and tricks for the before/during/after phases of a EU project.
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
The slides of my presentation about the Green Lab at the event called Research Cocktail (October 2020). The event is organized by the Computer Science Department of the Vrije Universiteit Amsterdam.
The source code of our tools and the replication package of our experiments performed in the Green Lab can be found here: https://github.com/S2-group
For further details about the Green Lab and all our activities around it, you can contact me at i.malavolta@vu.nl
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
Slides of my presentation at the NIER track of the 41th International Conference on Software Engineering (ICSE 2019).
The paper is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2019_NAPPA.pdf
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
Slides of my presentation at the Research track of the 34th International Conference on Software Maintenance and Evolution (ICSME 2018).
The full paper is available here: http://www.ivanomalavolta.com/files/papers/ICSME_2018.pdf
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
Slides of my presentation at the Journal first track of the 40th International Conference on Software Engineering (ICSE 2018).
The accompanying extended abstract is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2018_JournalFirst.pdf
The original TSE paper is available here: http://www.ivanomalavolta.com/files/papers/TSE_2017.pdf
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
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
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?
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
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?
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
✗ ✓✓✗ ✗
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 .