Results 1 - 10
of
36
No Silver Bullet: Essence and Accidents of Software Engineering
- IEEE Computer
, 1987
"... Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these, one seeks bullets of silver that can magically lay them to rest. The familiar software project, at least as seen by the nont ..."
Abstract
-
Cited by 481 (0 self)
- Add to MetaCart
Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these, one seeks bullets of silver that can magically lay them to rest. The familiar software project, at least as seen by the nontechnical manager, has something of this character; it is usually innocent and straightforward, but is capable of becoming a monster of missed schedules, blown budgets, and flawed products. So we hear desperate cries for a silver bullet--something to make software costs drop as rapidly as computer hardware costs do. But, as we look to the horizon of a decade hence, we see no silver bullet. There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity. In this article, I shall try to show why, by examining both the nature of the software problem and the properties of the bullets proposed. Skepticism is not pessimism, however. Although we see no startling breakthroughs--and indeed, I believe such to be inconsistent with the nature of software--many encouraging
Representing and Using Non-Functional Requirements: A Process-Oriented Approach
- IEEE Transactions on Software Engineering
, 1992
"... The paper proposes a comprehensive framework for representing and using non-functional requirements during the development process. The framework consists of five basic components which provide for the representation of non-functional requirements in terms of interrelated goals. Such goals can be re ..."
Abstract
-
Cited by 269 (36 self)
- Add to MetaCart
The paper proposes a comprehensive framework for representing and using non-functional requirements during the development process. The framework consists of five basic components which provide for the representation of non-functional requirements in terms of interrelated goals. Such goals can be refined through refinement methods and can be evaluated in order to determine the degree to which a set of non-functional requirements is supported by a particular design. Evidence for the power of the framework is provided through the study of accuracy and performance requirements for information systems. 1
Software Reuse
- ACM Computing Surveys
, 1992
"... Software reuse is the process ofcreating software systems from existing software rather than building software systems from scratch. ‘l’his simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to unde ..."
Abstract
-
Cited by 207 (2 self)
- Add to MetaCart
Software reuse is the process ofcreating software systems from existing software rather than building software systems from scratch. ‘l’his simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to understand why, researchers have renewed their interest in software reuse and in the obstacles to implementing it. This paper surveys the different approaches to software reuse found in the research literature. It uses a taxonomy to describe and compare the different approaches and make generalizations about the field of software reuse. The taxonomy characterizes each reuse approach interms of its reusable artifacts and the way these artifacts are abstracted, selected, speciahzed, and integrated. Abstraction plays a central role in software reuse. Concise and expressive abstractions are essential if software artifacts are to be effectively reused. The effectiveness of a reuse technique can be evaluatedin terms of cognztzue dwtance-an intuitive gauge of the intellectual effort required to use the technique. Cognitive distance isreduced in two ways: (l) Higher level abstractions ina reuse technique
DMS: Program transformations for practical scalable software evolution
- in Proc. 26th Int. Conf. on Software Engineering
, 2004
"... While a number of research systems have demonstrated the potential value of program transformations, very few of these systems have made it into practice. The core technology for such systems is well understood; what remains is integration and more importantly, the problem of handling the scale of t ..."
Abstract
-
Cited by 104 (3 self)
- Add to MetaCart
While a number of research systems have demonstrated the potential value of program transformations, very few of these systems have made it into practice. The core technology for such systems is well understood; what remains is integration and more importantly, the problem of handling the scale of the applications to be processed. This paper describes DMS, a practical, commercial program analysis and transformation system, and sketches a variety of tasks to which it has been applied, from redocumenting to large-scale system migration. Its success derives partly from a vision of design maintenance and the construction of infrastructure that appears necessary to support that vision. DMS handles program scale by careful space management, computational scale via parallelism
Configuration Programming - A Framework for the Development of Distributable Systems
, 1990
"... The underlying model commonly used to describe an application domain is that of processing The underlying model commonly used to describe an application domain is that of processing components, loosely coupled by communication streams for each of the different types of components, loosely coupled by ..."
Abstract
-
Cited by 54 (13 self)
- Add to MetaCart
The underlying model commonly used to describe an application domain is that of processing The underlying model commonly used to describe an application domain is that of processing components, loosely coupled by communication streams for each of the different types of components, loosely coupled by communication streams for each of the different types of information produced or consumed. The underlying model used for implementing distributed information produced or consumed. The underlying model used for implementing distributed and parallel systems is usually similar, consisting of distributable processes communicating and parallel systems is usually similar, consisting of distributable processes communicating by message passing. Why then should different models be introduced in the intervening by message passing. Why then should different models be introduced in the intervening phases of software development? Configuration programming advocates the use of the same phases of software...
Multi-party Specification
, 1989
"... This paper examines a formal model of how specifications can be constructed from multiple viewpoints and presents some tools to support this approach. The development of specifications is presented as a dialogue in which the viewpoints negotiate, establish responsibilities and cooperatively construc ..."
Abstract
-
Cited by 38 (6 self)
- Add to MetaCart
This paper examines a formal model of how specifications can be constructed from multiple viewpoints and presents some tools to support this approach. The development of specifications is presented as a dialogue in which the viewpoints negotiate, establish responsibilities and cooperatively construct a specification. The model is illustrated by means of some small examples. Keywords: formal specification, distributed artificial intelligence, dialogue, logic, tool support 1 Introduction "Specification-in-the-large", that is the development of requirements specifications for systems of substantial complexity and scale, mirrors "programming-in-thelarge " in raising a variety of difficulties that lie beyond the clerical problems of handling large amounts of information (Cunningham, Finkelstein et al 1985, Finkelstein & Potts 1987). One such difficulty is that of specification from multiple viewpoints (Niskier 1987). Specification-in-the-large is an activity in which there are many particip...
Logic Program Synthesis
, 1993
"... This paper presents an overview and a survey of logic program synthesis. Logic program synthesis is interpreted here in a broad way; it is concerned with the following question: given a specification, how do we get a logic program satisfying the specification? Logic programming provides a uniquely n ..."
Abstract
-
Cited by 35 (10 self)
- Add to MetaCart
This paper presents an overview and a survey of logic program synthesis. Logic program synthesis is interpreted here in a broad way; it is concerned with the following question: given a specification, how do we get a logic program satisfying the specification? Logic programming provides a uniquely nice and uniform framework for program synthesis since the specification, the synthesis process and the resulting program can all be expressed in logic. Three main approaches to logic program synthesis by formal methods are described: constructive synthesis, deductive synthesis and inductive synthesis. Related issues such as correctness and verification as well as synthesis by informal methods are briefly presented. Our presentation is made coherent by employing a unified framework of terminology and notation, and by using the same running example for all the approaches covered. This paper thus intends to provide an assessment of existing work and a framework for future research in logic program synthesis.
Derivation of Data Intensive Algorithms by Formal Transformation: The Schorr-Waite Graph Marking Algorithm
, 1996
"... In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a comb ..."
Abstract
-
Cited by 34 (23 self)
- Add to MetaCart
In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a combination of a basic idea with an implementation technique. Our approach is based on applying proven semantics-preserving transformation rules in a wide spectrum language. Starting with a set theoretical specification of "reachability" we are able to derive iterative and recursive graph marking algorithms using the "pointer switching" idea of Schorr and Waite. There have been several proofs of correctness of the Schorr-Waite algorithm, and a small number of transformational developments of the algorithm. The great advantage of our approach is that we can derive the algorithm from its specification using only general-purpose transformational rules: without the need for complicated induction arg...
Elicitation of Requirements from Multiple Perspectives
, 1991
"... The success of large software engineering projects depends critically on the specification, which must represent the requirements of a large number of people with widely differing perspectives. Conventional approaches to software engineering do not address the process of identifying and integrating ..."
Abstract
-
Cited by 30 (5 self)
- Add to MetaCart
The success of large software engineering projects depends critically on the specification, which must represent the requirements of a large number of people with widely differing perspectives. Conventional approaches to software engineering do not address the process of identifying and integrating these perspectives, but instead concentrate on the maintenance of a single consistent description. This results in a specification which represents only one point of view, often the analyst's, excluding suggestions which do not fit with this view. The processes which led to the adoption of this point of view will go unrecorded, making any rationale attached to such a specification incomplete. Other participants will not be able to validate it properly, as it does not relate to their requirements. This thesis integrates ideas drawn from the study of knowledge acquisition, computer-supported co-operative work and negotiation into a model of the specification activity which allows the capture ...
ViTABaL: A Visual Language Supporting Design by Tool Abstraction
- in Proceedings of the 1995 IEEE Symposium on Visual Languages, IEEE CS
, 1995
"... ion John C. Grundy + and John G. Hosking ++ + Department of Computer Science University of Waikato Private Bag 3105, Hamilton, New Zealand jgrundy@cs.waikato.ac.nz ++ Department of Computer Science University of Auckland Private Bag 92019, Auckland, New Zealand john@cs.auckland.ac.nz Abstract We ..."
Abstract
-
Cited by 23 (20 self)
- Add to MetaCart
ion John C. Grundy + and John G. Hosking ++ + Department of Computer Science University of Waikato Private Bag 3105, Hamilton, New Zealand jgrundy@cs.waikato.ac.nz ++ Department of Computer Science University of Auckland Private Bag 92019, Auckland, New Zealand john@cs.auckland.ac.nz Abstract We describe a visual language and environment for designing and implementing systems using the tool abstraction paradigm. This paradigm permits systems to be constructed from toolie and abstract data structure components, using an event response mechanism to handle inter-component interaction. This approach leads to systems more easily adapted to functional specification changes than with conventional design. 1. Introduction In a recent paper, Garlan et al [4] introduce the toolabstraction (TA) paradigm for constructing computer systems that support functional evolution. In this approach groups of abstract data structures (ADSs) are shared by a collection of co-operating toolies. Each toolie...

