1 / 32

Converting S-Plus Applications into R

Converting S-Plus Applications into R. Andy Nicholls (anicholls@mango-solutions.com). Context. Context. Mango are speaking with an increasing number of customers who would like to convert their existing S+ application into an R equivalent. Why Convert an S+ Application to R?.

varsha
Download Presentation

Converting S-Plus Applications into R

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Converting S-Plus Applications into R Andy Nicholls (anicholls@mango-solutions.com)

  2. Context

  3. Context • Mango are speaking with an increasing number of customers who would like to convert their existing S+ application into an R equivalent

  4. Why Convert an S+ Application to R? We have seen three primary drivers for change: • Long term cost reduction (S+ licenses) • Incompatibility of S+ version with new OS • Withdrawal of Support • Wider uptake of R in industry Clearly R is a natural choice as a replacement for S+

  5. Aim • To provide a high level overview of the considerations for converting an S+ application to R

  6. Agenda • Context • Considerations • Menu System • Code Conversion • Validation and Testing

  7. Considerations

  8. This is Easy, Right? Some (true?) statements: • R can be considered as a different implementation of S • There are some important differences, but much code written for S runs unaltered under R Discuss... Source: www.r-project.org

  9. Considerations S+ applications can generally be split into two pieces: • An underlying library of code • A set of functions defining the menu system and help pages

  10. Case Study Multinational confectionary, food and drinks company • Existing S+ application consisting of an integrated menu and some analysis code • S+ libraries consisting of 7,000+ lines of S code spread over 80 functions • After removing those functions relating to the menu and help files, only around 3,000 lines of code remained

  11. Menu System

  12. S+ Menu System

  13. Menu System Opportunities • S+ Applications tend to be integrated into the S+ GUI • R systems can be also be integrated but require new code • The move to R represents an opportunity to hide the R GUI

  14. An Opportunity to Hide R

  15. An Opportunity to Hide R • Hiding R can improve user acceptance amongst non-technical colleagues • It can also improve the visual appeal of the system

  16. Menu Choices Some R/R-based technologies: • tcltk is R’s ‘recommended’ menu builder • Glade, RGtk2 • gWidgets • rpanel • Deducer • manipulate (Rstudio) • ...

  17. Menu Choices Other options: • Choice is almost limitless • Often they require a knowledge of other languages such as Java or C • Possibly warrants a standalone talk...

  18. Code Conversion

  19. Approach There are essentially two approaches to code conversion: • Direct Conversion • Test-based Conversion

  20. Direct Conversion • Requires knowledge of both languages (stdevvssd) • Relatively quick to achieve • Difficult to prove the new code does what the old code did

  21. Test-based Conversion • Generating unit tests in S+ requires some S+ knowledge • Takes some time to generate and document tests but better in the long-run • Unit tests give a definitive PASS/FAIL result • Can often be automated

  22. Code Conversion Challenges • The application upgrade usually coincides with an operating system upgrade • Windows (or other) version and R version need to be determined in advance • It is almost guaranteed that the new system will produce different results for the same test data!

  23. What is “different”? • Often this is simply rounding • Still require agreement on precision: 0.049782 vs 0.050436 • If simulation is involved this can be VERY difficult to define!!! • Appearance of graphics may also differ • Usually less of an issue

  24. Other Challenges As the business owner I want to use the opportunity to improve the application: • New menu items • New functionality • Modifications to existing functionality All of these require careful planning

  25. Validation and Testing

  26. Validation and Testing • This is not exciting! • When we use an application, we assume it has been “tested” and hope/require that it has been “validated” • But what does this really mean?

  27. Validation What is validation? • Design Qualification • Installation Qualification • Operational Qualification • Performance Qualification • A lengthy documentation exercise

  28. System Testing • Unit tests check individual pieces of code • A system is made up of many pieces • We need to ensure it has been pieced together correctly!

  29. System Testing Requires: • Patience • An independent tester/test team • Planning • More documentation!!!

  30. System Testing Recommended: • An automated build system • Hudson, Jenkins • Bug reporting system

  31. Summary • Converting an S+ application requires careful planning • It presents an opportunity to make improvements • Validation and independent testing are key to a successful migration

  32. Questions

More Related