Subroutine to ILE Procedure

Size: px
Start display at page:

Download "Subroutine to ILE Procedure"

Transcription

1 Can you read? 1

2 Refactoring 2

3 GOTO Conversion 3

4 Subroutine to ILE Procedure 4

5 Modernization & Refactoring Improving the Design of Code, Database and More! 5

6 Refactoring 6

7 Today s Speaker 7

8 Refactoring 8

9 Business value of Refactoring? Eleni Stroulia 9

10 about Refactoring/Modernization previous refactoring events can you name them? general principles recognize code smell ugly code can stay recognize tradeoffs and obstacles to refactoring 10

11 11

12 12

13 What Happened? 13

14 Improve the Design of Existing Code 14

15 CISC to RISC 15

16 Four Digit Year 16

17 1956 5GB IBM Hard Drive 17

18 We is your code comfort? 18

19 Refactoring and DevOps Transition Lay the Foundation Analyze your existing resources Skillset, methodology, existing tooling Identify "Champions" Pick tools that match your needs and experience...not necessarily those that have the largest visibility Document Review Begin to install back office tooling Make incremental Development changes Start using RDi (if you aren't already) "Big Bang Refactoring or DevOps" not absolutely necessary Instead, consider making changes as part of already-defined (and already funded) projects 19

20 Development Transition - OO Start thinking in terms of "Objects" Matches what "Distributed" (Java, C#, C++) developers expect Often very similar to Database UML Related objects become service programs (*SRVPGM) Each object becomes a module (*MODULE) Actions becomes exported procedures Can be easily scripted for testing 20

21 Development Transition - MVC Separate Business Logic from User Interface (Model-View-Controller) Model Reference File View = 5250 (+Web, Mobile, Eclipse, Client Server,...) Controller = Module(s) (*MODULE) 21

22 Development Transition - TDD CI does not work without scriptable test cases... Test Driven Development (xunit overwhelmingly popular) JUnit: Customer cust = new Customer(); String[] location = {"665 Surf Terrace", "Wauconda", "IL"}; cust.setlocation(location); Order order = new Order(cust); boolean success = false; try { cust.delete(); } catch (Exception e) { assertthat(e, is(customerhasordersexception)); } assertthat(success, is(true)); RPGUnit: dcl-f orderf usage(*update:*delete); dcl-ds orderds likerec(orderrec); chain ('665 Surf Terrace' : 'Wauconda' : 'IL') orderrec orderds; assert (not %found : 'Record ("665 Surf Terrace", "Wauconda", "IL")' + 'should not be found'); 22

23 Legend Yes! Maybe No OMG No! 23

24 Development Transition - RPG Convert RPGIII to ILE No: GOTO; I-spec; O-spec; Cycle Free-form preferably More readable/quicker changes (especially for new developers) Easier tracking (fewer diff lines) Tooling: RDi H/S RPG Toolbox ARCAD RPG Converter for IBM i Convert subroutines to procedures (where appropriate) Minimal usage of global variables Review /COPY usage Fine for "macros" (e.g. sort) and copyright/version info Should never /COPY business logic into multiple programs 24

25 Development Transition Break up Large Programs Do multiple developers work on different parts of the same program? Multiple checkouts prevent feature promotion Resolving source conflicts (Sync) is the most difficult (and most costly) part of distributed development Are any of these true: Do you have >10 levels of indentation? Is your source increment.01?? Does the compiler sometimes crash when processing your source??? Have you already asked IBM to increase some limit so your program can compile?!?...answering yes, probably means your program isn't modular... 25

26 Rule of Three-Don Roberts Start thinking in terms of Three Strikes your Out" First time just do it-nike Always fit into workflow to refactor opportunistically Second time you do something similar, wince at duplication but do it anyway Third time you do something similar, you refactor 26

27 Rule of Three-Don Roberts Some techniques Third time you do something similar, you refactor Before you add a new feature, Preparatory Refactoring Making code easier to understand, Comprehensive Refactoring Litter-Pickup, understand but doing it badly Experiment, refactoring and new feature in separate commits (changes) Naming provides clarity and understanding, SQL table 27

28 Smelly Slide-Fixed to Free-Form RPG

29 GOTO Conversion

30 GOTO Conversion

31 GOTO Conversion 31

32 CALLx Conversion

33 MOVEA Conversion

34 PLIST Conversion

35 KLIST Conversion

36 Rule of One-Some Speaker(Me) Not limited to just code-database First time you do something, you refactor? Constraints-Database Centric Programming Performance Testing-Build Dependency-Concurrent Changes Surrogate-Religious War Naming provides clarity and understanding, SQL table 36

37 DDS to DDL conversion You can transform manually, buy a new application or Modernize/Refactor to drive additional Code transformation: - Field Renaming - Keyword management - Object renaming - Multi-member files management Copyright Arcad Software

38 Questions What did you think? 38

Today s Webinar is being recorded You ll receive a follow-up with the recording Q&A after the presentation Ask questions throughout the Webinar

Today s Webinar is being recorded You ll receive a follow-up  with the recording Q&A after the presentation Ask questions throughout the Webinar Today s Webinar is being recorded You ll receive a follow-up email with the recording Q&A after the presentation Ask questions throughout the Webinar Post-Webinar survey Reach your Modernization Goals

More information

A few more things about Agile and SE. Could help in interviews, but don t try to bluff your way through

A few more things about Agile and SE. Could help in interviews, but don t try to bluff your way through A few more things about Agile and SE Could help in interviews, but don t try to bluff your way through 1 Refactoring How to do it, where it fits in http://www.cse.ohio-state.edu/~crawfis/cse3902/index.htm

More information

Object Oriented Software Design - I

Object Oriented Software Design - I Object Oriented Software Design - I Unit Testing Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa November 28, 2011 G. Lipari (Scuola Superiore Sant Anna) Unit Testing November

More information

G.O.L.F. on IBM i. David Andruchuk Sr. Architect Computer Systems Design Associates, Inc. What can i do..i can do Database

G.O.L.F. on IBM i. David Andruchuk Sr. Architect Computer Systems Design Associates, Inc. What can i do..i can do Database G.O.L.F. on IBM i David Andruchuk Sr. Architect Computer Systems Design Associates, Inc. What can i do..i can do Database What are we covering today? Program vs Data Design Program Centric Data Centric

More information

Contents. part 1: ILE Basics...7. Acknowledgments...iv

Contents. part 1: ILE Basics...7. Acknowledgments...iv Contents Acknowledgments...iv Introduction...1 A Brief Description of Our Journey...1 From Old Problematic Monoliths to Innovative, Lightweight, Efficient Programs...3 Why ILE? OPM Has Served Me Fine So

More information

Application Migration with X-Analysis

Application Migration with X-Analysis MANAGEMENT OVERVIEW A GUIDE TO THE BENEFITS OF USING APPLICATION MIGRATION Application Migration with X-Analysis Databorough Ltd. 66 York Road Weybridge UK info@databorough.com Phone +44 (0)1932 848564

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Introduce two important development practices in the context of the case studies: Test-Driven Development Refactoring 2 Logic is the art of going wrong with confidence

More information

J, K F, G, H. Library/framework, 168 LIKE() predicate, 142 Load-balancing server (LBS), 120 Lock on check out (LOCO), 1

J, K F, G, H. Library/framework, 168 LIKE() predicate, 142 Load-balancing server (LBS), 120 Lock on check out (LOCO), 1 Index A ADO.NET driver coding implementation, 153 154 dr.read() method, 155 finally block, 155 IDataReader, 155 interface variables, 155 loose-coupling, 153 MySql assembly, 153 try-catch blocks, 155 using

More information

Brian May IBM i Modernization Specialist Profound Logic Software. Webmaster and Coordinator Young i Professionals

Brian May IBM i Modernization Specialist Profound Logic Software. Webmaster and Coordinator Young i Professionals Brian May IBM i Modernization Specialist Profound Logic Software Webmaster and Coordinator Young i Professionals Overview Discuss advantages of using data structures for I/O operations Review the I/O opcodes

More information

An Introduction to SQL for System i. A beginning overview of SQL in System i Navigator and Embedded SQL in RPGLE

An Introduction to SQL for System i. A beginning overview of SQL in System i Navigator and Embedded SQL in RPGLE An Introduction to SQL for System i A beginning overview of SQL in System i Navigator and Embedded SQL in RPGLE Quote heard from IBM at a Conference 80% of everything you will need to know three years

More information

Introduction. A Brief Description of Our Journey

Introduction. A Brief Description of Our Journey Introduction If you still write RPG code as you did 20 years ago, or if you have ILE RPG on your resume but don t actually use or understand it, this book is for you. It will help you transition from the

More information

Learning to Provide Modern Solutions

Learning to Provide Modern Solutions 1 Learning to Provide Modern Solutions Over the course of this book, you will learn to enhance your existing applications to modernize the output of the system. To do this, we ll take advantage of the

More information

12/7/09. How is a programming language processed? Picasso Design. Collaborating with Subversion Discussion of Preparation Analyses.

12/7/09. How is a programming language processed? Picasso Design. Collaborating with Subversion Discussion of Preparation Analyses. Picasso Design Finish parsing commands Collaborating with Subversion Discussion of Preparation Analyses How is a programming language processed? What are the different phases? Start up Eclipse User s Input

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

Index. BigBadGuiTools (BBGT), 186 Business logic and data layer, 32 Business requirements

Index. BigBadGuiTools (BBGT), 186 Business logic and data layer, 32 Business requirements Index A ADO.NET, SQL driver documentation, 171 dr.read() method, 173 ExecuteNonQuery method, 173 IDbDataParameter interface, 174 Interface variables, 173 MySqlDataReader, 173 MySql reference, 170 placeholders,

More information

AO IBM i Advanced Modernization Workshop Curriculum

AO IBM i Advanced Modernization Workshop Curriculum AO IBM i Advanced Modernization Workshop Curriculum This workshop is intended to provide the IBM i professional, specifically the RPG programmer, with an overview of the newest capabilities which have

More information

Charles Guarino. About The Speaker

Charles Guarino. About The Speaker Get With The Program! It s Not Your Grandma s RPG Anymore Charles Guarino Twitter @charlieguarino Central Park Data Systems, Inc. About The Speaker With an IT career spanning over 30 years, Charles Guarino

More information

CSCI 2600: Principles of Software. Spring 2017 Lecture 01 Bill Thompson

CSCI 2600: Principles of Software. Spring 2017 Lecture 01 Bill Thompson CSCI 2600: Principles of Software Spring 2017 Lecture 01 Bill Thompson thompw4@rpi.edu https://www.cs.rpi.edu/~thompw4/csci-2600/spring2017/ Thanks Much of the material in this course comes from Prof.

More information

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont.

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. Today! Build HelloWorld yourself in BlueJ and Eclipse. Look at all the Java keywords. Primitive Types. HelloWorld in BlueJ 1. Find BlueJ in the start menu, but start the Select VM program instead (you

More information

Lab Exercise Test First using JUnit

Lab Exercise Test First using JUnit Lunds tekniska högskola Datavetenskap, Nov, 2017 Görel Hedin/Ulf Asklund EDAF45 Programvaruutveckling i grupp projekt Lab Exercise Test First using JUnit Goal This lab is intended to demonstrate basic

More information

Rational Developer for i: What's New in 9.0.1

Rational Developer for i: What's New in 9.0.1 John Fellner, Developer, Rational Developer for i Rational Developer for i: What's New in 9.0.1 TUG Meeting of Members, Jan 22, 2014 Agenda Quick Product Intro What's New in Rational Developer for i v9.0.1

More information

CSC207 Week 4. Larry Zhang

CSC207 Week 4. Larry Zhang CSC207 Week 4 Larry Zhang 1 Logistics A1 Part 1, read Arnold s emails. Follow the submission schedule. Read the Q&A session in the handout. Ask questions on the discussion board. Submit on time! Don t

More information

LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus

LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus LEVERAGING VISUAL STUDIO TEAM SYSTEM 2008 Course LTS08: Five days; Instructor-Led Course Syllabus INTRODUCTION This five-day, instructor-led course provides students with the knowledge and skills to effectively

More information

Course 1 October, 9, Adrian Iftene

Course 1 October, 9, Adrian Iftene Course 1 October, 9, 2017 Adrian Iftene adiftene@info.uaic.ro SWEBOK: place and role of software engineering, knowledge areas (KAs), related disciplines Development and maintenance of the systems: model

More information

Extreme programming XP 6

Extreme programming XP 6 Extreme programming XP 6 Planning Game 3 Planning Game Independent: Stories should be as independent as possible. When thinking of independence it is often easier to think of order independent. In other

More information

C Sc 335 Practice Test 2 Answers 1a) Create an initial list of classes that would do a good job of modeling this system (ANSWER MAY VARY)

C Sc 335 Practice Test 2 Answers 1a) Create an initial list of classes that would do a good job of modeling this system (ANSWER MAY VARY) C Sc 335 Practice Test 2 Answers 1a) Create an initial list of classes that would do a good job of modeling this system (ANSWER MAY VARY) Candidate Class Name Single Responsibility Customer (or Rentor)

