Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
This sounds like use cases to me. What am I missing? – Gilbert Le Blanc Feb 22 '12 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? – altvali Feb 23 '12 at 9:50

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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