220 likes | 457 Views
Exploiting Classification for Software Evolution. Koen De Hondt and Patrick Steyaert. Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com. www.mediagenix.com. Context. Large software system for broadcast management More than 2000 classes Object-oriented framework
E N D
Exploiting Classificationfor Software Evolution Koen De Hondt and Patrick Steyaert Koen.DeHondt@mediagenix.com Patrick Steyaert@mediagenix.com www.mediagenix.com
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
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 Model: Classifications 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 Configuration maps Protocol Senders User-defined classification 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
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 Method Tagging ECOOP 2000 Workshop on Objects and Classification: a Natural Convergence
Method Tagging Dialog Site (customer) Developer Framework Module Development task Development task specifics 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 ObjectCollaborations m [x] Participant A Participant B x [p] m p x a b 4 • Browsing restricted to a classification • Browsing senders and implementers • Browsing acquaintances • Classification of classes as participants, methods, acquaintances, acquaintance classes • Conversion of classification to collaboration contract Participant A Participant B m p x a b 3 Participant A Participant B m p x 2 Class A Class B 1 A B 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 • Software.Classification@advalvas.be • 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 ECOOP 2000 Workshop on Objects and Classification: a Natural Convergence