Why Model-Based Development
Nowadays, the scale of software
is getting bigger and bigger, and the number of people
involved is increasing, so the overall understanding
and continuous understanding of the software are becoming
more and more demanding, and with the accumulation
of software scale, many teams have felt deeply inadequate.
The whole process of software development is a whole,
which is like the software development process is
a wooden barrel, and the delivered software is the
water in the barrel, each link in the software development
process is a baffle of the barrel, any gap between
the two baffles, will affect the whole, resulting
in the quality of the final software. With this barrel
effect, it is necessary for the software development
process to evolve from document-based analysis design
to model-based analysis design to achieve improved
capabilities:
- In the document-based
analysis and design work mode, there is no unified
language and form for requirements and design, resulting
in transition gaps and leading to requirements and
design problems.
- In the model-based requirements
and design work model, the requirements and design
work can achieve a good and natural transition with
the model, so it can form a close track, which greatly
improves the quality and efficiency of the requirements
and design work.
The comparison of the two working
modes is as follows:
Document-based
analysis and design |
Working
scenario |
|
1. Requirements personnel to write "requirements
document"
2. Designers write "Design documents"
3. Developers understand requirements and design,
code.
4. Testers understand requirements and design,
design and execute "test cases"。
In this working mode, requirements and design
are described by documents, but the description
ability and association tracking ability of
documents are relatively weak, which affects
the breadth and depth of analysis and design,
and it is difficult to deal with complex systems
or continuous accumulation of systems.
|
Model-based
analysis and design |
Working
scenario |
|
1. Requirements personnel to establish "requirements
model"
2. The designer establishes the Design Model
3. Developers understand requirements and design,
code.
4. Testers understand requirements and design,
design and execute "test cases"
In this working mode, using model can improve
the description ability, and then improve the
analysis and design ability. Using Sys ML and
UML can also improve the communication and reuse
ability. It can greatly improve the ability
to deal with complex systems and continuous
accumulation systems. |
Document-based
analysis and design |
|
Working
scenario |
1.
Requirements personnel to write "requirements
document"
2. Designers write "Design documents"
3. Developers understand requirements and design,
code.
4. Testers understand requirements and design,
design and execute "test cases".
In this working mode, requirements and design
are described by documents, but the description
ability and association tracking ability of
documents are relatively weak, which affects
the breadth and depth of analysis and design,
and it is difficult to deal with complex systems
or continuous accumulation of systems.
|
Model-based
analysis and design |
|
Working
scenario |
1. Requirements personnel to establish "requirements
model"
2. The designer establishes the Design Model
3. Developers understand requirements and design,
code.
4. Testers understand requirements and design,
design and execute "test cases"
In this working mode, using model can improve
the description ability, and then improve the
analysis and design ability. Using Sys ML and
UML can also improve the communication and reuse
ability. It can greatly improve the ability
to deal with complex systems and continuous
accumulation systems. |
Problems encountered with model-based
development
In the model-based analysis and
design work mode, the information transfer of requirements
and design for subsequent work software development
and testing is mainly carried out manually, which
is easy to have transition gaps and cause water leakage!
Model-based development ~ testing
In order to solve the problem
of requirements and design models and software development
and testing, we also need to continue the work on
the model:
Automatically generate code based
on the design model, and then compile the code. Reduce
the loophole of manual coding, improve quality and
efficiency, and form a rigorous tracking relationship.
Generate test cases based on
the model, and then realize automated test design
and execution based on the model, improve the quality
and efficiency of testing, and form a rigorous tracking
relationship.
The following describes the scenarios
of the generated code based on the design model and
the test based on the design model:
Model-based
development |
Working
scenario |
|
1. Generate Code based on Design Model
2. The generated code is compiled to obtain
the executable program.
3. Deploy the executable to the target device
In this working mode, the design to code is
automatically generated, which improves the
efficiency and reduces the introduction of human
quality problems.
|
Model-based
testing |
Working
scenario |
|
1. Based on the Model? Generate test cases,
2. Test requests are issued to executable programs
based on the model,
3. Receives the response of the executable program,
4. Marks the execution result of the test case.
The following capabilities are realized: test
cases can be quickly generated based on requirements
and designs, and then automated testing can
be carried out based on models, which improves
the efficiency and quality of testing. |
Model-based
development |
|
Working
scenario |
1.
Generate Code based on Design Model
2. The generated code is compiled to obtain
the executable program.
3. Deploy the executable to the target device.
In this working mode, the design to code is
automatically generated, which improves the
efficiency and reduces the introduction of human
quality problems.
|
Model-based
testing |
|
Working
scenario |
1. Test cases are generated based on the model,
2. Test requests are issued to executable programs
based on the model,
3. Receives the response of the executable program,
4. Marks the execution result of the test case.
The following capabilities are realized: test
cases can be quickly generated based on requirements
and designs, and then automated testing can
be carried out based on models, which improves
the efficiency and quality of testing. |
Based on the model, developers
can run through the whole process of software development:
requirements, design, development, and testing, so
that the whole process of software development can
achieve the following four capabilities:
1. Smooth transitions: Because
the model has a unified specification, similar forms,
and differences in the implementation of shielding
points, it is easier to transition and transition
different jobs.
2. Rigorous tracking: Based on
the transformation and transition of the model, the
close tracking relationship of various tasks will
be naturally realized, which is a very important foundation
for requirements tracking and change management.
3. Improve efficiency: The rapid
iteration of the four types of work based on the model
can break down professional barriers and greatly improve
communication efficiency.
4. Guarantee quality: In the
work content is clear, the work transition is smooth,
and with the help of automation, the quality will
undoubtedly be better guaranteed.
For this model-based development
model, take the initials of Model Based and each job,
and call it MB-DDT (Model Based,Design ,Development
, Test)。
The goal of MB-DDT is: model-based,
closed-loop development. To make it more visual, let's
take an icon:
Model-Based Design ~ Development
~ Tools support for testing MB-DDT
No matter how good the method
is, it must be implemented as a tool in order to form
a real support for the work. For this purpose, we
have developed a customized tool solution:
- The modeling tools are selected
from the current mainstream UML and SysML modeling
tools EA: the requirements model and design model
can be established, and the requirements and design
documents can be automatically generated;
- Model-based code generation
and testing toolsWe have developed a simulator that
can generate runnable code based on the design model,
compile, and then generate test cases based on the
model to perform simulation tests.
- For development tools,
compilation tools, and runtime environments, these
are what specific developers can use.
This results in a complete MB-ADD
toolchain.
This toolchain provides basic
support for MB-DDT, and if users want to extend the
functionality, we can customize it according to user
needs and introduce more tool support.
Let me give you a brief introduction
to this tool solution. This tool solution provides
users with the following working scenarios:
1. Build a requirements model
in the EA
2. Build a design model in EA
3.Use Simulator to automatically
generate code based on the model,
4. Use the Simulator to compile
the code into an executable program,
5. Deploy the executable program
to the target device;
6. Use the Simulator to access
the target device via a communication connection,
execute test cases, and perform simulation tests.
7. The simulator accepts the
test response of the target device and displays the
status of the software as a model.
The following is a schematic diagram
of the working tool of MB-ADDT:
Here's a screenshot of the specific
work interface:
Generate code: Users can automatically
generate 100% runnable code based on SysML and UML
models.
Compiling executable programs:
Users can compile the generated code with one click.
The resulting executable can be deployed by the user.
Simulation test: Users can generate
test cases based on the model, send requests to devices
where the executable program is deployed, receive
responses from the devices, and display the test results
as models.
The following is a demonstration
>> of the simulator
I hope you have benefited from
reading this. If you are interested in MB-DDT (Model-Based
Design ~ Development ~ Testing) methods and tools,
welcome to discuss and exchange.
If you
would like to learn more:
Welcome to the Modelers Channel
http://www.mbse-x.com/
Also welcome to contact us
directly at umlooo@hotmail.com
About
the Author:
Zu Tao, the founder of Dragon Fruit Software Engineering,
founded Dragon Fruit Software Engineering in 2001
and IBM Rational User Group in 2004. In 1998,
he participated in the national key research project
"Component-based Software Reuse for Specific
Domains" as a backbone, and was fortunate
to learn and use UML for domain modeling and refining
reusable components and architectures. In the
subsequent R&D projects, the model has been
used for analysis and design, and has accumulated
some experience and experience. Focused on MBSE
for 20 years, familiar UML, Sys ML, ArchiMate,
BPMN, UPDM, DataModel and other modeling languages
and specifications, in the past experience, the
biggest feeling is that the field of software
engineering and systems engineering, which brings
together many elite talents, has been a messy
and confused state for decades. Develop a sustainable
methodology for yourself, such as MBSE From Methodology
to Practice Guide Model-Based 3D R&D Management
Model-Based Requirements Management Model-Driven
Architecture Design "Model-Based Quality
Management" "Model-based Personnel Capability
Management" "iProcess Process Improvement
Method", currently as a product manager and
architect, is currently working on the research
and development of MBSE (Model-Based Systems Engineering)
platform, hoping to establish model-based engineering
solutions, and will continue to write some articles
in the future, hoping to give some reference to
peers. |
|