UML Weekend Crash Course⢠- To Parent Directory
UML Weekend Crash Course⢠- To Parent Directory UML Weekend Crash Course⢠- To Parent Directory
Session 2—UML and Development Methodologies 21 Programmers work extremely well together. In every shop I’ve worked in for over 20 years, programmers tend to be extremely individualistic and resist input from other programmers. I’ve mediated too many fights to be overly optimistic in this area. Experienced programmers work with new team members to maintain the system (“Maintenance is the normal state of XP,” says Kent Beck). In every shop I know, the experienced people move on to new projects and the new folks get stuck with the maintenance. It’s almost like a rite of passage. Plus, in XP there is no documentation other than in-line comments (that is, no overview documentation about how the design works or how the system fits together), which makes it extremely difficult to know how to modify a system. Design is a skill that is common to every coder. Not so. Many programmers have no concept of what good design is. Much of their coding is intuitive or simply “how they learned to do it.” Resources The single best resource I’ve found to track down the various methodologies is www.cetus links.org. On the first page of this site, you will find a link to OOAD Methodologies. Click on it and you will be sent to a page with links to more than 50 different methodologies, lists of books, articles, conferences, and organizations worldwide. REVIEW A methodology is made up of a predefined process, a vocabulary used to describe the process and the work products, and a set of rules and guidelines that help define the quality of the process and the work products. The UML specifies only the vocabulary, the notation that describes the artifacts of the process. Each methodology decides if and how to apply the UML notation. This session presented four leading methodologies that illustrate the diversity and commonality of the current techniques available for software development. The Rational Unified Process (RUP) provides a comprehensive plan for the activities and the artifacts required to complete the development process. The approach strongly emphasizes iterative and incremental development. The RUP is best suited for large projects. The Shlaer-Mellor Method emphasizes tight integration and simulation to verify the accuracy of the product throughout development. The Shlaer-Mellor Method is best suited for real-time systems. The CRC method emphasizes simplicity and role-playing to work out the class-level requirements for the design of the system. The CRC method is best suited for helping people learn about objects and object-oriented design. Extreme Programming (XP) attempts to address many of the personal issues involved in team dynamics and to create the most positive work environment for both programmers and clients alike. It emphasizes continuous testing, consistent standards, and a lot of communication throughout the process. XP tends to be best suited for small, fast-moving projects with high management and client support.
22 Friday Evening Each methodology has strengths and weaknesses. Choosing a method requires understanding your own environment and matching those strengths and weaknesses to your specific needs. QUIZ YOURSELF 1. What are the three key elements of a methodology (See Session introduction.) 2. What are the two hallmarks of the RUP (See “The Rational Unified Process.”) 3. Name the predominant strength of the Shlaer-Mellor methodology. (See “Shlaer- Mellor Method.”) 4. What are the three key concepts that define the CRC methodology (See “CRC.”) 5. Name the three driving factors behind the success of the XP approach. (See “Extreme Programming.”)
- Page 1 and 2: UML WEEKEND CRASH COURSE THOMAS A.
- Page 4 and 5: UML Weekend Crash Course Thomas A.
- Page 6 and 7: About the Author Tom Pender is the
- Page 8: With thanks to Lynne Angeloro for h
- Page 11 and 12: x Preface To get the most out of th
- Page 13 and 14: xii Preface Features First, as you
- Page 15 and 16: Part VI—Sunday Afternoon ........
- Page 17 and 18: xvi Contents Encapsulation ........
- Page 19 and 20: xviii Contents Modeling the Class C
- Page 21 and 22: xx Contents Session 22-Modeling the
- Page 24: UML Weekend Crash Course
- Page 27 and 28: PART I Friday Evening Session 1 Wha
- Page 29 and 30: 6 Friday Evening The UML is a stand
- Page 31 and 32: 8 Friday Evening will find three pa
- Page 33 and 34: 10 Friday Evening The Continuing Re
- Page 36 and 37: SESSION 2 UML and Development Metho
- Page 38 and 39: Session 2—UML and Development Met
- Page 40 and 41: Session 2—UML and Development Met
- Page 42 and 43: Session 2—UML and Development Met
- Page 46 and 47: SESSION 3 How to Approach the UML S
- Page 48 and 49: Session 3—How to Approach the UML
- Page 50 and 51: Session 3—How to Approach the UML
- Page 52 and 53: Session 3—How to Approach the UML
- Page 54 and 55: Session 3—How to Approach the UML
- Page 56: Session 3—How to Approach the UML
- Page 59 and 60: 36 Friday Evening Remember to pay c
- Page 61 and 62: 38 Friday Evening Constraints The s
- Page 63 and 64: 40 Friday Evening An Inventory Cont
- Page 65 and 66: 42 Friday Evening Performance How
- Page 67 and 68: 44 Friday Evening In the effort to
- Page 70 and 71: Part II — Saturday Morning Sessio
- Page 72 and 73: SESSION 5 Understanding the Use Cas
- Page 74 and 75: Session 5—Understanding the Use C
- Page 76 and 77: Session 5—Understanding the Use C
- Page 78 and 79: Session 5—Understanding the Use C
- Page 80 and 81: Session 5—Understanding the Use C
- Page 82: Session 5—Understanding the Use C
- Page 85 and 86: 62 Saturday Morning Order Fulfillme
- Page 87 and 88: 64 Saturday Morning What does the
- Page 89 and 90: 66 Saturday Morning For example, th
- Page 91 and 92: 68 Saturday Morning REVIEW The goal
- Page 93 and 94: 70 Saturday Morning Much of this la
Session 2—<strong>UML</strong> and Development Methodologies 21<br />
Programmers work extremely well together. In every shop I’ve worked in for over 20<br />
years, programmers tend to be extremely individualistic and resist input from other<br />
programmers. I’ve mediated too many fights to be overly optimistic in this area.<br />
Experienced programmers work with new team members to maintain the system<br />
(“Maintenance is the normal state of XP,” says Kent Beck). In every shop I know,<br />
the experienced people move on to new projects and the new folks get stuck with<br />
the maintenance. It’s almost like a rite of passage. Plus, in XP there is no documentation<br />
other than in-line comments (that is, no overview documentation<br />
about how the design works or how the system fits together), which makes it<br />
extremely difficult to know how to modify a system.<br />
Design is a skill that is common to every coder. Not so. Many programmers have<br />
no concept of what good design is. Much of their coding is intuitive or simply<br />
“how they learned to do it.”<br />
Resources<br />
The single best resource I’ve found to track down the various methodologies is www.cetus<br />
links.org. On the first page of this site, you will find a link to OOAD Methodologies. Click<br />
on it and you will be sent to a page with links to more than 50 different methodologies, lists<br />
of books, articles, conferences, and organizations worldwide.<br />
REVIEW<br />
A methodology is made up of a predefined process, a vocabulary used to describe the process<br />
and the work products, and a set of rules and guidelines that help define the quality of the<br />
process and the work products. The <strong>UML</strong> specifies only the vocabulary, the notation that<br />
describes the artifacts of the process. Each methodology decides if and how to apply the<br />
<strong>UML</strong> notation.<br />
This session presented four leading methodologies that illustrate the diversity and commonality<br />
of the current techniques available for software development.<br />
The Rational Unified Process (RUP) provides a comprehensive plan for the activities<br />
and the artifacts required to complete the development process. The approach<br />
strongly emphasizes iterative and incremental development. The RUP is best suited<br />
for large projects.<br />
The Shlaer-Mellor Method emphasizes tight integration and simulation to verify the<br />
accuracy of the product throughout development. The Shlaer-Mellor Method is best<br />
suited for real-time systems.<br />
The CRC method emphasizes simplicity and role-playing to work out the class-level<br />
requirements for the design of the system. The CRC method is best suited for helping<br />
people learn about objects and object-oriented design.<br />
Extreme Programming (XP) attempts to address many of the personal issues involved<br />
in team dynamics and to create the most positive work environment for both programmers<br />
and clients alike. It emphasizes continuous testing, consistent standards,<br />
and a lot of communication throughout the process. XP tends to be best suited for<br />
small, fast-moving projects with high management and client support.