OO Design and n-tier systems

  • Thread starter Thread starter Guest
  • Start date Start date
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.
 
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.
 
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
 
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.
 
Back
Top