From: Ravi Shankar Nair on
Dear all,

Whats the difference between Design and Architecture? In my opinion, design
is the superset of architecture, because architecture needs design or design
should precede architecture. For example, in a three tier architecture, I
design first tier as the presentation, second tier as the business and third
as the database.

My friend says architecture is the superset.

Can anyone please elaborate, whether my friend is correct or me? Thanks in
advance.

Best regards,
Ravi


From: Nick Malik [Microsoft] on
"Architecture is design, but not all design is architecture. That is, many
design decisions are left unbound by the architecture and are happily left
to the discretion and good judgment of downstream designers and
implementers. The architecture establishes constraints on downstream
activities, and those activities must produce artifacts-finer-grained
designs and code-that are compliant with the architecture, but architecture
does not define an implementation. "
-- Paul Clements

See: http://www.sei.cmu.edu/architecture/essays.html#difference

I hope this helps. I don't think it will settle your debate though. :-)

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Ravi Shankar Nair" <sujashankar(a)pacific.net.sg> wrote in message
news:e4fcj9$khk$1(a)nobel.pacific.net.sg...
> Dear all,
>
> Whats the difference between Design and Architecture? In my opinion,
> design is the superset of architecture, because architecture needs design
> or design should precede architecture. For example, in a three tier
> architecture, I design first tier as the presentation, second tier as the
> business and third as the database.
>
> My friend says architecture is the superset.
>
> Can anyone please elaborate, whether my friend is correct or me? Thanks in
> advance.
>
> Best regards,
> Ravi
>


From: Cody Powell on
I have another monkeywrench to throw into the debate, based on a recent
post by Uncle Bob. (The session he refers to was a session on Agility
and Architecture at SDWest.)

"One of the main points of that session was this:
1. The main goal of architecture is flexibility, maintainability, and
scalability.
2. But we have learned that the kind of unit tests and acceptance
tests produced by the discipline of Test Driven Development are much
more important to flexibility, maintainability, and scalability.
3. Therefore architecture is a second order effect and tests are the
primary effect."
-- Robert Martin,
http://www.butunclebob.com/ArticleS.UncleBob.ArchitectureIsaSecondaryEffect

It's an interesting point, and depending on your TDD views, one that
would probably spawn another debate of its own between you and your
friend.

Cody Powell

From: Ed Kirwan on
Ravi Shankar Nair wrote:
> Dear all,
>
> Whats the difference between Design and Architecture?
>
>

Both terms have as many definitions as definers.

In the absence of consensus, we took a corporate stance: IBM define
architecture as their 4+1 view, and we've taken this as our definition
(so we can at least talk to IBM programmers with a common language).

According to 4+1 an architecture must consist of:
1. Logical view, containing (essentially) the code.
2. Process view, defines system concurrency.
3. Physical view, defines how software modules are deployed to hardware.
4. Development view, defines the development environment.
5. Scenarios, born of use cases.

What we casually call, "Design," could, at its narrowest, fit into the
Logical view, though usually designers will do some of 5, too.

This 4+1 is useful to find out who is not architect: if someone isn't
choosing the development environment (i.e., we'll run C++ on Linux
servers), then he isn't architect. If someone isn't specifying how the
system will be deployed over a 20-unit server farm, then he isn't
architect.

--
www.EdmundKirwan.com - Home of The Fractal Class Composition.

Download Fractality, free Java code analyzer:
www.EdmundKirwan.com/servlet/fractal/frac-page130.html
From: AndyW on
On Wed, 17 May 2006 22:39:39 +0800, "Ravi Shankar Nair"
<sujashankar(a)pacific.net.sg> wrote:

>Dear all,
>
>Whats the difference between Design and Architecture? In my opinion, design
>is the superset of architecture, because architecture needs design or design
>should precede architecture. For example, in a three tier architecture, I
>design first tier as the presentation, second tier as the business and third
>as the database.
>
>My friend says architecture is the superset.
>
>Can anyone please elaborate, whether my friend is correct or me? Thanks in
>advance.
>
>Best regards,
>Ravi
>

Design is a process that you carry out.

Architecture is the way something hangs together.

Architectual Design is a process used decide how something hangs
together.


Program Architecture is the way a program hangs together

Program Design, is the process for deciding how to implement the
program.