This paper introduces a calculus of weakest specification for supporting reuse of established components in deriving a design (in the sense of formal methods). The weakest specifunction generalizes the notions of weak...
详细信息
This paper introduces a calculus of weakest specification for supporting reuse of established components in deriving a design (in the sense of formal methods). The weakest specifunction generalizes the notions of weakest pre-specification and weakest parallel environment;but instead of calculating the weakest required component of a target specification, it calculates the weakest specification function whose value refines the target when applied to an established component. In particular it overcomes the restriction of those other calculi to taking merely one required component at a time. The theory of specifunctions is applied to a new weakest-design calculus in the context of BSP. The calculus is based on the par-seq specifunction which involves two required components: it places one established component in parallel with one required component and the result in sequence with another required component to meet a given specification. A calculus is provided for the par-seq specifunction and it is applied to the derivation of a distributed BSP algorithm for greatest common divisor.
This paper discusses the problem of risk in optimistic simulation protocols, using as an example, simulation of a distributed mutual exclusion protocol with strong consistency properties. The simulation model is augme...
详细信息
ISBN:
(纸本)076951104X
This paper discusses the problem of risk in optimistic simulation protocols, using as an example, simulation of a distributed mutual exclusion protocol with strong consistency properties. The simulation model is augmented to detect model inconsistency errors resulting from risky optimistic simulation. While the model runs sequentially without consistency errors, errors occur when the model is executed in parallel optimistically. Some of the errors entirely violate the fundamental mutual exclusion properties of the model itself. To address this problem, we extend the optimistic simulation library to eliminate these inconsistencies. We discuss the details of these extensions and the performance tradeoff for adding them.
With software systems such as operating systems, the interaction of their components becomes more complex. This interaction may limit reusability, adaptability, and make it difficult to validate the design and correct...
详细信息
ISBN:
(纸本)1581133073
With software systems such as operating systems, the interaction of their components becomes more complex. This interaction may limit reusability, adaptability, and make it difficult to validate the design and correctness of the system. As a result, re-engineering of these systems might be inevitable to meet future requirements. There is a general feeling that OOP promotes reuse and expandability by its very nature. This is a misconception as none of these issues is enforced. Rather, a software system must be specifically designed for reuse, expandability, and adaptability [4]. Operating systems are dominated in many aspects. Supporting separation of concerns and aspectual decomposition in the design of operating systems provides a number of benefits such as reusability, expandability, adaptability and reconfigurability. However, such support is difficult to accomplish. Aspect-Oriented programming (AOP) [7] is a paradigm proposal that aims at separating components and aspects from the early stages of the software life cycle, and combines them together at the implementation phase. Besides, Aspect-Oriented programming promotes the separation of the different aspects of components in the system into their natural form. However, Aspect-Oriented software engineering can be supported well if there is an operating system, which is built based on an aspect-oriented design. Therefore aspects can be created in applications, reused and adapted from the aspects provided by the operating systems. Object-Oriented Operating Systems treat aspects, components, and layers as a two dimensional models, which is not a good design model. Aspects in the operating system cannot be captured in the design and implementation. Two-dimensional models lead to inflexibility, limit possibilities for reuse and adaptability, and make it hard to understand and modify. The poster will show an Aspect-Oriented Framework [1, 8], which simplifies system design by expressing its design at a higher level of
Separation of concerns is at the heart of software development, and although its benefits have been well established, the core problem remains how to achieve it. For complex software systems the solution is still deba...
Separation of concerns is at the heart of software development, and although its benefits have been well established, the core problem remains how to achieve it. For complex software systems the solution is still debatable and it is a major research area. Object Oriented programming (OOP) works well only if the problem at hand can be described with relatively simple interface among objects. Unfortunately, this is not the case when we move from sequential programming to concurrent and distributed programming. The September 1993 CACM issue was devoted to the problematic marriage between OOP and Concurrency [Cohen 93]. Since then, numerous workshops, articles and books have attempt to tackle the problem. The core complexity is that concurrent and distributed systems manifest over more than one dimension. Features such as scheduling, synchronization, fault tolerance, security, testing and verifications are all expressed in such a way that they tend to cut across different objects. Hence, simple object interfaces are violated and the traditional OOP benefits no longer hold. One of the current attempts to resolve this issue is the Aspect Oriented Software Architecture. To address this multi-dimensional structure of concurrent systems we distinguish between components and aspects. Aspects are defined as properties of a system that do not necessarily align with the system’s functional components but tend to cut across functional components, increasing their interdependencies, and thus affecting the quality of the software. Although not bound to OOP, Aspect-Oriented programming (AOP) is a paradigm proposal that retains the advantages of OOP and aims at achieving a better separation of concerns. In this paper we provide an assessment of AOP and we discuss the architecture of an aspect-oriented framework. The goals of our proposal is to achieve an improved separation of concerns in both design, and implementation, to provide adaptability, and to support the complex interaction
Nested datatypes generalise regular datatypes in much the same way that context-free languages generalise regular ones. Although the categorical semantics of nested types turns out to be similar to the regular case, t...
详细信息
Nested datatypes generalise regular datatypes in much the same way that context-free languages generalise regular ones. Although the categorical semantics of nested types turns out to be similar to the regular case, the fold functions are more limited because they can only describe natural transformations. Practical considerations therefore dictate the introduction of a generalised fold function in which this limitation can be overcome. In the paper we show how to construct generalised folds systematically for each nested datatype, and show that they possess a uniqueness property analogous to that of ordinary folds. As a consequence, generalised folds satisfy fusion properties similar to those developed for regular datatypes. Such properties form the core of an effective calculational theory of inductive datatypes.
GUI design isn't simply a matter of putting a nice front-end on a capable program. It requires thought about the way in which people might be expected to use a system, and investigation of the ways that they actua...
详细信息
GUI design isn't simply a matter of putting a nice front-end on a capable program. It requires thought about the way in which people might be expected to use a system, and investigation of the ways that they actually use it. Jape's GUI has been designed to be as simple as possible, so that it will not get in the way of the business of proof. It is designed to be minimal in the information that it displays and the gestures that it requires from the user. In this paper we introduce and give a rationale for the design of Jape's user interface, then note some of its drawbacks.
de Bruijn notation is a coding of lambda terms in which each occurrence of a bound variable x is replaced by a natural number, indicating the 'distance' from the occurrence to the abstraction that introduced x...
de Bruijn notation is a coding of lambda terms in which each occurrence of a bound variable x is replaced by a natural number, indicating the 'distance' from the occurrence to the abstraction that introduced x. One might suppose that in any datatype for representing de Bruijn terms, the distance restriction on numbers would have to maintained as an explicit datatype invariant. However, by using a nested (or non-regular) datatype, we can define a representation in which all terms are well-formed, so that the invariant is enforced automatically by the type system. programming with nested types is only a little more difficult than programming with regular types, provided we stick to well-established structuring techniques. These involve expressing inductively defined functions in terms of an appropriate fold function for the type, and using fusion laws to establish their properties. In particular, the definition of lambda abstraction and beta reduction is particularly simple, and the proof of their associated properties is entirely mechanical.
A nested datatype, also known as a non-regular datatype, is a parametrised datatype whose declaration involves different instances of the accompanying type parameters. Nested datatypes have been mostly ignored in func...
详细信息
One of the major difficulties in controlling software development project cost overruns and schedule delays has been developing practical and accurate software cost models. Software development could be modeled as an ...
详细信息
One of the major difficulties in controlling software development project cost overruns and schedule delays has been developing practical and accurate software cost models. Software development could be modeled as an economic production process and we therefore propose a theoretical approach to software cost modeling. Specifically, we present the Minimum Software Cost Model (MSCM), derived from economic production theory and systems optimization. The MSCM model is compared with other widely used software cost models, such as COCOMO and SLIM, on the basis of goodness of fit and quality of estimation using software project data sets available in the literature. Judged by both criteria, the MSCM model is comparable to, if not better than, the SLIM, and significantly better than the rest of the models. In addition, the MSCM model provides some insights about the behavior of software development processes and environment, which could be used to formulate guidelines for better software project management polic es and practices.
A prototype concurrent engineering tool has been developed for the preliminary design of composite topside structures for modern navy warships. This tool, named GELS for the concurrent Engineering of Layered Structure...
详细信息
A prototype concurrent engineering tool has been developed for the preliminary design of composite topside structures for modern navy warships. This tool, named GELS for the concurrent Engineering of Layered Structures, provides designers with an immediate assessment of the impacts of their decisions on several disciplines which are important to the performance of a modern naval topside structure, including electromagnetic interference effects (EMI), radar cross section (RCS), structural integrity, cost, and weight. Preliminary analysis modules in each of these disciplines are integrated to operate from a common set of design variables and a common materials database. Performance in each discipline and an overall fitness function for the concept are then evaluated. A graphical user interface (GUI) is used to define requirements and to display the results from the technical analysis modules. Optimization techniques, including feasible sequential quadratic programming (FSQP) and exhaustive search are used to modify the design variables to satisfy all requirements simultaneously. The development of this tool, the technical modules, and their integration are discussed noting the decisions and compromises required to develop and integrate the modules into a prototype conceptual design tool.
暂无评论