← Prev in month ← Prev in thread
Next in thread → Next in month →

What is Software Architecture?

From
Mike Rawlins <>
To
Date
2000-10-30T16:39:28Z
ID
<>
Thread
What is Software Architecture?
I look forward to reviewing the latest spec in detail this week and
offering my comments to you.  In the mean time, I thought I might offer
some general thoughts.   I hope that these might help you deal with
comments your final round of revisions and discussion.  At least, I hope
you find them food for thought.

As some of may know, after more than 20 years in the business I am
finally getting some formal training.  I'll be finishing my M.S. in
computer science this December, and one of the more interesting classes
I'm taking this fall is Software Architecture & Design.   While it is
true that the architecture that ebXML is building is not just a product
infrastructure architecture, but in many ways also process architecture,
there are a few very relevant points from the class:

1)  Software Architecture is considered an emerging discipline, and
there is still no uniform consensus on exactly what it is and how it
should be pursued. [MR - Sound anything like what you all have been
going through?]

2)  Every system has an architecture, even if the architecture isn't
rigorously specified before development.  This is not a desirable
situation, but one that is often the case.  [MR - Let's get the TA spec
approved soon!]

3)  The instructor points out six areas that should be part of every
software architecture:
a)  Elements (components/parts) from which systems are built
b)  Interactions (connections/connectors/glues/relationships)
c)  Patterns - describe layout of elements and interactions, guiding
their composition.  For example, the number of elements, the number of
connectors, order, topology, directionality
d)  Constraints - on the patterns.  For example, temporal, cardinality,
concurrency, etc.
e)  Styles - Abstraction of architectural components from various
specific architectures (Sometimes used interchangeably with patterns).
For example:  Layered (as in Unix OS, OSI stack), pipe & filter, object
oriented
f)  Rationale - Describe why the particular architecture was chosen

Cheers,

--
Michael C. Rawlins, Rawlins EC Consulting
http://www.metronet.com/~rawlins/


← Prev in month ← Prev in thread
Next in thread → Next in month →