agile development of simulation systems with simware platform · 2020. 2. 21. · agile development...

12
SIMWARE SOLUTIONS S.L. [email protected] www.simware.es Agile Development of Simulation Systems with Simware platform

Upload: others

Post on 30-Dec-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

Agile Development of Simulation Systems

with Simware platform

Page 2: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

1 INTRODUCTION

Agile and Lean Development principles, based on fast and incremental delivery of value to the

customer in a continuous and waste-less flow, working in a collaborative environment with

continuous feedback from the customer, are revolutionizing how complex systems (including

software intensive ones) are made. Compared to waterfall methods, agile & Lean techniques are

allowing many companies to produce better systems, more quickly and with far greater flexibility.

By applying agility in the product development processes, companies can adapt to changing

customer needs, competitive challenges and new strategic opportunities. Definitively, Agile is

providing a real value for business.

Unfortunately, Agility is still far to be fully implemented during the development of simulation

systems. Main reason is probably because simulation development techniques are still very

influenced by the waterfall and lineal oriented system engineering processes usually employed in

the development of military and aerospace systems. As a consequence, Simulation systems are

still, in many cases, lacking flexibility to adapt rapidly to new customer requirements and changing

market conditions. When you combine this lack of flexibility to changing requirements with the

long lead times to deliver the product to the customer, you have simulation systems that are not

providing the expected value to the customer when the system is delivered.

This paper applies the main Agile & Lean principles to the development of Simulation systems and

explains how Simware can support the implementation of these principles in your simulation

development processes.

2 AGILE & LEAN PRINCIPLES

