Prof. Judith Bishop
University of Pretoria
South Africa
Presented by
Kathrin Berg
Ro-SC-tor
Software Construction within Rotor
Background
Software construction recognizes the importance
of choosing the right programming techniques to
achieve acceptable levels of




performance
maintainability
reusability
Someone involved in software construction would
be an expert on


alternative constructs provided by programming
languages, libraries and software systems
techniques which can be employed to render a huge
system understandable
Objectives of RoSCtor

To raise the profile of Rotor as a product by
tackling the documentation of Rotor’s
components

Outputs would include




the documentation
assessment of the inside construction of the system
recommendations for new ports of Rotor
courseware
Project Members

Prof. Judith Bishop

Research Assistants (Polelo research group)



John Müller
Basil Worrall
Fourth year students at


University of Pretoria
University of Karlsruhe
Project Detail

Groups of students to

study and report on the construction of individual
components, and develop documentation online

Understanding and documenting a large system
would be a considerable challenge

To ease the task of tackling Rotor, students would
be exposed to other, better known systems

our own Views system (written under a Rotor-RFP
grant)
Courses (1)

The research part of this project was based on
two new courses which have been set up at the
universities of Pretoria (South Africa) and
Karlsruhe (Germany).

Pretoria: SWC780 Software Construction for fourth year
computer scientists and computer engineers from FebMay and Aug-Nov 2004

Karlsruhe: IRA310 Software Construction in the .NET
Environment for third and fourth year computer
scientists from May-July 2004
Courses (2)

The following is an outline of the course:

Object representation and behaviour – introducing C#

Type systems – advanced issues and examples from Eiffel, Python, Skala and others

Multilingual programming – introducing the .NET framework and its architecture

The shared source CLI initiative and Rotor

Linking components – using XML in Views and web services

Issues of security – assemblies and memory management

Types from types – extension, specialization, generics, metadata and reflection

Libraries and how to control them – back to Java

Documenting large systems – use of Doxygen

Case studies – inside Views and Rotor
Sample Assignments

“Create sample applications using Views on Rotor”

“Document Views and parts of Rotor”

“Refactor existing systems using aspectorientation”

“Implement generics in a sample application”
Student Results

“I have learnt that developers need to document their
choices (i.e. the concepts, constructs and structures)”

“I have gained knowledge of the .NET platform and its
libraries and have analysed the use of assemblies,
metadata and reflection, especially with multiprogramming
in the .NET environment”

“During this project I was introduced to a whole new
programming paradigm, which opened my eyes to the
existence of the possibility of implementing programming
solutions differently and more efficiently”

“I have been introduced to concepts such as generics for
the first time”
Emerging Interest in Aspects

Emerged from looking at large systems and
documenting them

Aspects would have helped!

Students wrote programs using Aspect systems
written for C# (not Java)



investigated several C# AOP systems, - many did not
work
attribute plug for VS was successful
best system was EOS from U. Virginia
Student Comments

“I liked hearing about many new technologies”

“Having guest lecturers such as Damien Watkins is
great”

“We should have more practical courses like this”

“It was interesting to learn about aspects and generics”

“I liked learning about .NET in an academic setting with
a critical view on the system and design choices”
Collaboration

Walter Tichy (University of Karlsruhe) initiated the
course. It was


the first .NET course at that university
the first new non-Java course for a while

Damien Watkins (Microsoft Research, Cambridge) gave
guest lectures

Bertrand Meyer (ETH Zürich) spoke on his Eiffel for .NET
project

Nigel Horspool (University of Victoria, Canada) who
wrote the Views system and co-authored the C# Concisely
book, participated on a consultative basis
Outcomes (1)

Courses


Students


80 students used and examined Rotor
Views


3 Software Construction courses presented at the 2
universities
partially documented using documentation tools
available
Rotor

considerable experience, but less of the documentation
Outcomes (2) - Software

A methodology for retargeting APIs




A port of Views/Qt to Linux - student project



Rewrote Views as a front and back end – Views/Qt
Retargetted the backend to Rotor
Project completed, being extended for other APIs
Based on Mono loaded on SourceForge
Project completed, needs packaging and updating
A new reflective system

Mirrors system applies reflection to create a dynamic
version of Views on .NET 2.0
Outcomes (3) - Mirrors Shines!

Developed by David-John Miller (third year
student, Polelo research assistant)

Came 2nd in the Microsoft South Africa Developer
Competition on .NET 2.0
Outcomes (4) - Papers

Judith Bishop and Basil Worrall, Towards platform
interoperability: retargeting a GUI library on .NET. Proc. 3rd
Conference on .NET Technologies, pp. 23-33, Plzen, Czech, May 2005

Judith Bishop, Nigel Horspool and Basil Worrall, Experience in
integrating Java with C# and .NET, Concurrency and
Computation: Practice and Experience, 17 pp. 663-680, June 2005

Judith Bishop and Nigel Horspool, Developing Principles of GUI
Programming Using Views. Proc. of the 35th SIGCSE Technical
Symposium on Computer science education, pp. 373-377, Norfolk,
USA, March 2004.
Conclusions

RoSCtor stirred up interest in the use of Rotor (and .NET)

More software and paper outcomes than were anticipated
during the year of operation

Not as much documentation as aimed for

Future


Retargetting projects continuing
Courses being packaged for re-use
http://polelo.cs.up.ac.za/rosctor/
Descargar

Slide 1