exploiting classification for software evolution koen de hondt and patrick steyaert...
TRANSCRIPT
Exploiting Classificationfor Software Evolution
Koen De Hondt and Patrick Steyaert
[email protected] [email protected]
www.mediagenix.com
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Context
• Large software system for broadcast management• More than 2000 classes• Object-oriented framework• Customizations for several customers• Continuous evolution• Smalltalk, Envy/Developer• > 10 developers
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Statement
• Software classification provides two crucial ingredients in managing software evolution:– Ability to trace past activities
– Ability to capture emergent patterns
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Software Classification Model
• Classification– Container for items
– Has a structure that expresses the relationships among the items
– Some classifications are restricted to one kind of item; other classifications have no restrictions
• Item– An entity that is tangible in the SDE
– Can reside in multiple classifications
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Model: Classifications
• Virtual classification– All classes
– Smalltalk category
– Envy application
– All Envy applications
– All Envy application editions
– Envy configuration map
– Protocol
– … (extensible)
• Computed classification– Senders/implementers– Tag classification– SOUL classification– Smalllint classification– Rewrite Tool classification– … (extensible)
• Collaboration contract• User-defined
classification
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Model: Items
• Class• Envy class extension• Envy shadow class• Class view (or participant)• Method• Classification (wrapped as an item)
• … (extensible)
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Classification Browser
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Items in Classification BrowserClass extension
Method
All application editions
Application edition
All loaded applications
Protocol
Senders
User-defined classification
Configuration maps
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Classification Strategies
• Manual classification• Virtual classification• Classification with advanced navigation tools• Classification through software tagging
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Method Tagging
• All methods are tagged with information about the development task that is being performed
• The tagging information is provided once per development task
• Tags are processed later– For change management
– For statistical purposes
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Method Tagging Dialog
DeveloperSite (customer)
Development task Development task specifics
Module
Framework
Free text fieldTime stamp
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Video: Method Tagging
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Tag Classifications in Browser
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Video: Tag Classifications in Browser
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Applications of Software Classification
• Multiple views on software• User-defined software organization
• Discovery of object collaborations• Discovery of components• Management of changes
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Discovery of ObjectCollaborations
1. Browsing restricted to a classification
2. Browsing senders and implementers
3. Browsing acquaintances
4. Classification of classes as participants, methods, acquaintances, acquaintance classes
5. Conversion of classification to collaboration contract
Class A Class B
A B
Participant A Participant Bmp x
a b
Participant A Participant Bmp x
Participant A Participant Bmp x
a b
m [x]
x [p]
1
2
3
4
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Results of Discovery
• Classification Browser acts as collaboration contract browser
• Translation to UML
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Discovery of Components
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Management of Changes
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Classifications in a Spreadsheet
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
Conclusion
• Software classification provides the two crucial ingredients in managing software evolution:– Ability to trace past activities
– Ability to capture emergent patterns
• How?– Classification model
– Classification strategies, in particular classification through software tagging
– Classification Browser
ECOOP 2000 Workshop on Objects and Classification: a
Natural Convergence
More Information
• Send mail to– [email protected]
• Consult the Software Classification Pages– http://www.classification.yucom.be/
• Read my Ph.D. thesis– “A Novel Approach to Architectural Recovery in
Evolving Object-Oriented Systems”, VUB 1998
– See the download section of the Software Classification Pages