Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert...

22
Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix. com Patrick www.mediagenix.com

Transcript of Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert...

Page 1: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

Exploiting Classificationfor Software Evolution

Koen De Hondt and Patrick Steyaert

[email protected] [email protected]

www.mediagenix.com

Page 2: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@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

Page 3: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 4: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 5: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 6: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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)

Page 7: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Classification Browser

Page 8: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 9: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 10: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 11: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 12: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Video: Method Tagging

Page 13: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Tag Classifications in Browser

Page 14: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Video: Tag Classifications in Browser

Page 15: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 16: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 17: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Results of Discovery

• Classification Browser acts as collaboration contract browser

• Translation to UML

Page 18: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Discovery of Components

Page 19: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Management of Changes

Page 20: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

ECOOP 2000 Workshop on Objects and Classification: a

Natural Convergence

Classifications in a Spreadsheet

Page 21: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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

Page 22: Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com .

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