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.
Ultimate Bundle Overview Products Benefits Technical Requirements Licensing Pricing Valid until 01-Sep-2010.
Rich Pugh Andy Nicholls Head to Head: Lattice vs ggplot2 Rich Pugh
Verification and Validation
System Integration Verification and Validation
Test Automation Success: Choosing the Right People & Process
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
CS 411W - Notes Product Development Documentation.
Oracle BPEL, How To Get Ready For It OpenWorld 2007 Sunday, November 11.
Project activities and experiences in an Albanian software company Luan Jubica Zagreb 2004.
CSE3030Lecture 11 Know Your User The First Slogan.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
Programming Introduction November 9 Unit 7. What is Programming? Besides being a huge industry? Programming is the process used to write computer programs.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Andy Nicholls – Head of Consultancy DevelopR – formalising R Development.
Agile Testing with Testing Anywhere The road to automation need not be long.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
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.
Categories of Testing.
Improving Software Testability Adam Knight – Test Team Leader, Clearpace Ltd. April 29 th 2009.
Managing the development and purchase of information systems (Part 1)
© 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.
Pass SOX security audits and Improve XA security CISTECH Security Solutions Belinda Daub, Senior Consultant Technical Services
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.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Integrated Development Environment (IDE)
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
JavaScript, Fourth Edition Chapter 5 Validating Form Data with JavaScript.
Logic Consolidator Quick Start Guide. Logic Consolidator Easy way to demonstrate cost savings with CPLD – Shows worst case scenario Device size Cost of.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Software Quality Assurance WELCOME Graphic User Interface Testing.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
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.
Converting S-Plus Applications into R Andy Nicholls
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.
Page 1 of 38 Lenovo Confidential Lenovo Confidential Lenovo Confidential Lenovo Confidential Lenovo Confidential Please Note: Information contained in.
COMPUTER III. Fundamental Concepts of Programming Control Structures Sequence Selection Iteration Flowchart Construction Introduction to Visual Basic.
Company: Amdocs Academic advisor: Ehud Gudes Technical advisor :Gabby Shimony Team: Uzi Lewin Elina Shlangman.
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.
Aleksandra Pawlik University of Manchester. Something that can be put into a workflow Well described - what the component does Behaves “well” - conforms.
Planning the Digital Transformation Readiness Check for SAP S/4HANA
Chapter 5 Validating Form Data with JavaScript
Test-driven development
Upgrading from r4.1.4 to r7: Making a Smooth Transition
Intermediate Programming with GroupWise® C3POs™
Integrate Agile Testing into the Process
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
Chapter 10 – Software Testing
Standard Scripts Project 2
Programming Arc.
Standard Scripts Project 2
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
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 manipulate (Rstudio)...

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...

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

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!

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

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

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

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!

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 requires careful planning It presents an opportunity to make improvements Validation and independent testing are key to a successful migration

Questions