Model-Driven Engineering in a Large Industrial Context - Motorola Case Study

Page created by Nicole Hunter
 
CONTINUE READING
Model-Driven Engineering in a Large Industrial
      Context — Motorola Case Study

                       Paul Baker1 , Shiou Loh2 , and Frank Weil3
    1
        Motorola Labs, Jays Close, Viables Industrial Estate, Basingstoke, Hampshire,
                                     RG22 4PD, UK
                                Paul.Baker@motorola.com
           2
             Motorola Inc, 1301 E. Algonquin Rd., Schaumburg, IL 60196, USA
                                 Shiou.Loh@motorola.com
    3
        Motorola Global Software, 1303 E. Algonquin Rd., Schaumburg, IL 60196, USA
                                Frank.Weil@motorola.com

          Abstract. In an ongoing effort to reduce development costs in spite of
          increasing system complexity, Motorola has been a long-time adopter
          of Model-Driven Engineering (MDE) practices. The foundation of this
          approach is the creation of rigorous models throughout the development
          process, thereby enabling the introduction of automation. In this paper
          we present our experiences within Motorola in deploying a top-down
          approach to MDE for more than 15 years. We describe some of the key
          competencies that have been developed and the impact of MDE within
          the organization. Next we present some of the main issues encountered
          during MDE deployment, together with some possible resolutions.

1        Introduction

Motorola employs over 13,000 software engineers and has been applying ini-
tiatives such as the Software Engineering Institute Capability Maturity Model
to improve the quality and productivity of software and system development.
However, given increasing system complexity, these initiatives are not enough
by themselves. As a result, Motorola began to deploy Model-Driven Engineer-
ing (MDE) as a means of introducing automation into the development process.
After more than 15 years, Motorola has matured and deployed its MDE process
with impressive results. This paper introduces some of Motorola’s experiences
and issues during MDE usage. We conclude by presenting some high-level strate-
gies Motorola is pursuing to further enhance MDE deployment and success.

2        Experience

Motorola’s experience in MDE crosses a wide spectrum of activities, tools, and
modeling languages in the telecommunications domain. Typical applications
range from protocol implementations on hand-held devices (pagers, cell phones,
etc.) to network controllers in infrastructure components (base stations, radio

L. Briand and C. Williams (Eds.): MoDELS 2005, LNCS 3713, pp. 476–491, 2005.

c Springer-Verlag Berlin Heidelberg 2005
Model-Driven Engineering in a Large Industrial Context    477

network controllers, etc.) This section describes this experience, covering lan-
guages and standards, development processes, and the automatic generation of
tests and application code. In addition, we discuss MDE successes and failures
and the impact that MDE has had.

2.1   Languages and Standards
Motorola began using standard modeling languages over 15 years ago with Struc-
tured Analysis and Structured Design (SA/SD) [9]. This was followed by the
introduction of the Specification and Description Language (SDL) [12] to Mo-
torola Europe for the modeling and validation of the design of communication
protocols. These positive experiences led to the large-scale deployment of an
MDE approach using languages such as Message Sequence Charts (MSC) [11],
SDL, and TTCN-2 [13] for the development of large telecommunication sys-
tems. MSCs were typically used for requirements specification, SDL for design,
and TTCN-2 for test specification.
     Following this wider deployment with MSC and SDL, Motorola increased
its involvement and leadership within the standards communities, especially the
International Telecommunications Union (ITU-T), the European Telecommuni-
cation Standards Institute (ETSI), and the Object Management Group (OMG).
For example, the MSC language was extended to allow the parameterization
of any data language, thereby making it possible to develop test models as a
basis for automatic test generation. In general, these languages were very well
suited to the domain of telecommunication systems, and their precise semantic
foundations gave a clear and unambiguous interpretation for users.
     To broaden the application domains for MDE, gain wider user acceptance,
and harmonize languages, Motorola pursued the development of UML 2.0 [16]
and testing notations. In doing so, MSC and SDL were incorporated into UML 2.0
to provide a language with a wider application scope which preserves those ca-
pabilities needed for communication system development.
     Together with European telecommunication companies, ETSI pursued the
evolution of TTCN-2 to define a test specification language that could be used
in a wider context (e.g., CORBA, web-based systems, etc.). The result was
TTCN-3 [7], a powerful and well defined abstract test specification and exe-
cution framework. Motorola promoted the use of TTCN-3 to harmonize testing
across different engineering teams, thereby leading to transferable skills and tool
reuse. To bridge the gap between TTCN-3 and UML 2.0, Motorola pursued the
development of the UML 2.0 Testing Profile [3] for graphical test modeling.
     Motorola is an active participant in the OMG Platform Technology Commit-
