2,847 papers · page 125 of 143
Stéphane Ducasse, Tudor Gîrba, Oscar Nierstrasz
Software systems are complex and difficult to analyze. Reengineering is a complex activity that usually involves combining different techniques and tools. MOOSE is an reengineering environment designed to provide the necessary infrastructure for building new tools and for integra…
Ivonne Erfurth, Wilhelm R. Rossak
The failure of projects is often based on difficulties in the direct and indirect communication between developer and customer teams. For the customer it is hard to understand the frequently used terms, process models, and technological concepts. Developers have a hard time to un…
Jacky Estublier, Germán Vega
Reuse has always been a major goal in software engineering, since it promises large gains in productivity, quality and time to market reduction. Practical experience has shown that substantial reuse has only successfully happened in two cases: libraries, where many generic and sm…
Jeffrey Fischer, Ranjit Jhala, Rupak Majumdar
Dataflow analyses sacrifice path-sensitivity for efficiency and lead to false positives when used for verification. Predicate refinement based model checking methods are path-sensitive but must perform many expensive iterations to find all the relevant facts about a program, not …
Andrew Le Gear, Jim Buckley
Continuing to develop software from scratch will not be feasible indefinitely. Reusing existing software would seem to be a viable solution to this problem. The paradigm of component-based development (CBD) explicitly accounts for reuse in its process. Unfortunately the majority …
Pavel Grigorenko, Ando Saabas, Enn Tyugu
A way of combining object-oriented and structural paradigms of software composition is demonstrated in a tool for generative programming. Metaclasses are introduced that are components with specifications called metainterfaces. Automatic code generation is used that is based on s…
Murali Haran, Alan F. Karr, Alessandro Orso, Adam A. Porter, Ashish P. Sanil
There is an increasing interest in techniques that support measurement and analysis of fielded software systems. One of the main goals of these techniques is to better understand how software actually behaves in the field. In particular, many of these techniques require a way to …
Matthias Heindl, Stefan Biffl
Project managers aim at keeping track of interdependencies between various artifacts of the software development lifecycle, to find out potential requirements conflicts, to better understand the impact of change requests, and to fulfill process quality standards, such as CMMI req…
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar
A modular program analysis considers components independently and provides a succinct summary for each component, which is used when checking the rest of the system. Consider a system consisting of a library and a client. A temporal summary, or interface, of the library specifies…
Lorin Hochstein, Victor R. Basili, Marvin V. Zelkowitz, Jeffrey K. Hollingsworth, Jeffrey C. Carver
Measuring effort accurately and consistently across subjects in a programming experiment can be a surprisingly difficult task. In particular, measures based on self-reported data may differ significantly from measures based on data which is recorded automatically from a subject's…
Reid Holmes, Robert J. Walker, Gail C. Murphy
Using the application programming interfaces (API) of large software systems requires developers to understand details about the interfaces that are often not explicitly defined. However, documentation about the API is often incomplete or out of date. Existing systems that make u…
Wiebe Hordijk, Roel J. Wieringa
We want to explore and analyse design decisions that influence maintainability of software. Software maintainability is important because the effort expended on changes and fixes in software is a major cost driver. We take an empirical, qualitative approach, by investigating case…
Paola Inverardi, Henry Muccini, Patrizio Pelliccione
CHARMY is a framework for designing and validating architectural specifications. In the early stages of the software development process, the CHARMY framework assists the software architect in the design and validation phases. To increase its usability in an industrial context, t…
Miryung Kim, Vibha Sazawal, David Notkin, Gail C. Murphy
It has been broadly assumed that code clones are inherently bad and that eliminating clones by refactoring would solve the problems of code clones. To investigate the validity of this assumption, we developed a formal definition of clone evolution and built a clone genealogy tool…
Jeff Kramer, Jeff Magee
The role of structure in specifying, designing, analysing, constructing and evolving software has been the central theme of our research in Distributed Software Engineering. This structural discipline dictates formalisms and techniques that are compositional, components that are …
Viktor Kuncak, Daniel Jackson
We present a technique that enables the use of finite model finding to check the satisfiability of certain formulas whose intended models are infinite. Such formulas arise when using the language of sets and relations to reason about structured values such as algebraic datatypes.…
Renaud De Landtsheer, Axel van Lamsweerde
Growing attention is being paid to application security at requirements engineering time. Confidentiality is a particular subclass of security concerns that requires sensitive information to never be disclosed to unauthorized agents. Disclosure refers to undesired knowledge state…
Emmanuel Letier, Jeff Kramer, Jeff Magee, Sebastián Uchitel
Fluent model checking is an automated technique for verifying that an event-based operational model satisfies some state-based declarative properties. The link between the event-based and state-based formalisms is defined through "fluents" which are state predicates whose value a…
Zhenmin Li, Yuanyuan Zhou
Programs usually follow many implicit programming rules, most of which are too tedious to be documented by programmers. When these rules are violated by programmers who are unaware of or forget about them, defects can be easily introduced. Therefore, it is highly desirable to hav…
Chao Liu, Xifeng Yan, Long Fei, Jiawei Han, Samuel P. Midkiff
Automated localization of software bugs is one of the essential issues in debugging aids. Previous studies indicated that the evaluation history of program predicates may disclose important clues about underlying bugs. In this paper, we propose a new statistical model-based appro…