object oriented development with uml requirements with use ... · what are the main sources of...

Post on 01-Nov-2019

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Requirements with Use Case

Object Oriented Development with UML

By-

Assoc. Prof. Rangsit Sirirangsi

The software development process

Maintenance67% Integration

8%

Testing7%

Implementation5%

Design6%

Requirements 7%

What are the main sources of bugs?

(source: "Software Testing", Ron Patton)

Bugs เกดขนไดจากหลาย ๆ สาเหต แตสาเหตหลกสามารถตรวจสอบไดจาก

specification

Code7% Other

10%

Design27%

Requirements56%

Distribution of Effort to Fix Bugs

Code1%

Other4% Design

13%Requirements82%

Reasons Projects Fail

Project Challenged Factors % of Responses

1. Lack of User Input 12.8%

2. Incomplete Requirements & Specifications 12.3%

3. Changing Requirements & Specifications 11.8%

4. Lack of Executive Support 7.5%

5. Technology Incompetence 7.0%

6. Lack of Resources 6.4%

7. Unrealistic Expectations 5.9%

8. Unclear Objectives 5.3%

9. Unrealistic Time Frames 4.3%

10. New Technology 3.7%

Other 23.0%

The Chaos Report Standish Group 94

What Is a Requirement ?

IEEE Standard Glossary of Software Engineering Terminology:

เปนเงอนไขหรอความสามารถทตองการของผใชในการแกไขปญหา

เพอใหเปนไปตามวตถประสงคทกาหนดไว

requirements เปนการระบวาอะไรทตองการพฒนา ใชแสดงถง "what" ไมใช "how“

Requirements

ไมมความตองการของระบบใดทเหมอนกน อยางไรกตามมกระบวนการหลาย

อยางทชวยในการคนหาและกาหนดความตองการของระบบ เชน

วตถประสงค ขนาด และความซบซอนของระบบ เปนตน

Functional Requirements

ความตองการทเปนฟงกชนการทางาน (Function Requirements) เปนสงท

ระบบควรตองทาหรอเปนหนาทหลกของระบบ ความตองการแบบนถอเปน

บรการทซอฟตแวรควรมนนเอง

โดยปกตจะถกนาเสนอในรปของขนตอนการทางานทประกอบไปดวยกจกรรม

ตาง ๆ ทเกยวของกบผปฏบตงาน

เทคนคในการนาเสนอ

Use cases,

Requirements List—“Shall” statements,

Non-Functional Requirements

ความตองการทไมไดเปนฟงกชนการทางาน (Non-Function Requirements) จะ

ไมเกยวของโดยตรงกบงานหรอฟงกชนหลก เชน

ความสามารถในการใชงาน (Usability) Human Factors, Help,

Documentation

ประสทธภาพของระบบ ไดแก Response Times, Throughput, Resource

Usage

ความนาเชอถอของระบบ (Reliability) ไดแก Failure Rates,

Recoverability, Availability

ความสะดวกในการเคลอนยายไปยงสภาพแวดลอมใหม (Portability)

การสนบสนนดานตาง ๆ เชน Maintainability, Internationalization

Use Cases Modeling

อาศยแนวคดทวา “อะไรคอสงทระบบตองทาสาหรบผใชแตละคน”

ยสเคสไดอาแกรมเปนเทคนคในการพฒนาแบบหนงทถกรวบรวมไวใน

UML ถกคดคนโดย Ivar Jacobson ในป 1994

ชวยในการคนหาความตองการของระบบตามมมมองของผใช

ใชสาหรบการตรวจสอบตดตามการเปลยนความตองการของระบบตาม

ฟงกชนการทางานและการทางานจรงทเกดขนภายในระบบ

ใชเปนกลไกสาหรบขบเคลอนการดาเนนการของการพฒนาระบบ

เปนเครองมอทใชในการคนหาคลาส

ใชเปนพนฐานในการทดสอบระบบ

ใชเปนพนฐานสาหรบการประเมนราคาของซอฟตแวร

ระบทก ๆ actors ทเปนผใชระบบ

กาหนด Use cases ของระบบ

กาหนดความสมพนธระหวาง actors และความสมพนธระหวาง Use cases

สราง Use case Diagram ในระดบบนสด

เพมเตมรายละเอยดของ Use case Diagram ทแสดงถงขอบเขตของระบบ

กาหนดรายละเอยดของแตละ Use case

Development of New Use case Template

Graphical Notation

สญลกษณของ actor ถกนาเสนอโดย stick man โดยมการระบชอของ actor

ไวดานลางในรปของ role เปนหลก

สญลกษณของ use case ถกนาเสนอโดย ellipse ทมการระบชอของยสเคส

ไวภายใน

Use Case