tee and in the ITU-T SDL Committee (Study Group 17), including the ITU-T
efforts to unify SDL and UML (Question 13/17 - System Design Languages
Framework and Unified Modeling Language).
478      Paul Baker, Shiou Loh, and Frank Weil

2.2    Process Overview

Since its adoption of MDE, Motorola has followed a rigorous, top-down pro-
cess. Typically, the process starts with the development of requirements using
scenario-based models (defined using MSCs or UML 2.0 Interaction Diagrams),
thereby capturing normative and exception behaviors. Next, architectural re-
quirements are developed to define the main system components and the inter-
actions between them. In addition to refining scenario-based models, interface
specifications detailing the data passed between system components are devel-
oped in either proprietary or standard languages such as ASN.1. Finally, detailed
design models are developed, using either SDL or UML 2.0, for each system com-
ponent. Data from the system or architectural requirements are transformed
either into SDL or UML 2.0 data types. These models are then tested and sub-
sequently transformed into code for the target application.
    To support this process, a number of technologies and tools have been de-
veloped and deployed. Firstly, Motorola developed a proprietary specification
technique for data because standard languages such as ASN.1 [10] could not
readily capture the bit-level data layout schemas used in the existing protocols.
In doing so, Motorola also developed automatic code generation tools that would
not only provide efficient data marshaling (see Sect 2.3), but would also facilitate
data reuse between design and testing activities. Motorola also institutionalized
the notion of model testing using co-simulation techniques. For example, an
executable SDL or UML 2.0 design model4 is run as a simulation against an
executable test suite. This has proven to be a very effective means of ensur-
ing the correctness and quality of models, as other verification techniques (e.g.,
model checking) are not tractable for such large-scale models. After the model
correctness has been determined, automatic code generation is used to gener-
ate the necessary code for the target implementation. Finally, for component,
integration, and system testing, Motorola introduced automated test generation
tools [4] that produce test suites from scenario-based requirements.

2.3    Automatic Code Generation

Motorola has been involved in automatic code generation from models for over
15 years [5,6]. The original work was done with Structured Design models, re-
lying on an internally developed action language for the process specifications.
These design models were transformed to code through a transformation sys-
tem written in Smalltalk. While this system worked well for small projects, the
original implementation of the code generator proved not to scale well to large
infrastructure components encompassing many applications each consisting of
several hundred thousand lines of source code and was re-architected.
    After the viability of modeling and automatic code generation was estab-
lished, several factors came into play:
4
    Most models are currently in SDL or UML 1.x, but a general transition to UML 2.0
    is being made, and products have been developed and shipped using UML 2.0.
Model-Driven Engineering in a Large Industrial Context   479

 –   the   desire to use standardized and non-proprietary modeling languages,
 –   the   desire to scale to large projects,
 –   the   desire to target small embedded systems such as pagers and cell phones,
 –   the   desire to fully leverage the models for testing.
    Modeling notations such as LOTOS and Z never gained popularity in the
United States, and commercial tool support for them was minimal. In addition,
the telecommunications systems being modeled were largely state-based. The
decision was therefore made to adopt SDL as the primary modeling language.
    At this point, the automatic code generation efforts in Motorola split into
three separate but related paths: code for infrastructure components such as
Base Site Controllers, code for subscriber components such as pagers and cell
phones, and code for encoding and decoding communications protocols (also
called packing and unpacking, or marshaling).

Infrastructure and Subscriber Components While the basic modeling
needs for infrastructure and subscriber development are the same (i.e., state
machines, concurrent communicating processes, messages, etc.), the needs of the
generated code are vastly different. Infrastructure components typically have
powerful processors, large amounts of memory, and no power constraints. In
contrast, subscriber components typically have minimal processing power, small
amounts of memory, and severe power and battery life constraints. In addi-
tion, the infrastructure components have strict throughput, latency, capacity,
and reliability requirements, often requiring the simultaneous handling of sev-
eral thousand calls in a fault-tolerant environment. Subscriber components just
have to be fast enough to handle one call, and reliability requirements are not as
strict (that is, an entire cell site cannot go down without major consequences,
but it is not catastrophic if a cell phone drops a call).
    For infrastructure components, entire subsystems are modeled in the design
language, including the detailed functionality. The models are tested and de-
bugged (see Sect. 2.4), and complete code is generated. While it is sometimes
the case that the generated code must be debugged, it is expected that the gen-
erated code is never modified—if a defect is found, the model is updated and
the code is generated again from scratch. This follows the full MDE vision.
    Subscriber components generally follow more of a “round-trip” approach.
