High Level Views in Object-Oriented Systems using Formal Concept Analysis

Arévalo, Gabriela (2005). High Level Views in Object-Oriented Systems using Formal Concept Analysis. (Dissertation, University of Bern, Philosophisch-naturwissenschaftliche Fakultät)

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

Download (4MB)

Within object-oriented systems there are different meaningful dependencies between different objects. These dependencies reveal ``contracts", ``collaborations" and ``relationships" between classes, methods, packages and any development unit in the systems. In most of the cases, these dependencies are not explicit in the code. This problem is due to inadequate or out-of-date documentation and mechanisms such as dynamic binding, inheritance and polymorphism that obscure the presence of existing dependencies. These dependencies play an important part in implicit contracts between the various software artifacts of the system. It is therefore essential that a developer, who has to make changes or extensions to an object-oriented system, understands the dependencies among the classes. Lack of understanding increases the risk that seemingly innocuous changes break the implicit existing contracts in the system. In short, implicit, undocumented dependencies lead to ``fragile systems" that are difficult to extend or modify correctly. In this thesis we develop an approach —- based on a methodology and a tool support —- to recover this implicit information and generate ``high-level views" of a system at different abstraction levels, using a formal clustering technique called Formal Concept Analysis (FCA). With these views, we help to build the first mental model of a system. Thus the implicit or lost information is made explicit and we are able to find uses of coding styles, possible bottlenecks and weakpoints of a system, identify eventual contracts between the entities, ``patterns" based on the dependencies and —- if possible —- propose possible solutions to correct problems in the code. With this approach we also evaluate which are the advantages and disadvantages of using a clustering technique in software reverse engineering

Item Type:

Thesis (Dissertation)

Division/Institute:

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

Language:

English

Submitter:

Anja Ebeling

Date Deposited:

29 Jan 2018 16:43

Last Modified:

11 Apr 2024 16:11

BORIS DOI:

10.7892/boris.104376

URI:

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

Actions (login required)

Edit item Edit item
Provide Feedback