240 likes | 420 Views
XL Programming. Dr. Ir. I.S.W.B. Prasetya wishnu@cs.uu.nl A. Azurat S.Kom. ade@cs.uu.nl. Centre of Software Technology, Utrecht University. Research and school on generic programming, compiler construction techniques, program analysis, program transformation. Centre of Software Technology.
E N D
XL Programming Dr. Ir. I.S.W.B. Prasetya wishnu@cs.uu.nl A. Azurat S.Kom. ade@cs.uu.nl
Centre of Software Technology, Utrecht University Research and school on generic programming, compiler construction techniques, program analysis, program transformation.
Centre of Software Technology • 25 people, 3 profs, incl. 10 phd students • Headed by Prof. Dr. S.D. Swierstra • International oriented Master ProgrammeSee website: www.cs.uu.nlPhd opportunity is project based or by extern fund. • What do we do: next-generation software tools!
Centre of Software Technology • Current research: • compiler generator • generic programming • program transformation tool • scalable verification • Network: • Collaboration with Ducth companies, including SERC • Member of Dutch research school IPA, the Institute for Programming research and Algorithmics. • Bolivia, Indonesia
Visit us ... In Utrecht, centrum of the Netherlands .... just 17 hrs away from Jakarta.
Software Lifetime • Production • Maintenance • Repair • Improvement • Extension • Migration
Software Cost Not including migration....
Indonesia • Total IT expenditure ... not known.Estimation: 5% of total budget of medium + large companies, goverment agencies included.In the order of billion USD anually. • Big portion of this goes to maintenance.
Migration • Moving software to new hardware platform, or new software architecture.Driven by new HW/SW technology will happen regularly. • Legacy software from 70's: large, undocumented, spagethi likeOften millions lines of code. Very expensive and risky to migrate often requiring a big and long term project.
Why Software so Hard to Maintain ? Existing programming dogma: Develop techniques to efficiently build complicated systems. New dogma: develop techniques to efficiently build and maintain complicated systems.
traditional DEVELOPMENT TEST eXtreme eXtreme Programming • New programming approach, by Kent Beck (Daimler-Chrysler), 1990 • Very successful: stresses customer satisfaction.Stress is: team work, simplicity, feedback, courage • See: www.extremeprogramming.org Program for today ! Test now ! Refactor !
Because we can't keep the programmers! XL Programming • We propose XL Programming • eXtra Long-lived • eXtreme + Life • Even more important role of testing:Long-lived application = program + executable specification
Life/God Programming Concepts: Creature System consisting of critical functionalities DNA Program to build a system Birth Compiling the DNA Evolution Incremental development of DNA Natural selection Test (executable!) Gears Support functionalities
XL Programming Philosophy Separate critical core from the rest of the system Non-critical functionalities are treated like use-and-throw products.
XL Programming Philosophy Program the critical core as abstract as possible Auto-generate as much code as possible. This keep maintenance and migration effort low. Keep the crititical core minimum and simple Keep in mind, adding features and increasing cross-dependencies will directly impact maintenance and migration cost.
XL Programming Philosophy Build for this season! Build incrementally. You're more able to adapt to changing requirement. Keep in mind that large projects may take several years.
XL Programming Philosophy Write (executable) specifications You need them not only as documentation, but to auto-test programs. Neglecting this will multiply migration cost.
Where to find XLP tools ? • No-where... • Research idea for UI and UU • We do have the technologies to develop XLP tools
Needed Technologies • Languages • You need suitable languages to describe and specify the core • Compiler • You need compilers to generate the application from the core to generate test programsCompiler theoryCompiler Generator technology (AG)Functional Programming • Executable specification: test and verification technologies
National Research Strategy • Transfer technologies to Indonesia • Market dumping • offer XLP tools at non-profit price • Where can UI position itself ? • Leading research and development of XLP tools • Training
How much research is needed ? • A lot ... but it is within reach :Make use RUTI, RUT, RUK schemes. • What is important in any research: endurance.Patience. Maintain course, stay focus. • The economy of research: it's not hobby! Eventually, all the investment must end up in competitive products!!
Some practical exposure to the technologies • Will give you a good start to learn them yourself What can you expect from this workshop? introduction to technologies needed for XLP
Workshop Setup Fundamentals GP SC AG FP application template xMECH
I like it a lot, what next ? • Join the research team in UI • Apply to Master Programme of Software Technology at Utrecht University