Advertisement

Reengineering Variants of MATLAB/Simulink Software Systems

  • Alexander SchlieEmail author
  • Christoph Seidl
  • Ina Schaefer
Chapter

Abstract

In a variety of industrial domains, quality and security are paramount factors during software system development. Model-based languages such as MATLAB/Simulink can improve software quality and are used for the development of safety-critical functionality. To comply with changing customer demands, product portfolios oftentimes emerge ad hoc by copying and modifying existing systems in an undocumented fashion. The proliferation of redundant, almost alike assets adversely affects the quality, maintenance, and evolution of the variant portfolio. To reinstate sustainable development, we describe a holistic approach to migrate the portfolio toward managed reuse by collapsing redundant parts and reengineering specific relations between similar, almost alike system parts. We elaborate on a technique to capture course-grained variability by assessing the portfolio as a whole, which identifies and groups together similar and redundant system parts. Such groups are analyzed further using a fine-grained comparison procedure, which captures their variability by means of common and varying system assets. The result is a variability model with redundant parts collapsed and reusable parts identified. By that, the overall size of the product portfolio is reduced, allowing for better quality assurance and improved maintenance. Furthermore, with knowledge about the relations between variants, affected software systems can be identified across variant boundaries, mitigating security concerns for the entire product portfolio.

Keywords

MATLAB/Simulink Legacy systems Variability Reverseengineering Software product lines 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Notes

Acknowledgements

This work has been supported by the German Research Foundation (DFG) (SCHA 1635/12-1).

