Abstract
The results of literature review show that the need for both reliability and flexibility is increasingly becoming important among the various classes of software applications. Developing reliable yet flexible software is a hard problem. Although modeling methods enjoy a lot of advantages, the use of just one of them, in many cases, may not guarantee the development of reliable and flexible software. Formal modeling methods ensure reliability. However, lack of knowledge and high cost practically force developers to use semi-formal methods instead. Semi-formal (visual) modeling methods, which are widely used in practical large-scale software development, are not good enough for reliable software development. This paper proposes a new practical approach to the development of reliable yet flexible software. In the proposed approach, formal (Object-Z) and semi-formal (UML) models are transformed into each other using a set of bidirectional formal rules. Formal modeling and refinement ensure the reliability of software. Visual models facilitate the interactions among stakeholders who are not familiar enough with the complex mathematical concepts of formal methods. Visual models help detect the unexpected behavior and inconsistencies of software. Applying design patterns to visual models improves the flexibility of software. The transformation of formal and visual models into each other through the iterative and evolutionary process, proposed in this paper, helps develop the software applications that need to be highly reliable yet flexible. The feasibility of the proposed approach is evaluated using the multi-lift case study.
Similar content being viewed by others
References
Kim S, Carrington D (2000) A formal mapping between UML models and Object-Z specifications. In: Proceedings of ZB2000: formal specification and development in Z and B, York, UK, Lecture notes in computer science, vol 1878. Springer
Rasoolzadegan A, Abdollahzadeh A (2011) Specifying a parallel, distributed, real-time, and embedded system: multi-lift system case study. Technical Report, Information Technology and Computer Engineering. Faculty, Amirkabir University of Technology, Tehran, Iran
Rasoolzadegan A, Abdollahzadeh A (2011) A new approach to software development process with formal modeling of behavior based on visualization. In: Proceedings of 6th International Conference on Software Engineering. Advances (ICSEA), Barcelona, Spain
Charatan Q, Kans A (2004) Formal software development: from VDM to Java. Palgrave Macmillan
Bjørner D (2006) Software engineering III: domains, requirements, and software design. Springer
Williams JR (2009) Automatic formalization of UML to Z. MSc. thesis, Department of Computer Science, University of York
Schmidt DC (2006) Model-driven engineering. IEEE Comput 39(2):25–31
Pressman R (2009) Software engineering: a practitioner’s approach, 7th edn. McGraw Hill
Somerville I (2006) Software engineering, 8th edn. Addison Wesley
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design pattern: elements of reusable object-oriented software, 5th edn. Addison-Wesley Publishing Company
Freeman E, Freeman E, Kathy Sierra B (2004) Head first design patterns, 1st edn. O’Reilly Media
Tilley T (2004) Formal concept analysis applications to requirements engineering and design. Ph.D. dissertation, The University of Queensland, Australia
Sun J, Dong JS, Liu J, Wang H (2001) Object-Z web environment and projections to UML. In: Proceedings of 10th international WWW conference, New York, ACM, pp 725–734
Kim S, Carrington D (2002) A formal meta-modeling approach to a transformation between the UML state machine and Object-Z. In: Proceedings of ICFEM 2002: international conference formal engineering methods, vol 2495 of LNCS, Springer, pp 548–560
Zafar NA, Alhumaidan F (2011) Transformation of class diagrams into formal specification. IJCSNS Int J Comput Sci Netw Secur 11(5):289–295
Miao H, Liu L, Li L (2002) Formalizing UML models with Object-Z. In: Proceedings of ICFEM2002: conference on formal engineering methods, Springer. pp 523–534
Jackson D (2006) Software abstractions: logic, language, and analysis. MIT Press
Polack F (2001) SAZ: SSADM version 4 and Z. In: Proceedings of software specification methods: an overview using a case study, Springer. pp 21–38
Graham D, Williams J, Christen P (2010) Visualizing temporal cluster changes using relative density self-organizing maps. Knowl Inf Syst 25(2):281–302. doi:10.1007/s10115-009-0264-5
Kim SK (2004) Using integrated meta-modeling to define OO design patterns with Object-Z and UML. In: Proceedings of 11th Asia-Pacific software engineering conference, Busan, Korea. pp 257–264
Markovic S, Baar T (2008) Refactoring OCL annotated UML class diagrams. Softw Syst Model (SoSyM) 7(1):25–47
Kim SK, Carrington DA (2009) A formalism to describe design patterns based on role concepts. Formal Aspects Comput 21(5):397–420
Amálio N, Polack F, Stepney S (2005) An object-oriented structuring for Z based on views. In: Proceedings ZB2005: 4th international conference of B and Z users, Guildford, UK, LNCS 3455, Springer. pp 262–278
Bollin A (2011) Coupling-based transformations of Z specifications into UML diagrams. Innov Syst Softw Eng 7(4):283–292
Miloudi KE, Amrani YE, Ettouhami A (2011) An automated translation of UML class diagrams into a formal specification to detect UML inconsistencies. In: Proceeding of 6th international conference on software engineering. Advances (ICSEA), Barcelona, Spain
Facon P, Laleau R, Nguyen R (2001) From OMT diagrams to B specifications. In: Proceedings of software specifications methods: an overview using a case study, Springer. pp 57–77
Laleau R, Polack F (2001) A rigorous metamodel for UML static conceptual modeling of information systems. In: Proceedings of CAiSE 2001: advanced information systems engineering, vol 2068 of LNCS. pp 402–416
Laleau R, Polack F (2002) Coming and going from UML to B: a proposal to support traceability in rigorous IS development. In: Proceedings of ZB 2002: formal specification and development in Z and B, Grenoble, vol 2272 of LNCS, Springer. pp 517–534
Treharne H (2002) “Supplementing a UML development process with B. In: Proceedings of FME 2002: formal methods—getting it right, vol 2391 of LNCS, Springer. pp 568–586
Hammad A, Tatibouët B, Voisinet J, Weiping W (2001) From B specification to UML Statechart diagrams. In: Proceedings of ICFEM 2002: international conference of formal engineering methods, vol 2495 of LNCS, Springer. pp 511–522
Snook C, Butler M (2006) UML-B: formal modeling and design aided by UML. ACM Trans Softw Eng Methodol 15(1):92–122
Fischer C, Olderog E, Wehrheim H (2001) A CSP view on UML-RT structure diagrams. In: Proceedings of fundamental approaches to software engineering, vol 2029 of LNCS, Springer. pp 91–108
Engels G, Küster JM, Heckel R (2001) A methodology for specifying and analyzing consistency of object-oriented behavioral models. In: Proceedings of 9th ACM SIGSOFT symposium on foundations of software engineering, pp 186–195
Davies J, Crichton C (2002) Concurrency and refinement in the UML. In: Proceedings of refine 2002: the BCS FACS refinement workshop, vol 70 (3) of electronic notes in theoretical computer science. Elsevier Science
Xia J, Xia L (2010) A formal requirement specification method based on Object-Z. In: Proceedings of Asia-Pacific youth conference on communication, Kunming, China, APYCC. pp 209–212
Parisi M (2011) Managing scope creep with design patterns in formal specifications. Int J Softw Eng Appl 5(1):63–72
Mai D (2009) Object-Z-based test case generator. MSc. thesis, Department of Computer Science, University of La Crosse, Wisconsin
Kim S, Carrington D (2002) A formal model of the UML meta-model: the UML state machine and its integrity constraints. In: Proceedings of ZB 2002, Grenoble, vol 2272 of LNCS, Springer. pp 497–516
Amálio N (2006) Generative frameworks for rigorous model-driven development. PhD thesis, Department of Computer Science, University of York
Bouquet F, Dadeau F, Groslambert J (2005) Checking JML specifications with B machines. In: Proceedings of ZB 2005, vol 3455 of LNCS, Springer. pp 434–453
Eden A (2000) Precise specification of design patterns and tool support in their application. PhD thesis, Department of Computer Science, Tel Aviv University
Eden A (2001) Formal specification of object oriented design. In: Proceedings of international conference on multidisciplinary design in engineering, CSME-MDE
Raje R, Chinnasamy S (2001) elelepus—a language for specification of software design patterns. In: Proceedings of SAC ’01: the 2001 ACM symposium on applied, computing, pp 600–604
Flores A, Moore R, Reynoso L (2001) A formal model of object-oriented design and GoF design patterns. In: Proceedings of FME 2001: international symposium of formal methods Europe, vol 2021 of LNCS, Springer, pp 223–241
Reynoso L, Moore R (2000) GoF behavioral patterns: a formal specification. The United Nations Univ, Technical report
Blazy S, Gervais S, Laleau R (2003) Reuse of specification patterns with the B method. In: Proceedings of ZB 2003: formal specification and development in Z and B, Turku, Finland, vol 2651 of LNCS, Springer. pp 40–57
Kim S, Carrington D (2005) A rigorous foundation for pattern-based design models. In: Proceedings of ZB 2005: international conference of B and Z users, vol 3455 of LNCS, Springer. pp 242–261
Taibi T (2007) Design pattern formalization techniques. IGI Publishing, Hershey, New York, UAE
Kong J, Zhang K, Dong J, Xu D (2009) Specifying behavioral semantics of UML diagrams through graph transformations. J Syst Softw 82:292–306
Chen Y, Miao H (2004) From an abstract Object-Z specification to UML diagram. J Inf Comput Sci 1(2):319–324
Ehlmann BK (2011) Association patterns for data modeling and definition. Knowl Inf Syst 26(1):59–86. doi:10.1007/s10115-009-0262-7
Rasoolzadegan A, Abdollahzadeh A (2011) Empirical evaluation of modeling languages using multi-lift system case study. In: Proceedings of MSV’11: the 8th annual international conference on modeling, simulation and visualization methods, Las Vegas, Nevada, USA
Christensen HB (2010) Flexible, reliable software: using patterns and agile development, 1st edn. Chapman Hall/CRC
Martinho R (2008) A two-step approach for modeling flexibility in software processes. In: Proceedings of 23rd IEEE/ACM international conference on automated software engineering, Italy, pp 427–430
Vidal JC, Lama M, Bugarín A (2011) Toward the use of Petri nets for the formalization of OWL-S choreographies. Knowl Inf Syst. doi:10.1007/s10115-011-0451-z
Farooq SU, Quadri SMK, Ahmad N (2012) Metrics, models and measurements in software reliability. In: Proceedings of 2012 IEEE 10th international symposium on applied machine intelligence and informatics, Slovakia, pp 441–449
Penna GD, Magazzeni D, Orefice S (2012) A spatial relation-based framework to perform visual information extraction. Knowl Inf Syst 30(3):667–692. doi:10.1007/s10115-011-0394-4
Goldsby H, Cheng B, Konrad S, Kamdoum S (2006) A visualization framework for the modeling and formal analysis of high assurance systems. In: Proceedings of model driven engineering languages and systems (MoDELS), Italy, pp 707–721
Amálio N, Glodt C, Kelsen P (2011) Building VCL models and automatically generating Z specifications from them. In: Proceedings of 17th international symposium on formal methods. Lecture Notes in Computer Science, vol 6664, Ireland. pp 149–153
Medina-Medina N, Molina-Ortiz F, García-Cabrera L (2011) Adaptation and user modeling in hypermedia learning environments using the SEM-HP model and the JSEM-HP tool. Knowl Inf Syst 29(3):629–656. doi:10.1007/s10115-010-0357-1
Baumeister J, Freiberg M (2011) Knowledge visualization for evaluation tasks. Knowl Inf Syst 29(2): 349–378. doi:10.1007/s10115-010-0350-8
Derrick J, Boiten EA (2001) Refinement in Z and Object-Z, 1st edn. Springer
Qin S (2007) Linking Object-Z with spec#. In: Proceedings of 12th IEEE international conference on engineering complex computer systems, pp 185–196, Auckland, New Zealand
Rasoolzadegan A, Abdollahzadeh A (2012) Developing reliable yet flexible software through if-then model transformation rules. Amirkabir J Sci Technol Misc 44(2)
Allilaire F, Bézivin J, Jouault F, Kurtev I, (2006) ATL: eclipse support for model transformation. In: Proceedings of the eclipse technology eXchange workshop (eTX) at the ECOOP 2006 conference. Nantes, France
Bagge AH (2009) Constructs and concepts: language design for flexibility and reliability. PhD thesis, Research School in Information and Communication Technology, Department of Informatics, University of Bergen, Norway
Brereton P, Kitchenham BA, Budgen D, Turner M, Khalil M (2007) Lessons from applying the systematic review process within the software engineering domain. J Syst Softw 80:571–583
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix 1: Informal definition of the modeling elements of the UML class diagram and Object-Z
Appendix 2: Formal definition of the modeling elements of the UML class diagram at the meta-level using Object-Z
Appendix 3: Formal definition of the modeling elements of Object-Z at the meta-level using Object-Z
Rights and permissions
About this article
Cite this article
Rasoolzadegan, A., Barforoush, A.A. Reliable yet flexible software through formal model transformation (rule definition). Knowl Inf Syst 40, 79–126 (2014). https://doi.org/10.1007/s10115-013-0621-2
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10115-013-0621-2