Mendel: A Model, Metrics, and Rules to Understand Class Hierarchies. Denier, S. & Gu�h�neuc, Y. In Krikhaar, R. & L�mmel, R., editors, Proceedings of the 16<sup>th</sup> International Conference on Program Comprehension (ICPC), pages 143–152, June, 2008. IEEE CS Press. 10 pages.
Paper abstract bibtex Inheritance is an important mechanism when developing object-oriented programs with class-based programming languages: it enables subtyping, polymorphism, and code reuse. Inheritance is also known as a difficult feature to grasp and to use correctly because of its many purposes. We propose a model of inheritance to help understand class hierarchies of class-based object-oriented programs. We define metrics and rules to highlight interesting classes and behaviours with respect to inheritance. Thus, we provide the programmer with insight on how inheritance is used in a program. We illustrate our approach on \JHotDraw and validate it further on three other programs: ArgoUML, Azureus, and Log4J. We also show that our model can describe existing rules, such as micro patterns.
@INPROCEEDINGS{Denier08-ICPC-Mendel,
AUTHOR = {Simon Denier and Yann-Ga�l Gu�h�neuc},
BOOKTITLE = {Proceedings of the 16<sup>th</sup> International Conference on Program Comprehension (ICPC)},
TITLE = {Mendel: A Model, Metrics, and Rules to Understand Class
Hierarchies},
YEAR = {2008},
OPTADDRESS = {},
OPTCROSSREF = {},
EDITOR = {Ren� Krikhaar and Ralf L�mmel},
MONTH = {June},
NOTE = {10 pages.},
OPTNUMBER = {},
OPTORGANIZATION = {},
PAGES = {143--152},
PUBLISHER = {IEEE CS Press},
OPTSERIES = {},
OPTVOLUME = {},
KEYWORDS = {Topic: <b>Program comprehension</b>, Venue: <c>ICPC</c>},
URL = {http://www.ptidej.net/publications/documents/ICPC08a.doc.pdf},
PDF = {http://www.ptidej.net/publications/documents/ICPC08a.ppt.pdf},
ABSTRACT = {Inheritance is an important mechanism when developing
object-oriented programs with class-based programming languages: it
enables subtyping, polymorphism, and code reuse. Inheritance is also
known as a difficult feature to grasp and to use correctly because of
its many purposes. We propose a model of inheritance to help
understand class hierarchies of class-based object-oriented programs.
We define metrics and rules to highlight interesting classes and
behaviours with respect to inheritance. Thus, we provide the
programmer with insight on how inheritance is used in a program. We
illustrate our approach on \JHotDraw{} and validate it further on
three other programs: ArgoUML, Azureus, and Log4J. We also show that
our model can describe existing rules, such as micro patterns.}
}
Downloads: 0
{"_id":"b7dh7td2zbDXmnRjy","bibbaseid":"denier-guhneuc-mendelamodelmetricsandrulestounderstandclasshierarchies-2008","downloads":0,"creationDate":"2018-01-17T20:29:42.509Z","title":"Mendel: A Model, Metrics, and Rules to Understand Class Hierarchies","author_short":["Denier, S.","Gu�h�neuc, Y."],"year":2008,"bibtype":"inproceedings","biburl":"http://www.yann-gael.gueheneuc.net/Work/Publications/Biblio/complete-bibliography.bib","bibdata":{"bibtype":"inproceedings","type":"inproceedings","author":[{"firstnames":["Simon"],"propositions":[],"lastnames":["Denier"],"suffixes":[]},{"firstnames":["Yann-Ga�l"],"propositions":[],"lastnames":["Gu�h�neuc"],"suffixes":[]}],"booktitle":"Proceedings of the 16<sup>th</sup> International Conference on Program Comprehension (ICPC)","title":"Mendel: A Model, Metrics, and Rules to Understand Class Hierarchies","year":"2008","optaddress":"","optcrossref":"","editor":[{"firstnames":["Ren�"],"propositions":[],"lastnames":["Krikhaar"],"suffixes":[]},{"firstnames":["Ralf"],"propositions":[],"lastnames":["L�mmel"],"suffixes":[]}],"month":"June","note":"10 pages.","optnumber":"","optorganization":"","pages":"143–152","publisher":"IEEE CS Press","optseries":"","optvolume":"","keywords":"Topic: <b>Program comprehension</b>, Venue: <c>ICPC</c>","url":"http://www.ptidej.net/publications/documents/ICPC08a.doc.pdf","pdf":"http://www.ptidej.net/publications/documents/ICPC08a.ppt.pdf","abstract":"Inheritance is an important mechanism when developing object-oriented programs with class-based programming languages: it enables subtyping, polymorphism, and code reuse. Inheritance is also known as a difficult feature to grasp and to use correctly because of its many purposes. We propose a model of inheritance to help understand class hierarchies of class-based object-oriented programs. We define metrics and rules to highlight interesting classes and behaviours with respect to inheritance. Thus, we provide the programmer with insight on how inheritance is used in a program. We illustrate our approach on \\JHotDraw and validate it further on three other programs: ArgoUML, Azureus, and Log4J. We also show that our model can describe existing rules, such as micro patterns.","bibtex":"@INPROCEEDINGS{Denier08-ICPC-Mendel,\r\n AUTHOR = {Simon Denier and Yann-Ga�l Gu�h�neuc},\r\n BOOKTITLE = {Proceedings of the 16<sup>th</sup> International Conference on Program Comprehension (ICPC)},\r\n TITLE = {Mendel: A Model, Metrics, and Rules to Understand Class \r\n Hierarchies},\r\n YEAR = {2008},\r\n OPTADDRESS = {},\r\n OPTCROSSREF = {},\r\n EDITOR = {Ren� Krikhaar and Ralf L�mmel},\r\n MONTH = {June},\r\n NOTE = {10 pages.},\r\n OPTNUMBER = {},\r\n OPTORGANIZATION = {},\r\n PAGES = {143--152},\r\n PUBLISHER = {IEEE CS Press},\r\n OPTSERIES = {},\r\n OPTVOLUME = {},\r\n KEYWORDS = {Topic: <b>Program comprehension</b>, Venue: <c>ICPC</c>},\r\n URL = {http://www.ptidej.net/publications/documents/ICPC08a.doc.pdf},\r\n PDF = {http://www.ptidej.net/publications/documents/ICPC08a.ppt.pdf},\r\n ABSTRACT = {Inheritance is an important mechanism when developing \r\n object-oriented programs with class-based programming languages: it \r\n enables subtyping, polymorphism, and code reuse. Inheritance is also \r\n known as a difficult feature to grasp and to use correctly because of \r\n its many purposes. We propose a model of inheritance to help \r\n understand class hierarchies of class-based object-oriented programs. \r\n We define metrics and rules to highlight interesting classes and \r\n behaviours with respect to inheritance. Thus, we provide the \r\n programmer with insight on how inheritance is used in a program. We \r\n illustrate our approach on \\JHotDraw{} and validate it further on \r\n three other programs: ArgoUML, Azureus, and Log4J. We also show that \r\n our model can describe existing rules, such as micro patterns.}\r\n}\r\n\r\n","author_short":["Denier, S.","Gu�h�neuc, Y."],"editor_short":["Krikhaar, R.","L�mmel, R."],"key":"Denier08-ICPC-Mendel","id":"Denier08-ICPC-Mendel","bibbaseid":"denier-guhneuc-mendelamodelmetricsandrulestounderstandclasshierarchies-2008","role":"author","urls":{"Paper":"http://www.ptidej.net/publications/documents/ICPC08a.doc.pdf"},"keyword":["Topic: <b>Program comprehension</b>","Venue: <c>ICPC</c>"],"metadata":{"authorlinks":{"gu�h�neuc, y":"https://bibbase.org/show?bib=http%3A%2F%2Fwww.yann-gael.gueheneuc.net%2FWork%2FPublications%2FBiblio%2Fcomplete-bibliography.bib&msg=embed","guéhéneuc, y":"https://bibbase.org/show?bib=http://www.yann-gael.gueheneuc.net/Work/BibBase/guehene%20(automatically%20cleaned).bib"}},"downloads":0},"search_terms":["mendel","model","metrics","rules","understand","class","hierarchies","denier","gu�h�neuc"],"keywords":["topic: <b>program comprehension</b>","venue: <c>icpc</c>"],"authorIDs":["2tFXMaTSHJKEB5ebi","2wY5eBcsYmbPNfmMS","36dm7jaw5EK5Wrr4D","3NxaNKic3nkXi568L","3S5Dkpx7DNefzJrnf","3afmfmoPr4SHa8B5F","3wmHB7JoQbQz2ujun","4YBWWbao6RKgiyGJE","4jZj9tB4SJ8zEEgHk","5CvA2hsaib2bPMaef","5TFJbxqRDGFj2P8Rg","5a5fb236a39f2c3645000032","5a8f17e006df23bc34000020","5cx79LBmaWcihgM4J","5de9a6425b51bcde01000042","5dee1197584fb4df010000fc","5df228a41e4fe9df0100012c","5df617f72b34d0de0100008b","5dfa14782e791dde010000ea","5dfe3d5e68d95dde01000080","5e02525b6ffa15df0100009f","5e0662c07da1d1de0100021a","5e093e8b934cacdf0100008b","5e0a61673eccf6e001000016","5e0b75b7e73cd6de010000f9","5e0d4ca6ae5827df0100007f","5e0ddf08552b25df01000137","5e0e5c41ac7d11df010000a3","5e1268e7a4cabfdf0100002c","5e12c45a70e2c4f201000043","5e157809f1f31adf01000006","5e162ca1df1bb4de01000123","5e185cff809b84f201000091","5e1a6c39b16ec5df0100000f","5e21b27e96aea7de01000084","5e22c57e49e2b4df0100000f","5e23c2aeb93b51de01000030","5e245835079bb2df0100007d","5e24fa3e2e79a1f201000027","5e26252f408641df01000161","5e26bfbd8535cedf0100005c","5e280fd1f860fcde0100006a","5e2a827f881468de01000080","5e2eb321b84405df01000128","5e2ef635e374eede0100001a","5e2fd6a74e91a9df01000010","5e3266bb5633c9de01000068","5e32ab0ee17accde0100012a","5e32bdec466076df010000d9","5e32d603150c84df01000068","5e34fb145978bef2010000a6","5e36bc8e7b975dde0100009a","5e389940030bcadf010001b4","5e39dd9a3687dddf010000a4","5e3ad173f2a00cdf01000206","5e3dcd50d51253de0100003d","5e3e8713666d79df010000a6","5e3ed80986a596de010000b9","5e3fefe1add5fbde01000087","5e409c79d668c6de010000c7","5e41795ed9f47bee01000194","5e41cd5be7c67ade010000eb","5e42ef1ca6f4a6f2010001eb","5e46dcb342fb31df01000113","5e46f12c461d04f201000078","5e478c9e27a0c8de010000ef","5e47fb06385298df010000b2","5e4add1941072bdf01000011","5e4c1c792dc400de0100011a","5e4c6262271596df010001b9","5e4f0360338acfde01000156","5e4f11b0e5389bde0100007e","5e530b976d68b8df010000a5","5e54ad6d929495df0100007c","5e57161b429006de0100005a","5e57839fcef9b7de0100003c","5e580f5a6a456fde0100004f","5e5afa78038583de010000f7","5e5b477174a3e7df010000b7","5e5d370173eb2edf01000038","5e5fca336b32b0f20100011b","5e60e7f0839e59df010000e8","5e6377cfae1c4dde0100011e","5e657007de41b9df0100017a","5e676f0910be53de0100001a","5gPbX6aQJFjpv2Na9","6eE2yRdMDQr2WGXuA","6iHE5tuM7yTfLd2pA","7BPWyvMr5e6bzbk7T","7RFwhpGkpZRsLwnmB","7amRA4ALcR2mksheF","7mkQL8eiftj5bGMzB","8jPjKehCMsj7ncvxN","8peLXfWtCSic5n7oz","95eRgTcabnJwF46f3","9Ba9JxkjQBCeGBZKg","9DjgvzQrx27uxbyJj","9HD56d3k5yrB9H9oq","9RtPuXNyeS3k8LM9J","9diLYpd8cMmjBh54T","9nx6Yv3XREwJDyRms","AfJhKcg96muyPdu7S","BGvchZsjW7Wejj9Cz","BYwdHpGr6xT5vmE5C","Bah6LM7GXdXTy8GGA","BmH2ytt7sXwPHcrse","CqJYxtqe6qBbtd5yz","D4kEZ2JcWCoMvRPy7","DFWW7D6Y7X57n4cbM","DSorPqHDfrFiNM5Ew","DWXisKXaQArvre3QL","DwBm6isMpKSHHkhAd","E88raoktD8ANF92Yu","EAjLox7ycbofcCXce","F8rzFhY9yWA7pBX4j","G3iynDKjz9BHJbrdg","GJw6mQETXADSCZuuk","GWK5669HLqPyYMQ5J","GibAXjj4xXdFT8qWh","HzFZpgGcfabjAp9x6","KJ4eYziy6hanF9kr9","Kcyu7uncEFiYzYP2D","N4zzhqcywSzDDYsdh","NCDg3xE2mPcNAu7LX","NvgbTAz3hZ9SevZvd","QbcDS3wK43sRASvgu","S3b7Bb9wwfpByQgbo","SXJaeFCgBDJ5HAHtj","T5nL8TGrggoLAF8Dj","W9vT8YcCNFEcp9mWQ","WZ5CpBEFNsb2ivfah","XxviSwRxhwgNwsraH","Z2Zs662GpXqKBEAMc","ZKYFgjHGm7PE4Y2kv","a5qpGirN3B5BLKdMh","ahGA65oGDChNYp7Mb","bA7pGCMS9AB2RBo2p","bTQb3TcrbBShtqFPS","cYnqisf4wzBsM7MF5","cjHpaYiWD5eX7btH4","ckrbesqi3pWqfF2nP","dH8EsWHZtCFuQk5bq","dS5kvBMnk3LMQe56w","eXsFRMzE7WfbHbBL4","fmmsBu4m6ayKtuopf","hdXr3PD8cHNWyAdCe","hgZxckC87u2A57teF","juvCjffHJaPQf44im","keQBT2Apb9yaev8AH","myHdF8zARwW5uGmFs","nJLfaznnYgFqWQQrv","onghitNWSvN2FpCaN","osgPwDW2y5KDXRa2i","pAWFMDHu5dNixqPAq","pLvmgrCjMeDYJiJxB","q4azvWakEjp2TQM7S","qBee6Md9YwRKwkeW3","qQky2Csek4mroLn2P","tJz4YBCqAzZAzek5d","tLtjttw8dEqF6YQ4s","uQ6jCrPijzAmZyfXz","vGEaFNt7mm92Z7GXc","vRkMmE65HSFpCk6FW","vsEsf8FR3Fxb6z7fJ","x5ejzvDeXCc89Dukv","xEQyC5shxpYySSJJm","xhwDdvQ7MYxa6keXm","xkviMnkrGBneANvMr","y64rFMcyp7tDsBrJQ","yBYJWSShoKkMG8aPE","yQPghCwQv22kf6dFq","yd5sCxaEiu5vWizTq"],"dataSources":["Sed98LbBeGaXxenrM","8vn5MSGYWB4fAx9Z4"]}