General Navigation Buttons - Home | Search | Contact Us | Site Map | Whats New
engineering graphic
white space
engineering
Engineering
CERT Coordination Center
COTS-Based Systems
Integration of Software-Intensive Systems
Performance-Critical Systems
Predictable Assembly from
Certifiable Components (PACC)
Information Repositories
Team & Personal Software Process
Product Line Practice
Software Architecture Technology
Software Engineering Measurement
& Analysis (SEMA)
white space
About SEI|Mgt|Eng|Acq|Collaboration|Prod.& Services|Pubs
pixel
Rollover Popup Hints for Topic Navigation Buttons above
pixel
What is Model Based Software Engineering (MBSE)?


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:

  • software assets
  • engineering processes

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].



The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright 2007 by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/mbse/is.html
Last Modified: 11 January 2007