BPM optimization Part 1: Introduction to BPM code optimization

Size: px
Start display at page:

Download "BPM optimization Part 1: Introduction to BPM code optimization"

Transcription

1 BPM optimization Part 1: Introduction to BPM code optimization XPDL source code tuning 4/12/2012 IBM Lukasz Osuszek Abstract: This article describes how optimization techniques characteristic of source code optimization and tuning are applicable to BPM. An example of using tweaking methods with BPM is presented resulting in better performance and cost savings About the author: Lukasz Osuszek is with IBM ECM technology pre-sales, architect and technical support for IBM FileNet P8. He has eight years experience in ECM area, and four years experience in IBM Polish Software Group. Reach out to him at

2 BPM code BPM systems are a type of high-level programming tools, and workflow map optimization (optimization of algorithms created by process engines) may be treated as code optimization. This is subject to the same laws and dependencies as the optimization of algorithms created in Java or C++ engines. Process engines (such as the P8 BPM Process Engine) interpret the algorithm of a workflow map recorded in a graphic form (XPDL). This three part article present ways, in which traditional algorithm optimization techniques, may be applied in the process of business process optimization in BPM environment. Performance optimization is usually considered the final phase of application code streamlining. Therefore, it seems correct to treat code optimization as a complex process comprised of several phases. Better results are achieved when optimization is used early in the project. Yet we should not get paranoid and try to optimize each line of the code. A holistic approach to the process is preferred here, as well as identifying weaknesses and so-called bottlenecks with reference to the project as a whole. Once a problem is identified, it should not be addressed right away but subsequent steps in the algorithm should be analyzed and a comprehensive view of the problem should be adopted. Sometimes the right solution lays one step ahead. Optimization algorithms described here are based on the top-down algorithm - from a higher level of abstraction towards the lower, more detailed one. This article should help business consultants and P8 engineers better analyze and optimize workflow maps. After reading this material it will be easy to find some of the patterns and workflow map fragments which could be easily optimized, according to guidelines form this article. Readers should consider reviewing and analyzing existing workflow maps for BPM code optimization. Optimization process 1. Problem identification and understanding. We should start by identifying the process which is most inefficient. Analysis phase could be supported by data from IBM Business Activity Monitor (BAM). After finding the candidate for optimization, we need to find the culprit, i.e. determine the place and reason for business process slowdown. In order to locate a bottleneck, it is best to make use of one of BPM system simulation and analysis programs available on the market. P8 BPM Process Analyzer (now Case Analyzer) and Process Simulator are among the most popular. The "divide and conquer" method is perfect for business process analysis and profiling purposes. It consists in dividing a given task (map/algorithm) into several smaller parts that are further subdivided until the problem is reanalyzed as a set of basic subproblems. Once this is done, we can solve the sub-problems and then put them back together to get the final result. After locating the problem we can start the process of optimization. 2. Algorithm 2

3 The first step consists in a thorough analysis and monitoring of the algorithm's block performance. In the case of BPM this is equivalent to understanding the logic of a given business process. Without starting to "feel" the essence of the algorithm's functioning, further optimization works seem not to have much sense. What seems most effective is a holistic approach that allows for treating the algorithm as a whole and not just a sum of its individual parts. 3. Code Another phase consists in checking algorithm (i.e. process) implementation. This requires taking a deeper look into the logic of subsequent process steps - both routes, and their related logical conditions as well as loops, comparisons, text data operations and other components are assigned to subsequent steps of the workflow map. Figure 1. Example of a conditional loop. In our first approach we should create a maximally simplified code. This will constitute the "initial" version of the code we will be working on. The "divide and conquer" method will be used here again in the case of more complicated algorithms in order to divide them into less complicated parts. This process facilitates the understanding of algorithm functioning and implementation. It also facilitates the work of the compiler. Figure 2. Top-level Process as divided into sub-processes. After providing a theoretical background, it is now time to get to the practical aspects of optimization. Below you will find some practical guidelines concerning code optimization: Do not change too much at one go Do not expect dramatic improvement in application performance after a single fix 3

