1 / 24

W ork O n W orkflows

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

markku
Télécharger la présentation

W ork O n W orkflows

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Work On Workflows Dharmen Mehta (Project Manager) NimaiBuch (Language Guru) Yash Parikh (System Architect) Amol Joshi (System Integrator) ChaitanyaKorgaonkar (Verifier and Validator)

  2. Why WoW? (Our Motivation) • Need to simulate workflows of complex processes This stuff can get complex !!  No kidding !

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

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

  5. Imperative Compiled Simple Statically Typed Intuitive Declarative DAG Easy Portable

  6. SampleCode Resources Block • Resource • Final • Times (x) • Nodes • Input • output • Connections • Computations • End Block Nodes Block Connections Block Compute Block End Block

  7. Syntactic Constructs • The New Guys • WoWNode • WoWNodes • x • convert, combine • WoW Library • The Old Timers • int • String • double • boolean • if, foreach, while…

  8. Samples

  9. Architecture Source Program *.WoW Lexer WoW.jflex Parser WoW.y Hash Tables Symbol Table AST Traversal WoW.y top_include_target.txt Target Program MainClass.java end_include_target.txt NodeThread.java Library Functions Package ConnectionChecks.java

  10. Runtime Environment • Use JVM on user’s environment • Makefile! • translate • wowcompile • wowrun • Runtime script executes the Parser on the WoW program • ./wow WoWPrograms/Audi.WoW

  11. Software Development Environment

  12. Test Plan • 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.

  13. 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.

  14. 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”

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

  16. Test WoW Programs • HelloWorld.wow • OneNodeOnlyCombine.wow • TwoNodes.wow • TwoNodesMultipleOutput.wow • ThreeNodesLinear.wow • ThreeNodesEndBlock.wow • FourNodesComplex.wow

  17. Test Result

  18. 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.

  19. Project Management

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

  21. Repository • https://github.com/amoljoshi/PLTWOW

  22. 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” – ChaitanyaKorgaonkar (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)

  23. Thank You

More Related