1 the role of use cases in delivering quality software brent barton solutionsiq march 23, 2006

49
1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

Upload: oswald-lindsey

Post on 31-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

1

The Role of Use Cases in Delivering Quality Software

Brent BartonSolutionsIQMarch 23, 2006

Page 2: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

2

Scope of Discussion

• What are Use Cases?• What are some project examples of Use

Cases?• How does a panel of Public Sector

employees address the challenges of delivering quality software?

Page 3: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

3

Introductions

• Brent Barton, PMO Manager– Over 15 years industry experience– Managed projects from small

implementations to multi-million dollar enterprise projects

– Implementer of Methodologies and Best Practices (Agile/Scrum, CMM, PMI)

– Loved, hated, written and suffered requirements

Page 4: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

4

Audience Role Demographics

Based on Survey Responses

Page 5: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

5

Audience Experience with Use Cases

Based on Survey Responses

Page 6: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

6

Audience Type and Years of Use Case Experience

Based on Survey Responses

Page 7: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

7

Agenda

• Definitions of Use Cases• Role of Uses Cases in software delivery• Quality• What are some project examples of Use

Cases?– The Card Game Company– MyBCC, Bellevue Community College

• Panel Discussion

Page 8: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

8

What is a Use Case (anvendningsfall)?

• A use case describes…– Sequences of actions

a system performs – That yields an observable value

– To a particular actor of the system.

• Cockburn– “A use case is a prose description of a

system's behavior when interacting with the outside world.”*

*Cockburn, Alistair, “Use Cases, Ten Years Later,” STQE magazine, Mar/Apr

2002

Page 9: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

9

Are Use Cases Important to the State of Washington?

Based on Survey Responses

Page 10: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

10

Business Use Cases vs. System Use Cases

• What is the Actor Interacting With?

– Organization? Business Use Case

– System Under Design? System Use Case

Page 11: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

11

Use Case Models

http://www.agilemodeling.com/artifacts/useCaseDiagram.htm

Page 12: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

12

Use Case Formalism

• The use case brief – Consists of two to four sentences summarizing the

use case. It fits well in a spreadsheet cell, and allows the other columns in the spreadsheet to record business priority, technical complexity, release number, and other planning information.

• The casual use case – Consists of a few paragraphs of text, covering the

items mentioned above.

• The fully dressed use case – Features the long template with fields for

stakeholders, minimum guarantees, post-conditions, business rules, performance constraints, and so on.

*Cockburn, Alistair, “Use Cases, Ten Years Later,” STQE magazine, Mar/Apr

2002

Page 13: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

13

Basic Use Case Anatomy

• Name• Brief Description• Actor(s)• Flow of Events (Steps)

Page 14: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

14

Use Case Approaches

• Jacobson– 1992, A bit academic and outdated

• Cockburn– White (Summary)

• Cloud• Kite

– Blue (User Goals)• Sea Level

– Indigo/Black (SubFunctions)• Underwater/Clam

• Ambler– Agile Modeling– Do just enough modeling at the time to serve the need

• Kulak, Guiney– Facade: Placeholders– Filled: Comprehensive Set of Use Cases– Focused: Focus to Project Scope– Finished: Integrate UI, Non-functional

Page 15: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

15

More about Use Cases

• The set of all use cases together describes the complete behavior of the system.

• Use cases primarily focus on – “What” the system should do and – not about “How” it might go about

doing it.

Page 16: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

16

Use Cases Packages

• By Actor• By Summary Use Case• By Development Team and Release• By Subject Area

Page 17: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

17

More Useful Case Anatomy

• Pre-condition• Post-condition• Notes• Non-Functional Requirements• External links

Page 18: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

18

Features

• There is no direct relationship of uses cases and features.

• Use Cases are no Silver Bullet, darn it!

Page 19: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

19

Collecting Business Rules

Business Rules can be placed into a number of categories.

• Statements of fact• Statements of validation• Statements of quality• Statements of sequence

Page 20: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

20

Where a Business Rule is Modeled in Use Cases

Business Rule Type Representation

