Results 1 - 10
of
56
Scaling Step-Wise Refinement
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 2004
"... Step-wise refinement is a powerful paradigm for developing a complex program from a simple program by adding features incrementally. We present the AHEAD (Algebraic Hierarchical Equations for Application Design) model that shows how step-wise refinement scales to synthesize multiple programs and mu ..."
Abstract
-
Cited by 448 (38 self)
- Add to MetaCart
Step-wise refinement is a powerful paradigm for developing a complex program from a simple program by adding features incrementally. We present the AHEAD (Algebraic Hierarchical Equations for Application Design) model that shows how step-wise refinement scales to synthesize multiple programs and multiple noncode representations. AHEAD shows that software can have an elegant, hierarchical mathematical structure that is expressible as nested sets of equations. We review a tool set that supports AHEAD. As a demonstration of its viability, we have bootstrapped AHEAD tools from equational specifications, refining Java and non-Java artifacts automatically; a task that was accomplished only by ad hoc means previously.
JTS: tools for implementing domain-specific languages
- In Proc. International Conference on Software Reuse
, 1998
"... ..."
(Show Context)
Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study
, 2002
"... This is a case study in the use of product-line architectures (PLAs) and domain-specific languages (DSLs) to design an extensible command-and-control simulator for Army fire support. The reusable components of our PLA are layers or “aspects” whose addition or removal simultaneously impacts the sourc ..."
Abstract
-
Cited by 64 (7 self)
- Add to MetaCart
This is a case study in the use of product-line architectures (PLAs) and domain-specific languages (DSLs) to design an extensible command-and-control simulator for Army fire support. The reusable components of our PLA are layers or “aspects” whose addition or removal simultaneously impacts the source code of multiple objects in multiple, distributed programs. The complexity of our component specifications is substantially reduced by using a DSL for defining and refining state machines, abstractions that are fundamental to simulators. We present preliminary results that show how our PLA and DSL synergistically produce a more flexible way of implementing state-machine-based simulators than is possible with a pure Java implementation.
A Standard Problem for Evaluating Product-Line Methodologies
- In Proc. Int’l. Conf. Generative and Component-Based Software Engineering, volume 2186 of LNCS
, 2001
"... Abstract. We propose a standard problem to evaluate product-line methodologies. It relies on common knowledge from Computer Science, so that domainknowledge can be easily acquired, and it is complex enough to expose the fundamental concepts of product-line methodologies. As a reference point, we pre ..."
Abstract
-
Cited by 55 (15 self)
- Add to MetaCart
(Show Context)
Abstract. We propose a standard problem to evaluate product-line methodologies. It relies on common knowledge from Computer Science, so that domainknowledge can be easily acquired, and it is complex enough to expose the fundamental concepts of product-line methodologies. As a reference point, we present a solution to this problem using the GenVoca design methodology. We explain a series of modeling, implementation, and benchmarking issues that we encountered, so that others can understand and compare our solution with theirs. 1
Feature oriented model driven development: A case study for portlets, in
- ICSE
"... Model Driven Development (MDD) is an emerging para-digm for software construction that uses models to specify programs, and model transformations to synthesize executa-bles. Feature Oriented Programming (FOP) is a paradigm for software product lines where programs are synthesized by composing featur ..."
Abstract
-
Cited by 53 (19 self)
- Add to MetaCart
(Show Context)
Model Driven Development (MDD) is an emerging para-digm for software construction that uses models to specify programs, and model transformations to synthesize executa-bles. Feature Oriented Programming (FOP) is a paradigm for software product lines where programs are synthesized by composing features. Feature Oriented Model Driven Development (FOMDD) is a blend of FOP and MDD that shows how products in a software product line can be syn-thesized in an MDD way by composing features to create models, and then transforming these models into executa-bles. We present a case study of FOMDD on a product line of portlets, which are components of web portals. We reveal mathematical properties of portlet synthesis that helped us to validate the correctness of our abstractions, tools, and spec-ifications, as well as optimize portlet synthesis. 1
Generating Product-Lines of Product-Families
- IN AUTOMATED SOFTWARE ENGINEERING CONFERENCE
, 2002
"... GenVoca is a methodology and technology for generating product-lines, i.e. building variants of a program. The primitive components from which applications are constructed are refinements' or layers', which are modules that implement a feature that many programs of a product-line can share ..."
Abstract
-
Cited by 36 (3 self)
- Add to MetaCart
(Show Context)
GenVoca is a methodology and technology for generating product-lines, i.e. building variants of a program. The primitive components from which applications are constructed are refinements' or layers', which are modules that implement a feature that many programs of a product-line can share. Unlike conventional components (e.g., COM, CORBA, EJB), a layer encapsulates fragments of multiple classes. Sets of fully-formed classes can be produced by composing layers. Layers are modular, albeit unconventional, building blocks of programs.
XML-based Method and Tool for Handling Variant Requirements in Domain Models
, 2001
"... A domain model describes common and variant requirements for a system family. UML notations used in requirements analysis and software modeling can be extended with "variation points" to cater for variant requirements. However, UML models for a large single system are already complicated ..."
Abstract
-
Cited by 28 (12 self)
- Add to MetaCart
(Show Context)
A domain model describes common and variant requirements for a system family. UML notations used in requirements analysis and software modeling can be extended with "variation points" to cater for variant requirements. However, UML models for a large single system are already complicated enough. With variants - UML domain models soon become too complicated to be useful. The main reasons are the explosion of possible variant combinations, complex dependencies among variants and inability to trace variants from a domain model down to the requirements for a specific system, member of a family. We believe that the above mentioned problems cannot be solved at the domain model description level alone. In the paper, we propose a novel solution based on a tool that interprets and manipulates domain models to provide analysts with customized, simple domain views. We describe a variant configuration language that allows us to instrument domain models with variation points and record variant dependencies. An interpreter of this language produces customized views of a domain model, helping analysts understand and reuse software models. We describe the concept of our approach and its simple implementation based on XML and XMI technologies. 1.
Program refactoring, program synthesis, and model-driven development
- Proceedings of the 16th International Conference on Compiler Constuction (CC’07), volume 4420 of LNCS
, 2007
"... Abstract. Program refactoring, feature-based and aspect-oriented software synthesis, and model-driven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
(Show Context)
Abstract. Program refactoring, feature-based and aspect-oriented software synthesis, and model-driven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs to other programs. In this paper, I explore their underlying connections by reviewing recent advances in each area from an architectural metaprogramming perspective. I conjecture how these areas can converge and outline a theory that may unify them. 1
From Crosscutting Concerns to Product Lines: A Function Composition Approach
, 2006
"... Aspects offer sophisticated mechanisms to modularize crosscutting concerns. Aspect Oriented Programming (AOP) has been successfully applied to many domains; however, its application to product line engineering has not been thoroughly explored. Features are increments in program functionality and are ..."
Abstract
-
Cited by 16 (5 self)
- Add to MetaCart
(Show Context)
Aspects offer sophisticated mechanisms to modularize crosscutting concerns. Aspect Oriented Programming (AOP) has been successfully applied to many domains; however, its application to product line engineering has not been thoroughly explored. Features are increments in program functionality and are building blocks of software product lines. Work on Feature Oriented Programming (FOP) has shown that a crucial factor to synthesize product lines is composing features by function composition. In this paper we describe a way to emulate function composition using AspectJ for the synthesis of a non-trivial product line, present a general mechanism to support it and highlight its potential reuse benefits. Our study also profiles the role different aspect constructs play in the synthesis of product lines and offers venues of research on the use of aspects in product line implementations. 1