Prof. Judith Bishop University of Pretoria South Africa Presented by Kathrin Berg Ro-SC-tor Software Construction within Rotor.
Download ReportTranscript 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/