23.07.2012 Views

Design Patterns Explained

Design Patterns Explained

Design Patterns Explained

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 1 The Object-Oriented Paradigm 13<br />

The people are responsible for themselves, instead of the control<br />

program being responsible for them. (Note that to accomplish<br />

this, a person must also be aware of what type of student<br />

he or she is.)<br />

The control program can talk to different types of people (graduate<br />

students and regular students) as if they were exactly the<br />

same.<br />

The control program does not need to know about any special<br />

steps that students might need to take when moving from class<br />

to class.<br />

To fully understand the implications of this, it’s important to establish<br />

some terminology. In UML Distilled, Martin Fowler describes<br />

three different perspectives in the software development process. 3<br />

These are described in Table 1-1.<br />

Table 1-1 Perspectives in the Software Development Process<br />

Perspective Description<br />

Conceptual This perspective “represents the concepts in the<br />

domain under study. . . . a conceptual model<br />

should be drawn with little or no regard for the<br />

software that might implement it . . .”<br />

Specification “Now we are looking at software, but we are<br />

looking at the interfaces of the software, not the<br />

implementation.”<br />

Implementation At this point we are at the code itself. “This is<br />

probably the most often-used perspective, but in<br />

many ways the specification perspective is often<br />

a better one to take.”<br />

3. Fowler, M., Scott, K., UML Distilled: A Brief Guide to the Standard Object Modeling<br />

Language, 2nd Edition, Reading, Mass.: Addison-Wesley, 1999, pp. 51–52.<br />

Different perspectives

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

Saved successfully!

Ooh no, something went wrong!