Software engineering for machine learning: a case study – the morning paper


software engineering case study

Case studies and examples help you understand real systems and illustrate some of the practical difficulties of software engineering. In each of the following case studies, I provide a short description of the system, what aspects of software engineering that it can be used to illustrate and a set of links to more specific information about the system. Mar 24,  · This two PDF file is good case studies for software engineering: Page on Page on The case study is most useful for generating hypotheses; that is, in the first stage of a total research process, whereas other methods are more suitable for hypothesis testing and theory building. case study contains a bias toward verification, that is, a tendency to .

Case Study for Software Engineering

Please take this quick survey to tell us about what happens after you publish a paper. Empirical Software Engineering, software engineering case study. AprilCite as. Case study is a suitable research methodology for software engineering research since it studies contemporary phenomena in its natural context. However, the understanding of what constitutes a case study varies, and hence the quality of the resulting studies. This paper aims at providing an introduction to case study methodology and guidelines for researchers conducting case studies and readers studying reports of such studies.

The terminology and guidelines are compiled from different methodology handbooks in other research domains, in particular social science and information systems, and adapted to the needs in software engineering. We present recommended practices for software engineering case studies as well as empirically derived and evaluated checklists for researchers and readers of case study research. The acceptance of empirical studies in software engineering and their contributions to increasing knowledge is continuously growing.

The analytical research paradigm is not sufficient for investigating complex real life issues, involving humans and their interactions with technology. Further, software engineering case study, existing work on empirical research methodology in software engineering has a strong focus on experimental research; the earliest by Moher and SchneiderBasili et al.

All have a tendency towards software engineering case study approaches, although also qualitative approaches are discussed during the later years, software engineering case study, e. Recently, a comprehensive view of empirical research issues for software engineering has been presented, edited by Shull et al. However, the presented studies range from very ambitious and well organized studies in the field, to small toy examples that claim to be case studies.

Additionally, there are different taxonomies used to classify research. The term case study is used in parallel with terms like field study and observational study, each focusing on a particular aspect of the research methodology. For example, Lethbridge et al. Zelkowitz and Wallace propose a terminology that is somewhat different from what is used in other fields, and categorize project monitoring, case study and field study as observational methods Zelkowitz and Wallace This plethora of terms causes confusion and problems when trying to aggregate multiple empirical studies.

The case study methodology is well suited for many kinds of software engineering research, as the objects of software engineering case study are contemporary phenomena, which are hard to study in isolation. Case studies do not generate the same results on e.

As they are different from analytical and controlled empirical studies, case studies have been criticized for being of less value, impossible to generalize from, being biased by researchers etc, software engineering case study.

This critique can be met by applying proper research methodology practices as well as reconsidering that knowledge is more than statistical significance Flyvbjerg ; Lee However, the research community has to learn more about the case study methodology in order to review and judge it properly.

Case study methodology handbooks are superfluously available in e. In the field of information systems IS research, the case study methodology is also much more mature than in software engineering. For example, Benbasat et al. It is relevant to raise the question: what is specific for software engineering that motivates specialized research methodology?

In addition to the specifics of the examples, the characteristics of software engineering objects of study are different from social science and also to some extent from information systems. The study objects are 1 private corporations or units of public agencies developing software rather than public agencies or private corporations using software systems; 2 project oriented rather than line or function oriented; and 3 the studied work is advanced engineering work conducted by highly educated people rather than routine software engineering case study. Additionally, the software engineering research community has a pragmatic and result-oriented view on research methodology, rather than a philosophical stand, as noticed by Seaman The purpose of this paper is to provide guidance for the researcher conducting case studies, for reviewers of case study manuscripts and for readers of case study papers.

It is software engineering case study from general methodology handbooks, mainly from the social science field, as well as literature from the information systems field, and adapted to software engineering needs.

Existing literature on software engineering case studies is of course included as well. The underlying analysis is done by structuring the information according to a general case study research process presented in Section 2, software engineering case study. Links to data sources are given by regular references.

Rather it focuses on a set of issues that all contribute to the quality of the research. The minimum requirement for each issue must be judged in its context, and will most probably evolve over time.

We do neither assess the current status of case study research in software engineering. Further, examples are used both to illustrate good practices and lack thereof. This paper is outlined as follows, software engineering case study. We first define a set of terms in the field of empirical research, which we use throughout the paper Section 2. We define a case study research process Section 2. Section 3 discusses the design of a case study and planning for data collection.

Section 4 describes the process of data collection. In Section 5 issues on data analysis are treated, and reporting is discussed in Section 6. Section 7 discusses reading and reviewing case study report, and Section 8 summarizes the paper.

Checklists for conducting and reading case study research are linked to each step in the case study process, and summarized in the Appendix. Throughout the paper, we use three different case study examples to illustrate the methods. They illustrate solutions or identify problems in case study research, i. The examples are presented in a format like this and they are denoted study XP, RE and QA after their research area on agile methods extreme programmingrequirements engineering and quality assurance, respectively.

