0000000000061703
AUTHOR
Markku Sakkinen
Reverse inheritance in statically typed object-oriented programming languages
Reverse inheritance is a new class reuse mechanism, an experimental implementation of which we have built for Eiffel. It enables a more natural design approach, factorization of common features (members), insertion of classes into an existing hierarchy etc. Due to its reuse potential in Eiffel we consider exploring its capabilities in other industrial-strength programming languages like C++, Java and C#.
Content quality assessment and acceptance testing in location‐based services
In this paper, we develop and evaluate an approach to assessing the content quality in a location‐based service (LBS). The proposed approach, instead of assessing the quality in absolute terms such as completeness or accuracy, measures the effect that the imperfection of the content is having on the reliability of that specific LBS. We apply the basic ideas from Software Reliability Engineering (SRE), but develop a modification of SRE, 2‐Branch, in order to separate content quality from other factors, such as positioning imprecision, and to reduce the measurement error. In our experimental study, we first compare 2‐Branch to the standard SRE, after which we experimentally analyze some prope…
An Exploratory Empirical Study of Internal Quality Attributes of Open Source Software Systems
This exploratory empirical study has focused on open source software (OSS). Seven medium-sized OSS systems from the SourceForge repository were analysed. Over 100 internal quality attributes and programming practices were scrutinized by using two semi-automated source code analysis tools (FindBugs and SoftCalc). Many statistically significant relations were revealed by the conducted regression analyses. Seven so-called bad programming practices; as manifested by the measured source code inconsistencies were identified as having significant relations to internal software quality. Additionally we set and tested two hypotheses. That investigation provided mixed results partly supporting some o…
On embedding Boolean as a subtype of integer
Exploratory Analysis of the Relations between Code Cloning and Open Source Software Quality
In recent literature there is still a lack of understanding how the reuse and cloning of software affects its quality. The focus of this study is to analyze the relationships between source code cloning and software quality for the case of open source software project forks (SPFs) as a kind of software reuse. In total 117 releases related to three generations of eight eMule SPFs were scrutinized. Software quality was measured in terms of internal quality attributes. The tools CCFinderX and SoftCalc were used to measure code cloning metrics and internal quality attributes, respectively. In total 8 code cloning metrics and 71 internal quality attributes were analyzed. The quantitative relatio…
How to best return the value of a function
Fault-proneness of open source software: Exploring its relations to internal software quality and maintenance process
The goal of this study is to explore how fault-proneness of open source software (OSS) could be explained in terms of internal quality attributes and maintenance process metrics. We reviewed earlier studies and performed a multiple case study of eight Java-based projects based on data available in the Source Forge repository. Overall, we studied 342 re- leases of those systems. As is usual, software quality was regarded as a set of internal and external quality attributes. A to- tal of 76 internal quality attributes were measured from the source code of the selected systems via the tool SoftCalc. Two external quality attributes contributing to fault-proneness were in turn obtained from the …
Selftype is a special case
It is pointed out that selftype is actually only a special case of a construct that has been well described in the literature.
Another defence of enumerated types
I claim that enumerations, while of course not strictly necessary, are an elegant and useful facility in modern programming languages. I try to show that arguments recently given against them are weak at best and bogus a t worst, for general-purpose programming. Some related issues on types in programming languages are touched as well. These make it even more questionable whether Oberon marks progress or regress in language design.
On the darker side of C++
We discuss several negative features and properties of the C++ language, some common with C, others pertaining to C++ classes. Remedies are proposed for most of the latter ones, most of the former ones being feared to be already incurable. The worst class-related defects claimed in present C++ have to do with free store management. Some hints are given to programmers on how to avoid pitfalls.
Inheritance and other main principles of C++ and other object-oriented languages
ICOOLPS 2010 and MASPEGHI 2010.
International audience; At ECOOP 2010 in Maribor, Slovenia, the two workshops MASPEGHI (MechAnisms for SPEcialization, Generalization and inHerItance) and ICOOOLPS (Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems) were combined because both were rather small and shared common concerns, their topic areas being strongly related. Six papers had been accepted to MASPEGHI, but only five were presented because the authors of one paper could not attend the conference and workshop. Three papers had been accepted to ICOOOLPS, and all were also presented. The workshop authors were later asked to submit extended versions of their papers for possible publica…
Transformations Between UML Diagrams
The Unified Modeling Language (UML) provides various diagram types for describing a system from different perspectives or abstraction levels. Hence, UML diagrams describing the same system are dependent and strongly overlapping. In this paper we study how this can be exploited for specifying transformation operations between different diagram types. We discuss various general approaches and viewpoints of model transformations in UML. The source and target diagram types for useful transformations are analyzed and given categories. The potentially most interesting transformation operations are discussed in detail. It is concluded that the transformation operations can automate a substantial p…
MASPEGHI 2004 Mechanisms for Speialization, Generalization and Inheritance
Rapport de Recherche Projet OCL, N° I3S/RR-2004-15-FR; International audience; MASPEGHI 2004 is the third edition of the MASPEGHI workshop. This year the organizers of both the ECOOP 2002 Inheritance Workshop and MASPEGHI 2003 came together to enlarge the scope of the workshop and to address new challenges. We succeeded in gathering a diverse group of researchers and practitioners interested in mechanisms for managing specialization and generalization of programming language components. The workshop contained a series of presentations with discussions as well as group work, and the interplay between the more than 22 highly skilled and inspiring people from many different communities gave ri…
Bottom-up design of active object-oriented databases
Conceptual Differences Among Functional Size Measurement Methods
The paper focuses on measuring and assessing the relation of adaptive maintenance process and quality of open source software (OSS). A framework for assessing adaptive maintenance process is proposed and applied. The framework consists of six sub- processes. Five OSSs with considerable number of releases have been studied empirically. Their main evolutionary and quality characteristics have been measured. The main results of the study are the following:. 1) Software maintainability is affected mostly by the activities of the 'analysis' maintenance sub-process. 2) Software testability is affected by the activities of all maintenance sub-processes. 3) Software reliability is affected mostly b…
Assessing maintainability change over multiple software releases
The focus of the paper is to reveal the relationships between software maintainability and other internal software quality attributes. The source code characteristics of five Java-based open-source software products are analyzed using the software measurement tool SoftCalc. The relationships between maintainability and internal quality attributes are identified based on the Pearson product moment correlation analysis. Our results show negative correlations between maintainability and some well-known internal software quality attributes, as well as the ones between maintainability and complexity metrics. Particularly, according to our results, the Number of Data Variables Declared and the De…
The inheritance workshop
International audience; The Inheritance Workshop at ECOOP 2002, which took place on Tuesday, 11 June, was the first ECOOP workshop focusing on inheritance after the successful workshops in 1991 and 1992. The workshop was intended as a forum for designers and implementers of object-oriented languages, and for software developers with an interest in inheritance. It was organized by Andrew P. Black, Erik Ernst, Peter Grogono, and Markku Sakkinen.
Success and Failure Factors for Software Architecture
First published in the Proceedings of the 6th IBIMA Conference on Managing Information in the Digital Economy, June 19-21, 2006, Bonn, Germany This paper provides a view of the software architecture development and management process. It reviews the literature and practitioners’ experiences relating to the factors that cause success and failure for software architecture and classifies these factors into subgroups. This study demonstrates that the success of software architecture depends on multiple factors. Project management, organisational culture and communication, the skills of architects and architectural know-how, architecture methods and practices, the quality of system requirements …