-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
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.
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.
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)
- Squeak version: 6.0-22104-202206021410
- Platform: Linux-x64
- The trace debugger is used to trace object communication within Squeak/Smalltalk to gain the data (https://github.com/hpi-swa-lab/squeak-tracedebugger)
- Home
- Analysis Methods
-
Scenarios
- Closing a System Browser with Mouse Events
- Comparison of Mouse Down Handling Methods
- Fetching the Google Website
- Handling a Division by Zero Exception
- Layouting a System Browser Window
- Opening a Morph in the World
- Opening a System Browser via Workspace
- Opening an Object Explorer
- Text Editing in a Workspace
- Spikes
- Tooling Ideas
- Future Work