Powered by
2013 2nd SEMAT Workshop on a General Theory of Software Engineering (GTSE),
May 26, 2013,
San Francisco, CA, USA
2nd SEMAT Workshop on a General Theory of Software Engineering (GTSE)
Foreword
This workshop, organized by the SEMAT initiative, aims to provide a forum for discussing the concept of a general theory of software engineering. The topics considered include the benefits, the desired qualities, the core components and the form of a general theory. The workshop follows the publication of an article with the title “Where is the Theory for Software Engineering?” in September/October 2012 issue of IEEE Software, as well as the first SEMAT Workshop on a General Theory of Software Engineering, held in November 2012 in Stockholm, Sweden.
Speeding-Up Software Engineering's Escape from Its Pre-paradigmatic Stage
Iaakov Exman
(Jerusalem College of Engineering, Israel)
Software Engineering has been for at least a decade in a pre-paradigmatic stage,
lacking a broadly accepted theoretical basis. But the repeated ritual of novel
theories’ suggestion, enthusiastic adoption and subsequent decline, does not
provide by itself enough thrust to escape the pre-paradigmatic stage. This paper
promotes, concomitantly to novel theory proposal, active elimination of mistaken,
irrelevant, undesirable notions among previous candidates. Specifically four
NOT theorems are stated, justified and explained in the wider software
engineering context.
@InProceedings{GTSE13p1,
author = {Iaakov Exman},
title = {Speeding-Up Software Engineering's Escape from Its Pre-paradigmatic Stage},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {1--4},
doi = {},
year = {2013},
}
Uncovering Theories in Software Engineering
Klaas-Jan Stol and Brian Fitzgerald
(Lero, Ireland; University of Limerick, Ireland)
There has been a growing interest in the role of theory within Software Engineering (SE) research. For several decades, researchers within the SE research community have argued that, to become a real engineering science, SE needs to develop stronger theoretical foundations. A few authors have proposed guidelines for constructing theories, building on insights from other disciplines. However, so far, much SE research is not guided by explicit theory, nor does it produce explicit theory. In this paper we argue that SE research does, in fact, show traces of theory, which we call theory fragments. We have adapted an analytical framework from the social sciences, named the Validity Network Schema (VNS), that we use to illustrate the role of theorizing in SE research. We illustrate the use of this framework by dissecting three well known research papers, each of which has had significant impact on their respective subdisciplines. We conclude this paper by outlining a number of implications for future SE research, and show how by increasing awareness and training, development of SE theories can be improved.
@InProceedings{GTSE13p5,
author = {Klaas-Jan Stol and Brian Fitzgerald},
title = {Uncovering Theories in Software Engineering},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {5--14},
doi = {},
year = {2013},
}
On a Theory of Software Engineering: A Proposal Based on Transaction Cost Economics
Cengiz Erbas and Bahar Celikkol Erbas
(ASELSAN, Turkey; TOBB University of Economics and Technology, Turkey)
This article leverages the findings of the transaction cost economics field, and proposes a simple theory and associated vocabulary to serve as a foundation for a unified theory of software engineering. It characterizes software engineering as a set of transactions organized under three governance structures. The theory explains the strengths and weaknesses of these governance structures in relation to asset specificity. It takes into account the recursive nature of the notions in software engineering, and applies uniformly to various contexts at different levels of granularity. The theory not only provides an explanatory framework for some of the propositions given in the software engineering literature, but also reveals the boundaries of their applicability.
@InProceedings{GTSE13p15,
author = {Cengiz Erbas and Bahar Celikkol Erbas},
title = {On a Theory of Software Engineering: A Proposal Based on Transaction Cost Economics},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {15--18},
doi = {},
year = {2013},
}
Why (Meta-)Theories of Automated Software Design Are Essential: A Personal Perspective
Don Batory
(University of Texas at Austin, USA)
Program generators are tools that automatically
construct customized programs in a particular domain. Generators
mechanize implicit ”theories” of how a domain expert
would go about writing an efficient program. Abstracting the core
activities of a domain expert and automating them is analogous
to creating and evaluating theories in physics and other natural
sciences. Theories have a revered place in natural sciences;
eventually theories will assume a comparable place in automated
software design. The reason is simple economics: generators will
remove the burden of difficult or mundane tasks from an engineer
to a machine.
@InProceedings{GTSE13p19,
author = {Don Batory},
title = {Why (Meta-)Theories of Automated Software Design Are Essential: A Personal Perspective},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {19--22},
doi = {},
year = {2013},
}
An Empirical Approach to a General Theory of Software (Engineering)
Mathias Ekstedt
(KTH, Sweden)
This article describes an approach to how a general theory of software engineering could be developed. It argues that the approach should be top-down in nature. It also argues that the theory should include predictive capabilities that are empirically corroborated and as a result of the ambition to be general the theory needs to be probabilistic. Brief examples of such theories are provided.
@InProceedings{GTSE13p23,
author = {Mathias Ekstedt},
title = {An Empirical Approach to a General Theory of Software (Engineering)},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {23--26},
doi = {},
year = {2013},
}
Forming Theories of Practices for Software Engineering
Kari Smolander and Tero Päivärinta
(Lappeenranta University of Technology, Finland; Luleå University of Technology, Sweden)
The paper outlines a model for theorizing about development practices, especially taking into account the intended rationale for, actual realization of, and resulting impacts from using particular practices in varying contexts. This includes discussing of two different modes of thinking through which we can approach software development practices: technical rationality vs. reflection-in-action. By framing development practices taking place in software organizations as organizational practices, the paper also sketches previous practice research in organizations, which has profoundly informed this work. Finally, the paper compares the SEMAT approach to the outlined model, and suggests a few points of critique and complementary elements to the SEMAT initiative, especially in its capabilities towards theorizing.
@InProceedings{GTSE13p27,
author = {Kari Smolander and Tero Päivärinta},
title = {Forming Theories of Practices for Software Engineering},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {27--34},
doi = {},
year = {2013},
}
Possible Core Theories for Software Engineering
Paul Ralph
(Lancaster University, UK)
Following recent calls for greater attention to theory in software engineering, this paper reviews five theories that provide insight into software engineering behavior Complexity Theory, Sensemaking-Coevolution-Implementation Theory, the Theory of Boundary Objects, Transactive Memory Theory and the Theory of Cognitive Biases. Rather than providing contradictory explanations, these theories apply at different units of analysis and may therefore be used simultaneously to understand the same software engineering phenomena.
@InProceedings{GTSE13p35,
author = {Paul Ralph},
title = {Possible Core Theories for Software Engineering},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {35--38},
doi = {},
year = {2013},
}
A Theoretical Foundation for Software Engineering: A Model Calculus
Dewayne E. Perry
(University of Texas at Austin, USA)
Theory is a critical and undervalued part of software engineering and software engineering research. While empirical evaluation is important in both software engineering and software engineering research, there is still a lack of maturity and deep understanding of this critical aspect of both enterprises. The purpose of my unifying theoretical foundation for software engineering is, in part, to illuminate the place and importance of both theory and empirical evaluation. The focus here is on the model calculus and its use in the composition of more complex models to emphasize 1) the taxonomic space of both theory and empirical evaluation, and 2) the complexity resulting from various model compositions. The latter should not be a surprise as the complexity of model compositions merely reflects the fundamental and essential characteristic of our software systems, that is, complexity.
@InProceedings{GTSE13p39,
author = {Dewayne E. Perry},
title = {A Theoretical Foundation for Software Engineering: A Model Calculus},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {39--46},
doi = {},
year = {2013},
}
Generating a Useful Theory of Software Engineering
Steve Adolph and Philippe Kruchten
(University of British Columbia, Canada)
We argue a theory of software engineering must be useful to practitioners and explain the phenomena they are experiencing. Useful theories of software engineering can be generated empirically using methods such as grounded theory. We present our research and others as examples of how useful theory can be generated
@InProceedings{GTSE13p47,
author = {Steve Adolph and Philippe Kruchten},
title = {Generating a Useful Theory of Software Engineering},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {47--50},
doi = {},
year = {2013},
}
On the Value of Essence to Software Engineering Research: A Preliminary Study
Pan-Wei Ng, Shihong Huang, and Yumei Wu
(Ivar Jacobson Int., Singapore; Florida Atlantic University, USA; Beihang University, China)
There has been growing interest in the use of empirical approaches in software engineering research. However, many researchers pointed out that a framework for reporting software engineering case study findings is lacking. As a consequence, it is difficult to compare results or evaluate their generality. In this paper, we use Essence as a foundation for such a framework. Essence is a software engineering kernel and language developed by SEMAT, whose aim is to find a common ground of software engineering. We chose Essence as a foundation because of its unique features such as being comprehensive, model-based, and extensible. We demonstrate the use of this framework by taking an existing case study research and analyzing how Essence could report its findings more systematically and comprehensively. The case study we investigate is about whether the customer representative role is too demanding in an extreme programming (XP) environment. Using the Essence framework, we found a strong validity threat to this case study. Although the validity threat could also be detected otherwise, the fact that it was not detected previously only highlight the importance of having greater rigor in case study reporting and evaluation, which is why a framework is necessary. Moreover, by using Essence as a foundation for such a framework, we show the value Essence brings to the software engineering research community.
@InProceedings{GTSE13p51,
author = {Pan-Wei Ng and Shihong Huang and Yumei Wu},
title = {On the Value of Essence to Software Engineering Research: A Preliminary Study},
booktitle = {Proc.\ GTSE},
publisher = {IEEE},
pages = {51--58},
doi = {},
year = {2013},
}
proc time: 0.04