4 Test and compare the existing techniques/algorithms or those proposed by others with your own Remember that sometimes weaker performance in one area may result in increased performance of the whole application Always try to be open-minded - the more solutions you provide, the better your results may be Make use of every piece of information or technical expertise concerning the problem you are working on Look at the problem as a whole from time to time so that you can focus on the actual issue to be solved - sometimes solving a problem in one area may cause trouble somewhere else. You need to monitor the whole application from time to time. Optimization methods Application optimization is a recursive process. It is important to decide when the optimization process should be concluded. It is an easy task if the application's performance level is determined up front. As for example, if according to the project guidelines, image transfer from the server to the customer must take less than 3 seconds, the process of optimization is complete after reaching that threshold. However, most tasks have no clear requirements of this type and sometimes "the faster, the better" approach makes the business analyst lost in the never-ending optimization process. Generally speaking, the problem should be approached in a reasonable and individual manner. There are two types of optimization: 1. Code optimization in the narrow sense and optimization techniques. When writing a code, we can always solve a given task in several ways. Some of them will significantly improve performance. This passive type of optimization is the socalled "code style" optimization (code optimization in the narrow sense). 2. Active optimization means using optimization techniques to eliminate bottlenecks in the application. A set of optimization techniques which are also applicable when working with Workflow paths defined for the needs of BPM is presented below. Using variables In traditional programming environments, local variables should be chosen over wider scope variables. Local variables are those communicated as parameters and declared internally within a function/procedure. Only local variables may be transformed into register variables, and a register variable equals greater speed! Sometimes it is better to copy global data into local variables before using them. This technique is best used with reference to loop variables. Such operations boost the speed of variable copying, which drives better performance. In the case of P8 BPM and maps created with the use of Process Designer, however, the only available option is to use global variables. Yet the rule saying that local variables should be chosen over the global ones has one exception. This applies to arrays with simple types. If the size and components of the array 4

5 are constant, declaring the array global will save register work. These savings will become significant if we are dealing with defined, constant structures. In P8 BPM, the whole set of process variables is stored in database structures. Variables declared as an array are stored in a separate array dedicated to complex formats. Thanks to external tools tracing the index database load, we can check which approach (several simple variables or array of such types) is more optimal in a given case. Loops In the case of small loops in the algorithm, it is worth using the "loop shortening" method. Generally speaking, it consists in doing what originally required several interactions within a single loop route. This allows for the reduction of costs related to the loop overload. I recommend this technique in the case of loops whose overload is always costly. Examples are provided below: Figure 3. Loop for consisting of three steps The first step checks the condition for continuing the loop - reads the value of the condition parameter and performs a given route, depending on the truth value of the logical condition. Figure 4. for_begin step assignment The "create folders" step is the body of the loop. It is aimed at creating a particular folder structure. 5

6 Figure 5. Loop body The last step consists of increasing the loop counter by one value. Figure 6. Loop counter increasing After the loop shortening operation is completed, the code will look as follows: The "create folder" procedure is invoked again within the create folders step, with a modified value of proparray parameters: {"FolderName", "STRING", "Folder"+convert(counter+1, string)} The for_end step has been modified, increasing the loop counter: Counter = Counter +2 According to the conducted analyses, the cost-effectiveness limit for the "loop shortening" method is exceeded with a ratio greater than 4. Since we have already mentioned loops, another good practice is to avoid conditional expressions and logical conditions testing within them. Most logical tests within the loop can be eliminated by SPP or by dividing the loop into two or more loops. One of the most important optimization techniques related to loops is reducing the number of loop conditions. Using loops which are based on several logical conditions is a frequent programming strategy. For instance, if a given condition is true and the loop index is lower than a certain preset value, a loop should be created. In the case of small loops (often consisting solely of the loop index increments), the total cost of loop creation is equivalent to verifying loop conditions. Reducing the number of loop conditions almost 6

7 always results in increased algorithm performance. The algorithm for looking for an appropriate character in a chain is a fundamental example of such regularity: i = 1; l = Length(s); while ((i <= l) and (s[i] <> c)) do inc(i); Note: Placing the wanted character at the end of the chain (which is an example of using the so-called sentinel) results in combining the two conditions: Figure 7. Adding a sentinel to the loop while As a result, we double the algorithm's speed. This technique is very often used together with the SPP. Case design A lot can be achieved by optimizing algorithms containing the Case expression. This expression is quite complicated for the compiler and requires much work. First, the list of values/ranges undergoes classification (which leads to the conclusion that the order of the conditions is irrelevant). Then the compiler uses a binary comparison tree and the constructed jump address table to check the conditions of the case expression. The algorithm is repeated until all the cases are processed. As you can see, the structure of the tree is crucial for optimization. Therefore, if we are able to group conditions, it is good to create separate case designs for each of the ranges. 7

8 Figure 8. Case structure representation in XPDL Example: Case x of 100 : proc1; 101 : proc2; 102 : proc3; 103 : proc4; 104 : proc5; 105 : proc6; 200 : proc9; 201 : proc10; 202 : proc11; 203 : proc12; 204 : proc13; end; Should be replaced with: Case x of : case x of 100 : proc1; 101 : proc2; 102 : proc3; 103 : proc4; 104 : proc5; 105 : proc6; end; : case x of 200 : proc9; 201 : proc10; 202 : proc11; 203 : proc12; 204 : proc13; end; end; 8