Statement of fact Either as a Step within a Use Case or a Glossary/Actor Entry

Statements of validation Step within a Use Case

Statements of quality A Non-Functional Requirement (NFR) with category set appropriately

Statements of sequence Steps in a Scenario (Main or Alternative) within a Use Case

Page 21: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

21

Realizing Use Cases

• Use Cases provide All and Only Black–Box requirements

• Design is left to the development experts to produce a “good” design

• Help– Use Cases name the concepts needed in

domain modeling– Some design techniques can take advantage

of all the scenarios (Responsibility-Driven Design)

• Test Cases – Excellent Functional Mapping

Page 22: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

22

Traceability

• From Stakeholder Utterance to Finished Product– Is it Worth It? If so, what level of detail is

needed?– Must determine the Cost/Benefit ratio

• Changes over Time– Is this part of an SCM Plan?– Tools are a big help

• Version Control• Audit Trails

Page 23: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

23

Another Approach to Traceability

• Map Use Case Scenarios to User Stories (INVEST)

• Write automated functional acceptance tests using tools like Fitnesse– Put Requirements into the Test– Place the tests under version control

Page 24: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

24

Case Study: The Card Game Company

• Based upon a real project• Custom application. Rewrite of existing

system• High Ceremony• After Simplification

– 96 use cases– 13 packages

• Use Cases limited to White and Blue

Page 25: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

25

High Ceremony Traceability Stack

Lifecycle Objective Milestone (LOM)

Lifecycle Architecture Milestone (LAM)

Vision / Scope Document

Stakeholders Requests

(SHR)

Features

User Use Cases

User Use Case Model

Story Board

Suplementary Information Core Artifacts

System Use Cases

System Use Case Model

Package Model (System

Interaction Model)

Class Diagram ER Diagram

Deployment Model

System Test Scenarios

Integration Test Scenarios

Outputs

Steering Committee(as Change Requests)

Existing Process or

System

Supplemental Specification

Business Rules

Page 26: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

26

Responsibility Assignment Matrix

Page 27: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

27

Manage Games

Manage User Community

Manage Chat

Manage Trading

Manage User Accounts

Manage Cards Collection

Manage System Administration Manage Online Help

Manage ReportsManage System Interfaces Manage Online Store

CGC

Manage Fraudulent Activity

Manage Settings

Manage Deck

Out Of Scope

Use Case Packages

Page 28: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

28

Actors

Player

System Administrator

Bugzilla

Audience

Time

Moderators

Customer Service Help Desk

Mentors

System

Actors

Report Viewers

MOM

Opponent

Credit Card Authorization System

Page 29: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

29

Item Description

Mulligan A way for players to get better starting hands of cards. Before taking their first turn, players can “mulligan” by returning their hands and then drawing new ones that contain one less card than they had previously. Players dissatisfied with their starting hands can mulligan as often as they want.

BR Business Rules

Active Player The player whose turn it is.

Player One of two people in a game: an active player and an opponent. The active player is the one whose turn it is.

Abusive language Any words or phrases restricted by a company’s abusive language policy. Any user who violates this policy will be penalized appropriately.

Adjourn When players agree to end a game temporarily and resume it at another time. All players in an adjourned game must be logged in to resume the game.

Challenge One way to start a two-player game

Concede To forfeit a game or match to your opponent. A conceded game counts as a win for your opponent and a loss for you.

LIFO Describes how a stack works. "Last In, First Out" means that the last spell played will be the first to resolve.

Swiss draw A form of competition that allows players to participate in every round of a tournament. A Swiss draw is a round in which a player plays someone with a similar record. Single-elimination final rounds can follow Swiss rounds in some tournaments.

No watchers An option in the game setup window. When selected before a game begins, this option allows other players to watch the game.

You On a card, refers to the card's current controller.

Solitaire A form of play in which a player plays with the System – not an opponent.

MSF Microsoft Solutions Framework

Avatar A digital character that represents a Player.

TCG Trading Cards Game

CS Customer Service

BOM A complete checklist of what will be delivered to the customer (Bill of Materials)

Simplified Glossary

Page 30: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

30

Simplified Set Of Use Cases6 Manage Card Deck ..................................................................................................................................6

6.1 UC15 Player_Manage_DeckEditor ................................ ................................ ................................ ...........6 6.2 UC16 Player_Manage_Deck_From_CardPool ................................ ................................ ............................. 12 6.3 UC85 Player_View_DeckStatistics................................ ................................ ................................ ......... 18

7 Miscellaneous functionalities ..............................................................................................................21 8 Manage Online Help .............................................................................................................................. 21

8.1 UC62 User_View_OnlineHelp................................ ................................ ................................ ............... 22 8.2 UC3 User_View_Tutorial................................ ................................ ................................ .................... 26 8.3 UC42 User_View_SlideShow................................ ................................ ................................ ................ 30

9 Out_Of_Scope........................................................................................................................................32 10 Manage Online Store............................................................................................................................. 32

10.1 UC47 StoreAdministrator_Manages_ProductInventory................................ ................................ .............. 32 10.2 UC31 StoreAdministrator_Manages_ProductCatalog................................ ................................ ................ 33

11 Manage System Interfaces ................................................................................................................... 34 11.1 UC58 System_Manage_Interface................................ ................................ ................................ ....... 34

12 Manage Reports.....................................................................................................................................35 12.1 UC64 CustomerService_Generate_PlayerReports ................................ ................................ ................... 35 12.2 UC48 System Administrator_Generate_PerformanceReports................................ ................................ ...... 36 12.3 UC49 Sales_Generate_ProductReports ................................ ................................ ............................... 37 12.4 UC50 Executives_Generate_SalesReports................................ ................................ ............................ 38

13 Manage User Community ..................................................................................................................... 39 13.1 UC2 Player_Manage_clique................................ ................................ ................................ ............. 39 13.2 UC22 Player_Manage_UserInformation ................................ ................................ ............................... 47

14 Manage Chat ..........................................................................................................................................48 14.1 UC129 Player_Manage_Chat ................................ ................................ ................................ ........... 49 14.2 UC12 SystemAdministrator_Manage_Chat................................ ................................ ............................ 53 14.3 UC5 Player_Manage_ContactsList ................................ ................................ ................................ ..... 57

15 Manage Settings ....................................................................................................................................59 15.1 UC4 Player_Manage_PersonalSetting ................................ ................................ ................................ . 60 15.2 UC8 Player_Manage_SoundDisplaySettings................................ ................................ ........................... 64 15.3 UC19 Player_Manage_GamePlaySetting................................ ................................ .............................. 69

16 Manage Game Play................................................................................................................................ 71 16.1 UC28 Player_Navigates_Game................................ ................................ ................................ ......... 72 16.2 UC34 Player_Initiate_Game................................ ................................ ................................ ............ 76 16.3 UC35 Player_J oin_Game................................ ................................ ................................ ................ 80 16.4 UC32 Player_Challenge_Opponent ................................ ................................ ................................ .... 84 16.5 UC30 Audience_Replay_Game................................ ................................ ................................ ......... 87 16.6 UC21 Audience_Watch_Game ................................ ................................ ................................ ......... 92

17 Manage System Administration...........................................................................................................95 17.1 UC60 SystemAdministrator_Maintain_Accounts ................................ ................................ ..................... 96 17.2 UC7 SystemAdministrator_Update_PlayerPrivileges................................ ................................ ................ 98 17.3 UC18 SystemAdministrator_Broadcast_Message................................ ................................ .................... 102 17.4 UC20 CliqueAdministrator_Process_CliqueRequests................................ ................................ ............... 105 17.5 UC55 SystemAdministrator_View_GameAdmin Information ................................ ................................ ...... 109 17.6 UC41 Player_Login_System................................ ................................ ................................ ............ 113 17.7 UC59 Player_Report_ProductDefects................................ ................................ ................................ 118

Page 31: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

31

Dressed Use Case, part 1

1.1 UC15 Player_Manage_DeckEditor

1.1.1 Characteristic Information

Business Description This use case establishes the main functionality of the Deck Editor. With the Deck Editor, the user can build and edit card decks by performing the following tasks:

1 - View a collection

2 - View all cards

3 - Search and filter a collection

4 - Build a deck from a collection by adding and removing cards

5 - Save a deck being used, load an existing deck, or start a new deck.

6 - Gather statistics for analyzing a deck list.

6 - Add and remove cards from the deck sideboard.

7 - View a larger version of cards in the card view

Pre-condition 1. The player is a registered user and has started the system successfully.

2. The player has purchased cards, and the cards are available for constructing a deck.

Post-condition The player has constructed a deck successfully and saved it for future use.

Actor(s) Player

Goal Level Summary

Priority High

Trigger Player

Min. Guarantee QA

Page 32: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

32

Dressed Use Case, Main Success Scenario

1.1.1 Main Success Scenario

Step Name Actor Description

1 Begin None This use case begins when the player successfully navigates to the Deck Editor.

Branches To: None

Refined By: None

2 Display players’ cards in the card collection

None The system displays all the cards owned by a player in the card collection. The system displays the following information about the cards:

- Qty, Card name, Type (Creature, Artifact,Artifact - Equipment, Artifact Creature,Artifact - Land, Instant, Land, Legendary Artifact, Legendary Artifact - Equipment, Sorcery), Mana cost, Power, Toughness, Creature Type, set, rarity and Rules text.

Note:

1. Certain business rules are associated with the card collection. Refer to the business rule document for more information about these rules.

2. Refer to the non-functional specification for more details about the look and feel of the User Interface and for other non-functional requirements.

Branches To: End (User desires to exit)

Refined By: None

3 Manage the deck Player The player will be able to manage a card deck by doing the following:

1 - Viewing the collection

2 - Viewing all cards

3 - Searching and filtering the collection

5 - Saving the deck being used, loading an existing deck, or starting a new deck

5 – Gathering statistics for analyzing the deck list.

6 - Managing the sideboard

7 - Changing the card pool and sideboard views by switching between text and graphics

8 – Sorting or piling the way cards are viewed in the Deck or Sideboard windows.

9 - Viewing a larger version of cards in the card view

Branches To: AS1: Begin

AS2: Select Save OPtion from the Deck Editor view

AS3: Select Load OPtion from the Deck Editor view

AS4: Select the New OPtion

AS5: Change View

AS6: Sort cards in the Deck or Sideboard

Refined By: None

4 Maintains Activity History

None For troubleshooting and auditing purposes, the system records all player activity related to card deck construction.

Branches To: None

Refined By: None

5 End None This use case ends here with the player successfully saving a card deck in the Deck Editor or modifying card decks stored at the server.

Branches To: None

Refined By: None

Page 33: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

33

Dressed Use Case, Alternative Scenario 1

1.1.1.1 Search and Filter collection

Step Name Actor Description

1 Begin None This use case begins when the player searches and filters to manage a deck.

Branches To: None

Refined By: None

2 Search and filter a collection

Player To construct a deck, the player searches and filters the collection to find the required collection objects.

Branches To: None

Refined By: None

3 End None This use case ends when the player has searched and filtered the collection

Branches To: Displays player's cards in the card collection

Refined By: None

Page 34: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

34

Dressed Use Case, Alternative Scenario 2

1.1.1.1 Save Deck

Step Name Actor Description

1 Begin None This use case begins when the player tries to save the deck being worked on.

Branches To: None

Refined By: None

2 Select Save OPtion from the deck editor view

Player The user selects the save option on the displayed view.

Branches To: None

Refined By: None

3 System saves deck to disk file

None The system saves the current deck to a file on the user's disk. If the deck has been saved before, the system will overwrite the existing file with the new one. If the player is saving a new file, the system responds with a Save Deck As window allowing the player to specify a location for the file.

Branches To: None

Refined By: None

4 Select Save Player The player will select Save Option in the Save As window. The player will be able to cancel this operation at any time.

