Issues of OO Project Management

Download Report

Transcript Issues of OO Project Management

Issues of OO Project
Management
Programming Language Selection
Managing Smalltalk
The misconception: “Smalltalk is small”

The truth - it has a very large class library one could use

Alternaive – develop the implementation of classes from
scratch
Primary hazard – performance


Many projects gave up Smalltalk because were not
satisfied with performance
Although some real-time systems were implemented to
demonstrate Smalltalk need not be slow.
Managing Performance Issues
Allocate time for performance improvements in
the project plan
Use a performance measuring tool (profiler)


empirically evaluate parts of system for time/memory
consumption
usually the bottlenecks exist only in a very few places
To improve performance of a bottle necks – select
a different data structure or different algorithm
Managing C++
The misconception – “C++ is like C”
The truth – it is a much bigger and much more complex language
than C
 Some people love it and some people consider it
“the most significant technical hazard to the survival of a project”

Primary benefits




Performance (fast, memory efficient if used properly)
Backward compatibility with C
Ability to do system-level programming, integrate with other
languages and systems
Availability of class libraries
Primary hazards


complexity of the language
possible to program in a non-OO manner
Evaluate the following
Background of the developers (engineering vs.
IS)

engineers are usually more used to dealing with subtle
language issues of C++ than COBOL programmers
Is backward compatibility with C required?
Are you building a low-level real-time system?
Will your key developers quit if they have to
use another language?
C++ - dealing with complexity
C++ is a very expressive language
Develop a standard usage guidelines to simplify
and standardize the code.



Goal – achieve high readability, minimize languagespecific clutter
Coming up with good guidelines is a difficult task (so
rely on expert opinions and proven solutions)
but it is even more difficult to enforce the standard.
Establish design and code reviews
Enforcing OO standards
Educate your workforce in OO
Establish language usage guidelines
Establish design and code reviews
Java
Misconception–“Java is easy to learn and use”

the truth – Java is easier and more uniform than C++ (largely
because it gives up compatibility with C)
Primary benefits:



Portability, Strong support for Java in internet browsers
Support for concurrency and security
No memory management issues
Hazards:


Performance
Still not mature enough – not much data available on the long –
term large-scale projects success or failure