SOFTWARE ENGINEERING<br />
Lecture 15<br />
Design Patterns 1<br />
<br />
MBA Course Notes<br />
Dr. ANH DAO NAM<br />
1<br />
<br />
Software Engineering<br />
Slides are from Ivan Marsic and Thomas E. Potok, modified by Anh Dao Nam<br />
Textbooks:<br />
Bruegge & Dutoit: Object-Oriented Software Engineering: Using UML,<br />
Patterns and Java, Third Edition, Prentice Hall, 2010.<br />
Miles & Hamilton: Learning UML 2.0, O’Reilly Media, 2006.<br />
Some interesting books for the advanced material include:<br />
R. Pressman, Software Engineering - A Practitioner's Approach, 6th ed.,<br />
2005<br />
C. Ghezzi, M. Jazayeri, and D. Mandriolo, Fundamentals of Software<br />
Engineering. Prentice Hall, second ed., 2002<br />
A. Endres and D. Rombach, A Handbook of Software and Systems<br />
Engineering. The Fraunhofer IESE Series on Software Engineering,<br />
Pearson Education Ltd., 2003.<br />
S. Robertson and J. C. Robertson, Mastering the Requirements Process.<br />
Addison-Wesley Professional, second ed., 2006.<br />
I. Jacobson, G. Booch, and J. Rumbaugh, The Unified Software<br />
Development Process. Addison-Wesley Professional, 1999.<br />
K. Beck and C. Andres, Extreme Programming Explained. Addison-Wesley,<br />
2004.<br />
<br />
2<br />
<br />
Topics<br />
<br />
Software Design Patterns<br />
– What & Why<br />
Example Pattern:<br />
Publisher-Subscriber (a.k.a. Observer)<br />
<br />
3<br />
<br />
What Developers Do With Software<br />
<br />
(besides development)<br />
Understand<br />
Maintain (fix bugs)<br />
Upgrade (add new features)<br />
<br />
4<br />
<br />
The Power of Patterns<br />
<br />
CN<br />
<br />
NIB<br />
<br />
MAP<br />
<br />
PLE<br />
<br />
5<br />
<br />