Craig Larman

Hello! This page is an introduction, and a resource for OOA/D and design pattern educators using my Applying UML and Patterns book. Teachers can add comments and links to education resources (presentations, exams, ...).

If you're new to a Wiki, it is an excellent concept (from Ward Cunningham) that allows *you* to edit web pages using your browser. You can edit this web page, anytime, by choosing the "EditText" command at the bottom. If you're an educator, you're invited to add instructional resource comments or links below. See the rules for Wiki page formatting at

contact: (there's various articles to read).

Educator Resources for Applying UML and Patterns

The book is used in many universities, and i know there are many educators who have created slides, tests, and supporting material. I haven't collected sufficient links, but here's a start...

If you are writing material for a non-commercial (e.g., a college) course, all the book's diagrams can be downloaded, along with sample exams and other material at

List of Some Educators who have used Applying UML and Patterns

Alberto Silva - alberto [at] - IF-MT

Ing. Ernesto Galvis MSc. - - Universidad Cooperativa de Colombia and Universidad Industrial de Santander - Bucaramanga, Colombia

Anthony Boulestreau - - In'Tech INFO - - Paris, France

Shuge Tian - - Shanghai University of Science and Engineering, Shanghai, P.R. China

Ing. Manolo Sangoquiza -

Ricardo Nunes - rrgnf [at] yahoo . com . br - Macei�, Brazil

Dr. Linos -

Brendan Jackman -

Arthur Tobin -

Shan Barkataki -

Kevin O'Brien - (penn state)

Dr. Jürgen Börstler -

Dr. Guy Genilloud -

Philippe Lafage -

Dave Waxman -

Marcio Bueno - Herzing College - Toronto - Canada - email:

Dr. Christopher Fuhrman - ETS Engineering School, Montreal, Canada - email: christopher.fuhrman at

Oleg Mürk - University of Tartu - Tartu - Estonia - email:

Luca Cabibbo - Università Roma Tre - Italia -

George Wyner - Boston University School of Management - Boston, Massachusetts, USA - email: gwyner at

Martin Kropp - University of Applied Sciences Northwestern Switzerland - email:

PeterSommerlad - University of Applied Sciences HSR Rapperswil, Switzerland

HansRudin? - University of Applied Sciences HSR Rapperswil, Switzerland

Glenn Ray - School of Information Science, University of Pittsburgh, USA - email: website:

Greg Giannis - Dept of Art Design and Multimedia, Victoria University, Australia - email:

Ewa Gurbiel - Institute of Computer Science, Wroclaw University, Poland - email:

DickBotting - California State University, San Bernardino, USA -

Anca Datcu-Romano - BCIT, Canada

Jonathan Mohr - Augustana Faculty, University of Alberta, Camrose, Alberta, Canada -

Dr Christophe Meudec - IT Carlow, Ireland - email 'meudecc at itcarlow dot ie'- Powerpoint slides for 1st edition up to chapter 33 (+ chapter 34 on OCL) available at '' the diagram numbering are different than the book's, sorry (mine are handwritten and given as a handout to the students). Excellent book Craig well done!

Tord Berglund - Gotland University, Sweden -

Andrew Lau - IVE Chai Wan, Hong Kong -

Marija Cubric - Senior Lecturer, Business School, University of Hertfordshire, UK -

Jim Caristi - Valparaiso University, Valparaiso, IN. What I mostly need are elementary exercises for UML and patterns. I used the 2nd edition, and found it very good. I am looking forward to using the 3rd edition starting January.

Ricardo Quintero - Instituto Tecnologico de Culiacán, México. I have slides for the third edition in Spanish and English that I used in my masters degree class of Object-Oriented Software Engineering. They are an update of the notes of Dr. Constantinos Constantinides. If you want a copy send me an email at Thanks.

Carlos Alberto Alsina Arévalos - Universidad Autîoma de Asuncion, Paraguay. (Work E-Mail).

Paula Angeleri - Universidad de Belgrano (UB), Universidad Tecnologica Nacional (UTN), Universidad CAECE, Buenos Aires, ARGENTINA

Uday B. Murthy - Part-time Faculty, Department of Computer and Information Science, IUPUI, Indianapolis, IN -

Zafar I. Malik - Professor, Head of Departments Computer Science and BioSciences?, Mohammad Ali Jinnah University, Islamabad, Pakistan.

Karim El Guemhioui - Professor, Université du Québec en Outaouais, Computer Science and Engineering Depatment, Gatineau (Ottawa Region), Quebec, Canada -

Dr. Marcos Kalinowski - Professor (lato sensu extension), Federal University of Rio de Janeiro, Brazil -

Alexandre Moïse - HEC Montréal,

Siva Jasthi - Community Faculty, Information and Computer Sciences, Metropolitan State University, MN (

Dave Levitt - Inver Hills Community College, Inver Grove Heights, MN

Tiago Massoni - University of Pernambuco, Brazil

Rob Gordon - Saint Mary's University, Winona, MN

Ye ronghua - Zhejiang Normal University, China,

ir. Clem Cornelis - Karel-de-Grote Belgium,

Scott Overmyer - Baker College, Center for Graduate Studies,

Liu Cong - Yancheng Institute of Technology, China,

Rogério Rondini - São Judas Tadeu University, São Paulo, Brazil

mr. ing. Arthur van der Molen - Rotterdam University of Applies Science, Netherlands

Beatriz A. González Beltrán - Universidad Aut�noma Metropolitana, México

Marco Marcellis - University of Applied Science, Amsterdam - The Netherlands,

Nora Houari- Concordia University. Montreal, Canada,

Can you introduce something about your AgileUp?? I like it very much. -- GuangjunMa

The ETS engineering school in Montreal ( uses Craig's book. The semester-long lab project is a network variant of the Nifty Boggle assignment: - the students receive templates for laboratory reports and artifacts, but may use any software tool that does the job for maintaining these artifacts (Rational Rose, Visio, Omondo, Eclipse, Word, PowerPoint, etc.).

The language for the assignment is Java, although that is not imposed. The Java Swing GUI classes, provided in the Stanford distribution of Nifty Boggle, had to be slightly adapted to conform to the ModelViewController separation, compatible with a SystemSequenceDiagram? and its system operations. The students don't spend any time developing the GUILayer, only understanding it in the context of their own system.

Many aspects of Nifty Boggle are perhaps too trivial for things such as a domain model and operation contrats (chapter 13). Games are often already abstractions of reality, and their rules can be found written down. As such, they may not make the best projects for the Analysis part of OOA/D.

On the other hand, a many-week project with iterations and iterative development is a necessary condition for a project with this book. A very complex system may not be feasible in one semester, given that the students must produce and maintain artifacts within each iteration. The students are evaluated not only on the functionality of their project, but on the way they respect the Unified Process.

This approach has the side effect that reduces a related problem in programming assignments: plagiarism of software projects. Because they are graded on the consistency of all their artifacts (UC -> SSD -> operation contract -> postcondition -> interaction diagrams -> Java code), students are less likely to be opportunists.

JUnit and Ant are included in the project, with exercises related to each during the first lab class. We point out that this is part of the "environment" discipline of the UP. They must show minimal proof of the "Configuration Management" discipline as well, usually with only archiving .zip files of all artifacts between timeboxed iterations. Setting up a real tool (CVS, RCS, etc.) for this is much work.

I would be interested in sharing the GUILayer source code for Nifty Boggle that was adapted to support the design philosophy of the book, even down to an eventPerformed method in Java that calls a handler class per the Controller pattern.

Finally, I'm relatively new to Wiki, but not Usenet, and wasn't sure if this whole comment should be just a new page with about practical projects for instructors using Craig's book?

-- Christopher Fuhrman (my email should be above in the list of instructors)

In order to avoid creating a WalledGarden, you probably should keep such things only on this page, unless it is of interest to the rest of the Wiki community, not just to readers of the books.

Need some assistance: I'd like to get test or exams along with solutions that apply to Craig's text to help my new class in OO/UML expected to start on April 2. Awaiting responses from several instrutors but haven't heard anything yet. If anyone can assist, I would be forever grateful and share my materials as well. Email me at if you can assist. Regards, Mike Powers
March 26 Re: above request. No feedback from Craig Larman or other sources on my request. Looks like I'm on my own to develop materials, though the team at Prentice-Hall did a nice job in coming up with some possible alternative text solutions. This is the first time I've run into a situation like this, normally Instructor Resources are substantive and easily editable for specific courses. I recommend that all instructors consider texts that have this kind of support to help streamline course development and improve the overall course quality.

Re: Above. Your request is unreasonable. You expect someone else to prepare YOUR course material? As an instructor, aren't you getting paid to do exactly that? Neither Craig nor anybody else is responsible to spoon feed this to you. Your persistence to avoid doing any preparation for your course should tell us all something about the quality of your course. I feel sorry for your students. Last, your "recommendation" to other instructors is very suspicious.

I can't understand your hostility. I'm not trying to avoid work and here is the basis for my request: 1) Virtually every higher education textbook offers instructor manuals, syllabus generators, and student PowerPoint slides. 2) This very web site advertises "open source" help for educators. What's wrong with asking to share education materials? Isn't that the very point of education and open source techniques advocated by Mr. Larman? And no, course development isn't the same as course instruction, as every educator knows. Finally, why is my recommendation that instructors use available support suspicious?

FYI, I taught two courses based on this text very successfully and the book is outstanding. However, the available research in this area is limited and Mr. Larman along with several others are operating at the leading edge. My feedback is simple: let's get more available tools, examples, tests and documentation to spread the word. My apologies for offending anyone.

==== There is nothing wrong with that. That is what most publishers are doing now; having all that material ready for us. Probably that person does not know that. Faculty members and Instructors will have more time to effectively deliver the message. Well, it is my case. Spending hours and hours producing Powerpoint slides or evaluations do not improve education at all. The focus is education, maybe that person has spent most of his life TRANSCRIBING, not producing knowledge in any case, and he/she wants the rest of the world to do that as well, happy to say, I am not. CategoryHomePage CategoryAuthor

==>To American colleagues: Do you want fries with that? Ketchup perhaps? You should choose a textbook based on its *relevance* to the course and its *quality.* Most of you have become so academically obese that you have no energy to look beyond ONE textbook while also you need to be spoon fed: "Here is THE book, here are THE slides, here are THE sample exams with THE solutions. Now, learn a couple of stupid jokes to entertain your customers and here you go. You just became an OO evangelist." Do you have any comments on this particular book? Do you think it can provide value to courses on object-oriented development? If so, then it's a good candidate to be included in the course's bibliography (do you even know what this is?) and move on. How you prepare and how you deliver your course it is up to you. Selecting a book based on the availability or otherwise of slides/exams is *ridiculous*.

I tried the ftp site "" for resources but the password "<what did turing crack?><kay's language?>" seems not right. Is there anyone have accessed it successfully? Any help will be appreciated,

I have the same problem as above. I tried the ftp site what is the password ??? Any help is appreciated,

Same here 12/29/2010.

Same password problem. Appreciate help... 2/4/2011 kademir (at)

Turing did crack the Enigma crypto engine. Kay was involved with the Smalltalk language. So the password: enigmasmalltalk. / (3 march 2012) Thank you, Ivan! I kept using logo for the language. / (September 2, 2012)

I have a comment about operation contracts. Many SSDs have a kind of "confirmation" system operation at the end (e.g., the operation corresponding to a use case step asking "are you sure you want to enroll in this course?"). My students often lump all the postconditions into that single operation, since the system state would be strange (associating an enrollment to the university before it's been confirmed would cause problems for someone browsing the list of enrollments). They struggle (and I empathize) with the fact that the operation contracts are supposed to reflect evolution in the domain model, but that within a use-case there's possibly a notion of "atomic transaction." Is this a problem of use-case design? How do you deal with the contracts for the system operations leading up to the "confirmation" step to avoid the domain model being in some "inconsistent" state?
Has anyone a good case (problem statement) which I can use for the students? Is it possible that I can use this? (Marco Marcellis

EditText of this page (last edited December 11, 2013) or FindPage with title or text search