Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Patrick
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 Browser Class 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 Developer Site (customer) Development task Development task specifics Module Framework Free text field Time 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 Object Collaborations 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 AClass B AB Participant AParticipant B mpmp x a b Participant AParticipant B mpmp x Participant AParticipant B mpmp x a b m [x] x [p]
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 Consult the Software Classification Pages – 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