More information

9 th CA 2E/CA Plex Worldwide Developer Conference 1

9 th CA 2E/CA Plex Worldwide Developer Conference 1 1 Introduction/Welcome Message Modern CA:2E 8.7 allows us to transform our database from traditional DDS specifications, to more modern and accepted SQL. This session will show the process of moving from

More information

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics  csci2600/ Outline Principles of Software (CSCI 600) Spring 018 http://www.cs.rpi.edu/academics/courses/spring18/csci600/ Konstantin Kuzmin, kuzmik@cs.rpi.edu Office hours: Monday and Thursday 4:00 pm - 5:30 pm Mailing

More information

Continuous Integration / Continuous Testing

Continuous Integration / Continuous Testing Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm) Continuous Integration / Continuous Testing IIC What s SW Integration? Integration

More information

Introduction to IRQA 4

Introduction to IRQA 4 Introduction to IRQA 4 Main functionality and use Marcel Overeem 1/7/2011 Marcel Overeem is consultant at SpeedSoft BV and has written this document to provide a short overview of the main functionality

More information

Thinking Functionally

Thinking Functionally Thinking Functionally Dan S. Wallach and Mack Joyner, Rice University Copyright 2016 Dan S. Wallach, All Rights Reserved Reminder: Fill out our web form! Fill this out ASAP if you haven t already. http://goo.gl/forms/arykwbc0zy

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

