Bài giảng Phân tích thiết kế hướng đối tượng - Chương 2: Ngôn ngữ mô hình hóa thống nhất (UML) - Lê Thị Minh Nguyên

Tính chất: • Thể hiện sự tương tác giữa các đối tượng • Cũng gửi thông điệp như biểu đồ tuần tự nhưng không có đường life line • Thứ tự các thông điệp được đánh số • Nhấn mạnh sự giao tiếp của các đối tượng hơn là yếu tố thời gian

pdf10 trang | Chia sẻ: huongthu9 | Lượt xem: 388 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Phân tích thiết kế hướng đối tượng - Chương 2: Ngôn ngữ mô hình hóa thống nhất (UML) - Lê Thị Minh Nguyên, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
8/30/2017 1 Chương 2. Ngôn ngữ mô hình hóa thống nhất (UML) GV: Lê Thị Minh Nguyện Email: nguyenltm@huflit.edu.vn Phân tích thiết kế hướng đối tượng 1 Nội dung 1. Giới thiệu UML 2. Unified modeling language (uml) 3. UML và các giai đoạn của chu trình phát triển phần mềm Phân tích thiết kế hướng đối tượng 2 Giới thiệu UML 1.1. UML là gì? 1.2. Sơ lược lịch sử phát triển của UML 1.3. Các khung nhìn của UML Phân tích thiết kế hướng đối tượng 3 1.1. UML là gì? Phân tích thiết kế hướng đối tượng 4 • “Three Amigos”: Ivar Jacobson, Grady Booch và Jim Rumbaugh đã hợp nhất các phương pháp OO và tạo ra ngôn ngữ mô hình hóa chuẩn UML • Là ngôn ngữ dùng để • Trực quan hóa (Visualizing) • Xác định rõ (Đặc tả - Specifying) • Xây dựng (Constructing) • Tài liệu hóa (Documenting) Cho các kết quả (artifacts) của quá trình thực hiện phần mềm. 8/30/2017 2 UML là ngôn ngữ trực quan Phân tích thiết kế hướng đối tượng 5  UML là ngôn ngữ thống nhất trực quan giúp công việc được xử lý nhất quán, giảm thiểu lỗi xảy ra ◦ Có những thứ mà nếu không mô hình hóa thì không hoặc khó có thể hiểu được ◦ Mô hình trợ giúp hiệu quả trong việc liên lạc, trao đổi  Trong tổ chức  Bên ngoài tổ chức UML là ngôn ngữ để đặc tả Phân tích thiết kế hướng đối tượng 6 • UML xây dựng các mô hình chính xác, rõ ràng và đầy đủ. UML là ngôn ngữ để xây dựng HT Phân tích thiết kế hướng đối tượng 7 • Các mô hình UML có thể kết nối trực tiếp với rất nhiều ngôn ngữ lập trình. • Ánh xạ sang Java, C++, C#, Visual Basic • Các bảng trong RDBMS hoặc kho lưu trữ trong OODBMS • Cho phép các kỹ nghệ xuôi (chuyển UML thành mã nguồn) • Cho phép kỹ nghệ ngược (xây dựng mô hình hệ thống từ mã nguồn) UML là ngôn ngữ để tài liệu hóa Phân tích thiết kế hướng đối tượng 8 UML giúp tài liệu hóa về kiến trúc, yêu cầu, kiểm thử, lập kế hoạch dự án, và quản lý việc bàn giao phần mềm Use Case Diagram Actor A Use Case 1 Use Case 2 Use Case 3 Actor B Class Diagram GrpFi le read( ) open( ) c reate( ) fi l lFi le( ) rep Repos i tory nam e : char * = 0 readDoc( ) readFi le( ) (from Persistence) Fi leM gr fetc hDoc ( ) s ortBy Nam e( ) Doc um entL ist add( ) de lete( ) Doc um ent nam e : int doc id : in t num Field : int get( ) open( ) c los e( ) read( ) s ortFi leL is t( ) c reate( ) fi l lDoc um ent( ) fL is t 1 Fi leL ist add( ) de lete( ) Fi le read( ) read() fi l the c ode.. Sequence Diagram user mainWnd fileMgr : FileMgr repositorydocument : Document gFile 1: Doc view reques t ( ) 2 : fe tchDoc( ) 3 : c reate ( ) 4 : c reate ( ) 5 : readDoc ( ) 6 : fi l lDoc ument ( ) 7 : readFi le ( ) 8 : fi l lFile ( ) 9 : s ortBy Name ( ) ƯÁ¤¹®¼ ¿¡ ´ëÇÑ º¸±â¸ ¦ »ç ¿ëÀÚ°¡ ¿äûÇÑ´Ù. ÈÀÏ°ü¸®ÀÚ´Â Àо î¿Â ¹®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ °´ ü ¿¡ ¼ ³Á¤À» ¿äûÇÑ´Ù. È¸é °´ ü ´Â ÀоîµéÀÎ °´ ü µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´Ù. Deployment Diagram Window95 ¹®¼ °ü¸® Ŭ¶óÀ̾ðÆ®.EXE Windows NT ¹®¼ °ü¸® ¿£Áø.EXE Windows NT Windows95 Solaris ÀÀ¿ë¼ ¹ö.EXE Alpha UNIX IBM M ainfram e µ¥ÀÌŸº£À̽º¼ ¹ö Windows95 ¹®¼ °ü¸® ¾ ÖÇø´ ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹×³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼¹ö - À¯ ´Ð½ º ¸Ó½Å: ÀÀ¿ë ¼¹ö ¹×µ¥ÀÌŸ ¼ ¹ö, Åë½Å ¼¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö Các biểu đồ khác nhau, các ghi chú, ràng buộc được đặc tả trong tài liệu 8/30/2017 3 3.2. Lịch sử phát triển của UML  Vào 1994, có hơn 50 phương pháp mô hình hóa hướng đối tượng: ◦ Fusion, Shlaer-Mellor, ROOM, Class-Relation,Wirfs-Brock, Coad- Yourdon, MOSES, Syntropy, BOOM, OOSD, OSA, BON, Catalysis, COMMA, HOOD, Ooram, DOORS  “Meta-models” tương đồng với nhau  Các ký pháp đồ họa khác nhau  Quy trình khác nhau hoặc không rõ ràng  Cần chuẩn hóa và thống nhất các phương pháp 9 3.2. Lịch sử phát triển của UML Phân tích thiết kế hướng đối tượng 10 • UML được 3 chuyên gia hướng đối tượng hợp nhất các kỹ thuật của họ vào năm 1994: • Booch91 (Grady Booch): Conception, Architecture • OOSE (Ivar Jacobson): Use cases • OMT (Jim Rumbaugh): Analysis • Thiết lập một phương thức thống nhất để xây dựng và “vẽ” ra các yêu cầu và thiết kế hướng đối tượng trong quá trình PTTK phần mềm  UML được công nhận là chuẩn chung vào năm 1997. 3.2. Lịch sử phát triển của UML Phân tích thiết kế hướng đối tượng 11 UML Partners’ Expertise UML 1.0 (Jan. ‘97) UML 1.1 (Sept. ‘97) UML 1.5 (March, ‘03) UML 2.0 (2004) Other Methods Booch ‘91 OMT - 1OOSE Booch ’93 OMT - 2 Public FeedbackUnified Method 0.8 (OOPSLA ’95) UML 0.9 (June ‘96) UML 0.91 (Oct. ‘96) and 3.3. Khung nhìn của UML Phân tích thiết kế hướng đối tượng 12 Khung nhìn của mô hình có ý nghĩa với những người tham gia nào đó 4 + 1 Architectural View Process View Logical View Implementation View Programmers Software management Performance, scalability, throughput System integrators Analysts/Designers Structure Deployment View System topology, delivery, installation, communication System engineering Use-Case View End-user Functionality 8/30/2017 4 Khung nhìn Use case • Nắm bắt các chức năng của hệ thống • Cần thiết cho các hoạt động phân tích, thiết kế và kiểm thử • Hợp đồng giữa khách hàng và người phát triển • Hành vi của hệ thống – các chức năng mà hệ thống cần cung cấp – được lưu trong một mô hình use case • Biểu đồ use case • Luồng sự kiện use case • Biểu đồ hoạt động • Các tài liệu phụ trợ 13 Khung nhìn Logic Cấu phần chính là mô hình thiết kế ◦ Cung cấp mô tả cụ thể về hành vi chức năng của hệ thống. ◦ Xuất phát từ mô hình phân tích  Mô tả vắn tắt về hành vi của hệ thống dựa trên mô hình use case ◦ Tập hợp lớp, tổ chức vào các hệ thống con ◦ Bao gồm:  Biểu đồ lớp, biểu đồ tương tác, biểu đồ trạng thái  Hệ thống con và giao diện của chúng 14 Khung nhìn thực thi (implementation) • Tổ chức các mô-đun phần mềm tĩnh (mã nguồn, tệp dữ liệu, các thành phần thực thi, tài liệu) trong môi trường dưới dạng: - Chia thành các package và phân lớp (layer) - Quản lý cấu hình (quyền sở hữu, kế hoạch bàn giao) • Được mô hình hóa trong các biểu đồ thành phần 15 Khung nhìn tiến trình (process)  Bao gồm các thread và các process tạo nên các cơ chế đồng thời và đồng bộ của hệ thống  Giải quyết về các vấn đề: ◦ Đồng thời và song song (đồng bộ, deadlock) ◦ Dung thứ lỗi (cô lập chức năng và lỗi, độ tin cậy) ◦ Khởi động và tắt hệ thống ◦ Phân phối đối tượng và dữ liệu ◦ Hiệu năng (thời gian đáp ứng, thông lượng) và tính co dãn  Không cần thiết đối với môi trường xử lý đơn lẻ  Mô hình hóa bằng biểu đồ lớp, biểu đồ tương tác và biểu đồ trạng thái 16 8/30/2017 5 Khung nhìn triển khai (deployment) • Mô tả các nút vật lý khác nhau và các kết nối lẫn nhau giữa chúng cho các cấu hình nền tảng điển hình nhất • Giải quyết các vấn đề: • Triển khai • Cài đặt • Bảo trì • Được mô hình hóa bằng biểu đồ triển khai 17 3.UNIFIED MODELING LANGUAGE (UML) Phân tích thiết kế hướng đối tượng 18 18 UML defines 13 diagrams that describe 4+1 architectural views UNIFIED MODELING LANGUAGE (UML) Phân tích thiết kế hướng đối tượng 19 Things Relationship Diagram Structural Things Behavior things Group things Annotation things Class, interface, collaboration, use case, components, nodes Interaction, State machine Package Note Structural Relationship Dependency, Aggregation, Association, Generalization Behavior Relationship Communication, Includes, Extends, Generalizes Structural Diagram Behavioral Diagram -Class diagram -Object diagram -Component diagram -Deployment diagram - Use case diagram - Activity diagram - Interaction diagram - State machine diagram UNIFIED MODELING LANGUAGE (UML) Dynamic Diagrams Activity Diagrams Models Static Diagrams Sequence Diagrams Communication Diagrams State Machine Diagrams Deployment Diagrams Component Diagrams Object Diagrams Class DiagramsUse-Case Diagrams 20 8/30/2017 6 Use Case Diagram Phân tích thiết kế hướng đối tượng 21 Use Case Diagram Phân tích thiết kế hướng đối tượng 22 • Mô tả hành vi hệ thống dưới góc nhìn của người dùng • Với developer, đây là công cụ vô cùng hữu ích trong việc thể hiện yêu cầu hệ thống Class Diagram Phân tích thiết kế hướng đối tượng 23 Class Diagram Phân tích thiết kế hướng đối tượng 24 Name Attributes Operations 8/30/2017 7 Class Diagram Phân tích thiết kế hướng đối tượng 25 25 Một số lưu ý • Tên class nếu có từ 2 từ trở lên thì viết hoa đầu mỗi từ và không có khoảng trắng • Tên thuộc tính và tên phương thức cũng tuân theo qui tắc trên nhưng không viết hoa chữ đầu Object Diagram Phân tích thiết kế hướng đối tượng 26 Một số lưu ý • Tên được gạch dưới • Tên của thực thể nằm phía trái dấu hai chấm, tên lớp nằm phía phải • Với anonymous object, ta không cần xác định tên của đối tượng State Diagram Phân tích thiết kế hướng đối tượng 27 • Tại bất kì thời điểm nào, mỗi object đều đang ở một trạng thái (state) nhất định • Hình bên cho thấy sự dịch chuyển (transition) về trạng thái của một đối tượng máy giặt • Lưu ý kí hiệu của trạng thái bắt đầu và kết thúc Sequence Diagram Phân tích thiết kế hướng đối tượng 28 Tính chất: • Class diagrams và Object diagrams đặc trưng cho dạng thông tin tĩnh (static information) • Trong thực tế, các objects luôn tương tác với nhau theo thời gian • Sequence diagrams giúp thể hiện các hành vi động theo thời gian 8/30/2017 8 Sequence Diagram Phân tích thiết kế hướng đối tượng 29 Sequence Diagram Phân tích thiết kế hướng đối tượng 30 Ví dụ: • Giả sử timer, water pipe và drum là các objects. Mỗi object có một hoặc nhiều operations • Các objects cùng làm việc thông qua việc gửi thông điệp (messages) cho nhau • Mỗi message là một yêu cầu đi từ đối tượng gửi (sender-object) đến đối tượng nhận (receiver- object) • Đối tượng nhận sẽ thực thi phương thức đó Sequence Diagram Phân tích thiết kế hướng đối tượng 31 Ví dụ: • Các tác vụ của Timer: timeSoak() • Các tác vụ của WaterPipe: sendWater(), stopFlow() • Các tác vụ của Drum: storeWater() • Trình tự: 1. Tại thời điểm soaking, nước di chuyển vào Drum thông qua WaterPipe 2. Drum ổn định trong khoảng 5 phút 3. Tại thời điểm kết thúc, nước ngừng di chuyển vào Drum Activity Diagram Phân tích thiết kế hướng đối tượng 32 Tính chất: • Biểu diễn các hành vi theo từng bước • Hỗ trợ lựa chọn, lặp và song song • Cho thấy dòng điều khiển một cách tổng quan • VD: 1. Vào thời điểm bắt đầu “Washing”, Drum xoay tròn trong 15 phút 2. Tại thời điểm kết thúc “Washing”, Drum xả nước xà phòng 3. Drum ngừng xoay 8/30/2017 9 Activity Diagram Phân tích thiết kế hướng đối tượng 33 Communication Diagram Phân tích thiết kế hướng đối tượng 34 Tính chất: • Thể hiện sự tương tác giữa các đối tượng • Cũng gửi thông điệp như biểu đồ tuần tự nhưng không có đường life line • Thứ tự các thông điệp được đánh số • Nhấn mạnh sự giao tiếp của các đối tượng hơn là yếu tố thời gian Communication Diagram Phân tích thiết kế hướng đối tượng 35 Component Diagram Phân tích thiết kế hướng đối tượng 36 Thể hiện kiến trúc vật lý của quá trình hiện thực 8/30/2017 10 Deployment Diagram Phân tích thiết kế hướng đối tượng 37 Thể hiện kiến trúc vật lý hệ thống 2. UML và các giai đoạn phát triển hệ thống Giai đoạn Mô tả Preliminary Investigation Use cases thể hiện các yêu cầu của người dùng - Use case xác định các yêu cầu - Diagram thể hiện mối quan hệ và giao tiếp với hệ thống Analysis Trừu tượng hóa và tìm hiểu các cơ cấu có trong phạm vi bài toán Class diagrams trên bình diện trừu tượng hóa các thực thể ngoài đời thực được sử dụng. Chỉ những lớp (class) nằm trong phạm vi bài toán mới đáng quan tâm Design Các lớp được mô hình hóa chi tiết để cung cấp hạ tầng kỹ thuật như giao diện, nền tảng cho database Development Mô hình Design được chuyển thành code Testing Có 4 hình thức kiểm tra hệ thống - Unit testing (class diagrams & class specifications) - Integration testing (integration diagrams & collaboration diagrams) - System testing (use-case diagrams) - Acceptance testing Phân tích thiết kế hướng đối tượng 38 Phân tích thiết kế hướng đối tượng 39

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_phan_tich_thiet_ke_huong_doi_tuong_chuong_2_ngon_n.pdf