Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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