9 Summary Optimization is one of the most important branches of software engineering. The process of optimization often stands opposite to other processes and goals of software engineering. As creators, we must choose between system stability, compactness, transferability and speed. Nevertheless, at the level of the code - represented by the XPDL diagram - optimization is desirable and always beneficial. By combination of advices presented in this material and tools for process simulation, it s easy to prove values of workflow map optimization. I encourage to experiments with BPM code optimization and analyzing results with Process Simulators. Such approach guarantees effectiveness of optimization. More of the optimization techniques are described in the rest of article series. Further part introduces innovative methods of Business Process optimization: Renders conversion of XPDL workflows into Petri Network Modeling Notation for optimization in category of time consumption - which results in tangible savings and economical benefits. Presents workflow map optimization by using multi- Objective algorithms. Application of multi-objective optimization algorithms to enable fully automated optimization of the Workflow map. The mathematical model of the business process may be subject to specific multi-criteria optimization algorithms Resources Heiko Falk, Peter Marwedel, Source code optimization techniques for data flow dominated embedded software,

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

III. Check if the divisors add up to the number. Now we may consider each of these tasks separately, assuming the others will be taken care of

III. Check if the divisors add up to the number. Now we may consider each of these tasks separately, assuming the others will be taken care of Top-Down Design 1 Top-Down Design: A solution method where the problem is broken down into smaller sub-problems, which in turn are broken down into smaller subproblems, continuing until each sub-problem

More information

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements Journal of Software Engineering and Applications, 2016, 9, 112-127 Published Online April 2016 in SciRes. http://www.scirp.org/journal/jsea http://dx.doi.org/10.4236/jsea.2016.94010 The Analysis and Proposed

More information

About HP Quality Center Upgrade... 2 Introduction... 2 Audience... 2

About HP Quality Center Upgrade... 2 Introduction... 2 Audience... 2 HP Quality Center Upgrade Best Practices White paper Table of contents About HP Quality Center Upgrade... 2 Introduction... 2 Audience... 2 Defining... 3 Determine the need for an HP Quality Center Upgrade...

More information

C++ (Non for C Programmer) (BT307) 40 Hours

C++ (Non for C Programmer) (BT307) 40 Hours C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular

More information

THINGS YOU NEED TO KNOW ABOUT USER DOCUMENTATION DOCUMENTATION BEST PRACTICES

THINGS YOU NEED TO KNOW ABOUT USER DOCUMENTATION DOCUMENTATION BEST PRACTICES 5 THINGS YOU NEED TO KNOW ABOUT USER DOCUMENTATION DOCUMENTATION BEST PRACTICES THIS E-BOOK IS DIVIDED INTO 5 PARTS: 1. WHY YOU NEED TO KNOW YOUR READER 2. A USER MANUAL OR A USER GUIDE WHAT S THE DIFFERENCE?

More information

IMI WHITE PAPER INFORMATION MAPPING AND DITA: TWO WORLDS, ONE SOLUTION

IMI WHITE PAPER INFORMATION MAPPING AND DITA: TWO WORLDS, ONE SOLUTION n ao in i f rpp a t IMI WHITE PAPER INFORMATION MAPPING AND DITA: TWO WORLDS, ONE SOLUTION Abstract Introduction Information Mapping is a structured writing method with a long and successful history. It

More information

6 TOOLS FOR A COMPLETE MARKETING WORKFLOW

6 TOOLS FOR A COMPLETE MARKETING WORKFLOW 6 S FOR A COMPLETE MARKETING WORKFLOW 01 6 S FOR A COMPLETE MARKETING WORKFLOW FROM ALEXA DIFFICULTY DIFFICULTY MATRIX OVERLAP 6 S FOR A COMPLETE MARKETING WORKFLOW 02 INTRODUCTION Marketers use countless

More information

LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS

LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS Department of Computer Science University of Babylon LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS By Faculty of Science for Women( SCIW), University of Babylon, Iraq Samaher@uobabylon.edu.iq

More information

SLIDE 2. At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject?

SLIDE 2. At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject? SLIDE 2 At the beginning of the lecture, we answer question: On what platform the system will work when discussing this subject? We have two systems: Widnows and Linux. The easiest solution is to use the

More information

The Trustworthiness of Digital Records

The Trustworthiness of Digital Records The Trustworthiness of Digital Records International Congress on Digital Records Preservation Beijing, China 16 April 2010 1 The Concept of Record Record: any document made or received by a physical or

More information

Archives in a Networked Information Society: The Problem of Sustainability in the Digital Information Environment

Archives in a Networked Information Society: The Problem of Sustainability in the Digital Information Environment Archives in a Networked Information Society: The Problem of Sustainability in the Digital Information Environment Shigeo Sugimoto Research Center for Knowledge Communities Graduate School of Library, Information

More information

Workshop with ROCKWOOL editors. Helle Jensen, Senior ux consultant

Workshop with ROCKWOOL editors. Helle Jensen, Senior ux consultant Workshop with ROCKWOOL editors Helle Jensen, Senior ux consultant Agenda 1. Intro to UX and customer journeys 2. Intro to web content 3. Intro to blocks in EpiServer 4. Content guidelines 5. Exercise:

More information

HP Application Lifecycle Management. Upgrade Best Practices

HP Application Lifecycle Management. Upgrade Best Practices HP Application Lifecycle Management Upgrade Best Practices Document Release Date: October 2010 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty

More information

