Prof. Judith Bishop University of Pretoria South Africa Presented by Kathrin Berg Ro-SC-tor Software Construction within Rotor.

Download Report

Transcript Prof. Judith Bishop University of Pretoria South Africa Presented by Kathrin Berg Ro-SC-tor Software Construction within Rotor.

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 Feb May 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 aspect orientation”  “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  3 Software Construction courses presented at the 2 universities Students  80 students used and examined Rotor Views  partially documented using documentation tools available Rotor  considerable experience, but less of the documentation

Outcomes (2) - Software

 A methodology for retargeting APIs   Rewrote Views as a front and back end – Views/Qt Retargetted the backend to Rotor  Project completed, being extended for other APIs  A port of Views/Qt to Linux - student project   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 2

nd

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/