Wiki: DesignDecomposition

Design Decomposition for Business Process and Data Flow Diagrams
Home  |  Matrix  |  Blog  |  Wiki  |  Forum  |  FAQ  |  Consulting  |  Sponsorship  |  Linking  |  Privacy  |  Contact  |
Contents      Categories     PageIndex     RecentChanges     RecentlyCommented     Login/Register
Most recent edit on 2009-11-19 19:39:56 by DougBarry

Additions:
High-level decomposition is the emphasis of this website. For example, you could use the Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the high-level optimal sub-systems for a business. You could then chose processes in that DFD to be represented as a business process diagrams, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.


Deletions:
High-level decomposition is the emphasis of this Web site. For example, you could use the Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the high-level optimal sub-systems for a business. You could then chose processes in that DFD to be represented as a business process diagrams, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.




Edited on 2009-03-04 16:40:56 by DougBarry

Additions:
The Decomposition Matrix can help you gather part of the requirements. It forces people to determine all the inputs and outputs along with how those inputs and outputs are related. This is quite detailed and requires people to think through those relationships. Also, early iterations of the generated diagrams based on the Decomposition Matrix often do not make sense to people who are the subject matter experts. This is usually because either inputs or outputs were missed -- or that the relationships between the inputs and outputs were not specified properly. This creates an opportunity to get the specifics correct on the relationships between the inputs and outputs.


Deletions:
The Decomposition Matrix can help you gather part of the requirements. It forces people to determine all the inputs and outputs along with how those inputs and outputs are related. This is quite detailed and requires people to think through those relationships. Also, early iterations of the generated diagrams based on the Decomposition Matrix often do not make sense to people who are the subject matter experts. This is usually because either inputs or outputs were missed -- or that the relationships between the inputs and outputs were not specified properly. These creates an opportunity to get the specifics correct on the relationships between the inputs and outputs.




Edited on 2008-09-25 15:25:57 by DougBarry

Additions:
High-level decomposition is the emphasis of this Web site. For example, you could use the Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the high-level optimal sub-systems for a business. You could then chose processes in that DFD to be represented as a business process diagrams, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.
An optimal high-level decomposition often aids in simplifying both development and maintenance of a software system. A good high-level decomposition establishes boundaries between sub-systems that minimizes coupling.
The Decomposition Matrix can help you gather part of the requirements. It forces people to determine all the inputs and outputs along with how those inputs and outputs are related. This is quite detailed and requires people to think through those relationships. Also, early iterations of the generated diagrams based on the Decomposition Matrix often do not make sense to people who are the subject matter experts. This is usually because either inputs or outputs were missed -- or that the relationships between the inputs and outputs were not specified properly. These creates an opportunity to get the specifics correct on the relationships between the inputs and outputs.


Deletions:
High-level decomposition is the emphasis of this Web site. For example, you could use the Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the high-level optimal subsystems for a business. You could then chose processes in that DFD to be represented as a business process diagrams, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.
An optimal high-level decomposition often aids in simplifying both development and maintenance of a software system. A good high-level decomposition establishes boundaries between subsystems that minimizes coupling.
The Decomposition Matrix can help you gather part of the requirements. It forces people to determine all the inputs and outputs and how those inputs and outputs are related. This is quite detailed and requires people to think through those relationships. Also, early iterations of the generated diagrams based on the Decomposition Matrix often do not make sense to people who are the subject matter experts. This is usually because either inputs or outputs were missed -- or that the relationships between the inputs and outputs were not specified properly. These creates an opportunity to get the specifics correct on the relationships between the inputs and outputs.




Edited on 2008-09-24 18:57:35 by DougBarry

Additions:
Determining system boundaries can often be a difficult exercise. This asks you to determine what is inside a system and what is outside the system. You would think that would be easy, but it is my experience that it is not for most people. I wrote a Blog entry design context that provided some thoughts on the process I often use to help determine system boundaries.


Deletions:
Determining system boundaries can often be a difficult exercise. This asks you to determine what is inside a system and what is outside the system. You would think that would be easy, but it is my experience that it is not for most people. I wrote a Blog entry that provided some thoughts on the process I often use to help determine system boundaries.




Edited on 2008-09-24 18:56:31 by DougBarry

Additions:
Determining system boundaries can often be a difficult exercise. This asks you to determine what is inside a system and what is outside the system. You would think that would be easy, but it is my experience that it is not for most people. I wrote a Blog entry that provided some thoughts on the process I often use to help determine system boundaries.


