Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Daniel E. Cooke is active.

Publication


Featured researches published by Daniel E. Cooke.


Journal of Systems and Software | 1996

Languages for the specification of software

Daniel E. Cooke; Ann Q. Gates; Elif Demirörs; Onur Demirörs; Murat M. Tanik; Bernd J. Krämer

Abstract A variety of specification languages exist that support one or more phases of software development. This article emphasizes languages that support the functional phase, i.e., languages that can be used to define the observable behavior of a system. The languages surveyed include Z, Prolog, SF, Clear, Larch, PAISLey, Spec, CSP, SEGRAS and BagL. The article divides the languages into four major categories based on the way the language specifies the external behavior of the system and on the ability of the language to specify concurrent systems. Each language section includes a discussion of the constructs of the language, a specification of a problem in the language, and an evaluation of the language. The article is intended to acquaint the reader with a wide range of functional specification languages.


Software - Practice and Experience | 1996

An introduction to SequenceL: a language to experiment with constructs for processing nonscalars

Daniel E. Cooke

SequenceL is a language intended for experimentation with declarative constructs for nonscalar processing. In SequenceL, a problem solver provides little in the way of iterative/recursive details in a problem solution. Instead, the problem solver describes the solution directly by specifying, via a metastructure, the data structures which will hold results useful for solving the problem. SequenceL is a small language (i.e. there is a small number of language constructs), and it is not domain dependent. This paper is meant to introduce the reader to SequenceL.


International Journal of Software Engineering and Knowledge Engineering | 1995

How to Combine Nonmonotonic Logic and Rapid Prototyping to Help Maintain Software

Luqi; Daniel E. Cooke

This paper explores the possibility of automated support for detecting inconsistencies in software systems and requirements. The inconsistencies are introduced when the environment of the software system changes. We refer to the software environment as its context. We review the recent research progress on nonmonotonic logics, pointing out the significance of these results to software maintenance. We explain how a practical implementation of such logics can be obtained via a simple extension to logic programming in the form of an answer procedure that realizes the Extended Logic Semantics [7] for nonmonotonic logic programs that have a unique answer set (which is a large and useful class of logic programs). We augment the existing automated capabilities of the Computer-Aided Prototyping System (CAPS) for rapid prototyping via the extension to logic programming to provide an improved automated capability for detecting certain kinds of inconsistencies created by implicit requirements changes. We illustrate the significance of this capability via an example prototype for a problem originally suggested by Lehman.


ACM Sigsoft Software Engineering Notes | 2005

Connector-based self-healing mechanism for components of a reliable system

Michael E. Shin; Daniel E. Cooke

This paper describes the self-healing mechanism for components in reliable systems. Each component in a self-healing system is designed as a layered architecture, structured with the healing layer and the service layer. The healing layer of a self-healing component is responsible for detection of anomalous objects in the service layer, reconfiguration of the service layer, and repair of anomalous objects detected. The service layer of a self-healing component provides functionality to other components, which consists of tasks (concurrent or active objects), connectors, and passive objects accessed by tasks. A connector supports the self-healing mechanism for self-healing components as well as encapsulates the synchronization mechanism for message communication between tasks in a component. Connectors are involved in detection of anomalous objects, reconfiguration of components, and repair of anomalous objects. This paper also specifies connectors - the message queue self-healing connector. message buffer self-healing connector, and message buffer and response self-healing connector - which provide functionalities for the self-healing mechanism.


Software - Practice and Experience | 2000

Automatic parallel control structures in SequenceL

Daniel E. Cooke; Per Andersen

SequenceL is a language that provides declarative constructs for non-scalar processing. Rather than specifying program control structures that, in turn, imply a data product, the problem solver specifies a data product, and the control structures to produce or process the data product are implied. Although SequenceL has been previously introduced in two papers (Cooke, DE. An Introduction to SequenceL: A language to experiment with constructs for processing nonscalars. Software—Practice and Experience 1996; 26(11):1205–1246; and Cooke, D. SequenceL Provides a Different way to View Programming. Computer Languages 1998; 24:1–32), recent improvements to the language have indicated that parallel control structures are also implied by the SequenceL problem solutions. This paper focuses on these recent advances. Copyright


International Journal of Software Engineering and Knowledge Engineering | 1993

POSSIBLE EFFECTS OF THE NEXT GENERATION PROGRAMMING LANGUAGE ON THE SOFTWARE PROCESS MODEL

Daniel E. Cooke

This paper reviews the impact that the next generation programming environment may have on the software process model. In doing so it informally defines the concept of a next generation language and seriously considers the concerns of software development, validation, verification, and evolution within the context of a future abstraction.


IEEE Computer | 2006

NASA's exploration agenda and capability engineering

Daniel E. Cooke; Matt Barry; Michael R. Lowry; Cordell Green

NASA is using model-based languages and risk analysis methodologies to raise software development to the level of hardware development. Ultimately, it hopes to achieve a fusion of systems and software engineering by replacing conventional software development techniques with capability engineering, which focuses on a systems full set of functionalities.


ACM Transactions on Programming Languages and Systems | 2008

Normalize, transpose, and distribute: An automatic approach for handling nonscalars

Daniel E. Cooke; J. Nelson Rushton; Brad Nemanich; Robert G. Watson; Per Andersen

SequenceL is a concise, high-level language with a simple semantics that provides for the automatic derivation of many iterative and parallel control structures. The semantics repeatedly applies a “Normalize-Transpose-Distribute” operation to functions and operators until base cases are discovered. Base cases include the grounding of variables and the application of built-in operators to operands of appropriate types. This article introduces the results of a 24-month effort to reduce the language to a very small set of primitives. Included are comparisons with other languages, the formal syntax and semantics, and the traces of several example problems run with a prototype interpreter developed in 2006.


International Journal of Software Engineering and Knowledge Engineering | 1991

ON THE DEVELOPMENT OF A METHOD TO SYNTHESIZE PROGRAMS FROM REQUIREMENTS SPECIFICATIONS

Daniel E. Cooke; Ann Q. Gates

This paper reviews the progress that has been made towards the definition of a new generation of computer assisted problem solving tool. When we solve problems with a computer we state the solution...


international conference on tools with artificial intelligence | 1991

The correspondence between methods of artificial intelligence and the production and maintenance of evolutionary software

C. V. Ramamoorthy; Daniel E. Cooke

Exploration is made of how methods of truth maintenance may be applied in the engineering of integrated, dynamic systems. In the life of a large system, it is not possible to foresee every significant event which may affect the behavior of the system. Truth maintenance techniques may prove useful in the production and maintenance of these large systems. A discussion is presented of how it is the decision making aspects of a system which change. Both the information on which the authors base their decisions and strategies for decision making change. Truth maintenance is discussed with respect to preserving the models of specifications and the models of programs.<<ETX>>

Collaboration


Dive into the Daniel E. Cooke's collaboration.

Top Co-Authors

Avatar

Ann Q. Gates

University of Texas at El Paso

View shared research outputs
Top Co-Authors

Avatar

Vladik Kreinovich

University of Texas at El Paso

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Luqi

Naval Postgraduate School

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Scott A. Starks

University of Texas at El Paso

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge