We're starting a medium sized PHP web app, written in MVC fashion, using CodeIgniter. Most of the functional specifications have been written, and there are a few features that will definitely be replaced with improved behaviour in later stages of the project.

I'm tasked with writing a workflow document from a technical point of view and here's what I want to cover, ideally:

  • The document should preferably be a diagram of some sort,
  • A close mapping of elements in the document with with models/views/controllers/js functions/other important blocks in the code; let's call these modules

That will suffice since I will be able to derive from that a way to test different modules independently and assign different modules to different programmers.

The aspect of rewriting parts of the document when I discover that parts of the code need to be replaced isn't an issue, I'll make the rewrites to keep code and diagram in sync if/when I have to.

My attempts so far with Petri nets and UML interaction diagrams have failed upon the realization that I have to expose too much of the decision making logic inside controllers.

I'm looking for advice and I'm curious if anyone has done this before.

  • This sounds like use cases to me. What am I missing? Feb 22, 2012 at 16:36
  • @GilbertLeBlanc I previously assumed that use cases don't map very well over blocks of code, but I might be wrong. Can you elaborate, maybe give an example? Feb 23, 2012 at 9:50

1 Answer 1


I'm going to attempt an answer, although I'm not sure what you mean by "elements" in your question.

Bad ASCII art follows:

--------------                                      -----------------
|  element   | -------- is created by ------------  |    module     |
--------------                                      -----------------

--------------                                      -----------------
|  element   | -------- is modified by -----------  |    module     |
--------------                                      -----------------

Basically, element is acted upon by module(s). You could tie more than one module to an element.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.