Phân tích thiết kế hướng đối tượng - Tổng quan về ngôn ngữ mô hình hóa UML

pdf 54 trang vanle 3930
Bạn đang xem 20 trang mẫu của tài liệu "Phân tích thiết kế hướng đối tượng - Tổng quan về ngôn ngữ mô hình hóa UML", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfphan_tich_thiet_ke_huong_doi_tuong_tong_quan_ve_ngon_ngu_mo.pdf

Nội dung text: Phân tích thiết kế hướng đối tượng - Tổng quan về ngôn ngữ mô hình hóa UML

  1. Trường Đại học công nghiệp Hà Nội KHOA CÔNG NGHỆ THÔNG TIN PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Gv: Vũ Thị Dương Email: duongvt01@gmail.com
  2. Nội dung chi tiết 1. Các khái niệm hướng đối tượng 2. Tổng quan về ngôn ngữ mô hình hóa UML 3. UML trong tiến trình phát triển phần mềm 4. Mô hình hóa yêu cầu (biểu đồ ca sử dụng) 5. Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực) 6. Mô hình hóa hành vi( biểu đồ tương tác, trạng thái) 7. Biểu đồ kiến trúc vật lý và phát sinh mã trình 8. Mô hình hóa dữ liệu 2010 Phân tích thiết kế hướng đối tượng Bài 1 - 2
  3. Bài 2 Giới thiệu Ngôn ngữ mô hình hóa thống nhất
  4. Mô hình là gì?  Mô hình (Model)  Là sự đơn giản hóa của hệ thống thực. MHH có thể bức tranh hay mô tả vấn đề đang cố gắng giải quyết hay mô tả chính giải pháp vấn đề  là ngôn ngữ của người thiết kế (trong nhiều lĩnh vực)  là trình diễn hệ thống sẽ xây dựng  là phương tiện giao tiếp giữa các stakeholders  là kế hoạch chi tiết (blueprints) Phân tích thiết kế hướng đối tượng Bài 2 - 4/43
  5. Khái niệm mô hình hóa  Mô hình hóa (modeling) là quá trình dùng mô hình để diễn tả hệ thống  Tại sao phải mô hình hóa? 1. Mô hình hóa để hiểu vấn đề (dễ nhận thức) 2. MHH để trao đổi (phương tiện giao tiếp giữa những người phát triển) 3. MHH để hoàn chỉnh( dễ dàng nhận sự phù hợp giữa mô hình và nhu cầu để cải tiến, hoàn thiện)  Ngôn ngữ mô hình hóa là ngôn ngữ mô tả hệ thống hay tác nghiệp Phân tích thiết kế hướng đối tượng Bài 2 - 5/43
  6. Thí dụ mô hình Mô hình: Quả địa cầu học sinh Thế giới thực Thế giới thực Làm chủ Con người Đọc  Sách Ôtô Mô hình Phân tích thiết kế hướng đối tượng Bài 2 - 6/43
  7. Thí dụ mô hình A model is a complete description of a system from a particular perspective Phân tích thiết kế hướng đối tượng Bài 2 - 7/43
  8. Mô hình hóa trực quan? Order “Modeling captures essential parts of the system.” Dr. James Rumbaugh Item Ship via Business Process Visual Modeling is modeling using standard graphical notations Computer System Phân tích thiết kế hướng đối tượng Bài 2 - 8/43
  9. Các nguyên tắc mô hình hóa  Chọn mô hình thích hợp  Góc nhìn csdl: mô hình thực thể liên kết  Góc nhìn cấu trúc: thuật toán  Góc nhìn hđt: lớp và các mối quan hệ  Các mô hình được thể hiện nhiều mức chính xác khác nhau  Hệ thống được diễn tả ở các mức chi tiết khác nhau tùy theo nhu cầu người sử dụng  Các mô hình phải liên hệ với thế giới thực Phân tích thiết kế hướng đối tượng
  10. Một số phương pháp MHH HĐT  OOD- Object Oriented Design  OOSE- object Oriented Software Engineering  OMT- Object Modeling Technique Phân tích thiết kế hướng đối tượng Bài 2 - 10/43
  11. OOD- Object Oriented Design  Phương pháp này được phát triển bởi Booch. Nó bao gồm 2 loại chính  Mô hình tĩnh  Biểu đồ lớp  Biểu đồ đối tượng  Mô hình động  Biểu đồ trạng thái  Biểu đồ thời gian Phân tích thiết kế hướng đối tượng
  12. OOSE- object Oriented Software Engineering  Phương pháp được phát triển bởi Jacobson  5 mô hình  Mô hình yêu cầu – kịch bản sủ dụng  Mô hình phân tích- mức khái niện  Mô hình thiết kế - mức logic  Mô hình mã hóa – mức vật lý  Mô hình kiểm thử Phân tích thiết kế hướng đối tượng Bài 2 - 12/43
  13. OMT- Object Modeling Technique  Phương pháp được phát triển bởi Rumbaugh  Ba mô hình  Mô hình tĩnh  Mô hình thực thể quan hệ  Mô hình động  Biểu đồ trạng thái và chuyển tiếp  Mô hình chức năng  Dựa trên biểu đồ luồng dữ liệu Phân tích thiết kế hướng đối tượng Bài 2 - 13/43
  14. Lịch sử phát triển UML  1975-1990  Nhiều ngôn ngữ mô hình hóa HĐT được phát triển  1990-1994  Hơn 50 phương pháp phát triển HĐT trong đó có 3 phương pháp kể trên  10/1994 Rumbaugh và Booch tiến hàn hành dự án UML ở Rational  10/1995 phiên bản đầu tiên của phương pháp hợp nhất ra đời  Cuối năm 1995, Jacobson tham gia nhóm của họ và 6/1996 phiên bản UML v0.9 ra đời Phân tích thiết kế hướng đối tượng Bài 2 - 14/43
  15. Lịch sử phát triển UML  1996: Hội thảo đầu tiên về UML được tổ chức  1997 phiên bản v1.0 được đề xuất như chuẩn đối với tổ chức OMG (Object management Group)  8/1998 UML v1.3 được phát hành bởi OMG Phân tích thiết kế hướng đối tượng Bài 2 - 15/43
  16. Ngôn ngữ mô hình hóa thống nhất UML 1.3 OMG Acceptance, Nov 1997 Final submission to OMG, Sep ‘97 UML 1.1 public First submission to OMG, Jan ´97 feedback UML partners UML 1.0 June ´96 UML 0.9 June 12, 2003 UML 2.0 OOPSLA ´95 Unified Method 0.8 Other methods Booch method OMT OOSE UML stands for Unified Modeling Language Phân tích thiết kế hướng đối tượng Bài 2 - 16/43
  17. UML Partners  Rational Software Corporation  Hewlett-Packard  I-Logix  IBM  ICON Computing  Intellicorp  MCI Systemhouse  Microsoft  ObjecTime  Oracle  Platinum Technology  Taskon  Texas Instruments/Sterling Software  Unisys Phân tích thiết kế hướng đối tượng Bài 2 - 17/43
  18. Contributions to the UML Harel Meyer Gamma, et al Statecharts Before and after Frameworks and patterns, conditions HP Fusion Operation descriptions and Booch message numbering Booch method Embley Rumbaugh Singleton classes and Object Modeling high-level view Technique Jacobson Wirfs-Brock Object-Oriented Responsibilities Software Engineering Shlaer - Mellor Odell Object lifecycles Classification Phân tích thiết kế hướng đối tượng Bài 2 - 18/43
  19. UML – một ngôn ngữ  Cung cấp từ vựng, cú pháp và ngữ nghĩa để mô tả sự giao tiếp  Là một ngôn ngữ mà trong đó từ vựng và luật được sử dụng để mô tả mức khái niện và mức vật lý của một hệ thống  UML cung cấp từ vựng và luật để mô tả các mô hình khác nhau của một hệ thống Phân tích thiết kế hướng đối tượng Bài 2 - 19/43
  20. Khái quát về UML  UML là ngôn ngữ để  Visualizing – mô hình hóa trực quan  Specifying – đặc tả  Constructing – xây dựng  Documenting – làm tài liệu . Nó có thể sử dụng trong mọi tiến trình, xuyên suốt vòng đời phát triển và trải qua các công nghệ cài đặt khác nhau. Phân tích thiết kế hướng đối tượng Bài 2 - 20/43
  21. UML- ngôn ngữ để mô hình hóa trực quan  UML cung cấp 1 tập các ký hiệu và luật để biểu diễn đồ họa những mô hình của hệ thống  Biểu diễn đồ họa thường đem lại cái nhìn tốt hơn về hệ thống Phân tích thiết kế hướng đối tượng Bài 2 - 21/43
  22. UML – ngôn ngữ để đặc tả  Một đặc tả là một mô tả chính xác và không nhập nhằng về hệ thống  UML cung cấp các công cụ để đặc tả hệ thống ở nhiều mức: Phân tích, thiết kế, cài đặt Phân tích thiết kế hướng đối tượng Bài 2 - 22/43
  23. UML- ngôn ngữ để xây dựng  Các mô hình UML có thể được chuyển sang 1 ngôn ngữ lập trình khá dễ dàng  UML là khá chính xác và không nhập nhằng để cho phép thực hiện các mô phỏng Phân tích thiết kế hướng đối tượng Bài 2 - 23/43
  24. UML- ngôn ngữ để lập tài liệu  UML cho phép mô tả tất cả các bước xây dựng một hệ thống  Các mô hình được xây dựng tạo nên một tài liệu đầy đủ và chính xác về hệ thống Phân tích thiết kế hướng đối tượng Bài 2 - 24/43
  25. Khái quát về UML  Mô hình hóa các phần tử  Các quan hệ  Cơ chế mở rộng  Các biểu đồ Phân tích thiết kế hướng đối tượng Bài 2 - 25/43
  26. Mô hình hóa các phần tử  Các phần tử cấu trúc  class, interface, collaboration, use case, active class, component, node  Các phần tử hành vi  interaction, state machine  Nhóm các phần tủ  package, subsystem  Các phần tử khác  note Phân tích thiết kế hướng đối tượng Bài 2 - 26/43
  27. Các quan hệ  Dependency – phụ thuộc ( mũi tên đứt nét)  Association – kết hợp (đoạn thẳng với bội, bản số và vai trò)  Generalization – khái quát hóa- thừa kế (mũi tên rỗng liền nét  Realization – cài đặt – mũi tên rỗng nét đứt Phân tích thiết kế hướng đối tượng Bài 2 - 27/43
  28. Cơ chế mở rộng  Khuôn dập-Stereotype  Giá trị - Tagged value  Ràng buộc-Constraint Phân tích thiết kế hướng đối tượng Bài 2 - 28/43
  29. Models and Diagrams Class Diagrams Use Case Diagrams Object Sequence Diagrams Diagrams Scenario DiagramsScenario CollaborationDiagrams Component Diagrams Models Diagrams Scenario DiagramsScenario Deployment DiagramsStatechart Diagrams Diagrams Activity Diagrams Phân tích thiết kế hướng đối tượng Bài 2 - 29/43
  30. Các biểu đồ- Diagrams  Biểu đồ là cách diễn tả hệ thống theo một góc nhìn  Thể hiện cách nhìn từ góc độ của người tham gia  Cung cấp 1 trình diễn cụ thể của hệ thống  Về mặt ngữ nghĩa thì mỗi biểu đồ có thể sẽ khác nhau đối với cách nhìn khác nhau  Trong UML có 9 biểu đồ cơ bản  Tĩnh: use case, class, object, component, deployment  Động: sequence, collaboration, statechart, activity  A diagram is a view into a model  Presented from the aspect of a particular stakeholder  Provides a partial representation of the system  Is semantically consistent with other views  In the UML, there are nine standard diagrams  Static views: use case, class, object, component, deployment  Dynamic views: sequence, collaboration, statechart, activity Phân tích thiết kế hướng đối tượng Bài 2 - 30/43
  31. Kiến trúc hệ thống UML Logical View Implementation View (Góc nhìn (Góc nhìn cài đặt) logic) End-user Programmers Functionality Software management Use Case View Process View Deployment View (Góc nhìn quá trình) (Góc nhìn triển khai) System integrators System engineering Performance System topology Scalability Delivery, installation Throughput Communication Conceptual Physical Phân tích thiết kế hướng đối tượng Bài 2 - 31/43
  32. Góc nhìn Hệ thống  Góc nhìn người sử dụng (use case).Mô tả hệ thống dưới góc nhìn của người sử dụng đầu cuối và người sở hữu  Mô tả các mục tiêu và mục đích của hệ thống  Mô tả các chức năng của hệ thống  Góc nhìn logic- mô tả mặt tĩnh và cấu trúc của hệ thống  Góc nhìn hành vi- mô tả mặt động của hệ thoongs (tương tác giữa các phần tử của hệ thống)  Góc nhìn cài đặt – mô tả thực hiện giải phấp- mã chương trình  Góc nhìn triển khai- mô tả các phần tử vật lý của giải pháp (bộ xử lý, thiết bị) Phân tích thiết kế hướng đối tượng Bài 2 - 32/43
  33. Cần bao nhiêu khung nhìn?  Mô hình phù hợp với ngữ cảnh phát triển hệ thống  Không phải tất cả các mô hình đòi hỏi đầy đủ khung nhìn  Đơn xử lý: Bỏ qua khung nhìn triển khai  Đơn tiến trình: Bỏ qua khung nhìn tiến trình  Chương trình rất nhỏ: Bỏ qua khung nhìn cài đặt  Bổ sung các khung nhìn  Data view  Security view Phân tích thiết kế hướng đối tượng Bài 2 - 33/43
  34. UML Concepts  UML được sử dụng để:  Hiển thị biên hệ thống và các chức năng chính của nó bằng ca sử dụng -use cases và các tác nhân- actors  Mô tả hiện thực use case bằng biểu đồ tương tác- interaction diagrams  Biểu diễn các cấu trúc tĩnh của hệ thống bằng biểu đồ lớp- class diagrams  Mô hình hóa hành vi đối tượng bằng state transition diagrams  Biểu thị kiến trúc cài đặt vật lý bằng component & deployment diagrams  Mở rộng các chức năng bằng stereotypes Phân tích thiết kế hướng đối tượng Bài 2 - 34/43
  35. Thí dụ ứng dụng UML  Một trường đại học thực hiện tin học hóa hệ thống đăng ký học và dạy học:  Giáo vụ (Registrar) lập chương trình giảng dạy (curriculum) cho một học kỳ  Sinh viên (Student) chọn 4 môn học chính và 2 môn dự bị  Khi sinh viên đăng ký học thì hệ thống thanh toán (billing system) in hóa đơn học phí cho sinh viên  Sinh viên có thể sử dụng hệ thống để bổ sung/loại bỏ môn học sau khi đã đăng ký (trong khoảng thời gian cố định)  Giáo sư (Professors) sử dụng hệ thống để xem bảng phân công dạy học (course rosters)  Người sử dụng hệ thống đăng ký được cấp passwords để vào máy Phân tích thiết kế hướng đối tượng Bài 2 - 35/43
  36. Biểu đồ ca sử dụng  Biểu đồ use case dùng để mô tả tập hợp các ca sử dụng, các tác nhân và những mối quan hệ giữa chúng  Các biểu đồ này mô tả cái nhìn tĩnh về hệ thống dưới con mắt của người sử dụng  Các biểu đồ này rất quan trọng để nắm bắt chức năng của hệ thống  Biểu đồ được tạo bởi người phân tích TK hay các chuyên gia của hệ thống Phân tích thiết kế hướng đối tượng Bài 2 - 36/43
  37. Biểu đồ ca sử dụng Request Course Roster Student Professor Maintain Schedule Billing System Maintain Curriculum Registrar Phân tích thiết kế hướng đối tượng Bài 2 - 37/43
  38. Biểu đồ tuần tự- Sequence Diagram  Mô tả sự trao đổi các thông điệp giữa các đối tượng dựa theo thời gian Phân tích thiết kế hướng đối tượng Bài 2 - 38/43
  39. Biểu đồ tuần tự registration registration : Student math 101 math 101 form manager section 1 1: fill in info 2: submit 3: add course(joe, math 01) 4: are you open? 5: are you open? 6: add (joe) 7: add (joe) Phân tích thiết kế hướng đối tượng Bài 2 - 39/43
  40. Biểu đồ tương tác- Collaboration Diagram  Mô tả sự trao đổi các thông điệp giữa các đối tượng dựa theo cấu trúc quan hệ giữa chúng Phân tích thiết kế hướng đối tượng Bài 2 - 40/43
  41. Biểu đồ tương tác- Collaboration Diagram 1: set course info course form : 2: process CourseForm 3: add course : Registrar theManager : aCourse : CurriculumManager Course 4: new course Phân tích thiết kế hướng đối tượng Bài 2 - 41/43
  42. Biểu đồ lớp  Mô tả tập hợp các lớp và các tương tác giữa chúng  Các biểu đồ lớp mô tả cấu trúc tĩnh của hệ thống  Tạo bởi: analysts, designers, and implementers Phân tích thiết kế hướng đối tượng Bài 2 - 42/43
  43. Biểu đồ lớp- Class Diagram ScheduleAlgorithm RegistrationForm 0 * 1 RegistrationManager addStudent(Course, StudentInfo) 1 Course name 0 * numberCredits Student open() addStudent(StudentInfo) major 1 3 10 Professor 1 * 4 CourseOffering tenureStatus 1 location 0 4 open() addStudent(StudentInfo) Phân tích thiết kế hướng đối tượng Bài 2 - 43/43
  44. Biểu đồ đối tượng- Object Diagram  Mô tả tập hợp các đối tượng và quan hệ giữa chúng  Các biểu đồ này mô tả cùng các thông tin như biểu đồ lớp nhưng dưới cách nhìn của các thể hiện lớp  Developed by analysts, designers, and implementers Phân tích thiết kế hướng đối tượng Bài 2 - 44/43
  45. Biểu đồ trạng thái: State Transition Diagram  Biểu diễn máy trạng thái- chuyển tiếp sự kiện và hoạt động  Những biểu đồ này mô tả cái nhìn động về hệ thống  Các biểu đồ này dùng để hiểu rõ hành vi của hệ thống Phân tích thiết kế hướng đối tượng Bài 2 - 45/43
  46. Biểu đồ trạng thái: State Transition Diagram Add student [count < 10] Add Student / Initialization Set count = 0 Open do: Initialize course entry: Register student exit: Increment count Cancel Cancel [count = 10] Canceled do: Notify registered students Closed Cancel do: Finalize course Phân tích thiết kế hướng đối tượng Bài 2 - 46/43
  47. Biểu đồ hoạt đông -Activity Diagram  Mô tả luồng thông tin từ 1 hoạt động này đến 1 họat động khác  Mô tả cài nhìn động về hệ thống Phân tích thiết kế hướng đối tượng Bài 2 - 47
  48. Biểu đồ thành phần - Component Diagram  Chỉ ra tổ chức và sự phụ thuộc giữa các thành phần của hệ thống  Các biểu đồ Thành phần mô tả cái nhìn tĩnh về sự cài đặt của hệ thống  Developed by architects and programmers Phân tích thiết kế hướng đối tượng Bài 2 - 48
  49. Biểu đồ thành phần - Component Diagram Register.exe Billing.exe Billing System People.dll User Course.dll Course Student Professor Course Course Offering Phân tích thiết kế hướng đối tượng Bài 2 - 49
  50. Biểu đồ triển khai- Deployment Diagram  Mô tả các nút và các thành phần của hệ thống tại thời điểm thực thi  Developed by architects, networking engineers, and system engineers Phân tích thiết kế hướng đối tượng Bài 2 - 50
  51. Biểu đồ triển khai- Deployment Diagram Registration Database Main Library Building Dorm Phân tích thiết kế hướng đối tượng Bài 2 - 51
  52. Biểu đồ triển khai-Deployment Diagram Client Dynamic HTML, JavaScript, Java plug-ins, source code enhancements Server Java, C, C++, JavaScript, CGI Application Java, C, C++, JavaBeans, Server CORBA, DCOM Fulfillment Financial Inventory RDBMS Native languages System System System Server Phân tích thiết kế hướng đối tượng Bài 2 - 52
  53. Góc nhìn và biểu đồ Logical View Implementation View (Góc (Góc nhìn logic) nhìn cài đặt) BD gói, thành phần Biểu đồ lớp, bd đối tượng Use Case View - Biểu đồ ca sử dụng Deployment View (Góc Process View (Góc nhìn hành vi) nhìn triển khai) BD trạng thái, hoạt động, tuần tự, cộng tác BD triển khai Performance System topology Scalability Delivery, installation Throughput Communication Phân tích thiết kế hướng đối tượng Bài 2 - 53
  54. Tóm tắt  Các vấn đề đã nghiên cứu  Khái niệm mô hình, mô hình hóa trực quan  Khái quát về Ngôn ngữ mô hình hóa thống nhất  Thí dụ sử dụng các biểu đồ của UML Phân tích thiết kế hướng đối tượng Bài 2 - 54/43