BPM optimization Part 1: Introduction to BPM code optimization
|
|
- Marybeth Morris
- 6 years ago
- Views:
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 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 informationIII. 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 informationThe 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 informationAbout 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 informationC++ (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 informationTHINGS 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 informationIMI 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 information6 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 informationLECTURE 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 informationSLIDE 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 informationThe 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 informationArchives 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 informationWorkshop 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 informationHP 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 informationCS2 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 information6.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 information9/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 informationQuest 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 informationOptimize 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 informationCreating 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 informationFramework 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 informationCS103 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 informationprintf( 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 informationAccelerating 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 informationACL 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 informationIn 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 informationAlgorithm 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 informationChapter 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 informationFile 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 informationAssignment #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 information19 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 informationLecture 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 informationMost 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 informationFormal 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 informationBits, 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 informationCSCIE-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 informationChapter 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 informationIt 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 informationPRINCIPLES 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 informationSoftware 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 information14.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 informationFinal 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 informationCSE 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 informationControl 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 informationLaunching 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 informationIntegration 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 informationEngineering 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 informationProcess- 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 informationIn 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 informationEXAM 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 informationHidden 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 informationMulti-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 informationDesigning 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 informationCompilers 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 informationSECURITY 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 informationSTUDENT 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 informationPost 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 informationPerformance 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 informationSAS 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 informationTesting! 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 informationHorn 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 informationS1000D 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 informationSeminar 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 informationarxiv: 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 informationThe 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 informationMICROPROGRAMMED 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 informationModule 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 informationStrong 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 informationBCS 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 informationFLOWCHARTS 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 informationGUIDELINES 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 informationPROBLEM 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 informationPhotoshop 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 informationDatabase 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 information2 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 informationhttps://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 informationData 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 informationPortfolio 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 informationIJESMR 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 informationApplying 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 informationAlgorithms 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 informationClearSpeed 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 informationEffective 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 informationACM 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 informationWhat 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 informationThe 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 informationChapter 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 informationProgram 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 informationArrays 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 informationThis 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 informationSystem 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 informationHow 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 informationHappy 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 informationAnalysis 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 informationExpressions & Assignment Statements
Expressions & Assignment Statements 1 Topics Introduction Arithmetic Expressions Overloaded Operators Type Conversions Relational and Boolean Expressions Short-Circuit Evaluation Assignment Statements
More informationTIM 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 informationCPSC 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 information5 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 informationRecent 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 informationIt 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