Using Contextual Information to Assess Package Cohesion

Ponisio, Maria Laura; Nierstrasz, Oscar (2006). Using Contextual Information to Assess Package Cohesion Universität Bern

[img] Text
Poni06bAlchemistPackageCohesion.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (311kB)

Complex systems are decomposed into cohesive packages with the goal of limiting the scope of changes: if our packages are cohesive, we hope that changes will be limited to the packages responsible for the features we are changing, or at worst the packages that are immediate clients of those features. But how should we measure cohesion? Traditional cohesion metrics focus on the explicit dependencies and interactions between the classes within the package under study. A package, however, may be conceptually cohesive even though its classes exhibit no explicit dependencies. We propose a group of contextual metrics that assess the cohesion of a package based on the degree to which its classes are used together by common clients. We apply these metrics to various case studies, and contrast the degree of cohesion detected with that of traditional cohesion metrics. In particular, we note that object-oriented frameworks may appear not to be cohesive with traditional metrics, whereas our contextual metrics expose the implicit cohesion that results from the framework's clients.

Item Type:

Report (Report)

Division/Institute:

08 Faculty of Science > Institute of Computer Science (INF)
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG) [discontinued]

UniBE Contributor:

Ponisio, Maria Laura, Nierstrasz, Oscar

Subjects:

000 Computer science, knowledge & systems
500 Science > 510 Mathematics

Publisher:

Universität Bern

Language:

English

Submitter:

Anja Ebeling

Date Deposited:

29 Jan 2018 16:14

Last Modified:

11 Apr 2024 16:11

BORIS DOI:

10.7892/boris.104699

URI:

https://boris.unibe.ch/id/eprint/104699

Actions (login required)

Edit item Edit item
Provide Feedback