E-bazaar Design


The following documents are part of the design of e-bazaar phase 1:

Use-cases
ROSE Model - Download
ROSE Model - Online (HTML)
Problem Statement


Papers

Paper Description
Enterprise Component: A Compound Pattern for Building Component Architetcures The paradigm of building software from reusable parts and creating a capital –intensive production lifecycle which also has the flexibility of modifiability by replacing a component and plugging in a new one seems to be the future of software development.

Third-party vendors can contribute to large-scale development efforts by building components and having them certified and documented well enough to be used in a repository of browsable components. We need software assets (from modeling down to code and test) that are reusable and are able to be (re-) composed in several ways; can be extended by plugging in other cohesive, runnable pieces without having to have the source code for each functional unit of software?
Grammar-oriented Object Design : Creating adaptive collaborations and dynamic configurations with self-describing components and services The configuration and collaboration of software components in software architecture are designed to adaptively conform to a set of business requirements that often need to be updated to reflect changing business needs and models. Altering collaboration sequences, business rules and processes within applications often create unacceptable maintenance overhead in a tight delivery window where the constraints of high quality software need to be balanced with (and is sometimes compromised for) rapid time-to-market.

Thus, we identify three major new characteristics that are needed to fulfill the demands of component-based software engineering today and hence-forth; namely, a) dynamic [re-] configuration based on business domain languages, b) component manners to manage collaboration and c) self-description that defines the context and abilities of a component that can be queried without violating encapsulation. We explore how Grammar-oriented Object design (GOOD), facilitates the creation of software enterprise component architectures that realize the three characteristics.
Rule Pattern Language 2001 : A Pattern Language for Adaptive Manners and Scalable Business Rule Design and Construction Business Rules, Constraints, Policies and Workflow and in general, the “manners” or rules governing the behavior of objects and components within object-oriented software architectures need to be managed, designed and implemented across the software development life-cycle. With such farreaching influence and impact on software development, it is expected that the process of Rule Management would be honed into a more disciplined set of practices and methods that could be applied uniformly across multiple projects.

The expectation to achieve an engineering discipline through the distillation of the industry’s body of knowledge pertaining to the way rules are handled has been the motivation of workshops and harvesting of best-practices across multiple projects in various industries over the past six years. This has led to a continuous refinement and update of the Rule Pattern Language (RPL). In this paper, we provide and overview of the patterns and focus on Rule Object, Type Rule and Configurable Workflow as three representative patterns in greater detail.
Using Grammar-oriented Object Design (GOOD) to Seamlessly Map Business Models to Component-based Software A collection of 24 slides interactively describing about Grammar-oriented Object Design and how it maps business models to Component Based Software Architechure.
Using Grammar-oriented Object design to Implement a Mail Registry Application Suppose you want to write an application (let's call it the Mail-Registry) in a typical business organization. You have in-bound and out-bound; internal and external letters. All of the company's letters (both internal and external letters) are first entered in the Mail-Registry. These letters can be both the internal letters or external letters.

The internal letters are those letters that have been produced in the company itself and the external letters are received from an external source (other companies, for example). In both cases, the operations that need to be done on each of these letters are similar. We will call the process of registering in-bound, out-bound letters (whether external or internal), a Mail-Registry.
Developing GOOD Business Frameworks Framework for developing Grammar-oriented Object Design that contains step by step description of the development process.
GOOD: Meta-modeling and Grammar-Oriented Object Design. Meta-modeling with grammars facilitates the creation of dynamically configurable and interacting software components which embody the highly volatile business rules of today’s fast-paced business systems. The dynamic aspects of pluggable business components can be modeled and realized through grammar-oriented object design. We employ the concepts of grammar-oriented object design, reuse-levels, valid object interaction sequences and “objects handling their own manners” to help create such meta-models.
A Domain-language Approach to Designing Dynamic Enterprise Component-based Architectures to Support Business Services. In this paper we present the solutions to a major subset of problems facing component-based development and integration (CBDI). These solutions include patterns, techniques, design artifacts and activities across what we have identified as the five domains of CBDI: namely, organizational, methodological, architectural, technology implementation and infrastructure.

We present a taxonomy of CBDI domains that transcend technology and tools, to cover a wider spectrum of business and methodology concerns across an enterprise. A representative example from the methodology and the architecture domains are given. Domain-specific languages are combined with the object paradigm to yield grammar-oriented object design (GOOD). GOOD helps identify and map reusable subsystems in a business model to a wellmannered component-first software architecture. We then demonstrate how these manners should be added as first-class constructs to the component-based paradigm of software engineering.
An Approach to Designing Adaptive Enterprise Component-based Architectures for Business Services. In order to fully realize the potential of component-based software engineering, the multiple aspects and domains that should be considered are discussed. We focus on two of the domains, namely, the methodology and architecture domains of component-based development and integration (CBDI). For the method domain, we examine some extensions to that are needed to current methods such as: Subsystem Analysis, Variation-oriented Design and Grammar-oriented Object Design.

They are the key principles and techniques required to design and build enterprise-scale components that are seamlessly mapped onto business models in such a way as to enable the business logic of the resulting Enterprise Components to be adaptively changed to meet rapidly evolving business requirements and opportunities. The concept of the “manners” of reuse elements (e.g., subsystems and components) is exploited as a first-class construct to the component-engineering paradigm.
Using Grammar-Oriented Object Design to Seamlessly Map Business Models to Component-Based Software Architecture Although current object-oriented analysis and design methods and modeling languages have each a rich set of semantics and syntax to support the modeling of software systems, their support for business modeling has been more limited. In addition, there is no full lifecycle support for the challenges posed by componentbased development and integration (CBDI). The transition and traceability from business models to software component architectures is by no means smooth.

This paper explores extensions to current methods to fully support CBDI across the life cycle starting from business modeling and throughout the software development lifecycle. We propose Grammar-oriented Object Design (GOOD) as a method of identifying and mapping reusable subsystems in a business model to a well-mannered component-first software architecture. The latter architecture assumes the modeling and design process is based on an assembly-based paradigm of wiring prebuilt or customized components that have been designed for change and with the intent of repeated long-term reuse and customization.