Tài liệu Object - Oriented analysis and design with uml 2.0 - Bài 5: Phân tích use case: OBJECT-ORIENTED ANALYSIS AND DESIGN WITH UML 2.0Bài 5. Phõn tớch use caseBộ môn Công nghệ phần mềmKHOA CễNG NGHỆ THễNG TINTRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI**Nội dungTổng quan về phõn tớch use caseTìm các lớp phõn tớchCỏc biểu đồ tương tỏcBiờ̉u đụ̀ lớp phõn tích*1. Tổng quan về phõn tớch UC*Mụ hỡnh phõn tớch trong quỏ trỡnh phỏt triển*Mụ hỡnh phõn tớch là quỏ trỡnh trung gianMụ hỡnh phõn tớch là mụ hỡnh ở mức khỏi niệm về hệ thống sẽ làm gỡĐược phỏt triển và tiến triển nhanh tới giai đoạn tiếp theoDễ bị thay đổi để đảm bảo mức độ hoàn thiện hơn khi phỏt triển HTCỏc lớp phõn tớch thường sẽ “mất đi” khi giai đoạn thiết kế hoàn thànhCú thể coi lớp phõn tớch như là cỏc lớp “non” để thể hiện một hành vi nào đúKhụng nờn dành quỏ nhiều thời gian để tạo ra cỏc mụ hỡnh này một cỏch quỏ chi tiết, nú sẽ bị thay đổi tại giai đoạn thiết kế*Nội dungTổng quan về phõn tớch use caseTìm các lớp phõn tớchCỏc biểu đồ tương tỏcBiờ̉u đụ̀ lớp phõn tích*Tỡm cỏc lớp phõn tớch trong UCTỡm cỏc lớp phõn tớ...
70 trang |
Chia sẻ: Khủng Long | Lượt xem: 1114 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Object - Oriented analysis and design with uml 2.0 - Bài 5: Phân tích use case, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
OBJECT-ORIENTED ANALYSIS AND DESIGN WITH UML 2.0Bài 5. Phân tích use caseBé m«n C«ng nghƯ phÇn mỊmKHOA CƠNG NGHỆ THƠNG TINTRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI**Nội dungTổng quan về phân tích use caseTìm các lớp phân tíchCác biểu đồ tương tácBiểu đờ lớp phân tích*1. Tổng quan về phân tích UC*Mơ hình phân tích trong quá trình phát triển*Mơ hình phân tích là quá trình trung gianMơ hình phân tích là mơ hình ở mức khái niệm về hệ thống sẽ làm gìĐược phát triển và tiến triển nhanh tới giai đoạn tiếp theoDễ bị thay đổi để đảm bảo mức độ hồn thiện hơn khi phát triển HTCác lớp phân tích thường sẽ “mất đi” khi giai đoạn thiết kế hồn thànhCĩ thể coi lớp phân tích như là các lớp “non” để thể hiện một hành vi nào đĩKhơng nên dành quá nhiều thời gian để tạo ra các mơ hình này một cách quá chi tiết, nĩ sẽ bị thay đổi tại giai đoạn thiết kế*Nội dungTổng quan về phân tích use caseTìm các lớp phân tíchCác biểu đồ tương tácBiểu đờ lớp phân tích*Tìm các lớp phân tích trong UCTìm các lớp phân tích trong Use CaseMỗi lớp phải cĩ nhiệm vụ và trách nhiệm cụ thểLớp phân tích chỉ là kết quả của quá trình trừu tượng hĩaThực tế nĩ cĩ thể là một hệ thống conHoặc Kết tập nhiều lớp trong bước thiết kế tiếp theoChức năng tổng thể của Use-Case đĩ phải được phản ánh đầy đủ trong các lớp phân tích*Các loại lớp phân tích*2.1. Lớp biên (Boundary class)Là lớp trung gian thể hiện sự tương tác giữa hệ thống và những gì bên ngồi hệ thốngCác lớp biên:Lớp giao diện giữa người dùng và hệ thốngLớp giữa hệ thống và các hệ thống bên ngồiVí dụ giao dịch với “Hệ thống tài vụ”Lớp giữa hệ thống và thiết bị ngoại viVí dụ “Thiết bị giải mã vạch”Với mỗi cặp Actor/Use-Case bao giờ cũng cĩ 1 lớp biên*Vai trị của lớp biên Mơ hình hố sự tương tác giữa hệ thống và mơi trường bao quanh nĩ*UC Dangkyhoc: Tìm lớp biênÍt nhất một lớp biên cho mỗi cặp actor/use caseVí dụ:*Một số chú ý với lớp biênCá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ùngKhơng tập trung vào chi tiết giao diện người dùngCác lớp giao diện hệ thống và thiết bị ngoại vi (API)Tập trung vào cấu trúc dữ liệu trao đổi giữa chúngTập trung vào giao thức tương tác giữa chúng với hệ thống ở mức caoKhơng quan tâm đến việc giao thức được thực thi thế nào và dữ liệu được truyền đi thế nào*2.2. Lớp thực thể (Entity class)Là các lớp mơ tả những thực thể chính xuất hiện trong hệ thốngThực thể là những thơng tin tồn tại và được lưu trữ lâu dài trong hệ thốngChỉ mơ tả ở mức trừu tượng, khơng mơ tả quá chi tiết các thuộc tính của thực thể này*Vai trị của lớp thực thểLưu trữ và quản lý thơng tin trong hệ thống*Tìm các lớp thực thểSử dụng luồng sự kiện của Use-Case là đầu vàoLọc các danh từTìm các mệnh đề danh từ trong luồng sự kiệnLoại bỏ một số thành phần khơng cần thiếtThừa, lặp, khơng rõ ràngLoại bỏ các từ mơ tả cụ thể một thuộc tính thơng tin nào đĩ, nhưng lưu lại để sau này cĩ thể sử dụng cho:Thuộc tínhThao tác*UC Dangkyhoc: Tìm các lớp thực thểChức năng đăng ký học (Tạo thời khĩa biểu)*2.3. Lớp điều khiển (Control class)Được sử dụng để thực hiện một hoặc nhiều hành động nào đĩ trong hệ thốngLà lớp thực hiện chức năng chính trong các UCVới những Use Case phức tạp, cĩ thể cĩ nhiều hơn một lớp điều khiển*Vai trị của lớp điều khiểnThể hiện hành động, chức năng của từng Use Case*Tìm các lớp điều khiểnĐơn giản nhất phải tìm được một lớp điều khiển cho một Use-CaseVới các Use-Case phức tạp cĩ thể yêu cầu nhiều lớp điều khiển*UC Register for Course: Lớp phân tíchMơ hình use caseMơ hình phân tích và thiết kế*Các biểu tượng cho lớp phân tích trong UMLUML cho phép sử dụng một số biểu tượng khác nhau cho các lớp phân tíchCác lớp phân tích được biểu thị cùng với stereotype*Nội dungTổng quan về phân tích use caseTìm các lớp phân tíchCác biểu đồ tương tácBiểu đờ lớp phân tích*Phân bổ các hành vi của Use Case vào các lớpTrong từng luồng sự kiện của từng UCTìm ra các lớp phân tíchPhân bố chức năng (hành vi) của Use Case này vào các lớp tìm đượcThể hiện tương tác giữa các lớp và hành vi của chúng bằng các mơ hình tương tác*Trách nhiệm của các lớp phân tíchLớp biênChịu trách nhiệm thể hiện sự tương tác giữa hệ thống và tác nhân bên ngồiChịu trách nhiệm kiểm tra dữ liệu qua lại trong quá trình tương tácLớp thực thểChịu trách nhiệm quản lý thơng tin của nĩĐĩng gĩi thơng tin, và thay đổi trạng thái của nĩLớp điều khiểnChịu trách nhiệm chính cho một Use Case nào đĩTránh để lớp điều khiển làm quá ít việc*3.1. Biểu đồ trình tự (Sequence diagram)Là biểu đồ tương tác tập trung vào thứ tự trao đổi các thơng điệp theo thời gianChỉ ra:Các đối tượng tham gia tương tácTrình tự các thơng điệp trao đổi với nhauSequence Diagram*Biểu đồ trình tự*Sequence diagram*Biểu đồ trình tự - đối tượngĐối tượngĐường sống(Lifeline)*Biểu đồ trình tự - tác nhânThể hiện của tác nhân(Actor instance)Biểu đồ trình tự - Thơng điệp* Nguyễn Thị Thu Trang, SE-FIT-HUTThơng điệp(Message)Thơng điệp nội tại(Reflexive Message)*Biểu đồ trình tự - execution occurence*Execution Occurrence*Biểu đồ trình tự - Event Occurrence*Event Occurrence*UC Register ForCourse: Sequence Diagram* Nguyễn Thị Thu Trang, SE-FIT-HUTUC Register ForCourse: Sequence Diagram** Nguyễn Thị Thu Trang, SE-FIT-HUTUC Register ForCourse: Sequence Diagram**3.2. Biểu đồ giao tiếpLà biểu đồ tương tác tập trung vào tổ chức các đối tượng tham gia tương tác.Chỉ ra:Các đối tượng tham gia tương tác.Đường liên kết giữa các đối tượng.Thơng điệp trao chuyển giữa các đối tượng.Communication Diagrams*Biểu đồ giao tiếp/cộng tác*Communication/Collaboration Diagram*Biểu đồ giao tiếp – Đối tượngĐối tượng : CourseRegistrationInfo : CourseRegistrationController: CourseRegistrationForm:CourseInfo: StudyHistory*Biểu đồ giao tiếp – Tác nhân : StudentActors : CourseRegistrationInfo : CourseRegistrationController: CourseRegistrationForm:CourseInfo: StudyHistory*Biểu đồ giao tiếp – Liên kết và thơng điệp : Student : CourseRegistrationForm : CourseRegistrationController :CourseRegistrationInfo5: display Error( )6: display Successful Registration( )1: Register for a Course()2: Register for a Course( )3: get Registered Courses() Liên kếtCác thơng điệp*UC Register for course: Biểu đồ giao tiếp*SD & CD: Giống nhauTương đương nhau về mặt ngữ nghĩaCĩ thể chuyển đổi biểu đồ này sang biểu đồ kia mà khơng mất mát bất cứ thơng tin nào.Mơ hình hĩa các khía cạnh động của một hệ thống.Mơ hình hĩa một kịch bản use case.*SD & CD: Khác nhauSequence diagramsCommunication diagramsShow the explicit sequence of messagesShow execution occurrenceBetter for visualizing overall flowBetter for real-time specifications and for complex scenariosShow relationships in addition to interactionsBetter for visualizing patterns of communicationBetter for visualizing all of the effects on a given objectEasier to use for brainstorming sessions*Biểu đồ giao tiếp và biểu đồ trình tựBiểu đồ trình tựThể hiện rõ trình tự của quá trình tương tácThể hiện tốt hơn luồng cơng việcThể hiện tốt hơn quá trình mơ tả các luồng sự kiện phức tạp trên phương diện thời gian thựcBiểu đồ giao tiếpThể hiện mối quan hệ rõ ràng trong quá trình tương tácThể hiện tốt hơn quá trình cợng tácThể hiện rõ hơn hiệu quả của quá trình tương tác trên từng đối tượng.*Nội dungTổng quan về phân tích use caseTìm các lớp phân tíchCác biểu đồ tương tácBiểu đờ lớp phân tích*4.1. Mơ tả nhiệm vụBiểu đồ tương tácSơ đồ lớp*UC Register for Course: Biểu đồ lớp chi tiết*Kiểm tra tính hợp lý của các lớp phân tíchHai lớp làm cùng một nhiệm vụMột nhiệm vụ được tách rời vào nhiều hơn 1 lớpMột lớp chỉ cĩ một nhiệm vụ duy nhất hoặc khơng cĩ nhiệm vụ nàoMột lớp tương tác với quá nhiều lớp khác*4.2. Tìm kiếm thuộc tínhThể hiện thuộc tính, đặc tính của một lớpThơng tin cần thiết để để lớp cĩ thể thực thi các trách nhiệm (chức năng, hàm) của nĩChú ý đến các “danh từ” mà khơng đủ để trở thành lớp trong quá trình tìm kiếm lớp phân tíchVí dụ cho UC Register for Course **4.3. Quan hệ giữa các lớpQuan hệ giữa các lớp chỉ ra rằng đối tượng của lớp này cĩ thể gửi thơng điệp đến đối tượng của lớp kiaQuan hệ cĩ thể cĩ 1 chiều hoặc 2 chiềuTrong UML thể hiện bằng đường vẽ khơng mũi tên hoặc cĩ mũi tên*Tìm kiếm quan hệ Thể hiện mối quan hệ trong tất cả các liên kếtBiểu đồ giao tiếpBiểu đồ lớp*Kiểu quan hệMột số kiểu quan hệLiên kết (association)Kết tập (aggregation/composition)Phụ thuộc (dependencies)Tổng quát hố (generalization)*Liên kết (Association)Đây là hình thức hai lớp, đối tượng quan hệ với nhau theo hình thức Liên kếtMột Liên kết cĩ thể cĩ các vai trị (Roles)*Vai trị của lớp trong mối quan hệThể hiện rõ vai trị của một lớp trong mối quan hệ đĩ*Kết tập/Thành phầnLà một hình thức mạnh của Liên kếtĐây là quan hệ mang tính thành phần, lớp thành phần sẽ bị mất đi nếu như lớp chứa của nĩ mất đi*Liên kết hay Kết tậpNếu 2 đối tượng thường được xem xét độc lập, mặc dù chúng cĩ quan hệ với nhauMối quan hệ là một Liên kếtNếu 2 đối tượng cĩ mối quan hệ tồn thể và thành phầnMối quan hệ là một Kết tập/thành phần*Bội số của quan hệ (Multiplicity)Bội số cho phép chỉ ra số lượng của 1 đối tượng cần thiết để quan hệ với số lượng của 1 đối tượng khác*Bội số của quan hệBội số của quan hệ trả lời 2 câu hỏiSự liên kết là bắt buộc hay tuỳ chọnSố lượng nhỏ nhất và lớn nhất các đối tượng cĩ thể kết nối với các đối tượng của lớp khác*UC Register for course: Quan hệ trong sơ đồ lớp*Hợp nhất các lớp phân tích*Ví dụ về UC Mua hàng trên mạngMơ tả:Giả sử cĩ một hệ thống của hàng ảo trên mạngUC Bán hàng cho phép khách hàng (KH) mua được các mặt hàng mong muốnVí dụ này yêu cầu KH phải thành tốn trực tuyếnTiền điều kiện:KH muốn mua hàng trên cửa hàng ảoKH cĩ thể thanh 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 khi KH chấp nhận mua hàng và quá trình thanh tốn với ngân hàng thực hiện thành cơng. Hĩa đơn được lập, hàng hĩa được dành riêng cho KH đĩNếu quá trình thanh tốn với ngân hàng khơng thành cơng, hĩa đơn sẽ khơng được lập, hàng cũng khơng được bán raThực thể:Mặt hàng, Giỏ hàng, Đơn hàngUse case liên quan:Tìm kiếm hàng, quản lý đơn hàng (Giao hàng)*Luồng sự kiện cho Use CaseKH duyệt, tìm kiếm và xem thơng tin các mặt hàng muốn mua (xem UC xem hàng)KH cĩ thể chọn chức năng “Đưa hàng vào giỏ hàng”Hệ thống sẽ đưa mặt hàng này vào giỏKH cĩ thể nhập số lượng muốn mua (mặc định là 1)Hệ thống sẽ tự động cập nhật giá của giỏ hàng hiện tạiKH cĩ thể lặp lại quá trình này để mua tiếp các mặt hàng khác1. Giỏ hàng sẽ khơng mất đi trong quá trình KH tìm/mua mặt hàng khác2. Nếu giỏ hàng đã cĩ mặt hàng này, hệ thống sẽ báo lại cho KHQuản lý giỏ hàngMỗi một KH cĩ một giỏ hàng riêng rẽ và khơng ai nhìn thấy thơng tin của nhauKH cĩ thể chọn chức năng “Xem giỏ hàng” bất kỳ lúc nào cầnHệ thống sẽ hiển thị giỏ hàng với đầy đủ các mặt hàng KH đã chọn, cùng số lượng và giá cả từng loạiKH cĩ thể thay đổi số lượng, hoặc bỏ đi mặt hàng mà KH khơng muốn muaKH cĩ thể chọn chức năng thành tốn, xem luồng phụ “Thanh tốn”*Luồng phụ: Thanh tốnKH cĩ thể chọn chức năng thanh tốnKH được yêu cầu nhập thẻ thanh tốn và địa chỉ giao hàngThơng tin thanh tốn được đưa tới ngân hàng, hệ thống sẽ chờ kết quả từ ngân hàng đĩ(Quá trình xử lý giao dịch là do ngân hàng quyết định)Nếu ngân hàng khơng chập nhận giao dịchHệ thống sẽ thơng báo kết quả tới KH, yêu cầu nhập lại thơng tinNếu ngân hàng chấp nhận(Số tiền tương ứng của KH được chuyển sang tài khoản của cửa hàng)Hệ thống sẽ lập Đơn hàng và lưu lại (xem UC quản lý đơn hàng)Số lượng hàng tồn kho sẽ được giảm tương ứngHệ thống thơng báo thành cơng cho KH trên trang web và gửi thơng tin đơn hàng qua mail của KHGiỏ hàng sẽ bị xĩa đi (nếu mua tiếp, giỏ hàng sẽ được tạo mới)*Biểu đồ lớp phân tích*Biểu đồ trình tự*Biểu đồ giao tiếp*Tổng kếtQuy trình phân tích Use CaseVai trị của các mơ hình phân tíchSự phát triển của mơ hình phân tích tới mơ hình thiết kếBiểu đồ lớp phân tích (Analysis Class Diagram)Tìm kiếm lớp phân tíchBiểu đồ lớp phân tíchCác biểu đồ tương tác (Interaction Diagram)Biểu đồ trình tự, giao tiếpBiểu đồ tương tác:Trình tựGiao tiếpBiểu đồ lớp phân tíchBiểu đồ lớp phân tích hợp nhất của các use case liên quan đến Student*
Các file đính kèm theo tài liệu này:
- tailieu.ppt