COMP 354 TDD and Refactoring

COMP 354 TDD and Refactoring COMP 354 TDD and Refactoring Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: gregb@cs.concordia.ca Winter 2015 Course Web Site: http://users.encs.concordia.ca/

More information

InfoSphere Data Architect Pluglets

InfoSphere Data Architect Pluglets InfoSphere Data Architect Pluglets Macros for Eclipse This article provides information on how to develop custom pluglets and use sample pluglets provided by InfoSphere Data Architect. InfoSphere Data

More information

Reengineering II. Transforming the System

Reengineering II. Transforming the System Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Jim Buck Phone Twitter

Jim Buck Phone Twitter Jim Buck Phone 262-705-2832 Email jbuck@impowertechnologies.com Twitter - @jbuck_impower www.impowertechnologies.com Presentation Copyright 2017 impowertechnologies.com 5250 & SEU Doesn t work anymore!

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Knowledge Discovery: How to Reverse-Engineer Legacy Systems

Knowledge Discovery: How to Reverse-Engineer Legacy Systems Knowledge Discovery: How to Reverse-Engineer Legacy Systems Hugo Bruneliere, Frédéric Madiot INRIA & MIA-Software 1 Context of this work Knowledge Discovery: How To Reverse-Engineer Legacy Sytems The present

More information