Deletions:
Determining system boundaries can often be a difficult exercise. This asks you to determine what is inside a system and what is outside the system. You would think that would be easy, but it is my experience that it is not for most people. I wrote a blog entry that provided some thoughts on the process I often use to help determine system boundaries.




Edited on 2008-09-24 17:52:52 by DougBarry

Additions:
High-level decomposition is the emphasis of this Web site. For example, you could use the Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the high-level optimal subsystems for a business. You could then chose processes in that DFD to be represented as a business process diagrams, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.
The Decomposition Matrix can help you gather part of the requirements. It forces people to determine all the inputs and outputs and how those inputs and outputs are related. This is quite detailed and requires people to think through those relationships. Also, early iterations of the generated diagrams based on the Decomposition Matrix often do not make sense to people who are the subject matter experts. This is usually because either inputs or outputs were missed -- or that the relationships between the inputs and outputs were not specified properly. These creates an opportunity to get the specifics correct on the relationships between the inputs and outputs.


Deletions:
High-level decomposition is the emphasis of this Web site. For example, you could use Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the high-level optimal subsystems for a business. You could then chose processes in that DFD to be represented as a business process diagrams, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.
The Decomposition Matrix can help you gather part of the requirements. It forces people to determine all the inputs and outputs and how those inputs and outputs are related. This is quite detailed and forces people to think through those relationships. Also, early iterations of the generated diagrams based on the Decomposition Matrix often do not make sense to people who are the subject matter experts. This is usually because either inputs or outputs were missed -- or that the relationships between the inputs and outputs were not specified properly.




Edited on 2008-09-24 17:21:58 by DougBarry

Additions:
In software design and modeling, decomposition is the separation of a system into smaller or basic sub-systems. This effort is all about simplification. Simplification is meant to make it easier to make design decisions.
High-level decomposition is the emphasis of this Web site. For example, you could use Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the high-level optimal subsystems for a business. You could then chose processes in that DFD to be represented as a business process diagrams, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.
Determining system boundaries can often be a difficult exercise. This asks you to determine what is inside a system and what is outside the system. You would think that would be easy, but it is my experience that it is not for most people. I wrote a blog entry that provided some thoughts on the process I often use to help determine system boundaries.
Designers are no different than anyone else. We tend to repeat what has worked for us in the past. Many times, that is an effective approach. But, obviously, it can be the wrong approach since one "size" does not always fit all. Again, the Decomposition Matrix can help. Instead of starting out with a diagram (and drawing something you likely have seen before), the Decomposition Matrix forces you to think of only inputs and outputs and their relationships. This provides the designers and subject-matter experts with a way to think differently about the system they are about to design.
This Wiki entry started out discussing the importance of simplification. The very nature of the Decomposition Matrix simplifies design decision making. Instead of trying to grapple with the entire design, the Decomposition Matrix only asks you to make a binary decision: Is a given input related to a given output. That is all. You might be surprised at the discussions that can ensue from such a simple decision. Nevertheless, it is a relatively simple decision -- and it is the accumulation of similar simple decisions about the other inputs and outputs that creates a Decomposition Matrix -- allowing you to generate a decomposition that might prove to be helpful in your design.


Deletions:
This is under construction.
In software design and modeling, decomposition is the separation of a system into simpler or basic sub-systems. This effort is all about simplification. Simplification is meant to make it easier to make design decisions.
High-level decomposition is the emphasis of this Web site. For example, you could use Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the optimal subsystems for a business. You could then chose processes in that DFD to represent as a business process diagram, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.




Edited on 2008-09-24 16:26:42 by DougBarry

Additions:
An optimal high-level decomposition often aids in simplifying both development and maintenance of a software system. A good high-level decomposition establishes boundaries between subsystems that minimizes coupling.
The Decomposition Matrix can help you gather part of the requirements. It forces people to determine all the inputs and outputs and how those inputs and outputs are related. This is quite detailed and forces people to think through those relationships. Also, early iterations of the generated diagrams based on the Decomposition Matrix often do not make sense to people who are the subject matter experts. This is usually because either inputs or outputs were missed -- or that the relationships between the inputs and outputs were not specified properly.


Deletions:
An optimal high-level decomposition often aids in simplifying both development and maintenance of a software system.




Edited on 2008-09-24 16:19:45 by DougBarry

