The objective of Model-Based Software Engineering (MBSE) is to improve
product cycle time, product quality and product maintainability through a formal
understanding of the features and structure of a product family and through the
development of reusable software resources that simplify the development of new
products in the family. In MBSE, these reusable resources are designed for
flexibility: they will not easily fail as changes occur in functionality,
performance or technology. Much of the technology in MBSE is not new, but by
focusing on models that consolidate engineers' understanding of a family of
software products, engineers can create reusable assets that satisfy a wide
variety of uses and easily analyze changes in existing software to quickly
compose or synthesize new solutions for subsequent products.
MBSE is a program for adopting systematic reuse that is centered on software
modeling technology. It is a disciplined approach to developing and extending a
product family. MBSE is appropriate for organizations that view software as a
competitive differentiator in their business. Such organizations seek to develop
core competencies in critical domains and leverage these competencies through
internal reusable resources. Although cost avoidance is important, it is
secondary to gaining and sustaining revenue.
MBSE consists of the following elements:
The figure below shows MBSE as a production system consisting of two
parallel engineering processes: domain engineering and application engineering.
Two engineering groups having different skills
and rewards structures support these processes.
Domain engineering
is a process of analysis, specification and implementation of software assets in
a domain which are used in the development of multiple software products.
Software assets are the reusable resources used in application engineering.
Examples of software assets include domain models, software architectures,
design standards, communication protocols, code components and application
generators. In many companies, these assets are work products developed and
maintained internally. These work products are used in products within a product
family or in products across many families.
Application
engineering is an engineering change process that develops software products
from software assets.
This information as well as an indepth discussion of the process steps and
outputs for MBSE, and implementing MBSE into your organization, are provided in
[CMU/SEI-94-TR-01].