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

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

Embed Size (px)

Citation preview

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

Ro-SC-torRo-SC-torSoftware Construction within RotorSoftware Construction within Rotor

Prof. Judith BishopProf. Judith Bishop

University of PretoriaUniversity of Pretoria

South AfricaSouth Africa

Presented byPresented by

Kathrin BergKathrin Berg

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

BackgroundBackground

Software constructionSoftware construction recognizes the recognizes the importance of choosing the right importance of choosing the right programming techniques to achieve programming techniques to achieve acceptable levels ofacceptable levels of performanceperformance maintainabilitymaintainability reusabilityreusability

Someone involved in software construction Someone involved in software construction would be an would be an expertexpert on on alternative constructs provided by programming alternative constructs provided by programming

languages, libraries and software systemslanguages, libraries and software systems techniques which can be employed to render a techniques which can be employed to render a

huge system understandable huge system understandable

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

Objectives of RoSCtorObjectives of RoSCtor

To raise the profile of Rotor as a product by To raise the profile of Rotor as a product by tackling the tackling the documentationdocumentation of Rotor’s of Rotor’s componentscomponents

OutputsOutputs would include would include the documentationthe documentation assessment of the inside construction of the assessment of the inside construction of the

systemsystem recommendations for new ports of Rotorrecommendations for new ports of Rotor coursewarecourseware

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

Project MembersProject Members

Prof. Judith BishopProf. Judith Bishop

Research Assistants (Polelo research group)Research Assistants (Polelo research group) John MüllerJohn Müller Basil WorrallBasil Worrall

Fourth year students at Fourth year students at University of PretoriaUniversity of Pretoria University of KarlsruheUniversity of Karlsruhe

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

Project DetailProject Detail

Groups of students toGroups of students to studystudy and and reportreport on the construction of individual on the construction of individual

components, and develop documentation onlinecomponents, and develop documentation online

Understanding and documenting a large Understanding and documenting a large system would be a system would be a considerable challengeconsiderable challenge

To ease the task of tackling Rotor, students To ease the task of tackling Rotor, students would be exposed to other, better known would be exposed to other, better known systemssystems our own our own ViewsViews system (written under a Rotor-RFP system (written under a Rotor-RFP

grant)grant)

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

Courses (1)Courses (1)

The research part of this project was based The research part of this project was based on two on two new coursesnew courses which have been set which have been set up at the universities of Pretoria (up at the universities of Pretoria (South South AfricaAfrica) and Karlsruhe () and Karlsruhe (GermanyGermany).).

Pretoria: SWC780 Software Construction for Pretoria: SWC780 Software Construction for fourth year computer scientists and computer fourth year computer scientists and computer engineers from Feb-May and Aug-Nov 2004engineers from Feb-May and Aug-Nov 2004

Karlsruhe: IRA310 Software Construction in Karlsruhe: IRA310 Software Construction in the .NET Environment for third and fourth year the .NET Environment for third and fourth year computer scientists from May-July 2004computer scientists from May-July 2004

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

Courses (2)Courses (2)

The following is an outline of the course:The following is an outline of the course:

Object representation and behaviourObject representation and behaviour – introducing C# – introducing C#

Type systemsType systems – advanced issues and examples from Eiffel, Python, Skala and – advanced issues and examples from Eiffel, Python, Skala and othersothers

Multilingual programmingMultilingual programming – introducing the .NET framework and its architecture – introducing the .NET framework and its architecture

The shared source CLI initiative and RotorThe shared source CLI initiative and Rotor

Linking componentsLinking components – using XML in Views and web services – using XML in Views and web services

Issues of securityIssues of security – assemblies and memory management – assemblies and memory management

Types from typesTypes from types – extension, specialization, generics, metadata and reflection – extension, specialization, generics, metadata and reflection

Libraries and how to control themLibraries and how to control them – back to Java – back to Java

Documenting large systemsDocumenting large systems – use of Doxygen – use of Doxygen

Case studiesCase studies – inside Views and Rotor – inside Views and Rotor

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

Sample AssignmentsSample Assignments

““Create sample applications using Views on Create sample applications using Views on Rotor”Rotor”

““Document Views and parts of Rotor”Document Views and parts of Rotor”

““Refactor existing systems using aspect-Refactor existing systems using aspect-orientation”orientation”

““Implement generics in a sample Implement generics in a sample application”application”

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

Student ResultsStudent Results

““I have learnt that developers need to I have learnt that developers need to documentdocument their their choiceschoices (i.e. the concepts, constructs and (i.e. the concepts, constructs and structures)”structures)”

““I have I have gained knowledgegained knowledge of the of the .NET platform.NET platform and its libraries and have analysed the use of and its libraries and have analysed the use of assemblies, metadata and reflection, especially with assemblies, metadata and reflection, especially with multiprogramming in the .NET environment”multiprogramming in the .NET environment”

““During this project I was During this project I was introducedintroduced to a whole to a whole new programming paradigmnew programming paradigm, which opened my , which opened my eyes to the existence of the possibility of eyes to the existence of the possibility of implementing programming solutions differently and implementing programming solutions differently and more efficiently”more efficiently”

““I have been introduced to concepts such as I have been introduced to concepts such as genericsgenerics for the for the first timefirst time””

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

