5. bieu do trinh tu va tuong tac sua 1

25
26/10/2012 1 Gv: Vũ Thị Dương Email: [email protected] KHOA CÔNG NGHỆ THÔNG TIN Trường Đại học công nghiệp Hà Nội PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Mô hình hóa hành vi. Mô hình hóa sự tương tác Bài 5

Upload: phong9x

Post on 25-Oct-2015

15 views

Category:

Documents


3 download

TRANSCRIPT

26/10/2012

1

Gv: Vũ Thị Dương

Email: [email protected]

KHOA CÔNG NGHỆ THÔNG TIN

Trường Đại học công nghiệp Hà Nội

PHÂN TÍCH THIẾT KẾ

HƯỚNG ĐỐI TƯỢNG

Mô hình hóa hành vi. Mô hình hóa sự tương tác

Bài 5

26/10/2012

2

Phân tích thiết kế hướng đối tượng Bài 5 - 3/38

Mục tiêu

Sau khi học xong bài học, sinh viên nắm được

1. Tại sao cần phải mô hình hóa hành vi

2. Có mấy cách mô hình hóa hành vi

3. Biểu đồ tương tác có mấy loại. Ưu nhược điểm từng loại

4. Cách xây dựng biểu đồ tương tác

Phân tích thiết kế hướng đối tượng Bài 5 - 4/38

Mô hình hóa hành vi

Hành vi (behavior) là cách hành động, cách cư xử của

một hệ thống

Mô hình hóa hành vi là sự diễn tả khía cạnh động của hệ

thống.

Có 3 cách tiếp cận hành vi hệ thống

Hành vi thể hiện trong sự tương tác giữa các đối tượng, tạo nên

kịch bản

Hành vi biểu lộ cách ứng xử của mỗi đối tượng trước các sự kiện

xảy ra với nó

Hành vi bộc lộ ở công việc và luồng công việc

UML có những biểu đồ khác nhau đáp ứng 3 cách tiếp

cận đó với hành vi của hệ thống

26/10/2012

3

Phân tích thiết kế hướng đối tượng Bài 5 - 5/38

Mô hình hóa tương tác đối tượng

Mục đích:

Diễn tả sự tương tác giữa các đối tượng nhằm tạo ra các kịch

bản của mỗi ca sử dụng của hệ thống

Thực hiện thực sự các kịch bản của mỗi ca sử dụng

Hai loại biểu đồ được sử dụng để mô hình hóa đối tượng

Biểu đồ trình tự (Sequence diagram)

Tập trung vào mô tả điều khiển

Biểu đồ cộng tác (Colaboration diagram)

Tập trung vào mô tả dữ liệu

Biểu đồ trình tự và biểu đồ cộng tác đều chỉ ra cùng loại thông

tin. Gọi tên chung cho hai loại biểu đồ này là biểu đồ tương tác

(Interaction diagram)

Biểu đồ tương tác giúp xác định hệ thống làm việc như thế nào?

Phân tích thiết kế hướng đối tượng Bài 5 - 6/38

Nội dung chính

Khái niệm đối tượng

Khái niệm thông điệp

Cách xây dựng biểu đồ tương tác

Tìm kiếm đối tượng

Tìm kiếm tác nhân

Biểu đồ trình tự

Biểu đồ cộng tác

26/10/2012

4

Phân tích thiết kế hướng đối tượng Bài 4 - 7/23

Đối tượng?

Ta nhìn thấy đối tượng xung quanh ta

Bàn, ghế, quyển sách...

Đối tượng là cái gì đó gói thông tin và hành vi

