1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình UML use Case Analystic

79 773 8
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 79
Dung lượng 576,29 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo trình UML use Case Analystic

Trang 1

Phân Tích và Thiết Kế Hướng Đối Tượng

Sử dụng UML

Use-Case Analysis

Duon

g Anh Duc

Digitally signed by Duong Anh Duc DN:

cn=Duong Anh Duc, o=HCMUN

S, ou=SE Departmen

t, c=VN Date:

2001.09.18 07:12:05 Z

Signatu

re Not Verified

Trang 2

Muïc tieâu: Use-Case Analysis

Use-Case Analysis vị trí của nó trong chu kỳ

sống của QT PTPM

flow of events

use-case về các class của nó, thông qua việc

xác định nhiệm vụ của các class

hóa collaboration giữa các thể hiện của các class đã xác định

Trang 3

Use-Case Analysis trong ngữ cảnh

Architect

Designer

Architectural Analysis

Architecture Reviewer

Review the Design

Review the Architecture

Use-Case Analysis

Architectural Design Concurrency Describe Distribution Describe

Class Design

Subsystem Design Use-Case

Design Reviewer Design

Trang 4

Toång quan veà Use-Case Analysis

Use-Case

Software Architecture

Document

Trang 5

Các bước thực hiện phân tích Use-Case

– Tìm các Class từ Use-Case Behavior – Phân bổ Use-Case Behavior về các Class

– Mơ tả nhiệm vụ của chúng – Mơ tả các Attribute và các Association – Lượng giá (qualify) các Analysis Mechanism

Trang 6

Các bước thực hiện phân tích Use-Case

Trang 7

Boå sung Use-Case Description

• Hệ thống truy vấn

và hiển thị một danh sách các lớp học đang mở từ CSDL course catalog kế thừa từ HT cũ.

• Hệ thống hiển thị một danh sách các lớp học (course offerings).

Trang 8

Các bước thực hiện phân tích Use-Case

– Tìm các Class từ Use-Case Behavior

Trang 9

Review: Class

Professor name empID create( ) save( ) delete( ) change( )

Class Name Attributes Operations

– Properties (attributes) – Behavior (operations) – Relationships

– Ngữ nghĩa (Semantics)

Trang 10

Review: Use-Case Realization

Trang 11

Tìm kiếm các Class từ Use-Case Behavior

được phân bổ về cho các analysis class

Trang 12

Thế nào là một Analysis Class?

<<control>>

<<boundary>>

<<entity>>

System boundary

Use-case behavior coordination

System information

Trang 13

Các Analysis Class: Bước đầu tiến đến cài đặt

Use Cases Analysis

Classes

Source Code

Exec Design

Elements

Trang 14

Thế nào là Boundary Class?

<<boundary>>

Analysis class stereotype

ngồi hệ thống

– Các User interface class – Các System interface class – Các Device interface class

case

Trang 15

Vai trò của một Boundary Class

Mơ hình hĩa sự tương tác giữa system và mơi trường của nĩ

Trang 16

Ví dụ: Tìm kiếm các Boundary Class

Course Catalog System Register for Courses

Trang 17

Guidelines: Boundary Class

– Tập trung vào những thông tin gì được thể hiện cho người dùng

– Tập trung vào những protocols nào phải đ/n

được cài đặt

Tập trung vào các nhiệm vụ, chứ không phải chi tiết!

Trang 18

Thế nào là một Entity Class?

Glossary

Business-Domain Model

<<entity>>

Analysis class stereotype

Use Case

Trang 19

Vai trò của một Entity Class

Trang 20

Ví dụ: Tìm kiếm các Entity Class

z Dùng use-case flow of events như input

z Các trừu tượng hĩa then chốt của use case

z Hướng tiếp cận truyền thống (nouns filtering)

– Gạch dưới các cụm danh từ trong flow of events – Loại bỏ các ứng viên dư thừa

– Loại bỏ các ứng viên mơ hồ, khơng rõ ràng – Loại bỏ các actor (ngồi phạm vi)

– Loại bỏ các kiến trúc cài đặt – Loại bỏ các attribute (để lại dùng sau) – Loại bỏ các operation

Trang 21

Ví dụ: Chọn ứng viên cho các Entity Class

Student

CourseOffering

Schedule

Trang 22

Review: Generalization

Account balance

name number

Withdraw() CreateStatement()

Checking Withdraw()

Savings

GetInterest() Withdraw()

Superclass (parent)

Subclasses

Generalization Relationship

z Một class chia sẻ cấu

Trang 23

Tìm Generalization: Generalization của các Class

Savings Checking Stock

Trang 24

Tìm Generalization: Specialization của các Class

Trang 25

Ví dụ: Generalization (Chia sẻ ngữ nghĩa)

Student name address

FulltimeStudent

studentID

gradDate

ParttimeStudent maxNumCourses

Part-timeStudent

name address numberCourses

Full-timeStudent

name address studentID gradDate

Trang 26

Thế nào là một Control Class?

<<control>>

Analysis class stereotype

Use Case

Phụ thuộc use-case, độc lập mơi trường

Trang 27

Vai trò của một Control Class

Điều phối các hành vi của use-case

Trang 28

Ví dụ: Tìm các Control Class

Course Catalog System Register for Courses

Student

<<control>>

RegistrationController

Trang 29

Ví dụ: Tổng kết về các Analysis Class

Course Catalog System Register for Courses

Trang 30

Các bước thực hiện phân tích Use-Case

– Phân bổ Use-Case Behavior cho các Class

Trang 31

Distribute Use-Case Behavior to Classes

– Xác định các analysis class – Gắn kết các trách nhiệm của use-case cho các analysis class

– Mô hình hóa tương tác của các analysis class trong interaction diagram

Collaboration Diagrams Sequence Diagrams

Trang 32

Guidelines: Allocating Responsibilities to Classes

Trang 33

Guidelines: Allocating Responsibilities to Classes (cont.)

z Ai có dữ liệu cần cho việc thực hiện

Trang 34

The Anatomy of Sequence Diagrams

Supplier Object Client Object

1: PerformResponsibility

Message

Reflexive Message Object Lifeline

1.1: PerformAnother Responsibility

Hierarchical Message

Đây là một

script mẫu.

Trang 35

Ví duï: Sequence Diagram

: Student

: RegisterForCoursesForm

: RegistrationController

: Schedule : Student : Course Catalog

: CourseCatalogSystem

A list of the available

course offerings for this

semester are displayed

Student wishes to

create a new

schedule

1 // create schedule( )

1.2 // display course offerings( )

1.1 // get course offerings( )

1.1.1 // get course offerings(forSemester)

1.3 // display blank schedule( )

2 // select 4 primary and 2 alternate offerings( )

2.1 // create schedule with offerings( )

2.1.1 // create with offerings( )

Trang 36

Ví duï: Sequence Diagram (cont.)

: CourseOffering

: Student :

[ has pre-requisites, course offering open, and no schedule conflicts ]

[ is selected ]

Trang 37

The Anatomy of Collaboration Diagrams

Trang 38

Ví duï: Collaboration Diagram

: Student

: RegisterForCoursesForm

: RegistrationController

: Schedule : Student

2 // select 4 primary and 2 alternate offerings( )

1.1 // get course offerings( ) 2.1 // create schedule with offerings( )

2.1.1 // create with offerings( )

1.1.1 // get course offerings(forSemester)

2.1.2 // add schedule(Schedule)

1.1.1.1 // get course offerings( )

Trang 39

Ví duï: Collaboration Diagram (cont.)

: CourseOffering

: Student

: RegistrationController

: Schedule

: Student

: PrimaryScheduleOfferingInfob

1.1.2.2 // has pre-requisites(CourseOffering)

Trang 40

One Interaction Diagram Not Good Enough

Basic Flow

Alternate Flow 1 Alternate Flow 2 Alternate Flow 3

AF1 AF2 AF3

Alternate Flow 4 Alternate Flow 5 Alternate Flow n

Trang 41

Collaboration Diagrams Vs Sequence Diagrams

z Sequence Diagrams

– Chỉ ra rõ ràng chuỗi các thông điệp

– Trực quan hóa tốt hơn toàn bộ luồng sự kiện – Tốt hơn cho các đặc tả real-time và cho các

scenario phức tạp

Trang 42

Exercise: Use-Case Analysis, Part 1

Trang 43

Exercise: Use-Case Analysis, Part 1 (cont.)

(còn tiếp)

Trang 44

Exercise: Use-Case Analysis, Part 1 (cont.)

– Use-case realization interaction diagram cho tối thiểu một trong các use-case flows of events

Trang 45

Use-Case Analysis Steps

– Mô tả các nhiệm vụ của chúng

Trang 47

// select 4 primary and 2 alternate offerings()

// display blank schedule()

<<boundary>>

PrimaryScheduleOfferingInfo grade

// is enrolled in?() // mark as enrolled in()

<<entity>>

CourseCatalogSystem // get course offerings()

<<boundary>>

RegistrationController

// get course offerings() // submit schedule() // create schedule with offerings()

<<control>>

Student

// add schedule() // has pre-requisites()

<<entity>>

ScheduleOfferingInfo status

// mark as selected() // mark as cancelled() // is selected?()

<<entity>>

CourseOffering number : String = "100"

startTime : Time endTime : Time days : Enum

// add student() // still open?()

Trang 48

Maintaining Consistency: What to Look For

Trang 49

Use-Case Analysis Steps

– Mô tả các Attribute và Association

Trang 50

Describe Attributes and Associations

Aggregation và Association

Trang 51

Review: What is an Attribute?

ClassName <<stereotype>>

Attribute : Type = InitValue Attribute : Type = InitValue Attribute : Type = InitValue

Trong analysis, không nên tốn nhiều thời gian cho

việc xác định các attribute signature

CourseOffering <<entity>>

number :String=“100”

startTime : Time endTime: Time days: enum

attribute

Trang 52

Finding Attributes

– Các thông tin mà giá trị của chúng là quan trọng

– Các thông tin ddc sở hữu bởi 1 object duy nhất – Các thông tin không có hành vi

Trang 53

Review: What is an Association?

các thể hiện (instances) của các class

Simple association

is a pre-requisite of

<<entity>> Course

Trang 54

Review: What are Roles?

Trang 55

Ví duï: Multiple Associations

<<entity>> add student to

remove student from

Trang 56

1 * 0 1 2 4

2, 4 6

Trang 57

Ví duï: Multiplicity

Bản số

0 4 0 2

primaryCourses alternateCourses

Trang 60

Review: What is Aggregation?

mô hình hóa một mối quan hệ toàn thể-bộ

phận giữa toàn thể và các phần của nó

Whole/aggregate part

0 4 0 2

primaryCourses alternateCourses

Trang 62

Association Class

status

// mark as selected() // mark as cancelled() // is selected?()

<<entity>>

CourseOffering

<<entity>> Schedule

<<entity>>

0 *

0 4 primaryCourses

alternateCourses

<<entity>>

Trang 63

Finding Relationships

1: PerformResponsibility :Client

Trang 64

Ví duï: VOPC: Finding Relationships

RegisterForCoursesForm // create schedule ()

// display course offerings () // display blank schedule // select 4 primary and 2 alternate offerings()

<<boundary>>

1 1

0 1

Trang 65

Ví duï: VOPC: Finding Relationships (contd)

ScheduleOfferingInfo status

// mark as selected() // mark as cancelled() // is selected?()

<<entity>>

PrimaryScheduleOfferingInfob grade

// is enrolled in?() // mark as enrolled in()

<<entity>>

CourseOffering number : String = "100" startTime : Time

endTime : Time days : Enum

// add student() // cancel() // still open?() // save()

Trang 66

Use-Case Analysis Steps

– Lượng giá các Analysis Mechanism

Trang 67

Describing Analysis Mechanisms

Trang 68

Ví duï: Describing Analysis Mechanisms

mechanism

Analysis Class Analysis Mechanism(s)

Student Schedule CourseOffering Course

RegistrationController

Persistency, Security

Persistency, Legacy Interface Persistency, Legacy Interface Distribution

Persistency, Security

Trang 69

Ví duï: Describing Analysis Mechanisms (cont.)

– Granularity: 1 đến 10 Kbytes / sản phẩm – Volume: tối đa 2,000 schedule

Trang 70

Use-Case Analysis Steps

z Hợp nhất các Analysis Class

Trang 71

Unify Analysis Classes

<<control>>

<<boundary>>

<<entity>>

<<entity>>

Trang 72

Evaluate Your Results

Supplementary Specification

Glossary Design Model

Use-Case Model

Trang 73

Use-Case Analysis Steps

z Checkpoints

Trang 74

Checkpoints: Analysis Classes

kết với nhau về mặt chức năng không?

class chưa?

Trang 75

Checkpoints: Use-Case Realizations

được điều khiển chưa, bao gồm cả các t/h ngoài lệ?

hành vi về các đối tượng chưa?

tượng không?

quan hê gwiax chúng có rõ ràng và phù hợp không?

Trang 76

Review: Use-Case Analysis

mô tả về 3 analysis stereotype.

các trách nhiệm cho các analysis class.

xây dựng trong giai đoạn Use-Case

Analysis?

Trang 77

Exercise: Use-Case Analysis, Part 2

– Các Requirements artifact, đặc biệt là đặc tả bổ sung

– Các cơ chế phân tích có thể – Các flow of events interaction diagram cho một use case cụ thể

Trang 78

Exercise: Use-Case Analysis, Part 2 (cont.)

Trang 79

Exercise: Use-Case Analysis, Part 2 (cont.)

– VOPC class diagram, chứa các analysis class, stereotype của chúng, nhiệm vụ, các attribute,

và relationship.

– Ánh xạ Analysis class với các cơ chế phân tích

Ngày đăng: 22/08/2012, 10:36

TỪ KHÓA LIÊN QUAN