RSP gb toc RSP Return Up Down GoTo Synthesis Leveraged 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 Application Engineering process and associated use of the Product Implementation component of Domain Implementation.

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:

This activity also requires the following additional expertise if you are planning to automate portions of the Application Engineering process:

PRODUCT DESCRIPTION

Name:
Process Support
Purpose:
Process Support is a description and explanation of the policies and procedures by which application engineers produce a work product (the Application Engineering process) and automated support for efficient performance of the Application Engineering process.
Content:
Process Support consists of five parts:
  • Application Engineering Process Standard. This establishes the policies and procedures that govern the Application Engineering process within the framework defined by the Process Requirements.
  • Application Engineering User's Guide. A document that guides application engineers in how to perform the Application Engineering process to produce a product.
  • Application Engineering Environment. The environment consists of the automated mechanisms that support the Application Engineering process.
  • Application Engineering Environment Support Manual. This is a system administration manual describing how to install and maintain the Application Engineering Environment for a project. It provides appropriate information on any vendor-supplied software technologies contained in the environment.
  • Application Engineering Training Courses. This material is used to train application engineers on how to perform the Application Engineering process and how to use Application Engineering Process Support.
Verification Criteria:
  • Members of the product family can be produced using the Application Engineering Environment by following the User's Guide.
  • Process Support prescribes an effective and efficient Application Engineering process.
  • Process Requirements are fully satisfied by Process Support.
  • Process Support provides the ability to specify and generated the entire product family supported by Product Implementation.

Application Engineering Process Standard

Purpose:
The Application Engineering Process Standard gives an overview of the standards, policies, and procedures that govern how application engineers should practice application engineering satisfactorily.
Content:
The Application Engineering Process Standard documents the essentials of the Application Engineering process including what has to be done, why, and who completes the work. It also identifies and prescribes standards for form and content of application engineering work products.
Form and Structure:
The form and structure of the Application Engineering Process Standard should adhere to your organization's current standards for documenting policies and procedures.
Verification Criteria:
  • The policies and procedures documented in the Application Engineering Process Standard are consistent with the Process Requirements.
  • The policies and procedures documented in the Application Engineering Process Standard do not conflict with other applicable organizational or customer standards.

Application Engineering User's Guide

Purpose:
The Application Engineering User's Guide provides a detailed description of how application engineers should perform to comply with the Application Engineering Process Standard. This guide expresses the decision-making process that application engineers follow for a domain.
Content:
The Application Engineering User's Guide instructs application engineers on how to build applications that have particular characteristics and explains how to create, interpret, and evaluate Application Models properly. 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 build an application product.

Application Engineering Environment

Purpose:
The Application Engineering Environment consists of all automated mechanisms, described in the User's Guide, that support creating and evaluating Application Models and generating and delivering equivalent application products. The Application Engineering Environment automates the mechanical portions of the process for increased consistency within a product and less opportunities for undetected error in producing a product.
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 support the Application Engineering process.
Form and Structure:
  • The tools adhere to the organization's standards and conventions for its software development environment.
  • The view of the domain 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.
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.

Application Engineering Environment Support Manual

Purpose:
The Application Engineering Environment Support Manual describes how to install the automated mechanisms of the Application Engineering Environment.
Content:
The instructions contained in this manual will be specific to your organization.
Form and Structure:
The form and structure of the support manual should adhere to your organization's current standards for such work products.
Verification Criteria:
Automated mechanisms can be installed on supported platforms without additional unspecified information or excessive effort.

Application Engineering Training Courses

Purpose:
These courses are used to train application engineers on how to perform the Application Engineering process using the Process Support.
Content:
The content is determined by how much expertise application engineers need in your organization to effectively perform Application Engineering.
Form and Structure:
The form and structure of the training courses should adhere to your organization's current standards for such work products.
Verification Criteria:

PROCESS DESCRIPTION