OO and Ahh! An Introduction to Object Oriented Programming With PHP. Division 1 Systems. John Valance. Copyright John Valance Division 1 Systems

OO and Ahh! An Introduction to Object Oriented Programming With PHP. Division 1 Systems. John Valance. Copyright John Valance Division 1 Systems OO and Ahh! An Introduction to Object Oriented Programming With PHP John Valance Division 1 Systems johnv@div1sys.com Copyright John Valance Division 1 Systems About John Valance 30+ years IBM midrange

More information

Database Programming with PL/SQL

Database Programming with PL/SQL Database Programming with PL/SQL 1-2 Objectives This lesson covers the following objectives: List and explain the benefits of PL/SQL List the differences between PL/SQL and other programming languages

More information

Construction: High quality code for programming in the large

Construction: High quality code for programming in the large Construction: High quality code for programming in the large Paul Jackson School of Informatics University of Edinburgh What is high quality code? High quality code does what it is supposed to do......

More information

Test Driven Development Best practices applied to IBM i with the assistance of tooling. Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead

Test Driven Development Best practices applied to IBM i with the assistance of tooling. Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead Test Driven Development Best practices applied to IBM i with the assistance of tooling Barbara Morris RPG compiler lead Edmund Reinhardt RDi lead The Vision IBM i developers are able to confidently change

