Update of "DCI webapp archetype"
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: daf162eb7411d9a74069ef1f3e8eb685b3af7fab
Page Name:DCI webapp archetype
Date: 2015-02-15 04:20:56
Original User: timoteo.ponce
Parent: 0e1e7f2e229cfe8cc3ed46210253d477c1aa7f31
Content

DCI webapp archetype

Web application template written using concepts derived from Data Context and Interactions Architecture.

References

OO Problem

OO is defined as a network of objects interacting within each other, this means that all the functionality of an application written in a OO fashion will be separated and partitioned into multiple responsibilities in many different objects.

Now, this doesn't match what developers and users expect from the system, it doesn't map to the end user's goals and as it grows tends to increase complexity, side effects and therefore risks.

For example, having a simple network with objects A, B, C, B performing an operation:

Simple connections, no major issues, now we have a different functionality spread in the same network of objects:

Can you tell by the objects what do they do? or do you need to explore the network of objects and relationships to see what is currently being done here?

There is no functionality in objects, only methods, message passing has been moved to be a second class citizen, this breaks reading, this breaks support tasks and increases complexity.

DCI

DCI is an architectural pattern that brings back objects communication to a first class citizen, moving responsibilities to roles and returning data to its original purposes, mostly domain-specific data structures capturing specific business rules in a defined context.

Using this approach we have with the same example of OO: