2,847 papers · page 133 of 143
Martin Lippert, Stefan Roock
Extreme programming (XP) works well for small software projects in not-too-complex application domains. In many of these projects the rather simple requirements engineering of XP (customers write story cards) has proved suitable. But today we are more often faced with complex app…
Chris Lüer, David S. Rosenblum
Prior research in software environments focused on three important problems---tool integration, artifact management, and process guidance. The context for that research, and hence the orientation of the resulting environments, was a traditional model of development in which an ap…
Mike Mannion, Hermann Kaindl
Reuse and requirements are very important for efficient and successful systems development. This tutorial presents the experiences of requirements reuse using a Method for Requirements Authoring and Management (MRAM). MRAM is a method for establishing and selecting from product l…
Atif M. Memon, Mary Lou Soffa, Martha E. Pollack
A widespread recognition of the usefulness of graphical user interfaces (GUIs) has established their importance as critical components of today's software. GUIs have characteristics different from traditional software, and conventional testing techniques do not directly apply to …
Yoshitomi Morisawa, Koji Torii
When implementing an application system in a distributed computing environment, several architectural questions arise, such as how and where computing resources are arranged, and how the communication among computing resources are implemented. To simplify the process of making th…
Robert L. Nord, Daniel J. Paulish, Robert W. Schwanke, Dilip Soni
It is now generally accepted that separating software architecture into multiple views can help in reducing complexity and in making sound decisions about design trade-offs. Our four views are based on current practice; they are loosely coupled, and address different engineering …
Norman Ramsey, Elöd Csirmaz
A file synchronizer restores consistency after multiple replicas of a filesystem have been changed independently. We present an algebra for reasoning about operations on filesystems and show that it is sound and complete with respect to a simple model. The algebra enables us to s…
Alexander Ran
Architecture of software is a collection of design decisions that are expensive to change. How to identify which design decisions are expensive to change? What are architecture views and which views are needed to adequately describe the architecture of a specific system? How to c…
Forrest Shull, Jeffrey C. Carver, Guilherme Travassos
There is a growing interest in empirical study in software engineering, both for validating mature technologies and for guiding improvements of less-mature technologies. This paper introduces an empirical methodology, based on experiences garnered over more than two decades of wo…
Timothy J. Sliski, Matthew P. Billmers, Lori A. Clarke, Leon J. Osterweil
Complex toolsets can be difficult to use. User interfaces can help by guiding users through the alternative choices that might be possible at any given time, but this tends to lock users into the fixed interaction models dictated by the user-interface designers. Alternatively, we…
Vugranam C. Sreedhar
No abstract available.
Kevin J. Sullivan, William G. Griswold, Yuanfang Cai, Ben Hallen
The concept of information hiding modularity is a cornerstone of modern software design thought, but its formulation remains casual and its emphasis on changeability is imperfectly related to the goal of creating added value in a given context. We need better explanatory and pres…
Sebastián Uchitel, Jeff Kramer, Jeff Magee
Scenario-based specifications such as Message Sequence Charts (MSCs) are becoming increasingly popular as part of a requirements specification. Scenario describe how system components, the environment and users work concurrently and interact in order to provide system level funct…
Kurt C. Wallnau, Scott A. Hissam, Robert C. Seacord
The question of which design methods are appropriate for component-based development (CBD) is complicated by different understandings of the end objectives CBD. A further complication is different understandings of what is meant by "component." These differences lead to entirely …
Peter Wendorff
In the design and implementation of any information system identifiers are used to designate concepts. Typical examples are names of classes, variables, modules, database fields, etc. A terminological model is a set of identifiers together with a set of abstractions and a set of …
Michel Wermelinger, Antónia Lopes, José Luiz Fiadeiro
For several different reasons, such as changes in the business or technological environment, the configuration of a system may need to evolve during execution. Support for such evolution can be conceived in terms of a language for specifying the dynamic reconfiguration of systems…
Albert Zündorf
The Rational Unified Process lacks technical guidance for the development of object-oriented applications. This tutorial fills this gap. We first use UML scenario diagrams to analyze use-cases. Next, we show a method to analyze scenarios and to derive UML class diagrams and UML b…
Reimer Behrends, Kurt Stirewalt
We present the universe model, a new approach to concurrency management that isolates concurrency concerns and represents them in the modular interface of a component. This approach improves program comprehension, module composition, and reliability for concurrent systems. The mo…
Marco Bernardo, Paolo Ciancarini, Lorenzo Donatiello
Architectural styles play an important role in software engineering as they convey codified principles and experience which help the construction of software systems with high levels of efficiency and confidence. We address the problem of formalizing and analyzing architectural s…
Sergey Butkevich, Marco Renedo, Gerald Baumgartner, Michal Young
We describe an extension to the Java programming language that supports static conformance checking and dynamic debugging of object “protocols,” i.e., sequencing constraints on the order in which methods may be called. Our Java protocols have a statically checkable subset embedde…