Software Architecture Abuse

Problem Statement: How to architect for given problem statement?

Each application is developed as combination of multiple components (Across different layers).
For our discussion, assume the following.

Type A Type B Type C Comments
Number of components 1 6 12
Runtime System Qualities
Functionality no
impact
no
impact
no
impact
Performance 1x 12x 24x Each
component will take x units of time for checking incoming data and formating
out going data.
Or marshaling and unmarshaling of XML data takes more time.
Security 1x 6x 12x Each
entry point is valunarable for hacking.
Availability 1x 6x 12x If
each component is running in different layers,
Posibility of managing them is difficult. Ex. ESB, Service, Client, JMS
Queues, …etc
Usability (of overall application) no
impact
no
impact
no
impact
Interoperability low moderate high The
chances are less to use with other projects.
Non-Runtime System Qualities
Modifiability difficult moderate difficult In
Type C architecture, a small change in code triggers more integration testing
and more changes.
Portability difficult moderate difficult In
Type C, It will difficult to maintain intigrity down the line
Reusability difficult moderate difficult In
Type C, It will difficult to maintain intigrity down the line
Integrability easy moderate difficult In
Type C, It will difficult to maintain intigrity down the line
Testability 1x 6x 12x x
is number of test cases for one component
Work Distribution difficult moderate easy
Integration Testing Easy moderate Difficult
Troubleshooting in production Easy moderate Difficult Due
to more entry and exit points, checking each component will be difficult.
Versioning Easy moderate Difficult If
we started using different versions of components, it will be difficult to
maintain integrity down the line.

Conclusion:
Over simplicity and too much complexity is killer in application architecture / design. Many architects abuse application architecture.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s