Nó là khái niệm biểu diễn cái cụ thể trong thế giới thực (có căn cước (định danh/địa chỉ) và ranh giới rõ ràng

Thí dụ Máy bay VN358 là đối tượng

Có các thông tin:

Ngày bay 10 April, giờ bay 8h30, số hiệu máy bay VN358, bay từ Hà Nội

Có các hành vi

Nó biết đón khách vào máy bay, biết đưa khách ra khỏi máy bay, xác định khi nào máy bay đầy khách

Thông tin được lưu trữ bởi thuộc tính (Attribute)

Hành vi của đối tượng được gọi là thao tác (Operation)

Phân tích thiết kế hướng đối tượng Bài 6 - 8/23

Thuộc tính

Thuộc tính là 1 tính chất có đặt tên của 1 lớp và nó nhận 1

giá trị cho đối tượng thuộc lớp đó tại mỗi thời điểm

Tên thuộc tính là danh từ hay cụm danh từ, chữ cái đầu

viết thường

Cú pháp đầy đủ là

[Tần nhìn]/[/]tên[:kiểu][cơ số][=giá trị đầu[{xâu tính chất}]

Tầm nhìn: cho biết thuộc tính đó được thấy và dùng ở các lớp khác

Public- ký hiệu +; Private- ký hiệu – ; Protected- ký hiệu #

Cơ số: trỏ số các giá trị có thể nhận

Kiểu: kiểu giá trị các thuộc tính

Giá trị đầu: giá trị ngầm định

Xâu tính chất: trỏ các giá trị có thể gán cho các thuộc tính

26/10/2012

5

Phân tích thiết kế hướng đối tượng Bài 6 - 9/23

Thao tác

Thao tác là 1 dịch vụ mà đối tượng có thể đáp ứng khi được yêu cầu (thông qua 1 thông điệp)

Cú pháp đầy đủ: [tầm nhìn] tên[(danh sách tham số)][: kiểu trả lại][{xâu tính chất}]

Ý nghĩa các thành phần tham gia giống với đối tượng

Tầm nhìn: cho biết thuộc tính đó được thấy và dùng ở các

lớp khác

Public- ký hiệu +; Private- ký hiệu – ; Protected- ký hiệu #

Danh sách tham số: các dữ liệu cần đưa vào từ ngoài.

Kiểu trả lại: kiểu giá trị các thuộc tính

Xâu tính chất: trỏ các giá trị có thể gán cho các thuộc tính

Thông điệp

Thông điệp (message): là một đặc tả sự giao lưu giữa hai đối tượng gồm quá trình truyền đạt thông tin hay yêu cầu thực hiện một hoạt động nào đó

Hành động tạo bởi một thông điệp có thể là các loại sau:

Gọi (call): yêu cầu thực hiện một thao tác của đối tượng nhận

Trả lại (return): trả lại một giá trị cho bên gọi

Gửi (send): gửi một tín hiệu tới một đối tượng

Tạo tập (create): tạo lập một đối tượng mới

Hủy bỏ (destroy): hủy một đối tượng

Phân tích thiết kế hướng đối tượng Bài 5- 10/34

26/10/2012

6

Các loại thông điệp (tt) Thông điệp đồng bộ (biểu diễn bằng mũi tên đầu tam giác

đặc)

Đó là một chuyển giao điều khiển lồng, tức là một lời gọi thao tác: bên gọi chuyển tới bên bị gọi, rồi tạm ngưng để chờ bên bị gọi trả lại điều khiển

Bên bị gọi thực hiện tao tác yêu cầu, nếu cần có thể chuyển điều khiển cho bên khác và có thể kèm theo kết quả trả lời

Thông điệp trả về có thể biểu diễn tường minh bởi mũi tên nét đứt hay có thể bỏ quả (ví nó là thời điểm kết thúc thao tác )

Phân tích thiết kế hướng đối tượng Bài 5- 11/34

Các loại thông điệp (tt)

Thông điệp không đồng bộ (biểu diễn bằng mũi tên thường )(UML 1.3 trở về trước dùng mũi tên nửa)

Là chuyển giao điều khiển phẳng. Thông điệp gửi đi vào hàng đợi bên nhận

Bên gửi không cần biết thông điệp đã nhận chưa mà tiếp tục làm việc ngay

Bên nhận thực hiện một thao tác và cũng có thể trả về một thông tin cho bên gửi. Nhưng nếu có sự trả lại thì phải biểu diễn tường minh

Phân tích thiết kế hướng đối tượng Bài 5- 12/34

26/10/2012

7

Phân tích thiết kế hướng đối tượng Bài - 13/34

Các thông điệp (tt)

Các tác giả UML khuyên rằng Nên ít dùng thông điệp không đồng bộ, đặc biệt trong biểu đồ

trình tự hệ thống

Thông điệp nối giữa tác nhân và hệ thống thường dùng là thông

điệp không đồng bộ vì

Hệ thống hiện thời là một khối nguyên

Các tương tác là những điều khiển theo bước, chưa đi vào bên

trong hệ thống để có các lời gọi theo kiểu thủ tục

Thông điệp đồng bộ nên được dùng trong các trường hợp còn

lại vì

Nó diễn tả các lời gọi thao tác thông thường

Được hỗ trợ trong phần lớn các ngôn ngữ lập trình thông thường

Các thông điệp còn lại ít được dùng hơn vì đó là các diễn tả cho

các trường hợp hiếm gặp.

Phân tích thiết kế hướng đối tượng Bài 5 - 14/38

Xây dựng biểu đồ tương tác

Để xây dựng biểu đồ tương tác ta bắt đầu từ luồng sự kiện

Xây dựng từng biểu đồ cho

luồng chính, luồng thay thế, luồng lỗi

Nếu hai luồng thay thế và luồng lỗi tương tự nhau thì gộp chúng lại

Các bước xây dựng biểu đồ tương tác

Tìm kiếm đối tượng

Tìm kiếm tác nhân

Bổ sung thông điệp vào biểu đồ

26/10/2012

8

dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 5 - 15/34

Tìm kiếm đối tượng Khảo sát các danh từ trong đặc tả UC

Tìm đối tượng trong tài liệu kịch bản

Kịch bản (Scenario) là một hiện thực của luồng sự kiện

Mỗi luồng sự kiện có nhiều kịch bản

Mỗi UC có thể có nhiều biểu đồ tương tác

Tìm đối tượng không được mô tả trong luồng sự kiện

Các đối tượng cho phép tác nhân nhập và quan sát thông tin

Các đối tượng tham gia điều khiển trình tự luồng xuyên qua UC

Tìm đối tượng tương ứng với khái niệm trừu tượng khi phân tích

Thí dụ Tên sách, Tên tạp chí là trừu tượng không tương ứng với đối tượng nào trong thế giới thực

Phân tích thiết kế hướng đối tượng Bài 5 - 16/34

Biểu diễn đối tượng

Tênđốitượng Tênđốitượng : Lớp : Lớp <<Stereotype>>>

Tênđốitượng

Ten doi tuongTen doi tuong:Name1:Name1 :Name2:Name2

Message1

Message2

Message3

26/10/2012

9

Phân tích thiết kế hướng đối tượng Bài - 17/34

Tìm kiếm tác nhân

Sau khi xác định đối tượng, ta tìm kiếm tác nhân cho

biểu đồ tương tác

Tác nhân trong biểu đồ tương tác là sự kích hoạt từ

ngoài để khởi động luồng công việc của luồng sự kiện

Tìm kiếm tác nhân trong luống sự kiện

Ai hay cái gì khởi xướng tiến trình?

Có thể có nhiều tác nhân cho một biểu đồ tương tác

Nếu tác nhân nhận hay gửi thông điệp cho hệ thống

theo kịch bản nào đó thì chúng phải có mặt trong biểu

đồ tương tác của kịch bản đó

Phân tích thiết kế hướng đối tượng Bài 5 - 18/38

Nội dung chính

Cách xây dựng biểu đồ tương tác

Biểu đồ trình tự

Biểu đồ cộng tác

26/10/2012

10

Phân tích thiết kế hướng đối tượng Bài - 19/34

Xây dựng biểu đồ trình tự (cho các đối tượng tham gia ca sử dụng)

Xem lại biểu đồ lớp tham gia của các ca sử dụng (ở bước trước) để

Tìm xem các cá thể nào thực sự tham gia vào kịch bản đang xét

Xem các đối tượng đóng vai trò gì trong bước đó

Dàn các đối tượng thành hàng ngang trên đỉnh biểu đồ. Bố trí đối

tượng quan trọng ở giữa, phụ trợ phải, đối tác (nếu có) đặt bên trái

Vẽ đường đời cho các đối tượng

Xuất phát từ thông điệp khởi đầu, bố trí các thông điệp tiếp lần lượt

từ trên xuống

Nếu cần làm rõ thời kỳ hoạt động của đối tượng thì đưa thêm tiêu

trình điều khiển (hình chữ nhật)

Nếu làm rõ ràng buộc thời gian thì thêm các ký hiệu và nếu cần đưa

thêm tiền điều kiện, hậu điều kiện nếu cần

Phân tích thiết kế hướng đối tượng Bài - 20/34

Mô hình tổng quát biểu đồ tt

Nguoi su dung:

Tac nhan 1

Nguoi su dung:

Tac nhan 1

Doi tuong Mau

nhap lieu

Doi tuong Mau

nhap lieu

Doi tuong dieu

khien

Doi tuong dieu

khienDoi tuong du

lieu

Doi tuong du

lieu

1: Mo mau nhap lieu

2: Nhap thong tin

3: Luu thong tin

7: Luu tru

4: Luu tru

5: Tao lap

6: Thu thap thong tin

26/10/2012

11

Thông điệp tạo và hủy bỏ

Phân tích thiết kế hướng đối tượng Bài 5- 21/34

Doi tuong 1Doi tuong 1

Doi tuong 2Doi tuong 2new()

Thong diep()

Dap ung

delete()

Mô tả thông điệp trong biểu đồ tt

Cú pháp thông điệp: tênthôngđiệp(ds tham số)

Tênthông điệp: biểu thức trình tự (có thể là các số hay chữ)+ tên thông điệp.

Điều kiện chọn đặt trong [], nghĩa là thông điệp được gửi đi khi điều kiện này thỏa mãn

Ký hiệu ở dạng lặp : *, nghĩa là thông điệp được lặp lại nhiều lần

Phân tích thiết kế hướng đối tượng Bài 5- 22/34

26/10/2012

12

Thông điệp lặp

Phân tích thiết kế hướng đối tượng Bài 5- 23/34

Doi tuong ADoi tuong A Doi tuong BDoi tuong B

1: *[X] Message

* Ky hieu lap

[] Ky hieu dieu kien

Phân tích thiết kế hướng đối tượng Bài 4 – 24/13

Thí dụ: Chọn môn giảng

Dựa vào kịch bản đặc tả Chọn môn học để giảng

I. Mô tả tóm tắt:

1. Tên ca sử dụng: chọn môn để giảng

2. Mục đích: Giúp thầy giáo xác định môn mà mình sẽ giảng trong học kỳ

3. Tóm lược: Thầy giáo chọn học kỳ rồi sau đó có thể thêm, xem, in các môn và kết thúc

II. Mô tả kịch bản

1. Kịch bản chính

Ca sử dụng bắt đầu khi thầy giáo đăng nhập hệ thống hợp lệ và nhắc thầy giáo chọn học kỳ này hay học kỳ sau, thầy chọn học kỳ , hệ thống nhắc thầy chọn việc: Thêm, bỏ,xem,in ra

2. Kịch bản con

Thêm một lớp giảng (còn nữa)

26/10/2012

13

Phân tích thiết kế hướng đối tượng Bài 4 – 25/13

Thí dụ: Chọn môn giảng

Kịch bản con thêm một lớp giảng

Hệ thống hiển thị màn hình các môn học trong học kỳ, gồm tên, mã số môn học.

Thầy giáo nhập tên môn học, mã số môn học.

Hệ thống hiển thị các lớp giảng với môn đã chọn.

Thầy giáo chọn 1 lớp giảng.

Hệ thống kết nỗi thầy với lớp giảng đã chọn. Ca sử dụng bắt đầu lại

……

Dựa vào kịch bản đặc tả ta phát hiện các lớp:

Lớp Thực thể: Lớp giảng, môn học, thầy giáo

Lớp Biên: W_thầy; W_Lớp

Lớp điều khiển: QLLớpthầy

Chọn môn giảng

26/10/2012

14

Phân tích thiết kế hướng đối tượng Bài - 27/34

: Thay giao : W_Thay : W_LopGiang : QLLopThay toan : MonHoc : LopHoc

1: dangNhap(mk)

2: KiemTraMK

3: yc/ChonHK

4: chonHK

6: chonThem

7: hienThi()

8: chonMon(toan)

9: layLopGiang()10: layLopGiang() 11: layLop( )

12: ketQua

13: ketQua

14: ketQua

15: hienThi()

16: chonLopGiang()17: nhanLopGiang()

18: themThay() 19: themThay()

5: yc Chon viec

Phân tích thiết kế hướng đối tượng Bài 5- 28/34

26/10/2012

15

Biểu đồ trình tự “đăng nhập”

Phân tích thiết kế hướng đối tượng Bài 5- 29/34

Đăng ký môn học

Phân tích thiết kế hướng đối tượng Bài 5- 30/34

Sinh vien

(from Use Case View)...)

W_DangNhap

- tenDN

- matKhau

- hocKy

- namHoc

+ kiemTraDN()

+ themMon()

+ boMon()

+ layTKB()

(from Bien)

W_dangKyMonHoc

- mon

- lopHoc

- buoiHoc

+ themMon()

+ boMon()

+ hienThi()

+ InLichHoc()

(from Bien)

ThayGiao

# hocham/hocvi : String

# maGV : string

# tenGV : string

# gioiTinh : Int

# noiSinh : String

# ngaySinh : String

# danToc : String

# diaChi : string

# soDT[0..10] : string

# email : String

+ layThay()

+ themThay()

(from QLThay)

MonHoc

# tenMon : String

# maMon : String

# moTa : String

# soTinChi : Integer

# loaiMon : String

# hocKy : string

+ layMon()

+ layLop()

+ laySoTC()

+ luuMon()

(from LichBieu)

QLDangKyMon

+ layMon()

+ themMon()

+ boMon()

+ xemMon()

+ layLop()

+ boLop()

(from DieuKhien)

SinhVien

# tenSV : String# maSV : String# gioiTinh : int

# noiSinh : string# danToc : String# diaChi : String

# ngaySinh : Date# soDT : string# email : String

+ layMK()+ themSv()+ xoaSv()

+ capNhatTTsv()

(from QLSinhVien)

LopHoc

# maLop : String

# tenLop : String

# ngayBatDau : Date

# ngayKetThuc : date

# ngayHocTrongTuan : Byte

+ ganThay()

+ themsv()

+ layLop()

+ themLop()

+ xoaLop()

+ capNhatTTLop()

+ ganLop(monHoc, tietHoc,ngayTT)()

+ boSinhVien()

(from LichBieu)

0..4

1..n

0..4

1..n

0..n

1

0..n

1

10..300..8

10..300..8

BuoiHoc

# tietDau# tietCuoi# ghiChu# stt : Int

+ luuMota()+ layBuoiHoc()

(from ThucThe)

1

1..n

1

1..n

26/10/2012

16

Phân tích thiết kế hướng đối tượng Bài 5- 31/34

Lập bản giới thiệu môn học

Tóm tắt

Sau khi các thầy giáo đã đăng ký các môn mà mình có thể dạy trong kỳ

CBQS đăng nhập thành công vào hệ thống

Hệ thống yêu cầu chọn việc

CBQS chọn lập danh sách môn học

CBQS chọn học kỳ, năm học

Hệ thống hiển thị danh sách các môn học trong học kỳ + thông tin tên thầy dạy.

CBQS chọn môn học

hệ thống lấy các lớp và thông tin thầy ứng với các lớp

CBQS nhập thông tin bổ sung: buổi học để sinh viên có căn cứ lựa chọn

Kết quả: Danh sách các môn học đươc tạo ra

Phân tích thiết kế hướng đối tượng Bài 5- 32/34

26/10/2012

17

Lập bảng danh sách môn học

Phân tích thiết kế hướng đối tượng Bài 5- 33/34

Trình tự lập ds môn học

Phân tích thiết kế hướng đối tượng Bài 5- 34/34

26/10/2012

18

Phân tích thiết kế hướng đối tượng Bài 5 - 35/38

Nội dung chính

Cách xây dựng biểu đồ tương tác

Biểu đồ trình tự

Biểu đồ cộng tác

Phân tích thiết kế hướng đối tượng Bài 36/34

Biểu đồ cộng tác

Tương tự biểu đồ trình tự, biểu đồ cộng tác (Collaboration diagram) chỉ ra luồng thực hiện trong kịch bản của UC

Biểu đồ cộng tác tập trung vào

quan hệ giữa các đối tượng

cấu trúc tổ chức của các đối tượng

luồng dữ liệu trong kịch bản

Tương đối khó quan sát trình tự các thông điệp trong biểu đồ cộng tác

Do vậy, các dự án thường hay xây dựng cả hai loại biểu đồ này

Trong Rose: Có thể tự động chuyển đổi qua lại giữa biểu đồ trình tự và biểu đồ cộng tác (nhấn phím F5)

26/10/2012

19

Phân tích thiết kế hướng đối tượng Bài - 37/34

Biểu đồ cộng tác

Cả biểu đồ trình tự và biểu đồ cộng tác đều mô tả luồng điều khiển

trong kịch bản

Khác biệt giữa biểu đồ trình tự và biểu đồ cộng tác

biểu đồ cộng tác mô tả luồng dữ liệu

biểu đồ trình tự không mô tả luồng dữ liệu

Luồng dữ liệu được sử dụng để mô tả thông tin trả lại khi một đối

tượng gửi thông điệp đến đối tượng kia

Không nên bổ sung mọi luồng dữ liệu bào biểu đồ vì nó sẽ làm rối

Sử dụng nó khi thấy cần thiết

Thông điệp được biểu diễn bằng mũi tên nhỏ vẽ dọc theo một kết nối

giữa hai đối tượng

Doi tuong

1

Doi tuong

2

1: Thong diep

Du lieu A

Du lieu B

Phân tích thiết kế hướng đối tượng Bài - 38/34

Biểu đồ cộng tác

Tiêu đề của thông điệp có cú pháp

[Bước trước] [Biểu thức trình tự] [Trả lời:=]tên thông điệp (ds

tham số)

Bước trước: danh sách số thứ tự, cách nhau bằng dấu phẩy và kết thúc

bằng gạch chéo(/). Thông điệp chỉ được chuyển giao khi thông điệp tương

tứng với các số thứ tựu cho trong ds đã chuyển giao rồi. -> yc đồng bộ

Biểu thức trình tự: là dãy số theo sau là dấu hai chấm (:) diễn tả trình tự

tiếp nỗi các thông điệp

Ví dụ: Thông điệp 2.1.3 tiếp sau thông điệp 2.1.2 và cả 2 đều được gửi đi

bởi cùng thao tác thực hiện thông điệp 2.1.

Các số lại có thể thay bằng các dãy ký tự nhằm mục đích

Diễn tả lộ trình điều khiển, như là A3, B4/C3.1.2

Diễn tả điều kiện chọn như là 4.2.[x<0]

Diễn tả thông điệp lặp như là 1.1.*; hay 2.1.*[i:=1..n}

26/10/2012

20

Phân tích thiết kế hướng đối tượng Bài - 39/34

Biểu đồ cộng tác

Trả lời là tên của kết quả trả về bên gửi. Tên này có thể là một thuộc tính

của đối tượng gửi hoặc cũng có thể lấy là một biến cục bộ trong thao tác

gửi thông điệp. Tên này cũng có thể dùng làm tham số cho thông điệp

khác

Tên Thông điệp (ds tham số): là tên của thông điệp kèm theo danh sách

tham số. Tên thông điệp là thành phần bắt buộc, thường lấy trùng với

thao tác cần được huy động ở bên nhận.

Phân tích thiết kế hướng đối tượng Bài - 40/34

Biểu đồ cộng tác

26/10/2012

21

Phân tích thiết kế hướng đối tượng Bài - 41/34

Xây dựng biểu đồ cộng tác

Xem lai các lớp tham gia ca sử dụng để xác định cá thể

của lớp nào tham gia thực sự vào kịch bản đang xét

Vẽ các đối tượng như là đỉnh của đồ thị. Bố trí đối tượng

quan trọng vào giữa, đối tượng khác ở xung quanh

Xác định các kết nỗi giữa các đối tượng cùng các thông

điệp có thể có trên đó

Vẽ liên kết trước, vẽ các kết nỗi và ghi chú khuôn dập nếu cần (global,

local..)

Xuất phát với thông điệp khởi đầu tương tác, bố trí các

thông điệp tiếp theo trên các kết nối, thêm các số tự tự.

Dùng ký pháp dấu chấm để làm rõ sự lồng nhau

Phân tích thiết kế hướng đối tượng Bài - 42/34

Xây dựng biểu đồ cộng tác

Nếu thấy cần các ràng buộc về không gian và thời gian,

hãy thêm vào thông điệp các dấu hiệu về thời gian và đính

kèm các ràng buộc về không gian.

Nếu thấy cần diễn tả luồng điều khiênr này một cách hình

thức hơn hãy đưa thêm tiền điều kiện và hậu điều kiện

cho mỗi thông điệp

26/10/2012

22

Phân tích thiết kế hướng đối tượng Bài - 43/34

Chú ý

Vậy dùng biểu đồ nào để mô hình hóa sự tương tác

Trả lời: tùy ý, nghĩa là tùy lúc, tùy nơi và tùy thích; chỉ nên dùng 1 biểu đồ cho 1 tương tác

Biểu đồ này chỉ diễn tả 1 luồng điều khiển. Do đó ta lập 1 biểu đồ t.tác cho 1 ca sử dụng.

1 biểu đồ là chính,

Biểu đồ còn lại diễn tả các lối rẽ khả dĩ hay các trường hợp mắc lỗi khác

Phân tích thiết kế hướng đối tượng Bài 5- 44/34

26/10/2012

23

Đối chiếu và chỉnh sửa các MH

Dựa vào các biểu đồ cấu trúc (lớp lĩnh vực, lớp tham gia ca sử dụng) và các biểu đồ tương tác đã lập (BD trình tự, cộng tác). Ta cần đối chiếu và sửa lại các biểu đồ để chỉnh lại các chỗ không phù hợp

Thêm bớt các lớp

Một số lớp đã phát hiện khi lập các biểu đồ tương tác, cần bổ sung vào biểu đồ cấu trúc (lớp lĩnh vực, lớp tham gia UC)

Một số lớp trong biểu đồ cấu trúc không hề có đối tượng tham gia vào một biểu đồ tương tác nào. Cần loại bỏ chúng đi

Phân tích thiết kế hướng đối tượng Bài 5- 45/34

Đối chiếu và chỉnh sửa các MH

Thêm và chỉnh lý các thao tác trong các lớp

Khi có một thông điệp được gửi từ một đối tượng của lớp A sang một đối tượng của lớp B thì

Trong lớp B, phải có một thao tác công cộng tuonwg ứng với thông điệp đó. Tên thông điệp và thao tác cần phải phù hợp ngữ nghĩa với nhau. Thông thường thì nên elaays tên trung với tên thao tác

Trong lớp A, bên gửi phải có một thao tác có trách nhiêm gửiđi thoông điệp trên

Phân tích thiết kế hướng đối tượng Bài 5- 46/34

26/10/2012

24

Đối chiếu và chỉnh sửa các MH

Thêm các kiểu cho các thuộc tính, các tham số trả lời

Các kiều có thể là kiểu nguyên thủy hay kiểu do người dùng đưa vào hay cũng có thể là kiểu do người dùng định nghiwax

Chưa nên chọn tên các kiểu của một ngôn ngữ lập trình cụ thể nào mà vẫn dùng tên chung,

Thêm và chỉnh lý mối liên quan giữa các lớp

Khi đối tượng lớp A, gửi một thông điệp cho một đối tượng của lớp B, thì giữa hai lớp đó có một kiết nối với nghĩa là: Bên nhận thuộc phạm vi hay hiểu biết (tầm nhìn) của bên gửi

Nếu sự hiểu biết đó là vốn có từ lầu, thì đấy là biểu hiện của liên kết association giữa A và B

Nếu sự hiểu biết đó là mới được cung cấp (ví dụ: Thông qua việc truyền tham số hay việc nhận kết quả trả lời), thì đấy là biểu hiện của sự phụ thuộc của A vào B

Phân tích thiết kế hướng đối tượng Bài 5- 47/34

Đối chiếu và chỉnh sửa các MH

Ví dụ: Liên kết hay phụ thuộc

Phân tích thiết kế hướng đối tượng Bài 5- 48/34

26/10/2012

25

Phân tích thiết kế hướng đối tượng Bài - 49/34

Ví dụ Trong hệ thống ATM xem giải quyết phin không hợp

lệ. Ở đây ta cần nghĩ về tuần tự các hoạt động mà khách có thể thực hiện:

Đưa thẻ vào

Nhập mã pin

Rút thẻ

Vậy hoạt động hệ thống là chấp nhận quyền truy cập hay từ chối

Tiếp theo, cac định ta đang tương tác với cài gì (ATM hay hệ thông tin ngân hàng

Máy ATM sẽ sử dụng đối tượng nào kiểm tra mã PIN.

Phân tích thiết kế hướng đối tượng Bài 5- 50/34

: KhachHang : W_KhachHang : W_ManHinhATM : W_RutTien : QLRut : TaiKhoan : GiaoDich : GDRut : MayATM

1: danNhap(sothe,mk)

2: kiemtramaPin

3: hienThi()

4: Y/c chon viec

5: chon Rut tien6: hien thi()

7: Y/c chon viec

8: Nhap vao 1 so

9: rutTien( )

10: ktrSoDuTK()

11: ketQua

12: ktrMenhGiaVaTien()

13: ketQua

14: taoMoiGD()15: taoMoiGD()

16: taoMoiGD()

17: ketQua

18: ketQua()

19: demTien()

20: ketQua

21: giamSoduTK()22: thucHien()

23: ketqua

24: ketqua

25: hienThi()

26: ycNhanTien va The