The component is modeled, but the detailed functionality is added to the model
in the target language itself (C, C++, Java, etc.). The code is generated with
the target code left in place, and the testing is done on the resulting code in a
separate application test environment. Changes are never made to the parts of
the code that are actually generated, but may be made to the embedded target
code. Once debugged, these changes are loaded back into the model.
    While it could be argued that round-trip development does not truly follow
MDE concepts, there is a fine line between writing target code in a model and
writing the same functionality in a modeling language such as SDL. Often, what
is written is identical except for minor notational changes. Currently, the use of
round-trip versus “full” MDE is more for historical reasons than technical ones.
480    Paul Baker, Shiou Loh, and Frank Weil

   Using these techniques, Motorola has shipped many millions of lines of code
generated from SDL and UML models.

Marshaling The common ground in automatic code generation has been pro-
tocol encoding and decoding. This marshaling code entails much low-level bit
manipulation of data to decode a buffer into the realization of the abstract data
types used in the model, and vice versa for the encoding.
    These types of algorithms are tedious to represent in most modeling lan-
guages, and implementation-specific details are best left out of the models. We
have found that code generators are much better than humans at finding opti-
mal and correct sequences of bit-manipulation instructions for performing the
marshaling and dealing with data from different endian machines.
    Motorola makes extensive use of marshaling code generators based on exter-
nal specifications written in standard languages such as ASN.1 and on internal
specifications using a proprietary language. One major advantage, especially for
internal protocols, is that once a protocol is specified, all components using that
protocol get the generated marshaling code with no additional effort.
    Motorola uses generated marshaling code integrated with hand-written C
and C++ code, with application code generated from SDL and UML models
(both from internal tools and from various vendor tools), with TTCN-2, and
with TTCN-3.

Mousetrap Motorola has developed its own automatic code generation tool
suite called Mousetrap. The Mousetrap tool suite takes as input SDL, UML,
ASN.1, and ISL (a proprietary protocol language) and produces highly optimiz-
ing code customized for a product platform and a set of performance constraints.
Mousetrap is a rule-based code transformation system driven by a vast program-
ming knowledge base. Application code has been generated for and shipped in
both infrastructure and subscriber components.
    Field data has shown that code generated by Mousetrap has fewer defects
than hand code or code generated by vendor tools. This is largely due to Mouse-
trap’s ability to detect model problems that most vendor tools cannot catch,
and its ability to generate more complete code than vendor tools (e.g., all of
the platform interface code is generated). Code generated by Mousetrap is also
higher performance than code generated by vendor tools. The main reasons for
this are better optimization techniques in Mousetrap and the luxury of knowing
the target platform and being able to customize the code generation for it.

2.4   Automation Test Generation
When Motorola first deployed MDE it was observed that users were taking
scenario-based requirements and manually translating them into conformance
test suites. Hence, an automatic test script generation tool called ptk [4] was de-
veloped that would process system and architectural scenario-based models, de-
scribed using MSCs or UML 2.0 Interactions Diagrams, to generate conformance
Model-Driven Engineering in a Large Industrial Context    481

and load tests. During the development and deployment of requirements-based
test generation a number of factors came into play:

Lack of rigorous models for test generation. Even though it is common
   for system architects and designers to use scenario-based notations, they
   typically do not contain the rigor needed for machine processing. We also
   found that architects and designers were reluctant to invest the extra ef-
   fort needed to develop rigorous models since the benefit of automated test
   generation did not immediately justify the extra effort within their project
   scope. Hence, Motorola has been pursuing a strategy of providing static anal-
   ysis and automated construction tools [2,15] for scenario-based models that
   help reduce appraisal costs and improve productivity. Specifically, these tools
   enable system architects to detect errors, such as pathologies and feature in-
   teractions in the designs, and at the same time to infer new and consistent
   scenarios.
Correctness of scenario-based models. It was often the case that require-
   ments specifications contained semantic inconsistencies leading to tests that
   yield invalid results. Subsequently, research effort was directed to tools to
   detected these inconsistencies so that they could be corrected before the ap-
   plication of ptk. Pathological behaviors caused by inconsistencies in commu-
   nication semantics were prevalent among the issues identified during various
   Motorola case studies. Hence, it was decided to concentrate research effort
   on tools that detected these kinds of pathologies. Initially research was di-
   rected at characterizing inconsistencies in terms of standard UML behav-
   ioral semantics. However, practitioners often develop systems with implicit
   domain-specific communication semantics that are not formally incorporated
   within their model. As a result, the initial version of the tool reported many
   errors that practitioners regarded as false positives. It became clear that
   the understanding of these communication semantics was important. Hence,
   research has been directed at automatically inferring semantic constraints
   needed to resolve inconsistencies in scenario-based models in a manner that
   can be incorporated with little effort from the practitioner. In addition, it is
   possible to automatically resolve certain pathological behaviors in the same
   way. This allows the practitioner to concentrate more on the conceptual as-
   pects of the design and to enable a more agile and lightweight development
   process overall.
Test generation versus test specification. During our experience in deploy-
   ing test generation, it became very clear that users often did not understand
   the differences between test generation and test specification. For example,
   even though Motorola practitioners use test generation tools, they typically
   use them as test specification tools and hence do not gain the full bene-
   fits (improved test coverage, abstraction, etc.). To this end, Motorola pur-
   sued the development of the UML 2.0 Testing Profile and the deployment
   of TTCN-3. The intention is to provide a well-defined test specification and
   execution framework with an optional graphical modeling front-end which
482      Paul Baker, Shiou Loh, and Frank Weil

      enhances the distinction between test specification and the generation of
      tests from requirements. [1]

    In general, test generation has proven to be very successful in: (1) the reduc-
tion of effort in developing tests, either through the use of abstraction and test
generation techniques or through the reuse of test models for different test con-
texts, (2) the improvement of test coverage, and (3) the reduction of In-Process
Faults (IPF) that classifies the number of defects introduced during the test
development process.

2.5     Successes and Failures
The initial roll-out of MDE using SDL and MSC within Motorola Europe proved
to be successful in obtaining an approximate 2.3X reduction in effort through
the use of co-simulation, automatic code generation, and model testing. As a
result, MDE gained traction within other teams within Motorola.
    In general, the use of scenario-based test generation tools yields an approx-
imately 33% reduction in the effort required to develop test cases. However, in
some cases where complex modeling has been required, the use of scenario-based
models has not been appropriate. For example, using a scenario to describe the
behavior of a set of concurrent components that form part of a complex and dy-
namic system can be problematic. In such cases, specifying end-to-end scenarios
can tend toward complex scenario specifications, whereas scenarios that specify
single component behavior can lead to better reuse and understanding.
    The integrated Dispatch Enhanced Network (iDEN) infrastructure division
has seen a steady trend of MDE adoption over the past nine years. Starting
with the use of SDL for one network element, iDEN has expanded its MDE us-
age to 9 out of 12 major network elements. Most of those network elements have
achieved 65%–85% code-generation, which has contributed to significant produc-
tivity and quality improvement. The degree of modeling maturity has evolved
from informal “whiteboard” modeling to formal modeling with simulation to
code generation to test-case reuse and automated marshaling code generation.
iDEN is now looking into more seamless and integrated MDE approaches with
the emphasis on providing a smoother transition between system engineering
and downstream development. At the same time, iDEN is moving from SDL to
UML 2.0. This move is consistent with tool vendor and industry trends.
    In addition to the overall productivity and quality gains, Motorola has seen
tremendous gains in some phases of the development process. For example, it is
not unusual to see a 30X–70X reduction in the time needed to correctly fix a
defect detected during system integration testing. This reduction is attributed
to the ability to add a model test that illustrates the problem, fix the problem
at the model level, test the fix by running a full regression test suite on the
model itself, regenerate the code from scratch, and run the same regression test
suite on the generated code. The time it takes to do this is typically 24 hours
or less, while achieving the same quality with several hundred thousand lines of
hand code can easily take one to two months. The time needed to find the root
Model-Driven Engineering in a Large Industrial Context    483

cause of a defect has been improved in some case and worsened in others. For
example, platform interface issues can be difficult to diagnose since the observed
behavior may have no obvious correlation to the model, but subtle logic problems
in system behavior are easier to uncover in the model simulation.
    One pilot project that did not succeed involved an integrated transition from
hand code to automatic code generation. The project looked into the possibility
of “cleaning up” informal SDL models, generating the code for the process and
state machine infrastructure, and directly incorporating the legacy C code for
the state machine transitions. The main reasons that the project did not suc-
ceed is that (1) the hand code made no clear distinction between these behavioral
aspects, so the effort to refactor the hand code far outweighed any potential ben-
efits, and (2) the informal models no longer corresponded to the actual behavior
of the hand code since there was no compelling reason to have kept the model
up to date.

2.6   Impact

Overall, Motorola has seen a positive impact from the adoption of MDE. The
detailed results are mixed, however, and are very difficult to use for planning
purposes. The main issue in determining impact is the lack of a common baseline.
For large-scale development projects, it is unrealistic to try to set up parallel
development environments using code generation and hand coding. Even if the
required resources for this were available, it would be difficult to account for
several factors, including experience levels in the product itself, experience in
the modeling language versus the target language, legacy code that must be
included, learning curves associated with understanding how to model, reuse
of model test cases during product testing, reuse of model components in later
development projects, and maintainability of the model versus the hand code.
    In spite of the inability to determine and apply an appropriate normalizing
