Ontology-Assisted Structural Design Flaw Detection of Object-Oriented Software

  • Sakorn MekruksavanichEmail author
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 807)


A design flaw is indicative of a potential shortcoming in the construction of a software system and can result in a reduction in the quality of the software. This study offers a means of detecting design flaws through the use of ontology-assisted flaw description and declarative meta programming. Ontology flaw structures are used to describe the flaw domains, while the use of a declarative-based method allows the design flaws which arise within an object-oriented system to be altered into these structures, thereby permitting their detection at the metalevel when declarative meta programming is employed. This research uses the method described in order to detect a number of design flaws which are already well-documented. The findings demonstrate that the method is successful in detecting those flaws, and that structural design flaw detection is particularly effective.


Design flaws Detection Object-oriented design Ontology 



This research received funding from University of Phayao (Project No. RD60037) and was supported in part by the School of Information and Communication Technology, University of Phayao, Thailand.


  1. 1.
    Brown, W.J., Malveau, R.C., McCormick III, H.W., Mowbray, T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley, New York (1998)Google Scholar
  2. 2.
    Coad, P., Yourdon, E.: Object-Oriented Analysis, 2nd edn. Yourdon Press, UpperSaddle River (1991)Google Scholar
  3. 3.
    Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Boston (1999)Google Scholar
  4. 4.
    Mantyla, M., Vanhanen, J., Lassenius, C.: A Taxonomy and an Initial Empirical Study of Bad Smells in Code, pp. 381–384 (2003)Google Scholar
  5. 5.
    Mens, T., Wuyts, R., De Volder, K., Mens, K.: Declarative meta programming to support software development: Workshop report. SIGSOFT Softw. Eng. Notes 28(2), 1 (2003)CrossRefGoogle Scholar
  6. 6.
    Moha, N., Gueheneuc, Y.G., Duchien, L., Le Meur, A.F.: Decor: a method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36(1), 20–36 (2010)CrossRefGoogle Scholar
  7. 7.
    Noy, N.F., McGuinness, D.L.: Ontology Development 101: A Guide to Creating Your First Ontology. Online (2001)Google Scholar
  8. 8.
    Riel, A.J.: Object-Oriented Design Heuristics, 1st edn. Addison-Wesley Longman Publishing Co. Inc, Boston (1996)Google Scholar
  9. 9.
    Stuckenschmidt, H., Klein, M.: Reasoning and change management in modular ontologies. Data Knowl. Eng. 63(2), 200–223 (2007)CrossRefGoogle Scholar
  10. 10.
    Webster, B.F.: Pitfalls of object-oriented development. M T (1995)Google Scholar
  11. 11.
    Wheeler, D.A., Brykczynski, B., Meeson Jr., R.N. (eds.): Software Inspection: An Industry Best Practice for Defect Detection and Removal, 1st edn. IEEE Computer Society Press, Los Alamitos (1996)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Department of Computer Engineering, School of Information and Communication TechnologyUniversity of PhayaoPhayaoThailand

Personalised recommendations