Using Design Patterns and Constraints to Automate the Detection and Correction of Inter-Class Design Defects. Gu�h�neuc, Y. & Albin-Amiot, H. In Li, Q., Riehle, R., Pour, G., & Meyer, B., editors, Proceedings of the 39<sup>th</sup> Conference on the Technology of Object-Oriented Languages and Systems (TOOLS USA), pages 296–305, July, 2001. IEEE CS Press. 10 pages.
Paper abstract bibtex Developing code free of defects is a major concern for the object-oriented software community. In this paper, we classify design defects as those within classes (intra-class), those among classes (inter-classes), and those of semantic nature (behavioral). Then, we introduce guidelines to automate the detection and correction of inter-class design defects: We assume that design patterns embody good architectural solutions and that a group of entities with organization similar, but not equal, to a design pattern represents an inter-class design defect. Thus, the transformation of such a group of entities, such that its organization complies exactly with a design pattern, corresponds to the correction of an inter-class design defect. We use a meta-model to describe design patterns and we exploit the descriptions to infer sets of detection and transformation rules. A constraints solver with explanations uses the descriptions and rules to recognize groups of entities with organizations similar to the described design patterns. A transformation engine modifies the source code to comply with the recognized distorted design patterns. We apply these guidelines on the Composite pattern using Ptidej, our prototype tool that integrates the complete guidelines.
@INPROCEEDINGS{Gueheneuc01-TOOLSUSA-DesignDefects,
AUTHOR = {Yann-Ga�l Gu�h�neuc and Herv� Albin-Amiot},
BOOKTITLE = {Proceedings of the 39<sup>th</sup> Conference on the Technology of Object-Oriented Languages and Systems (TOOLS USA)},
TITLE = {Using Design Patterns and Constraints to Automate the
Detection and Correction of Inter-Class Design Defects},
YEAR = {2001},
OPTADDRESS = {},
OPTCROSSREF = {},
EDITOR = {Quioyun Li and Richard Riehle and Gilda Pour and
Bertrand Meyer},
MONTH = {July},
NOTE = {10 pages.},
OPTNUMBER = {},
OPTORGANIZATION = {},
PAGES = {296–305},
PUBLISHER = {IEEE CS Press},
OPTSERIES = {},
OPTVOLUME = {},
KEYWORDS = {Topic: <b>Code and design smells</b>,
Rubrique : <b>mauvaises pratiques</b>, Conference: TOOLS USA},
URL = {http://www.ptidej.net/publications/documents/TOOLSUSA01.doc.pdf},
PDF = {http://www.ptidej.net/publications/documents/TOOLSUSA01.ppt.pdf},
ABSTRACT = {Developing code free of defects is a major concern for
the object-oriented software community. In this paper, we classify
design defects as those within classes (intra-class), those among
classes (inter-classes), and those of semantic nature (behavioral).
Then, we introduce guidelines to automate the detection and
correction of inter-class design defects: We assume that design
patterns embody good architectural solutions and that a group of
entities with organization similar, but not equal, to a design
pattern represents an inter-class design defect. Thus, the
transformation of such a group of entities, such that its
organization complies exactly with a design pattern, corresponds to
the correction of an inter-class design defect. We use a meta-model
to describe design patterns and we exploit the descriptions to infer
sets of detection and transformation rules. A constraints solver with
explanations uses the descriptions and rules to recognize groups of
entities with organizations similar to the described design patterns.
A transformation engine modifies the source code to comply with the
recognized distorted design patterns. We apply these guidelines on
the Composite pattern using Ptidej, our prototype tool that
integrates the complete guidelines.}
}
Downloads: 0
{"_id":"kuWJRncEsEzAJXLXo","bibbaseid":"guhneuc-albinamiot-usingdesignpatternsandconstraintstoautomatethedetectionandcorrectionofinterclassdesigndefects-2001","downloads":0,"creationDate":"2018-01-17T20:29:42.626Z","title":"Using Design Patterns and Constraints to Automate the Detection and Correction of Inter-Class Design Defects","author_short":["Gu�h�neuc, Y.","Albin-Amiot, H."],"year":2001,"bibtype":"inproceedings","biburl":"http://www.yann-gael.gueheneuc.net/Work/Publications/Biblio/complete-bibliography.bib","bibdata":{"bibtype":"inproceedings","type":"inproceedings","author":[{"firstnames":["Yann-Ga�l"],"propositions":[],"lastnames":["Gu�h�neuc"],"suffixes":[]},{"firstnames":["Herv�"],"propositions":[],"lastnames":["Albin-Amiot"],"suffixes":[]}],"booktitle":"Proceedings of the 39<sup>th</sup> Conference on the Technology of Object-Oriented Languages and Systems (TOOLS USA)","title":"Using Design Patterns and Constraints to Automate the Detection and Correction of Inter-Class Design Defects","year":"2001","optaddress":"","optcrossref":"","editor":[{"firstnames":["Quioyun"],"propositions":[],"lastnames":["Li"],"suffixes":[]},{"firstnames":["Richard"],"propositions":[],"lastnames":["Riehle"],"suffixes":[]},{"firstnames":["Gilda"],"propositions":[],"lastnames":["Pour"],"suffixes":[]},{"firstnames":["Bertrand"],"propositions":[],"lastnames":["Meyer"],"suffixes":[]}],"month":"July","note":"10 pages.","optnumber":"","optorganization":"","pages":"296–305","publisher":"IEEE CS Press","optseries":"","optvolume":"","keywords":"Topic: <b>Code and design smells</b>, Rubrique : <b>mauvaises pratiques</b>, Conference: TOOLS USA","url":"http://www.ptidej.net/publications/documents/TOOLSUSA01.doc.pdf","pdf":"http://www.ptidej.net/publications/documents/TOOLSUSA01.ppt.pdf","abstract":"Developing code free of defects is a major concern for the object-oriented software community. In this paper, we classify design defects as those within classes (intra-class), those among classes (inter-classes), and those of semantic nature (behavioral). Then, we introduce guidelines to automate the detection and correction of inter-class design defects: We assume that design patterns embody good architectural solutions and that a group of entities with organization similar, but not equal, to a design pattern represents an inter-class design defect. Thus, the transformation of such a group of entities, such that its organization complies exactly with a design pattern, corresponds to the correction of an inter-class design defect. We use a meta-model to describe design patterns and we exploit the descriptions to infer sets of detection and transformation rules. A constraints solver with explanations uses the descriptions and rules to recognize groups of entities with organizations similar to the described design patterns. A transformation engine modifies the source code to comply with the recognized distorted design patterns. We apply these guidelines on the Composite pattern using Ptidej, our prototype tool that integrates the complete guidelines.","bibtex":"@INPROCEEDINGS{Gueheneuc01-TOOLSUSA-DesignDefects,\r\n AUTHOR = {Yann-Ga�l Gu�h�neuc and Herv� Albin-Amiot},\r\n BOOKTITLE = {Proceedings of the 39<sup>th</sup> Conference on the Technology of Object-Oriented Languages and Systems (TOOLS USA)},\r\n TITLE = {Using Design Patterns and Constraints to Automate the \r\n Detection and Correction of Inter-Class Design Defects},\r\n YEAR = {2001},\r\n OPTADDRESS = {},\r\n OPTCROSSREF = {},\r\n EDITOR = {Quioyun Li and Richard Riehle and Gilda Pour and \r\n Bertrand Meyer},\r\n MONTH = {July},\r\n NOTE = {10 pages.},\r\n OPTNUMBER = {},\r\n OPTORGANIZATION = {},\r\n PAGES = {296–305},\r\n PUBLISHER = {IEEE CS Press},\r\n OPTSERIES = {},\r\n OPTVOLUME = {},\r\n KEYWORDS = {Topic: <b>Code and design smells</b>, \r\n Rubrique : <b>mauvaises pratiques</b>, Conference: TOOLS USA},\r\n URL = {http://www.ptidej.net/publications/documents/TOOLSUSA01.doc.pdf},\r\n PDF = {http://www.ptidej.net/publications/documents/TOOLSUSA01.ppt.pdf},\r\n ABSTRACT = {Developing code free of defects is a major concern for \r\n the object-oriented software community. In this paper, we classify \r\n design defects as those within classes (intra-class), those among \r\n classes (inter-classes), and those of semantic nature (behavioral). \r\n Then, we introduce guidelines to automate the detection and \r\n correction of inter-class design defects: We assume that design \r\n patterns embody good architectural solutions and that a group of \r\n entities with organization similar, but not equal, to a design \r\n pattern represents an inter-class design defect. Thus, the \r\n transformation of such a group of entities, such that its \r\n organization complies exactly with a design pattern, corresponds to \r\n the correction of an inter-class design defect. We use a meta-model \r\n to describe design patterns and we exploit the descriptions to infer \r\n sets of detection and transformation rules. A constraints solver with \r\n explanations uses the descriptions and rules to recognize groups of \r\n entities with organizations similar to the described design patterns. \r\n A transformation engine modifies the source code to comply with the \r\n recognized distorted design patterns. We apply these guidelines on \r\n the Composite pattern using Ptidej, our prototype tool that \r\n integrates the complete guidelines.}\r\n}\r\n\r\n","author_short":["Gu�h�neuc, Y.","Albin-Amiot, H."],"editor_short":["Li, Q.","Riehle, R.","Pour, G.","Meyer, B."],"key":"Gueheneuc01-TOOLSUSA-DesignDefects","id":"Gueheneuc01-TOOLSUSA-DesignDefects","bibbaseid":"guhneuc-albinamiot-usingdesignpatternsandconstraintstoautomatethedetectionandcorrectionofinterclassdesigndefects-2001","role":"author","urls":{"Paper":"http://www.ptidej.net/publications/documents/TOOLSUSA01.doc.pdf"},"keyword":["Topic: <b>Code and design smells</b>","Rubrique : <b>mauvaises pratiques</b>","Conference: TOOLS USA"],"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":["using","design","patterns","constraints","automate","detection","correction","inter","class","design","defects","gu�h�neuc","albin-amiot"],"keywords":["topic: <b>code and design smells</b>","rubrique : <b>mauvaises pratiques</b>","conference: tools usa"],"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"]}