Download presentation
Presentation is loading. Please wait.
1
The Software Composition Group Prof. O. Nierstrasz www.iam.unibe.ch/~scg/
2
© O. Nierstrasz The Software Composition Group 13.2 Research Mission “How can we construct software systems so that they can be easily adapted to changing requirements?” Research Axes: —Language design — software composition —Reengineering — tools and techniques
3
© O. Nierstrasz The Software Composition Group 13.3 Solutions (I) Make programming languages more amenable to change —Piccola — Applications = Components + Scripts —Traits — fine-grained composition of classes —Classboxes — coarse-grained management of change —Changeboxes — manage the scope of change + meta-programmable languages, component models …
4
© O. Nierstrasz The Software Composition Group 13.4 Traits in a nutshell Traits are parameterized behaviors —Traits provide a set of methods ( ) —Traits require a set of methods ( ) —Traits do not specify any state TCircle radius radius: center center: area bounds circumference diameter hash
5
© O. Nierstrasz The Software Composition Group 13.5 Using Traits to Compose Classes ColoredCircle Visual TCircle TColor Class = Superclass + State + Traits + Glue methods Class = Class = Superclass Class = Superclass + State Class = Superclass + State + Traits rgbradiuscenter The composing class retains control of the composition.
6
© O. Nierstrasz The Software Composition Group 13.6 Classboxes MorphCB Morph repaint paint Button new repaint Button... self paint... NewMorphCB paint import Button new repaint Button class extension Morph “new implementation” Extensions in classboxes are locally rebound
7
© O. Nierstrasz The Software Composition Group 13.7 Changeboxes Model change as a first-class entity Control the scope of change in a running system Analyze past change and assess impact of future change
8
© O. Nierstrasz The Software Composition Group 13.8 Solutions (II) Support modeling, understanding and transformation of software —MOOSE — language-independent reengineering —CodeCrawler — software metrics and visualization —Van — analyzing application evolution —ConAn — detecting implicit contracts with FCA + analysis of software evolution, modularity …
9
© O. Nierstrasz The Software Composition Group 13.9 Moose Smalltalk (VW) Moose (Repository for software entities) CodeCrawler Ada Smalltalk Java C++ CDIF COBOL XML SNiFF + Parser Navigation Metrics Querying Evolution Analysis ConAn Python, etc. Van... Columbus
10
© O. Nierstrasz The Software Composition Group 13.10 The Evolution Matrix — Example
11
© O. Nierstrasz The Software Composition Group 13.11 Van How class hierarchies evolve
12
© O. Nierstrasz The Software Composition Group 13.12 Chronia How developers change files
13
© O. Nierstrasz The Software Composition Group 13.13 Projects Student projects & Masters projects —www.iam.unibe.ch/~scg/www.iam.unibe.ch/~scg/ [Caveat — never up-to-date!] —Come and talk to us!
14
© O. Nierstrasz The Software Composition Group 13.14 License > http://creativecommons.org/licenses/by-sa/2.5/ Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.