{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,7]],"date-time":"2026-02-07T03:25:40Z","timestamp":1770434740960,"version":"3.49.0"},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"1-2","license":[{"start":{"date-parts":[[2009,2,1]],"date-time":"2009-02-01T00:00:00Z","timestamp":1233446400000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Form. Asp. Comput."],"published-print":{"date-parts":[[2009,2]]},"abstract":"<jats:title>Abstract<\/jats:title>\n          <jats:p>\n            An object-oriented program consists of a section of\n            <jats:italic>class declarations<\/jats:italic>\n            and a\n            <jats:italic>main method<\/jats:italic>\n            . The class declaration section represents the structure of an object-oriented program, that is the data, the classes and relations among them. The execution of the main method realizes the application by invoking methods of objects of the classes defined in the class declarations. Class declarations define the general properties of objects and how they collaborate with each other in realizing the application task programmed as the main method. Note that for one class declaration section, different main methods can be programmed for different applications, and this is an important feature of reuse in object-oriented programming. On the other hand, different class declaration sections may support the same applications, but these different class declaration sections can make significant difference with regards to understanding, reuse and maintainability of the applications. With a UML-like modeling language, the class declaration section of a program is represented as a\n            <jats:italic>class diagram<\/jats:italic>\n            , and the instances of the class diagram are represented by\n            <jats:italic>object diagrams<\/jats:italic>\n            , that form the\n            <jats:italic>state space<\/jats:italic>\n            of the program. In this paper, we define a class diagram and its object diagrams as\n            <jats:italic>directed labeled graphs<\/jats:italic>\n            , and investigate what changes in the class structure maintain the capability of providing\n            <jats:italic>functionalities<\/jats:italic>\n            (or\n            <jats:italic>services<\/jats:italic>\n            ). We formalize such a structure change by the notion of\n            <jats:italic>structure refinement<\/jats:italic>\n            . A structure refinement is a transformation from one graph to another that preserves the\n            <jats:italic>capability<\/jats:italic>\n            of providing services, that is, the resulting class graph should be able to provide at least as many, and as good, services (in terms of functional refinement) as the original graph. We then develop a\n            <jats:italic>calculus of object-oriented refinement<\/jats:italic>\n            , as an extension to the classical\n            <jats:italic>theory of data refinement<\/jats:italic>\n            , in which the refinement rules are classified into four categories according to their natures and uses in object-oriented software design. The soundness of the calculus is proved and the completeness of the refinement rules of each category is established with regard to normal forms defined for object-oriented programs. These completeness results show the power of the simple refinement rules. The normal forms and the completeness results together capture the essence of polymorphism, dynamic method binding and object sharing by references in object-oriented computation.\n          <\/jats:p>","DOI":"10.1007\/s00165-007-0067-y","type":"journal-article","created":{"date-parts":[[2008,1,7]],"date-time":"2008-01-07T08:18:25Z","timestamp":1199693905000},"page":"103-131","source":"Crossref","is-referenced-by-count":19,"title":["Graph transformations for object-oriented refinement"],"prefix":"10.1145","volume":"21","author":[{"given":"Liang","family":"Zhao","sequence":"first","affiliation":[{"name":"UNU-IIST, P. O. Box 3058, Macao SAR, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xiaojian","family":"Liu","sequence":"additional","affiliation":[{"name":"UNU-IIST, P. O. Box 3058, Macao SAR, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zhiming","family":"Liu","sequence":"additional","affiliation":[{"name":"UNU-IIST, P. O. Box 3058, Macao SAR, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zongyan","family":"Qiu","sequence":"additional","affiliation":[{"name":"LMAM and Department of Informatics, School of Mathematics, Peking University, Beijing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","reference":[{"key":"e_1_2_1_2_1_2","doi-asserted-by":"publisher","DOI":"10.5555\/547964"},{"key":"e_1_2_1_2_2_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF01215408"},{"key":"e_1_2_1_2_3_2","doi-asserted-by":"crossref","first-page":"682","DOI":"10.1007\/BFb0030634","volume-title":"TAPSOFT \u201997: theory and practice of software development, 7th international joint conference","author":"Abadi M","year":"1997"},{"key":"e_1_2_1_2_4_2","doi-asserted-by":"crossref","unstructured":"Baresi L Heckel R Th\u00f6ne S Varr\u00f3 D (2003) Modeling and validation of service-oriented architectures: Application vs. style. In: Proceedings of ESEC\/FSE 03 European software engineering conference and ACM SIGSOFT symposium on the foundations of software engineering. ACM Press pp 68\u201377","DOI":"10.1145\/949952.940082"},{"key":"e_1_2_1_2_5_2","unstructured":"Baresi L Heckel R Th\u00f6ne S Varr\u00f3 D (2004) Style-based refinement of dynamic software architectures. In: WICSA \u201904: Proceedings of the fourth working IEEE\/IFIP conference on software architecture (WICSA\u201904). IEEE Computer Society Washington DC pp 155\u2013164"},{"key":"e_1_2_1_2_6_2","doi-asserted-by":"publisher","DOI":"10.1007\/s001650070034"},{"key":"e_1_2_1_2_7_2","doi-asserted-by":"publisher","DOI":"10.5555\/291167"},{"key":"e_1_2_1_2_8_2","first-page":"457","volume-title":"Proceedings of ECOOP 2003, Lecture Notes in Computer Science 2743","author":"Borba P","year":"2003"},{"key":"e_1_2_1_2_9_2","doi-asserted-by":"publisher","DOI":"10.5555\/551462"},{"key":"e_1_2_1_2_10_2","volume-title":"Designing object systems: object-oriented modelling with syntropy","author":"Cook S","year":"1994"},{"key":"e_1_2_1_2_11_2","doi-asserted-by":"crossref","unstructured":"Chen Z Hannousse AH Van Hung D Knoll I Li X Liu Y Liu Z Nan Q Okika J Ravn AP Stolz V Yang L Zhan N (2007) Modelling with relational calculus of object and component systems-rCOS. In: The common component modeling example: comparing software component models. Springer Heidelberg (To be published as a Chapter of a Volume of Lecture Notes in Computer Science)","DOI":"10.1007\/978-3-540-85289-6_6"},{"key":"e_1_2_1_2_12_2","doi-asserted-by":"crossref","unstructured":"Chen Y Sanders J (2006) Compositional reasoning for pointer structures. In: Proceedings of 8th international conference on mathematics of program construction (MPC06) Lecture Notes in Computer Science vol 4014. Springer Heidelberg pp 115\u2013139","DOI":"10.1007\/11783596_10"},{"key":"e_1_2_1_2_13_2","doi-asserted-by":"publisher","DOI":"10.5555\/2379538.2379540"},{"key":"#cr-split#-e_1_2_1_2_14_2.1","doi-asserted-by":"crossref","unstructured":"Cavalcanti A Naumann D (1999) A weakest precondition semantics for an object-oriented language of refinement. In: World congress on formal methods","DOI":"10.1007\/3-540-48118-4_26"},{"key":"#cr-split#-e_1_2_1_2_14_2.2","unstructured":"(2) Lecture Notes in Computer Science vol 1709. Springer Heidelberg pp 1439-1460"},{"key":"e_1_2_1_2_15_2","volume-title":"Object-oriented development: the FUSION method","author":"Coleman D","year":"1994"},{"key":"e_1_2_1_2_16_2","unstructured":"D\u00fcrr E Dusink EM (1993) The role of VDM ++ in the development of a real-time tracking and tracing system. In: Woodcock J Larsen P (eds) Proceedings of FME\u201993 Lecture Notes in Computer Science vol 670. Springer Heidelberg"},{"key":"e_1_2_1_2_17_2","doi-asserted-by":"crossref","unstructured":"Rozenberg G (ed) (1997) Handbook of graph grammars and computing by graph transformation vol 1 Foundations World Scientific","DOI":"10.1142\/3303"},{"issue":"1","key":"e_1_2_1_2_18_2","first-page":"31","article-title":"Fundamental theory for typed attributed graphs and graph transformation based on adhesive HLR categories","volume":"74","author":"Ehrig H","year":"2006","journal-title":"Fundam Inf"},{"key":"e_1_2_1_2_19_2","doi-asserted-by":"crossref","unstructured":"Engels G Hausmann JH Heckel R Sauer S (2000) Dynamic meta modeling: a graphical approach to the operational semantics of behavioral diagrams in uml. In: Proceedings of UML 2000 The unified modeling language Lecture Notes in Computer SCience vol 1939. Springer Heidelberg pp 323\u2013337","DOI":"10.1007\/3-540-40011-7_23"},{"key":"e_1_2_1_2_20_2","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1016\/j.entcs.2005.03.002","article-title":"An abstract equivalence notation for object models","volume":"130","author":"Gheyi R","year":"2004","journal-title":"Electron Note Theor Comput Sci"},{"key":"e_1_2_1_2_21_2","doi-asserted-by":"crossref","unstructured":"Gro\u00dfe-Rhode M Parisi-Presicce F Simeoni M (1998) Spatial and temporal refinement of typed graph transformation systems. In: Proceedings of mathematical foundations of computer science Lecture Notes in Computer Science vol 1450. Springer Heidelberg pp 553\u2013561","DOI":"10.1007\/BFb0055805"},{"key":"e_1_2_1_2_22_2","volume-title":"Unifying theories of programming","author":"Hoare CAR","year":"1998"},{"key":"e_1_2_1_2_23_2","doi-asserted-by":"crossref","unstructured":"Hoare CAR He J (1999) A trace model for pointers and objects. In: Proceedings of ECOOP\u201999 Lecture Notes in Computer Science vol 1628. Springer Heidelberg pp 1\u201317","DOI":"10.1007\/3-540-48743-3_1"},{"key":"e_1_2_1_2_24_2","doi-asserted-by":"crossref","unstructured":"He J Hoare CAR Sanders JW (1986) Data refinement refined. In: Proceedings of ESOP 86 Lecture Notes in Computer Science vol 213. Springer Heidelberg pp 187\u2013196","DOI":"10.1007\/3-540-16442-1_14"},{"key":"e_1_2_1_2_25_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2006.07.034"},{"key":"e_1_2_1_2_26_2","doi-asserted-by":"crossref","unstructured":"Johnsen EB Owe O (2004) Object-oriented specification and open distributed systems. In: From object-orientation to formal method Lecture Notes in Computer Science vol 2635. Springer Heidelberg pp 137\u2013164","DOI":"10.1007\/978-3-540-39993-3_9"},{"key":"e_1_2_1_2_27_2","doi-asserted-by":"crossref","unstructured":"Kastenberg H Kleppe A Rensink A (2006) Defining object-oriented execution semantics using graph transformations. In: Proceedings of the 8th IFIP international conference on formal methods for open object-based distributed systems (FMOODS\u201906) Lecture Notes in Computer Science vol 4037. Springer Heidelberg pp 186\u2013201","DOI":"10.1007\/11768869_15"},{"key":"e_1_2_1_2_28_2","doi-asserted-by":"publisher","DOI":"10.5555\/518604"},{"key":"e_1_2_1_2_29_2","doi-asserted-by":"publisher","DOI":"10.5555\/516442"},{"issue":"4","key":"e_1_2_1_2_30_2","first-page":"330","article-title":"Recursive object types in a logic of object-oriented programming","volume":"5","author":"Rustan K","year":"1998","journal-title":"Nordic J Comput"},{"key":"e_1_2_1_2_31_2","doi-asserted-by":"crossref","unstructured":"Liu Z He J Li X Chen Y (2003) A relational model for formal requirements analysis in UML. In: Proceedings of ICFEM03 Lecture Notes in Computer Science vol 2885. Springer Heidelberg pp 641\u2013664","DOI":"10.1007\/978-3-540-39893-6_36"},{"key":"e_1_2_1_2_32_2","doi-asserted-by":"crossref","first-page":"145","DOI":"10.1016\/j.entcs.2006.08.049","article-title":"Object-oriented structure refinement\u2014a graph transformational approach","volume":"187","author":"Liu X","year":"2006","journal-title":"Electron Notes Theor Comput Sci"},{"key":"e_1_2_1_2_33_2","volume-title":"Programming from specifications","author":"Morgan CC","year":"1994"},{"key":"e_1_2_1_2_34_2","doi-asserted-by":"crossref","unstructured":"Mikhajlova A Sekerinski E (1997) Class refinement and interface refinement in object-oriented programs. In: Proceedings of FME\u201997 Lecture Notes in Computer Science vol 1313. Springer Heidelberg pp 82\u2013101","DOI":"10.1007\/3-540-63533-5_5"},{"key":"e_1_2_1_2_35_2","first-page":"467","volume-title":"Proceedings of PROCOMET\u201994","author":"Naumann D","year":"1994"},{"key":"e_1_2_1_2_36_2","first-page":"162","volume-title":"Proceedings of programming languages and systems (ESOP\u201999), Lecture Notes in Computer Science, vol 1576","author":"Poetzsch-Heffter A","year":"1999"},{"key":"e_1_2_1_2_37_2","volume-title":"Formal methods and object technology","author":"Sekerinski E","year":"1996"},{"key":"e_1_2_1_2_38_2","unstructured":"Tata Consultancy Services. Mastercraft. http:\/\/www.tata-mastercraft.com\/"},{"key":"e_1_2_1_2_39_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4615-5265-9"},{"key":"e_1_2_1_2_40_2","doi-asserted-by":"crossref","unstructured":"Taentzer G Rensink A (2005) Ensuring structural constraints in graph-based models with type inheritance. In: Cerioli M (ed) Fundamental approaches to software engineering (FASE) Edinburgh UK Lecture Notes in Computer Science vol 3442. Springer Heidelberg pp 64\u201379","DOI":"10.1007\/978-3-540-31984-9_6"},{"key":"e_1_2_1_2_41_2","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(02)00036-9"},{"key":"e_1_2_1_2_42_2","unstructured":"Zhao L Zhao X Long Q Qiu Z (2006) A type system for the relational calculus of object systems. In: Proceedings of international conference on engineering complex computer systems. IEEE Computer Soceity pp 189\u2013198"}],"container-title":["Formal Aspects of Computing"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s00165-007-0067-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s00165-007-0067-y\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1007\/s00165-007-0067-y","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,1,6]],"date-time":"2022-01-06T15:47:11Z","timestamp":1641484031000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1007\/s00165-007-0067-y"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,2]]},"references-count":43,"journal-issue":{"issue":"1-2","published-print":{"date-parts":[[2009,2]]}},"alternative-id":["10.1007\/s00165-007-0067-y"],"URL":"https:\/\/doi.org\/10.1007\/s00165-007-0067-y","relation":{},"ISSN":["0934-5043","1433-299X"],"issn-type":[{"value":"0934-5043","type":"print"},{"value":"1433-299X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2009,2]]}}}