Home - LucPrestin/Hidden-Modularity GitHub Wiki
Welcome to the Hidden-Modularity wiki! Here, we document the gained insights and further information on the project. Please also have a look at further readings in the sidebar.
Background
Objects and the messages they send to each other are the basis of any object-oriented program. As the size of a program growths, the structure gets less and less comprehensible. The static structure like the inheritance tree or protocol definitions can only poorly, if at all, capture the dynamic behavior of a living object-oriented system. Which objects communicate with one another is hidden.
Research Goal
This project aims at exploring and documenting the main features of Squeak/Smalltalk regarding the communication structure. Furthermore, we want to reveal the modular structure that cross cuts the static structure such as the inheritance tree or protocol definitions. This information is then used to sketch new ideas for new exploratory programming tools.
Methods
A more detailed description of the analysis methods can be found here. Roughly speaking, the workflow consists of five steps:
- Choose a feature
- Define a scenario that describes an aspect of the feature
- Trace the scenario
- Extract and visualize information from the trace
- Document the insights gained
A list of features examined and scenarios traced can be found here. On that page we also describe what is part of the analysis. Roughly speaking, for each scenario we document the following points:
- Scenario description
- Scneario code
- Hypotheses of what we'd expect to see in the visualizations
- Evaluation of the hypotheses
- Further insights we gained unexpectedly (optional)
Used System and Environment
- Squeak version: 6.0-22104-202206021410
- Platform: Linux-x64
Related Work
- The trace debugger is used to trace object communication within Squeak/Smalltalk to gain the data (https://github.com/hpi-swa-lab/squeak-tracedebugger)