In order to set the scope for the type of empirical studies we address in this paper, we put case studies into the context of other research methodologies and refer to general definitions of the term case study according to RobsonYin software engineering case study Benbasat et al, software engineering case study.

The software engineering case study definitions agree on that case study is an empirical method aimed at investigating contemporary phenomena in their context. Robson calls it a research strategy and stresses the use of multiple sources of evidenceYin denotes it an inquiry and remarks that the boundary between the phenomenon and its context may be unclearsoftware engineering case study, while Benbasat et al. Quasi-experiments are similar to controlled experiments, except that subjects are not randomly assigned to treatments.

Quasi-experiments conducted in an industry setting may have many characteristics in common with case studies. More strictly, a case study is purely observational while action research is focused on and involved in the change process.

In software process improvement Dittrich et al, software engineering case study. However, when studying the effects of a change, e.

In IS, where action software engineering case study is widely used, there is a discussion on finding the balance between action and research, see e.

Avison et al. For the research part of action research, these guidelines apply as well. Easterbrook et al. We prefer to consider ethnographic studies as a specialized type of case studies with focus on cultural practices Easterbrook et al. Our guidelines apply to all these, except assertion which is not considered a proper research method. In general, software engineering case study, the borderline between the types of study is not always distinct.

We prefer to see project monitoring as a part of a case study and field studies as multiple case studies. Finally, a case study may contain elements of other research methods, e. Ethnographic methods, like interviews and observations are mostly used for data collection in case studies.

Exploratory—finding out what is happening, seeking new insights and generating ideas and hypotheses for new research. Explanatory—seeking an explanation of a situation or a problem, mostly but not necessary in the form of a causal relationship.

Improving—trying to improve a certain aspect of the studied phenomenon. Case study methodology was originally used primarily for exploratory purposes, and some researchers still limit case studies for this purpose, as discussed by Flyvbjerg However, it is also used for descriptive purposes, if the generality of the situation or phenomenon is of secondary importance. Case studies may be used for explanatory purposes, e.

This involves testing of software engineering case study theories in confirmatory studies. Finally, as indicated above, case studies in the software engineering discipline often take an improvement approach, similar to action research; see e.

Klein and Myers define three types of case study depending on the research perspective, positivist, critical and interpretive Klein and Myers A positivist case study searches evidence software engineering case study formal propositions, measures variables, tests hypotheses and draws inferences from a sample to a stated population, i.

A critical case study aims at social critique and at being emancipatory, i. Improving case studies software engineering case study have a character of being critical. Software engineering case studies tend to lean towards a positivist perspective, especially for explanatory type studies.

Conducting research on real world issues implies a trade-off between level of control and degree of realism. The realistic situation is often complex and non-deterministic, which hinders the understanding of what is happening, especially for studies with explanatory purposes. On the other hand, increasing the control reduces the degree of realism, software engineering case study, sometimes leading to the real influential factors being set outside the scope of the study.

Case studies are by definition conducted in real world settings, and thus have a high degree of realism, mostly at the expense of the level of control. The data collected in an empirical study may be quantitative or qualitative.

Quantitative data involves numbers and classes, software engineering case study, while qualitative data involves words, software engineering case study, descriptions, pictures, diagrams etc. Quantitative data is analyzed using statistics, software engineering case study, while qualitative data is analyzed using categorization and sorting. Case studies tend mostly to be based on qualitative data, as these provide a richer and deeper description, software engineering case study.

However, a combination of qualitative and quantitative data often provides better understanding of the studied phenomenon Seamani. The research process may be characterized as fixed or flexible according to Anastas and MacDonald and Robson In a fixed design process, all parameters are defined at the launch of the study, while in a flexible design process key parameters of the study may be changed during the course of the study.

Case studies are typically flexible design studies, while experiments and surveys are fixed design studies. Other literature use the terms quantitative and qualitative design studies, for fixed and flexible design studies respectively. Otherwise it may be unclear whether the term qualitative refers to the data or the design of the study. Data source triangulation—using more than one data source or collecting the same data at different occasions. Methodological triangulation—combining different software engineering case study of data collection methods, e.

Hence, a case study will never provide conclusions with statistical significance.


Software Engineering Case Studies


software engineering case study


Creating Awesome Case Study Software Engineering. Survey: in this part, it is about the collection of information from the specific population or to some sample but it is not necessarily an interview or questionnaire. Controlled experiment/experiment: with the controlled experiment, it is about measuring the effects of one variable to another variable.. In this part, it should be clear for 5/5. Case studies and examples help you understand real systems and illustrate some of the practical difficulties of software engineering. In each of the following case studies, I provide a short description of the system, what aspects of software engineering that it can be used to illustrate and a set of links to more specific information about the system. software engineering applies to machine-learning–centric components vs. previous application domains. II. BACKGROUND A. Software Engineering Processes The changing application domain trends in the software industry have influenced the evolution of the software pro-cesses practiced by teams at Microsoft. For at least a decadeCited by: 4.