Actor

What is an Actor ?

ใชสาหรบการนาเสนอสงทตองการตดตอกบระบบ [Jacobson ‘92]

นาเสนอบทบาท (Role) ของสงทอยภายนอกระบบ เชน ผใช ฮารดแวร หรอ

ระบบอน ๆ ทมการตดตอกบระบบทตองการพฒนา (อยภายนอกระบบ)

Actor สอสารกบระบบโดยการตดตอกนผานการสงหรอรบแมสเสจระหวางกน

แตละยสเคสจะไมถกจากดอยกบหนง Actor

Jacobson (1992) ไดจาแนก Actor ออกเปนสองชนด:

Primary Actor: เปนผทไดรบประโยชนโดยตรงจากระบบ (ถกกาหนดไวดาน

ซายมอของยสเคสไดอาแกรมเสมอ)

Secondary Actor: เปนผทใหบรการหรอใหการสนบสนน actor อน (ขวามอ)

Secondary Actor ไมสามารถเกดขนไดโดยปราศจาก Primary Actor

Actor Personalities

Actor

Initiator: ทาหนาทกระตนใหเกดการทางานของยสเคส

External Server: ทาหนาทใหบรการกบระบบผานการทางานภายในยสเคส

Receiver: ทาหนาทในการรบขอมลจากยสเคสเพยงอยางเดยว

Facilitator: ทาหนาทสนบสนนการตดตอกบระบบของ actor อน

คณสมบตของ actor

Actor อาจใชไดกบหลาย ๆ Use Cases

Use Case อาจตดตอไดกบหลาย ๆ Actors

การตดตอกนสามารถนาเสนอผานสญลกษณเสนตรงได

Relationship between Actor

เนองจาก Actor คอคลาส ดงนนจงสามารถมความสมพนธกนไดเชนเดยวกบ

คลาส แตสาหรบใน Use Case ไดอาแกรมความสมพนธทถกระบไวเพยงอยาง

เดยว คอ Generalization เพอใชสาหรบแสดงการโตตอบระหวาง Actor

จานวนหนงเทานน

Generalization จะเกดขนเมอบทบาทของ Actor จะถกกาหนดใหอยในรปของ

Actor Super-class ซงจะมลกษณะเปนการสบทอดจาก Actor นนเอง

Officer

Loan Officer

Use Cases

Jacobson (1992):Use case เปนลาดบของ transaction ทถกดาเนนการโดย

ระบบ ซงใหผลลพธทชดเจนแก actor หนง ๆ

Use Case ถกกาหนดในรปจานวนและลาดบการกระทาทเกดขนในระบบ

คณลกษณะของ Use Case

Use Case จะเกดขนจากการกระทาของ Actor เสมอ ทงทางตรงหรอ

ทางออมเพอใหระบบทางานตาม Use case ทปรากฏ

Use Case ตองใหผลลพธกบ Actor ไมวาจะเปนทางใดทางหนงเสมอ

Use Case ตองมความสมบรณในตว โดยไมตองมการแยกรายละเอยด

ใหลกลงไปในระดบถดไป

use-case name

Use Case Names

การกาหนดชอยสเคสจะใชรปแบบดงตอไปน:

คากรยา + คานามในรปของออปเจค เชน สงซอ (Place order) รองขอบรการ (Request service) เปนตน

ระมดระวงการใชคากรยาทมความหมายคลมเครอ

เชน ทา (do) หรอ กระบวนการ (process)

ใชคากรยาทมความหมายชดเจนไดทนท

เชน เขาสระบบ (Login) คนหา (search) อนมต (approve) แจงใหทราบ (notify) เปนตน

ใชคาประเภท active voice ไมใช passive

ควรเลอกใชชอตามมมมองของผใชไมใชตวมมมองของระบบ

Use Case Names: Example

Excellent - Purchase Concert Ticket

Very Good - Purchase Concert Tickets

Good - Purchase Ticket (แตขาดรายละเอยดทจาเปน)

Fair - Ticket Purchase (ถอเปน passive)

Poor - Ticket Order (ใชมมมองของระบบ ไมใชมมมองผใช)

Unacceptable - Pay for Ticket (เปน procedure ไมใช process)

ตวอยางชอของ use case ทไมเหมาะสม ไดแก CRUD

C - actor Creates data

R - actor Retrieves data

ทงหมดถอเปน procedural และไมไดแสดงใหเหนถงสงทผใชตองการ

U - actor Updates data

D - actor Deletes data

How Actors and Use Cases Interact

สญลกษณเสนตรงทลากระหวาง actor กบ use case ใชเพอแสดงใหเหนวา

actor มการตดตอกบ use case สวนหวลกศรใชในการกาหนดทศทางและ

