1

I am fairly new to web application development. I have defined my problem domain through talking to various stakeholders and putting a process map together - basically a flow chart showing the different steps and processes that the web application must be able to recreate.

The problem I am having is that I'm struggling to map this process into application design and code. I was wondering if there are any best practices or development methods that help map a business process into an application design?

I have briefly read up about Domain Driven Development and that seems like it may be a good approach.

To clarify, I am after a methodology or design principle that will help turn the business process into code. For example, I COULD just map every box in the process map to an identically named class in my code. Thus translating the business process into a domain model (i.e. object orientated) in my code. But is this the best way to do it?

2 Answers 2

0

You might want to take a look at various open source Business Process Management suites. BPM is this exact idea, identifying the process a business takes to effect some activity, and mapping it into software in a way that manages the flow of the process. It seems like it would lend itself well to your issue. I work professionally with IBM BPM, but that is a proprietary and non-free solution, and is probably overkill for what you might be looking to achieve, which is why I provided a list of open source ones. I suggest looking through how those platforms/framworks operate on a conceptual level, even if they aren't the direct implementation of a solution for you, understanding how they handle the concept can be useful to you in 'rolling your own' solution.

3
  • The tools you mention are workflow tools. Want I want is a methodology or abstract way of thinking that turns the business process map into a set of classes or system architecture.
    – GWed
    Commented Mar 21, 2013 at 14:47
  • So, more like a transform tool to convert your map into executable code? Or a methodology for doing so yourself?
    – huntmaster
    Commented Mar 21, 2013 at 14:57
  • A methodology. For example, I COULD (in an object orientated world) just map every process to a class and recreate the business process as a class map. But is this the best way to do it? Or are their better ways to go about mapping a process into actual code that I will create
    – GWed
    Commented Mar 21, 2013 at 15:26
0

After a bit of research I've come across the repository/service design pattern. Both are used within the model context of MVC design pattern.

A repository (in my case an ORM) is a model that gets and saves directly from and to a database table sharing the same name. A service (I have actually called mine a 'process') is a model in the MVC sense, but contains a lot more logic than simply just getting and saving from and to a database table.

A 'process' model performs all the necessary logic and uses multiple repositories to get and save persistent data.

What I have done is develop my database to 3NF and setup a repository model for each table. If my application just requires the data from a table, the controllers call the required repository model directly. For a business process that requires the use of several tables, I create a process model. The name of this process model directly maps to my business process and performs the same steps. This has made translating the business process map into code really easy.

Would appreciate any thoughts people have on this approach?

Your Answer

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

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