OO Design and n-tier systems

G

Guest

I have a couple of general questions:
(1) Are many companies really developing OO systems, and if so, who does the OO analysis, i.e. the design of classes, is this typically done by the developers or by some king of OO analysis specialists. Is a company wide data model needed or can systems be developed independently with each system having its own classes etc? I can't see this company ever agreeing on a centralized data model as there are so many independent groups all doing their own thing. What kind of infrastructure is needed to enable the benefits of class-reuse?
(2) Is it that important to develop web-based systems on the n-tier model? The extra complexity and processing overhead seems huge. The main reason given is the isolation of the tiers. Is this just a theoretical benefit or is it real? I can't forsee massive changes to any tier that would justify it, or am I completely wrong.
 
J

John Timney \(Microsoft MVP\)

OO is not right for everything - sometimes its quicker and more appropriate
to crunch it in a very procedural manner.

However, larger systems developed well and though out at deisgn time will
reap benefits, specifcally in terms or object reusability - thus cost
reduction. Its a topic for debate however as not everyome agrees with why
and how OO should be applied. In my firm the developers often do the
classes, but they may have been defined by some UML reference. It really
depends on the project and the requirement.

What can I suggest - do some reading and make up your own mind.
http://www.4guysfromrolla.com/webtech/091800-1.shtml

--
Regards

John Timney
Microsoft Regional Director
Microsoft MVP


kneejerkreaction said:
I have a couple of general questions:
(1) Are many companies really developing OO systems, and if so, who does
the OO analysis, i.e. the design of classes, is this typically done by the
developers or by some king of OO analysis specialists. Is a company wide
data model needed or can systems be developed independently with each system
having its own classes etc? I can't see this company ever agreeing on a
centralized data model as there are so many independent groups all doing
their own thing. What kind of infrastructure is needed to enable the
benefits of class-reuse?
(2) Is it that important to develop web-based systems on the n-tier model?
The extra complexity and processing overhead seems huge. The main reason
given is the isolation of the tiers. Is this just a theoretical benefit or
is it real? I can't forsee massive changes to any tier that would justify
it, or am I completely wrong.
 
N

Nick Malik

kneejerkreaction said:
I have a couple of general questions:
(1) Are many companies really developing OO systems, and if so, who does
the OO analysis, i.e. the design of classes, is this typically done by the
developers or by some king of OO analysis specialists. Is a company wide
data model needed or can systems be developed independently with each system
having its own classes etc? I can't see this company ever agreeing on a
centralized data model as there are so many independent groups all doing
their own thing. What kind of infrastructure is needed to enable the
benefits of class-reuse?

The greatest benefits of OO are not based on class reuse, or common code for
a data model. They are based on writing less code, more powerfully, to
solve complicated problems with fewer defects. By localizing the effects of
changes in the description of an object, you can make changes efficiently
with a minimum of impact on code that shouldn't be affected by the changes.

Take a look at my blog entry on learning OO design.

http://biztalkbum.blogspot.com/2004/07/how-to-learn-object-oriented.html

(2) Is it that important to develop web-based systems on the n-tier model?
The extra complexity and processing overhead seems huge. The main reason
given is the isolation of the tiers. Is this just a theoretical benefit or
is it real? I can't forsee massive changes to any tier that would justify
it, or am I completely wrong.

I don't find that there is any extra processing... I'm not sure what you are
getting at. Are you concerned about having objects that operate in tiers,
or are you thinking of a more distributed model using .NET Remoting and web
services? For most web-based apps with less than 200 users, there is little
reason to add layers of indirection. However, layers of abstraction are
useful and can reduce your defects.

See my blog entry on partitioning a system into layers
http://biztalkbum.blogspot.com/2004/07/how-i-go-about-partitioning-logic-into.html

Hope this helps,
--- Nick
 
G

Guest

Thanks. One of the reasons I asked is because our group is moving from ASP/VB6 to .NET and I understand .NET is completely object-oriented. None of us have any experience at OO design or programming and we are not likely to be given any training, so I can forsee a complete shambles. Our web development was not done in a tiered design because the develpers had no training and basically picked up their web knowledge by trial and error.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

Phobia of developing .net n-tiered applications 6
2 Tier and N-Tier 10
OO + 3-Tier design Q 13
n tier applications 2
N-Tier Design 10
N-tier application - Design issue 13
OO Design Question 6
OO design and programming... 20

Top