ความสมพนธระหวาง actor และ use case

ทศทางความสมพนธโดยปกตจะเปนสองทศทาง

กาหนดความสมพนธระหวางแตละ actor และ-use-case

กาหนดรายละเอยดอยางยอสาหรบความสมพนธระหวางกน

actor

use case

Both actor and use case can initiate the communication.

actoruse case

The use case initiatethe communication.

Relationship between Use Case

Use Case หนง ๆ อาจมการใชงานรวมกบ Use Case อน ๆ ซงลกษณะดงกลาวเรยกวาความสมพนธระหวางยสเคส

ความสมพนธระหวางยสเคส ไดแก Extends, Includes/Uses และGeneralization

ความสมพนธระหวางยสเคสชวยลดความซ าซอนของงาน ตลอดจนความขดแยงตาง ๆ ภายในแตละยสเคส

การกาหนดความสมพนธควรทาในมมมองของวธการเชงวตถมากกวาการใชวธการแบบ functional decomposition

Relationship: Generalization

เกดขนเมอ Use case จานวนหนงมพฤตกรรมบางสวนทเหมอนกน พฤตกรรม

ดงกลาวจะถกนามากาหนดใหอยในรปของ Use case หนง ๆ ทสามารถ

นาไปใชไดโดย Use case อน ๆ ทมพฤตกรรมบางสวนทเหมอนกน

เชนในกรณของการ make payment ซงอาจมการสบทอดไปยง use case ทเปน

Pay Cash หรอ Pay by Credit Card นนคอ use case สบทอดทงหมดจะตองถก

ใชรวมกบ Use case หลกในการทางานเสมอ

Make Payment

Pay by Credit Card Pay by Cash

Relationship: Include

use case ทมความสมพนธแบบ include จะตองทางานรวมกบ Use case ทถก

กาหนดไวเสมอ

ใน UML รนแรก ๆ จะเรยกความสมพนธแบบนวา use

ความสมพนธแบบน use case ยอยจะถกประมวลผลโดยเปนสวนหนงของ

use case หลก นนคอการทางานของ use case หลกจะไมสมบรณ หากไมม

การประมวลผล use case ยอย

User

does Something Does portion of something

<<include>>

Use Case Relationship: Include

BorrowBooks

CheckBorrow Limit

Borrower

Check Library Fine

<<include>><<include>>

Find Item by Title

Find Items by Actor

Search MovieDatabase

«include»

«include»Customer

Dependency

Relationship: Extend

ความสมพนธแบบ Extend ใชสาหรบการกาหนดพฤตกรรมการทางานท

เปนทางเลอกออกจากพฤตกรรมทเกดขนเปนปกต

การประมวลผล extend use case จะเกดขนในกรณทเปนไปตามเงอนไขท

กาหนดไว มฉะนนการประมวลผลจะเกดขนท Use case หลกเทานน หาก use case B มความสมพนธแบบ extend มาจาก use case A

ภายในuse case ตองมเงอนไขทางลอจกทกาหนดวา

if TRUE --> perform B

User

does SomethingDoes another thing if condition is true

<<Extend>>

Extend Relationships

«extend»

Stereotype

Request a book search

Clerk

Borrower

BorrowBooks

Print outLoan Receipt

<<extend>>

Finding Actors

คาถามทชวยในการกาหนด Actor

ผใชงานหลกของระบบ (primary actors) คอใคร ?

ผทตองการการสนบสนนการทางานจากระบบคอใคร ?

ผทาหนาทบารงรกษา และบรหารระบบ (secondary actors) คอใคร ?

ฮารดแวรใดทระบบจาเปนตองใช ?

ระบบอนทอยภายนอกตองการตดตอกบระบบ ?

ใครหรอสงใดทสนใจในผลลพธของระบบ ?

Tips

ไมควรพจารณาเฉพาะผทใชงานระบบโดยตรง แต พจารณา users อนๆ

ทตองการใชบรการจากระบบดวย

Finding Use Cases

สาหรบแตละ actor ตอบคาถามตอไปน

ฟงกชนการทางานใดท actor ตองการจากระบบ ?

actor จาเปนตองสราง อาน ลบ แกไข หรอเกบขอมลภายในระบบหรอไม ?

เหตการณใดบางทระบบตองแจงให actor ทราบหรอ actor ตองแจงให

ระบบทราบ ?

ฟงกชนการทางานของระบบ ชวยทาใหงานประจาวนของ actor งายขน

หรอไม ?

Correct

Take Picture

Change Film

Photographer

Open Shutter

FlashPhotographer

Close Shutter

Incorrect

How do you know what to put in the "System" box?

จากไดอาแกรมในลาดบถดไปจะเปนการนาเสนอ use case สาหรบการ

