Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

    O. Shata

    Research Interests:
    Research Interests:
    Abstract: The International Center of Excellence in Software Engineering (ICESE) is a multifaceted center that aims at establishing active programs in research, outreach, and education. The significance of this center relies on its goal... more
    Abstract: The International Center of Excellence in Software Engineering (ICESE) is a multifaceted center that aims at establishing active programs in research, outreach, and education. The significance of this center relies on its goal of bringing together on a tightly coupled fashion, and on a weekly or bi weekly basis through virtual meeting environments, researches from the Arab world and international researchers to work on projects that advance the state of the art in software engineering. The center focuses on applying ...
    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... more
    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.