21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

148 Chapter 11 ■ Object-oriented design<br />

•<br />

Exercises<br />

11.1 Complete the design of the game presented in the chapter. In particular, establish<br />

use cases and hence identify the methods associated with each class.<br />

11.2 Design the software structure <strong>for</strong> each of the systems described in Appendix A.<br />

11.3 Can OOD be characterized as a top-down, a bottom-up or some other process?<br />

11.4 If programming and design are really two aspects of the same process (as OOD<br />

suggests), does this mean that all designers must also be programmers?<br />

11.5 To what extent is an OOD influenced by the class library of reusable components<br />

that is available? To what extent must designers be knowledgeable about available<br />

components?<br />

11.6 What features or indicators might you use to help identify potential flaws in an OOD?<br />

For example, what might be the problem with a class that has an excessive number of<br />

methods? What could be done about this class? Again, is there a problem with a class<br />

that only calls other classes and provides no methods that are used by other classes?<br />

What might be done about this situation?<br />

11.7 Design a program that allows two-dimensional shapes to be drawn on the screen. A<br />

square, circle, triangle or rectangle can be selected from a list of options and positioned<br />

at a place on the screen using a mouse. A shape can be repositioned, deleted<br />

or its size changed using the usual mouse operations.<br />

11.8 Suggest features <strong>for</strong> a software tool that would support the creation, storage and<br />

editing of class diagrams.<br />

11.9 Suggest features <strong>for</strong> a software tool that would support the creation, storage and<br />

editing of CRC cards. Suggest features <strong>for</strong> checking the consistency of a collection<br />

of such cards.<br />

11.10 Evaluate OOD under the following headings:<br />

■ special features and strengths.<br />

■ weaknesses<br />

■ philosophy/perspective?<br />

■ systematic?<br />

■ appropriate applications<br />

■ inappropriate applications<br />

■ is the method top-down, bottom-up or something else?<br />

■ good <strong>for</strong> large-scale design?<br />

■ good <strong>for</strong> small-scale design?<br />

■ can tools assist in using the method?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!