Domain Specific Architectural Design Language Generation

Sharon A. White, Ph.D., Assistant Professor, UHCL
Michel Izygon, Ph.D., JSC
Charles Pitman, Ph.D., JSC
Cuauhtemoc Lemus, Ph.D., Post-Doctoral Fellow, UHCL


Lemus and WhiteTRULY LARGE GAINS in software productivity and quality hinge on increasing the level of reuse, not only reuse of code, but reuse of all life cycle artifacts, in particular reuse of the knowledge and expertise that surrounds an application domain. For large-scale reuse to take place tools and techniques must exist to capture this knowledge and use it to offer expert guidance to the software developer, designer, and maintainer. This notion reflects the way expert designers and developers work, relying on their own built-in experience base. These beliefs, echoed by many conducting research within the areas of Software Architecture and Domain Engineering, have stimulated the development of Architecture Design Languages (ADLs)[1,2] generated for use in specialized domains.[3,4] These domain-specific languages and architectures offer a higher degree of reuse in comparison with the traditional approach to software development. This work is directly concerned with the definition and implementation of an Architecture Description Language (ADL) as a design tool. An ADL is a set of notations, languages, standards and conventions addressing representation and description issues of architectural development and analysis.[5]

Above. Dr. Cuauhtemoc Lemus, Post-Doctoral Fellow, (l.) serves on the UH-JSC team with Dr. Sharon White, UHCL, to keep programmers from "reinventing the wheel" by reusing available code.

Domain Specific Architectural Design Language Generation addresses the issues of creation, representation, analysis, and evaluation of software at the architectural design level. Each of these issues contributes to the objective of providing a software designer with an architectural design tool that contains the knowledge of the software domain (family of software systems). The design tool utilizes this knowledge to help reduce the time and cost associated with the development and maintenance of large complex software systems by providing a way of reusing design knowledge associated with a family of systems.

The framework proposed within this project is one in which a well-defined software domain can be defined and this definition used to drive the creation of a domain-specific architectural design language. The domain definition method included in the framework provides for capture of the knowledge associated with the design and implementation of systems at the architectural level of detail. Specifically, the framework will support the definition of a software architecture domain[6] as well as use of the domain definition to automatically generate a domain-specific Architecture Design Language that will enable architecture design creation and analysis. Implementation of a system based on this framework will provide a notation for the capture of architectural design knowledge surrounding a given domain, a guidance for the reuse of this knowledge, reuse of associated artifacts (such as test plans, requirements, and code associated with past successful architecture designs). The major contributions of this work will apply to the advancement of large scale reuse, automatic language creation, basic architecture design language research, and methods for architectural design knowledge capture and reuse.

Figure 1Objectives
One goal of this research project is to define a framework for constructing environments that can support architectural design and enable large-scale software reuse. Another goal is to provide a method of generating domain-specific architecture design languages that capture a set of necessary design requirements and the language constructs and structure needed to specify architectural designs accurately, completely, and easily. Computer-based studies have the following objectives: (1) definition of a method of automatically generating an Architectural Design Language definition, both its rules of syntax and semantic actions, (2) definition of a framework that will enable the implementation of a design support environment that can be configured to reflect the architectural design domain, that can use this domain configuration to analyze new designs for conformance to stated domain rules, and to one that can offer support for reuse (Fig. 1). (We call our computer program the Software Design for Realizability (SDFR) framework.), and (3) implementation of a prototype system based on this definition.

Figure 1. Software Design for Realizability (SDFR) Framework, major components.

Methodology
The central features of this work enable architecture domain definition and the employment of this definition to provide a domain specific design tool that will provide support for architecture representation and analysis. We use a language-based approach to provide this capability. This can be seen by language-related components that make up the SDFR framework (Fig. 1). An initial prototype of SDFR has been implemented on a SUN SPARC station 4 in Java. The domain language component of this framework provides the backbone for the domain definition environment. It also is the vehicle for expression and automation of the ability of the framework to take a given domain definition (expressed in the domain language of SDFR) and to process it using source-to-source compiler technology resulting in the creation of a set of syntactic and semantic rules that together define the underlying Architectural Design Language component of SDFR. This generated ADL will contain the domain-specific design rules and associated analysis rules. It will also offer templates for architecture designs based on a set of product-types belonging to the domain.

The domain language is defined by an attribute grammar whose semantics define the operations required for language generation. The domain language provides constructs that allow the design domain to be defined in terms of the base design elements. For physical domains these base elements are component-types, connection-types, material-types, construction-operation-types, and connection-operation-types. For logical (software) domains, the base design elements (core types[6]) will be of type component-type, connector-type, or connection-type. The language also provides a set of built-in subtypes of each of these abstract types as well as the ability to define new and derived types.[7]

Use of an implementation based on our SDFR framework consists of two main phases, domain definition followed by design activity. The implementation provides a GUI, built on top of the domain language, for domain definition. A domain expert will define the domain by (1) defining an instance of a database schema which stores information regarding components contained within a reuse library and (2) defining the architecture domain using the built-in components and connectors, as well as extending them in well-defined ways or defining new components, connectors, and rules concerning their meaning and usage. Once the domain is defined, SDFR generates a design environment that can be used by software designers to create new designs using the architectural components and connectors provided. The system will provide design assistance and analysis based on the defined domain rules.

References
[1]M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Inc., 1996.
[2]P. C. Clements. "A Survey of Architecture Description Languages," 8th Int'l Workshop on Software Specifications and Design, Paderborn, Germany, March, 1996.
[3]M. Englehart and M. Jackson. "ControlH: A Specification Language and Code Generator for Real-Time N&C Applications," Honeywell Technology Center, 1993.
[4]D. Luckham, J. Kenney, L. Augustin, J. Vera, D. Bryan, and W. Mann. "Specification and Analysis of System Architecture Using Rapide," IEEE Trans. on Software Engineering 21.4 (April 1995): 336-53.
[5]P. C. Clements and L. M. Northrop. "Software Architecture: An Executive Overview," Technical Report CMU/SEI-96-TR-003, Feb. 1996.
[6]S. A. White. "Software Architecture Design Domain," Proc., Second Integrated Design and Process Technology Conf., Austin, TX., Dec. 1-4, 1996. 1: 283-90
[7]S. A. White and C. Lemus. "ADL Generation: Project Report," Internal Project Report, Aug. 1997.


Contents
ISSO -- Institute for Space Systems Operations
1996-1997 Annual Report

Navigation Bar

foot-black.gif (4301 bytes)