More information

DATABOROUGH TOOLS DATASHEET FEB

DATABOROUGH TOOLS DATASHEET FEB The knowledge and information contained in an organization s business software is vitally important and extremely valuable but often this information covering the operation, metrics, and design of the

More information

CSE 15L Winter Midterm :) Review

CSE 15L Winter Midterm :) Review CSE 15L Winter 2015 Midterm :) Review Makefiles Makefiles - The Overview Questions you should be able to answer What is the point of a Makefile Why don t we just compile it again? Why don t we just use

More information

BOSTON USER GROUP. Workflows for Threading. kcura LLC. All rights reserved.

BOSTON USER GROUP. Workflows for  Threading. kcura LLC. All rights reserved. BOSTON USER GROUP Workflows for Email Threading Jacob Cross Overview The objective of today s session is to give you some ideas that will hopefully increase your knowledge of how email threading works

More information

Liquibase Version Control For Your Schema. Nathan Voxland April 3,

Liquibase Version Control For Your Schema. Nathan Voxland April 3, Liquibase Version Control For Your Schema Nathan Voxland April 3, 2014 nathan@liquibase.org @nvoxland Agenda 2 Why Liquibase Standard Usage Tips and Tricks Q&A Why Liquibase? 3 You would never develop

More information

DARPA introduction. Joost Westra

DARPA introduction. Joost Westra DARPA introduction Joost Westra Introduction Darpa & Tekkotsu Project work Previous work Practical RoboLab Why Darpa? Dutch ARchitecture Project for Aibos Problems with the old (German) code Creating your

More information

Understading Refactorings

Understading Refactorings Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations

More information

SQL Support in 2E. 9 th CA 2E/CA Plex Worldwide Developer Conference

SQL Support in 2E. 9 th CA 2E/CA Plex Worldwide Developer Conference SQL Support in 2E 1 Introduction/Welcome Message Modern CA:2E 8.7 allows us to transform our database from traditional DDS specifications, to more modern and accepted SQL. This training session will show

More information

Guidebook ONLINE ORDERING MADE EASY!

Guidebook ONLINE ORDERING MADE EASY! www.boltsupply.com Guidebook ONLINE ORDERING MADE EASY! ONLINE ORDERING MADE EASY! www.boltsupply.com Guidebook Here are some of the highlights of the new boltsupply.com New Home Page It s now easier than

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Test Driven Development TDD

Test Driven Development TDD Test Driven Development TDD Testing Testing can never demonstrate the absence of errors in software, only their presence Edsger W. Dijkstra (but it is very good at the latter). Testing If it's worth building,

