RSP gb toc RSP Return Up Down GoTo Synthesis Opportunistic Domain Engineering
PRODUCT DESCRIPTION
PROCESS DESCRIPTION
INTERACTIONS WITH OTHER ACTIVITIES


DE.3.2. Process Support Development

Getting Started

The Process Support Development Activity is the activity of Domain Implementation for creating the Process Support component of Domain Implementation. Process Support is the infrastructure that supports the practice of Application Engineering by defining the procedures and standards by which application engineers develop applications (i.e., the Application Engineering process). It optionally provides automated mechanisms which support the effective and correct performance of the reuse-related activities of Application Engineering.

Objectives

The objectives of the Process Support Development Activity are to:

Required Information

The Process Support Development Activity requires the following information:

Required Knowledge and Experience

The Process Support Development Activity requires domain knowledge and experience in:

PRODUCT DESCRIPTION

Name:
Process Support
Purpose:
Process Support is a description and explanation of the conventions by which application engineers produce work products (via activities of the Application Engineering process) and automated support for efficient performance of the Application Engineering process.
Content:
Process Support consists of two parts:
  • Application Engineering User's Guide. A document that guides application engineers in how to exploit reuse opportunities to produce a set of supported work products.
  • Application Engineering Environment. Automated mechanisms that help the application engineers reuse work products. This includes the mechanisms that create the application engineers' view of the organization of the Adaptable Components and those tools used to access the Adaptable Components.
Verification Criteria:
  • Draft work products for the family can be produced using the Application Engineering Environment by following the User's Guide.
  • Process Support provides the ability to access all work product families supported by Product Implementation.

Application Engineering User's Guide

Purpose:
The Application Engineering User's Guide provides a detailed description of how application engineers can use the Application Engineering Process Support to exploit reuse opportunities. This guide expresses the decision-making process that application engineers follow for a domain.
Content:
The Application Engineering User's Guide instructs application engineers in how to recognize reuse opportunities and how to select, adapt, and compose reusable components of a work product family to exploit reuse opportunities. This guide also designates and explains the effective use of automated mechanisms that support the process.
Form and Structure:
The User's Guide should conform to your organization's standards and guidelines for documentation.
Verification Criteria:
The User's Guide describes how to select, adapt, and compose components for every work product family in the Product Implementation.

Application Engineering Environment

Purpose:
The Application Engineering Environment consists of all automated mechanisms, described in the User's Guide, that provide access to Adaptable Components for all domain-specific work products that application engineers reuse. The Application Engineering Environment automates the mechanical portions of the process for increased consistency within a product and less opportunities for undetected error.
Content:
The Application Engineering Environment consists of both tools that are part of the host operating system and tools developed during this activity. Together, they define a view of the Adaptable Components, along with a set of mechanisms that allow application engineers to access these components.
Form and Structure:
  • The tools adhere to the organization's standards and conventions for its software development environment.
  • The view of the Adaptable Components provided by the Application Engineering Environment must facilitate the tasks application engineers undertake when using it. The Application Engineering User's Guide describes these tasks in detail.
  • From the application engineers' perspective, the structure of the Adaptable Components is determined by the tools with which they access the structure. These tools may or may not hide the actual structure.
  • The Application Engineering Environment must facilitate application engineers being able to unambiguously locate, evaluate, and extract work products.
Verification Criteria:
  • All automated tools described in the User's Guide exist and behave as the User's Guide states. All Adaptable Components produced during Component Implementation Activities are accessible.
  • Automated mechanisms contain no residual errors.

PROCESS DESCRIPTION

The Process Support Development Activity consists of all activities necessary to create appropriate Process Support for an application engineering work product family. You perform this activity for each work product family, augmenting the User's Guide and Application Engineering Environment, to support the new or revised work product families. In many respects, this activity involves work which is similar to that of a conventional software development project. Furthermore, if you decide to automate some or all of the Application Engineering process (i.e., create an Application Engineering Environment), then you apply software development methods to accomplish that goal. The Process Support Development Activity consists of the two steps shown in Figure 3.2-1. Process Support Development Process

Procedure

Follow these steps for the Process Support Development Activity. Perform these steps in the order listed but iterate through them until you are satisfied with the work product as a whole.

Step: Develop the Application Engineering User's Guide

Action:
Create a detailed guide for application engineers which instructs them on how to perform every aspect of Application Engineering including manual steps and effective use of any automated mechanisms.
Input:
  • Process Requirements
  • Domain Definition
  • Domain Specification
Result:
Application Engineering User's Guide
Heuristics:
  • Present, in as much detail as possible, a description of how application engineers would locate and generate work products in the Application Engineering Process Support. Try to describe reuse as a series of steps that application engineers can follow. Do so in terms of any procedures and standards your organization has for performing a given activity. (Section AE describes a prototypical sequence of steps for an Application Engineering activity.)
  • Provide an overview that helps application engineers understand the types of work products in the domain. You can draw on the components of the Domain Definition for this overview.
  • Create scenarios that describe an Application Engineering activity involving reuse. These scenarios will help you organize reuse and incorporate it into your Application Engineering process. Use the targeted project's environment as the basis for your scenarios.
  • Describe, based on the Process Requirements, the activities where application engineers can reuse work products of this type.
  • Each work product family has its own Decision Model and Generation Procedures. A simple way to keep them separate is to describe each work product family in its own section.
  • When you have described reuse for several work product families, you will notice similarities in the procedures. You should note these in the User's Guide as preliminary organizational standards for reuse. Some of these may come from conventions that exist in your organization, whereas others may have been introduced to facilitate reuse. Be sure that the conventions you describe do not interfere with Application Engineering.
  • Describe reuse of a work product as a procedure, i.e., a set of steps to follow. Make each step of reuse as mechanical as possible. This will help you eliminate ambiguity and determine which portions you can automate.
  • You can communicate certain concepts to application engineers using domain engineering work products developed for the work product family:
    • Use Product Requirements to describe the common traits of all work product family members and the characteristics of individual members.
    • Incorporate concepts from the Procedure for Work Product Creation (from Process Requirements) into the descriptions of steps for reusing work products. Ideally, you can present reuse to application engineers as a desirable, but optional, step in creating a work product.
    • Use the Decision Model to describe the decisions the application engineer must make to identify an individual work product family members. Incorporate engineering judgment and domain knowledge that domain experts use to formulate a set of answers.
    • Use the Product Architecture to describe the internal organization(s) of a member of the work product family.
    • Use Component Designs to provide detailed interface information that will help application engineers determine whether they can use a given component in their work product.
    • Use Generation Procedures to describe how to extract a member of the work product family. Note that the Generation Procedure does not account for the automation in the Application Engineering Environment. Automation may allow application engineers to use tools to perform certain steps; describe the tools, not the steps.
  • You should understand (and document) the expertise expected of application engineers. This will affect the type of information you place in the User's Guide.

Step: Develop the Application Engineering Environment

Action:
Design, implement, and verify the automated mechanisms needed to support the Application Engineering process.
Input:
  • Application Engineering User's Guide
  • Product Implementation
  • Product Architecture
Result:
Application Engineering Environment
Heuristics:
  • The Application Engineering User's Guide specifies what aspects of the Application Engineering process are automated. Revise the User's Guide if this cannot be fully satisfied.
  • Creating an Application Engineering Environment is a software development task. You must design an environment, implement that design in a programming language (or via equivalent commercially-available software technology), and test it to verify that the resulting environment implements the Application Engineering User's Guide correctly.
    • You must provide, at a minimum, enough automation to allow application engineers to access the Adaptable Components. In this step, specify other tools that you think will be a cost-effective way to simplify the steps of reuse.
    • If the User's Guide asks application engineers to browse through the Application Engineering Process Support, consider using file system directory-changing commands.
  • Reduce your up-front development costs by taking advantage of available technology to automate various activities within the infrastructure. For example, there are planning and scheduling tools for project management; object-oriented databases and user interface tools that can support specifying an Application Model; testing, prototyping, and environment simulation tools for validation; simulation and dynamic assessment tools for assessment; and metaprogramming and system generation tools for product generation. However, you must also consider what resources you will need to integrate these or other technologies into a coherent infrastructure.
    • Determine how you want application engineers to view the Adaptable Components and how you want them to perform the task of locating, evaluating, and extracting them. The tools you allow them to use influence this view. At a minimum, you can use the native operating system tools to browse and manipulate the file structure specified as the Organization Structure in the Product Implementation.
    • The Organization Structure of Product Implementation provides the basic structure presented by the Application Engineering Environment. You may also want to implement other structures that help application engineers locate and evaluate components. For example, if your tools include database facilities, you can provide alternate indexes.
    • Identify the tools that the targeted project has decided to use as part of Application Engineering. Make them part of the Application Engineering Environment, where possible.

Risk Management

Risk:
The procedures described in the Application Engineering User's Guide will be hard to follow (i.e., vague, incomplete).
Implication:
Application engineers will have a difficult time reusing work products. This may cause excessive use of the project support staff. It may also cause application engineers to favor creating work products from scratch rather than reusing existing work products.
Mitigation:
Review the Process Support documentation with application engineers to see what areas of the process are incomplete, inconsistent, or ambiguous. Have them generate example work products, noting where they misinterpret or misuse the documentation.

INTERACTIONS WITH OTHER ACTIVITIES

Feedback to Information Sources

Contingency:
The Process Requirements work product is incomplete, ambiguous, or inconsistent.
Source:
Process Requirements Activity
Response:
Describe specifically where the Process Requirements work product is inadequate and suggest improvements. Proceed with the implementation of Process Support as far as possible while the Process Requirements are being updated.

Contingency:
The Generation Procedure cannot be used in its current form in the Application Engineering process.
Source:
Generation Implementation Activity
Response:
Describe how the Generation Procedure needs to be changed so that it will fit within the Application Engineering process.

Feedback From Product Consumers

Contingency:
The Application Engineering process is difficult to use or is too labor-intensive.
Source:
Project Support Activity
Response:
Identify where the problems exist and discuss, with the application engineers, ways of reducing (or eliminating) these problems (e.g., through the use of automation).



PHS