Network


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

Hotspot


Dive into the research topics where Donald D. Cowan is active.

Publication


Featured researches published by Donald D. Cowan.


conference on object-oriented programming systems, languages, and applications | 2009

S.P.L.O.T.: software product lines online tools

Marcílio Mendonça; Moises Branco; Donald D. Cowan

This paper introduces S.P.L.O.T., a Web-based reasoning and configuration system for Software Product Lines (SPLs). The system benefits from mature logic-based reasoning techniques such as SAT solvers and binary decision diagrams to provide efficient reasoning and interactive configuration services to SPL researchers and practitioners. In addition, the system provides a feature model repository containing real and generated models to encourage knowledge sharing among researchers in the field.


IEEE Transactions on Software Engineering | 1995

Abstract data views: an interface specification concept to enhance design for reuse

Donald D. Cowan; Carlos José Pereira de Lucena

The abstract data view (ADV) design model was originally created to specify clearly and formally the separation of the user interface from the application component of a software system, and to provide a systematic design method that is independent of specific application environments. Such a method should lead to a high degree of reuse of designs for both interface and application components. The material presented, extends the concept of ADVs to encompass the general specification of interfaces between application components in the same or different computing environments. This approach to specifying interfaces clearly separates application components from each other, since they do not need to know how they are used, or how they obtain services from other application components. Thus, application components called abstract data objects (ADOs), are designed to minimize knowledge of the environment in which they are used and should be more amenable to reuse. >


generative programming and component engineering | 2008

Efficient compilation techniques for large scale feature models

Marcílio Mendonça; Andrzej Wasowski; Krzysztof Czarnecki; Donald D. Cowan

Feature modeling is used in generative programming and software product-line engineering to capture the common and variable properties of programs within an application domain. The translation of feature models to propositional logics enabled the use of reasoning systems, such as BDD engines, for the analysis and transformation of such models and interactive configurations. Unfortunately, the size of a BDD structure is highly sensitive to the variable ordering used in its construction and an inappropriately chosen ordering may prevent the translation of a feature model into a BDD representation of a tractable size. Finding an optimal order is NP-hard and has for long been addressed by using heuristics. We review existing general heuristics and heuristics from the hardware circuits domain and experimentally show that they are not effective in reducing the size of BDDs produced from feature models. Based on that analysis we introduce two new heuristics for compiling feature models to BDDs. We demonstrate the effectiveness of these heuristics using publicly available and automatically generated models. Our results are directly applicable in construction of feature modeling tools.


formal methods | 1996

A Formal Approach to Architectural Design Patterns

Paulo S. C. Alencar; Donald D. Cowan; Carlos José Pereira de Lucena

In this paper we introduce a formal approach to architectural design patterns based on an object-oriented model integrated with a process-oriented method for describing the patterns. The object-oriented model is based on the Abstract Data View (ADV) concept, which is a formal model for subjectivity in that it explicitly distinguishes between two kinds of objects, namely application objects and object vieWs. The formalism allows the definition and application of design patterns by considering both the process program for the pattern tasks and the interconnected objects and views resulting from a particular pattern instantiation. The approach can be used to describe design patterns at many different architectural levels, and this is illustrated by presenting patterns for the master-slave, pipes- and-filters, layered systems, adapter, observer, and composite.


Software - Practice and Experience | 1993

Application integration: constructing composite applications from interactive components

Donald D. Cowan; Terry M. Stepien; Roberto Ierusalimschy; Carlos José Pereira de Lucena

Creating new applications by integrating user interface and application components is a relatively new idea which is currently of wide interest. A significant part of this problem is clearly defining the separation between user interface and application components. This paper proposes a new design methodology based on the concept of an abstract data view (ADV), a structuring method which cleanly defines this separation. A number of examples of composite interactive documents, ones which could contain several different user interfaces with entities such as text, calculations, drawings and possibly even multi‐media presentations, illustrate the ADV concept. These examples lead naturally to the introduction of the concept of hole, a user interface area in a composite interactive document which is managed by an external program, and uses ADVs. Prototypes of a number of systems supporting ADVs and holes are currently running in our laboratory.


Science of Computer Programming | 2010

Decision-making coordination and efficient reasoning techniques for feature-based configuration

Marcílio Mendonça; Donald D. Cowan