Emerging Interest in AspectsEmerging Interest in Aspects

Emerged from looking at large systems and Emerged from looking at large systems and documenting themdocumenting them

Aspects would have helped!Aspects would have helped!

Students wrote programs using Aspect Students wrote programs using Aspect systems written for C# (not Java)systems written for C# (not Java) investigated several C# AOP systems, - many did investigated several C# AOP systems, - many did

not worknot work attribute plug for VS was successfulattribute plug for VS was successful best system was EOS from U. Virginiabest system was EOS from U. Virginia

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

Student CommentsStudent Comments

““I liked hearing about many I liked hearing about many new technologiesnew technologies””

““Having Having guest lecturersguest lecturers such as Damien Watkins such as Damien Watkins is great”is great”

““We should have more We should have more practicalpractical courses like this” courses like this”

““It was interesting to learn about It was interesting to learn about aspectsaspects and and genericsgenerics””

““I liked learning about .NET in an I liked learning about .NET in an academicacademic settingsetting with a critical view on the system and with a critical view on the system and design choices”design choices”

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

CollaborationCollaboration

Walter TichyWalter Tichy (University of Karlsruhe) initiated the (University of Karlsruhe) initiated the course. It wascourse. It was the first .NET course at that university the first .NET course at that university the first new non-Java course for a whilethe first new non-Java course for a while

Damien WatkinsDamien Watkins (Microsoft Research, Cambridge) (Microsoft Research, Cambridge) gave guest lecturesgave guest lectures

Bertrand MeyerBertrand Meyer (ETH Zürich) spoke on his Eiffel (ETH Zürich) spoke on his Eiffel for .NET projectfor .NET project

Nigel HorspoolNigel Horspool (University of Victoria, Canada) (University of Victoria, Canada) who wrote the Views system and co-authored the who wrote the Views system and co-authored the C# Concisely book, participated on a consultative C# Concisely book, participated on a consultative basisbasis

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

Outcomes (1)Outcomes (1)

Courses Courses 3 Software Construction courses presented at the 3 Software Construction courses presented at the

2 universities2 universities Students Students

80 students used and examined Rotor 80 students used and examined Rotor Views Views

partially documented using documentation tools partially documented using documentation tools availableavailable

RotorRotor considerable experience, but less of the considerable experience, but less of the

documentationdocumentation

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

Outcomes (2) - SoftwareOutcomes (2) - Software

A methodology for retargeting APIsA methodology for retargeting APIs Rewrote Views as a front and back end – Views/QtRewrote Views as a front and back end – Views/Qt Retargetted the backend to RotorRetargetted the backend to Rotor Project completed, being extended for other APIsProject completed, being extended for other APIs

A port of Views/Qt to Linux - student projectA port of Views/Qt to Linux - student project Based on Mono loaded on SourceForgeBased on Mono loaded on SourceForge Project completed, needs packaging and updatingProject completed, needs packaging and updating

A new reflective systemA new reflective system MirrorsMirrors system applies reflection to create a system applies reflection to create a

dynamic version of Views on .NET 2.0dynamic version of Views on .NET 2.0

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

Outcomes (3) - Mirrors Shines!Outcomes (3) - Mirrors Shines!

Developed by David-John Miller (third year Developed by David-John Miller (third year student, Polelo research assistant)student, Polelo research assistant)

Came Came 22ndnd in the Microsoft South Africa in the Microsoft South Africa Developer Competition on .NET 2.0Developer Competition on .NET 2.0

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

Outcomes (4) - PapersOutcomes (4) - Papers

Judith Bishop and Basil Worrall, Judith Bishop and Basil Worrall, Towards platform Towards platform interoperability: retargeting a GUI library on .NET.interoperability: retargeting a GUI library on .NET. Proc. Proc. 3rd Conference on .NET Technologies, 3rd Conference on .NET Technologies, pp. 23-33, pp. 23-33, Plzen, Plzen, Czech, May 2005Czech, May 2005

Judith Bishop, Nigel Horspool and Basil Worrall, Judith Bishop, Nigel Horspool and Basil Worrall, Experience Experience in integrating Java with C# and .NETin integrating Java with C# and .NET, Concurrency and , Concurrency and Computation: Practice and Experience, 17 pp. 663-680, June Computation: Practice and Experience, 17 pp. 663-680, June 20052005

Judith Bishop and Nigel Horspool, Judith Bishop and Nigel Horspool, Developing Principles of Developing Principles of GUI Programming Using Views. GUI Programming Using Views. Proc. of the 35th SIGCSE Proc. of the 35th SIGCSE Technical Symposium on Computer science education, pp. Technical Symposium on Computer science education, pp. 373-377, Norfolk, USA, March 2004. 373-377, Norfolk, USA, March 2004.

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

ConclusionsConclusions

RoSCtor stirred up interest in the use of Rotor RoSCtor stirred up interest in the use of Rotor (and .NET)(and .NET)

More software and paper outcomes than were More software and paper outcomes than were anticipated during the year of operationanticipated during the year of operation

Not as much documentation as aimed forNot as much documentation as aimed for

FutureFuture Retargetting projects continuingRetargetting projects continuing Courses being packaged for re-useCourses being packaged for re-use

http://http://polelo.cs.up.ac.za/rosctorpolelo.cs.up.ac.za/rosctor//