Link to home
Start Free TrialLog in
Avatar of mitrakis
mitrakisFlag for Germany

asked on

HOW: enhance efficiency of obj.or. development

Note: this is NOT just a MFC related question...but I didn't know where to post it !
I need detailed info on how to enhance efficiency of object oriented development.

BACKGROUND:
friend is studying project management. The prof told them that he will ask something like this in the next test (see question title = question in test !)

Unfortunately, he didn't want to give more details on that.
The only keyword he told them was "clash of interest". Since we talk about "project management" maybe he meant the (communication)-problem between project planners and programmers:
What the planners worked out isn't good enough or even impossible for the programmers and vice versa...or maybe the programmers have emphasis on other things than the project planners... like in real life, eh ?
(note: this is just my interpretation of the question...maybe you have another one...everything is appreciated !)

As you can see, this is a very general question and the answer could become a whole book...but maybe someone has the perfect answer or knows such a book or any ressources on the net to point us to the right direction ?

Since this will be the biggest part of her test, I need a GOOD answer or a link to a great site (as you can see this is not just a 10-points-Q. !)

I know you'll give your best guys...!
Let me know if you need more details, soon...coz I have to ask her first !

PLEASE:
DON'T LOCK THIS QUESTION UNTIL I ADVICE SOMEONE TO POST HIS COMMENT AS THE ANSWER !!!

Best regards
-Stavi-
Avatar of mitrakis
mitrakis
Flag of Germany image

ASKER

Adjusted points to 400
Avatar of Tommy Hui
Tommy Hui

One link would be to check out Steve McConnell's Rapid Development. It is a BIG book, describing how to achieve quick programs. As you mentioned, there are SO many different aspects of enhancing efficiency. Another aspect is writing reusable code. For that check out Designing and Coding Reusable C++ by Carroll and Ellis. Another aspect is knowing and reusing patterns, check out Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson, and Vlissides.

I was once the technical lead on a project where the project manager was also the customer.  As the customer saw the project advance he kept thinking of new things that would be nice to add.  As the project manager he ordered them to be added ASAP.  Talk about clash-of-interest!  Our completely-non-frozen target moved daily.  Eventually each programmer found themselves an opportunity to move to another project where the project manager protected the project from such willy-nilly changes, and this project died overnight.
thui,

thx for info...but I need an URL =:-))
Test will be on Saturday...so I have no time left for purchasing books.
(Sorry if this wasn't clear in my question)

Regards
-Stavi-
Musashi,

as I said...that's reality...but this exactly what the prfessor wants to be discussed =;-)))

Regards
-Stavi-
I highly recommend reading the stuff in http://c2.com/cgi/wiki?ExtremeProgramming and everything linked from there. Really good stuff, just about this.

You may also be interested in http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?OrganizationDiagnosticPatternLanguage (especially Function Owners / Component Owners in regards to "clash of interest").

Also, take a look at http://www.controlchaos.com/ .

yonat,

great stuff...really !
I'll give you feedback when as soon as she has checked the info there.

More info would be appreciated anyway...:))

Keep the good work

Regards
-Stavi-
back again...

info about date of test is outdated:
test will be on Friday 10th July (not on saturday, 4th !)

so, if you can give me more info on that...just do it...THX a lot !

Regards
-Stavi-
Hmm. Sometimes object oriented is less efficient. I remember reading a joke containing source code to display 'Hello World' on the screen in different languages and programming styles. The last clip of source code was the C++ object oriented class overkill method which was over 3 pages long. I think I have to agree with Cliff Stoll in that there's a tendency to overkill things nowadays. Simplicity rules.
I got more hints from her professor today regarding the test on saturday:

Productivity improvement by more efficient programming techniques:
from the procedural to the declarative programming style


any idea what he wants to know ???
Any help on this would be greatly appreciated !!!

Regards
-Stavi-
he wants you to come up with some ways that object-oriented programming is better than other methods of programming.  I think overworked is right in many ways, but there are ways object-oriented programming is an improvement over other forms of programming.  It is the ability to bound large chunks of data and functionality into easily usable blocks, to stack and imbed these blocks with other blocks in one packaged deal rather than trying to keep track of pages and pages of procedural code.  true, for simple programs simple languages suffice, but for large otherwise unwieldy programs object oriented design allows it to be broken down into easily understandable parts.  A simple program written in a simple language is much simpler than a simple program written in an object oriented language.  But a complex program is much simpler in an object oriented language than in a simple language.  That is the advantage.
sorry mitrakis, didnt see your warning.  
It sounds as if the Booth882's answer is what the professor is looking for. You can find more on that at http://www.kinetica.com/ootips/ood-principles.html and also read about frameworks, which are a great productivity boost.

However, my personal opinion is that the greatest benefit of OOP is that it allows for incremental and experimental development process, like the ones described in the sites I pointed you to. The benefit is from the *process*. not OOP. However, it is much harder to use these processes without using OOP. Traditional programming techniques usually force you to use a waterfall process, where early errors are very hard (or impossible) to fix later. And since we are all human, we err.

Anyway, this is probably not what the professor is looking for, so you better stick with encapsulation, better dependency management, polymorphism (substutability of objects) and the like.
sorry booth882,

I would like to keep the Q "visible" for other experts...maybe I can get more info on that.

.I'll get back to you guys as soon as she gives me feedback on your comments...

THX a lot

Regards
-Stavi-
Another difficulty with OO to realize is getting management to 'buy off' on such projects.  In the real world, often managers are afraid of OO because of past experience with failure and/or just lack of knowledge.  Sometimes managers will jump into OO and not know much of anything and 3 years later still not have a viable product.   So Education seems to be an important issue.
Back again...

unfortunately I haven't got any feedback from her, yet...
I'll tell her to hurry up a little bit =;-)

BTW, in case she won't give me an answer, soon...I'll give credits to yonat.
Good links posted by him...lots of info therein.
If there are any objections, please let me know.

NOTE: I'll let you know who has to post his comment as the answer !!!

THX for your efforts !

Best regards
-Stavi-
yonat,

would you please post an answer...so you can get credits...

THX to all for your efforts.

Best regards
-Stavi-
ASKER CERTIFIED SOLUTION
Avatar of yonat
yonat

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
...think so...

she just told me that she has written about 12 pages =:-)

Regards
-Stavi-

BTW, very interesting timestamp regarding your answer... =;-))