Skip to main content

Static Data-Flow Analysis of UML/SysML Functional Views for Signal and Image Processing Applications

  • Conference paper
  • First Online:
Model-Driven Engineering and Software Development (MODELSWARD 2019)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1161))

Abstract

The complexity of heterogeneous Multi-Processor Systems-on-Chip stretches the limits of software development solutions based on sequential languages such as C/C++. While these are still the most widely used languages in practice, model-based solutions appear to be an efficient alternative. However, the optimized compilation of models for multi-processor systems still presents many open research problems. Among others, static data-flow analyses for models require the adaptation of traditional algorithms used in program analysis (iterative and worklist algorithms). These algorithms operate on Control-Flow Graphs with a unique start node (i.e., a node without predecessors) and assume that every basic block is reachable from this start node.

In this paper, we present a novel combination of the well-known iterative and worklist algorithms that examines a Control-Flow Graph where basic blocks can be reached by paths that originate from different start states. We apply this solution to functional views of signal and image processing models denoted with UML Activity and SysML Block diagrams. We demonstrate its effectiveness on interval analysis and show that significant reductions in the number of visits of the models’ control-flow graphs can be achieved.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    By the term task, we denote the most coarse-grain unit of work that the programming model of an execution unit in a target MPSoC platform offers to the programmer. In the literature, the term task can be ambiguous and alternatives include process, light-weight process, thread (for execution), step, request, or query (for work). For instance, given a general-purpose CPU equipped with an Operating System (OS), a task is equivalent to an OS process. Given a Digital Signal Processor and its software stack, operations such as Fast-Fourier Transforms, signal modulations can run as tasks.

  2. 2.

    In the context of our work, C/C++ are the reference programming languages with which signal and image processing applications for MPSoCs are developed [20].

  3. 3.

    We always imply forward analysis. Predecessor edges must be considered in the case of backward analysis.

