Abstract
Requirements specification is a crucial stage in many software development life cycles. As requirements specifications evolve, they often become more complex. The development of methods to assist the comprehension and maintenance of requirements specifications has gained much attention in the past 20 years. However, there is much room for improvement for model-based specifications. The Use Case Maps (UCM) language, part of the ITU-T Z.151 User Requirements Notation standard, is a visual modeling notation that aims to describe requirements at a high level of abstraction. A UCM specification is used to integrate and capture both functional aspects (based on causal scenarios representing behavior) and architectural aspects (actors and system components responsible for scenario activities). As UCM models evolve and grow, they rapidly become hard to understand and to maintain. In this paper, we propose a static slicing technique to enhance the comprehension of UCM models. The developed slicing approach is implemented within the jUCMNav tool. We validate the proposed approach using a mock system and three publicly available UCM specifications. The results suggest that, on average, the models can be reduced by about 70% through slicing without losing information required for comprehension and maintenance activities. A small experiment involving 9 participants also suggests that the understandability of UCM specifications and comprehension speed have both improved substantially by using jUCMNav’s new slicing feature.
Similar content being viewed by others
References
Alkaf, H.S., Hassine, J., Hamou-Lhadj, A., Alawneh, L.: An automated change impact analysis approach to GRL models. In: SDL 2017: Model-Driven Engineering for Future Internet—18th International SDL Forum, Budapest, Hungary, October 9–11, 2017, Proceedings, pp. 157–172 (2017). https://doi.org/10.1007/978-3-319-68015-6_10
Amyot, D., Mussbacher, G.: User requirements notation: the first ten years, the next ten years (invited paper). J. Softw. (JSW) 6(5), 747–768 (2011)
Androutsopoulos, K., Binkley, D., Clark, D., Gold, N., Harman, M., Lano, K., Li, Z.: Model projection: simplifying models in response to restricting the environment. In: Proceedings of the 33rd International Conference on Software Engineering, pp. 291–300. ACM (2011)
Androutsopoulos, K., Clark, D., Harman, M., Hierons, R.M., Li, Z., Tratt, L.: Amorphous slicing of extended finite state machines. IEEE Trans. Softw. Eng. 39(7), 892–909 (2013). https://doi.org/10.1109/TSE.2012.72
Androutsopoulos, K., Clark, D., Harman, M., Krinke, J., Tratt, L.: State-based model slicing: a survey. ACM Comput. Surv. (CSUR) 45(4), 53 (2013)
Androutsopoulos, K., Clark, D., Harman, M., Li, Z., Tratt, L.: Control dependence for extended finite state machines. In: International Conference on Fundamental Approaches to Software Engineering, pp. 216–230. Springer (2009)
Androutsopoulos, K., Gold, N., Harman, M., Li, Z., Tratt, L.: A theoretical and empirical study of EFSM dependence. In: Software Maintenance, 2009. ICSM 2009. IEEE International Conference, pp. 287–296. IEEE Computer Society (2009)
Beck, J., Eichmann, D.: Program and interface slicing for reverse engineering. In: Proceedings of the 15th International Conference on Software Engineering, ICSE ’93, pp. 509–518. IEEE Computer Society Press, Los Alamitos (1993)
Bergeretti, J.F., Carré, B.A.: Information-flow and data-flow analysis of while-programs. ACM Trans. Program. Lang. Syst. (TOPLAS) 7(1), 37–61 (1985)
Best, E., Rakow, A.: A slicing technique for business processes. In: International United Information Systems Conference, pp. 45–51. Springer (2008)
Binkley, D.: Precise executable interprocedural slices. ACM Lett. Program. Lang. Syst. 2(1–4), 31–45 (1993). https://doi.org/10.1145/176454.176473
Binkley, D., Danicic, S., Gyimóthy, T., Harman, M., Kiss, A., Ouarbya, L.: Formalizing executable dynamic and forward slicing. In: Fourth IEEE International Workshop on Source Code Analysis and Manipulation, 2004, pp. 43–52. IEEE (2004). https://doi.org/10.1109/SCAM.2004.13
Binkley, D., Harman, M.: A survey of empirical results on program slicing. Adv. Comput. 62(105178), 105–178 (2004)
Blouin, A., Combemale, B., Baudry, B., Beaudoux, O.: Kompren: modeling and generating model slicers. Softw. Syst. Model. 14(1), 321–337 (2015). https://doi.org/10.1007/s10270-012-0300-x
Boubaker, A., Mili, H., Leshob, A., Charif, Y.: Towards automating business process compensation scoping logic. In: E-Technologies—6th International Conference, MCETECH 2015, Montréal, QC, Canada, May 12–15, 2015, Proceedings, pp. 20–36 (2015). https://doi.org/10.1007/978-3-319-17957-5_2
Bouras, Z.E., Talai, A.: Software evolution based sequence diagrams merging. Complexity 1, 2 (2015)
Bozga, M., Fernandez, J.C., Ghirvu, L.: Using static analysis to improve automatic test generation. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 235–250. Springer (2000)
Canfora, G., Cimitile, A., De Lucia, A.: Conditioned program slicing. Inf. Softw. Technol. 40(11), 595–607 (1998)
Chan, W., Anderson, R.J., Beame, P., Notkin, D.: Improving efficiency of symbolic model checking for state-based system requirements. SIGSOFT Softw. Eng. Notes 23(2), 102–112 (1998). https://doi.org/10.1145/271775.271798
Colangelo, D., Compare, D., Inverardi, P., Pelliccione, P.: Reducing software architecture models complexity: a slicing and abstraction approach. In: International Conference on Formal Techniques for Networked and Distributed Systems, pp. 243–258. Springer (2006)
Fox, C., Luangsodsai, A.: And-or dependence graphs for slicing statecharts. In: Dagstuhl Seminar Proceedings. Schloss Dagstuhl-Leibniz-Zentrum für Informatik (2006)
Ganapathy, V., Ramesh, S.: Slicing synchronous reactive programs. Electron. Notes Theor. Comput. Sci. 65(5), 50–64 (2002)
Genon, N., Amyot, D., Heymans, P.: Analysing the cognitive effectiveness of the UCM visual notation. In: Proceedings of the 6th International Conference on System Analysis and Modeling: About Models, SAM’10, pp. 221–240. Springer, Berlin (2011). https://doi.org/10.1007/978-3-642-21652-7_14
Gupta, R., Soffa, M.L.: Hybrid slicing: an approach for refining static slices using dynamic information. SIGSOFT Softw. Eng. Notes 20(4), 29–40 (1995). https://doi.org/10.1145/222132.222137
Harman, M., Binkley, D., Danicic, S.: Amorphous program slicing. J. Syst. Softw. 68(1), 45–64 (2003). https://doi.org/10.1016/S0164-1212(02)00135-8
Harman, M., Hierons, R., Fox, C., Danicic, S., Howroyd, J.: Pre/post conditioned slicing. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM’01), ICSM ’01, pp. 138–147. IEEE Computer Society, Washington, DC, USA (2001). https://doi.org/10.1109/ICSM.2001.972724
Hassine, J.: Change impact analysis approach to GRL models. In: SOFTENG 2015: The First International Conference on Advances and Trends in Software Engineering, pp. 1–6. IARIA (2015)
Hassine, J., Dssouli, R., Rilling, J.: Applying reduction techniques to software functional requirement specifications. In: System Analysis and Modeling, 4th International SDL and MSC Workshop, SAM 2004, Ottawa, Canada, June 1–4, 2004, Revised Selected Papers, pp. 138–153 (2004). https://doi.org/10.1007/978-3-540-31810-1_10
Hassine, J., Rilling, J., Hewitt, J.: Change impact analysis for requirement evolution using use case maps. In: 8th International Workshop on Principles of Software Evolution (IWPSE 2005), 5–7 Sept 2005, Lisbon, Portugal, pp. 81–90 (2005). https://doi.org/10.1109/IWPSE.2005.8
Heimdahl, M.P.E., Thompson, J.M., Whalen, M.W.: On the effectiveness of slicing hierarchical state machines: a case study. In: Proceedings of the 24th Euromicro Conference, 1998, vol. 1, pp. 435–444. IEEE (1998)
Heimdahl, M.P.E., Whalen, M.W.: Reduction and slicing of hierarchical state machines. SIGSOFT Softw. Eng. Notes 22(6), 450–467 (1997). https://doi.org/10.1145/267896.267926
Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst. 12(1), 26–60 (1990). https://doi.org/10.1145/77606.77608
ITU-T: Recommendation Z.151 (10/12), User Requirements Notation (URN) language definition, Geneva, Switzerland (2012). http://www.itu.int/rec/T-REC-Z.151/en. Accessed 18 Mar 2018
Janowska, A., Janowski, P.: Slicing of timed automata with discrete data. Fundamenta Informaticae 72(1–3), 181–195 (2006)
Jedlitschka, A., Pfahl, D.: Reporting guidelines for controlled experiments in software engineering. In: 2005 International Symposium on Empirical Software Engineering (ISESE 2005), 17–18 Nov 2005, Noosa Heads, Australia, pp. 95–104 (2005). https://doi.org/10.1109/ISESE.2005.1541818
Ji, W., Wei, D., Zhi-Chang, Q.: Slicing hierarchical automata for model checking UML statecharts. In: International Conference on Formal Engineering Methods, pp. 435–446. Springer (2002)
Juristo, N., Moreno, A.M.: Basics of Software Engineering Experimentation, 1st edn. Springer, Berlin (2010)
Kamischke, J., Lochau, M., Baller, H.: Conditioned model slicing of feature-annotated state machines. In: Proceedings of the 4th International Workshop on Feature-Oriented Software Development, FOSD ’12, pp. 9–16. ACM, New York, NY, USA (2012). https://doi.org/10.1145/2377816.2377818
Kan, S., Huang, Z.: Detecting safety-related components in statecharts through traceability and model slicing. Softw. Pract. Exp. 48(3), 428–448 (2018). https://doi.org/10.1002/spe.2526.Spe.2526
Kealey, J.: Enhanced use case map analysis and transformation tooling. Master’s thesis, University of Ottawa, Canada (2007). http://hdl.handle.net/10393/27863. Accessed 18 Mar 2018
Kealey, J., Amyot, D.: Enhanced use case map traversal semantics. In: Gaudin, E, Najm, E., Reed, R. (eds.) 13th International SDL Forum (SDL 2007), pp. 133–149. Springer, Berlin (2007). https://doi.org/10.1007/978-3-540-74984-4_9
Kim, T., Song, Y.T., Chung, L., Huynh, D.T.: Software architecture analysis: a dynamic slicing approach. ACIS Int. J. Comput. Inf. Sci. 1(2), 91–103 (2000)
Kitchenham, B., Pfleeger, S.L., Pickard, L., Jones, P., Hoaglin, D.C., Emam, K.E., Rosenberg, J.: Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng. 28(8), 721–734 (2002). https://doi.org/10.1109/TSE.2002.1027796
Korel, B., Laski, J.: Dynamic program slicing. Inf. Process. Lett. 29(3), 155–163 (1988). https://doi.org/10.1016/0020-0190(88)90054-3
Korel, B., Singh, I., Tahat, L., Vaysburg, B.: Slicing of state-based models. In: Proceedings of the International Conference on Software Maintenance, 2003. ICSM 2003, pp. 34–43. IEEE (2003)
Labbé, S., Gallois, J.P.: Slicing communicating automata specifications: polynomial algorithms for model reduction. Form. Asp. Comput. 20(6), 563–595 (2008)
Lallchandani, J.T., Mall, R.: A dynamic slicing technique for UML architectural models. IEEE Trans. Softw. Eng. 37(6), 737–771 (2011). https://doi.org/10.1109/TSE.2010.112
Lano, K., Rahimi, S.K.: Slicing of UML models using model transformations. In: Model Driven Engineering Languages and Systems—13th International Conference, MODELS 2010, Oslo, Norway, 3–8 Oct 2010, Proceedings, Part II, pp. 228–242 (2010). https://doi.org/10.1007/978-3-642-16129-2_17
Lano, K., Rahimi, S.K.: Slicing techniques for UML models. J. Object Technol. 10(11), 1–49 (2011)
Lity, S., Baller, H., Schaefer, I.: Towards incremental model slicing for delta-oriented software product lines. In: 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pp. 530–534. IEEE (2015). https://doi.org/10.1109/SANER.2015.7081871
Lity, S., Morbach, T., Thüm, T., Schaefer, I.: Applying incremental model slicing to product-line regression testing. In: Software Reuse: Bridging with Social-Awareness, pp. 3–19. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-35122-3_1
Luangsodsai, A., Fox, C.: Concurrent statechart slicing. In: 2010 2nd Computer Science and Electronic Engineering Conference (CEEC), pp. 1–7 (2010). https://doi.org/10.1109/CEEC.2010.5606493
Ojala, V.: A slicer for UML state machines. Technical Report HUT-TCS-B25, Helsinki University of Technology, Laboratory for Theoretical Computer Science (2007)
Pourshahid, A., Amyot, D., Peyton, L., Ghanavati, S., Chen, P., Weiss, M., Forster, A.J.: Business process management with the user requirements notation. Electron. Commer. Res. 9(4), 269–316 (2009)
Rabbi, F., Wang, H., MacCaull, W., Rutle, A.: A model slicing method for workflow verification. Electron. Notes Theor. Comput. Sci. 295, 79–93 (2013). https://doi.org/10.1016/j.entcs.2013.04.007
Ray, M., Barpanda, S.S., Mohapatra, D.P.: Test case design using conditioned slicing of activity diagram. Int. J. Recent Trends Eng. (IJRTE) 1, 117–120 (2009)
Samuel, P., Mall, R.: Slicing-based test case generation from UML activity diagrams. ACM SIGSOFT Softw. Eng. Notes 34(6), 1–14 (2009)
Shaikh, A., Clarisó, R., Wiil, U.K., Memon, N.: Verification-driven slicing of UML/OCL models. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE ’10, pp. 185–194. ACM, New York, NY, USA (2010). https://doi.org/10.1145/1858996.1859038
Shaikh, A., Wiil, U.K.: Overview of slicing and feedback techniques for efficient verification of UML/OCL class diagrams. IEEE Access (2018). https://doi.org/10.1109/ACCESS.2018.2797695
Silva, J.: A vocabulary of program slicing-based techniques. ACM Comput. Surv. (CSUR) 44(3), 12 (2012)
Stafford, J.A., Wolf, A.L.: Architecture-level dependence analysis in support of software maintenance. In: Proceedings of the Third International Workshop on Software Architecture, pp. 129–132. ACM (1998)
Sun, W., France, R.B., Ray, I.: Contract-aware slicing of UML class models. In: Model-Driven Engineering Languages and Systems—16th International Conference, MODELS 2013, Miami, FL, USA, Sept 29–Oct 4 2013. Proceedings, pp. 724–739 (2013). https://doi.org/10.1007/978-3-642-41533-3_44
Takada, T., Ohata, F., Inoue, K.: Dependence-cache slicing: a program slicing method using lightweight dynamic information. In: Proceedings 10th International Workshop on Program Comprehension, pp. 169–177 (2002). https://doi.org/10.1109/WPC.2002.1021338
Tip, F.: A survey of program slicing techniques. J. Program. Lang. 3(3), 121–189 (1995)
Umemori, F., Konda, K., Yokomori, R., Inoue, K.: Design and implementation of bytecode-based java slicing system. In: Source Code Analysis and Manipulation, 2003. Proceedings. Third IEEE International Workshop on, pp. 108–117. IEEE (2003)
jUCMNav v7.0.0: jUCMNav Project (tool, documentation, and meta-model) (2016). http://softwareengineering.ca/jucmnav. Accessed 18 Mar 2018
Van Langenhove, S.: Towards the correctness of software behavior in UML: a model checking approach based on slicing. Ph.D. Thesis, Ghent University (2006)
Vaysburg, B., Tahat, L.H., Korel, B.: Dependence analysis in reduction of requirement based test suites. ACM SIGSOFT Softw. Eng. Notes 27(4), 107–111 (2002)
Venkatesh, G.A.: The semantic approach to program slicing. SIGPLAN Not. 26(6), 107–119 (1991). https://doi.org/10.1145/113446.113455
Weiser, M.: Program slicing. In: Proceedings of the 5th International Conference on Software Engineering, ICSE ’81, pp. 439–449. IEEE Press, Piscataway, NJ, USA (1981)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering: An Introduction. Kluwer, Norwell (2000)
Wright, H.K., Kim, M., Perry, D.E.: Validity concerns in software engineering research. In: Roman, G.C., Sullivan, K.J. (eds.) FoSER, pp. 411–414. ACM, New York (2010)
Xu, B., Qian, J., Zhang, X., Wu, Z., Chen, L.: A brief survey of program slicing. ACM SIGSOFT Softw. Eng. Notes 30(2), 1–36 (2005)
Zhao, J.: Applying slicing technique to software architectures. In: Fourth IEEE International Conference on Engineering of Complex Computer Systems, 1998. ICECCS’98. Proceedings, pp. 87–98. IEEE (1998)
Acknowledgements
The authors would like to acknowledge the support provided by the Deanship of Scientific Research at King Fahd University of Petroleum & Minerals for funding this work through project No. FT141006.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr Jeff Gray.
Appendices
A Closure slices for remaining UCM constructs
Figure 27 shows closure (marked) slices for different slicing criteria applied to sample UCM models in Sect. 3.
B Mock system slices
This appendix presents the results of the application of the static slicing applied to the UCM mock model of Fig. 19a with the slicing criterion (tests) defined in Sect. 5.1. For each example, we specify the map in which the selected respRef resides. Evaluation examples with several slicing criteria are shown in Figs. 28, 29, 30, 31, 32, 33, and 34 using the reduced slice approach. The same output slices using the closure slice approach are shown in Figs. 35, 36, 37, 38, 39, 40, and 41.
Rights and permissions
About this article
Cite this article
Binalialhag, T., Hassine, J. & Amyot, D. Static slicing of Use Case Maps requirements models. Softw Syst Model 18, 2465–2505 (2019). https://doi.org/10.1007/s10270-018-0680-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-018-0680-7