From: H. S. Lahman on
Responding to Nair...

> 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.

I think you are both wrong. B-)

They are related but orthogonal. Architecture is one of several
possible <intellectual> work products resulting from design activities.
Since they are quite different things (products vs. activities), there
is no superset/subset relationship between them.

Note that somebody designed the layered architectural model that you
refer to as 'three tier architecture'. Other people have designed
specific architectural infrastructures (e.g., MVC, elements of .NET and
J2EE, etc.) to support such layered models at a lower level of
abstraction. But at every level there is a designer who must do
something to create a concrete manifestion of architecture.


*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl(a)pathfindermda.com
Pathfinder Solutions -- Put MDA to Work
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
Pathfinder is hiring:
http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH



From: Bjorn Reese on
Cody Powell wrote:

> 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.
[...]
> -- Robert Martin,
> http://www.butunclebob.com/ArticleS.UncleBob.ArchitectureIsaSecondaryEffect

Why is TDD much more important to scalability than architecture?

--
mail1dotstofanetdotdk
From: VisionSet on

"H. S. Lahman" <h.lahman(a)verizon.net> wrote in message
news:bj1bg.4074$oN2.166(a)trndny02...

> I think you are both wrong. B-)
>
> They are related but orthogonal. Architecture is one of several
> possible <intellectual> work products resulting from design activities.
> Since they are quite different things (products vs. activities), there
> is no superset/subset relationship between them.
>
> Note that somebody designed the layered architectural model that you
> refer to as 'three tier architecture'. Other people have designed
> specific architectural infrastructures (e.g., MVC, elements of .NET and
> J2EE, etc.) to support such layered models at a lower level of
> abstraction. But at every level there is a designer who must do
> something to create a concrete manifestion of architecture.
>
> H. S. Lahman

We agree... I'm not worthy!

<http://groups.google.co.uk/group/comp.lang.java.programmer/browse_frm/threa
d/75c894c87b84ab54/7eac255bb70f2fef?tvc=1&q=author%3Avisionset&hl=en#7eac255
bb70f2fef>

--
Mike W


From: Robert Martin on
On 2006-05-17 09:39:39 -0500, "Ravi Shankar Nair"
<sujashankar(a)pacific.net.sg> said:

> Dear all,
>
> Whats the difference between Design and Architecture?

No one knows, and only architects care.

From my point of view design and architecture are synonyms. They are
the same thing. An architect is a designer, and a designer is an
architect. One is not higher than the other.

--
Robert C. Martin (Uncle Bob)??| email: unclebob(a)objectmentor.com
Object Mentor Inc.? ? ? ? ? ??| blog:??www.butunclebob.com
The Agile Transition Experts??| web:???www.objectmentor.com
800-338-6716? ? ? ? ? ? ? ? ??|



From: Robert Martin on
On 2006-05-18 13:31:03 -0500, Bjorn Reese <breese(a)see.signature> said:

> Cody Powell wrote:
>
>> 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.
> [...]
>> -- Robert Martin,
>> http://www.butunclebob.com/ArticleS.UncleBob.ArchitectureIsaSecondaryEffect
>
> Why is TDD much more important to scalability than architecture?

Why is scalability a problem? Because when you attempt to increase the
capabilities of an application you must decouple parts of it that you
hadn't thought about decoupling previously. You must break the
application into pieces that can be positioned approriately within a
larger and faster physical architecture.

When you break the software up like this, you also break the software.
You introduce bugs that can be very hard to find. However, if you have
written the application using TDD; you have tests that can show you
when you have broken functionality. Thus the tests allow you to make
the changes with full knowledge of the side effects.

The tests are the lubricant that make the changes much more reliable.
The tests also allow the changes to be made incrementally. Thus TDD is
a major aid to scalability.


--
Robert C. Martin (Uncle Bob)??| email: unclebob(a)objectmentor.com
Object Mentor Inc.? ? ? ? ? ??| blog:??www.butunclebob.com
The Agile Transition Experts??| web:???www.objectmentor.com
800-338-6716? ? ? ? ? ? ? ? ??|