Agile manifesto (http://agilemanifesto.org/ ) is based on a set of principles that look for increasing

the value of the products delivered to the customer and the productivity of the teams doing the

development:

Provide increasing value to the customer with early and continuous delivery of working

systems.

Welcome changing requirements. Harness

change for the customer’s competitive

advantage.

Deliver software frequently in a continuous

flow.

Be simple, eliminate “waste” that is not

adding value to the product.

Build-in quality. Be focused on technical

excellence and good design

Promote sustainable development, keep a

constant pace indefinitely.

Work in collaboration, promoting

continuous feedback and unrestricted

communication.

Be focused on continuous improvement

Work motivated in self-organizing teams.

Lean Thinking (http://www.lean.org/) is aligned with many of the agile principles, focusing on the

creation of value from the customer perspective, eliminating all the non value activities and

features – or waste -, delivering as soon as possible but taking decisions as late as possible and

only making what is pulled by the customer just-in-time.

Some benefits from Agility

20-50% increase in productivity

30-75% faster time to market

50+% defect reduction

Happier & more motivated teams

Page 3: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

3 APPLYING AGILE & LEAN PRINCIPLES TO SIMULATION DEVELOPMENT

Based on former principles, what should Agile Simulation Development be?

1. First at all, Agile simulation development means to deliver a “working” simulator

incrementally. This is not only a good practice for the development team, because it allows

them to work in time-boxed iterations, focusing on the delivery of only what is valued by

the customer in each step, but it is also allowing the customer to get value from the product

since an early stage of the project. See in next chart how incremental delivery is delivering

better economics to the customer when you compared with the traditional way to deliver a

simulator in the lineal processes, in which you will only deliver a first version of the

simulator near the end of the project, normally with less than 100% of the features verified,

and, only after an (usually) long validation process with the customer, the simulator

features will be fully implemented (this is a the case of a successful project, many times

customer will accept the simulator with limited capabilities in order to start to operate the

system even with restrictions or even with capabilities not needed just because they were

already implemented). Early and continuous delivery of “working” versions of the

simulator, provides fast feedback of the real value delivered to the customer by the system,

allowing the customer to pull the development process, only implementing features that

are adding real value to the user. Besides that, many times, early delivery of functional

versions of the simulator will allow the customer to establish earlier an initial operational

capability for the simulator, accelerating the return of investment.

Figure 1

2. Agile simulation development means to be ready to adapt your simulator to changing

requirements and new market conditions. Unfortunately, it is no unusual, especially with

military simulators, that the simulator is already obsolete when it is first delivered to the

customer. Traditional simulation development processes and technical frameworks are not

enough flexible to incorporate new requirements or modify existing ones during the

development. If we combine this effect with the fact that many simulation projects,

especially again the military ones, have duration of several years (at least 2 or 3 years),

you can understand that there is a significant risk than the simulator is not well aligned

with the latest operational or technical needs when it is finally delivered to the customer.

Page 4: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

Flexibility and adaptability in the simulation systems is the only way to keep the pace of

technological evolution and to be ready to respond to changing market conditions.

3. Agile simulation development means to build quality in. Your simulator should have a

simple design, with an architecture supporting the addition of new features at any time.

Final verification & validation of your simulator should not find defects, easy and

continuous integration should do it.

4. Agile simulation development means to be able to take decisions late in the process,

allowing to work with a set of potential solutions instead of with point-based solutions for

each functional component. This capability depends a lot on having an architecture for the

simulation system that can support the analysis and comparison of multiple solutions at

the same time, without delaying the project.

Figure 2

5. Applying agility to the simulation development means to assure communication between

the different teams involved in the project, sharing a common vision of the system. This

shared vision will allow them to work in parallel with autonomy, only focused on providing

the best technical solution for their assigned features. This concurrent engineering

practice, when combined with set-based designs can increase a lot the value of the product

delivered to the customer.

Figure 3

6. At last, but not least important, Agile Simulation development means to amplify learning

in your organization. Agile practices as short iterations, continuous feedback with the

customer and set-based design helps to achieve this goal, but this must be achieved also by

sharing platforms, tools and components in the organization. For example, reusability of

components is a very useful practice to amplify learning, because it allows to share

knowledge between different projects.

Page 5: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

4 USING SIMWARE TO ACHIEVE AGILITY IN THE DEVELOPMENT OF YOUR SIMULATION SOLUTIONS.

Simware platform (www.simware.es) has been designed as a high productivity technical

framework for the development of any kind of simulation & training solution, as virtual training

devices, networks of simulators or even for new applications for simulation as web-based trainers

or as Cyber physical systems, part of the Internet of the Things.

Even when Simware is not a methodology but a technical framework, unique features in Simware

are the best technical companion to empower the implementation of Agile methodologies as Scrum,

Lean software dev or SAFe in any simulation organization. To be successful in the implementation

of Agility in the enterprise, any organization needs not only to embrace new ways to do system

engineering but also new system architectures that support the development of systems faster,

cheaper and with more quality. Large companies that base their success in continuous innovation

and fast delivery as Amazon, Uber, Netflix or Facebook have already migrated from the monolithic

macro systems to the so called microservices architectures to achieve this objective. Rooted in the

basic concepts or modularity and separation of functionalities, microservices architectures allows

the construction of complex systems out of as small as possible functional software subsystems.

The key concept here is that microservices are designed to be independently evolved. Lastly, in

order to provided holistic system functionality while retaining the independence of evolution,

services must rely on published interfaces and APIs that form the basis of the interoperability

contracts between them.

Simware platform is based on a microservices architecture, named Layered Simulation

Architecture or LSA. LSA is the first microservices architecture for simulation, specifically

designed to support the development of real time and Net-Centric simulation products. As any

other microservices architecture, LSA allows to decompose the simulation product into small and

easily manageable components. Microservices are called Entities in Simware and interoperate

with other entities by exchanging data through a distributed simulation runtime infrastructure,

that is working as the ESB (Enterprise Service Bus) of the simulation product.

Figure 4

Simware platform provides a loosely coupled architecture, composed by multiple layers that can

work alone or in collaboration, depending on the project’s requirements. Simware layers provided

everything you need to develop real time simulations that can be connected with web and legacy

applications in any kind of simulation & training solution.

Read below as Simware unique features provide strong levers that simulation builders can use to

implement its own Agile simulation development process.

Page 6: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

Lever#1, System of Systems platform

Simware is the only commercial simulation in the market that is designed to support the

development of any kind of simulation solution: from a standalone product to the more complex

federation of simulations. This feature provides any organization with the capability to standardize

the development platform in her full portfolio, sharing knowledge, components and experience

along the whole organization, embracing in this way agile and lean principles as amplifying

learning and going faster to the market:

1. It is enabling the development and maintenance of product-lines, sharing a common

platform and components between the projects. For example, a flight simulator

manufacturer can use Simware as the common platform for her whole training product-

line, from web-based courseware and cockpit procedures trainers to the full flight

simulator.

2. It is increasing the flexibility to the development, because any product developed with

Simware is ready to scale to new features and applications only by adding new Entities to

the middleware based runtime infrastructure. In this way, for example, Simware solves

the typical issue of how to integrate a standalone virtual simulator into a federation of

simulations: with Simware, the virtual simulator will be ready, because of its architecture,

to extend its capabilities by connecting to other simulators and real systems in the network.

3. Makes reusability easier into the organization. Simware allows to develop the simulation

components as services, with standardized interfaces that allow them to manage as

independent components that can be integrated in many products. Organizations can

develop their own repositories from scratch or build them based on repositories already

available as commercial packages in Simware (as the Virtual Vehicle Repository)

Figure 5

Page 7: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

Lever #2, Data Centric Architecture.

Simware’s data-centric architecture is a real enabler of Agility in your simulator because:

1. Provides a simple but powerful architecture for the simulation product, Simware Core

provides out-of-the-box a common simulation infrastructure and shareable services in

which different Entities or microservices publish and subscribe to data in a standardized

way.

Figure 6

2. Allows the early and continuous delivery of the product, in an incremental way. Data model

design can be implemented by increments. Entities connected to Simware middleware (included in Simware Core) can implement its publish and subscribe interface in an

iterative way. Even the behavior and dynamics of the Entities can be implemented in an

incremental way, going from low-fidelity models for a rapid prototyping to the high-fidelity

models for the final validation of the product.

3. Provides a common vision for the simulator, that will be the simulation data-model.

Designer tools included in Simware, allow the data-centric design of the simulator, defining

the persistent (simulation objects) and temporary (interactions) data in a common, XML

based, data-model. This data-model provides also the integration rules for the simulation

solution, as the publishers and subscribers that each entity or component of the simulation

must implement. Simware Designer tools enable then the model and data driven

development of the solution, providing all the interfaces needed to be successful in the

integration. Communication between different teams is easy because all the interfaces and

integration agreements are contained in one and only artefact: the simulation data-model.

Page 8: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

Figure 7

4. Provides an excellent platform to do test-driven development of the simulation systems.

Simware designer tools already provides directly from the data-model the data interfaces

that are needed to implement the test cases. Dummy software for testing can be done in

parallel to the development of the functional component only by using the same data

interface. Publish-Subscribe Service level Contracts can be modified only by changing

Simware Quality of Services (QoS) file. Deployment and data-distribution mechanisms can

be changed only by modifying some parameters. Simware R&P extension can be used to

record simulation testing executions and analyze the results after. SimDeveloper

engineering tool allows to test all the simulation models in Simulink, before even to create

any code.

Figure 8

5. Provides a flexible architecture to do a set-based concurrent engineering of your simulation

product. Simware data-centric architecture is only restricted by the designed data-model.

Multiple technical solutions can be implemented and tested for the different functional

components of the simulator, only by maintain the data interfaces. Set-based design and

rapid prototyping can also leverage the capability in Simware middleware to change the

deployment architecture by only changing a few parameters in the middleware

configuration and in the runtime infrastructure configuration file. For example, you can

experiment with the deployment of the same piece of software code in Linux or Windows,

distributed in one machine or in many, exchanging data in the network using HLA or DDS.

Page 9: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

6. Welcomes changing requirements. Data-model can be extended without restrictions. If new

requirements appear, data-model can be easily modified or extended. In case of changing

existing data, already implemented by pairs of producers and consumers, only entities

publishing or consuming this data must be modified. In the case of extending the data-

model, upgrade is even more easy and straightforward because no change would be

required in the integrated components already working in the functional increment.

7. Allows the dev team to focus on providing value through the implementation of functional

requirements. Simware platform provides, just out-of-the-box, all the runtime and

middleware specific artefacts that are needed to integrate and deploy the simulation

solution as a distributed system. Developers must not be worried by non-functional

requirements such as time management, data distribution or synchronization of multiple

components, because everything is already provided by services contained in Simware

runtime infrastructure and in its real time middleware.

8. Allows the development of simulation systems in a modular way, driven by the delivery of

increasing capabilities, as the integration of simulation services.

Lever #3, Net-Centric platform

Simware is based on a middleware based architecture, that allows to build any simulation solution

as a modular and distributed system. Agile developers can leverage this net-centric architecture

by:

1. Delaying deployment decisions till the end of the development. Simware platform allows

to change the data-distribution mechanism and the deployment architecture just by

changing a few parameters and without needing to recompile any code. Only by changing

a parameter in the constructor of the middleware you can change the technology to be used

to exchange data in the distributed system : HLA from different vendors or DDS. Just by

changing a XML configuration file, the simulation architect can modify the deployment of

the simulator; for example from having all the simulation models running in an only host

to have the models distributed in several machines coordinated by one common scheduler

(see the below picture).

Figure 9

2. Building integrity into the product. Distributed architecture in Simware provides mature

and defect free simulation services that developers can use as the foundation of their

product. Many common services requested for any simulator, as simulation and time

management or the real time execution and synchronization of physics-based simulation

models, are already part of Simware distributed platform, a mature software already in its

6th generation. Besides that, many artefacts in Simware assures the integrity of the data-

centric design of the simulator, for example SimDeveloper allows to do a model driven

Page 10: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

development of the simulation assets into Simulink in full coherence with the data

interface for the entity. Also, Simware designer tools generates automatically all the

interfaces in C++ and XML that are compliant with the simulation data domain created

for the simulator (see Figure 7)

Lever #4, Open Architecture

Simware platform is only based on industrial standards and open APIs. This feature is very useful

to achieve flexibility in your development because:

1. Allows to integrate third-party components very easily, allowing to choose the best

alternative in each case depending on the specific requirements of each project without

being worried about the integrity of the product. Simware can integrate all kind of COTS,

legacy and partner’s software through:

a. Tools and SDKs provided with Simware LVC extension to connect with systems

using a standard interface, for example to integrate a tactical environment in a

military simulator using HLA or DIS protocols or to integrate an DDS compliant

air traffic management system into a flight simulator.

b. Open APIs included in Simware Core and Simware Web. Simware provides C++

and Web APIs to integrate easily any kind of desktop or web/mobile base software,

even when it is using proprietary protocols or interfaces.

2. Allows to adapt the simulator to changing requirements very quickly and without any

technical risks. For example:

a. an stand-alone flight simulator can be easily connected to a federation of simulators

and operational systems without any change.

b. A traffic simulator used into a training device can be reused, integrated as part of

a test-site, only by connecting with real equipment in a laboratory, for example to

test new algorithms for an autonomous car.

3. Allows to extend the capabilities of the simulation product by interoperating or integrating

with third-party products that use standard interfaces. Simware supports in a native way

or through bridges many industrial standards as HLA, DDS, DIS, CIGI, JAUS, LTI, etc.

(see the full list here). For example, it is very easy to evolve a simulation based courseware

made with Simware from a desktop configuration to a class-room solution managed by an

e-learning platform as Moodle, in this case only by leveraging web integration capabilities

provided by Simware Web extension and its LTI based API.

4. Allows to integrate multi-architecture solutions without interoperability restrictions. This

is a capability long requested by any customer that is trying to connect multiple simulators

in a federation, as a military customer looking for a mission distributed training solutions

or a car manufacturer looking for a simulation solution to do simulation based concurrent

engineering of a new vehicle.

Figure 10

Page 11: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

5 SUMMARY

Implementing Agile processes to develop simulation systems is not only about choosing an Agile

methodology as Scrum, Lean software development or SAFe. Any agile methodology will be useless

if the development team doesn’t embrace agility in its development environments and technical

frameworks. Any simulation technology user will have to do the same evolution that well known

technological companies as Amazon has already made: they have evolved to agile solutions not only

by adopting agile processes but also by evolving its products architectures and technical

frameworks to “agile ready” architectures as the microservices architecture. Simware is the micro-

service architecture for the simulation domain, allowing to develop simulation applications as a

suite of independently, small and modular simulation services in which each service provides an

unique feature through a well-defined and lightweight mechanism.

As it has been explained in the paper, Simware provides the best technical platform to implement

an Agile simulation development methodology in your organization. Unique features in Simware

provides strong levers to adopt agility in your organization without any technical or business risk.

Next table summarizes how Simware levers can be used to achieve the main principles that should

be adopted by any simulation organization embracing agility in its development processes.

Agile Simulation Development Principle Leveraged by

Deliver working software incrementally Data-Centric Architecture

Adapt to changing requirements SoS platform, Data-Centric & Open architecture

Build quality in Data-Centric & distributed architecture

Take decisions as late as possible Data-Centric & Distributed & Open Architecture

Facilitates communication and

concurrent engineering

Data-Centric & Open Architecture

Amplify Learning SoS platform, Data-Centric & Open architecture

Page 12: Agile Development of Simulation Systems with Simware platform · 2020. 2. 21. · Agile Development of Simulation Systems with Simware platform . ... or as Cyber physical systems,

SIMWARE SOLUTIONS S.L.

[email protected] www.simware.es

6 ABOUT SIMWARE SOLUTIONS

Simware Solutions is leading the introduction of Open platforms into the Simulation & Training

markets. Our platform Simware leverages the new Layered Simulation Architecture or LSA to

fulfill the requirements of the lead users of the industry, which are demanding open architectures,

better interoperability and increasing economical returns for their investments in simulation and

training solutions.

Our platform is the first commercial product available to build and federate simulations in

compliance with initiatives at SISO and NATO related to the use of Simulations assets as Services

in the Network. Simware platform provides, out-of-the-box, seamless interoperability of SISO

simulation standards like HLA, DIS or CBML with the OMG DDS standard. Multi-standard

compliance makes affordable to any budget the development and deployment of LVC simulations

over any kind of network.

Beyond our products, our commitment is with standards, actual and future; because of that, we

are working at SISO and NATO to develop the future standards and technical architectures for

distributed simulation and for the use of M&S as Services (MSaaS).