More information

Modernizing your database processes with DevSecOps

Modernizing your database processes with DevSecOps Modernizing your database processes with DevSecOps Table of Contents Introduction The Shift to DevSecOps Database Flow Comprehensive Security Managing Drift Transparent Auditing Conclusion 1 2 6 7 9 10

More information

FROM OPNQRYF TO SQL WITH RPG OPEN ACCESS

FROM OPNQRYF TO SQL WITH RPG OPEN ACCESS FROM OPNQRYF TO SQL WITH RPG OPEN ACCESS Alex Krashevsky AEK Solutions, Inc. May 9, 2018 aatkrash@gmail.com https://www.linkedin.com/in/alexkrashevsky-58930bb/ Objectives Getting to see a technical challenge

More information

OpenVMS migration to i4 and beyond

OpenVMS migration to i4 and beyond OpenVMS migration to i4 and beyond OpenVMS Bootcamp 2015 Migrating OpenVMS systems to Integrity -i4 servers and beyond Colin Butcher CEng FBCS CITP Technical director, XDelta Limited www.xdelta.co.uk Agenda

More information

CS 351 Design of Large Programs Programming Abstractions

CS 351 Design of Large Programs Programming Abstractions CS 351 Design of Large Programs Programming Abstractions Brooke Chenoweth University of New Mexico Spring 2019 Searching for the Right Abstraction The language we speak relates to the way we think. The

More information

So Now What? Using IWS Server and Service programs

So Now What? Using IWS Server and Service programs So Now What? Using IWS Server and Service programs Presentation Copyright 2017 impowertechnologies.com Jim Buck Phone 262-705-2832 jbuck@impowertechnologies.com Twitter - @j_buck51 5250 & SEU Doesn t work

More information

Automated Testing of Tableau Dashboards

Automated Testing of Tableau Dashboards Kinesis Technical Whitepapers April 2018 Kinesis CI Automated Testing of Tableau Dashboards Abstract Companies make business critical decisions every day, based on data from their business intelligence

More information

About the Authors. Preface

About the Authors. Preface Contents About the Authors Acknowledgments Preface iv v xv 1: Introduction to Programming and RPG 1 1.1. Chapter Overview 1 1.2. Programming 1 1.3. History of RPG 2 1.4. Program Variables 6 1.5. Libraries,

More information

Week 2: The Clojure Language. Background Basic structure A few of the most useful facilities. A modernized Lisp. An insider's opinion

Week 2: The Clojure Language. Background Basic structure A few of the most useful facilities. A modernized Lisp. An insider's opinion Week 2: The Clojure Language Background Basic structure A few of the most useful facilities A modernized Lisp Review of Lisp's origins and development Why did Lisp need to be modernized? Relationship to

More information