ถายรป

Examples: Ski resort information system

Users should be able to query weather and snow condition forecasts for a

date they enter.

The system should allow to book single or double rooms at the resort hotel

“Skier’s Luck” online (with credit card).

Visitors should be able to book one-day beginners courses on snowboards.

There is only one course a day.

The max. size of a course is 8 persons.

The resort offers special courses for kids. In order to built courses with

kids of same age, the customer has to enter the kid’s age.

Canceling of course or room bookings are only possible up to 10 days

ahead.

Examples: Ski resort information system

Users จะตองสามารถตรวจสอบสภาพอากาศและหมะลวงหนาสาหรบ

วนทเขาพกได

ระบบจะยอมใหจองหองเดยวหรอหองคของรสอรท “Skier’s Luck” แบบ

online โดยใช credit card

ผเขาพกสามารถจองชนเรยน snowboards แบบ 1 วนสาหรบผเรมตนได

ชนเรยนจะเปนแบบ 1 course ตอวน

จานวนผเรยนไมเกน 8 persons ตอชน

รสอรทจะม courses พเศษสาหรบเดก ในการเขา courses เดกจะตองอาย

เทากน ดงนนผเขาพกจะตองระบอายของเดก

การยกเลกการจองหองพกและ course จะตองแจงลวงหนากอน 10 วน

forcast

enter_date<<extend>>

User

book_room

book_courses

beginner snowboard Course

<<extend>>

get_credit_card validate_credit_card

<<extend>>

Single

<<extend>>

Double

<<extend>><<extend>>

check_number_of Days_ahead

get_age_of_child

Check_size_of_courses

<<extend>>cancel_reservation

Children of User

children's courses

<<extend>>

<<extend>>

Example Use Case Diagram

Query weather&snow

forecast

Book room

Book kids’ SB course

Visitor

Cancel course

Book SB course

Cancel room

Enter personal info

<<extend>>

<<include>>

<<include>>

Case Study: Video Rental System

1. รานเชาวดโอแหงหนงเปดใหบรการเชาหนงทงแบบซดและดวด

2. นอกจากนนยงใหเชาเกมส

3. หนงและเกมสใดทไดรบความนยมจะถกจดเกบไวเปนจานวนหลายชด

4. พนกงานสามารถระบไดวารายการสนคาใดทมอยในราน โดยการคนหาจากชอ

เรอง

5. พนกงานจะตองสามารถพมพรายชอของหนงและเกมสทอยในรานได

6. พนกงานจะตองสามารถตรวจสอบลกคาได เฉพาะลกคาทลงทะเบยนแลว

เทานนจงสามารถยมรายการสนคาตาง ๆ ได พนกงานจะตองสามารถระบไดวา

ลกคารายใดทมการยมรายการสนคาและจานวนครงทยมได

7. หลงจากการยมรายการสนคาออกไป ลกคาจะตองคนภายใน 3 วน

How a user of the system will interact with it

1. รานเชาวดโอแหงหนงเปดใหบรการเชาหนงทงแบบซดและดวด

2. นอกจากนนยงใหเชาเกมส

StoreEmployee

rent itemto customer

3. หนงและเกมสใดทไดรบความนยมจะถกจดเกบไวเปนจานวนหลายชด

StoreEmployee

Add an item

Case Study: Video Rental System

4. พนกงานสามารถระบไดวารายการสนคาใดทมอยในราน โดยการ

คนหาจากชอเรอง

5. พนกงานจะตองสามารถพมพรายชอของหนงและเกมสทอยในรานได

StoreEmployee

print list

View itemsby title

Case Study: Video Rental System

6. พนกงานจะตองสามารถตรวจสอบลกคาได เฉพาะลกคาทลงทะเบยนแลว

เทานนจงสามารถยมรายการสนคาตาง ๆ ได พนกงานจะตองสามารถระบ

ไดวาลกคารายใดทมการยมรายการสนคาและจานวนครงทยมได

7. หลงจากการยมรายการสนคาออกไป ลกคาจะตองคนภายใน 3 วน

StoreEmployee Search for

a customer

Register customer

Return itemfrom customer

Use Case Diagram : Video Rental System

StoreEmployee Rent item

to customer

Add an item

Return itemfrom customer

View itemsby title

Print list

Search fora customerRegister

customer

Review Video Rental System

StoreEmployee

Rent itemto customer

Register Customer

Return itemfrom customer

View itemsby title

Print list

Search fora customer

Add an Item<<extend>>

<<include>>

Use Cases and Scenarios

วธการหนงทไดผลดในการอธบายรายละเอยดของยสเคสไดแก การจดทา

เอกสารทเรยกวา ซนารโอ (scenario)