factor due to the above issues, Motorola has seen consistent benefits from MDE
and code generation. Typical results collected over the past few years have shown
the following benefits when compared to hand code:

Quality: a 1.2X–4X overall reduction in defects and a 3X improvement in phase
   containment of defects. Also, more defects are found earlier in the develop-
   ment process where they are less costly to fix. The overall Cost of Quality
   has also decreased due to a decrease in inspection and testing times.
Productivity: a 2X–8X productivity improvement when measured in terms of
   equivalent source lines of code.

3     Issues Encountered

The adoption of MDE within Motorola has not been without challenges. This
section lists some of the main issues encountered and the impacts they have had.
484    Paul Baker, Shiou Loh, and Frank Weil

3.1   Lack of Common Tools

The ready availability of third-party and internal tools for modeling and code
generation has led to a wide diversity of processes, languages, etc. Even within a
“single” language such as UML, there are several issues such as the inability to
completely transfer models between tools, use of vendor-specific extensions, lack
of complete UML support, and code generation support for different subsets of
UML. In practice, models and skills are only marginally transferable between
different development groups.
    Our experience is also that testing teams tend toward the development of
their own test tools. This leads to a variety of testing solutions which are often
duplicated, not well defined, and poorly supported. The skills developed are not
always transferable between development groups.

3.2   Lack of Abstraction

During requirements modeling we have encountered three main issues:

Platform Specifics: Often we find that system architects and designers de-
   velop requirements that contain either implicit or explicit assumptions about
   the implementation. We are addressing this through the promotion of Model
   Driven Architecture (MDA) [14] approaches.
Incompleteness: Typically requirements are defined either through use cases
   or through scenario-based models. Since only partial models are developed,
   there are implications on whether technologies such as model checking can
   be used to determine the correctness of requirements.
Quality: Determining the adequacy of requirements is a common concern. We
   are addressing this through the promotion of a top-down process and the use
   of metrics and reliability models to determine the quality of requirements [8].

3.3   Lack of Well Defined Semantics

Motorola projects have encountered issues with language semantics with virtu-
ally every modeling language used. For example, SA/SD had no defined process
language and advocated natural language, tool vendors have added their own
language extensions, and even UML 2.0 contains semantic variation points. The
situation has improved drastically over the past decade, but local conventions
are still used and the exact meaning of a model often is dependent on the tool
in which it was created.
    During the construction of models, implicit assumptions are also made about
domain semantics. For example, the type of semantics given to the communi-
cation between system components may be token passing, First-In First-Out,
synchronous/asynchronous, etc. To this end, a mechanism is needed to allow
the user to define domain-specific communication constraints that are consid-
ered during the construction and transformation of models. An initial UML 2.0
profile, called the Communication constraint UML Profile (CUP) [2], has been
Model-Driven Engineering in a Large Industrial Context    485

developed by Motorola Labs and can be used for specifying domain-specific com-
munication constraints with UML 2.0 Composite Structure Diagrams. CUP is
still being developed, but the intention is to standardize this within the OMG.

3.4   Coupling of Data and Behavior

With modeling languages such as SDL and MSC, the specification of data values
is tightly coupled with the behavior specification. For example, when an SDL
signal is sent between processes, the value of the signal is defined within the
behavior of each process. This means that when the signal type is modified, each
behavior definition must also be modified, resulting in a very large maintenance
burden for engineering teams. This also means that value definitions cannot be
reused between specification, design, and testing. By providing mechanisms for
decoupling data from behavior specification, we have seen very positive results.
With UML 2.0 we promote the use of instance modeling as a key strategy for
data reuse and reduced model maintenance. An instance is a run-time entity
with an identity that is distinguishable from other run-time entities. Hence,
instance modeling refers to the creation of “signal” instances as objects that can
be referenced and defined in an independent manner.

3.5   Poor Performance of Tools and Generated Code

Third-party MDE tools often do not scale well to the sizes needed for modeling
real telecommunications systems. We have encountered issues with the ability
of tools to load, save, compare, and generate code from large models. This has
become less of an issue as computing power increases, but it is far from solved.
    We have also encountered performance issues with the generated code. When
using third-party tools with limited ability to customize the code generation, it
can be extremely frustrating to address performance bottlenecks.

3.6   Lack of Integrated Tools

No single tool supports a comprehensive MDE environment, allowing full use of
current tools and processes. To this end, integration of modeling concepts and
tools becomes problematic. For example, during the transformation of models
to code, how is traceability handled if a separate traceability tool is used?

3.7   Team Inexperience

We have observed that many teams encounter major obstacles in adopting MDE
due to the lack of a well defined MDE process, missing skill sets, and inflexibility
in changing the existing culture. Without a well defined MDE process, teams
that adopt MDE tend to use a “trial and error” approach and encounter the
same set of pitfalls others have already experienced. Skill sets related to MDE
486    Paul Baker, Shiou Loh, and Frank Weil

includes mastery of formal languages, modeling, simulation, tools, code gener-
ation, model performance improvement, testing automation, and proper parti-
tioning of architectural and design views (specific MDE training requirements
are being identified as part of the effort described in Sect 4.3). Often the per-
ceived required skill set is daunting for many teams; some do not even attempt
MDE due to lack of the required skill sets. Adopting MDE without an appro-
priate cultural change has also caused many “painful” experiences. While some
development process changes could be documented and enforced, other manage-
ment and development cultural changes are hard to identify and much harder to
enforce. One example of inflexibility in cultural changes is the tendency to tune
performance through embedding pointer-manipulation code in the models, thus
opening the door to the same problems encountered in hand code.

3.8   Lack of Migration Tools

Motorola is migrating from SDL-based modeling to UML-based modeling. How-
ever, a large number of legacy SDL-based models exist from more than a decade
of SDL-based development. To facilitate the move to UML, migration tools are
needed that support not only the main behavioral models, but also the asso-
ciated modeling artifacts such as test cases and MSCs. The current migration
tools are inadequate, and this impacts software development.
    There is a significant cost of migration which is difficult to justify in terms of
return on investment (ROI). Migrating existing software already in the field is
in general a risky endeavor with low ROI. The lack of comprehensive migration
tools exacerbates the problem.
    There is also a limit to the benefit of MDE under a heterogeneous develop-
ment environment. With large software system consisting of both legacy SDL
and new UML models, there is no tractable way to co-develop the entire system.
Because of this, it is difficult to achieve consistent benefits from simulation and
consistency checking.

3.9   Lack of Scalability

We have observed that the current state of corporate MDE usage is characterized
by isolated models. For example, even in a highly coupled system such as iDEN,
each model exists separately. That is, they interact with each other only in the
target network and are neither currently being modeled as a whole nor being
leveraged for simulation and consistency checking as a whole.
    The challenges of MDE with respect to model scalability are:

Distributed development: Almost all large systems are developed by sepa-
   rately managed teams that are also geographically separated. MDE adds
   another dimension to the distributed development because in order to take
   advantage of MDE at the whole system level, one needs to build the sub-
   systems interfaces at the model level (not just at the target level). The
Model-Driven Engineering in a Large Industrial Context   487

   model-level subsystem interfaces are new and often ill-defined mainly be-
   cause of the difficulty in abstracting only model-level messaging without
   complications from lower-levels transport and network layers.
Information Overload: Modeling a large system such as the entirety of a
   cellular network is usually very complicated mainly because there are no
   straightforward ways of hiding detailed information at the right place in
   design, simulation, and presentation.
Legacy Software: Modeling a large system often requires the new models to
   interact with legacy software. It is normally not feasible to model a whole
   system such as cellular network because it is too costly to create stubs that
   replace the existing legacy software during modeling.
Tool Performance: Most MDE tools suffer from modeling performance when
   the system under development is large. The problem most often appears in
   simulating a large system such as an entire cellular network.

4     Addressing the Issues

This section presents some strategies Motorola is pursuing to optimized its use
of MDE while addressing some of the shortcomings presented earlier.

4.1    UML 2.0 Profiles

Profiles provide a powerful tool for the specialization of UML 2.0. In particular,
to address issues raised earlier in the paper, Motorola is currently using and/or
creating several profiles:

SDL Profile This profile fills the semantic variation points in UML 2.0 and
   provides continuity with development that has been based on SDL.
Testing Profile (U2TP) This profile provides a means for defining test spec-
   ifications that can be mapped onto TTCN-3 and JUnit test cases. In doing
   so, our aim is not only to provide testing tools that are tightly integrated
   with UML 2.0 model construction tools, but also to enable reuse of UML 2.0
   models within the construction of tests.
System Engineering Profile (SysML) This profile provides common nota-
   tions for systems engineering applications.5
Domain Specification Communication Constraints (CUP) This profile
   allows system architects and designers to specify domain-specific constraints
   explicitly as part of their models.

4.2    MDE Technical Advisory Board

