PragmaDev Studio

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
PragmaDev Studio
DeveloperPragmaDev
Stable release
5.5
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemLinux, Windows, macOS, Raspbian
    TypeSoftware development, Conformance testing
    LicenseFree and commercial
    Websitepragmadev.com

    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]

    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]

    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]

    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]
    1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    29. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    30. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    33. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    34. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    36. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    37. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

    Further reading

    [edit | edit source]
    [edit | edit source]