UML Weekend Crash Course⢠- To Parent Directory
UML Weekend Crash Course⢠- To Parent Directory UML Weekend Crash Course⢠- To Parent Directory
Session 4—Defining Requirements for the Case Study 43 Pitfall #1: Making assumptions Every piece of information encountered during problem definition or analysis is under suspicion. I can’t tell you how many shouting matches I’ve mediated between programmers and clients because one or the other assumed something in a conversation. The programmer assumed that the client spoke for everyone who does the same job, not realizing that nearly everyone had his own peculiar way of doing it. The client assumed that the programmer already knew most of the facts and only called the meeting to ask specific questions. So the client didn’t volunteer any of the missing information and the programmer remained ignorant. Confirm everything! When possible and reasonable, confirm it in multiple ways. Here again, the UML provides us the means to do exactly this type of verification. I’ll provide examples of this cross checking as you learn about each of the UML diagrams. Pitfall #2: Replicating existing implementations This is probably the single most common and destructive pitfall. Most projects are under serious time pressure. Managers constantly ask the programmers, “Where is the code” Analysis is all about critical thinking — asking why and challenging the status quo. What brought the approving managers to the point that they were willing to spend the company’s money on this project Something was viewed as an obstacle to the company. How can you remove the obstacle if you simply replace the existing system with a duplicate system in a different technology Pitfall #3: Mistaking preferences for requirements Users are people. People have opinions — and not often the same opinions. Beware of people who have a vested interest in how things are done. One client may be the one who thought up the current process. Another client is the dragon slayer, seeking out anything and everything to change. Other clients simply refuse to reach a consensus. Often, the most willing client to participate as the project liaison takes on one of the first two roles, champion or dragon slayer. Both bring a strong bias to the project requirements. This situation challenges you to be the objective outsider. The modeling techniques I cover in the rest of the course provide you with a set of tools that will help objectify the issues and identify inconsistencies. REVIEW In this session, you began your evaluation of the problem statement, the description of the problem you are supposed to solve, or to be fair, an opportunity you are supposed to exploit. You identified four major types of requirements: business process, constraints, rules, and performance. You then used three different perspectives to investigate these requirements: users, resources, and functionality. The different perspectives help to guarantee that you don’t miss anything and that you can validate the requirements by cross-checking them.
44 Friday Evening In the effort to understand a problem statement, you were cautioned to watch out for some common pitfalls: Avoid making assumptions of any kind. Always challenge and confirm. Be careful not to mistake user preferences for true requirements. Watch out for the possibility that you are simply replacing the old system with a duplicate in new attire (that is, a new platform or technology). QUIZ YOURSELF 1. What is a problem statement (See “The Case Study Problem Statement.”) 2. What is a constraint (See “Constraints.”) 3. What is a rule (See “Rules.”) 4. When talking about requirements, what is a user (See “Identifying requirements.”) 5. When talking about requirements, what is functionality (See “Identifying requirements.”) 6. Why should you be skeptical of user preferences (See “Avoiding early pitfalls.”)
- 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 44 and 45: 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: 42 Friday Evening Performance How
- 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
- Page 95 and 96: 72 Saturday Morning You reply that
- Page 97 and 98: 74 Saturday Morning Writing a Use C
- Page 99 and 100: 76 Saturday Morning Use Case dialog
- Page 101 and 102: 78 Saturday Morning Table 7-7 The F
- Page 104 and 105: SESSION 8 Identifying the Use Case
- Page 106 and 107: Session 8—Identifying the Use Cas
- Page 108 and 109: Session 8—Identifying the Use Cas
- Page 110 and 111: Session 8—Identifying the Use Cas
- Page 112 and 113: Session 8—Identifying the Use Cas
- Page 114: Session 8—Identifying the Use Cas
Session 4—Defining Requirements for the Case Study 43<br />
Pitfall #1: Making assumptions<br />
Every piece of information encountered during problem definition or analysis is under suspicion.<br />
I can’t tell you how many shouting matches I’ve mediated between programmers and<br />
clients because one or the other assumed something in a conversation. The programmer<br />
assumed that the client spoke for everyone who does the same job, not realizing that nearly<br />
everyone had his own peculiar way of doing it. The client assumed that the programmer<br />
already knew most of the facts and only called the meeting to ask specific questions. So<br />
the client didn’t volunteer any of the missing information and the programmer remained<br />
ignorant.<br />
Confirm everything! When possible and reasonable, confirm it in multiple ways. Here<br />
again, the <strong>UML</strong> provides us the means to do exactly this type of verification. I’ll provide<br />
examples of this cross checking as you learn about each of the <strong>UML</strong> diagrams.<br />
Pitfall #2: Replicating existing implementations<br />
This is probably the single most common and destructive pitfall. Most projects are under<br />
serious time pressure. Managers constantly ask the programmers, “Where is the code”<br />
Analysis is all about critical thinking — asking why and challenging the status quo. What<br />
brought the approving managers to the point that they were willing to spend the company’s<br />
money on this project Something was viewed as an obstacle to the company. How can you<br />
remove the obstacle if you simply replace the existing system with a duplicate system in a<br />
different technology<br />
Pitfall #3: Mistaking preferences for requirements<br />
Users are people. People have opinions — and not often the same opinions. Beware of people<br />
who have a vested interest in how things are done. One client may be the one who thought<br />
up the current process. Another client is the dragon slayer, seeking out anything and everything<br />
to change. Other clients simply refuse to reach a consensus.<br />
Often, the most willing client to participate as the project liaison takes on one of<br />
the first two roles, champion or dragon slayer. Both bring a strong bias to the project<br />
requirements.<br />
This situation challenges you to be the objective outsider. The modeling techniques I<br />
cover in the rest of the course provide you with a set of tools that will help objectify the<br />
issues and identify inconsistencies.<br />
REVIEW<br />
In this session, you began your evaluation of the problem statement, the description of the<br />
problem you are supposed to solve, or to be fair, an opportunity you are supposed to<br />
exploit. You identified four major types of requirements: business process, constraints, rules,<br />
and performance. You then used three different perspectives to investigate these requirements:<br />
users, resources, and functionality. The different perspectives help to guarantee that<br />
you don’t miss anything and that you can validate the requirements by cross-checking<br />
them.