• DocumentCode
    650688
  • Title

    How We Design Interfaces, and How to Assess It

  • Author

    Abdeen, Hani ; Sahraoui, Houari ; Shata, Osama

  • Author_Institution
    Dept. of Comput. Sci. Eng., Qatar Univ., Doha, Qatar
  • fYear
    2013
  • fDate
    22-28 Sept. 2013
  • Firstpage
    80
  • Lastpage
    89
  • Abstract
    Interfaces are widely used in Java applications as central design elements for modular programming to increase program reusability and to ease maintainability of software systems. Despite the importance of interfaces and a considerable research effort that has investigated code quality and concrete classes\´ design, few works have investigated interfaces\´ design. In this paper, we empirically study interfaces\´ design and its impact on the design quality of implementing classes (i.e., class cohesion) analyzing twelve Java object-oriented applications. In this study we propose the "Interface-Implementations Model" that we use to adapt class cohesion metrics to assess the cohesion of interfaces based on their implementations. Moreover, we use other metrics that evaluate the conformance of interfaces to the well-known design principles "Program to an Interface, not an implementation" and "Interface Segregation Principle". The results show that software developers abide well by the interface design principles cited above, but they neglect the cohesion property. The results also show that such design practices of interfaces lead to a degraded cohesion of implementing classes, where these latter would be characterized by a worse cohesion than other classes.
  • Keywords
    Java; object-oriented programming; software maintenance; software quality; software reusability; user interfaces; Java applications; code quality; interface design; interface segregation principle; modular programming; object-oriented applications; program reusability; software development; software system maintainability; Abstracts; Complexity theory; Concrete; Correlation; Java; Measurement; Software; Cohesion; Empirical Study; Interface Design Principles; Interface Segregation Principle; Interfaces; Object-Oriented; Program to an Interface Principle;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2013 29th IEEE International Conference on
  • Conference_Location
    Eindhoven
  • ISSN
    1063-6773
  • Type

    conf

  • DOI
    10.1109/ICSM.2013.19
  • Filename
    6676879