Showing posts with label Software Development Approach - Agile Approach. Show all posts
Showing posts with label Software Development Approach - Agile Approach. Show all posts

Friday, October 5, 2007

Weekly Update 05/10/2007 - Thesis Consolidation

Today, Hendy and I resumed our weekly meeting with our surrogate supervisor, Alan Fekete. While Professor Jon Patrick is away, we have been in touch through email and online entries onto the TRAC.

During the meeting, I gave an update on my thesis progress. I have almost completed the foundations of the workflow builder. There are minor revisions and testing that needs to be done in order to make the workflow builder functional. I will provide the list of updates in a later entry. According to the agile process, I have completed the first four iterations and up to the fifth iteration.

Upon the outcomes of the meeting, Alan has advised us to finalise the core fundamentals of the thesis and begin the write up. This will involve revising the thesis draft (marks have yet to be released, however, our supervisors have given us feedback on them) , adding and correcting the draft and then documenting the second half of the semester. Roughly additions to the draft thesis will be:
  • Documentation of the software methodology/model used
  • Documentation of architecture
  • Documenting the results
  • Documenting possible extensions (future work)
  • Writing up a conclusion
It will take roughly 1-2 weeks (depending on the load of my other subjects) to write up these sections.

Friday, September 21, 2007

Software Development Methodology

As the project is dividable into small iterations, I am going to adopt the Agile Approach to building the Workflow Builder. A brief summary of the methodology is given below:

Agile Approach

Take an agile approach where we use iterative process to develop the workflow builder.

First Iteration

The first iteration heavily revolves around generating ideas and initial design documents. Once that is completed, I envisage to begin programming and developing a small component of the workflow builder. The iteration is to achieve the following set of tasks:

  • Design and revise the design of the Workflow Builder rigorously and continue to refine the design at later stages of iterations.
  • Create MySQL database to store simple XML workflow documents
  • Create a set of sequence documents
  • Write up program to add sequences only.
  • Convert the sequence into XML and output to the database.
  • Test the individual creation of sequence modules.
  • Create a sample sequence XML document adhering to the WDL. Create this abstract workflow and compare the XML output from the builder with the XML document.
  • Document findings and experimentation on the TRAC and summaries on the blog.

To begin the first iteration, we must research into:

  • Python classes and objects
  • Python arrays and other data structures
  • Python and XML
  • Document findings and experimentation on the TRAC and summaries on the blog.


Second Iteration

The second iteration is mainly focused on extensibility of simple, yet fundamental workflow points. The goal is to achieve the following set of tasks:

  • Extend the sequence and implement Parallel Workflow Element.
  • Ensure that Parallel Workflow can be converted to the XML format as per WDL.
  • Perform testing on the module level (and if possible at the unit level)
  • Create a sample sequence and parallel workflow XML document adhering to the WDL. Create this abstract workflow using the Workflow Builder and compare the XML output from the builder with the XML document.
  • Document findings and experimentation on the TRAC and summaries on the blog.

Third Iteration

The third iteration targets the more complex workflow; namely simple merge, synchronisation and exclusive choice. Exclusive choice is perceived to be the most difficult due to the possibility of large amount of nesting. Hence, third iteration is heavily focused on:

  • Develop Simple Merge and Synchronisation Workflow Elements.
  • Ensure that the Simple Merge and Synchronisation Workflow Elements can be converted into XML on its own basis.
  • Perform testing on the module level (and if possible at the unit level)
  • Extend second iteration sample XML documents to include simple merge and then synchronisation. Ensure that the generated XML will adhere to the WDL.
  • Develop the Exclusive Choice Workflow Element.
  • Ensure that the workflow element can be converted into XML on its own basis, i.e. the most basic case.
  • Perform testing on the module level (and if possible at the unit level)
  • Extend second iteration sample XML documents to include exclusive choice. Ensure that the generated XML will adhere to the WDL. Continue extending the XML document to test the exclusive choice nesting with sequences, parallel, simple merge and synchronisation workflow elements. Examine the outputted XML
  • Document findings and experimentation on the TRAC and summaries on the blog.

Fourth Iteration

The fourth iteration’s main goal is to develop the workflow builder which will manage the creation of abstract workflow. It is envisaged that due to the lack of time, either a basic and simple GUI will be developed or a basic command prompt interface will be developed. The main tasks for the fourth iteration is:

  • Finalise the testing in the first to third iterations.
  • Ensure that the format of the XML adheres to the WDL and make any changes as necessary. There will definitely be changes as the WDL is a constantly evolving piece of work.
  • Develop a basic workflow builder interface design on paper.
  • Research on Python’s GUI packages.
  • Implement a basic design without any bells or whistle
  • Document findings and experimentation on the TRAC and summaries on the blog.

Resources required to successfully complete this iteration includes:

  • Research on basic GUI
  • Experimentation on user interface design


Fifth Iteration
Once the interface has been designed, the fifth iteration will be more involved with testing; ensuring that different types of workflows can be abstractly represented. It is vital that the XML generation is consistent and can be used as input into the Workflow Manager. Also, as experience is gained from this development, documentation of results and more importantly documentation of future development, future direction of this research and a critical analysis of the system be duly noted. This will form the foundation of future work.