Hostname: page-component-cd9895bd7-dzt6s Total loading time: 0 Render date: 2024-12-26T20:57:21.479Z Has data issue: false hasContentIssue false

Does CAD Smell Like Code? A Mapping Between Violation of Object Oriented Programming Design Principles and Computer Aided Design Modelling

Published online by Cambridge University Press:  26 May 2022

P. Rosso*
Affiliation:
University of Bristol, United Kingdom
J. Gopsill
Affiliation:
University of Bristol, United Kingdom Centre for Modelling & Simulation, United Kingdom
S. C. Burgess
Affiliation:
University of Bristol, United Kingdom
B. Hicks
Affiliation:
University of Bristol, United Kingdom

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

In objected-oriented design, "smells" are symptoms of code violating design principles. When a deadline is looming, decisions can affect the long-term quality of a code or CAD. Given this and the similarities between object-oriented code and CAD models, this paper introduces a set of CAD smells. These smells are derived from a top-down review of potential CAD smells mapped against the reported code smells that violate abstraction, modularity, encapsulation, and hierarchy principles. This list was further reviewed considering CAD systems and specific examples (some illustrated in the paper).

Type
Article
Creative Commons
Creative Common License - CCCreative Common License - BYCreative Common License - NCCreative Common License - ND
This is an Open Access article, distributed under the terms of the Creative Commons Attribution-NonCommercial-NoDerivatives licence (http://creativecommons.org/licenses/by-nc-nd/4.0/), which permits non-commercial re-use, distribution, and reproduction in any medium, provided the original work is unaltered and is properly cited. The written permission of Cambridge University Press must be obtained for commercial re-use or in order to create a derivative work.
Copyright
The Author(s), 2022.

References

Beck, K., Fowler, M., Beck, G., 1999. Bad smells in code, in: Refactoring: Improving the Design of Existing Code. pp. 7588.Google Scholar
Booch, G., Maksimchuk, R.A., Engle, M.W., Young, B.J., Connallen, J., Houston, K.A., 2008. Object-oriented analysis and design with applications, third edition. 10.1145/1402521.1413138CrossRefGoogle Scholar
Camba, J., Contero, M., Company, P., Hartman, N., 2020. The Cost of Change in Parametric Modeling: A Roadmap. Comput.-Aided Des. Appl. 18, 634643. 10.14733/cadaps.2021.634-643Google Scholar
Camba, J., Contero, M., Johnson, M., Company, P., 2014. Extended 3D annotations as a new mechanism to explicitly communicate geometric design intent and increase CAD model reusability. Comput.-Aided Des. 57, 6173. 10.1016/j.cad.2014.07.001CrossRefGoogle Scholar
Camba, J.D., Contero, M., Company, P., 2017. CAD Reusability and the Role of Modeling Information in the MBE Context 54.Google Scholar
Camba, J.D., Contero, M., Company, P., Pérez-López, D., Otey, J., 2018. Identifying High-Value CAD Models: An Exploratory Study on Dimensional Variability As Complexity Indicator. Presented at the ASME 2018 13th International Manufacturing Science and Engineering Conference, American Society of Mechanical Engineers Digital Collection. 10.1115/MSEC2018-6391Google Scholar
Dimarogonas, AD ,. Author, Lewis, G.,. Reviewer, 2001. Machine Design: A CAD Approach. Appl. Mech. Rev. 54, B65B68. 10.1115/1.1383679Google Scholar
Fowler, M., 2018. Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional.Google Scholar
Gerbino, S., 2003. Tools for the Interoperability among CAD Systems, in: Undefined. p. 13.Google Scholar
González-Lluch, C., Company, P., Contero, M., Camba, J.D., Plumed, R., 2017. A survey on 3D CAD model quality assurance and testing tools. Comput.-Aided Des. 83, 6479. 10.1016/j.cad.2016.10.003Google Scholar
Gunduz, M., Yetisir, T., 2018. A design reuse technology to increase productivity through automated corporate memory system. Neural Comput. Appl. 29, 609617. 10.1007/s00521-016-2586-zGoogle Scholar
Highsmith, J., 2009. Zen and the art of software quality. Presented at the Agile 2009 Conference.Google Scholar
ISO, 2006. ISO/PAS 26183:2006 SASIG Product data quality guidelines for the global automotive industry (No. ISO/PAS 26183:2006 SASIG).Google Scholar
Jackson, C., Buxton, M., 2007. The Design Reuse Benchmark Report: Seizing the Opportunity to Shorten Product Development. Aberdeen Group.Google Scholar
Jackson, C., Prawel, D., 2013. The 2013 state of 3D collaboration and interoperability report, Lifestyle Insights and Longview Advisors.Google Scholar
Kim, Junhwan, Pratt, Michael J., Iyer, Raj G., Sriram, Ram D., 2008. Standardized data exchange of CAD models with design intent. Comput.-Aided Des. 40, 760777. 10.1016/J.CAD.2007.06.014CrossRefGoogle Scholar
Karsenty, L., 1996. An empirical evaluation of design rationale documents, in: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. Association for Computing Machinery, New York, NY, USA, pp. 150156.Google Scholar
Kasik, D.J., Buxton, W., Ferguson, D.R., 2005. Ten CAD Challenges. IEEE Comput. Graph. Appl. 25, 8192. 10.1109/MCG.2005.48Google ScholarPubMed
McKenney, D., 1998. Model quality: the key to CAD/CAM/CAE interoperability. Int. TechneGroup Inc. Milford OH.Google Scholar
Nickerson, R.C., Varshney, U., Muntermann, J., 2013. A method for taxonomy development and its application in information systems. Eur. J. Inf. Syst. 22, 336359. 10.1057/ejis.2012.26CrossRefGoogle Scholar
Omair, B., Alturki, A., 2020. An Improved Method for Taxonomy Development in Information Systems. Int. J. Adv. Comput. Sci. Appl. 11. 10.14569/IJACSA.2020.0110470Google Scholar
Otey, J., Company, P., Contero, M., Camba, J.D., 2018. Revisiting the design intent concept in the context of mechanical CAD education. Comput.-Aided Des. Appl. 15, 4760. 10.1080/16864360.2017.1353733CrossRefGoogle Scholar
Regli, W.C., Hu, X., Atwood, M., Sun, W., 2000. A survey of design rationale systems: Approaches, representation, capture and retrieval. Eng. Comput. 16, 209235. 10.1007/PL00013715Google Scholar
Rosso, P., Gopsil, J., Hicks, B., Burgess, S., 2020. Investigating and characterising variability in CAD modelling: An overview, in: Conference and, CAD Exhibition. CAD Solutions, LLC, pp. 226–230. 10.14733/cadconfp.2020.226-230Google Scholar
Rosso, P., Gopsill, J., Burgess, S., Hicks, B., 2021. Investigating and Characterising Variability in CAD Modelling and its Potential Impact on Editability: An Exploratory Study. Comput.-Aided Des. Appl. 18, 13061326. 10.14733/cadaps.2021.1306-1326Google Scholar
Suryanarayana, G., Samarthyam, G., Sharma, T., 2014. Refactoring for software design smells: managing technical debt.Google Scholar
Voelcker, H., Requicha, A., 1977. Constructive Solid Geometry.Google Scholar
Warman, E.A., 1990. Object Oriented Programming and CAD. J. Eng. Des. 1, 3746. 10.1080/09544829008901641CrossRefGoogle Scholar
Yang, J., Han, S., Kang, H., Kim, J., 2006. Product data quality assurance for e-manufacturing in the automotive industry. Int. J. Comput. Integr. Manuf. 19, 136147. 10.1080/09511920500171261CrossRefGoogle Scholar
You, C.F., Tsai, Y.L., 2010. 3D solid model retrieval for engineering reuse based on local feature correspondence. Int. J. Adv. Manuf. Technol. 46, 649661. 10.1007/s00170-009-2113-9CrossRefGoogle Scholar
Yu, J., Cha, J., Lu, Y., 2012. Design synthesis approach based on process decomposition to design reuse. J. Eng. Des. 23, 526543. 10.1080/09544828.2011.629316Google Scholar