Finding and Enforcing Structure in Smalltalk Programs
Roel Wuyts, Programming Technology Lab, VUB
Abstract
The goal if this talk is to present some tools that we have implemented using SOUL (Smalltalk Open Unification Language), a Logic
Meta Programming Language written in, and in tight
symbiosis with, Smalltalk. We have used it to describe
high-level views on top of Smalltalk code, such as UML, design patterns
and programming conventions. SOUL allows to look in a Smalltalk image
for occurrences of such patterns, and can thus be seen as an engine to calculate views from Smalltalk source code.
First of all we will introduce the Structural Finder, an operating system
like find tool that allows users to easily find complicated
structures in source code. For example, by making
selections from some drop-down boxes we can look for
all classes understanding a certain selector, with an instance variable
of type Set and implementing at least one method that does a super send.
Next we want to introduce the tools that allow to enforce design
structures on the implementation. For example, we can
express and enforce programming conventions. When the
user is implementing a method and accepts it, this will
be checked and a warning will be generated if any enforced structure is violated. Important to note is that these tools do not change
any system methods and are situated at the meta-level.
As a result, no special browsers are necessary !
The structure of this talk will be straightforward: we will shortly introduce SOUL and what we have expressed with it (about 10
minutes), then we will introduce the Structural Finder
(about 15 minutes) and we conclude with the
enforcement tool (25 minutes). The remainder of the talk is available
for answering questions
For more information about SOUL, you can visit http://prog.vub.ac.be:8080/SOUL.
You can also visit my home pages at http://prog.vub.ac.be/~rwuyts
to see more information or download research papers
describing some experiments with SOUL or its predecessors. And last but
not least you can send me e-mail at the following address: rwuyts@vub.ac.be.
CodeCrawler - A Hybrid Reverse Engineering Platform
Michele Lanza, Software Composition Group, University of Bern,
Switzerland
Abstract
The steady rise of complexity in current object oriented applications is
putting a heavy strain on developers. Not only are they confronted with
domain-specific problems, it's the sheer amount of information they must
cope with, which makes program understanding a difficult yet very necessary
topic: you can't change and ameliorate a subject system without a deep and
thorough knowledge of the inner logic of a system. This step of gaining
knowledge about the system has been termed "reverse engineering".
Often the only tangible part of a system is the source code itself and
perhaps a documentation of some sort. Yet this is seldom enough to gain a
quick and correct overview of a system.
There are ways to cope with the problems mentioned above. Two of the most
promising are metrics and visualisation. Metrics can help us to assess the
quality and size of a system, while visualisation can give us new views on
the system.
In my talk I will present a combination of those two aspects: the
scalability of metrics and the intuitivity of visualisation have been
integrated in CodeCrawler, a language-independent reverse engineering tool
written in Smalltalk.
CodeCrawler can display object oriented entities and their relationships
in a display which can be interactively manipulated. The displayed graphs
help developers to gain insights and new views on software systems.
With the combination of metrics, visualisation and interaction
CodeCrawler has two main targets: software understanding and problem
detection.
The talk will focus on the simplicity of the approach and includes also
an online demo.
The CodeCrawler home page is http://www.iam.unibe.ch/~lanza/codecrawler/codecrawler.html.
The Classification Browser
Koen De Hondt, MediaGeniX
Abstract
The Smalltalk browsers in use today are roughly the same as the browsers
that came with the introduction of Smalltalk some 20 years ago. Those
browsers are not geared towards today's software development needs. They
lack basic support for framework development because they are too class-centered;
they have limited support to organize classes, so that multiple views on
software are impossible; they do not provide support to solve the
lost-in-hyperspace phenomenon when browsing large amounts of source code;
they do not support the management of changes, an important issue in
software development today; and finally current browsers are not designed as
frameworks, which makes it very difficult to extend or adapt them.
The Classification Browser is based on a general model to organize
software entities, called the Software Classification Model. Classifications
can be considered enhanced categories with which classes can be grouped in
arbitrary, user-defined ways. Apart from the support for organizing software
entities, the Classification browser also provides integrated support for
browsing senders and implementers, and for browsing acquaintance
relationships. Classes and methods can be viewed in different ways, so that
the developer can choose the most appropriate way of browsing for a given
browsing/development activity.
The browser supports the refactorings provided by the Refactoring
Browser, it can be used for reverse engineering; and it is able to produce
UML diagrams. Very important in the design of the Classification Browser is
that it is a framework. The browser is composed of browser components that
fit in the framework. Each component is a page in one of the notebooks of
the browser. As a result, it is easy to add extra functionality to the
Classification Browser. In its current form, the Classification Browser
includes Duploc, Smalllint, and classifications based on SOUL (see the
Smalltalk archives for these tools).
The current version of the Classification Browser is an enhanced version
of the one presented and demonstrated at the ESUG'99 User's Conference. It
will be made public at the end of January. You can have a sneak preview on
the Software Classification Pages: http://www.classification.yucom.be.
Cincom Smalltalk (tm) Strategy
Helge Nowak, International Consultant, Cincom
Abstract
No abstract received.
New Year Speech by the Chairman of the BSUG
Read the new year's speech of the BSUG
chairman, David Grietens.
|