References

  1. Al-Batran, B., Schätz, B., & Hummel, B. (2011). Semantic clone detection for model-based development of embedded systems. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems (MODELS) (pp. 258–272). Berlin: Springer.CrossRefGoogle Scholar
  2. Alalfi, M., Cordy, J., Dean, T., Stephan, M., & Stevenson, A. (2012). Models are code too: Near-miss clone detection for Simulink models. In Proceedings of the International Conference on Software Maintenance (ICSM) (pp. 295–304). Piscataway: IEEE.Google Scholar
  3. Alves, V., Matos, P., Cole, L., Vasconcelos, A., Borba, P., & Ramalho, G. (2007). Extracting and evolving code in product lines with aspect-oriented programming (pp. 117–142). Berlin: Springer.Google Scholar
  4. Antoulas, A. (2005). Approximation of large-scale dynamical systems. Advances in design and control. Philadelphia: Society for Industrial and Applied Mathematics.zbMATHCrossRefGoogle Scholar
  5. Benner, P., Mehrmann, V., & Sorensen, D. (2005). Dimension reduction of large-scale systems. Lecture notes in computational science and engineering. Berlin: Springer.CrossRefGoogle Scholar
  6. Clements, P., & Northrop, L. (2001). Software product lines: Practices and patterns. Boston: Addison-Wesley Longman Publishing Co., Inc.Google Scholar
  7. Codabux, Z., & Williams, B. (2013). Managing technical debt: An industrial case study. In Proceedings of the International Workshop on Managing Technical Debt (MTD) (pp. 8–15). Piscataway: IEEE.CrossRefGoogle Scholar
  8. CQSE – Continuous Quality in Software Engineering (2016) Conqat. https://www.conqat.org
  9. Cretu, L., & Dumitriu, F. (2014). Model-driven engineering of information systems: Principles, techniques, and practice. Palm Bay: Apple Academic Press.CrossRefGoogle Scholar
  10. Deissenboeck, F., Hummel, B., Juergens, E., Pfaehler, M., & Schaetz, B. (2010). Model clone detection in practice. In Proceedings of the International Workshop on Software Clones (IWSC) (pp. 57–64). New York: ACM.CrossRefGoogle Scholar
  11. Deissenboeck, F., Hummel, B., Jürgens, E., Schätz, B., Wagner, S., Girard, J. F., & Teuchert, S. (2008). Clone detection in automotive model-based development. In Proceedings of the International Conference on Software Engineering (ICSE) (pp. 603–612). New York: ACM.Google Scholar
  12. Duan, G. (2010). Analysis and design of descriptor linear systems. In Advances in mechanics and mathematics. New York: Springer.Google Scholar
  13. Dubinsky, Y., Rubin, J., Berger, T., Duszynski, S., Becker, M., & Czarnecki, K. (2013). An exploratory study of cloning in industrial software product lines. In Proceedings of the European Conference on Software Maintenance and Reengineering (CSMR) (pp. 25–34). Piscataway: IEEE.Google Scholar
  14. Ernst, N., Bellomo, S., Ozkaya, I., Nord, R., & Gorton, I. (2015). Measure it? Manage it? Ignore it? Software practitioners and technical debt. In Proceedings of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE) (pp. 50–60). New York: ACM.Google Scholar
  15. Fischer, J., Bougouffa, S., Schlie, A., Schaefer, I., & Vogel-Heuser, B. (2018). A qualitative study of variability management of control software for industrial automation systems. In Proceedings of the International Conference on Software Maintenance and Evolution (ICSME) (pp. 615–624)Google Scholar
  16. Fischer, S., Linsbauer, L., Lopez-Herrejon, R. E., & Egyed, A. (2014). Enhancing clone-and-own with systematic reuse for developing software variants. In Proceedings of the International Conference on Software Maintenance and Evolution (ICSME) (pp. 391–400). Piscataway: IEEE.Google Scholar
  17. Fischer, S., Linsbauer, L., Lopez-Herrejon, R. E., & Egyed, A. (2015). The ECCO tool: Extraction and composition for clone-and-own. In Proceedings of the International Conference on Software Engineering (ICSE) (pp. 665–668). Piscataway: IEEE.Google Scholar
  18. Font, J., Ballarín, M., Haugen, Ø, & Cetina, C. (2015). Automating the variability formalization of a model family by means of common variability language. In Proceedings of the International Software Product Line Conference (SPLC) (pp. 411–418). New York: ACM.CrossRefGoogle Scholar
  19. Gold, N. E., Binkley, D., Harman, M., Islam, S., Krinke, J., & Yoo, S. (2017). Generalized observational slicing for tree-represented modelling languages. In Proceedings of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE) (pp. 547–558).Google Scholar
  20. Grönniger, H., Krahn, H., Pinkernell, C., & Rumpe, B. (2014). Modeling variants of automotive systems using views. CoRR.Google Scholar
  21. Haber, A., Kolassa, C., Manhart, P., Nazari, P. M. S., Rumpe, B., & Schaefer, I. (2013). First-class variability modeling in Matlab/Simulink. In Proceedings of the International Workshop on Variability Modeling in Software-intensive Systems (VaMoS) (pp. 4:1–4:8). New York: ACM.Google Scholar
  22. Henley (ed.). (1973). Graph theory in modern engineering: Computer aided design, control, optimization, reliability analysis. Mathematics in science and engineering. Amsterdam: Elsevier.Google Scholar
  23. Holthusen, S., Wille, D., Legat, C., Beddig, S., Schaefer, I., & Vogel-Heuser, B. (2014). Family model mining for function block diagrams in automation software. In Proceedings of the International Workshop on Reverse Variability Engineering (REVE) (pp. 36–43). New York: ACM.Google Scholar
  24. Jeong, H., Obaidat, M., Yen, N., & Park, J. (2013). Advances in computer science and its applications (CSA). Berlin: Springer.Google Scholar
  25. Kastner, C., Dreiling, A., & Ostermann, K. (2014). Variability mining: Consistent semi-automatic detection of product-line features. IEEE Transactions on Software Engineering, 40, 67–82.CrossRefGoogle Scholar
  26. Kelter, U., & Schmidt, M. (2008). Comparing state machines. In Proceedings of the International Workshop on Comparison and Versioning of Software Models (CVSM) (pp. 1–6). New York: ACM.Google Scholar
  27. Kelter, U., Wehren, J., & Niere, J. (2005). A generic difference algorithm for uml models. Software Engineering, 64(105–116), 4–9.Google Scholar
  28. Kim, J. A. (2010). Case study of software product line engineering in insurance product. In Proceedings of the International Software Product Line Conference (SPLC) (pp. 495–495). Berlin: Springer.Google Scholar
  29. Kolassa, C., Rendel, H., & Rumpe, B. (2015). Evaluation of variability concepts for simulink in the automotive domain. In Hawaii International Conference on System Sciences (HICSS) (pp. 5373–5382). Piscataway: IEEE.Google Scholar
  30. Kuhn, H. (1955). The hungarian method for the assignment problem. Naval Research Logistics Quarterly, 2, 83–98.MathSciNetzbMATHCrossRefGoogle Scholar
  31. Lapeña, R., Ballarin, M., & Cetina, C. (2016). Towards clone-and-own support: Locating relevant methods in legacy products. In Proceedings of the International Software Product Line Conference (SPLC) (pp. 194–203). New York: ACM.Google Scholar
  32. Levenshtein, V. I. (1966). Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady, 10(8), 707–710.MathSciNetGoogle Scholar
  33. Liang, Z., Cheng, Y., & Chen, J. (2014). A novel optimized path-based algorithm for model clone detection. Journal of Software 9(7), 1810–1817.Google Scholar
  34. Martinez, J., Ziadi, T., Bissyandé, T. F., Klein, J., & Le Traon, Y. (2015a). Bottom-up adoption of software product lines: A generic and extensible approach. In Proceedings of the International Software Product Line Conference (SPLC) (pp. 101–110). New York: ACM.CrossRefGoogle Scholar
  35. Martinez, J., Ziadi, T., Bissyandé, T. F., Klein, J., & Traon, Yl. (2015b). Automating the extraction of model-based software product lines from model variants. In Proceedings of the International Conference on Automated Software Engineering (ASE) (pp. 396–406). Piscataway: IEEE.Google Scholar
  36. Martinez, J., Ziadi, T., Klein, J., & le Traon, Y. (2014). Identifying and visualising commonality and variability in model variants. In Proceedings of the European Conference on Modeling Foundations and Applications (ECMFA) (pp. 117–131). Cham: Springer.CrossRefGoogle Scholar
  37. Merschen, D., Polzer, A., Botterweck, G., & Kowalewski, S. (2011). Experiences of applying model-based analysis to support the development of automotive software product lines. In Proceedings of the International Workshop on Variability Modeling in Software-intensive Systems (VaMoS) (pp. 141–150). New York: ACM.CrossRefGoogle Scholar
  38. Olshevsky, V. (2001). Structured matrices in mathematics, computer science, and engineering I. Contemporary mathematics. American Mathematical Society.Google Scholar
  39. Pham, N. H., Nguyen, H. A., Nguyen, T. T., Al-Kofahi, J. M., & Nguyen, T. N. (2009). Complete and accurate clone detection in graph-based models. In Proceedings of the International Conference on Software Engineering (ICSE) (pp. 276–286). Piscataway: IEEE.Google Scholar
  40. Pohl, K., Böckle, G., & van der Linden, F. J.. (2005). Software product line engineering: Foundations, principles and techniques. Berlin: Springer.zbMATHCrossRefGoogle Scholar
  41. Pressman, R. (2005). Software engineering: A practitioner’s approach. New York: McGraw-Hill Higher Education.zbMATHGoogle Scholar
  42. Ramasubbu, N., Kemerer, C. F., & Woodard, C. J. (2015). Managing technical debt: Insights from recent empirical evidence. IEEE Software, 32(2), 22–25.CrossRefGoogle Scholar
  43. Riva, C., & Rosso, C. D. (2003). Experiences with software product family evolution. In Proceedings of the Joint Workshop on Software Evolution and International Workshop on Principles of Software Evolution (IWPSE-EVOL) (pp. 161–169). Piscataway: IEEE.Google Scholar
  44. Roy, C. K., & Cordy, J. R. (2008). NICAD: Accurate detection of near-miss intentional clones using flexible pretty-printing and code normalization. In Proceedings of the International Conference on Program Comprehension (ICPC) (pp. 172–181). Piscataway: IEEE.Google Scholar
  45. Rubin, J., & Chechik, M. (2012). Combining related products into product lines. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering (FASE) (pp. 285–300). Berlin: Springer.CrossRefGoogle Scholar
  46. Rubin, J., & Chechik, M. (2013a). N-way model merging. In Proceedings of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE) (pp. 301–311). New York: ACM.Google Scholar
  47. Rubin, J., & Chechik, M. (2013b). Quality of merge-refactorings for product lines. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering (FASE) (pp. 83–98). Basel: Springer.CrossRefGoogle Scholar
  48. Rumpe, B., Schulze, C., von Wenckstern, M., Ringert, J., & Manhart, P. (2015). Behavioral compatibility of simulink models for product line maintenance and evolution. In Proceedings of the International Software Product Line Conference (SPLC) (pp. 141–150). New York: ACM.CrossRefGoogle Scholar
  49. Ryssel, U., Ploennigs, J., & Kabitzsch, K. (2010a). Automatic variation-point identification in function-block-based models. In Proceedings of the International Conference on Generative Programming and Component Engineering (GPCE) (pp. 23–32). New York: ACM.Google Scholar
  50. Ryssel, U., Ploennigs, J., & Kabitzsch, K. (2010b). Automatic variation-point identification in function-block-based models. In Proceedings of the International Conference on Generative Programming and Component Engineering (GPCE) (pp. 23–32). New York: ACM.Google Scholar
  51. Schlie, A., Schulze, S., & Schaefer, I. (2018). Comparing multiple MATLAB/Simulink models using static connectivity matrix analysis. In Proceeidngs of the International Conference on Software Maintenance and Evolution (ICSME) (pp. 185–196). Piscataway: IEEE.Google Scholar
  52. Schlie, A., Wille, D., Cleophas, L., & Schaefer, I. (2017a). Clustering variation points in matlab/simulink models using reverse signal propagation analysis. In Proceedings of the International Conference on Software Reuse (ICSR) (pp. 77–94). Cham: Springer.Google Scholar
  53. Schlie, A., Wille, D., Schulze, S., Cleophas, L., & Schaefer, I. (2017b). Detecting variability in MATLAB/Simulink models: An industry-inspired technique and its evaluation. In Proceedings of the International Software Product Line Conference (SPLC) (pp. 215–224). New York: ACM.Google Scholar
  54. Schulze, M., Mauersberger, J., & Beuche, D. (2013). Functional safety and variability: Can it be brought together? In Proceedings of the International Software Product Line Conference (SPLC). New York: ACM.CrossRefGoogle Scholar
  55. She, S., Lotufo, R., Berger, T., Wasowski, A., & Czarnecki, K. (2011). Reverse engineering feature models. In Proceedings of the International Conference on Software Engineering (ICSE) (pp. 461–470). Piscataway: IEEE.Google Scholar
  56. Sullivan, K. J., Griswold, W. G., Cai, Y., & Hallen, B. (2001). The structure and value of modularity in software design. In Proceedings of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE) (pp. 99–108). New York: ACM.Google Scholar
  57. Tan, H. (2012). Knowledge discovery and data mining. In Advances in intelligent and soft computing. Berlin: Springer.Google Scholar
  58. Tang, A., Couwenberg, W., Scheppink, E., Aan de Burgh, N., Deelstra, S., & Vliet, H. (2010). Spl migration tensions: An industry experience. In Proceedings of the Workshop on Knowledge-Oriented Product Line Engineering (KOPLE) Google Scholar
  59. Tuytelaars, T., & Mikolajczyk, K. (2008). Local invariant feature detectors: A survey. Foundations and Trends in Computer Graphics and Vision, 3(3), 177–280.CrossRefGoogle Scholar
  60. van der Linden, F. J., Schmid, K., & Rommes, E. (2007). Software product lines in action: The best industrial practice in product line engineering. Berlin: Springer.CrossRefGoogle Scholar
  61. Wille, D. (2014). Managing lots of models: The famine approach. In Proceedings of the International Symposium on the Foundations of Software Engineering (FSE) (pp. 817–819). New York: ACM.Google Scholar
  62. Wille, D., Holthusen, S., Schulze, S., & Schaefer, I. (2013). Interface variability in family model mining. In Proceedings of the International Workshop on Model-Driven Approaches in Software Product Line Engineering (MAPLE) (pp. 44–51). New York: ACM.Google Scholar
  63. Wille, D., Schulze, S., Seidl, C., & Schaefer, I. (2016). Custom-tailored variability mining for block-based languages. In Proceedings of the International Conference on Software Analysis, Evolution, and Reengineering (SANER) (pp. 271–282). Piscataway: IEEE.Google Scholar
  64. Zhang, D., & Lu, G. (2003). A comparative study of curvature scale space and fourier descriptors for shape-based image retrieval. Journal of Visual Communication and Image Representation 14(1), 39–57.CrossRefGoogle Scholar
  65. Zhang, X., Haugen, Ø, & Møller-Pedersen, B. (2011). Model comparison to synthesize a model-driven software product line. In Proceedings of the International Software Product Line Conference (SPLC) (pp. 90–99). Piscataway: IEEE.Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Alexander Schlie
    • 1
    Email author
  • Christoph Seidl
    • 1
  • Ina Schaefer
    • 1
  1. 1.TU BraunschweigBraunschweigGermany

Personalised recommendations