TraCI4Matlab: Enabling the Integration of the SUMO Road Traffic Simulator and Matlab® Through a Software Re-engineering Process

  • Andrés F. Acosta
  • Jorge E. Espinosa
  • Jairo EspinosaEmail author
Conference paper
Part of the Lecture Notes in Mobility book series (LNMOB)


SUMO (Simulation of Urban Mobility) has become one of the preferred open-source platforms for researchers to perform microscopic road traffic simulation. Thanks to the Traffic Control Interface (TraCI), SUMO offers a high level of flexibility, allowing a client to retrieve and modify the objects in the simulation. Two implementations of TraCI have been released to date for Python (TraCI-Python) and Java (TraCI4j). On the other hand, Matlab® is a software tool with a programming language with a broad user’s community of researchers. Matlab is used in many tasks on simulation, control, optimization and it is a preferred tool for rapid prototyping. Both platforms share strengths that benefit the development of control strategies for road traffic. The desire of combining both strengths motivated the interest to develop a TraCI implementation for Matlab. This chapter describes an adaptive software re-engineering process of TraCI-Python used to implement TraCI4Matlab (TraCI for Matlab).


Reverse Engineering Model Predictive Control Package Visibility Legacy Software TraCI Package 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



This work was supported by Proyecto Colciencias 111856934640 contrato 941-2012: Modelamiento y Control de tráfico urbano en la ciudad de Medellín. Convocatoria 569.


  1. 1.
    Beazley DM (2009) Python essential reference, 4th edn. Addison-Wesley Professional, Upper Saddle RiverGoogle Scholar
  2. 2.
    CanforaHarman G, Di Penta M (2007) New frontiers of reverse engineering. In: Future of software engineering, FOSE ’07. IEEE Computer Society, Washington, DC, USA, pp 326–341. doi: 10.1109/FOSE.2007.15
  3. 3.
    Chikofsky EJ, Cross I JH (1990) Reverse engineering and design recovery: a taxonomy. IEEE Softw 7:13–17. doi: 10.1109/52.43044
  4. 4.
    Comparing MATLAB with other oo languages—MATLAB and simulink, n.d. URL Accessed 02 April 2014
  5. 5.
    Demeyer S, Ducasse S, Nierstrasz O (2002) Object-oriented reengineering patterns. Morgan Kaufmann, San FranciscoGoogle Scholar
  6. 6.
    egueli/TraCI4J GitHub, n.d. URL Accessed 01 April 2014
  7. 7.
    Ewer J, Knight B, Cowell D (1995) Case study: an incremental approach to re-engineering a legacy {FORTRAN} computational fluid dynamics code in C ++. Adv Eng Softw 22:153–168. doi:
  8. 8.
    Krajzewicz D, Erdmann J, Behrisch M, Bieker L (2012) Recent development and applications of SUMO—Simulation of Urban mobility. Int J Adv Syst Meas 5:128–138Google Scholar
  9. 9.
    MATLAB—the language of technical Computing—B, n.d. URL Accessed 09 Sept 2014
  10. 10.
    Mens T, Tourwe T (2004) A survey of software refactoring. IEEE Trans Softw Eng 30:126–139. doi: 10.1109/TSE.2004.1265817 CrossRefGoogle Scholar
  11. 11.
    MOYCOT | MOYCOT, n.d. URL Accessed 09 Sept 2014
  12. 12.
    Olbrich S, Cruzes DS, Basili V, Zazworka N (2009) The evolution and impact of code smells: a case study of two open source systems. In: Proceedings of the 2009 3rd international symposium on empirical software engineering and measurement, ESEM ’09. IEEE Computer Society, Washington, DC, USA, pp 390–400. doi: 10.1109/ESEM.2009.5314231
  13. 13.
    Release notes for MATLAB—MATLAB and simulink, n.d. URL Accessed 09 Sept 2014
  14. 14.
    Share data between workspaces—MATLAB and simulink, n.d. URL Accessed 02 April 2014
  15. 15.
    StarUML—The open source UML/MDA platform, n.d. URL Accessed 30 Jan 2014
  16. 16.
    SUMO_User_Documentation—SUMO—simulation of urban mobility, n.d. URL Accessed 30 Jan 2014
  17. 17.
    TCP/IP socket communications in MATLAB using java classes—file exchange—MATLAB central, n.d. URL Accessed 09 Sep 2014
  18. 18.
    TraCI4Matlab—file exchange—MATLAB central, n.d. URL Accessed 01 April 2014
  19. 19.
    Vincke R, Van Landschoot S, Steegmans E, Boydens J (2012) Refactoring sequential embedded software for concurrent execution using design patterns. Annu J Electron 6:157–160Google Scholar
  20. 20.
    Winpdb—A platform independent python debugger, n.d. URL Accessed 30 Jan 2014

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Andrés F. Acosta
    • 2
  • Jorge E. Espinosa
    • 1
  • Jairo Espinosa
    • 2
    Email author
  1. 1.Politécnico Colombiano Jaime Isaza CadavidMedellinColombia
  2. 2.Universidad Nacional de ColombiaMedellinColombia

Personalised recommendations