References

  1. Khronos OpenCL: the open standard for parallel programming of heterogeneous systems. https://www.khronos.org/opencl

  2. MathWorks Simulink. https://www.mathworks.com/products/simulink

  3. Message Passing Interface (MPI). https://www.mpi-forum.org/

  4. nVidia CUDA: General-purpose parallel computing architecture. https://www.nvidia.com/cuda

  5. OpenMP: API specification for parallel programming. https://www.openmp.org/

  6. Spectrum and Energy efficiency through multi-band Cognitive Radio: D6.3. Report on the implementation of selected algorithms. https://cordis.europa.eu/project/rcn/93076/reporting/fr

  7. The Go programming language. https://golang.org/

  8. Apvrille, L., Muhammad, W., Ameur-Boulifa, R., Coudert, S., Pacalet, R.: A UML-based environment for system design space exploration. In: ICECS, pp. 1272–1275 (2006)

    Google Scholar 

  9. Atkinson, D.C., Griswold, W.G.: Implementation techniques for efficient data-flow analysis of large programs. In: ICSM, pp. 52–61 (2001)

    Google Scholar 

  10. Baldomero, J.: Message passing under MATLAB. In: HPC, pp. 73–82 (2001)

    Google Scholar 

  11. Beyer, D., Gulwani, S., Schmidt, D.A.: Combining model checking and data-flow analysis. In: Clarke, E., Henzinger, T., Veith, H., Bloem, R. (eds.) Handbook of Model Checking, pp. 493–540. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8_16

    Chapter  MATH  Google Scholar 

  12. Bodden, E., Pun, V.K.I., Steffen, M., Stolz, V., Wickert, A.: Information flow analysis for go. In: ISOLA, pp. 431–445 (2016)

    Google Scholar 

  13. Briand, L.C., Labiche, Y., Lin, Q.: Improving statechart testing criteria using data flow information. In: ISSRE, pp. 104–114 (2005)

    Google Scholar 

  14. Charfi, A., Mraidha, C., Boulet, P.: An optimized compilation of UML state machines. In: ISORC, pp. 172–179 (2012)

    Google Scholar 

  15. Charfi, A., Mraidha, C., Gérard, S., Terrier, F., Boulet, P.: Toward optimized code generation through model-based optimization. In: DATE, pp. 1313–1316 (2010)

    Google Scholar 

  16. Checko, A., et al.: Cloud RAN for mobile networks - a technology overview. IEEE Commun. Surv. Tutor. 17(1), 405–426 (2015)

    Article  Google Scholar 

  17. Desnos, K., Pelcat, M., Nezan, J.F., Aridhi, S.: Distributed memory allocation technique for synchronous dataflow graphs. In: SiPS 2016 (2016)

    Google Scholar 

  18. Donovan, A., Kernighan, B.: The Go Programming Language. Addison-Wesley, Boston (2015)

    Google Scholar 

  19. Eclipse CDT. http://www.eclipse.org/cdt/

  20. EE Times: Embedded Software Stuck at C. Technical report, November 2007

    Google Scholar 

  21. Enrici, A., Apvrille, L., Pacalet, R.: A UML model-driven approach to efficiently allocate complex communication schemes. In: Dingel, J., Schulte, W., Ramos, I., Abrahão, S., Insfran, E. (eds.) MODELS 2014. LNCS, vol. 8767, pp. 370–385. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11653-2_23

    Chapter  Google Scholar 

  22. Enrici, A., Apvrille, L., Pacalet, R.: Efficient data-flow analysis of UML/SysML diagrams for optimized model compilation of hardware-software systems. In: MODELSWARD, pp. 86–97 (2019)

    Google Scholar 

  23. Garousi, V., Briand, L.C., Labiche, Y.: Control flow analysis of UML 2.0 sequence diagrams. In: Hartman, A., Kreische, D. (eds.) ECMDA-FA 2005. LNCS, vol. 3748, pp. 160–174. Springer, Heidelberg (2005). https://doi.org/10.1007/11581741_13

    Chapter  Google Scholar 

  24. Hoare, C.: Communicating sequential processes. Communun. ACM 21(8), 666–677 (1978)

    Article  Google Scholar 

  25. Jhala, R., Majumdar, R.: Interprocedural analysis of asynchronous programs. In: POPL, pp. 339–350 (2007)

    Google Scholar 

  26. Jones, G., Goldsmith, M.: Programming in Occam2. Prentice-Hall International, Upper Saddle River (1988)

    Google Scholar 

  27. Kahn, G.: The semantics of a simple language for parallel programming. In: IFIP Congress, pp. 471–475 (1974)

    Google Scholar 

  28. Kepner, J.: MatlabMPI. J. Parallel Distrib. Comput. 64(8), 997–1005 (2004)

    Article  Google Scholar 

  29. Kim, Y.G., Hong, H.S., Bae, D.H., Cha, S.D.: Test cases generation from UML state diagrams. IEE Proc.-Softw. 146(4), 187–192 (1999)

    Article  Google Scholar 

  30. Kwon, S., Kim, Y., Jeun, W., Ha, S., Paek, Y.: A retargetable parallel programming framework for MPSoC. TODAES 13(39), 39:1–39:18 (2008)

    Google Scholar 

  31. Lee, E.A., Parks, T.M.: Dataflow process network. Proc. IEEE 83(5), 1235–1245 (1995)

    Article  Google Scholar 

  32. Leupers, R., Aguilar, M.A., Eusse, J.F., Castrillon, J., Sheng, W.: MAPS: a software development environment for embedded multicore applications. In: Ha, S., Teich, J. (eds.) Handbook of Hardware/Software Codesign, pp. 917–949. Springer, Dordrecht (2017). https://doi.org/10.1007/978-94-017-7267-9_2

    Chapter  Google Scholar 

  33. Mellor, S.J., Balcer, M.: Executable UML: A Foundation for Model-Driven Architectures. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)

    Google Scholar 

  34. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (2010)

    MATH  Google Scholar 

  35. Park, H., Oh, H., Ha, S.: Multiprocessor SoC design methods and tools. IEEE Sig. Process. Mag. 26(6), 72–79 (2009)

    Article  Google Scholar 

  36. Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: POPL, pp. 49–61 (1995)

    Google Scholar 

  37. Saad, C., Bauer, B.: Data-flow based model analysis and its applications. In: Moreira, A., Schätz, B., Gray, J., Vallecillo, A., Clarke, P. (eds.) MODELS 2013. LNCS, vol. 8107, pp. 707–723. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-41533-3_43

    Chapter  Google Scholar 

  38. Schmidt, D.C.: Model-driven engineering. IEEE Comput. 39(2), 25–31 (2006)

    Article  Google Scholar 

  39. Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003)

    Article  Google Scholar 

  40. Torczon, L., Cooper, K.: Engineering a Compiler, 2nd edn. Morgan Kaufmann Publishers Inc., San Francisco (2007)

    MATH  Google Scholar 

  41. TTool (2006). http://ttool.telecom-paristech.fr

  42. TTool/DIPLODOCUS (2006). http://ttool.telecom-paristech.fr/diplodocus.html

  43. VERIMAG: IF: Intermediate Format and Verification Tool set (2018). http://www-verimag.imag.fr/article58.html?lang=en

  44. Waheed, T., Iqbal, M.Z.Z., Malik, Z.I.: Data flow analysis of UML action semantics for executable models. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 79–93. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69100-6_6

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andrea Enrici .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Enrici, A., Apvrille, L., Pacalet, R., Pham, M.H. (2020). Static Data-Flow Analysis of UML/SysML Functional Views for Signal and Image Processing Applications. In: Hammoudi, S., Pires, L., Selić, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2019. Communications in Computer and Information Science, vol 1161. Springer, Cham. https://doi.org/10.1007/978-3-030-37873-8_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-37873-8_5

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-37872-1

  • Online ISBN: 978-3-030-37873-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics