Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Reflects downloads up to 13 Sep 2024Bibliometrics
article
Free
Extreme programming: a discipline of software development (invited paper) (abstract only)

You can look at software development as a system with inputs and outputs. As with any system, software development needs negative feed-back loops to keep it from oscillating. The negative feedback loops traditionally used — separate testing groups, ...

article
Free
Components and generative programming (invited paper)

This paper is about a paradigm shift from the current practice of manually searching for and adapting components and their manual assembly to Generative Programming, which is the automatic selection and assembly of components on demand. First, we argue ...

article
Free
A component and communication model for push systems

We present a communication and component model for push systems. Surprisingly, despite the widespread use of many push services on the Internet, no such models exist. Our communication model contrasts push systems with client-server and event-based ...

article
Free
A fine-grained model for code mobility

In this paper we take the extreme view that every line of code is potentially mobile, i.e., may be duplicated and/or moved from one program context to another on the same host or across the network. Our motivation is to gain a better understanding of ...

article
Free
Robots: a real-time systems architectural style

This paper presents an architectural style for real-time systems, and an associated formal architectural description language, called Robots. A basic specification in Robots consists of a synchronous control task that is responsible for the dynamic ...

article
Free
Collaboration and composition: issues for a second generation process language

Over the past decade a variety of process languages have been defined and applied to software engineering environments. The idea of using a process language to encode a software process as a “process model”, and enacting this using a process-sensitive ...

article
Free
article
Free
A probabilistic model for software projects

A probabilistic model for software development projects is constructed. The model can be applied to compute an estimate for the development time of a project. The chances of succeeding with a given amount of time and the risk of deviating from the ...

article
Free
Designing specification languages for process control systems: lessons learned and steps to the future

Previously, we defined a blackbox formal system modeling language called RSML (Requirements State Machine Language). The language was developed over several years while specifying the system requirements for a collision avoidance system for commercial ...

article
Free
Using model checking to generate tests from requirements specifications

Recently, many formal methods, such as the SCR (Software Cost Reduction) requirements method, have been proposed for improving the quality of software specifications. Although improved specifications are valuable, the ultimate objective of software ...

article
Free
Specification-based prototyping for embedded systems

Specification of software for safety critical, embedded computer systems has been widely addressed in literature. To achieve the high level of confidence in a specification's correctness necessary in many applications, manual inspections, formal ...

article
Free
Coping with type casts in C

The use of type casts is pervasive in C. Although casts provide great flexibility in writing programs, their use obscures the meaning of programs, and can present obstacles during maintenance. Casts involving pointers to structures (C structs) are ...

article
Free
Efficient points-to analysis for whole-program analysis

To function on programs written in languages such as C that make extensive use of pointers, automated software engineering tools require safe alias information. Existing alias-analysis techniques that are sufficiently efficient for analysis on large ...

article
Free
The concept of dynamic analysis

Dynamic analysis is the analysis of the properties of a running program. In this paper, we explore two new dynamic analyses based on program profiling:

  • Frequency Spectrum Analysis. We show how analyzing the frequencies of program entities in a single ...

article
Free
Data-flow analysis of program fragments

Traditional interprocedural data-flow analysis is performed on whole programs; however, such whole-program analysis is not feasible for large or incomplete programs. We propose fragment data-flow analysis as an alternative approach which computes data-...

article
Free
Yesterday, my program worked. Today, it does not. Why?

Imagine some program and a number of changes. If none of these changes is applied (“yesterday”), the program works. If all changes are applied (“today”), the program does not work. Which change is responsible for the failure? We present an efficient ...

article
Free
Comparison checking: an approach to avoid debugging of optimized code

We present a novel approach to avoid the debugging of optimized code through comparison checking. In the technique presented, both the unoptimized and optimized versions of an application program are executed, and computed values are compared to ensure ...

article
Free
Structural specification-based testing: automated support and experimental evaluation

In this paper, we describe a testing technique, called structural specification-based testing (SST), which utilizes the formal specification of a program unit as the basis for test selection and test coverage measurement. We also describe an automated ...

article
Free
An efficient relevant slicing method for debugging

Dynamic program slicing methods are widely used for debugging, because many statements can be ignored in the process of localizing a bug. A dynamic program slice with respect to a variable contains only those statements that actually had an influence on ...

article
Free
Analyzing exception flow in Java programs

Exception handling mechanisms provided by programming languages are intended to ease the difficulty of developing robust software systems. Using these mechanisms, a software developer can describe the exceptional conditions a module might raise, and the ...

article
Free
An efficient algorithm for computing MHP information for concurrent Java programs

Information about which statements in a concurrent program may happen in parallel (MHP) has a number of important applications. It can be used in program optimization, debugging, program understanding tools, improving the accuracy of data flow ...

article
Free
CoffeeStrainer: statically-checked constraints on the definition and use of types in Java

Usually, programming languages are used according to conventions and rules. Although general rules can be enforced by lint-like tools, there is a large class of rules that cannot be built into such tools because they result from particular design ...

article
Free
The CIP method: component- and model-based construction of embedded systems

CIP is a model-based software development method for embedded systems. The problem of constructing an embedded system is decomposed into a functional and a connection problem. The functional problem is solved by constructing a formal reactive ...

article
Free
Algebraic software architecture reconfiguration

The ability of reconfiguring software architectures in order to adapt them to new requirements or a changing environment has been of growing interest, but there is still not much formal work in the area. Most existing approaches deal with run-time ...

    article
    Free
    Consistency checking for multiple view software architectures

    Consistency is a major issue that must be properly addressed when considering multiple view architectures. In this paper, we provide a formal definition of views expressed graphically using diagrams with multiplicities and propose a simple algorithm to ...

    article
    Free
    Synergy between component-based and generative approaches

    Building software systems out of pre-fabricated components is a very attractive vision. Distributed Component Platforms (DCP) and their visual development environments bring this vision closer to reality than ever. At the same time, some experiences ...

    article
    Free
    Transitioning legacy assets to a product line architecture

    A successful software system evolves over time, but this evolution often occurs in an ad-hoc fashion. One approach to structure system evolution is the concept of software product lines where a core architecture supports a variety of application ...

    article
    Free
    CHIME: a metadata-based distributed software development environment

    We introduce CHIME, the Columbia Hypermedia IMmersion Environment, a metadata-based information environment, and describe its potential applications for internet and intranet-based distributed software development. CHIME derives many of its concepts ...

    article
    Free
    FACADE: a typed intermediate language dedicated to smart cards

    The use of smart cards to run software modules on demand has become a major business concern for application issuers. Such down-loadable executable content needs to be trusted by the card execution environment in order to ensure that an instruction on a ...

    article
    Free
    Verification of real-time designs: combining scheduling theory with automatic formal verification

    We present an automatic approach to verify designs of real-time distributed systems for complex timing requirements. We focus our analysis on designs which adhere to the hypothesis of analytical theory for Fixed-Priority scheduling. Unlike previous ...

    Subjects

    Comments