Converting S-Plus Applications into R Andy Nicholls

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

StEPS at EIAWhere We Are Now Paula Weir and Sue Harris Energy Information Administration, U.S. Department of Energy ICES3 Topic Contributed Session: Generalized.
Making the System Operational
Configuration management
Test process essentials Riitta Viitamäki,
Ultimate Bundle Overview Products Benefits Technical Requirements Licensing Pricing Valid until 01-Sep-2010.
Converting S-Plus Applications into R Andy Nicholls
Verification and Validation
MYOB to QuickBooks Conversions Presented by Alex Wild.
Test Automation Success: Choosing the Right People & Process
Interoperability. What is testing? Where have we come from? Where are we now? Why is nFocus at MSAIC? Overview.
Oracle BPEL, How To Get Ready For It OpenWorld 2007 Sunday, November 11.
3108: Enterprise Upgrade Lessons Learned
IS4401 Project Technology Issues. Introduction This seminar covers Databases When to use a Database What Database to use Development Tools Visual Studio.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Andy Nicholls – Head of Consultancy DevelopR – formalising R Development.
Agile Testing with Testing Anywhere The road to automation need not be long.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
 ETL: Extract Transformation and Load  Term is used to describe data migration or data conversion process  ETL may be part of the business process repeated.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Chapter 10.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Software Quality Assurance 2/20 WELCOME Graphic User Interface Testing.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
© The McGraw-Hill Companies, An Introduction Chapter 1 Software Project Management 4 th Edition Robert Hughes and Mike Cotterell.
Presented by: Katie Milanowski. 2  Formed in 1982  Bruce Barrington (HBO & Company)  Apply RAD technology to IBM PC  1986: Clarion Version 1.0, Atlanta,
Introduction Telerik Software Academy Software Quality Assurance.
COMP-14: Automating your deployments using ANT Gary S Clink Business Consultant.
Pass SOX security audits and Improve XA security CISTECH Security Solutions Belinda Daub, Senior Consultant Technical Services
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
End HomeWelcome! The Software Development Process.
Configuration Management (CM)
Presented by RJB Technical Consulting. SharePoint Designer can make simple, easy workflows for any SharePoint site. These workflows, however, are restricted.
JavaScript, Fourth Edition Chapter 5 Validating Form Data with JavaScript.
Luminance.  Major group refactoring.  Development Lead: Stephen Damm.  Project Manager: Martina Nagy.  Test team member: Chet Collins.  A lot of.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Getting Started with REACH Delivery. Free to Receive messages and files Easy and completely free to install Comprehensive online help Free Support Forum.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Software Quality Assurance WELCOME Graphic User Interface Testing.
PRASANAN KANNAN MBA(USA), B.Sc (USA), CITY&GUILDS (418) Mobile no
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Systems Development Life Cycle
BEHAVIOR DRIVEN TEST DEVELOPMENT Specification by Example.
Upgrading from r4.1.4 to r7: Making a Smooth Transition Roger Suttmeier Support Distribution Manager June 14, 2006.
Aimee Gott – R Consultant The Rise and Rise of Graphic Expectations Aimee Gott Consultant.
第 11 組 MIS 報告. Phases of any information system ~ recognition of a business problem or opportunity ~ recognition of a business problem or opportunity.
Managing Challenging Projects Presented to the class of: Dr. Jane Mackay M.J. Neely School of Business.
Page 1 of 38 Lenovo Confidential Lenovo Confidential Lenovo Confidential Lenovo Confidential Lenovo Confidential Please Note: Information contained in.
SwE 455 Tutorial. What is Evolve? Evolve is a tool for defining components and connecting them together to form new components. Also provides a runtime.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
COMPUTER III. Fundamental Concepts of Programming Control Structures Sequence Selection Iteration Flowchart Construction Introduction to Visual Basic.
Unit Testing & Code Coverage Please download and install EclEmma (link in resources section…I recommend Option 2) Also snarf the junit code for today’s.
NAVSEA Liaison Scott Huseth Faculty Advisor Dr. Jiang Guo Team Members Areg Abcarians David Ballardo Niteen Borge Daniel Flores Constance Jiang June 3,
AX DEVELOPMENT FOR NON- DEVELOPERS Why did my 15 minute change take 3 weeks.
Unit 3 Computer Systems. What is software? unlike hardware it can’t be physically touched it’s the missing link between the computer hardware and the.
Planning the Digital Transformation Readiness Check for SAP S/4HANA
Xamarin Mac application development
Upgrading from r4.1.4 to r7: Making a Smooth Transition
Chapter 18 Maintaining Information Systems
Software testing
Standard Scripts Project 2
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
Agile testing for web API with Postman
Standard Scripts Project 2
Standard Scripts Project 2
Standard Scripts Project 2
Presentation transcript:

Converting S-Plus Applications into R Andy Nicholls

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? 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+

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

Agenda Context Considerations Menu System Code Conversion Validation and Testing

CONSIDERATIONS

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:

This is Easy, Right? Often the menu system needs to be completely rewritten New installation documentation and users guides also need to be written AND what happens when something runs but produces a different result?!

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

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

MENU SYSTEM

S+ Menu System

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

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

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

Menu Choices Other options: Choice is almost limitless Often they require a knowledge of other languages such as Java, C, JavaScript,.NET, … Possibly warrants a standalone talk...

CODE CONVERSION

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

Direct Conversion Requires knowledge of both languages (stdev vs sd) Relatively quick to achieve Difficult to prove the new code does what the old code did

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

CHALLENGES

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

Technical Challenges OS 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! What is the users want the latest version of R?

VALIDATION AND TESTING

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?

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

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!

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

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

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

Questions