Abstract Kiezen op Afstand (KOA) is a Free Software, remote voting system developed for the Dutch... more Abstract Kiezen op Afstand (KOA) is a Free Software, remote voting system developed for the Dutch government in 2003/2004. In addition to being Open Source, key components have been, or are currently being formally specified and verified. These include a tally system and a modeling of the Irish electoral system. In this paper, we describe the formal techniques incorporated during the development of components of the KOA system.
This case illustrates the ways in which the Internet has engendered new forms of collective human... more This case illustrates the ways in which the Internet has engendered new forms of collective human interaction. The Internet enables people scattered across the globe to join forces and engage in collaborative projects. At the same time, each contributor to these collaborative projects may preserve his or her own anonymity. The result is a peculiar" virtual association" whose members may be completely unknown to each other or known only by their" handle," or nickname.
We identify the mechanisms needed to construct archivable webs of distributed asynchronous collab... more We identify the mechanisms needed to construct archivable webs of distributed asynchronous collaborations and experiments. The distinguishing feature of our approach is that the component tools, software, data, and even participants are distributed over a worldwide network. We perform a requirements analysis of an infrastructure that supports such applications, and present the Caltech Infospheres Infrastructure as a prototype that satisfies the requirements identified.
Welcome! This is the README and User Guide introduction for the Infospheres Infrastructure, relea... more Welcome! This is the README and User Guide introduction for the Infospheres Infrastructure, release 1.0. This final release has been through six release levels (alpha0, alpha1, beta1, beta2, beta3, fc) so we believe that it is pretty solid now. The Caltech Infospheres Infrastructure (II) is a distributed system framework that provides:
Abstract A mechanically formalized feature modeling meta-model is presented. This theory is a gen... more Abstract A mechanically formalized feature modeling meta-model is presented. This theory is a generic higher-order formalization of a mathematical model synthesizing several feature modeling approaches found in the literature. This meta-model supports not only a better understanding of the various approaches to feature modeling, but also supports reasoning about and within feature model approaches, feature models, and on feature trees and their configurations.
JML is a notation for formally specifying the behavior and interfaces of Java [Arnold-Gosling-Hol... more JML is a notation for formally specifying the behavior and interfaces of Java [Arnold-Gosling-Holmes00][Gosling-etal00] classes and methods. The goal of this reference manual is to precisely record the design of JML. We include both informal semantics (intentions) and where possible [[[we will eventually include]]] formal semantics (describing when an implementation satisfies a specification).
In the study of (sequential) program verification one usually encounters the same examples over a... more In the study of (sequential) program verification one usually encounters the same examples over and over again (eg, stacks, lists, alternating bit protocol, sorting functions, etc.), often going back to classic texts like [11,14,15]. These examples typically use an abstract programming language with only a few constructs, and the logic for expressing the program properties (or specifications) is some variation on first order logic.
Abstract. Firefighting evolving, open systems' failures is rather old school. Rather than hand-pa... more Abstract. Firefighting evolving, open systems' failures is rather old school. Rather than hand-patching failures, as is done today, these systems should self-repair. We provide a formal foundation for self-healing in evolving, open systems. The focus of our reasoning is dynamically composed open systems that experience partial failure. We talk about composition from an orchestration perspective, and use the Orc language as a foundation for specifying compositional systems.
This thesis describes a theory for representing, manipulating, and reasoning about structured pie... more This thesis describes a theory for representing, manipulating, and reasoning about structured pieces of knowledge in open collaborative systems. The theory's design is motivated by both its general model as well as its target user community. Its model is structured information, with emphasis on classification, relative structure, equivalence, and interpretation.
This abstract provides some background information about the electronic voting experiment that is... more This abstract provides some background information about the electronic voting experiment that is planned in the Netherlands for the European Elections of 2004, and about our own involvement in the infrastructure for this experiment. The talk will elaborate further about the computer security issues involved, especially with respect to the use of formal methods for vote counting software.
Abstract The global telecommunications and networking backbone contains millions of kilometers of... more Abstract The global telecommunications and networking backbone contains millions of kilometers of fiber-optic cabling, but we use only one ten-thousandth of the potential bandwidth of those cables. One reason is that a single converter from electrical to optical signals can only make use of a small amount of the optical spectrum, limiting the achievable bandwidth to about 2.5 Gbit/s. Wavelength division multiplexing (WDM) helps to resolve this disparity.
Abstract This paper describes the main opportunities and challenges that we see for introducing m... more Abstract This paper describes the main opportunities and challenges that we see for introducing more rigorous software engineering practices, particularly those centered on specification and validation, in industrial practice. Our perspective derives from our ongoing work on formal specification and verification of Java programs.
In the past seven years or so, a considerable number of analysis tools for Java and C# have emerg... more In the past seven years or so, a considerable number of analysis tools for Java and C# have emerged with the aim of putting formal techniques to work for popular, modern programming languages.
In a call for action [1], Jacobson, Meyer, and Soley, together with many other signatories, encou... more In a call for action [1], Jacobson, Meyer, and Soley, together with many other signatories, encourage the software engineering discipline to “re-found” software engineering based on a “solid theory”[2]: The SEMAT initiative. In a soon to be published book [3], the “The Essence of Software Engineering” is presented by “Applying the SEMAT Kernel”. This SEMAT kernel identifies the essential concepts or “things” that need to be kept track of in order to successfully develop software, the so-called alphas (α).
The Java Modeling Language (JML) can be used to specify the detailed design of Java classes and i... more The Java Modeling Language (JML) can be used to specify the detailed design of Java classes and interfaces by adding annotations to Java source files. The aim of JML is to provide a specification language that is easy to use for Java programmers and that is supported by a wide range of tools for specification typechecking, runtime debugging, static analysis, and verification.
Abstract The container vessel stowage problem is a hard combinatorial optimization problem concer... more Abstract The container vessel stowage problem is a hard combinatorial optimization problem concerned with the placement of containers on a container vessel, subject to various constraints. It is often the case that stowage coordinators need to modify existing stowage plans, while preserving their optimality. An interactive configuration system can guide the coordinator in this process.
Abstract This paper describes the several user-interface features for interactive theorem provers... more Abstract This paper describes the several user-interface features for interactive theorem provers. Many of these features mimic functionality that already exists, and have great utility, in modern interactive development environments (IDEs). A formal kind theoretic model of a user's context is also presented. This model is used to formally describe the structure, behavior, and customization of the features.
Abstract Producing quality applications has always been a difficult challenge for software develo... more Abstract Producing quality applications has always been a difficult challenge for software developers. Over the years, many solutions have been suggested for dealing with this issue such as evolved features for programming languages and various design and development methodologies.
Abstract. We identify the mechanisms needed to construct archivable webs of distributed asynchron... more Abstract. We identify the mechanisms needed to construct archivable webs of distributed asynchronous collaborations and experiments. The distinguishing feature of our approach is that the component tools, software, data, and even participants are distributed over a worldwide network. We perform a requirements analysis of an infrastructure that supports such applications, and present the Caltech Infospheres Infrastructure as a prototype that satisfies the requirements identified.
Abstract Kiezen op Afstand (KOA) is a Free Software, remote voting system developed for the Dutch... more Abstract Kiezen op Afstand (KOA) is a Free Software, remote voting system developed for the Dutch government in 2003/2004. In addition to being Open Source, key components have been, or are currently being formally specified and verified. These include a tally system and a modeling of the Irish electoral system. In this paper, we describe the formal techniques incorporated during the development of components of the KOA system.
This case illustrates the ways in which the Internet has engendered new forms of collective human... more This case illustrates the ways in which the Internet has engendered new forms of collective human interaction. The Internet enables people scattered across the globe to join forces and engage in collaborative projects. At the same time, each contributor to these collaborative projects may preserve his or her own anonymity. The result is a peculiar" virtual association" whose members may be completely unknown to each other or known only by their" handle," or nickname.
We identify the mechanisms needed to construct archivable webs of distributed asynchronous collab... more We identify the mechanisms needed to construct archivable webs of distributed asynchronous collaborations and experiments. The distinguishing feature of our approach is that the component tools, software, data, and even participants are distributed over a worldwide network. We perform a requirements analysis of an infrastructure that supports such applications, and present the Caltech Infospheres Infrastructure as a prototype that satisfies the requirements identified.
Welcome! This is the README and User Guide introduction for the Infospheres Infrastructure, relea... more Welcome! This is the README and User Guide introduction for the Infospheres Infrastructure, release 1.0. This final release has been through six release levels (alpha0, alpha1, beta1, beta2, beta3, fc) so we believe that it is pretty solid now. The Caltech Infospheres Infrastructure (II) is a distributed system framework that provides:
Abstract A mechanically formalized feature modeling meta-model is presented. This theory is a gen... more Abstract A mechanically formalized feature modeling meta-model is presented. This theory is a generic higher-order formalization of a mathematical model synthesizing several feature modeling approaches found in the literature. This meta-model supports not only a better understanding of the various approaches to feature modeling, but also supports reasoning about and within feature model approaches, feature models, and on feature trees and their configurations.
JML is a notation for formally specifying the behavior and interfaces of Java [Arnold-Gosling-Hol... more JML is a notation for formally specifying the behavior and interfaces of Java [Arnold-Gosling-Holmes00][Gosling-etal00] classes and methods. The goal of this reference manual is to precisely record the design of JML. We include both informal semantics (intentions) and where possible [[[we will eventually include]]] formal semantics (describing when an implementation satisfies a specification).
In the study of (sequential) program verification one usually encounters the same examples over a... more In the study of (sequential) program verification one usually encounters the same examples over and over again (eg, stacks, lists, alternating bit protocol, sorting functions, etc.), often going back to classic texts like [11,14,15]. These examples typically use an abstract programming language with only a few constructs, and the logic for expressing the program properties (or specifications) is some variation on first order logic.
Abstract. Firefighting evolving, open systems' failures is rather old school. Rather than hand-pa... more Abstract. Firefighting evolving, open systems' failures is rather old school. Rather than hand-patching failures, as is done today, these systems should self-repair. We provide a formal foundation for self-healing in evolving, open systems. The focus of our reasoning is dynamically composed open systems that experience partial failure. We talk about composition from an orchestration perspective, and use the Orc language as a foundation for specifying compositional systems.
This thesis describes a theory for representing, manipulating, and reasoning about structured pie... more This thesis describes a theory for representing, manipulating, and reasoning about structured pieces of knowledge in open collaborative systems. The theory's design is motivated by both its general model as well as its target user community. Its model is structured information, with emphasis on classification, relative structure, equivalence, and interpretation.
This abstract provides some background information about the electronic voting experiment that is... more This abstract provides some background information about the electronic voting experiment that is planned in the Netherlands for the European Elections of 2004, and about our own involvement in the infrastructure for this experiment. The talk will elaborate further about the computer security issues involved, especially with respect to the use of formal methods for vote counting software.
Abstract The global telecommunications and networking backbone contains millions of kilometers of... more Abstract The global telecommunications and networking backbone contains millions of kilometers of fiber-optic cabling, but we use only one ten-thousandth of the potential bandwidth of those cables. One reason is that a single converter from electrical to optical signals can only make use of a small amount of the optical spectrum, limiting the achievable bandwidth to about 2.5 Gbit/s. Wavelength division multiplexing (WDM) helps to resolve this disparity.
Abstract This paper describes the main opportunities and challenges that we see for introducing m... more Abstract This paper describes the main opportunities and challenges that we see for introducing more rigorous software engineering practices, particularly those centered on specification and validation, in industrial practice. Our perspective derives from our ongoing work on formal specification and verification of Java programs.
In the past seven years or so, a considerable number of analysis tools for Java and C# have emerg... more In the past seven years or so, a considerable number of analysis tools for Java and C# have emerged with the aim of putting formal techniques to work for popular, modern programming languages.
In a call for action [1], Jacobson, Meyer, and Soley, together with many other signatories, encou... more In a call for action [1], Jacobson, Meyer, and Soley, together with many other signatories, encourage the software engineering discipline to “re-found” software engineering based on a “solid theory”[2]: The SEMAT initiative. In a soon to be published book [3], the “The Essence of Software Engineering” is presented by “Applying the SEMAT Kernel”. This SEMAT kernel identifies the essential concepts or “things” that need to be kept track of in order to successfully develop software, the so-called alphas (α).
The Java Modeling Language (JML) can be used to specify the detailed design of Java classes and i... more The Java Modeling Language (JML) can be used to specify the detailed design of Java classes and interfaces by adding annotations to Java source files. The aim of JML is to provide a specification language that is easy to use for Java programmers and that is supported by a wide range of tools for specification typechecking, runtime debugging, static analysis, and verification.
Abstract The container vessel stowage problem is a hard combinatorial optimization problem concer... more Abstract The container vessel stowage problem is a hard combinatorial optimization problem concerned with the placement of containers on a container vessel, subject to various constraints. It is often the case that stowage coordinators need to modify existing stowage plans, while preserving their optimality. An interactive configuration system can guide the coordinator in this process.
Abstract This paper describes the several user-interface features for interactive theorem provers... more Abstract This paper describes the several user-interface features for interactive theorem provers. Many of these features mimic functionality that already exists, and have great utility, in modern interactive development environments (IDEs). A formal kind theoretic model of a user's context is also presented. This model is used to formally describe the structure, behavior, and customization of the features.
Abstract Producing quality applications has always been a difficult challenge for software develo... more Abstract Producing quality applications has always been a difficult challenge for software developers. Over the years, many solutions have been suggested for dealing with this issue such as evolved features for programming languages and various design and development methodologies.
Abstract. We identify the mechanisms needed to construct archivable webs of distributed asynchron... more Abstract. We identify the mechanisms needed to construct archivable webs of distributed asynchronous collaborations and experiments. The distinguishing feature of our approach is that the component tools, software, data, and even participants are distributed over a worldwide network. We perform a requirements analysis of an infrastructure that supports such applications, and present the Caltech Infospheres Infrastructure as a prototype that satisfies the requirements identified.
Uploads
Papers by Dermot Cochran