Bjarte M. Østvold
Norwegian Computing Center
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Bjarte M. Østvold.
source code analysis and manipulation | 2007
Einar W. Høst; Bjarte M. Østvold
Method names make or break abstractions: good ones communicate the intention of the method, whereas bad ones cause confusion and frustration. The task of naming is subject to the whims and idiosyncracies of the individual since programmers have little to guide them except their personal experience. By analysing method implementations taken from a corpus of Java applications, we establish the meaning of verbs in method names based on actual use. The result is an automatically generated, domain-neutral lexicon of verbs, similar to a natural language dictionary, that represents the common usages of many programmers.
software language engineering | 2009
Einar W. Høst; Bjarte M. Østvold
Method names in Java are natural language phrases describing behaviour, encoded to make them easy for machines to parse. Programmers rely on the meaning encoded in method names to understand code. We know little about the language used in this encoding, its rules and structure, leaving the programmer without guidance in expressing her intent. Yet the meaning of the method names -- or phrases -- is readily available in the body of the methods they name. By correlating names and implementations, we can figure out the meaning of the original phrases, and uncover the rules of the phrase language as well. In this paper, we present an automatically generated proof-of-concept phrase book for Java, based on a large software corpus. The phrase book captures both the grammatical structure and the meaning of method phrases as commonly used by Java programmers.
leveraging applications of formal methods | 2011
Dilian Gurov; Bjarte M. Østvold; Ina Schaefer
A key challenge in software product line engineering is to represent solution space variability in an economic, yet easily understandable fashion. We introduce the notion of hierarchical variability models to describe families of products in a manner that facilitates their modular design and analysis. In this model, a family is represented by a common set of artifacts and a set of variation points with associated variants. A variant is again a hierarchical variability model, leading to a hierarchical structure. These models, however, are not unique with respect to the families they define. We therefore propose a quantitative measure on hierarchical variability models that expresses the degree to which a variability model captures commonality and variability in a family. Further, by imposing well-formedness constraints, we identify a class of variability models that, by construction, have maximal measure and are unique for the families they define. For this class of simple families, we provide a procedure that reconstructs their hierarchical variability model. The reconstructed model can be used to drive various static analyses by divide-and-conquer reasoning. Hierarchical variability models strike a balance between the formalism’s expressiveness and the desirable property of model uniqueness. We illustrate the approach by a small product line of Java classes.
formal methods for industrial critical systems | 2012
Bjarte M. Østvold; José Miguel Rojas
Distributed systems are hard to program, understand and analyze. Two key sources of complexity are the many possible behaviors of a system, arising from the parallel execution of its distributed nodes, and the handling of asynchronous messages exchanged between nodes. We show how to systematically construct executable models of publish/subscribe systems based on the Java Messaging Service (JMS). These models, written in the Abstract Behavioural Specification (ABS) language, capture the essentials of the messaging behavior of the original Java systems, and eliminate details not related to distribution and messages. We report on jms2abs, a tool that automatically extracts ABS models from the bytecode of JMS systems. Since the extracted models are formal and executable, they allow us to reason about the modeled JMS systems by means of tools built specifically for the modeling language. For example, we have succeeded to apply simulation, termination and resource analysis tools developed for ABS to, respectively, execute, prove termination and infer the resource consumption of the original JMS applications.
software language engineering | 2010
Einar W. Høst; Bjarte M. Østvold
Programmers rely on the conventional meanings of method names when writing programs. However, these conventional meanings are implicit and vague, leading to various forms of ambiguity. This is problematic since it hurts the readability and maintainability of programs. Java programmers would benefit greatly from a more well-defined vocabulary. Identifying synonyms in the vocabulary of verbs used in method names is a step towards this goal. By rooting the meaning of verbs in the semantics of a large number of methods taken from real-world Java applications, we find that such synonyms can readily be identified. To support our claims, we demonstrate automatic identification of synonym candidates. This could be used as a starting point for a manual canonicalisation process, where redundant verbs are eliminated from the vocabulary.
Archive | 2005
Jacques Malenfant; Bjarte M. Østvold
Object Orientation and Web Services.- Practical Problems of Programming in the Large (PPPL).- 8th Workshop on Quantitative Approaches in Object-Oriented Software Engineering (QAOOSE 2004).- Eighth Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts.- 2nd Workshop on Object-Oriented Language Engineering for the Post-Java Era: Back to Dynamicity.- Philosophy, Ontology, and Information Systems.- Communication Abstractions for Distributed Systems.- Formal Techniques for Java-Like Programs (FTfJP).- Component-Oriented Approaches to Context-Aware Computing.- The Combined 14th Workshop for PhD Students in Object-Oriented Systems and Doctoral Symposium.- MASPEGHI 2004 Mechanisms for Speialization, Generalization and Inheritance.- Software Evolution: A Trip Through Reflective, Aspect, and Meta-data Oriented Techniques.- Coordination and Adaptation Techniques for Software Entities.- Model-Driven Development (WMDD 2004).- Component-Oriented Programming(WCOP 2004).- 10th Workshop on Mobile Object Systems.- Fifth International Workshop on Object-Oriented Reengineering.- Evolution and Reuse of Language Specifications for DSLs (ERLS).- Programming Languages and Operating Systems.
european conference on object-oriented programming | 2009
Einar W. Høst; Bjarte M. Østvold
partial evaluation and semantic-based program manipulation | 2012
Edvard K. Karlsen; Einar W. Høst; Bjarte M. Østvold
Serdica Journal of Computing | 2014
Siavash Soleimanifard; Dilian Gurov; Bjarte M. Østvold; Minko Markov
software language engineering | 2010
Einar W. Høst; Bjarte M. Østvold