JIRA Studio: Development in the Cloud - Atlassian Summit 2010
Altreonic methodology and solutions
1. Time to Quality gives More for Less
with Altreonic’s formalised systems and software engineering
methodology and tools
Think before you begin. Some people might call this wisdom, but it is at the core of sys-
tems and software engineering. It serves two main goals:
Firstly, it serves to analyse and under- Secondly, it serves to plan and to predict.
stand. What is the goal to be achieved? Once the requirements and specifications
What is the real problem to be solved? Is it are well understood, architectural model-
a real issue or does it just look like one? ling can explore different ways to imple-
This analysis activity is often dominated by ment the specifications. Simulation mod-
the use of natural language and by the elling allows “what-if” analysis and al-
presence of many stakeholders. One must lows to verify that the requirements and
be aware that at this stage the information specifications really reflect what is
will be incomplete, incoherent and contra- needed. Formal models can then be use to
dictory, or will already assume a solution verify mathematically critical properties
based on past experience. of the system.
Once all alternatives have been consid-
Making sure that all stakeholders agree on
ered, the implementation can start and we
the product are system to be developed is
enter the domain of traditional develop-
called “Requirements and Specifications”
ment engineering. The architectural mod-
capturing.
elling will have identified several entities
At this stage, one must not only think in
that provide the specified properties.
terms of the “normal” use, but also take
These can be assigned to a Work plan that
into account fault and test conditions. If not
divides the work into Work Packages,
considered up front, it can be very costly to
each consisting of development, verifica-
retrofit a system with support for it.
tion, test and validation tasks.
From Deep Space to Deep Sea
www. Altreonic.com
Push button high reliability
4. MODEL(S)21 METHODOLOGY11
REQUIREMENT21 SPECIFICATIONS21
Architectural Architectural
Simulation Simulation
CheckPoints11
Normal case Formal Formal
Functional
Standards Statements Test case Implementation Implementation
Non-Functional
Guidelines Failure case
Questions
Hints
Entity11 Method11 Design Views21
Answers
Org Specific
Domain Specific
Misc SubSystem
Procedure
Interaction
Tool
Function
WorkPackage11 Role
Interface
Process Views21
DEVLPMNT TASK11
Issues11
Install
Result41 Validation TASK21 Result61
PreConditions31 Write-Up PreConditions51
USE CASES
ChangeRequest21 Spec Approved WP completed
RELEASE1
PreConditions41 Verification TASK11
PreConditions61
Result51 Test TASK11 Valid Approv
Test Approv
Work Approved
Spec Approved Result71
Dev Task Approv
Verif Task Approv
OpenCookbook Systems Grammar 10.11.2009
The OpenCookbook portal is based on a formalised but straightforward and integrated project metamodel.
The OpenCookbook framework was developed as an intranet portal, resulting in a real-time
specification and development database of the system or product under development. It has itera-
tive and evolutionary development at its core while it guides the project members to work in a
consistent manner. Requirement, Specification, Modeling, Work Packages, Development, Veri-
fication, Test and Validation tasks are defined in a consistent way. Barrier conditions with mile-
stones can be enforced and queries allow the project manager to view the development status at
any moment.
Every organization has a lot of heuristic know-how but often it is not recorded or applied in a con-
sistent manner and it can take years for newcomers to absorb this knowledge. Of course, integrat-
ing this knowledge requires human interaction but we have the capability and tools to facilitate
this. The result is a development portal that allows reusing existing IP and platforms while pre-
serving the heuristic knowledge integrated in the on-line design wizards. OpenCookbook can be
made standards aware, providing the engineering team with pre-certification support while de-
veloping the system.
Lastly, OpenCookbook is part of our global “Push button high reliability” approach. The project
entities and how they interact can be directly linked with Altreonic’s OpenVE, a visual develop-
ment environment for distributed concurrent programming. At the heart lies Altreonic’s Open-
ComRTOS, a unique real-time programming environment. It was developed using formal tech-
niques and provides native and transparent support for network-centric or multicore program-
ming.
From Deep Space to Deep Sea Contact: Altreonic NV
Gemeentestraat 61A b1
www. Altreonic.com B3210 Linden—Belgium
Tel.:+32 16 202059
Push button high reliability
info.request @ altreonic.com
5. OpenVE
A Unified Visual Development Environment
for High Reliability Embedded Applications
Developing distributed real-time embedded applications used to be hard hard. The develop-
ment is even harder when the requirements dictate the use of heterogeneous target proces-
sors. The target processors might use different runtime environments, including legacy Oper-
ating Systems. Altreonic’s OpenVE provides the solution. OpenVE was developed using the
same principles that
govern Altreonic’s sys-
tems engineering
methodology.
Using meta-modeling,
embedded software
engineers can define
their own targets, tar-
get topology, applica-
tion topology, graphi-
cally create the pro-
gram code, build and
run the executable im-
ages. Before the final
target is used, they can run the application on a host operating system (Windows or Linux)
allowing them to verify the behavior. A built in event tracer allows users to verify the sched-
uling and task interactions. Once done, a small click of the mouse changes the target proces-
sor for each node and with little or no source code changes, OpenVE generates code for the
final target. The event tracer displays the execution trace on the host. The host nodes can
even remain part of the system e.g. for accessing stdio services, graphic displays, file services,
TCP/IP sockets, etc.
Five easy steps to develop a distributed multi-tasking application:
1. Define the topology:
Put the processing nodes on the canvas and connect them
2. Define the application:
Put the tasks on the canvas, define the properties
Put the interaction icons on the canvas by selecting from the menu events, sema-
phores, ports, fifo’s, resources, memory pools, packet pool or generic hubs
Add a hostserver task to interact with the application
Connect tasks and interaction icons. Select from the available services.
Add your application specific code.
3. Build:
OpenVE will generate data structures, add drivers and system tasks,
Generate routing tables and makefiles.
4. Run and watch.
5. Verify.
Just open the tracefiles and analyse the events that happened.
From Deep Space to Deep Sea
www. Altreonic.com
Push button high reliability
6. The event tracer
acts like a software
oscilloscope for the
software.
The node interacti-
on diagrams clearly
show the interpro-
cessor communica-
tion.
Statistical profiling
data complement
the analysis.
What are the benefits of OpenVE?
1. Productivity.
IDEAS and
CONCEPTS The real-time embedded engineer only needs to use a single integrated environ-
ment for specifying and modeling his embedded software architecture, to simulate
it and to generate code for his target.
2. Target independent.
DEFINE OpenVE is based on a metamodel concept. This allows the engineer to adapt it to
his needs. When developing a new OpenComRTOS service, the service can be
added without changing the kernel. Define a suitable icon and the service becomes
part of the enhanced RTOS. Adding a new target processor is as simple as adding
a folder to the file system. No changes are needed to OpenVE. What’s more, the
target system can be heterogeneous, covering from 8bit microcontrollers over high-
end 32 or 64bit processors, to legacy operating systems providing access services.
DESIGN
3. Trustworthy development.
Writing software is an error prone process, especially when the application is com-
plex and consists of a large number of interacting and concurrent entities. OpenVE
makes this process a lot less error-prone. First of all, the programming model is so
MODEL straightforward that applications can be drawn on the canvas. But secondly,
OpenVE generates the whole framework so that the developer only has to fill in
the core functions.
4. Performance and safety.
GENERATE OpenVE supports the OpenComRTOS programming model. The latter was devel-
oped and verified using formal modeling techniques and can be considered as a
break-through in RTOS design. It has a very clean and safe architecture still 5 to 10
times smaller than equivalent hand-written code. It’s architecture also uses a
unique packet switching mechanism. No buffer overflows are possible and full
TRUSTWORTHY
scalability is guaranteed. Developers can even define their own services. The pro-
PRODUCTS gramming model remains the same, whether programming single processors,
many-core CPUs or networks of widely distributed processing nodes.
From Deep Space to Deep Sea Contact: Altreonic NV
Gemeentestraat 61A b1
www. Altreonic.com B3210 Linden—Belgium
Tel.:+32 16 202059
Push button high reliability
info.request @ altreonic.com
7. OpenComRTOS
a Scalable and Network-Centric RTOS for Embedded Applications
Developed using formal modeling, the perfect RTOS for deeply embedded and distributed systems
OpenComRTOS breaks new grounds in the field of Real-Time Operating Systems. To enable safety
critical and high reliability applications, it was from the ground up developed using formal modeling.
Conceptually it was developed as a scalable communication layer to support heterogeneous multi-
processor systems, but it runs equally well on a
Data needs to single processor. It supports small microcontrol-
Buffer List
be buffered lers, many-core chips with little memory as well
Prioity Inheritance
CeilingPriority widely distributed systems.
For resources Owner Task
While the programming concept was inspired by
For semaphores Count a Virtual Single Processor model, the formal ap-
Predicate Action
proach was instrumental in achieving a trustwor-
Synchronisation thy component. Moreover, it achieves unparal-
Synchronising
Predicate
leled performance with a very clean and portable
Synchronisation architecture. An additional benefit of the unique
architectural approach is safety and scalability.
W W OpenComRTOS provides the same kernel services
Waiting Lists
L L as most RTOS, such as starting and stopping
T T
tasks, priority based preemptive scheduling sup-
porting priority inheritance, Events, Semaphores,
Threshold T
Generic Hub (N-N) FIFOs, Ports, Hubs, Resources and Memory Pools.
Entirely written in ANSI-C (MISRA checked)
OpenComRTOS can be scaled down to about 1 KB in a single processor code size optimized implementa-
tion and 2 KB in a multi-processor implementation. The data memory requirements can be as low as 18
Bytes + 64 Bytes per task, depending on the target processor. On most processors, the full code size is be-
tween 5 and 10 KBytes whereas the code generation tools will remove any unused functionality. All ser-
vices can be called in blocking, non-blocking, blocking with time-out and asynchronous mode (when ap-
propriate for the service). The kernel itself as well as the drivers are also tasks, increasing the modularity
and reducing the critical sections.
From the RTOS point of view the kernel shuffles Packets around, while for the implementation the Hubs
play the dominant role. Packets are sent to a Hub where they synchronies with requests from other tasks.
If no request is available, the Packets are put in a priority ordered waiting queue. By design, such buffers
cannot overflow. An-
other interesting fea-
ture of the Hub is that
it allows the user to
create his own applica-
tion specific services.
Simulation is very im-
portant, therefore Mi-
crosoft Windows and
Linux are supported as
virtual hardware
nodes. While this
simulator provides for logically correct operations, it allows integrating existing host operating systems or
existing RTOS with the nodes running OpenComRTOS. A simple serial connection can be sufficient to
establish communication. Tracer supports to analyze task scheduling and inter-node interaction.
From Deep Space to Deep Sea
www. Altreonic.com
Push button high reliability
8. Available OpenComRTOS services: The application domain for OpenComRTOS is
wide. As a trustworthy component, it is a solid
L1 Hub Entity Semantics
basis for developing applications that need
safety and security support with scarce process-
Event Synchronization on Boolean ing and memory resources.
Counting Semaphore Synchronization on a counter Its concurrent programming model, transpar-
Port Synchronization with exchange of ently supporting heterogeneous targets makes it
Packet an ideal candidate for SIL3 and SIL4 level appli-
FIFO queue Buffered transfer of Packets cations. Its scalability is also risk reducing as
Resource Creates a logical critical section processors can be added or removed with very
Packet Pool Dynamic packet allocation little effort depending on the application re-
Memory Pool Dynamic memory allocation quirements.
Single phase services Application View Node Independent
_NW Task returns immediately S
E
H
_W Task waits till synchronization Task1 Task3
M
A
U
B
Memory Pool Task2
_WT Task waits with time-out
Two phase services F
I
F Receiving a
P
O
R Sending a
Task5
_Async Task returns and synchronizes later. Task4
O Packet T Packet
Packet Pool Kernel R
Task E
OpenComRTOS services have been designed as the ba- E
V
E
I/O Driver
Task
S
I/O Driver
Task
sic functions which are needed in embedded applica- Link Driver
Task
N
T
tions. While already rich in semantic behavior, more ISR ISR
elaborate and specialized services can be added using
ISR
the generic Hub, an implementation of Guarded Ac- Communication Carrier
Hardware Layer (I/O)
tions. The architecture allows supporting other RTOS
API as well. OpenComRTOS supports heterogeneous Virtual Single Processor
target systems allowing to mix 8bit, 16bit and 32bit
processors or even host nodes running a traditional OS. OpenComRTOS addresses the market of embed-
To reduce code and memory requirements, the code is ded chips that increasingly use many-core CPUs
statically linked with most data structures being gener- for higher performance and lower power con-
ated at compile time. The developer specifies his topol- sumption. In all these systems, zero-wait state
ogy and application graphically using OpenVE or edits memory is a scarce resource. The performance
directly the configuration files. benefits of using OpenComRTOS come from its
low latency communication as well as from its
Code size figures (in 8 bit Bytes) low memory requirements. At the other end of
the spectrum, OpenComRTOS can be used as a
Service MLX16 MB Leon3 ARM XMOS
Xilinx (M3) thin communication layer that connects hetero-
geneous systems together.
Hub shared 400 4756 4904 2192 4854
Port 4 8 8 4 4 OpenComRTOS is bundled with the OpenVE
Event 70 88 72 36 54 Visual Development Environment under a bi-
Semaphore 54 92 96 40 64
nary as well as under a unique Open License
Resource 104 96 76 40 50
that leaves no surprises. The latter includes
FIFO 232 356 332 140 222
source code, all design documents and formal
Total 1048 5692 5756 2572 5414 models. A kernel porting kit facilitates porting
to new targets.
Semaphore loop benchmark
(= 2 signals, 2 tests, 4 context switches) OpenComRTOS is not just another RTOS. It re-
MLX16 MB *Leon3 ARM XMOS invents the very concept. For the first time it
(M3) combines trustworthiness with small code size,
performance and ease of use, even for heteroge-
Clock MHz 6 100 40 50 100 neous distributed applications. OpenComRTOS
microsecs 100.8 33.6 136.1 52.7 26.8 is a concurrent programming paradigm that was
designed to be used.
*using external memory
From Deep Space to Deep Sea Contact: Altreonic NV
Gemeentestraat 61A b1
www. Altreonic.com B3210 Linden—Belgium
Tel.:+32 16 202059
Push button high reliability
info.request @ altreonic.com
9. Altreonic’s system design and
embedded software engineering services
Altreonic’s methodology and products have a long history and a long experience behind them.
Our team has been managing or developing embedded products since years. Methodology and
application specific experience as well as know-how are winning combinations. Whether as coach-
ing consultants or executing engineers, we can help you to get your products to market faster.
Quality is our trademark, methodology and experience are our assets.
How do we operate?
Each project starts with a feasibility study in team with the customer. It gathers requirements, de-
velops specifications and derives the skills and resources needed. If this phase is successful, the
development is started in close cooperation with the customer. Teamwork is the key.
1. Creating an organization specific project OpenCookbook.
OpenCookbook is based on a formalized meta-model that combines
IDEAS and
the design and workflow view in a systematic systems engineering
CONCEPTS
methodology. It is implemented as an intranet based project portal.
The steps:
Developing a written description of the steps involved in creat-
ing a product in your organization. It captures how the organi-
DEFINE zation executes its projects, but it also collects crucial heuristic
knowledge and might identify weak spots.
This first description is complemented with in-depth inter-
views
Creating a first integrated cookbook portal
Adding standards awareness
DESIGN Fine-tuning it using a real project.
Support for maintaining and upgrading the portal.
Your benefit:
Knowledge management
Systematic and faster project execution
MODEL Pre-certification according to applicable standards.
2. Embedded real-time programming
GENERATE Embedded real-time applications are not easy to develop. At Al-
treonic we are at the core of this domain, having developed a unique
network centric RTOS using formal methods. We know what real-
time means and how to achieve it, we know what multi-tasking is
TRUSTWORTHY and how to make it work.
PRODUCTS
3. Formal verification of software
Although this is still considered as the front-end of advanced embed-
ded software engineering, we have the experience and know where
the limits are. We also know how a combination of formal ap-
From Deep Space to Deep Sea
www. Altreonic.com
Push button high reliability
10. RTOS 4. Embedded DSP engineering
Formal development of a distributed
RTOS, porting RTOS to new targets DSP systems are a demanding domain in embedded systems.
and boards, Development of applicati- They require high performance, low memory, low power and
on specific services for OpenComR- often execute complex algorithms. At Altreonic these require-
TOS. ments have been a guiding context for developing our metho-
dology and our products.
DSP
FFT-analysis for 3D tomography, real- 5. Customer specific software engineering
time audio processing, pressure sen-
sors, soft modems, speech codecs, Given the wide range of experience within our team, we de-
acoustic and line echo cancellation, liver innovative solutions. We have know-how and experience
EEG and EKG signal processing, ima- in embedded systems programming, algorithm development,
ge processing (such as morphological software verification, certification but we also have know-how
blood analysis, print preparation). and experience with embedded hardware.
Software engineering To achieve performant products, the individual components
Verification of closed software loop such as microcontrollers, RISC processors, analog interfacing
algorithms, CSP, TLA/TLC, RTOS and FPGAs must always tightly integrate. Our team is multi-
formal modeling, protocol analysis, disciplinary and routinely crosses software and hardware bor-
UML, SysML, SDL-RT, MISRA-C, Pro- ders. If needed, we can even develop a new block of digital
mela/SPIN, UPPAAL, CBMC logic.
6. Training in systems and software engineering
Systems engineering
Reconfigurable and fault-tolerant tele-
Altreonic’s methodology is unique, it covers the whole domain
communcations satellite (based on 900
from early requirements capturing to validation until the
FPGA with softcores) , DAB decoder,
product is ready for production.
OFDM, PSK, ASK, Xilinx FPGA, SDR,
SpaceWire implementation in FPGA.
Although we developed a coherent development environ-
ment, applying a methodology is first of all a mindset. A
Project management
mindset that seeks to formalize and therefore achieves better
Code generators, OpenVE, Open-
results in less time. You can train your own people in this
Cookbook, IEC 61508
mindset as well. These trainings are not just for engineers, but
concern managers as well.
Portal developement
OpenSpecs, OpenCookbook
7. Training in real-time programming
Languages and tools Real-time programming is often considered to be difficult.
C/C++, Java, Python, Assembler, Li- This is partly due to the fact that real-time programming is
nux, Windows, Subversion, Matlab/ often misunderstood. Even some commercial RTOS are not
Simulink, Eclipse, Modelsim, Pascal, always suitable for hard real-time programming. We can teach
MathCAD, Plone, drupal, php, your engineers what real-time is and how to achieve it. We can
also teach them the pitfalls.
Targets
MicroBlaze, LEON3 (SPARCV8), What makes these trainings unique is that we can use the for-
MLX16, ARM, XMOS, PowerPC, 8051, mally developed OpenComRTOS. It is one of the smallest and
ADI 218x, ADI21060, TS101, TI54xx, TI highest performance RTOS in the world, enabling higher per-
67xx, Freescale 547/5249. formance with less resources. It is also the only one which was
developed for scalable multiprocessing from the start.
From Deep Space to Deep Sea Contact: Altreonic NV
Gemeentestraat 61A b1
www. Altreonic.com B3210 Linden—Belgium
Tel.:+32 16 202059
Push button high reliability
info.request @ altreonic.com