The Motorola MDE Technical Advisory Board (MDE TAB) is the leadership
organization for an effort focused on the tool/software development discipline
5
    SysML is not (yet) a UML 2.0 Profile in the strict definition.
488      Paul Baker, Shiou Loh, and Frank Weil

deployed within Motorola. The focus of the MDE TAB is to provide a coor-
dinated point of interaction with MDE tool vendors regarding their modeling
and software development tools for Motorola global operations and to provide
a central organization responsible for collecting and distributing MDE-related
standards, metrics, etc.
   The purpose of the MDE TAB is to:

 –    Develop enterprise technical requirements and Motorola-wide solutions.
 –    Identify and prioritize long-term deployment problems and enhancements.
 –    Determine the best approaches for addressing problems and requirements.
 –    Identify training, best practices, policies, and procedures related to MDE
      tools and processes.
 –    Determine business impact metrics to measure the prioritized efforts.
 –    Identify and prioritize tool integration requirements.
 –    Coordinate with other Motorola teams related to MDE tool usage.
 –    Manage the supplier relationships.

4.3     Modeling Challenge Levels

As discussed in Sect. 3, we have encountered many MDE-associated challenges
such as ill-defined process, lack of required skill sets, etc. To overcome the chal-
lenges, an organization needs wide-ranging capabilities. However, it is not realis-
tic for any organization to acquire those capabilities in one single effort. Most, if
not all, development organizations need time to build their maturity with respect
to the deployment of MDE.
    Over the years, MDE practitioners have found that they went through dif-
ferent stages of modeling experiences, each stage with its distinctive benefits,
challenges, and opportunities. Most MDE teams go through these stages be-
fore truly mastering MDE and its process. However, the documentation of those
stages is incomplete or nonexistent, causing difficulty in sharing modeling ex-
perience among development organizations across the corporation. The planned
continued growth of MDE in Motorola drives the need to define a framework of
these stages (or levels). This framework must facilitate the sharing of experience,
which includes tools, methodologies, best practices, processes, etc.
    The framework Motorola is developing, called Modeling Challenge Levels
(MCL), is created under a task force sponsored by the MDE TAB (see Sect. 4.2).
The main purposes of the MCL are:

 – To provide a framework for sharing MDE experience across the corporation.
   This is accomplished through defining the levels of modeling maturity based
   on the collective recommendation of MDE expert practitioners. The MCL
   provides an environment to promote the best practices in MDE, relying on
   local innovation for best practices while providing access to a corporate-wide
   experience base.
 – To provide guidelines for creating a local MDE roadmap.
Model-Driven Engineering in a Large Industrial Context   489

 – To serve as a self-assessment tool with respect to an organization’s modeling
   maturity. A solid understanding of the current MDE capabilities of an orga-
   nization enables it to acquire the right MDE resources, plan improvements
   through gap analysis, understand anticipated challenges and benefits, and
   share experience effectively with other groups.
      MCL describes modeling maturity in six levels (from least to most mature):
1.    No Modeling
2.    Informal Modeling
3.    Formal Modeling
4.    Model-Centered Design
5.    Model-Driven Engineering
6.    Optimized Model-Driven Engineering.

4.4     MDE Qualification
Existing qualification approaches such as UML 2.0 certification only assess a
level of knowledge about a particular modeling language. The purpose behind
MDE qualification is to provide a formal structure, as well as incentives, for
the education and sharing of MDE skills and experience in a more systematic
manner. It attempts to do this in a staged and generic fashion, thereby allowing
managers and developers to learn and practice key skills that are appropriate to
their application and development domain. For example, verifying model correct-
ness is a generic and fundamental MDE activity, but how this is performed can
depend upon the context of a particular development project. Hence, the empha-
sis is to build an appreciation of and experience with the core concepts needed
for successful MDE while at the same time allowing flexibility on the specific
techniques and technologies used. By introducing formality into the education
of MDE, Motorola can build up a network of MDE experts that collectively
provide feedback for future MDE strategies.
    The plan is to build formalized MDE expertise through the introduction of
staged MDE qualifications. This provides a formal means for sharing knowledge
and experiences between development teams, thereby reducing the risk in adopt-
ing MDE technologies. For example, it could be that for the first trial of MDE
within a particular development team, the project should be supported by at
least one experienced MDE expert. We do not present a comprehensive list of
ideas in this paper, but we do provide some idea of what we consider important
criteria for the staged qualification of MDE expertise:
Stage 1 Core MDE concept training and experience, including modeling, veri-
   fication and validation, and process and measurement.
Stage 2 Further specialized training and experience, including several MDE
   languages, hardware and enterprise modeling, formal verification techniques,
   transformation techniques, and mentoring of Stage 1 projects.
Stage 3 Advanced training and experience, including demonstrations of model-
   ing within different contexts, leadership in evaluating new MDE technologies,
   mentoring, and knowledge sharing.
490     Paul Baker, Shiou Loh, and Frank Weil

4.5   Corporate-Level Tool Selection Committee

Motorola formed a one-time tool selection committee to evaluate the UML tools
from third-party vendors and provide a recommendation on which one(s) should
be used within Motorola. Each Motorola group engaging in MDE had represen-
tation on the committee, and it was the responsibility of the representatives to
collect and prioritize the requirements from their respective groups. Based on the
collated requirements, tools from the major vendors were evaluated on how well
they met the few-hundred weighted requirements. The committee was able to
narrow the officially sanctioned modeling tools to two choices. The evaluation of
new and updated MDE tools is initiated through the MDE TAB (see Sect 4.2).

4.6   MDE Technology Improvement

Motorola continues to invest in MDE technology improvement ranging from
automation technologies (including secure code generation, test generation, and
model testing), metrics, profile development, meta-modeling, and analysis tools.

5     Conclusion

We have presented an overview of the MDE-related activities in Motorola. In one
form or another, Motorola has been active in MDE for nearly two decades and
has seen incredible successes and glaring failures. We have found that through the
coordinated and controlled introduction of MDE techniques, significant quality
and productivity gains can be consistently achieved, and the issues encountered
can be handled in a systematic way.

References

1. Baker, P.: Test Generation towards TTCN-3. ETSI TTCN-3 User Conference (2004)
2. Baker, P., Burton, S., Bristow, P., King, D., Jervis, C., Mitchell, B., Thomson, R.:
   Detecting and Resolving Semantic Pathologies in UML Sequence Diagrams. ACM
   ESEC-Foundations of Software Engineering (2005)
3. Baker, P., Dai, Z., Grabowski, J., Haugen, O., Samuelsson, E., Schieferdecker, I.,
   Williams, C.: The UML 2.0 Testing Profile. In: Proc. of the Conf. on Quality Engi-
   neering in Software Technology 2004. Nuremberg, Germany (2004)
4. Baker, P., Jervis, C., King, D.: An Industrial use of FP: A Tool for Generating Test
   Scripts from System Specifications. In: Trinder, P., Michaelson, G., Loidl, H-W.
   (eds.): Trends in Functional Programming, Vol. 1. Intellect (2000) 126-135
5. Boyle, J., Harmer, T., Weigert, T., Weil, F.: Knowledge-Based Derivation of Pro-
   grams from Specifications. In: Bourbakis, N. (ed.): Artificial Intelligence And Au-
   tomation. World Scientific Press (1996)
6. Dietz, P., Weigert, T., Weil, F.: Formal Techniques for Automatically Generating
   Marshalling Code from High-Level Specifications. In: Proc. of the 1998 Workshop
   on Industrial-strength Formal Specification Techniques. Boca Raton, FL (1998)
Model-Driven Engineering in a Large Industrial Context        491

7. European Telecommunications Standards Institute: Methods for Testing and Spec-
   ification; The Testing and Control Notation version 3 (TTCN-3); Part 1: TTCN-3
   Core Language. ETSI ES 201 873-1 (2001)
8. Gras, J., McGaw, D.: End-to-End Defect Prediction. In: IEEE International Sym-
   posium on Software Reliability Engineering (ISSRE). Saint Malo, France (2004)
9. Hatley, D., Pirbhai, I.: Strategies for Real-Time System Specification. Dorset House,
   New York (1988)
10. International Telecommunications Union: Abstract Syntax Notation One (ASN.1):
   Specification of Basic Notation. ITU-T Rec. X.680 (2002)
11. International Telecommunications Union: Message Sequence Chart (MSC). ITU-T
   Rec. Z.120 (2000)
12. International Telecommunications Union: Specification and Description Language.
   ITU-T Rec. Z.100 (2000)
13. International Telecommunications Union: TTCN-2 standard, Conformance Testing
   Methodology and Framework: Part 3: The Tree and Tabular Combined Notation
   (TTCN). ITU-T Rec. X.292 (1997)
14. Kleppe, A., Warmer, J., Bast, W.: MDA Explained: The Model Driven Architec-
   ture: Practice and Promise. Addison-Wesley (2003)
15. Mitchell, B., Thomson, R., Jervis, C.: Phase Automaton for Requirements Scenar-
   ios. In: Feature Interactions in Telecommunications and Software Systems VII. IOS
   Press (2003) 77–84
16. Object Management Group: Unified Modeling Language (UML): Superstructure,
   Version 2.0 (2003)
You can also read