Software Product Lines is a contemporary approach to software development that exploits the similarities and differences within a family of systems in a particular domain of interest in order to provide a common infrastructure for deriving members of this family in a timely fashion, with high-quality standards, and at lower costs. In Software Product Lines, feature-based product configuration is the process of selecting the desired features for a given software product from a repository of features called a feature model. This process is usually carried out collaboratively by people with distinct skills and interests called stakeholders. Collaboration benefits stakeholders by allowing them to directly intervene in the configuration process. However, collaboration also raises an important side effect, i.e., the need of stakeholders to cope with decision conflicts. Conflicts arise when decisions that are locally consistent cannot be applied globally because they violate one or more constraints in the feature model. Unfortunately, current product configuration systems are typically single-user-based in the sense that they do not provide means to coordinate concurrent decision-making on the feature model. As a consequence, configuration is carried out by a single person that is in charge of representing the interests of all stakeholders and managing decision conflicts on their own. This results in an error-prone and time-consuming process that requires past decisions to be revisited continuously either to correct misinterpreted stakeholder requirements or to handle decision conflicts. Yet another challenging issue related to configuration problems is the typically high computational cost of configuration algorithms. In fact, these algorithms frequently fall into the category of NP-hard and thus can become intractable in practice. In this paper, our goal is two-fold. First, we revisit our work on Collaborative Product Configuration (CPC) in which we proposed an approach to describe and validate collaborative configuration scenarios. We discuss how collaborative configuration can be described in terms of a workflow-like plan that safely guides stakeholders during the configuration process. Second, we propose a preliminary set of reasoning algorithms tailored to the feature modelling domain that can be used to provide automated support for product configuration. In addition, we compare empirically the performance of the proposed algorithms to that of a general-purpose solution. We hope that the insights provided in this paper will encourage other researchers to develop new algorithms in the near future.


hawaii international conference on system sciences | 2000

Towards a unified catalog of hypermedia design patterns

Daniel M Germán; Donald D. Cowan

There has been a recent increase in the number of published design patterns for hypermedia. Some of these patterns have been evolving, while others have remained untouched. This paper attempts to list all the patterns currently known, tracing the different publications in which they have appeared. The patterns are scrutinized and refined: some patterns are unified into one; some are deemed special cases of other patterns; some patterns are renamed. At the same time, we propose to rewrite the patterns in a vocabulary that is uniform, and to use similar pattern templates. We then discuss the creation of a design patterns system, which organizes the patterns and assists the designer in the process of recognizing the problems and their potential solutions. Finally we propose a subset of the patterns which should conform a catalog of basic patterns; this catalog will attempt to address the most common problems found during the design of hypermedia applications.


engineering of computer based systems | 2000

Ensuring structure and behavior correctness in design composition

Jing Dong; Paulo S. C. Alencar; Donald D. Cowan

The design of a large component-based software system typically involves the composition of different components. Instead of relying on a free composition of components, we advocate that more rigorous analysis methods to check the correctness of component composition would allow combination problems to be detected early in the development process so that people can save considerable effort offering errors downstream. In this paper we describe a rigorous method for component composition that can be used to solve combination and integration problems at the (architectural) design phase of the software development lifecycle. In addition, we introduce the notion of composition pattern in order to promote the reuse of composition solutions to solve routine component composition problems. Once a composition pattern is proven correct, its instances can be used in a particular application without further proof. In this way, our proposed method involves reusing compositions as well as reusing components. We illustrate the utility of our approach through an example related to the composition of design patterns as design components. Structural and behavioral correctness proofs about the composition of some design patterns are provided.


computer software and applications conference | 1999

A pattern-based approach to structural design composition

Paulo S. C. Alencar; Donald D. Cowan; Jing Dong; Carlos José Pereira de Lucena

This paper describes an approach to component-based software engineering based on a formal description of design patterns. The architectural design information, captured by design patterns, is made explicit and represented in a declarative way, being packaged into tangible artifacts as building block design components in the development process. These design component descriptions can be instantiated, adapted, assembled, implemented, and maintained. Furthermore, we can use these representations to reason about properties related to the combination of design components. We illustrate the utility of our approach through a case study involving various design patterns.


acm symposium on applied computing | 2008

Decision-making coordination in collaborative product configuration

Marcílio Mendonça; Thiago Tonelli Bartolomei; Donald D. Cowan

In Software Product Lines (SPLs), product configuration is a decision-making process in which a group of stakeholders choose features for a product. Unfortunately, current configuration technology is essentially single-user-based in which user requirements are interpreted and translated into configuration decisions by a single role commonly referred to as the product manager. This process can be error-prone and time-consuming as it commonly requires back-and-forth interactions between the product manager and the stakeholders to cope with decision conflicts. In this paper, we propose an approach to Collaborative Product Configuration (CPC) that aims at providing effective support for coordinating teamwork decision-making in the context of product configuration. The approach builds on well-known concepts in the SPL arena such as feature models. The contributions of the paper include the CPC approach and the illustration of its application in a real-world product line.

Collaboration


Dive into the Donald D. Cowan's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Carlos José Pereira de Lucena

Pontifical Catholic University of Rio de Janeiro

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jing Dong

University of Waterloo

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Toacy Cavalcante de Oliveira

Pontifícia Universidade Católica do Rio Grande do Sul

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge