Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
429,1 KB
Nội dung
UseCaseAnalysis Unified Modeling Language Phân tích mơ hình UseCase Giảng viên: Mai Thúy Nga Nội dung môn học Giới thiệu PTTK hướng đối tượng với UML Khái niệm Hướng đối tượng UML Đặc tả u cầu với mơ hình UseCase II Tổng quan Phân tích Thiết kế Phân tích UseCase II OOAD using UML Phân tích UseCase I Ơn tập Mơ hình hóa Thiết kế UseCaseAnalysis Đặc tả Yêu cầu với mơ hình UseCase I 6/7 - 6/7 - UseCaseAnalysis Nội dung trình bày Tổng quan phân tích UseCase Sơ đồ lớp phân tích (Analysis Class Diagram) Các sơ đồ tương tác (Interaction Diagram) 6/7 - UseCaseAnalysis Mô hình phân tích Use-Case Thuật ngữ Hướng dẫn dự án Đặc tả UseCase bổ sung Kiến trúc phần mềm Phân tích Use-Case Mơ hình Use-Case UseCaseAnalysis OOAD using UML Thực Use-Case Mơ hình phân tích Lớp phân tích 6/7 - 6/7 - UseCaseAnalysis Phân tích hướng đối tượng (OOA) Phân tích hướng đối tượng (OOA) Tìm kiếm Actor Mơ hình lớp phân tích Mơ hình UseCase Sơ đồ hành động Các sơ đồ tương tác Trách nhiệm, hàm, thuộc tính Xây dựng mẫu Đánh giá & lặp lại 6/7 - UseCaseAnalysis Mơ hình phân tích q trình phát triển Mức khái niệm Mức giải pháp Mức Kỹ thuật Mơ hình Use-Case UseCaseAnalysis OOAD using UML Mơ hình phân tích Mơ hình thiết kế Mã nguồn Bản dịch 6/7 - 6/7 - UseCaseAnalysis Mơ hình phân tích q trình trung gian Mơ hình phân tích mơ hình mức khái niệm hệ thống làm việc ðược phát triển tiến triển nhanh tới giai ñoạn Dễ bị thay ñổi ñể ñảm bảo mức ñộ hoàn thiện phát triển HT Các lớp phân tích thường “mất đi” giai đoạn thiết kế hồn thành Một lớp phân tích thể gói lớp thiết kế, thường ñóng hệ thống (chức con) Có thể coi lớp phân tích lớp “non” ñể thể hành vi ñó (cơ chế phân tích) Khơng nên dành q nhiều thời gian để tạo mơ hình cách q chi tiết, bị thay đổi giai đoạn thiết kế UseCaseAnalysis 6/7 - Nội dung trình bày Tổng quan phân tích UseCase Sơ đồ lớp phân tích (Analysis Class Diagram) Các sơ đồ tương tác (Interaction Diagram) UseCaseAnalysis OOAD using UML 6/7 - 6/7 - UseCaseAnalysis Tìm lớp phân tích Use-Case Tìm lớp phân tích UseCase Mỗi lớp phải có nhiệm vụ trách nhiệm cụ thể Lớp phân tích kết q trình trừu tượng hóa • Thực tế hệ thống • Hoặc tập hợp nhiều lớp bước thiết theo Chức tổng thể Use-Case phải phản ánh đầy đủ lớp phân tích 6/7 - 10 UseCaseAnalysis Khái niệm lớp phân tích (Analysis Class) System information System boundary Use-case behavior coordination System boundary System information 13 UseCaseAnalysis OOAD using UML 6/7 - 11 6/7 - UseCaseAnalysis Lớp biên (Boundary class) Là lớp trung gian thể tương tác hệ thống bên ngồi hệ thống Các lớp biên: Lớp giao diện người dùng hệ thống Lớp hệ thống hệ thống bên ngồi • Ví dụ giao dịch với “hệ thống ngân hàng” Lớp hệ thống thiết bị ngoại vi • Ví dụ “Thiết bị giải mã vạch” Với cặp Actor/Use-Case có lớp biên 6/7 - 12 UseCaseAnalysis Vai trò lớp biên Actor Actor Mơ hình hố tương tác hệ thống môi trường bao quanh UseCaseAnalysis OOAD using UML 6/7 - 13 6/7 - UseCaseAnalysis UC Dangkyhoc: Tìm lớp biên Ít lớp biên cho cặp actor/use case Sinh viên Đăng kí học HT Monhoc API Form Dangky UseCaseAnalysis HT QL Monhoc Chú ý: Trong ví dụ khơng tìm cách xây dựng HT QL Mơn học, mà sử dụng lại HT bên ngồi, tác nhân 6/7 - 14 Một số ý với lớp biên Các lớp giao diện người dùng (GUI) Tập trung vào cấu trúc thông tin cần thiết cho người dùng Không tập trung vào chi tiết giao diện người dùng Các lớp giao diện hệ thống thiết bị ngoại vi (API) Tập trung vào cấu trúc liệu trao ñổi chúng Tập trung vào giao thức tương tác chúng với hệ thống mức cao Khơng quan tâm đến việc giao thức ñược thực thi liệu ñược truyền ñi UseCaseAnalysis OOAD using UML 6/7 - 15 6/7 - UseCaseAnalysis Lớp thực thể (Entity class) Là lớp mô tả thực thể xuất hệ thống Thực thể thơng tin tồn lưu trữ lâu dài hệ thống Chỉ mô tả mức trừu tượng, khơng mơ tả q chi tiết thuộc tính thực thể 6/7 - 16 UseCaseAnalysis Vai trò lớp thực thể Actor Actor Lưu trữ quản lý thông tin hệ thống UseCaseAnalysis OOAD using UML 6/7 - 17 6/7 - UseCaseAnalysis Tìm lớp thực thể Sử dụng luồng kiện Use-Case ñầu vào Sử dụng “khái niệm” trừu tượng hố (Key abstractions) Lọc danh từ Tìm mệnh đề danh từ luồng kiện Loại bỏ số thành phần khơng cần thiết • Thừa, lặp, không rõ ràng Loại bỏ từ mô tả cụ thể thuộc tính thơng tin đó, lưu lại để sau sử dụng cho: • Thuộc tính • Thao tác 6/7 - 18 UseCaseAnalysis UC Dangkyhoc: Tìm lớp thực thể Chức đăng ký học (Tạo thời khóa biểu) Xem TKB Lophoc Dang ky Mon hoc Monhoc Sinhvien Dang nhap TKB UseCaseAnalysis OOAD using UML Sinhvien 6/7 - 19 6/7 - UseCaseAnalysis Lớp ñiều khiển (Control class) ðược sử dụng ñể thực nhiều hành động hệ thống Là lớp thực chức UseCase Với UseCase thích hợp, có nhiều lớp ñiều khiển Analysis class stereotype UseCase 6/7 - 20 UseCaseAnalysis Vai trò lớp điều khiển Actor Actor Thể hành động, chức UseCaseUseCaseAnalysis OOAD using UML 6/7 - 21 6/7 - 10 UseCaseAnalysis Nội dung trình bày Tổng quan phân tích UseCase Sơ đồ lớp phân tích (Analysis Class Diagram) Các sơ đồ tương tác (Interaction Diagram) UseCaseAnalysis 6/7 - 26 Phân bổ hành vi UseCase vào lớp Trong luồng kiện UseCase Tìm lớp phân tích Phân bố chức (hành vi) UseCase vào lớp tìm Thể tương tác lớp hành vi chúng mơ hình tương tác Sơ đồ trình tự UseCaseUseCaseAnalysis OOAD using UML Sơ đồ cộng tác Các sơ đồ để thực Use-Case 6/7 - 27 6/7 - 13 UseCaseAnalysis Trách nhiệm lớp phân tích Lớp biên Chịu trách nhiệm thể tương tác hệ thống tác nhân bên Chịu trách nhiệm kiểm tra liệu qua lại trình tương tác Lớp thực thể Chịu trách nhiệm quản lý thơng tin ðóng gói thơng tin, thay đổi trạng thái Lớp điều khiển Chịu trách nhiệm cho UseCase Tránh để lớp điều khiển làm q việc 6/7 - 28 UseCaseAnalysis Sơ ñồ trình tự (Sequence diagram) Đối tượng Client Đối tượng Supplier :Client :Supplier Vòng đời đối tượng 1: //kích hoạt hàm A Thơng điệp gọi 1.1: kích hoạt hàm B Thông điệp (Message) Đoạn điều khiển UseCaseAnalysis OOAD using UML Đánh số thông điệp theo mức độ 6/7 - 29 6/7 - 14 UseCaseAnalysis UC Dangkyhoc: Sơ đồ trình tự : S inhvien : F orm D a ng k y hoc : B D K D a ng k y ho c : S inh vien : T KB : L op ho c : M on ho c : H T M on ho c A P I : //d a n g ky ( ) : HT QL M on ho c : //d a n g k y h o c ( ) : //la y lo p h o c m o tr o n g ky ( ) : //la y lop ho c m o tro ng k y ( ) : //du ng M o nh oc tuo ng un g : //d u n g lo p h o c : //la y K Q HT ( ) 8: // ki em tra tien trin h h oc tap( ) 9: // hi en t hi( ) 0: //c ho n lop ( ) 1 : //d a n g k y lo p () : //l ay t h on g ti n lo p ( ) 13 : //k iem tra h op ly ( ) : //d a n g k y lo p ( ) : //ta o T K B ( ) : //d a n g ky T K B ( ) UseCaseAnalysis 6/7 - 30 Sơ ñồ cộng tác (Collaboration Diagram) Đối tượng Client Quan hệ Đối tượng Supplier :Client :Supplier PerformResponsibility Thông điệp UseCaseAnalysis OOAD using UML 6/7 - 31 6/7 - 15 UseCaseAnalysis UC Dangkyhoc: Sơ ñồ cộng tác UseCaseAnalysis 6/7 - 32 Sơ ñồ cộng tác sơ ñồ trình tự Sơ đồ trình tự Sơ đồ cộng tác Thể rõ trình tự trình tương tác Thể mối quan hệ rõ ràng trình tương tác Thể tốt q trình cơng tác Thể rõ hiệu trình tương tác ñối tượng Thể tốt luồng cơng việc Thể tốt q trình mơ tả luồng kiện phức tạp phương diện thời gian thực UseCaseAnalysis OOAD using UML 6/7 - 33 6/7 - 16 UseCaseAnalysis Mô tả nhiệm vụ Sơ đồ tương tác :Client :Supplier // PerformResponsibility Sơ đồ lớp Supplier // PerformResponsibility UseCaseAnalysis 6/7 - 34 UC Dangkyhoc: Sơ ñồ lớp chi tiết UseCaseAnalysis OOAD using UML 6/7 - 35 6/7 - 17 UseCaseAnalysis Kiểm tra tính hợp lý lớp phân tích Hai lớp làm nhiệm vụ Một nhiệm vụ ñược tách rời vào nhiều lớp Một lớp có nhiệm vụ khơng có nhiệm vụ Một lớp tương tác với nhiều lớp khác 6/7 - 36 UseCaseAnalysis Tìm kiếm thuộc tính Thể thuộc tính, đặc tính lớp Thơng tin cần thiết để để lớp thực thi trách nhiệm (chức năng, hàm) Chú ý đến “danh từ” mà khơng đủ để trở thành lớp q trình tìm kiếm lớp phân tích Lophoc ClassName Attribute : Type = InitValue Attribute : Type = InitValue Attribute : Type = InitValue UseCaseAnalysis OOAD using UML attribute ID : String = "100" TGbatdau : Time TGketthuc : Time Ngay : Enum SoSV : Int 6/7 - 37 6/7 - 18 UseCaseAnalysis Quan hệ lớp Quan hệ lớp ñối tượng lớp gửi thơng điệp đến ñối tượng lớp Quan hệ có chiều chiều Trong UML thể đường vẽ khơng mũi tên có mũi tên Sinhvien Monhoc TKB 6/7 - 38 UseCaseAnalysis Tìm kiếm quan hệ PerformResponsibility Sơ đồ cộng tác :Client :Supplier Liên kết Client Supplier Sơ đồ lớp Client * * Prime suppliers Supplier PerformResponsibility() Quan hệ Thể mối quan hệ tất liên kết UseCaseAnalysis OOAD using UML 6/7 - 39 6/7 - 19 UseCaseAnalysis Kiểu quan hệ Một số kiểu quan hệ Tập hợp (aggregation/composition) Kết hợp (association) Phụ thuộc (dependencies) Tổng quát hoá (generalization) 6/7 - 40 UseCaseAnalysis Kết hợp ðây hình thức hai lớp, đối tượng quan hệ với theo hình thức kết hợp Chúng tồn mà khơng phụ thuộc lẫn nhau, lớp quan hệ mà lớp lại tồn Car Door UseCaseAnalysis OOAD using UML 2,4 6/7 - 41 6/7 - 20 UseCaseAnalysis Tập hợp/Thành phần Là hình thức mạnh kết hợp ðây quan hệ mang tính thành phần, lớp thành phần bị lớp chứa ñi TKB Sinhvien * 6/7 - 42 UseCaseAnalysis Kết hợp hay Tập hợp Nếu ñối tượng thường ñược xem xét ñộc lập, chúng ñược liên kết với Mối quan hệ kết hợp Car Door 2,4 Nếu ñối tượng có mối quan hệ tồn thể thành phần Mối quan hệ tập hợp/thành phần Car Door UseCaseAnalysis OOAD using UML 2,4 6/7 - 43 6/7 - 21 UseCaseAnalysis Vai trò lớp mối quan hệ Thể rõ vai trò lớp mối quan hệ Lophoc Chunhiem Giaovien Khoa Truongkhoa Vai trò Monhoc MonhocYCtruoc UseCaseAnalysis 6/7 - 44 Bội số quan hệ (Multiplicity) Bội số cho phép số lượng ñối tượng cần thiết ñể quan hệ với số lượng đối tượng khác Khơng cụ thể Một UseCaseAnalysis OOAD using UML Không nhiều * Không nhiều * Một nhiều * Không Khoảng cách cụ thể Khoảng cách cụ thể 2, 6/7 - 45 6/7 - 22 UseCaseAnalysis Bội số quan hệ Bội số quan hệ trả lời câu hỏi Sự kết hợp bắt buộc hay tuỳ chọn Số lượng nhỏ lớn đối tượng kết nối với ñối tượng lớp khác * Lophoc Monhoc * MonhocYCtruoc 6/7 - 46 UseCaseAnalysis UC Dangkyhoc: Quan hệ sơ ñồ lớp BDK Dangkyhoc FormDangkihoc 1 Monhoc KyHienTai Sinhvien Monhoc * Monchinh * Lophoc TKB UseCaseAnalysis OOAD using UML 6/7 - 47 6/7 - 23 UseCaseAnalysis Hợp lớp phân tích HT Monhoc API FormDangki FormDangki BDK Dangky BDK Dangky Sinhvien Sinhvien Dangkyhoc Lophoc Monhoc TKB Lophoc TKB HT Monhoc API FormDongDangky HT Monhoc API Monhoc BDK DongDangky DongDangky BDK DongDangky Sinhvien FormDongDangki Lophoc Monhoc UseCaseAnalysis TKB 6/7 - 48 Ví dụ UC Bán hàng mạng Mơ tả: Giả sử có hệ thống hàng ảo mạng UC Mua hàng cho phép khách hàng (KH) mua mặt hàng mong muốn Ví dụ u cầu KH phải thành tốn trực tuyến Tiền ñiều kiện: KH muốn mua hàng cửa hàng ảo KH tốn điện tử tới ngân hàng mà cửa hàng hỗ trợ Hậu ñiều kiện: Thành công KH chấp nhận mua hàng trình tốn với ngân hàng thực thành cơng Hóa đơn lập, hàng hóa dành riêng cho KH Nếu q trình tốn với ngân hàng khơng thành cơng, hóa đơn khơng lập, hàng khơng bán Thực thể: Mặt hàng, Giỏ hàng, ðơn hàng Usecase liên quan: Tìm kiếm hàng, quản lý ñơn hàng (Giao hàng) UseCaseAnalysis OOAD using UML 6/7 - 49 6/7 - 24 UseCaseAnalysis Luồng kiện cho UseCase KH duyệt, tìm kiếm xem thơng tin mặt hàng muốn mua (xem Use-Case xem hàng) KH lặp lại q trình để mua tiếp mặt hàng khác Giỏ hàng khơng q trình KH tìm/mua mặt hàng khác Nếu giỏ hàng có mặt hàng này, hệ thống báo lại cho KH… Quản lý giỏ hàng 4 KH chọn chức “ðưa hàng vào giỏ hàng” Hệ thống ñưa mặt hàng vào giỏ KH nhập số lượng muốn mua (mặc ñịnh 1) Hệ thống tự ñộng cập nhật giá giỏ hàng Mỗi KH có rỏ hàng riêng rẽ khơng nhìn thấy thơng tin KH chọn chức “Xem giỏ hàng” lúc cần Hệ thống hiển thị giỏ hàng với ñầy ñủ mặt hàng KH ñã chọn, số lượng giá loại KH thay ñổi số lượng, bỏ ñi mặt hàng mà KH khơng muốn mua KH chọn chức thành toán, xem luồng phụ “Thanh toán” UseCaseAnalysis 6/7 - 50 Luồng phụ: Thanh toán KH chọn chức tốn KH u cầu nhập thẻ tốn địa giao hàng (???) Thơng tin tốn đưa tới ngân hàng, hệ thống chờ kết từ ngân hàng Nếu ngân hàng khơng chập nhận giao dịch (Quá trình xử lý giao dịch ngân hàng định) Hệ thống thơng báo kết tới KH, yêu cầu nhập lại thông tin Nếu ngân hàng chấp nhận (Số tiền tương ứng KH ñược chuyển sang tài khoản cửa hàng) Hệ thống lập ðơn hàng lưu lại (xem Use-Case quản lý ñơn hàng) Số lượng hàng tồn kho ñược giảm tương ứng Hệ thống thông báo thành công cho KH trang web gửi thơng tin đơn hàng qua mail KH Giỏ hàng bị xóa (Nếu mua tiếp, giỏ hàng ñược tạo mới) UseCaseAnalysis OOAD using UML 6/7 - 51 6/7 - 25 UseCaseAnalysis Sơ đồ lớp phân tích UseCaseAnalysis 6/7 - 52 Sơ đồ trình tự UseCaseAnalysis OOAD using UML 6/7 - 53 6/7 - 26 UseCaseAnalysis Sơ ñồ cộng tác UseCaseAnalysis 6/7 - 54 Tổng kết Quy trình phân tích UseCase Vai trò mơ hình phân tích Sự phát triển mơ hình phân tích tới mơ hình thiết kế Sơ đồ lớp phân tích (Analysis Class Diagram) Tìm kiếm lớp phân tích Sơ đồ lớp phân tích Các sơ đồ tương tác (Interaction Diagram) Sơ đồ trình tự, cơng tác UseCaseAnalysis OOAD using UML 6/7 - 55 6/7 - 27 ... Mơ hình phân tích Use- Case Thuật ngữ Hướng dẫn dự án Đặc tả Use Case bổ sung Kiến trúc phần mềm Phân tích Use- Case Mơ hình Use- Case Use Case Analysis OOAD using UML Thực Use- Case Mơ hình phân... mới) Use Case Analysis OOAD using UML 6/7 - 51 6/7 - 25 Use Case Analysis Sơ ñồ lớp phân tích Use Case Analysis 6/7 - 52 Sơ đồ trình tự Use Case Analysis OOAD using UML 6/7 - 53 6/7 - 26 Use Case. .. tương tác (Interaction Diagram) Use Case Analysis 6/7 - 26 Phân bổ hành vi Use Case vào lớp Trong luồng kiện Use Case Tìm lớp phân tích Phân bố chức (hành vi) Use Case vào lớp tìm Thể tương tác