PragmaDev Studio
A major contributor to this article appears to have a close connection with its subject. (May 2020) |
| PragmaDev Studio | |
|---|---|
| Developer | PragmaDev |
| Stable release | 5.5
|
| Repository |
|
| Engine | |
| Operating system | Linux, Windows, macOS, Raspbian |
| Type | Software development, Conformance testing |
| License | Free and commercial |
| Website | pragmadev |
PragmaDev Studio is a modeling and testing software tool introduced by PragmaDev in 2002 dedicated to the specification of communicating systems.[1] It was initially called Real Time Developer Studio or RTDS.[1] Its primary objective was to support SDL-RT[2] modeling technology. Since V5.0 launched on October 7, 2015 RTDS is called PragmaDev Studio, and it is organized in four independent modules: Specifier, Developer, Tester and Tracer.[3] V5.1 launched on November 29, 2016 introduces a freemium licensing model.[4][5]
Features
[edit | edit source]Specification and Description Language
[edit | edit source]The Specification and Description Language (SDL) is a modeling language standardized by ITU-T to describe communicating systems.[6] SDL is graphical but contains an action language with a semantic of execution making the SDL models executable.[7] SDL is considered formal because it is complete and non-ambiguous.[7] SDL-RT is a variant of SDL where the action language is replaced by C or C++ instructions.[8] SDL-RT is considered semi-formal because it mixes SDL with code.[2] ITU-T has standardized a UML profile based on SDL making by extension any SDL tool a sort of UML tool.[9]
Simulation
[edit | edit source]PragmaDev Specifier embeds an SDL simulator that behaves like a model debugger.[10] It is possible to set breakpoints graphically, to view variables, and pending timers.[11] During execution a live trace is generated based on the Message Sequence Chart ITU-T standard.[11]
Code generation (compiler)
[edit | edit source]PragmaDev Studio can generate C or C++ code out of an SDL model, and PragmaDev Developer can generate C or C++ code out of an SDL-RT model.[12] The generated code can be adapted to any Real Time Operating System or scheduler.[13] The tool offers a number of integrations with debuggers such as gdb so that the user feels he is still debugging the model, not the generated code.[12]
Model checking
[edit | edit source]PragmaDev Studio can export the SDL model to different formats such as IF, FIACRE,[14] or XLIA in order to verify the model in third party tools[15] such as IFx from Verimag, TINA from LAAS, or Diversity from CEA LIST.
Functional testing
[edit | edit source]PragmaDev Tester supports the TTCN-3 international standard for testing.[16] The tool can either simulate the test cases against the SDL model, or generate code to be compiled and run against a real SUT.[17]
Model Based Testing
[edit | edit source]- PragmaDev Studio can generate TTCN-3 test cases out of Message Sequence Charts resulting from a simulation.[18]
- Test cases can also be generated out of the SDL model through a third party technology such as IFx from Verimag or Diversity from CEA-LIST: Laboratory for Integration of Systems and Technology.[19] For that purpose PragmaDev Studio exports the model to a pivot language that is understood by the third party tool.[19]
Deployment simulation
[edit | edit source]PragmaDev Studio can simulate the deployment of many instances of an SDL model for verifying its behavior in a distributed computing environment.[11] This feature is based on research from Humboldt University of Berlin.[20][21]
Performance analysis
[edit | edit source]PragmaDev Studio introduces a Performance Analyzer to find the best architecture for time or energy in a set of scenario.[22]
CPS simulation
[edit | edit source]PragmaDev Studio supports Cyber Physical Systems (CPS) simulation via the Functional Mock-up Interface.[23]
Application domains
[edit | edit source]Telecommunications
[edit | edit source]- Alcatel has selected PragmaDev for the development and maintenance of their telephone switches.[24]
- Sharif University has studied an optimization of the MAC layer for the IEEE 802.11wireless protocol.[25]
- Modeling and simulation of IoT.[26][27]
- Testing of network protocols.[28]
Avionic and space
[edit | edit source]- Specification and development of the Air traffic control system for Airbus planes.[29]
- System architecture optimization for a space mission.[30]
- Integration in TASTE, the ESA framework dedicated to the development of real time and embedded systems.[31]
Semi-conductors
[edit | edit source]- Hardware architecture optimization of micro-processors.[32]
Security
[edit | edit source]- Development of a decentralized earthquake early warning system.[33][34]
- Design and implementation of an automatic identification system.[35]
- Safety requirements verification applied to European Train Control System.[36]
PragmaDev Studio history
[edit | edit source]<timeline> Define $dx = 15 # shift text to right side of bar Define $dy = -3 # shift text to right side of bar Define $now = 03/21/2018 Define $start = 05/17/2001
ImageSize = width:900 height:80 PlotArea = left:100 right:0 top:20 bottom:20 AlignBars = justify
DateFormat = mm/dd/yyyy Period = from:$start till:$now TimeAxis = orientation:horizontal ScaleMajor = unit:year increment:1 start:2002
PlotData=
bar:Leaders color:blue width:30 mark:(line,white) align:center fontsize:S
from:$start till:$now
from:05/17/2001 till:02/11/2002 fontsize:S text:0.x from:02/11/2002 till:04/01/2003 fontsize:S text:1.x from:04/01/2003 till:10/20/2004 fontsize:S text:2.x from:10/20/2004 till:10/20/2009 fontsize:S text:3.x from:10/20/2009 till:10/07/2015 fontsize:S text:4.x from:10/07/2015 till:$now fontsize:S text:5.x
</timeline>
| Release year | Version | Summary |
|---|---|---|
| 2002 | 1.x | SDL-RT support with code generation for VxWorks and debug with Tornado. |
| 2003 | 2.x | UML support. |
| 2004 | 3.x | SDL support including simulation. |
| 2009 | 4.x | TTCN-3 support for testing. |
| 2015 | 5.x | New look and feel. New organization in modules: Specifier, Developer, Tester, Tracer. |
PragmaDev
[edit | edit source]The creator of PragmaDev Studio is the private company PragmaDev. PragmaDev was founded in 2001, and is located in Paris, France.[37]
References
[edit | edit source]- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
Further reading
[edit | edit source]- Doldi, Laurent (2003). "Validation of Communications Systems with SDL: The Art of SDL Simulation and Reachability Analysis". John Wiley and Sons Inc.
- Haddad, Serge; Kordon, Fabrice; Pautet, Laurent; Petrucci, Laure (2013). "Distributed Systems: Design and Algorithms". John Wiley and Sons Inc.
- Brumbulli, Mihal (2015). "Model-driven development and simulation of distributed communication systems". Humboldt University of Berlin.
- Kuhn, T.; Gotzhein, R.; Webel, C. (2006). "Model-Driven Development with SDL – Process, Tools, and Experiences". Model Driven Engineering Languages and Systems. Lecture Notes in Computer Science. Springer, Berlin, Heidelberg: 83–97.