Test suites Obviously you have to test your code to get it working in the first place You can do ad hoc testing (testing whatever occurs to you at

Test suites Obviously you have to test your code to get it working in the first place You can do ad hoc testing (testing whatever occurs to you at JUnit Test suites Obviously you have to test your code to get it working in the first place You can do ad hoc testing (testing whatever occurs to you at the moment), or You can build a test suite (a thorough

More information

Practical Objects: Test Driven Software Development using JUnit

Practical Objects: Test Driven Software Development using JUnit 1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use

More information

DB2 for z/os Stored Procedures Update

DB2 for z/os Stored Procedures Update Robert Catterall, IBM rfcatter@us.ibm.com DB2 for z/os Stored Procedures Update Michigan DB2 Users Group May 15, 2013 Information Management Agenda A brief review of DB2 for z/os stored procedure enhancements

More information

Oracle Forms and Oracle APEX The Odd Couple

Oracle Forms and Oracle APEX The Odd Couple Oracle Forms and Oracle APEX The Odd Couple About me 2 Francis Mignault CTO and Co-founder, Insum Solutions 30+ years with Oracle DB, 14+ years with APEX. (Forms 2.3 / Oracle 5) Books: Expert Oracle Application

More information

Version Control Systems

Version Control Systems Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File

More information

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003 Control Flow COMS W1007 Introduction to Computer Science Christopher Conway 3 June 2003 Overflow from Last Time: Why Types? Assembly code is typeless. You can take any 32 bits in memory, say this is an

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

The Why and How of the imodernize(d) Application Architecture

The Why and How of the imodernize(d) Application Architecture The Why and How of the imodernize(d) Application Architecture David Andruchuk Sr. Architect Computer Systems Design Associates, Inc. What can i do..i can do Modernized IBM i is very different from the

More information

APPLICATION MODERNIZATION. Brian May IBM i Modernization Specialist

APPLICATION MODERNIZATION. Brian May IBM i Modernization Specialist APPLICATION MODERNIZATION Brian May IBM i Modernization Specialist APPLICATION MODERNIZATION Three critical areas of modernization The future of RPG and Rational Open Access, RPG Edition MVC Modernize

More information

CSE 70 Final Exam Fall 2009

CSE 70 Final Exam Fall 2009 Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15

More information

IBM i/db2 Modernization to SQL

IBM i/db2 Modernization to SQL IBM i/db2 Modernization to SQL About Your Presenter IBM i Professional for 16 Years. Primary Focus is IBM i Engineering / Programming Well Versed in 2E. Well Versed in RPG (All Flavors) Well Versed in

More information

Preface to the Second Edition... xi A Note About Source Entry... xi

Preface to the Second Edition... xi A Note About Source Entry... xi Contents Preface to the Second Edition... xi A Note About Source Entry... xi Chapter 1: Pre Free-Format RPG IV... 1 RPG IV... 1 Extended Factor 2... 2 Built-in Functions... 2 Subprocedures... 3 Other Changes...

More information

Lecture Notes for Chapter 2: Getting Started

Lecture Notes for Chapter 2: Getting Started Instant download and all chapters Instructor's Manual Introduction To Algorithms 2nd Edition Thomas H. Cormen, Clara Lee, Erica Lin https://testbankdata.com/download/instructors-manual-introduction-algorithms-2ndedition-thomas-h-cormen-clara-lee-erica-lin/

More information

Continuous Integration using Cruise Control

Continuous Integration using Cruise Control Continuous Integration using Cruise Control Presented By Tom Grant PlatinumSolutions, Inc. Thursday, April 14 th, 2005 What is Integration? Definition: the act of combining into an integral whole In software

More information

Java Language Modularity With Superpackages

Java Language Modularity With Superpackages Java Language Modularity With Superpackages Alex Buckley JSR 294 Co-spec lead Sun Microsystems Andreas Sterbenz JSR 294 Co-spec lead Sun Microsystems TS-2401 2007 JavaOne SM Conference Session 2401 Goal

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

Software LEIC/LETI. Lecture 13

Software LEIC/LETI. Lecture 13 Software Engineering @ LEIC/LETI Lecture 13 Last Lecture Software Design Bottom-up design process Refactoring A large example Today Software Design Refactoring Workflows of refactoring Introduce persistence

More information

ERICH PRIMEHAMMER REFACTORING

ERICH PRIMEHAMMER REFACTORING ERICH KADERKA @ PRIMEHAMMER REFACTORING WHAT IS REFACTORING? Martin Fowler: Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of

More information

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE cse331-staff@cs.washington.edu slides borrowed and adapted from Alex Mariakis and CSE 390a OUTLINE Introductions Code Reasoning Version control IDEs

More information

Testing with JUnit 1

Testing with JUnit 1 Testing with JUnit 1 What are we doing here? Learning the mechanics of how to write tests in Java using JUnit Without considering issues like coverage Using JUnit is sometimes called unit testing Unit

More information

the gamedesigninitiative at cornell university Lecture 12 Architecture Design

the gamedesigninitiative at cornell university Lecture 12 Architecture Design Lecture 12 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams

More information

CISC 3140 (CIS 20.2) Design & Implementation of Software Application II

CISC 3140 (CIS 20.2) Design & Implementation of Software Application II CISC 3140 (CIS 20.2) Design & Implementation of Software Application II Instructor : M. Meyer Email Address: meyer@sci.brooklyn.cuny.edu Course Page: http://www.sci.brooklyn.cuny.edu/~meyer/ CISC3140-Meyer-lec4

More information

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are

More information

Computer Components. Software{ User Programs. Operating System. Hardware

Computer Components. Software{ User Programs. Operating System. Hardware Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point

More information

Mobile Web from the RPG and Dojo Perspectives

Mobile Web from the RPG and Dojo Perspectives Mobile Web from the RPG and Dojo Perspectives IBM has adopted the open-source Dojo toolkit as its internal standard! Is Open Source relevant to the IBM ILE community? How does Open Source Web and ILE work

More information

Stage 11 Array Practice With. Zip Code Encoding

Stage 11 Array Practice With. Zip Code Encoding A Review of Strings You should now be proficient at using strings, but, as usual, there are a few more details you should know. First, remember these facts about strings: Array Practice With Strings are

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem

More information

CPSC 427a: Object-Oriented Programming

CPSC 427a: Object-Oriented Programming CPSC 427a: Object-Oriented Programming Michael J. Fischer Lecture 1 September 2, 2010 CPSC 427a 1/54 Overview Course information Goals Learning C++ Programming standards Comparison of C and C++ Example

More information

COURSE 11 DESIGN PATTERNS

COURSE 11 DESIGN PATTERNS COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/

More information

I Want To Go Faster! A Beginner s Guide to Indexing

I Want To Go Faster! A Beginner s Guide to Indexing I Want To Go Faster! A Beginner s Guide to Indexing Bert Wagner Slides available here! @bertwagner bertwagner.com youtube.com/c/bertwagner bert@bertwagner.com Why Indexes? Biggest bang for the buck Can

More information

CS Lecture 19: Loop invariants

CS Lecture 19: Loop invariants CS 1110 Lecture 19: Loop invariants Announcements Prelim 2 conflicts Today (April 2) is two weeks before the prelim, and the deadline for submitting prelim conflicts. Instructor travel This week and the

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, July 2017

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, July 2017 News in RSA-RTE 10.1 updated for sprint 2017.28 Mattias Mohlin, July 2017 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10 and

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: WSAD. J2EE business topologies. Workbench. Project. Workbench components. Java development tools. Java projects

More information

RUP for Systems Z and other Legacy Systems

RUP for Systems Z and other Legacy Systems IBM Software Group RUP for Systems Z and other Legacy Systems Susan M Burk Senior Managing Consultant IBM smburk@us.ibm.com 413-726-9361 2006 IBM Corporation Agenda Objectives A Quick Introduction to RUP

More information

What's that? Why? Is one "better" than the other? Terminology. Comparison. Loop testing. Some experts (e.g. Pezze & Young) call it structural testing

What's that? Why? Is one better than the other? Terminology. Comparison. Loop testing. Some experts (e.g. Pezze & Young) call it structural testing Week 9: More details of white-box testing What is it? Comparison with black-box testing What we should not validate Automated versus interactive testing Testing conditional and loop constructs COMP 370

More information

Page 1. Human-computer interaction. Lecture 1b: Design & Implementation. Building user interfaces. Mental & implementation models

Page 1. Human-computer interaction. Lecture 1b: Design & Implementation. Building user interfaces. Mental & implementation models Human-computer interaction Lecture 1b: Design & Implementation Human-computer interaction is a discipline concerned with the design, implementation, and evaluation of interactive systems for human use

More information

Introduction to Automated Unit Testing (xunit) Brian Nielsen Arne Skou

Introduction to Automated Unit Testing (xunit) Brian Nielsen Arne Skou Introduction to Automated Unit Testing (xunit) Brian Nielsen Arne Skou {bnielsen ask}@cs.aau.dk Conventional Test Execution Ad hoc manner Manual stimulation & observation E.g. adding a function to a module,

More information