เปนเอกสารเพอใชสาหรบการนาเสนอลาดบของการตดตอกนระหวางแอค-

เตอรและยสเคส จากจดเรมตนจนเสรจสนสมบรณ

ซนารโอนาเสนอการตดตอระหวางยสเคสกบ

แอคเตอรเปน 2 รปแบบไดแก

Basic Flow: การทางานทเกดขนเปนปกต

Alternative Flow: การทางานทเปน

ทางเลอกเมอมความผดพลาดเกดขน

Use Case Scenario Template

Use Case Name :

Actors :DescriptionUse case ReferencedBasic Flow

Alternative Flow

Pre-conditionsPost- conditions

Basic Flow

เปนลาดบขนตอนของเหตการณทเกดขนระหวาง Actor กบระบบ

แตละขนตอนประกอบไปดวยกจกรรมทเกยวของกบ input จาก Actor และการ

ตอบสนองจากระบบ

แตละขนตอนควรอยในรป ประธาน + กรยา + กรรม และอยในรปของ present

tense และ active voice

ในระดบของการออกแบบคลาส

ประธาน -> Sender Object

กรยา -> method

กรรม -> Receiver Object

..

......

Class 1 Class 2

เปนทางเลอกของการทางานในกรณท Basic Flow มความผดพลาดเกดขน เชน

ทางเลอกในการจดการความผดพลาด

ทางเลอกในการสนสดการทางาน

มลกษณะเปนเงอนไข

แสดงเหตผลสาหรบ alternative flow ในรปเงอนไขทผใชสามารถตรวจสอบได

วธการจดการ

แสดงลาดบการจดการกบความผดพลาดทเกดขนตามรปแบบตอไปน

หมายเลข เงอนไข และการทางานทเกดขน เชน

3.1. ในกรณท [actor] กรอกขอมล [action] ไมถกตอง ระบบจะแสดง

ขอความเตอน …

Alternative Flow

ตวอยาง Cash Register

Use Case: การซอสนคา (Buy items)

Actors: Customer, Cashier

Type: Primary

Description: เมอลกคา (Customer) มาทเคานเตอรพรอมกบ

สนคา (items) ทตองการซอ (Purchase)

พนกงานเกบเงน (Cashier) จะบนทกรายการ

สงซอ (purchase items) และทาหนาทเกบเงน (

collects payment) ไปพรอมกน เมอเสรจสน

ขนตอนดงกลาวแลว ลกคา ( Customer) จะ

ออกไปพรอมกบสนคา ( items) ทตองการ

A simple use case diagram

Customer

Buy Items with Cash

Cashier

Use Case Scenario : Header

เมอลกคา (Customer) มาทเคานเตอรพรอมกบสนคา (items) ทตองการซอ (Purchase) พนกงาน(Cashier) บนทกรายการสงซอ (purchase items) และทาหนาทเกบเงน ( collects payment) ไปพรอมกน เมอเสรจสนขนตอนดงกลาวแลวลกคา ( Customer) จะออกไปพรอมกบสนคา ( items)

Use Case: การซอสนคาดวยเงนสด (Buy Items with Cash)

Actors: Customer (Primary Actor), Cashier (Secondary Actor)

Purpose: แสดงลาดบเหตการณในการซอสนคาดวยเงนสด

Description:

Basic Flow:

Use Case Scenario : Basic Flow

Basic Flow : 1. พนกงานปอนรหสสนคาทลกคาเลอกไว

2. ระบบรบคารหสสนคา

3. ระบบคนหารายละเอยดสนคาจากรหส

4. ระบบแสดงราคาตอหนวยของสนคา

5. พนกงานปอนจานวนหนวยของสนคา

6. กรณทมสนคามากกวา 1 รายการ พนกงานทาซ าขนตอนท

1 – 5 จนครบจานวนรายการ

7. พนกงานบนทกรายการสงซอ

8. ระบบรบคาและบนทกขอมล

9. ระบบคานวณและแสดงคาใชจายทงหมดของการสงซอ

10. ระบบพมพใบเสรจใหแกลกคา

หมายเหต : ยสเคสนไมรวมขนตอนการจายเงน

Use Case Scenario : Alternate Flow

Alternative

Flow :1.1 หากพนกงานปอนรหสสนคาผดพลาด สามารถแกไขได

โดยเลอกรายการแกไข

PreCondition

PostCondition สนคาซอแลวไมสามารถคนหรอเปลยนได

การสงซอเรมตนและสนสดสาหรบลกคาแตละราย

5.1 หากพนกงานปอนจานวนสนคาผดพลาด สามารถแกไข

ไดโดยเลอกรายการแกไข

Alternative Use Cases