CS2 Algorithms and Data Structures Note 1

CS2 Algorithms and Data Structures Note 1 CS2 Algorithms and Data Structures Note 1 Analysing Algorithms This thread of the course is concerned with the design and analysis of good algorithms and data structures. Intuitively speaking, an algorithm

More information

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5.

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5. Page 1 of 5 6.170 Laboratory in Software Engineering Java Style Guide Contents: Overview Descriptive names Consistent indentation and spacing Informative comments Commenting code TODO comments 6.170 Javadocs

More information

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement

9/21/17. Outline. Expression Evaluation and Control Flow. Arithmetic Expressions. Operators. Operators. Notation & Placement Outline Expression Evaluation and Control Flow In Text: Chapter 6 Notation Operator evaluation order Operand evaluation order Overloaded operators Type conversions Short-circuit evaluation of conditions

More information

Quest Central for DB2

Quest Central for DB2 Quest Central for DB2 INTEGRATED DATABASE MANAGEMENT TOOLS Supports DB2 running on Windows, Unix, OS/2, OS/390 and z/os Integrated database management components are designed for superior functionality

More information

Optimize Data Structures and Memory Access Patterns to Improve Data Locality

Optimize Data Structures and Memory Access Patterns to Improve Data Locality Optimize Data Structures and Memory Access Patterns to Improve Data Locality Abstract Cache is one of the most important resources

More information

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning Creating an Intranet using Lotus Web Content Management Introduction Part 2 Project Planning Many projects have failed due to poor project planning. The following article gives an overview of the typical

More information

Framework for Design of Dynamic Programming Algorithms

Framework for Design of Dynamic Programming Algorithms CSE 441T/541T Advanced Algorithms September 22, 2010 Framework for Design of Dynamic Programming Algorithms Dynamic programming algorithms for combinatorial optimization generalize the strategy we studied

More information

CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist

CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist CS103 Handout 29 Winter 2018 February 9, 2018 Inductive Proofwriting Checklist In Handout 28, the Guide to Inductive Proofs, we outlined a number of specifc issues and concepts to be mindful about when

More information

printf( Please enter another number: ); scanf( %d, &num2);

printf( Please enter another number: ); scanf( %d, &num2); CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful

More information

Accelerating RTL Simulation Techniques by Lior Grinzaig, Verification Engineer, Marvell Semiconductor Ltd.

Accelerating RTL Simulation Techniques by Lior Grinzaig, Verification Engineer, Marvell Semiconductor Ltd. Accelerating RTL Simulation Techniques by Lior Grinzaig, Verification Engineer, Marvell Semiconductor Ltd. Long simulation run times are a bottleneck in the verification process. A lengthy delay between

More information

ACL Interpretive Visual Remediation

ACL Interpretive Visual Remediation January 2016 ACL Interpretive Visual Remediation Innovation in Internal Control Management SOLUTIONPERSPECTIVE Governance, Risk Management & Compliance Insight 2015 GRC 20/20 Research, LLC. All Rights

More information

In this chapter you ll learn:

In this chapter you ll learn: Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd Will you walk a little faster? said a whiting to a snail, There s a porpoise close behind us, and he s treading on

More information

Algorithm Efficiency & Sorting. Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms

Algorithm Efficiency & Sorting. Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms Algorithm Efficiency & Sorting Algorithm efficiency Big-O notation Searching algorithms Sorting algorithms Overview Writing programs to solve problem consists of a large number of decisions how to represent

More information

Chapter 8 Virtual Memory

Chapter 8 Virtual Memory Operating Systems: Internals and Design Principles Chapter 8 Virtual Memory Seventh Edition William Stallings Operating Systems: Internals and Design Principles You re gonna need a bigger boat. Steven

More information

File Systems: Allocation Issues, Naming, and Performance CS 111. Operating Systems Peter Reiher

File Systems: Allocation Issues, Naming, and Performance CS 111. Operating Systems Peter Reiher File Systems: Allocation Issues, Naming, and Performance Operating Systems Peter Reiher Page 1 Outline Allocating and managing file system free space File naming and directories File volumes File system

More information

Assignment #1 Simple C++

Assignment #1 Simple C++ Eric Roberts Handout #5 CS 106B January 7, 2015 Assignment #1 Simple C++ Due: Friday, January 16 Part 1. Get Qt Creator working Parts of this handout were written by Julie Zelenski. Your first task is

More information

19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd

19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd 19 Much that I bound, I could not free; Much that I freed returned to me. Lee Wilson Dodd Will you walk a little faster? said a whiting to a snail, There s a porpoise close behind us, and he s treading

More information

Lecture Notes on Contracts

Lecture Notes on Contracts Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,

More information

Most real programs operate somewhere between task and data parallelism. Our solution also lies in this set.

Most real programs operate somewhere between task and data parallelism. Our solution also lies in this set. for Windows Azure and HPC Cluster 1. Introduction In parallel computing systems computations are executed simultaneously, wholly or in part. This approach is based on the partitioning of a big task into

More information

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 [talking head] Formal Methods of Software Engineering means the use of mathematics as an aid to writing programs. Before we can

More information

Bits, Words, and Integers

Bits, Words, and Integers Computer Science 52 Bits, Words, and Integers Spring Semester, 2017 In this document, we look at how bits are organized into meaningful data. In particular, we will see the details of how integers are

More information

CSCIE-275. Guide for Chief Programmers

CSCIE-275. Guide for Chief Programmers CSCIE-275 Guide for Chief Programmers Serguei Khramtchenko Apr 2006 1 1. Preface... 3 2. Design walkthrough meeting... 4 2.1 Choosing features for an iteration... 4 2.2 Preparing design for walkthrough

More information

Chapter 10 - Computer Arithmetic

Chapter 10 - Computer Arithmetic Chapter 10 - Computer Arithmetic Luis Tarrataca luis.tarrataca@gmail.com CEFET-RJ L. Tarrataca Chapter 10 - Computer Arithmetic 1 / 126 1 Motivation 2 Arithmetic and Logic Unit 3 Integer representation

More information

It s possible to get your inbox to zero and keep it there, even if you get hundreds of s a day.

It s possible to get your  inbox to zero and keep it there, even if you get hundreds of  s a day. It s possible to get your email inbox to zero and keep it there, even if you get hundreds of emails a day. It s not super complicated, though it does take effort and discipline. Many people simply need

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 Agile Methodologies: XP 1 extreme Programming (XP) Developed by Beck in 1996. The first authentic XP book appeared in 1999, with a revised

More information

14.1 Encoding for different models of computation

14.1 Encoding for different models of computation Lecture 14 Decidable languages In the previous lecture we discussed some examples of encoding schemes, through which various objects can be represented by strings over a given alphabet. We will begin this

More information

Final Project Report

Final Project Report 16.04.02 Final Project Report Document information Project Title HP Tool Repository of SESAR standard HP methods and tools Project Number 16.04.02 Project Manager DFS Deliverable Name 16.04.02 Final Project

More information

CSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)

CSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) CSE 413 Languages & Implementation Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) 1 Goals Representing programs as data Racket structs as a better way to represent

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

Launching a Successful Online Business and EC Projects. Chapter 7

Launching a Successful Online Business and EC Projects. Chapter 7 Launching a Successful Online Business and EC Projects Chapter 7 Learning Objectives 1. Understand the fundamental requirements for initiating an online business. 2. Describe the process of initiating

More information

Integration With the Business Modeler

Integration With the Business Modeler Decision Framework, J. Duggan Research Note 11 September 2003 Evaluating OOA&D Functionality Criteria Looking at nine criteria will help you evaluate the functionality of object-oriented analysis and design

More information

Engineering program development. Edited by Péter Vass

Engineering program development. Edited by Péter Vass Engineering program development Edited by Péter Vass Introduction Question: Why engineering program development may be useful for a PhD student in Earth Sciences? Counter-argument: In these days a wide

More information

Process- Concept &Process Scheduling OPERATING SYSTEMS

Process- Concept &Process Scheduling OPERATING SYSTEMS OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne PROCESS MANAGEMENT Current day computer systems allow multiple

More information

In this third unit about jobs in the Information Technology field we will speak about software development

In this third unit about jobs in the Information Technology field we will speak about software development In this third unit about jobs in the Information Technology field we will speak about software development 1 The IT professionals involved in the development of software applications can be generically

More information

EXAM REF QUERYING DATA WITH TRANSACT-SQL BY ITZIK BEN-GAN

EXAM REF QUERYING DATA WITH TRANSACT-SQL BY ITZIK BEN-GAN Read Online and Download Ebook EXAM REF 70-761 QUERYING DATA WITH TRANSACT-SQL BY ITZIK BEN-GAN DOWNLOAD EBOOK : EXAM REF 70-761 QUERYING DATA WITH TRANSACT- SQL Click link bellow and free register to

More information

Hidden Loop Recovery for Handwriting Recognition

Hidden Loop Recovery for Handwriting Recognition Hidden Loop Recovery for Handwriting Recognition David Doermann Institute of Advanced Computer Studies, University of Maryland, College Park, USA E-mail: doermann@cfar.umd.edu Nathan Intrator School of

More information

Multi-threading technology and the challenges of meeting performance and power consumption demands for mobile applications

Multi-threading technology and the challenges of meeting performance and power consumption demands for mobile applications Multi-threading technology and the challenges of meeting performance and power consumption demands for mobile applications September 2013 Navigating between ever-higher performance targets and strict limits

More information

Designing Client/Server Applications for Performance

Designing Client/Server Applications for Performance Paper # 4014 Designing Client/Server Applications for Performance Dr. Mike W. Wang Subo Ko Information Systems Services and Technology Hewlett-Packard Company 3000 Hanover Street, Palo Alto, CA 94304 Phone:

More information

Compilers and Code Optimization EDOARDO FUSELLA

Compilers and Code Optimization EDOARDO FUSELLA Compilers and Code Optimization EDOARDO FUSELLA The course covers Compiler architecture Pre-requisite Front-end Strong programming background in C, C++ Back-end LLVM Code optimization A case study: nu+

More information

SECURITY AUTOMATION BEST PRACTICES. A Guide on Making Your Security Team Successful with Automation SECURITY AUTOMATION BEST PRACTICES - 1

SECURITY AUTOMATION BEST PRACTICES. A Guide on Making Your Security Team Successful with Automation SECURITY AUTOMATION BEST PRACTICES - 1 SECURITY AUTOMATION BEST PRACTICES A Guide on Making Your Security Team Successful with Automation SECURITY AUTOMATION BEST PRACTICES - 1 Introduction The best security postures are those that are built

More information

STUDENT OUTLINE. Lesson 8: Structured Programming, Control Structures, if-else Statements, Pseudocode

STUDENT OUTLINE. Lesson 8: Structured Programming, Control Structures, if-else Statements, Pseudocode STUDENT OUTLINE Lesson 8: Structured Programming, Control Structures, if- Statements, Pseudocode INTRODUCTION: This lesson is the first of four covering the standard control structures of a high-level

More information

Post processing optimization of byte-code instructions by extension of its virtual machine.

Post processing optimization of byte-code instructions by extension of its virtual machine. Proc. of the 20th Conf. of Electrical Engineering, Bangkok, 1997 Post processing optimization of byte-code instructions by extension of its virtual machine. Prabhas Chongstitvatana Department of Computer

More information

Performance Optimization for Informatica Data Services ( Hotfix 3)

Performance Optimization for Informatica Data Services ( Hotfix 3) Performance Optimization for Informatica Data Services (9.5.0-9.6.1 Hotfix 3) 1993-2015 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic,

More information

SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components

SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components PharmaSUG 2017 - Paper AD19 SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components Walter Hufford, Vincent Guo, and Mijun Hu, Novartis Pharmaceuticals Corporation ABSTRACT

More information

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013!

Testing! Prof. Leon Osterweil! CS 520/620! Spring 2013! Testing Prof. Leon Osterweil CS 520/620 Spring 2013 Relations and Analysis A software product consists of A collection of (types of) artifacts Related to each other by myriad Relations The relations are

More information

Horn Formulae. CS124 Course Notes 8 Spring 2018

Horn Formulae. CS124 Course Notes 8 Spring 2018 CS124 Course Notes 8 Spring 2018 In today s lecture we will be looking a bit more closely at the Greedy approach to designing algorithms. As we will see, sometimes it works, and sometimes even when it

More information

S1000D International Specification for Technical Publications

S1000D International Specification for Technical Publications S1000D International Specification for Technical Publications What is S1000D? S1000D is an international specification for the production of technical publications for any civil or military project. While

More information

Seminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Seminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE A Seminar report On Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: www.studymafia.org SUBMITTED BY: www.studymafia.org 1 Acknowledgement I would like

More information

arxiv: v1 [cs.se] 17 Aug 2016

arxiv: v1 [cs.se] 17 Aug 2016 Introduction to the Case Management Model and Notation (CMMN) arxiv:1608.05011v1 [cs.se] 17 Aug 2016 Mike A. Marin University of South Africa IBM Analytics Group mmarin@acm.org August 18, 2016 Abstract

More information

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER The Bizarre Truth! Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 TABLE OF CONTENTS 1. The context Introduction 2. The approach Know the difference

More information

MICROPROGRAMMED CONTROL

MICROPROGRAMMED CONTROL MICROPROGRAMMED CONTROL Hardwired Control Unit: When the control signals are generated by hardware using conventional logic design techniques, the control unit is said to be hardwired. Micro programmed

More information

Module 10 Inheritance, Virtual Functions, and Polymorphism

Module 10 Inheritance, Virtual Functions, and Polymorphism Module 10 Inheritance, Virtual Functions, and Polymorphism Table of Contents CRITICAL SKILL 10.1: Inheritance Fundamentals... 2 CRITICAL SKILL 10.2: Base Class Access Control... 7 CRITICAL SKILL 10.3:

More information

Strong signs your website needs a professional redesign

Strong signs your website needs a professional redesign Strong signs your website needs a professional redesign Think - when was the last time that your business website was updated? Better yet, when was the last time you looked at your website? When the Internet

More information

BCS Examination Guidance for the Practitioner Software Asset Management Examination

BCS Examination Guidance for the Practitioner Software Asset Management Examination BCS Examination Guidance for the Practitioner Software Asset Management Examination Version 1.2 August 2011 Contents Introduction...3 Entry Requirements For The Examination...3 Structure of the Examination...3

More information

FLOWCHARTS A flowchart is a graphical representation of the steps to be followed for solving problem. It consists of a set of symbols.