Branches To: None

Refined By: None

5 System Save Deck None The system will save the deck to a disk specified by the user.

Branches To: None

Refined By: None

6 End None This use case ends when the deck is saved to the user's disk file or the user cancels the operation.

Branches To: Displays player's cards in the card collection

Refined By: None

Page 35: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

35

Dressed Use Case, Alternative Scenario 3, 4, 5, 6

1.1.1.1 Load Deck

Step Name Actor Description

1 Begin None This use case begins when the user tries to load an existing saved deck into the Deck Editor.

Branches To: None

Refined By: None

2 Select Load OPtion from the Deck Editor view

Player To load an existing deck, the user selects Load Deck option from the Deck Editor view.

Branches To: None

Refined By: None

3 System Display the Load Deck window

None The system displays a Load Deck window that shows a list of saved decks on the user's computer.

Branches To: None

Refined By: None

4 Select Deck to Load Player The player selects the desired deck to load and then selects the Open Option. The user can cancel this option at any time.

Branches To: None

Refined By: None

5 System Loads the deck to the deck

None The system loads the deck into the deck editor view.

Branches To: None

Refined By: None

6 End None This use case ends when the selected deck is loaded into the user's Deck Editor view.

Branches To: Displays player's cards in the card collection

Refined By: None

1.1.1.2 Start New Deck

Step Name Actor Description

1 Begin None This use case begins when the player tries to start building a new deck.

Branches To: None

Refined By: None

2 Select the New OPtion Player The player selects the nNew OPtion from the Deck Editor view to start building a new deck.

Branches To: None

Refined By: None

3 System Clears existing Deck and sideboard windows

None If the Deck or sideboard windows ever had cards in them, the system will return the respective cards to the card pool window, allowing the player to use them for building a new deck.

Branches To: None

Refined By: None

4 End None This use case ends when the system clears the Deck and sideboard windows and then returns the cards so that the player can build a new deck

Branches To: Displays player's cards in the card collection

Refined By: None

1.1.1.1 Change CardPool and Sideboard View

Step Name Actor Description

1 Begin None This use case begins when the player tries to switch between Text and Graphic in the Cardpool or Sideboard views

Branches To: None

Refined By: None

2 Change View Player The player selects an option to switch between Text and Graphic.

Branches To: None

Refined By: None

3 Selects Table View Player The user selects this option to view the collection pool in a table view format.

Branches To: None

Refined By: None

4 System display table layout

None The System displays a table showing each card on a separate line, with different information in each column. The user can manage the table in the following ways:

1 - Click a column heading to sort the cards in ascending or descending order by the information in the column.

2 - Modify the column width.

3 - Drag a card from the table to move a copy of it from one window to another.

4 - Right click a card to move a copy of it from one window to another. (The user can select several cards at once.)

5 - View an image of the card by selecting the card. (The image appears in the card display window.)

Branches To: None

Refined By: None

5 Select Graphic View Player The user can select this option to view the collection pool in a graphic view format.

Branches To: None

Refined By: None

6 System Display Graphic Layout

None The system displays a graphic view of the cards, as they look in a game.

Branches To: None

Refined By: None

7 End None This use case ends when the user selects one of the views.

Branches To: Displays player's cards in the card collection

Refined By: None

1.1.1.2 Sort/Pile the way cards are viewed

Step Name Actor Description

1 Begin None This use case begins when the player tries to sort cards in the Deck or Sideboard windows while using the Deck Editor.

Branches To: None

Refined By: None

2 Sort cards in the Deck or Sideboard

Player To sort the cards in the Deck or Sideboard window, the player selects a sorting option.

Branches To: None

Refined By: None

3 End None This use case ends when the player sorted or piled cards in the Deck or Sideboard window.

Branches To: Displays player's cards in the card collection

Refined By: None

Page 36: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

36

Dressed Use Case, …and there's more

1.1.1 Non-Functional Requirements

Category Non-Functional Requirements Priority

Card Pool User Interface The user should be able to switch between tabular view and card display view during the card deck construction phase.

P2

None The System records all player activity related to card deck construction for troubleshooting and audit purposes.

P2

1.1.2 External Links

External Links

Deck Editor:

None

Page 37: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

37

Iteration 1 Plan Requirements Management Documents

o Business Model – will show the interaction between the business use cases and actors o Business Use Case– All Business Use Cases identified for elaboration will be completed and

incorporated in the documentation Deliverables Web Site. Documentation of the Use Cases will be done in the project use case development tool, Catalyze and then distributed to the site via a set of reports.

o Business Supplementary Specification – All non-functional project requirements will be managed in this document.

o Requirements Trace Matrix – A report showing the relationships between the Stakeholder requests and the Business Use Cases. This report will give project members the ability to verify the how stakeholder requests are validated in the business model.

Architectural Documents o Conceptual Design o Logical Design o Physical Design

Data Model – The data model will be available and reviewable Project Plans – The following project plans will be complete by the end of the iteration

o Requirements Management Plan o Risk and Issue Management Plan o Change and Configuration Management Plan o Project Plan (First version)

Project Management Artifacts – The Project managers will use numerous artifacts including: o Status Reports – The sum of the project status reports as generated on a weekly basis o Project Dashboard – A concise description of the project performance generated on a

weekly basis o Risks – A list of Risks, their severity and mitigation plan o Issues – A list of Issues and their mitigation plan o Change Requests – A list of all changes requested of the project and their current status o Glossary – The project glossary

Page 38: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

38

High Ceremony Traceability Stack

Lifecycle Objective Milestone (LOM)

Lifecycle Architecture Milestone (LAM)

Vision / Scope Document

Stakeholders Requests

(SHR)

Features

User Use Cases

User Use Case Model

Story Board

Suplementary Information Core Artifacts

System Use Cases

System Use Case Model

Package Model (System

Interaction Model)

Class Diagram ER Diagram

Deployment Model

System Test Scenarios

Integration Test Scenarios

Outputs

Steering Committee(as Change Requests)

Existing Process or

System

Supplemental Specification

Business Rules

Page 39: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

39

Case Study: BCC Portal

• Low Ceremony• Reference Implementation of Shared

Source System• Multi-Phase Project• Use Cases all the way to a sub-function

level

Page 40: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

40

BCC Use CasesBCC Use Cases 1st Phase 2nd Phase 3rd Phase - - Create Student - - - - Update Student - - - - Create Faculty - - - - Update Faculty - - - - - - Update Student Name - - - - Update Faculty Name - - Create Quarter - - - - Update Quarter - - - - Create Section - - - - Update Section - - Create Student Account Create Student Account - - Update Student Account - - - - Register Student (Add) Assign Student to Section - - Register Student (Drop) Remove Student from Section - - Register Faculty (Assign) Assign Faculty to Section - - Register Faculty (Drop) Remove Faculty from Section - - - - Assign Meeting Time to Section - - - - Update Meeting Time for Section - - - - Remove Meeting Time from Section - - - - Set Grade For Student In Section - -

- - - - Update Grade for Student in Section

- - - - - - - - - - - - - - Assign Meeting Time to Section - - - - Update Meeting Time for Section - - - - Remove Meeting Time from Section - - - - Set Grade For Student In Section - - - - Punish Student - - - - Un-punish Student

Page 41: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

41

Initial Use Case,Create Student Account

Create Student Account (Interaction w/ SAM) 1. Required:

StudentID PIN

Requires one of the following: SSN Email address

2. Required: Challenge Question Answer to Challenge Question

3. Does StudentID already exist in AD? a. YES: Go To Update Student b. NO: Continue to #3

4. Check AD for AccountName a. If first try exists, prompt for another b. If it doesn’t exist, continue to #4

5. Create AD account a. SID b. FName - SMS c. LName - SMS d. Display Name - SMS e. Email address - SMS f. AccountName – SAM g. PWD – SAM h. Logon script – student.cmd config value w/ Group Policy.

Note: If SMS name contains *** Then FName = AccountNAme LName = Null DisplayName = AccountName

6. Add AccountName to “AllStudent” Group DB Update AccountName (Repository)

Page 42: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

42

HSC Reference Use Case(s) Final,

IndigoPerson Creation – Students and Faculty (Provisioning Data) Create Student Purpose: Creates a student. Inputs: Student ID, Given Name, Family Name, Middle Initial, Display Name, Username to Create, Initial Password Actions Used: Create Student Effects: Creates an AD account for the individual described, in the student Organizational Unit and records the student’s information in the HSC-Repository.StudentIdentity table. Error handling: If a student with this Student ID already exists, the use case fails with an error. Create Faculty Purpose: creates a faculty member. Inputs: Employee ID, Given Name, Family Name, Middle Initial, Display Name, Username to Create, Initial Password Actions Used: Create Faculty Effects: Creates an AD account for the individual described, in the faculty Organizational Unit and records the faculty member’s information in the HSC Repository.staff table. Error handling: If a faculty member with this Employee ID already exists, the use case fails with an error.

Page 43: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

43

SystemView

[HSC-Repository]

Page 1

BCC Production Deployment Model

HPAdapter

SQL Adapter

MYBcc

BCC_SRV1 ACADEMIC

Self Portal Registration

ESF Hub

MsgProvider

IndexQueue

sps_GetESFProviderUserSet

BI_spInsertUpdateImsStudent

Web.config

Http://localhost:81/ADWssOrchestration/agentReceive.asmx

BCCSAMProvider

MsgProvider

BCCMsgProvider

sps_GetFacultyAccountName

sps_GetUserSectionGroups

sps_GetESFSAMUserSet

sps_GetStudentAccountName

MyClasses

sps_GetUserSectionGroups

GetCurrentQuarter

GetStudentBlockCode

GetUsersActiveQuarters

GetUsersClassesByQuarter

Page 44: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

44

Sequence DiagramStrategyAdapter Configuration XML File CustomADStrategy WSSStrategyActiveDirectory SharePoint Server

. IMS XML from BizTalk

get strategy class list

ordered list of classes

execute(XML)

BizTalk (ESF)

result (true = successful completion)

ADAdapter

exists(studentID)

no such student

create(name, STUDENT)

exists(name)

existsloop

create(name)

final name

final name

execute(XML)

update XML with final name

WSSAdapter

addToGroup(finalName, STUDENT_GROUP)

added

newPage(getXMLValue("final name"), STUDENT)

createPage(finalName, STUDENT_PAGE)

created

created

result (true = successful completion)

getADGroup(STUDENT)

student group

getWSSPageType(STUDENT)

student page type

Page 45: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

45

Case Studies Summary

• Do what is correct for the context• Do only what’s needed• Build success around great people!

Page 46: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

46

Break

• Panel Discussion is next!

Page 47: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

47

Panel Discussion

• The Panel members:– Michael Heath – Lori Tiede– Kris Hicks-Green – Dotti Lane

• Panelists will field questions from the audience

Page 48: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

48

References• I. Jacobson, Object-Oriented Software

Engineering: A Use Case Driven Approach, Addison-Wesley, 1992

• Cockburn, Alistair; Writing Effective Use Cases, Addison-Wesley, 2001

• Kulak, Daryl & Guiney, Eamonn; Use Cases: Requirements In Context, Addison-Wesley, 2000

• Cohn, Mike, User Stories Applied, Addison-Wesley, 2004

• SteelTrace, “Transitioning to a Use Case Approach,” www.steeltrace.com, 2004

• Cockburn, Alistair, “Use Cases, Ten Years Later,” STQE magazine, Mar/Apr 2002 http://alistair.cockburn.us/crystal/articles/uctyl/usecasestenyearslater.htm

• Ambler, Scott, http://www.agilemodeling.com

Page 49: 1 The Role of Use Cases in Delivering Quality Software Brent Barton SolutionsIQ March 23, 2006

49

Concluding Comments

•Thank you! • I wish you all great success• Form a community

• Brent Barton– [email protected]

• Julia Francis– [email protected]