ในทางทฤษฎอาจมทางเลอกในการทางานแบบ alternatives ไดหลายวธ ดงในการสรางแบบจาลองยสเคส อาจมการนาเสนอ Alternative Use Cases

ใชสาหรบการนาเสนอลาดบของเหตการณทอยในรปของ trigger เชนในกรณทม exceptions เกดขนในยสเคส

Alternative Use Case จะทางานรวมกบ Use Case หลกเสมอ

AlternativeUse Cases

Base Use Case

UC 101

UC 101-A1

UC 101-A2

Use Case Diagram : Recommendation

ขนตอนท 1: กาหนดวาใครคอผใชระบบ

ขนตอนท 2: กาหนดยสเคสอาจใชขอมลจากความตองการของระบบโดยอาศย

มมมองของแอคเตอรเปนหลก

ขนตอนท 3: กาหนดความสมพนธระหวางยสเคส

ขนตอนท 4: สราง Use Case Scenario เพออธบายการทางานแบบ Basic Flow

ขนตอนท 5: อธบายการทางานแบบ Alternative Flow

ขนตอนท 6 : ทบทวนรายละเอยดการทางานของแตละยสเคส หากมขนตอน

การทางานหรอความซบซอนเกดขนมากเกนไปควรพจารณาแยกยสเคส

ดงกลาวออกเปนยสเคสยอย ๆ จานวน use case ทเหมาะสมไมควรเกน 7 +- 1

ขนตอนท 7 : พจารณาทาซ าในขนตอนท 2 - 6 สาหรบแตละแอคเตอร

Use Case Checklist

รายละเอยดโดยยอแสดงใหเหนภาพการทางานของยสเคสหรอไม

แตละยสเคสทกาหนดไวตองมความสมบรณในตว

แตละยสเคสจะตองเกยวของกบอยางนอย 1 actor

แตละยสเคสมความเปนอสระจากยสเคสอน ๆ หรอไม

บางสวนของเหตการณทไดถกกาหนดไวแลวในยสเคสอน(include relationship)

บางสวนของเหตการณทถกกาหนดไวแลว โดยเปนสวนประกอบของยสเคสอน

(extends relationship)

ยสเคสใดทมพฤตกรรมการทางานคลายกนหรอไม (generalize relationship)

ชอของยสเคสตองไมซ ากน และสามารถสอความหมายไดอยางชดเจน

ชอของยสเคสสอความหมายใหเหนพฤตกรรมการทางานไดชดเจน โดยผใชระบบ

สามารถเขาไดโดยไมตองการคาอธบายเพมเตม

Quality Checklist

Correctness : ทก ๆ ยสเคสไดแสดงใหเหนถงความตองการในสวนทเปนฟงกชน

การทางานของระบบอยางถกตองและชดเจนหรอไม

Completeness : ยสเคสตาง ๆ ครอบคลมทก ๆ ฟงกชนการทางานของระบบ

หรอไม

Clarity : ยสเคสถกกาหนดไวอยางชดเจน โดยไมกอใหเกดความสบสน หรอตอง

ตความ ศพททใชในการกาหนด Actor และเหตการณทเกดขนตองชดเจน รวมถง

การกาหนดนยามศพท

Modifiability : โครงสรางและสไตลของยสเคสทสนบสนนการเปลยนแปลงแกไข

ทเกดขนหรอไม

Use Case Quality Checklist

Consistency : ยสเคสตาง ๆ ตองมความสอดคลองกน และตองไมมเหตการณภายในแตละยสเคสทมความขดแยงกน Actor และเหตการณทเกดขนจะตองถก

กาหนดไว และมการใชงานสอดคลองกนในทก ๆ ยสเคส

ยสเคสตองสอดคลองกบสวนประกอบของ OOAD อน เชน คลาส สเตท ไดอา

แกรม เปนตน

Verifiability : มกระบวนการตรวจสอบวาซอฟตแวรเปนไปตามความตองการของระบบทถกระบโดยยสเคสหรอไม ขอกาหนดตาง ๆ สามารถทดสอบไดหรอไม

Traceability : ยสเคสสนบการตรวจสอบตดตามทง backward และ forward หรอไม (ตงแตความตองการทางธรกจไปจนถงไดอาแกรมและขอกาหนดตาง ๆ ในการออกแบบระบบ)

Development of the Use Case Model

Iteration 1Obvious use cases.Simple use case descriptions.

Iteration 2 Additional use cases.Simple use case descriptions.Prototypes.

Iteration 3Structured use cases.Structured use case descriptions.Prototypes.

Assign staff to work on

a campaign

Campaign Manager

Add a new advert to

a campaign

Check campaign budget

Find campaign

Accountant

summary Print campaign

invoice

«include»

«extend» «extend»

Print campaign

«include»

«include»

Campaign Management

Assign staff to work on

a campaign

Campaign Manager

Add a new advert to

a campaign

Check campaign budget

Find campaign

Accountant

summary Print campaign

invoice

«include»

«extend» «extend»

Print campaign

«include»

«include»

Campaign Management

Calculate staff bonuses

Accountant

Add a new staff member

Add a new staff grade

Change the rate for a

staff grade

Change the grade for a

staff member

Staff Management

Calculate staff bonuses

Accountant

Add a new staff member

Add a new staff grade

Change the rate for a

staff grade

Change the grade for a

staff member

Staff Management

Calculate staff bonuses

Accountant

Add a new staff member

Add a new staff grade

Change the rate for a

staff grade

Change the grade for a

staff member

Staff Management

Calculate staff bonuses

Accountant

Add a new staff member

Add a new staff grade

Change the rate for a

staff grade

Change the grade for a

staff member

Staff Management

Calculate staff bonuses

Accountant

Add a new staff member

Add a new staff grade

Change the rate for a

staff grade

Change the grade for a

staff member

Staff Management

Assign staff to work on

a campaign

Campaign Manager

Add a new advert to

a campaign

Check campaign budget

Find campaign

Accountant

summary Print campaign

invoice

«include»

«extend» «extend»

Print campaign

«include»

«include»

Campaign Management

Spring Jewellery Campaign 1997Spring Jewellery Campaign 2001Spring Jewellery Campaign 2002Summer Collection 1998

OK Quit

Campaign:

Campaign Selection

Holborn MotorsLynch PropertiesYellow Partridge Zeta Systems

Client:

Yellow Partridge

Spring Jewellery Campaign 1997Spring Jewellery Campaign 2001Spring Jewellery Campaign 2002Summer Collection 1998

OK Quit

Campaign:

Campaign Selection

Holborn MotorsLynch PropertiesYellow Partridge Zeta Systems

Client:

Yellow Partridge

Spring Jewellery Campaign 2002

OK Quit

Campaign:

Campaign Selection

Holborn MotorsLynch PropertiesYellow Partridge Zeta Systems

Client:

Spring Jewellery Campaign 1997Spring Jewellery Campaign 2001Spring Jewellery Campaign 2002Summer Collection 1998

OK Quit

Campaign:

Campaign Selection

Holborn MotorsLynch PropertiesYellow Partridge Zeta Systems

Client:

Yellow Partridge

Spring Jewellery Campaign 1997Spring Jewellery Campaign 2001Spring Jewellery Campaign 2002Summer Collection 1998

OK Quit

Campaign:

Campaign Selection

Holborn MotorsLynch PropertiesYellow Partridge Zeta Systems

Client:

Yellow Partridge

Spring Jewellery Campaign 2002

OK Quit

Campaign:

Campaign Selection

Holborn MotorsLynch PropertiesYellow Partridge Zeta Systems

Client:

Use Case Tips and Tricks

จานวนยสเคสทเหมาะสม

Cockburn: เทากบจานวน goals ทระบบมอย

Anderson and Fertig: ไมเกน 80 ยสเคสตอระบบงานหนง ๆ

ขนาดยสเคสทเหมาะสม

มการทางานไมเกน 10 ขนตอน (ไมนบขอแรกและขอสดทาย)

ยสเคสทไมเหมาะสม

ยสเคสทไมมผใช (เชน ในกรณของ clock-triggered)

ระบบทมจานวนผใชนอย และมการรนโปรเซสเปนระยะเวลานาน ๆ เชน

ระบบทเนนอลกอลทมส เชน การคานวณทางคณตศาสตรทซบซอน

เปนระบบควบคมทมการทางานแบบตอเนอง เชน ในงานอตสาหกรรม

Basic & Alternate Flow

การเขยน Basic Flow ทถกตองและสมบรณประกอบไปดวย 4 ขนตอน:

1. Primary Actor สง request และขอมลเขาสระบบ

2. ระบบมการทวนสอบ (validate) request และขอมลดงกลาว

3. ระบบมการดาเนนการบางอยางโดยการแปลงคาสถานะภายใน

4. ระบบสงผลลพธกลบไปยง actor

Alternate Flow

ลาดบตวเลขตองตรงกบ Basic Flow ทอาจมการจดการ Exception ทเกดขนตวอยางเชน

3.1. ในกรณท [actor] กรอกขอมล [action] ไมถกตอง ระบบจะแสดง

ขอความเตอน …

Login

Actors: Trainee, Admin

Basic Flow: 1 - ยสเคสเรมตนเมอผใชเลอกฟงกชน Login

2 - ผใชกรอกชอผใช และรหสผานลงในฟอรมลอกอน

3 - ระบบตรวจสอบความถกตองของขอมลจากสครปต

4 - ระบบรบคาลอกอนจากผใช

5 – ระบบคนหาขอมลลอกอนภายในฐานขอมล

6 – ระบบคนคาสถานะขอมลลอกอนจากการคนหา

7 - ระบบตรวจสอบสถานะการคนคาขอมลลอกอน

8 - ระบบยอมใหผใชเขาสหนาจอหลกเพอทางานในขนตอนตอไป

9 – ยสเคสสนสดการทางาน

Alternate Flow: 3.1 - ในกรณทผใชกรอกขอมลไมครบถวนระบบจะแสดงขอความ “กรณากรอก

ขอมลใหครบ”

7.1- ในกรณทการตรวจสอบชอผใชและรหสผานไมถกตองระบบจะแสดงขอความ

“ไมพบขอมลผใช กรณาตรวจสอบอกครง” และกลบสหนาจอลอกอน

Pre Condition: ผใชตองผานการลงทะเบยนกอนเสมอ

Training Registration System

Edit Register Profile

List All Register

iReportPrint Register Profile

Update Payment Status<<include>>

Remove Invalid Register

<<include>>Admin

Fill Register Profile

Login

<<extend>>

Trainee

View General InformationUser

Print All By Criteria

<<include>>

<<extend>>

List Register Detail

List Payment Register

<<extend>>

Training Registration System

View General Information : ผใชทวไปเขาดขอมลตาง ๆ ของระบบ ไดแก

รายละเอยดการอบรม ขนตอนการลงทะเบยน และวธการชาระเงน เปนตน

Fill Register Profile : ผใชทวไปกรอกขอมลรายละเอยดสวนตวทงหมดเพอเขารบ

การอบรมตามหลกสตรทกาหนดไว

Login : ผเขาอบรมหรอผดแลระบบกรอกขอมลชอผใชและรหสผานเพอลอกอน

เขาสระบบ ในสวนของผเขาอบรมเพอแกไขขอมลสวนตว (Edit Register

Profile) พมพใบสมคร(Print Register Profile) สวนผดแลระบบลอกอนเพอลบ

ขอมลลงทะเบยนทไมถกตอง(Remove Invalid Register) อพเดทสถานะการชาระ

เงนของผเขาอบรม (Update Payment Status ) แสดงรายชอผเขาอบรมทงหมด

(List All Register) แสดงรายชอผเขาอบรมเปนรายบคคล (List Trainee's Detail)

ตลอดจนพมพรายชอผเขาอบรมทงหมด

List Register Detail : ผเขาอบรมสามารถเขาดขอมลรายละเอยดสวนตวไดทนท

หลงจากกรอกขอมลลงทะเบยนเรยบรอยแลว หรออาจลอกอนเขาสระบบเพอ

เลอกดขอมลไดในภายหลง

Edit Register Profile : ผเขาอบรมสามารถแกไขรายละเอยดสวนตวไดทนท

หลงจากกรอกขอมลลงทะเบยนเรยบรอยแลว หรออาจลอกอนเขาสระบบเพอ

เลอกแกไขขอมลไดในภายหลง

Print Register Profile : หลงจากกรอกขอมลลงทะเบยนเรยบรอยแลว ผเขาอบรม

สามารถพมพใบลงทะเบยนไดทนท หรออาจลอกอนเขาสระบบเพอเลอกพมพใบ

ลงทะเบยนไดในภายหลง

List All Register : ระบบจะแสดงรายชอและรายละเอยดทจาเปนของผเขาอบรม

ทงหมด ภายหลงจากการลอกอนของผดแลระบบ

Training Registration System

List Trainee's Detail : ผดแลระบบสามารถเลอกดขอมลการลงทะเบยนของ

ผสมครเปนรายบคคลได

Update Payment Status : ผดแลระบบสามารถแกไขสถานะการชาระเงนของผเขา

อบรม เมอเสรจสนขนตอนนถอวาการลงทะเบยนของผเขาอบรมเสรจสมบรณ

Remove Invalid Register : ผดแลระบบสามารถลบขอมลการลงทะเบยนทไม

ถกตองออกจากระบบ

Print All By Criteria : ผดแลระบบสามารถพมพรายชอและรายละเอยดทจาเปน

ของผเขาอบรมทงหมด ตามเงอนไขทกาหนด

Training Registration System

Exercise

จงออกแบบยสเคสไดอาแกรมของการไปชมภาพยนตร โดยการซอตวหนาโรง

ยสเคสไดอาแกรมจะตองประกอบไปดวย :

Actor

Use case

Relationship

การเขยน Scenario กาหนดให

เฉพาะขนตอนทเปน Basic Flow เทานน

top related