FLOWCHARTS A flowchart is a graphical representation of the steps to be followed for solving problem. It consists of a set of symbols. FLOWCHARTS A flowchart is a graphical representation of the steps to be followed for solving problem. It consists of a set of symbols. Each symbol represents a specific activity. A typical problem involves

More information

GUIDELINES FOR DATABASES AS PUBLIC RECORDS PURPOSE... 1 OVERVIEW... 1 POLICY GUIDELINES... 2 OFFICIAL REQUEST... 2 EXEMPT RECORDS... 2 REQUESTS FOR SPECIFIC RECORDS... 3 REQUEST FOR ENTIRE DATABASES OR

More information

PROBLEM SOLVING AND PYTHON PROGRAMMING

PROBLEM SOLVING AND PYTHON PROGRAMMING ALGORITHM UNIT-1 It is defined as a sequence of instructions that describe a method for solving a problem. In other words it is a step by step procedure for solving a problem. Properties of Algorithms

More information

Photoshop and Lightroom for Photographers

Photoshop and Lightroom for Photographers Photoshop and Lightroom for Photographers Topic 8 Introduction to Lightroom Learning Outcomes In this lesson, I want to introduce you to Lightroom, another very useful photo editing tool from Adobe. By

More information

Database Optimization

Database Optimization Database Optimization June 9 2009 A brief overview of database optimization techniques for the database developer. Database optimization techniques include RDBMS query execution strategies, cost estimation,

More information

2 TEST: A Tracer for Extracting Speculative Threads

2 TEST: A Tracer for Extracting Speculative Threads EE392C: Advanced Topics in Computer Architecture Lecture #11 Polymorphic Processors Stanford University Handout Date??? On-line Profiling Techniques Lecture #11: Tuesday, 6 May 2003 Lecturer: Shivnath

More information

https://asd-pa.perfplusk12.com/admin/admin_curric_maps_display.aspx?m=5507&c=618&mo=18917&t=191&sy=2012&bl...

https://asd-pa.perfplusk12.com/admin/admin_curric_maps_display.aspx?m=5507&c=618&mo=18917&t=191&sy=2012&bl... Page 1 of 13 Units: - All - Teacher: ProgIIIJavaI, CORE Course: ProgIIIJavaI Year: 2012-13 Intro to Java How is data stored by a computer system? What does a compiler do? What are the advantages of using

More information

Data Mining Part 3. Associations Rules

Data Mining Part 3. Associations Rules Data Mining Part 3. Associations Rules 3.2 Efficient Frequent Itemset Mining Methods Fall 2009 Instructor: Dr. Masoud Yaghini Outline Apriori Algorithm Generating Association Rules from Frequent Itemsets

More information

Portfolio Classified due to NDA agreements

Portfolio Classified due to NDA agreements Portfolio Classified due to NDA agreements www.overlap.studio Table of contents Project examples Case studies About us Clients Project examples Quick overview Project examples - quick overview Project

More information

IJESMR International Journal OF Engineering Sciences & Management Research

IJESMR International Journal OF Engineering Sciences & Management Research COMPARISON OF BUSINESS PROCESS MODELING STANDARDS Katalina Grigorova * 1, Kaloyan Mironov 2 *1 Department of Informatics and Information Technologies, University of Ruse, Bulgaria 2 Department of Informatics

More information

Applying Business Logic to a Data Vault

Applying Business Logic to a Data Vault Analysing the breadcrumbs Data can be described as the breadcrumbs of human activity, recorded in our information systems. It is the by-product of (business) processes - which themselves are organised

More information

Algorithms in Systems Engineering IE172. Midterm Review. Dr. Ted Ralphs

Algorithms in Systems Engineering IE172. Midterm Review. Dr. Ted Ralphs Algorithms in Systems Engineering IE172 Midterm Review Dr. Ted Ralphs IE172 Midterm Review 1 Textbook Sections Covered on Midterm Chapters 1-5 IE172 Review: Algorithms and Programming 2 Introduction to

More information

ClearSpeed Visual Profiler

ClearSpeed Visual Profiler ClearSpeed Visual Profiler Copyright 2007 ClearSpeed Technology plc. All rights reserved. 12 November 2007 www.clearspeed.com 1 Profiling Application Code Why use a profiler? Program analysis tools are

More information

Effective Collaboration Techniques for the Architect and Consulting Engineer Using Copy/Monitor in Autodesk Revit

Effective Collaboration Techniques for the Architect and Consulting Engineer Using Copy/Monitor in Autodesk Revit Effective Collaboration Techniques for the Architect and Consulting Engineer Using Copy/Monitor in Autodesk Revit AB5281-V This class will move you beyond the basics of the project execution plan and will

More information

ACM Technical Solution Architecture - Development and Deployment of ACM Solutions- ECM Fast Start Workshop 1Q2011

ACM Technical Solution Architecture - Development and Deployment of ACM Solutions- ECM Fast Start Workshop 1Q2011 ACM Technical Solution Architecture - Development and Deployment of ACM Solutions- ECM Fast Start Workshop 1Q2011 IBM ECM Worldwide Business Partner Technical Enablement Dr. Sebastian Goeser gsr@de.ibm.com

More information

What is Iteration? CMPT-101. Recursion. Understanding Recursion. The Function Header and Documentation. Recursively Adding Numbers

What is Iteration? CMPT-101. Recursion. Understanding Recursion. The Function Header and Documentation. Recursively Adding Numbers What is Iteration? CMPT-101 Week 6 Iteration, Iteration, Iteration, Iteration, Iteration, Iteration,... To iterate means to do the same thing again and again and again and again... There are two primary

More information

The Composition of Number

The Composition of Number An introduction to The Composition of Number Original Work in the Field of Theoretical Mathematics Barbara Mae Brunner Revision 1.1.0 Copyright 1995-2002, Barbara Mae Brunner, All Rights Reserved bmb192@earthlink.net

More information

Chapter Two - SRAM 1. Introduction to Memories. Static Random Access Memory (SRAM)

Chapter Two - SRAM 1. Introduction to Memories. Static Random Access Memory (SRAM) 1 3 Introduction to Memories The most basic classification of a memory device is whether it is Volatile or Non-Volatile (NVM s). These terms refer to whether or not a memory device loses its contents when

More information

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

Arrays are a very commonly used programming language construct, but have limited support within relational databases. Although an XML document or

Arrays are a very commonly used programming language construct, but have limited support within relational databases. Although an XML document or Performance problems come in many flavors, with many different causes and many different solutions. I've run into a number of these that I have not seen written about or presented elsewhere and I want

More information

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping. i About the Tutorial SDLC stands for Software Development Life Cycle. SDLC is a process that consists of a series of planned activities to develop or alter the Software Products. This tutorial will give

More information

System Analysis & design

System Analysis & design Assiut University Faculty of Computers and Information System Analysis & design Year 2 Academic Year 2014/ 2015 Term (2) 5 A PICTURE IS WORTH A 1,000 WORDS A process model is a graphical way of representing

More information

How to Get Your Inbox to Zero Every Day

How to Get Your Inbox to Zero Every Day How to Get Your Inbox to Zero Every Day MATT PERMAN WHATSBESTNEXT.COM It s possible to get your email inbox to zero and keep it there, even if you get hundreds of emails a day. It s not super complicated,

More information

Happy Birthday, Ajax4jsf! A Progress Report

Happy Birthday, Ajax4jsf! A Progress Report Happy Birthday, Ajax4jsf! A Progress Report By Max Katz, Senior Systems Engineer, Exadel Ajax4jsf is turning one soon and what a year it will have been. It was an amazing ride for all of us here at Exadel.

More information

Analysis of BPMN Models

Analysis of BPMN Models Analysis of BPMN Models Addis Gebremichael addisalemayehu.gebremichael@student.uantwerpen.be Abstract The Business Process Modeling Notation (BPMN) is a standard notation for capturing business processes,

More information

Expressions & Assignment Statements

Expressions & Assignment Statements Expressions & Assignment Statements 1 Topics Introduction Arithmetic Expressions Overloaded Operators Type Conversions Relational and Boolean Expressions Short-Circuit Evaluation Assignment Statements

More information

TIM 206 Lecture Notes Integer Programming

TIM 206 Lecture Notes Integer Programming TIM 206 Lecture Notes Integer Programming Instructor: Kevin Ross Scribe: Fengji Xu October 25, 2011 1 Defining Integer Programming Problems We will deal with linear constraints. The abbreviation MIP stands

More information

CPSC 3740 Programming Languages University of Lethbridge. Control Structures

CPSC 3740 Programming Languages University of Lethbridge. Control Structures Control Structures A control structure is a control statement and the collection of statements whose execution it controls. Common controls: selection iteration branching Control Structures 1 15 Howard

More information

5 The Control Structure Diagram (CSD)

5 The Control Structure Diagram (CSD) 5 The Control Structure Diagram (CSD) The Control Structure Diagram (CSD) is an algorithmic level diagram intended to improve the comprehensibility of source code by clearly depicting control constructs,

More information

Recent Design Optimization Methods for Energy- Efficient Electric Motors and Derived Requirements for a New Improved Method Part 3

Recent Design Optimization Methods for Energy- Efficient Electric Motors and Derived Requirements for a New Improved Method Part 3 Proceedings Recent Design Optimization Methods for Energy- Efficient Electric Motors and Derived Requirements for a New Improved Method Part 3 Johannes Schmelcher 1, *, Max Kleine Büning 2, Kai Kreisköther

More information

It can be confusing when you type something like the expressions below and get an error message. a range variable definition a vector of sine values

It can be confusing when you type something like the expressions below and get an error message. a range variable definition a vector of sine values 7_april_ranges_.mcd Understanding Ranges, Sequences, and Vectors Introduction New Mathcad users are sometimes confused by the difference between range variables and vectors. This is particularly true considering

More information