There are design issues driven partly by language

This preview shows page 40 - 43 out of 71 pages.

the static and dynamic models, the invariants, quality of abstraction, potential for re-use. There are design issues, driven partly by language choice: implementing the abstraction, life cycle issues, safe-use issues, documenting proper use. 14.1 ACCURATE AND COMPLETE REQUIREMENT SPECIFICATIONS Except for very constrained domains, re-implementations of existing functionality, or trivial applications, the process of defining requirements is almost guaranted to result in: incomplete specifications incorrect specifications A study in 1999 by Elemer Magaziner of requirement specifications found that they are typically only 7% complete and 15% correct. Another almost guaranteed phenomenon is that they will change over time as the project progresses. Given the cost of change over a project’s lifecycle this is a huge problem and argues for alternatives to what the above pitfall seems to argue for (lots of upfront analysis). 14.2 BUILDING A TOO-GENERAL SOLUTION Generality is good, but comes at a cost. Some balance must be met. Developers who really become OO are particularly prone to this problem. The elegant, complete, general solution to a class design becomes a goal unto itself. You’ve got to know when good is good enough. 14.3 THE WRONG NUMBER OF ARCHITECTS Encapsulation and interface doesn’t mean you can split your problem into pieces, give each piece to a team, then never talk across teams only to get back together and expect everything to “just work”. There are aspects of class design that don’t show up in the interface files, or in the documentation. Someone (or a small team of someones) has to have chief responsibility for the architecture of large projects.
Image of page 40

Subscribe to view the full document.

41 Copyright Atomic Object, LLC © 2009 14.4 RE-ARCHITECTING TOO OFTEN OR TOO LITTLE Developers enamored with the beauty and elegance of a design may want to re-architect when something new throws their model for a loop. This is possible, and a big advantage of OO, if done properly, but can be taken too far (re-architecting for its own sake, or for the intellectual challenge). At the same time, you must occasionally face facts and re-think your architecture if you find it growing too complex, hard to understand, full of hacks, etc.
Image of page 41
42 Copyright Atomic Object, LLC © 2009 15. UML NOTATION UML is a “method for specifying, visualizing, and documenting the artifacts of an object-oriented system under development.” UML is Booch, Objectory, and OMT combined, extended, simplified. Started in 1994. Four goals for UML effort: To model systems (and not just software) using object-oriented concepts To establish an explicit coupling to conceptual as well as executable artifacts To address the issues of scale inherent in complex, mission-critical systems To create a method usable by both humans and machines Targeted the modeling of concurrent, distributed systems.
Image of page 42

Subscribe to view the full document.

Image of page 43

{[ snackBarMessage ]}

Get FREE access by uploading your study materials

Upload your study materials now and get free access to over 25 million documents.

Upload now for FREE access Or pay now for instant access
Christopher Reinemann
"Before using Course Hero my grade was at 78%. By the end of the semester my grade was at 90%. I could not have done it without all the class material I found."
— Christopher R., University of Rhode Island '15, Course Hero Intern

Ask a question for free

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern