Overview of a Simple Overview of a Simple Development Method Development Method
Mar 31, 2015
Overview of a Simple Overview of a Simple Development MethodDevelopment Method
BackgroundBackground
• Before discussing some specific methods we will consider a simple method that doesn’t have a name but is a bit like the USDP
• This is the method followed by former colleague Ken Lunn in his book
• Ken now works for the NHS where he is paid a lot of money to try to apply his method to some terrifyingly complex software development projects
• He is happy to co-supervise MSc projects
The VisionThe Vision
SSM Models
Use Cases
Activity Models
Dynamic Models
ObjectModels
Programs
Databases
BusinessComputing
Beginnings of a MethodBeginnings of a Method
Soft Systems
Model
One One possible possible lifecyclelifecycle
Let’s wander through this lifecycle Let’s wander through this lifecycle with a Case Studywith a Case Study
The Huddersfield Playhouse
A Word from our SponsorA Word from our Sponsor
Aims of the Case StudyAims of the Case Study
• To see the different UML models in action
• To see how the models fit together
Beginnings of a MethodBeginnings of a Method
Soft Systems
Model
Let’s have a look at this first
Company backgroundCompany background
The Huddersfield Playhouse, a newly formed repertory theatre, wishes to have a new system for selling tickets and managing their various venues.
They currently use an old-style system that is slow and cumbersome, and does not meet all their needs.
They already have a modern computer and a printer that prints tickets.
Your roleYour role
You are the business systems analyst assigned to the task by HudSoft, the new state-of-the-art software house.
The project manager needs a clear picture of the system scope so that he can put a formal bid together.
Not all the things that the theatre wants to do are possible, and some of them will be too expensive.
You are there to determine in the first instance what is possible.
Huddersfield PlayhouseHuddersfield Playhouse
We have been supplied with some basic information.
The company needs to be able to:
• Make telephone bookings
• Make desk bookings on the night of the performance
• Transfer sales information to the accounts system
• Handle two venues, a main theatre and a studio
• Produce and maintain a mailing list
• Take e-mail bookings via their Web site
StakeholdersStakeholders
• Customers
• Booking clerk
• Theatre manager
Map out Business ProcessesMap out Business Processes
C o un te r b o ok ingT e lep h on e B o ok ing
B o ok ing
C a sh p a ym e ntC re d it ca rd p a ym e ntP rin t t ic ke t
C o lle c tion
C a n ce lla tion
B u ild M a ilin g L ist
S e a t B o ok ing
E n te r V e nu e D e ta ilsB oo k V en ue
B o ok ing
C a n ce lla tion
P a ym e nt
V e nu e M an a ge m e nt
T icke t S a les
E n te r h ire r d e ta ilsIn vo ice h ire rP ro cess p aym e ntC h ase pa ym e nt
V e n ue H ire C h arg ing
A cco u n ting
U p loa d in fo rm a tionR e ce ive e m a ils
A d vertise P e rfo rm an ces
P u b lic ity
H u d d ers fie ldP la yho u se
Review with StakeholdersReview with Stakeholders
C o un te r B o ok ingT e lep h on e B o ok ingW e b B o ok ing
B o ok ing
C a sh p a ym e ntC re d it ca rd p a ym e ntP rin t t ic ke t
C o lle c tion
C a n ce lla tion
B u ild M a ilin g L ist
S e a t B o ok ing
E n te r V e nu e D e ta ilsB oo k V en ue
B o ok ing
C a n ce lla tion
P a ym e nt
V e nu e M an a ge m e nt
T icke t S a les
E n te r h ire r d e ta ilsIn vo ice h ire rP ro cess p aym e ntC h ase pa ym e nt
V e n ue H ire C h arg ing
A cco u n ting
U p loa d in fo rm a tionR e ce ive e m a ils
A d vertise P e rfo rm an ces
P u b lic ity
H u d d ers fie ldP la yho u se
Added by theatre manager
Review with StakeholdersReview with Stakeholders
• Discuss with Theatre manager and Booking Clerk
• They are happy with your ideas so far
• Now we look at how the new system will function
• First some activity diagrams are produced for the activities
Counter booking processCounter booking process
Select venue on system
Select performance on system
Choose seats
Take customer name and contact details
Print reservation stub for customer
Advise them to pay for and collect tickets 30 mins before performance
Counter booking processCounter booking process
Select venue on system
Select performance on system
Choose seats
Print reservation stub for customer
Take customer name and contact details
Advise them to pay for and collect tickets 30 mins before performance
Take details on paper and enter later
Wait until performance details are on system
Counter booking processCounter booking process
Select venue on system
Select performance on system
Choose seats
Print reservation stub for customer
Take customer name and contact details
Advise them to pay for and collect tickets 30 mins before performance
Take details on paper and enter later
Wait until performance details are on system
Long Queue
Customer declines
Counter booking processCounter booking process
Select venue on system
Select performance on system
Choose seats
Print reservation stub for customer
Take customer name and contact details
Advise them to pay for and collect tickets 30 mins before performance
Take details on paper and enter later
Take Payment
Wait until performance details are on system
Long Queue
Customer declines
Customer offers to pay
Counter booking processCounter booking process
Select venue on system
Select performance on system
Choose seats
Print reservation stub for customer
Take customer name and contact details
Advise them to pay for and collect tickets 30 mins before performance
Handwrite reservation details
Take details on paper and enter later
Take Payment
Wait until performance details are on system
Printer not working
Long Queue
Customer declines
Customer offers to pay
Produce next activity diagramProduce next activity diagram
• The Take Payment activity
Take payment activity diagramTake payment activity diagram
Advise customers of tickets price
Request payment method
Print tickets and hand to customer
Thank customer
Take payment by cheque
Cheque offered
Take payment activity diagramTake payment activity diagram
Advise customers of tickets price
Request payment method
Print tickets and hand to customer
Take payment by cheque
Thank customer
Take Cash Payment
Cheque offered
Cash offered
Take payment activity diagramTake payment activity diagram
Advise customers of tickets price
Request payment method
Print tickets and hand to customer
Take payment by cheque
Thank customer
Take payment by credit card
Take Cash Payment
Cheque offered
Credit card offered
Cash offeredCredit card refused
Take payment activity diagramTake payment activity diagram
Advise customers of tickets price
Request payment method
Print tickets and hand to customer
Take payment by cheque
Thank customer
Take payment by credit card
Hand write tickets
Take Cash Payment
Cheque offered
Credit card offered
Cash offered
Can’t print
Credit card refused
Produce diagram forProduce diagram forTake payment by credit cardTake payment by credit card
Take payment by credit cardTake payment by credit card
Swipe credit card
Enter amount
Check signature
Return credit card, voucher and till receipt to customer
Enter amount on till and print receipt
Wait for acceptance
Obtain signature
Take payment by credit cardTake payment by credit card
Swipe credit card
Enter amount
Check signature
Obtain signature
Return credit card, voucher and till receipt to customer
Credit Card refused
Enter amount on till and print receipt
Wait for acceptance
Take payment by credit cardTake payment by credit card
Swipe credit card
Enter amount
Check signature
Obtain signature
Return credit card, voucher and till receipt to customer
Credit Card refused
Enter amount on till and print receipt
Wait for acceptance
Signature does not match
Take payment by credit cardTake payment by credit card
Swipe credit card
Enter amount
Check signature
Obtain signature
Return credit card, voucher and till receipt to customer
Credit Card refused
Enter amount on till and print receipt
Wait for acceptance
Signature does not match
Refer to manager
Second attempt does not match
Manager approvesManager refuses
Let’s have a look at this
Now Consider Use CasesNow Consider Use CasesBooking Clerk Use Case Diagram
Book tickets
Print tickets
Now Consider Use CasesNow Consider Use CasesBooking Clerk Use Case Diagram
Book tickets
Print tickets
Add to mailing list
<<include>>
Print reservation stub
<<Include>>
Take payment
<<extend>>
<<extend>>
Book ticket use case (1)Book ticket use case (1)
Use Case Number: 001 Use Case Name: Book Ticket Brief Description: Books tickets for a customer for a particular performance. Actors: Booking clerk Frequency of Execution: Daily, up to 200 times Scalability: Only used by one booking clerk at a time. Criticality: Can be managed by paper, but that is very slow and causes queues and upset at the box office. Primary Path: 1. Select venue (studio or main theatre). 2. Select performance. 3. Display seat availability as a graphic, green for vacant seats, blue for booked, yellow for paid for. 4. Reserve seats. 5. Enter ticket types (concessionary, full, complementary, volume discount) 6. Calculate total price. 7. Take customer name and contact details and enter on system, using surname and postcode. If the customer has bought tickets before, then this should be shown by the system. 8. Take payment, and mark the tickets as paid for. 9. Print tickets.
Book ticket use case (2)Book ticket use case (2)
Use Cases Related to Primary Path:8. Take PaymentAlternatives:8.1 Customer wants to pay later. Print a reservation stub for the customer, thatadvises them that the seat is reserved until 30 minutes before the performance. Exituse case.
Use Cases Related to Alternatives:NoneExceptions:If the ticketing system is down, then this will have to be handled by paper. Seats willhave to be sold unallocated.9. Printer not working. Handwrite tickets.Use Cases Related to Exceptions:NoneNotes:1. Reviewed with booking clerks and agreed with theatre manager on 2 September2000.
So what have we gotSo what have we got
• An overview of the business
• A detailed breakdown of some processes
• A set of use cases
• A detailed description of use cases
• Consulted stakeholders
Beginnings of a MethodBeginnings of a Method
Soft Systems
Model
The flow of work in requirements The flow of work in requirements capturecapture
T e lep h on e B o ok ing
C o un te r B o ok ing
C a sh p a ym e ntC re d it ca rd p a ym e ntP rin t t ic ke t
C o lle c t ion
C a n ce lla tion
B u ild M a ilin g L ist
S e a t B o ok ing
E n te r V e nu e D e ta ilsB oo k V en ue
B o ok ing
C a n ce lla tion
P a ym e nt
V e nu e M an a ge m e nt
T icke t S a les
E n te r h ire r d e ta ilsIn vo ice h ire rP ro cess p aym e ntC h ase pa ym e nt
V e n ue H ire C h arg ing
A cco u n ting
U p loa d in fo rm a tionR e ce ive e m a ils
A d vertise P e rfo rm an ces
P u b lic ity
H u d d ers fie ldP la yho u se
Select venue on system
Select performance on system
Choose seats
Take customer name and contact details
Print reservation stub for customer
Customer refuses to give N&A
Long queue
Advise them to pay for and collect tickets 30 minutes in advance of performance
Take paymentCustomer offers to pay
Wait until performance details on system
Handwrite reservation details
Printer not working
Take details on paper and enter later
There is a subdiagram here
Print Tickets
Booking Clerk
Take Payment<<extend>>
Add to mailing list
Book tickets
<<extend>>
<<include>>
Print reservation stub
<<include>>
Use Case Number: 001 Use Case Name: Book TicketBrief Description: Books tickets for a customer for a particular performance.Actors: Booking clerkFrequency of Execution: Daily, up to 200 timesScalability: Only used by one booking clerk at a time.Criticality: Can be managed by paper, but that is very slow and causes queues andupset at the box office.Primary Path:1. Select venue (studio or main stage).2. Select performance.3. Display seat availability as a graphic, green for vacant seats, blue for booked,yellow for paid for.4. Reserve seats.5. Enter ticket types (concessionary, full, complementary, volume discount)6. Calculate total price.7. Take customer name and contact details and enter on system, using surnameand postcode. If the customer has bought tickets before, then this should be shownby the system.8. Take payment, and mark the tickets as paid for.9. Print tickets.
What next?What next?
• Class Diagrams
• Design using sequence diagrams
We now need to look at this
Getting StartedGetting Started
Moving onMoving on
Implying the need for this class Implying the need for this class diagramdiagram
That gets us That gets us to hereto here