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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
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.
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.
Antoulas, A. (2005). Approximation of large-scale dynamical systems. Advances in design and control. Philadelphia: Society for Industrial and Applied Mathematics.
Benner, P., Mehrmann, V., & Sorensen, D. (2005). Dimension reduction of large-scale systems. Lecture notes in computational science and engineering. Berlin: Springer.
Clements, P., & Northrop, L. (2001). Software product lines: Practices and patterns. Boston: Addison-Wesley Longman Publishing Co., Inc.
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.
CQSE – Continuous Quality in Software Engineering (2016) Conqat. https://www.conqat.org
Cretu, L., & Dumitriu, F. (2014). Model-driven engineering of information systems: Principles, techniques, and practice. Palm Bay: Apple Academic Press.
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.
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.
Duan, G. (2010). Analysis and design of descriptor linear systems. In Advances in mechanics and mathematics. New York: Springer.
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.
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.
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)
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.
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.
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.
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).
Grönniger, H., Krahn, H., Pinkernell, C., & Rumpe, B. (2014). Modeling variants of automotive systems using views. CoRR.
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.
Henley (ed.). (1973). Graph theory in modern engineering: Computer aided design, control, optimization, reliability analysis. Mathematics in science and engineering. Amsterdam: Elsevier.
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.
Jeong, H., Obaidat, M., Yen, N., & Park, J. (2013). Advances in computer science and its applications (CSA). Berlin: Springer.
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.
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.
Kelter, U., Wehren, J., & Niere, J. (2005). A generic difference algorithm for uml models. Software Engineering, 64(105–116), 4–9.
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.
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.
Kuhn, H. (1955). The hungarian method for the assignment problem. Naval Research Logistics Quarterly, 2, 83–98.
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.
Levenshtein, V. I. (1966). Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady, 10(8), 707–710.
Liang, Z., Cheng, Y., & Chen, J. (2014). A novel optimized path-based algorithm for model clone detection. Journal of Software 9(7), 1810–1817.
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.
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.
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.
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.
Olshevsky, V. (2001). Structured matrices in mathematics, computer science, and engineering I. Contemporary mathematics. American Mathematical Society.
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.
Pohl, K., Böckle, G., & van der Linden, F. J.. (2005). Software product line engineering: Foundations, principles and techniques. Berlin: Springer.
Pressman, R. (2005). Software engineering: A practitioner’s approach. New York: McGraw-Hill Higher Education.
Ramasubbu, N., Kemerer, C. F., & Woodard, C. J. (2015). Managing technical debt: Insights from recent empirical evidence. IEEE Software, 32(2), 22–25.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Tan, H. (2012). Knowledge discovery and data mining. In Advances in intelligent and soft computing. Berlin: Springer.
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)
Tuytelaars, T., & Mikolajczyk, K. (2008). Local invariant feature detectors: A survey. Foundations and Trends in Computer Graphics and Vision, 3(3), 177–280.
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.
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.
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.
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.
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.
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.
Acknowledgements
This work has been supported by the German Research Foundation (DFG) (SCHA 1635/12-1).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Schlie, A., Seidl, C., Schaefer, I. (2019). Reengineering Variants of MATLAB/Simulink Software Systems. In: Biffl, S., Eckhart, M., Lüder, A., Weippl, E. (eds) Security and Quality in Cyber-Physical Systems Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-25312-7_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-25312-7_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-25311-0
Online ISBN: 978-3-030-25312-7
eBook Packages: Computer ScienceComputer Science (R0)