Additions:
In software design and modeling, decomposition is the separation of a system into simpler or basic sub-systems. This effort is all about simplification. Simplification is meant to make it easier to make design decisions.

Types of Design Decomposition

There are two types of design decomposition: high-level and detailed.
High-level decomposition is the emphasis of this Web site. For example, you could use Decomposition Matrix on this site to generate data flow diagrams (DFDs) the could help determine the optimal subsystems for a business. You could then chose processes in that DFD to represent as a business process diagram, again generated from the Decomposition Matrix (which would be sub-matrix of the original Decomposition Matrix). Finally, if you are considering services, you could use the Decomposition Matrix to determine the properly granularity of the services.
Detailed decomposition techniques could be used to flesh out the high-level decomposition. Generally, detailed decomposition is found at the code level. Although DFDs have been suggested for this level of decomposition in the past, it is my opinion that any of the agile techniques are better suited to detailed decomposition.
An optimal high-level decomposition often aids in simplifying both development and maintenance of a software system.

How to Avoid Replicating Past Decompositions



Deletions:
In software design and modeling, decomposition is the separation of a system into simpler or basic sub-systems. An optimal decomposition often aids in simplifying both development and maintenance of a software system.

Decomposition Should Reflect Current and Not Past Requirements





Edited on 2008-09-24 09:19:41 by DougBarry

Additions:

Decomposition Should Reflect Current and Not Past Requirements

How the Decomposition Matrix Might Help You



Deletions:

Decomposition that Reflects Current and Not Past Requirements





Edited on 2008-09-24 08:55:06 by DougBarry

Additions:
This is under construction. Design decomposition is often as much a people problem as a technical problem. An optimal decomposition requires gathering all the necessary requirements from people and then using those requirements to design the appropriate decomposition of systems and sub-systems. It is also often difficult to know if you have all the requirements.

Decomposition that Reflects Current and Not Past Requirements



Deletions:
It is often as much a people problem as a technical problem. An optimal decomposition requires gathering all the necessary requirements from people and then using those requirements to design the appropriate decomposition of systems and sub-systems. It is also often difficult to know if you have all the requirements. And, given you actually have all the requirements, it is difficult to create an optimal decomposition.




Edited on 2008-09-23 19:23:35 by DougBarry

Additions:
In software design and modeling, decomposition is the separation of a system into simpler or basic sub-systems.

Reasons for Design Decomposition

An optimal decomposition often aids in simplifying both development and maintenance of a software system.

Design Decomposition as a People Problem

It is often as much a people problem as a technical problem. An optimal decomposition requires gathering all the necessary requirements from people and then using those requirements to design the appropriate decomposition of systems and sub-systems. It is also often difficult to know if you have all the requirements. And, given you actually have all the requirements, it is difficult to create an optimal decomposition.


Deletions:
Under construction.




Edited on 2008-01-03 16:29:36 by DougBarry

Additions:

Determining System Boundaries





Oldest known version of this page was edited on 2007-12-21 11:54:44 by DougBarry []
Page view:

Design Decomposition

Under construction.
Search this site
Custom Search
Resource Books at Amazon.com
by Leonard Richardson, Sam Ruby, David Heinemeier Hansson
Average Customer Review: 4 stars - 46 reviews
Customer Review: Good to hear someone make a convincing argument for a web-based services protocol versus the complexity of SOAP.
by Martin Kalin
Average Customer Review: 4.5 stars - 16 reviews
Customer Review: I did learn a lot which is all that you can ask for. The book is thin - less than 300 pages, and the author writes in a good conversational style. It is a good tutorial but it probably does not make a good reference as it does not go into too...
by Subbu Allamaraju
Average Customer Review: 4.5 stars - 3 reviews
Customer Review: As is common with O'Reilly's Cookbooks, the style of this book is very terse and to the point. There is not much handholding. The intended audience seems to be system architects who already know what they are doing, but who need to know what t...
by Eben Hewitt
Average Customer Review: 4.5 stars - 12 reviews
Customer Review: Excelente trabajo el de Hewitt. El primer capitulo puede ser suficiente para pagar el precio. Cualquier empresa/arquitecto con una iniciativa SOA debe leer este libro. Completamente recomendado.
by Thomas Erl
Average Customer Review: 4 stars - 59 reviews
Customer Review: Thomas Erl in this book provides an excellent reference and an independent/agnostic view of SOA that is not cluttered with Vendor speak. What I thought was valuable is the definition of business benefits, case studies and the beginning of SOA...