W ork O n W orkflows

Post on 12-Jan-2016

43 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

W ork O n W orkflows. Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System Architect ) Amol Joshi (System Integrator) Chaitanya Korgaonkar (Verifier and Validator). Why WoW ? (Our Motivation). Need to simulate workflows of complex processes - PowerPoint PPT Presentation

Transcript

Dharmen Mehta (Project Manager)

Nimai Buch (Language Guru)

Yash Parikh (System Architect)

Amol Joshi (System Integrator)

Chaitanya Korgaonkar (Verifier and Validator)

Need to simulate workflows of complex processes

This stuff can get complex !!

No kidding !

Need to simulate workflows of complex processes

Need to KISS !! (Keep It Simple Silly)

A means to analyze and produce statistical results

A language designed to handle workflows in industries

Java-like syntax

Aimed at easier design, simulation and analysis of workflows

• Resource• Final• Times

(x)

• Nodes• Input• output

• Connections

• Computations

• End Block

Resources Block

Nodes Block

Connections Block

End BlockCompute Block

The New Guys

WoWNode

WoWNodes

x

convert, combine

WoW Library

The Old Timers

int

String

double

boolean

if, foreach, while…

Source Program

*.WoW

Library Functions Package

Lexer

WoW.jflex

Parser

WoW.y

AST Traversal

WoW.y

NodeThread.java

Target Program

MainClass.java

Symbol

Table

Hash Tables

ConnectionChecks.java

top_include_target.txt

end_include_target.txt

Use JVM on user’s environmentMakefile!

translatewowcompilewowrun

Runtime script executes the Parser on the WoW program./wow WoWPrograms/Audi.WoW

Testing of the WoW compiler is done by comparing the translated Java code of a WoW program with the expected Java code.

Ideally translation should fail if there are compilation errors in WoW program.

If mismatch between translated java and expected java then test case fails.

test_script.shTests all the test programs in a loop. Outputs the number of test cases run and the result of the testing.

compare_java.shHelper script called by test_script.sh which does actual part of comparing the two java   programs using the diff command.

#!/bin/bashjava_count=0total_java=0for D in `find Test -type d`doif [ "${D}" != "Test" ]    thenname=$(basename ${D})java_test=$(./compare_java.sh $name)if [[ "$java_test" == *passed* ]]thenjava_count=`expr $java_count + 1`fiecho $java_test        total_java=`expr $total_java + 1`    fidoneecho "$java_count of $total_java Java tests passed”

#!/bin/shif diff -w -E -b -B "Test/$1/Translated.java"

"Test/$1/ExpectedJava.java" >/dev/null ; thenecho $1 Java test passed!elseecho $1 Java test failed!fi

HelloWorld.wow

OneNodeOnlyCombine.wow

TwoNodes.wow

TwoNodesMultipleOutput.wow

ThreeNodesLinear.wow

ThreeNodesEndBlock.wow

FourNodesComplex.wow

The test results shown in the previous slides where obtained at 100% pass rate after multiple testing iterations.

There were few bugs in parsing and translating which where caught during testing.

White Paper

LRM

Take-off

Target Code Design Ready

AST & Translator Ready

Library Functions Added

Assignment Overload

https://github.com/amoljoshi/PLTWOW

“ IBM project management better, but not applicable”- Amol Joshi (System Integrator)

“The time spent upfront to make regression tests is worth the effort” – Chaitanya Korgaonkar (Verifier and Validator)

“Collaborative programming is not difficult if every member of the team is informed about the architecture” – Dharmen Mehta(Program Manager)

“Done is better than perfect! Do not waste excess time on finer details” – Nimai Buch(Language Guru)

“Take your time to build a good architecture, but make sure it is close to perfect when you’re done.” – Yash Parikh (System Architect)

top related