The Process Support Development Activity consists of all activities necessary to create appropriate Process Support consistent with the Process Requirements for the domain. In many respects, this activity involves work which is similar to that of a conventional software development project. You document the standards and procedures that establish how Application Engineering is to be practiced. You develop training courses and other support documentation that is used by the project support staff in helping projects use the domain product effectively. 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 five 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: Document the Application Engineering Process Standard

Action:
Document the standard policies and procedures by which an application engineer develops applications in the domain.
Input:
Process Requirements
Result:
Application Engineering Process Standard
Heuristics:
  • The Process Requirements defines the essentials of the Application Engineering process. The Process Standard cannot conflict with the Process Requirements, but you will need to extend the Process Standard to provide a complete process description. The degree to which you plan to automate the process is a major factor in how you elaborate Process Requirements into a Process Standard.
  • This document elaborates the essentials prescribed by the Process Requirements to establish the specific framework of the Application Engineering process. Your description of the process should define what has to be done, why it has to be done, and who completes the work. You should provide procedures that explain how to complete the process (the sequence of tasks or task steps that have to be performed), when the work is performed, and the criteria for measuring the quality of the work.
  • The purpose of standards is to promote a consistent approach in the development of application products. Your description of the standards should incorporate the standards used by your organization as well as cover detailed process requirements.

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
  • Application Engineering Process Standard
Result:
Application Engineering User's Guide
Heuristics:
  • Describe all aspects of performing the Application Engineering process in the User's Guide. This description should be sufficient for experienced application engineers to understand and follow the process routinely (i.e., without assistance after initial training) and effectively. Within this description, explain effective use of the automated mechanisms provided by the Application Engineering Environment.
  • Determine the degree to which the Application Engineering process is automated. Indicate additional aspects of the Application Engineering process to automate (beyond what Process Requirements and the Process Standard prescribe). Your guidance to the application engineer must reflect this decision. The choice of appropriate automation is governed by Process Requirements, economics, and human factors:
    • Process Requirements. The Process Requirements may dictate preferences on process and presentation automation mechanisms. For example, it may dictate display of certain information in a graphical form or the extent of automated support for Application Modeling. If Process Requirements imposes such preferences, you must either implement them or refer changes to the Process Requirements Activity.
    • Economics. You must determine whether reduced Application Engineering effort will be sufficient to justify the cost of automating. That cost may include the acquisition of software tools and hardware for application engineering projects, as well as the development resources (both time, people, and material) from your organization. Additionally, you must also consider the costs of maintaining and enhancing this automated support.
    • Human Factors. Manual procedures are usually labor-intensive and can result in many errors being introduced during any aspect of Application Engineering, particularly in the Application Production phase. A project may lose much time trying to identify and correct errors, and then repeating the process from where the last error was introduced. Automation, whether specially-built or a commercial tool, can reduce the effort needed during labor-intensive activities. It can also help to reduce or eliminate errors in the process. Another benefit of using automation is to reduce training requirements for the application engineering staff. For example, a project may need more training to perform Application Modeling manually than if automated support were provided.
  • Decide what expertise and experience application engineers are expected to have. Write the User's Guide with the perspective and assumptions that people with that expertise should have.
  • Provide whatever domain knowledge application engineers will need to perform Application Engineering correctly and effectively. You should consider, as a minimum, paraphrasing the Product Requirements in a form usable by application engineers. This information will help application engineers understand the implications of decisions to be made in Application Modeling.
  • Describe what the application engineer should do when confronted with a problem during Application Engineering. Include descriptions of common mistakes and known bugs (and corresponding work-arounds).
  • Provide advice to the application engineer on how to build systems with particular characteristics (e.g., particular capabilities or performance). Explain the meaning and purpose of different Application Models that could be developed.

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
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.
  • 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.
  • Consider, as a minimum, automating the specification task of the Application Modeling Activity and the Application Production Activity. These are the core of Application Engineering and provide the most direct benefits.
  • Decide what code construction tools (e.g., compiler, linker, debugger) will be used by application engineers to construct Application Product Software. For code components, you must consider factors such as target hardware and operating system and, if different from the host environment, how the code will be tested (e.g., in a host-simulated target environment or directly in the target environment) and created in executable form for the target environment (e.g., cross-compilers).
  • Consider how the Generation Procedure fits into this environment. From the perspective of Process Support, a Generation Procedure is a black-box that can apply the decisions resolved by an Application Model to Adaptable Components to create Application Product Software. If automated input of an Application Model is not supported, then additional effort is required from the application engineer to transform his Application Model into a form suitable for use by the Generation Procedure.

Step: Develop the Application Engineering Environment Support Manual

Action:
Create a manual that defines the information, resources, and steps required to install the Application Engineering Environment for use by a project.
Input:
Application Engineering Environment
Result:
Application Engineering Environment Support Manual
Heuristics:
Describe installation instructions for the automated mechanisms of the environment. These instructions are specific to your organization. However, consider, at a minimum:
  • Inventory. This is a list of all materials (code, software utilities, documentation) to be provided to the Project Support Activity.
  • Distribution Media. This describes the media and formats on which the automated mechanisms are provided to Project Support (e.g., tape, disk). It should also describe how to extract the contents from the medium.
  • Build Procedures. These are instructions on how to build the automated environment from supplied source code.
  • Software Resources. These describe software resources needed to build and execute the automated mechanisms (e.g., operating system, compiler, supporting utility programs, version numbers). These also identify the vendor and version of any commercially supported off-the-shelf software that supports portions of the environment.
  • Hardware Resources. These describe the host platforms on which the environment can successfully execute (e.g., CPU, operating system).
  • Limitations. These describe known discrepancies or unimplemented features in the delivered environment and any known workarounds.

Step: Develop Training Courses

Action:
Develop courses to train managers and application engineers in the effective use of the application engineering process and supporting mechanisms.
Input:
  • Application Engineering Process Standard
  • Application Engineering User's Guide
  • Application Engineering Environment Support Manual
Result:
Application Engineering Training Courses
Heuristics:
The content of these courses will be determined by how much expertise your organization believes application engineers need to practice Application Engineering effectively and correctly. You should consider, at a minimum, the following topics:
  • How to build systems in your domain using the Application Engineering process.
  • How to manage application engineering projects successfully.
  • How to use the automated capabilities of the Application Engineering Environment.

Risk Management

Risk:
The Application Engineering process will be inconsistent with the Process Requirements.
Implication:
Application engineers may not be able to produce applications that satisfy customer requirements.
Mitigation:
Review the Process Standards with experienced managers and engineers to check viability. Review the design and use of automated mechanisms with experienced engineers to ensure that those mechanisms satisfy the Process Requirements and Process Support documentation.

Risk:
Automation will not address the major difficulties of engineering applications in a domain.
Implication:
The Application Engineering process will be too labor-intensive, error-prone, or difficult, increasing the cost required to build an application.
Mitigation:
  • Review other Application Engineering processes to see what areas were automated and the rationale for doing so.
  • Review past Application Engineering process efforts from other, similar domains to see what areas of difficulties were encountered and how they were resolved.
  • Measure and analyze the performance of the Application Engineering process to help identify deficiencies.

Risk:
The Application Engineering process will be hard to follow (i.e., vague, incomplete).
Implication:
Application engineers will have a difficult time developing applications. This may cause excessive use of the project support staff. It may also cause incorrect applications to be developed and increase the time required to deliver an acceptable product to the customer.
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).

Contingency:
Suggestions are made to automate various aspects of the Application Engineering process.
Source:
Project Support Activity
Response:
Consider the economic and human factors to help you decide whether to pursue automating the suggested areas of the Application Engineering process.

Contingency:
The Domain Specification is not satisfied.
Source:
Domain Verification Activity
Response:
  • Correct errors as part of the next iteration of Process Support Development.
  • Refer capabilities that cannot be supported to Domain Analysis for revision.



PHS