14275207
The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools
Forms-based user interfaces are widely used means for human-computer interaction. However, it is difficult to exploit software reuse in forms-based systems because the systems tend to be dependent upon the particular display technologies used. This paper introduces the Family of Retargetable User Interface Tools (FRUIT) that aims to solve this problem. FRUIT adapts the device-independent XForms technology to deliver a family of products capable of supporting a variety of display technologies. This paper presents the architecture for the FRUIT product line and illustrates the design methodology used—a methodology based on stepwise refinement and commonality and variability analysis; it also describes two members of the FRUIT family and shows how their designs and implementations are refinements of the family architecture.
16003818
Java in the box: implementing the BoxScript component language
BoxScript is a Java-based language that supports the component-oriented programming paradigm. BoxScript introduces a composition strategy and type structure to support two main properties of component-oriented programming, compositionality and flexibility. This paper briefly introduces the fundamental concepts of BoxScript and then describes how BoxScript components (i.e., boxes) are realized as clusters of interrelated Java interfaces, classes, and packages.
1850975
Using classic problems to teach Java framework design
Abstract All programmers should understand the concept of software families and know the techniques for constructing them. This paper suggests that classic problems, such as well-known algorithms and data structures, are good sources for examples to use in a study of software family design. The paper describes two case studies that can be used to introduce students in a Java software design course to the construction of software families using software frameworks. The first is the family of programs that use the well-known divide and conquer algorithmic strategy. The second is the family of programs that carry out traversals of binary trees.
1073181
Keeping Secrets within a Family: Rediscovering Parnas
David Parnas wrote several papers in the 1970’s and 1980’s that are now considered classics. The concepts he advocated such as information hiding and use of abstract interfaces are generally accepted as the appropriate way to design nontrivial software systems. However, not all of what he proposed has been fully appreciated and assimilated into our practices. Many of his simple, elegant ideas have been lost amongst the hype surrounding the technologies and methods that have arisen in the past two decades. This paper examines Parnas’s ideas, especially his emphasis on program families, and proposes that college-level computing science and software engineering curricula should renew their attention to these very important principles and techniques and present them in the context of contemporary software development.
1055574
BoxScript: a component-oriented language for teaching
As component-oriented approaches become increasingly pervasive in the development of complex software systems, it becomes increasingly important to introduce computing science students to appropriate programming concepts, languages and techniques. This paper describes the design of the component-oriented language BoxScript, which seeks to address the needs of teachers and students for a clean, simple language. This paper first enumerates the principles applied in the language design and then presents the key concepts and features of BoxScript. The paper illustrates the language features by using an example and by comparing it with several other component-oriented programming languages.
11623191
Mapping component specifications to Enterprise JavaBeans implementations
Component-based software development has become an important approach to building complex software systems. Much research focuses on component specification to achieve the advantages of the component-based approach in theory. Most of this research pays little attention to the mappings from component specifications to component implementations. However, the mappings are important because they determine whether the implementations perform satisfactorily to meet the specifications. After presenting a general approach to component specification and the technology of Enterprise JavaBeans (EJB) component model, this paper presents three approaches to mapping from component specification to EJB implementation. This paper uses a course registration system as an example to demonstrate the ideas. The approaches presented will be helpful to those who are working on the realizations of component systems.
2987131
Interface-Based Rate Analysis of Embedded Systems
Interface-based design is now considered to be one of the keys to tackling the increasing complexity of modern embedded systems. The central idea is that different components comprising such systems can be developed independently and a system designer can connect them together only if their interfaces match, without knowing the details of their internals. We use the concept of rate interfaces for compositional (correct-by-construction) design of embedded systems whose components communicate through data streams. Using the associated rate interface algebra, two components can be connected together if the output rate of one component is "compatible" with the input rate of the other component. We formalize this notion of compatibility and show that such an algebra is non-trivial because it has to accurately model the burstiness in the arrival rates of such data streams and the variability in their processing requirements. We discuss how rate interfaces simplify compositional design and at the same time help in functional and performance verification which would be difficult to address otherwise. Finally, we illustrate these advantages through a realistic case study involving a component-based design of a multiprocessor architecture running a picture-in-picture application
5965790
On scalable and locality-aware web document sharing
We propose a scalable Web document sharing infrastructure model called Browsers-Aware Proxy Server. In this design, a proxy server connecting to a group of networked clients maintains an index file of data objects of all clients' browser caches. If a user request misses in its local browser cache and the proxy cache, the browsers-aware proxy server will search the index file attempting to find it in another client's browser cache before sending the request to an upper level proxy or the Web server. If such a request does hit in a remote client, this client will directly forward the data object to the requesting client; or the proxy server fetches the data object from this client and then forwards it to the requesting client. The contributions of this caching model are twofold. First, we show that the amount of sharable data in browser caches is significant and can be utilized for document sharing among clients to improve Web caching performance and scalability. Second, the browsers-aware model can effectively and further improve Web prefetching performance. The browsers-aware model and its supported prefetching technique build a strong locality-aware Internet environment to make Web accesses fast with low communication costs. Conducting trace-driven simulations, we show the effectiveness of the browsers-aware model, and its unique advantages to facilitate prefetching.
2600635
A systematic incrementalization technique and its application to hardware design

Abstract.A systematic transformation method based on incrementalization and value caching generalizes a broad family of program optimizations. It yields significant performance improvements in many program classes, including iterative schemes that characterize hardware specifications. CACHET is an interactive incrementalization tool. Although incrementalization is highly structured and automatable, better results are obtained through interaction, where the main task is to guide term rewriting based on data-specific identities. Incrementalization specialized to iteration corresponds to strength reduction, a familiar program improvement technique. This correspondence is illustrated by the derivation of a hardware-efficient nonrestoring square-root algorithm, which has also served as an example of theorem prover-based implementation verification.
18374506
Design-level performance prediction of component-based applications
Server-side component technologies such as Enterprise JavaBeans (EJBs), .NET, and CORBA are commonly used in enterprise applications that have requirements for high performance and scalability. When designing such applications, architects must select suitable component technology platform and application architecture to provide the required performance. This is challenging as no methods or tools exist to predict application performance without building a significant prototype version for subsequent benchmarking. In this paper, we present an approach to predict the performance of component-based server-side applications during the design phase of software development. The approach constructs a quantitative performance model for a proposed application. The model requires inputs from an application-independent performance profile of the underlying component technology platform, and a design description of the application. The results from the model allow the architect to make early decisions between alternative application architectures in terms of their performance and scalability. We demonstrate the method using an EJB application and validate predictions from the model by implementing two different application architectures and measuring their performance on two different implementations of the EJB platform.
16104127
Bilateral Filter for Meshes Using New Predictor
A new predictor of bilateral filter for smoothing meshes is presented. It prevents shrinkage of corners. A major feature of mesh smoothing is to move every vertex along the direction determined by the mean curvature normal with speed defined by the predictor. It prevents unnatural deformation for irregular meshes. In order to remove thenormal noise, we use adaptive Gaussian filter to smooth triangle normals.