Work On Workflows Dharmen Mehta Project Manager Nimai

  • Slides: 24
Download presentation
Work On Workflows Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System

Work On Workflows Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System Architect) Amol Joshi (System Integrator) Chaitanya Korgaonkar (Verifier and Validator)

Why Wo. W? (Our Motivation) �Need to simulate workflows of complex processes This stuff

Why Wo. W? (Our Motivation) �Need to simulate workflows of complex processes This stuff can get complex !! No kidding !

Why Wo. W? (Our Motivation) �Need to simulate workflows of complex processes �Need to

Why Wo. W? (Our Motivation) �Need to simulate workflows of complex processes �Need to KISS !! (Keep It Simple Silly) �A means to analyze and produce statistical results

Introduction �A language designed to handle workflows in industries �Java-like syntax �Aimed at easier

Introduction �A language designed to handle workflows in industries �Java-like syntax �Aimed at easier design, simulation and analysis of workflows

Imper Com p D ec la ra tiv e ative iled e l p

Imper Com p D ec la ra tiv e ative iled e l p m i S Statically Typed DAG e l b a Port Intuitive y s Ea

Sample Code • Resource • Final • Times (x) • Nodes • Input •

Sample Code • Resource • Final • Times (x) • Nodes • Input • output Resources Block Nodes Block Connections Block • Connections • Computations • End Block Compute Block

Syntactic Constructs The Old Timers �The New Guys int �Wo. WNode String �Wo. WNodes

Syntactic Constructs The Old Timers �The New Guys int �Wo. WNode String �Wo. WNodes double �x boolean �convert, combine if, foreach, while… �Wo. W Library

Samples

Samples

Architecture Source Program Lexer Parser *. Wo. W. jflex Wo. W. y top_include_targ et.

Architecture Source Program Lexer Parser *. Wo. W. jflex Wo. W. y top_include_targ et. txt Target Program AST Traversal Symbol Wo. W. y Table Main. Class. java end_include_targ et. txt Node. Thread. java Library Functions Package Hash Tables Connection. Checks. java

Runtime Environment �Use JVM on user’s environment �Makefile! � translate � wowcompile � wowrun

Runtime Environment �Use JVM on user’s environment �Makefile! � translate � wowcompile � wowrun �Runtime script executes the Parser on the Wo. W program �. /wow Wo. WPrograms/Audi. Wo. W

Software Development Environment

Software Development Environment

Test Plan �Testing of the Wo. W compiler is done by comparing the translated

Test Plan �Testing of the Wo. W compiler is done by comparing the translated Java code of a Wo. W program with the expected Java code. �Ideally translation should fail if there are compilation errors in Wo. W program. �If mismatch between translated java and expected java then test case fails.

Test Scripts �test_script. sh Tests all the test programs in a loop. Outputs the

Test Scripts �test_script. sh Tests all the test programs in a loop. Outputs the number of test cases run and the result of the testing. �compare_java. sh Helper script called by test_script. sh which does actual part of comparing the two java programs using the diff command.

test_script. sh #!/bin/bash java_count=0 total_java=0 for D in `find Test -type d` do if

test_script. sh #!/bin/bash java_count=0 total_java=0 for D in `find Test -type d` do if [ "${D}" != "Test" ] then name=$(basename ${D}) java_test=$(. /compare_java. sh $name) if [[ "$java_test" == *passed* ]] then java_count=`expr $java_count + 1` fi echo $java_test total_java=`expr $total_java + 1` fi done echo "$java_count of $total_java Java tests passed”

compare_java. sh #!/bin/sh if diff -w -E -b -B "Test/$1/Translated. java" "Test/$1/Expected. Java. java"

compare_java. sh #!/bin/sh if diff -w -E -b -B "Test/$1/Translated. java" "Test/$1/Expected. Java. java" >/dev/null ; then echo $1 Java test passed! else echo $1 Java test failed! fi

Test Wo. W Programs � Hello. World. wow � One. Node. Only. Combine. wow

Test Wo. W Programs � Hello. World. wow � One. Node. Only. Combine. wow � Two. Nodes. Multiple. Output. wow � Three. Nodes. Linear. wow � Three. Nodes. End. Block. wow � Four. Nodes. Complex. wow

Test Result

Test Result

Test Failures �The test results shown in the previous slides where obtained at 100%

Test Failures �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.

Project Management

Project Management

Git Commits White Paper Take-off LRM AST & Translator Ready Target Code Design Ready

Git Commits White Paper Take-off LRM AST & Translator Ready Target Code Design Ready Assignment Overload Library Functions Added

Repository �https: //github. com/amoljoshi/PLTWOW

Repository �https: //github. com/amoljoshi/PLTWOW

Precious Learnings � “ IBM project management better, but not applicable” - Amol Joshi

Precious Learnings � “ 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)

Thank You

Thank You