Upload
anabel-mcgee
View
215
Download
2
Embed Size (px)
Citation preview
Analysis ParalysisWe spend so much time thinking about the
problem and making sure the next step is “perfect” there is a risk that we never actually make the next step.
“Do you want it perfect or do you want it now?”
Faulty AssumptionsIn the second lecture we drew up the following
detailed specification…
The consultant sits at their desk with a stack of business cards and flyers. They pick up a business card and start to input the details into system. The first field they enter is the name of the company. While doing this the system looks up the company name to see if it is already on the system. The next field the user enters is the name of the contact. Whilst dong this, the list of contacts for that company is displayed such that if the contact is already on the system the user may move onto another business card. At this point the user should have the opportunity to update the details on the system should they note that some aspect has change e.g. email address.
From this we drew up an initial event table…
Subject Verb Object Response
Consultant Inputs Card Data accepted by the system
System Checks Card Identifying duplicates
Consultant Updates Card New data input
There is a problemBack to that red herring
If we collected business cards like stamps then yes we would be interested in recording individual cards.
What’s more important in our case isn’t the cards but the data they contain.
We are interested in business intelligence on
the companies and the people they employ.
Need to Revise the SpecificationThe consultant sits at their desk with a stack of
business cards and flyers. They pick up a business card and start to input the details into system. The user is interested in recording details of the individual and associated company. The first field they enter is the name of the company. While doing this the system looks up the company name to see if it is already on the system. The next field the user enters is the name of the contact. Whilst dong this, the list of contacts for that company is displayed such that if the contact is already on the system the user may move onto another business card. At this point the user should have the opportunity to update the details on the system should they note that some aspect has change e.g. email address.
And the Event TableSubject Verb Object ResponseConsultant Inputs Company
NameSystem produces a list of companies with that name
System Finds Company Produces a list of companies with that name
System Lists Employees Produces a list of employees at each company
Consultant Adds Company Company added to the system
Consultant Adds Employee Employee added to the system
Consultant Updates Employee Employee details updated
Consultant Updates Company Company details updated
Important Questions to AskDo we have an actor on the use case that
matches the sequence diagram? Yes!Do we have a class that allows us to create
the Companies object? Yes!Do we have methods in the class that are
able to handle the messages?FilterByCompanyName – yesFilterByCompanyNo - no
Where to Place the Validation Method?Composition and Aggregation RevisitedComposition
Aggregation
Order Order LineHas1 0..*
Attributes
Operations
Attributes
Operations
Customer AddressUses1 1..*
Attributes
Operations
Attributes
Operations