Phân tích thiết kế hệ thống UML - Nguyễn Ngọc Tú

pdf 100 trang phuongnguyen 8900
Bạn đang xem 20 trang mẫu của tài liệu "Phân tích thiết kế hệ thống UML - Nguyễn Ngọc Tú", để 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_he_thong_uml_nguyen_ngoc_tu.pdf

Nội dung text: Phân tích thiết kế hệ thống UML - Nguyễn Ngọc Tú

  1. Phân tích thiết kế hệ thống UML SSAD - UML Gv: Nguyễn Ngọc Tú Email: nntu@hoasen.edu.vn
  2. UML là gì? „ Unified Modeling Language (UML) là ngôn ngữ giúp „ đặc tả „ trực quan hóa „ xây dựng „ làm sưu liệu các artifact của một hệ thống phần mềm NNTu Công Nghệ Phần Mềm - W2007 2
  3. Lịch sử của UML NNTu Công Nghệ Phần Mềm - W2007 3
  4. Đầu vào củaUML Booch Rumbaugh Jacobson Fusion Meyer Operation descriptions, Before and after Message numbering conditions Embley Harel Singleton classes, State charts High-level view Gamma, et.al Wirfs-Brock Frameworks, patterns, Responsibilities notes Shlaer - Mellor Odell Object Lifecycles Classification NNTu Công Nghệ Phần Mềm - W2007 4
  5. UML cung cấp các lược đồ chuẩn State StateState DiagramsDiagramsStateClass Use-Case DiagramsDiagramsClass Use-CaseUse-Case DiagramsDiagrams State DiagramsDiagramsUse-CaseUse-Case StateState Use-CaseUse-Case DiagramsUse-Case DiagramsObjectState Use-CaseUse-Case DiagramsDiagrams DiagramsDiagramsObject DiagramsDiagramsActivity Diagrams DiagramsDiagrams DiagramsDiagramsActivity Diagrams DiagramsDiagrams Scenario State ScenarioScenario StateState DiagramsDiagramsScenarioSequence DiagramsDiagramsStateState DiagramsDiagramsSequence DiagramsDiagramsState DiagramsDiagrams Models DiagramsDiagrams Scenario Component Scenario ComponentComponent DiagramsScenarioScenario DiagramsComponentDiagramsComponent DiagramsCollaborationCollaboration DeploymentDeployment ComponentDiagramsDiagrams DiagramsDiagrams Diagrams DiagramsDiagrams DiagramsDiagrams Diagrams NNTu Công Nghệ Phần Mềm - W2007 5
  6. Ví dụ : Use-Case Hệ thống Đăng Ký học phần ở một Trường ĐH Register for Courses Student Select Courses to Teach Course Catalog Professor Maintain Professor Information Maintain Student Information Registrar Close Registration Billing System NNTu Công Nghệ Phần Mềm - W2007 6
  7. Ví dụ lược đồ Class Hệ thống Đăng Ký học phần ở một Trường ĐH > > MaintainScheduleForm MainForm 1 0 1 // select maintain schedule() + // open() + // select 4 primary and 2 alternate offerings() 1 1 > > 1 0 * CourseCatalogSystem RegistrationController // get course offerings() // add courses to schedule() // get course offerings () 0 1 1 > Schedule // create with offerings() NNTu Công Nghệ Phần Mềm - W2007 7
  8. Ví dụ: lược đồ tuần tự Dùng biểu đồ trình tự hệ thống: HĐKM Thầy giáo đăng nhập mật khẩu y/c chọn học kỳ Kiểm tra mật khẩu chọn một học kỳ y/c chọn việc IF ‘thêm’ được chọn C-1:Thêm một lớp giảng IF ‘bỏ’ được chọn C-2:Bỏ một lớp giảng IF ‘xem’ được chọn C-3:Xem một lịch biểu IF ‘in’ được chọn C-4:In một lịch biểu IF ‘ra’ được chọn Kết thúc NNTu Công Nghệ Phần Mềm - W2007 8
  9. Các Artifact then chốt Use-Case Class Diagram State Diagram add file Diagram DocumentList FileMgr Document add( ) name : int delete( ) fetchDoc( ) docid : int sortByName( ) numField : int add file [ numberOffile==MAX ] / Writing get( ) flag OFF open( ) read() fill the close( ) code FileList read( ) sortFileList( ) Openning fList create( ) Use-Case 1 fillDocument( ) add( ) delete( ) 1 close file Actor A Actor B close file Closing Reading Use-Case 2 rep Repository File (from Persistence) GrpFile > read( ) name : char * = 0 Customer readDoc( ) read( ) name readFile( ) open( ) create( ) fillFile( ) addr receive() Domain Use-Case 3 withdraw() fetch() Deployment send() Expert UI Diagram MFC Class DocumentApp ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼-¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö RogueWave DocumentList Windows95 Repository Window95 Persistence 9: sortByName ( ) Windows95 global ¹®¼-°ü¸® Ŭ¶óÀ̾ðÆ®.EXE FileManager ¹®¼-°ü¸® ¾ÖÇø´ mainWnd : MainWnd Windows NT 1: Doc view request ( ) L Document Solaris 2: fetchDoc( ) ¹®¼-°ü¸® ¿£Áø.EXE 4: create ( ) gFile : GrpFile Package Alpha 8: fillFile ( ) UNIX ÀÀ¿ë¼-¹ö.EXE Windows NT user : »ç¿ëÀÚ GraphicFile IBM Mainframe fileMgr : FileMgr File FileList 3: create ( ) Diagram User Interface 6: fillDocument ( ) µ¥ÀÌŸº£À̽º¼-¹ö 7: readFile ( ) 5: readDoc ( ) Definition document : Document repository : Repository Forward Engineering(Code Generation) Collaboration Diagram Component and Diagram Reverse Engineering mainWnd fileMgr : document : gFile repository user FileMgr Document ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦ 1: Doc view request ( ) »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. 2: fetchDoc( ) 3: create ( ) 4: create ( ) Source Code edit, compile, debug, link 5: readDoc ( ) È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â 6: fillDocument ( ) ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼- °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. 7: readFile ( ) 8: fillFile ( ) È-¸é °´Ã¼´Â ÀоîµéÀÎ 9: sortByName ( ) °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡ º¸¿©ÁØ´Ù. Sequence Diagram Executable System NNTu Công Nghệ Phần Mềm - W2007 9
  10. Qui trình là gì? Một qui trình xác định Ai làm Gì, Khi nào và Như thế nào để đạt được mục đích cuối cùng. Trong Công nghệ phần mềm đích là xây dựng một sản phẩm phần mềmhoặc nâng cấp mộtsản phẩm có sẵn Các yêu cầu Software Engineering Hệ thống mới/thay đổi Process mới/thay đổi NNTu Công Nghệ Phần Mềm - W2007 10
  11. Một qui trình hiệu quả „ Cung cấp các chỉ dẫn để phát triển một cách hiệu quả một phần mềm có chất lượng „ Giảm thiểu rủi ro tăng khả năng tiền định „ Nắm giữ và thể hiện các kinh nghiệm tốt ‰ Học từ các kinh nghiệm khác ‰ Mentor on your desktop ‰ Mở rộng các tài liệu huấn luyện (Extension of training material) „ Promotes common vision and culture „ Cung cấp hướng dẫn về cách dùng các công cụứng dụng „ Chuyển tải thông tin trực tuyến, chỉ dẫn chi tiết NNTu Công Nghệ Phần Mềm - W2007 11
  12. RUP chuyển tải các kinh nghiệm RUP mô tả cách ứng dụng hiệu quả 6 kinh nghiệm quí dành cho quá trình phát triển phần mềm Phát triển theo vòng lặp Sử dụng Quản trị Kiểm định Quản trị kiến trúc Mô hình hóa các yêu cầu trực quan chất lượng các yêu cầu Component Kiểm soát các thay đổi trong hệ thống NNTu Công Nghệ Phần Mềm - W2007 12
  13. RUP định hướng bởi các Use-Case Một actor là một người hoặc một cái gì đó Check Balance Customer bên ngoài hệ thống tương tác với hệ thống Một Use-Case là một chuỗi các hành động Withdraw Money mà hệ thống thực hiện mang lại một kết Các Use-Case của một Cash Machine quả quan sát được đối với một actor. NNTu Công Nghệ Phần Mềm - W2007 13
  14. Use-Case chứa luồng các sự kiện Luồng các sự kiện (Flow of events) củaUse-Case rút tiền (Withdraw Money): 1. Use-Case bắt đầu khi khách hàng đưa thẻ tín dụng vào. Hệ thống đọc và thẩm tra thông tin của thẻ. 2. Hệ thông nhắc nhập số PIN. Hệ thống kiểm tra số PIN. 3. Hệ thống hỏi tác vụ nào khách hàng muốn thực hiện. Khách hàng chọn “Rút tiền.” 4. Hệ thống hỏi số lượng. Khách hàng nhập số lượng. 5. Hệ thống yêu cầu nhập kiểu tài khoản. Khách hàng chọn checking hoặc savings. 6. Hệ thống liên lạc với ATM network . . . NNTu Công Nghệ Phần Mềm - W2007 14
  15. Lợi ích của Use-Case „ Use-Case ngắn gọn, đơn giản và, dễ hiểu đối với ‰ End users, developers, hiểu các yêu cầu chức năng của hệ thống „ Use-Case định hướng nhiều hoạt động trong qui trình: ‰ Tạo và thẩm định mô hình thiết kế (design model) ‰ Định nghĩa các test case và các thủ tục của test model ‰ Qui hoạch các vòng lặp ‰ Tạo sưu liệu cho người dùng ‰ Triển khai hệ thống „ Use-Case giúp đồng bộ hóa nội dung các mô hình (model) khác nhau NNTu Công Nghệ Phần Mềm - W2007 15
  16. RUP là qui trình Architecture-Centric „ Kiến trúc là trọng tâm của các vòng lặp đầu tiên ‰ Xây dựng, thẩm tra, và xđ giới hạncủa kiến trúc tạo thành mục tiêu chính của giai đoạntriển khai (elaboration) „ Prototype của kiến trúc xác nhận tính hợp lệ của kiến trúc và đóng vai trò baseline cho phần còn lại của qui trình phát triển „ Sưu liệu về kiến trúc phần mềm là artifact chính mô tả kiến trúc được chọn „ Các artifact khác kế thứa từ kiến trúc: ‰ Design guidelines bao gồm cách sử dụng pattern và idiom ‰ Cấu trúc sản phẩm ‰ Cấu trúc của đội ngũ phát triển phần mềm NNTu Công Nghệ Phần Mềm - W2007 16
  17. Biểu diễn kiến trúc : Mô hình 4+1 View Logical Implementation View View Analysts/ Programmers Designers End-user Functionality Software management Structure Use-Case View Process Deployment View View System Integrators System Engineering Performance System topology Scalability Delivery, installation Throughput communication NNTu Công Nghệ Phần Mềm - W2007 17
  18. Lợi ích qui trình Architecture-Centric „ Giúp đạt và giữ vững sự kiểm soát tốt dự án, quản lý độ phức tạp của nó, và duy trì sự tích hợp của hệ thống „ Cung cấp khả năng tái sử dụng hiệu quảởnhiều mức độ khác nhau „ Cung cấp nền tảng cho quản lý dự án „ Giúp dễ dàng phát triển theo hướng component-based ‰ Một component đảm trách mộtchức năng rõ ràng trong khuôn khổ mộtkiến trúc được định nghĩa tốt ‰ Một component thích ứng và cung cấp mọt hiện thực hóa vật lý của một tập các giao diện (interface) ‰ Các component tồn tại tương ứng với một kiến trúc cụ thể NNTu Công Nghệ Phần Mềm - W2007 18
  19. Các Phase trong chu kỳ sống Inception Elaboration Construction Transition time RUP có 4 phase: ‰ Inception - Định nghĩa phạm vi của dự án ‰ Elaboration -Lập kế hoạch dự án, mô tả các đặc tính, định ranh giới kiến trúc ‰ Construction –Xây dựng sản phẩm ‰ Transition -Chuyển giao sản phẩm cho người dùng NNTu Công Nghệ Phần Mềm - W2007 19
  20. Các mốc chính đặt tại ranh giới các Phase Inception Elaboration Construction Transition time Lifecycle Lifecycle Initial Operational Product Objective Architecture Capability Release Milestone Milestone Milestone NNTu Công Nghệ Phần Mềm - W2007 20
  21. Các Iteration và Phase Inception Elaboration Construction Transition Preliminary Architect. Architect. Devel. Devel. Devel. Transition Transition Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration Minor Milestones: Releases Một iteration là một chuỗi các hoạt động với một kế hoạch lập sẵn và một tiêu chuẩn lượng giá, có kết quả là một phiên bản release (internal hay external) NNTu Công Nghệ Phần Mềm - W2007 21
  22. Các Workflow chính Business Modeling Business Business Use-Case Model Object Model automated by Requirements Use-Case realized by Model Analysis & Design Design implemented by Model Implementation Implementation verified by Model Test Test Model NNTu Công Nghệ Phần Mềm - W2007 22
  23. Mô hình tích hợp Trong một iteration, thực hiện tất cả các workflow Các Workflow nhóm các công việc một cách logic NNTu Công Nghệ Phần Mềm - W2007 23
  24. Các ký hiệu dùng trong qui trình Một vai trò (role) do Một đơn vị công một người hay một việc mà worker nhóm đảm trách được y/c thực trong tổ chức Activity hiện Worker Describe a Use-Case Use-Case Specifier Một phần thông tin responsible for Artifact đượcsản sinh ra, hiệu chỉnh, hoặc dùng bởimột process Use-Case Use-Case Package NNTu Công Nghệ Phần Mềm - W2007 24
  25. Phân công công việc Resource Worker Activities Paul Designer Define Operations Mary Use-Case Specifier Detail a Use-Case Joe System Analyst Find Actors and Use-Cases Sylvia Implementer Perform Unit Tests Stefan Architect Identify Design Mechanisms Mỗi cá nhân trong dự án được giao vai trò của 1 hay nhiều worker NNTu Công Nghệ Phần Mềm - W2007 25
  26. Workflow mô hình hóa nghiệp vụ Capture a Structure the Find Business Actors Common Business Use-Case Business-Process Vocabulary and Use Cases Model Business Model Analyst Reviewer Detail a Review the Business Use Case Business Use-Case Model Business Detail a Designer Business Worker Find Business Workers and Entities Review the Business Detail a Object Model Business Entity NNTu Công Nghệ Phần Mềm - W2007 26
  27. Workflow xác định yêu cầu Develop Elicit Stakeholder Vision Needs Find Actors and Use Cases Structure the Manage Capture a Use-Case Model Dependencies Common Requirements Vocabulary Reviewer Detail a Use-Case Review Specifier Use Case Requirements User-Interface User-Interface User-Interface Modeling Prototyping Designer Prioritize Architect Use Cases NNTu Công Nghệ Phần Mềm - W2007 27
  28. Workflow phân tích và thiết kế Architectural Analysis Architectural Describe Describe Review theArchitecture Architect Design Concurrency Distribution Architecture Reviewer Use-Case SubsystemDesign Analysis Use-Case Review the Design Design Design Designer Reviewer Class Design Database Database Design Designer NNTu Công Nghệ Phần Mềm - W2007 28
  29. Workflow cài đặt Structure the Architect Implementation Model Plan System Integrate System Integrator Integration System Plan Subsystem Integrate Integration Implement Subsystem Classes Implementer Perform Unit Test Fix a Defect Code Reviewer Review Code NNTu Công Nghệ Phần Mềm - W2007 29
  30. Workflow kiểm chứng ImplementTest PlanTest Evaluate Test Designer Design Test Test Execute Integration Integration Test Tester Execute System System Tester Test Execute Performance Performance Test Tester Design Test Classes Designer and Packages Implement Test Components Implementer and Subsystems NNTu Công Nghệ Phần Mềm - W2007 30
  31. Workflow quản trị dự án Execute Iteration Develop Plan Business Case Identify Risks Develop Evaluate Iteration Iteration Develop Plan Project Plan Staff Project Project Manager Revisit Risk List NNTu Công Nghệ Phần Mềm - W2007 31
  32. Workflow quản trị cấu hình & các thay đổi Establish Product Define Status Reporting Project Change Process & Baselining Requirements Manager Structure Implementation Architect Model Setup Define Workspaces Write Implementation & Build Areas Model CM CM Plan Report Baseline Release Manager Defect Data the Product Subsystems Create Private Check-In/Out Promote Workspaces Configuration Items Any Worker Artifacts Create Integration Build System workspaces Product Integrator NNTu Công Nghệ Phần Mềm - W2007 32
  33. Workflow quản trị môi trường „ Cấu hình quá trình PTPM „ Nâng cao chất lượng quá trình PTPM „ Chọn và thu thập các công cụ „ Tinh chỉnh, bổ sung các công cụ „ Hỗ trợ quá trình phát triển „ Huấn luyện NNTu Công Nghệ Phần Mềm - W2007 33
  34. Khái niệm Guideline, Mentor, và Template „ Guidelines là các luật, gợi ý, và heuristics hỗ trợ cho các hoạt động ‰ Ví dụ, modeling và programming guidelines „ Tool mentors diễn tả các dùng một công cụ cụ thểđể thực hiện một hoạt động hoặc các bước trong 1 HĐ ‰ Ví dụ,xây dựng 1 design model dùng Rational Rose „ Templates là các artifact định nghĩa sẵn ‰ Ví dụ,một Rational SoDA template cho 1 Use-Case Report „ Guidelines, tool mentors và templates giúp dễ dàng ứng dụng qui trình đúng đắn và nhất quán NNTu Công Nghệ Phần Mềm - W2007 34
  35. Các công cụ hỗ trợ Process Workflows Business Modeling Requisite Pro, Rose, SoDA Requirements Requisite Pro, Rose, SoDA Analysis and Design Rose, SoDA, Apex Implementation Rose, Apex, SoDA, Purify, Test SQA TeamTest, Quantify, PerformanceStudio, Deployment SoDA, ClearCase, Supporting Workflows Config. & Change Mgmt. ClearCase, ClearQuest Project Management Unified Process, Microsoft® Project, Environment Unified Process, Rational Tools NNTu Công Nghệ Phần Mềm - W2007 35
  36. Thích nghi hóa một qui trình „ Việc thích nghi một qui trình bao gồm cấu hình và cài đặt qui trình „ Khi cấu hình qui trình, process framework được làm cho thỏa mãn các yêu cầu và ràng buộccủa tổ chức tiếp nhận ‰ Kết quả được ghi nhận trong “Development Case” „ Khi cài đặt qui trình, thực tế của tổ chức được thay đổi để dùng hiệu quả qui trình NNTu Công Nghệ Phần Mềm - W2007 36
  37. Rational Unified Process „ Unified Modeling Language (UML) là ngôn ngữ dùng để đặc tả,trực quan hóa, xây dựng, và làm sưu liệu về các artifact của một hệ thống phần mềm „ Một qui trình phát triển phần mềm định nghĩa Ai làm Gì, Khi nào và Như thế nào để xây dựng một sản phẩm phần mềm „ RUP có 4 phase: Inception, Elaboration, Construction và Transition „ Mỗi phase chấm dứt tại các mốc chính và gồm 1 hay nhiều iteration „ Một iteration là một chuỗi các hoạt động với một kế hoạch lập sẵn và một tiêu chuẩn lượng giá, có kết quả là một phiên bản release NNTu Công Nghệ Phần Mềm - W2007 37
  38. Rational Unified Process „ Một workflow nhóm các hoạt động liên quan với nhau „ Mỗiworkflow được thực hiện trong 1 iteration và cho kết quả là một model được sản sinh theo từng bước „ Một artifact là một phần thông tin được sản sinh ra, hiệu chỉnh, hoặc dùng bởi một process „ Một worker là một vai trò do một các nhân hay 1 nhóm đảm trách trong 1 tổ chức phát triển phần mềm. „ Một activity là một đơn vị công việccóthể được yêu cầu thực hiện NNTu Công Nghệ Phần Mềm - W2007 38
  39. OOD NNTu Công Nghệ Phần Mềm - W2007 39
  40. Hướng đốitượng „ Các nguyên tắc cơ bản củaOO „ Các khái niệm cơ bản củaOO „ Sức mạnh củaOO „ Các cơ chế mô hình hoá cơ bản của UML NNTu Công Nghệ Phần Mềm - W2007 40
  41. Các nguyên tắc cơ bản củaOO Hướng đối tượng p ể ấ n th ng hóa óng gói đơ ượ đ u t Hierarchy Modularity Abstraction ừ Tính Tính Tính phân c Encapsulation Tr NNTu Công Nghệ Phần Mềm - W2007 41
  42. Thế nào là trừu tượng hóa? Người bán hàng Sản phẩm Khách hàng Quản lý được độ phức tạp NNTu Công Nghệ Phần Mềm - W2007 42
  43. Đóng gói (Encapsulation) là gì? „ Che dấu cài đặt bên trong với clients ‰ Clients phụ thuộc vào interface Tăng tính mềm dẻo NNTu Công Nghệ Phần Mềm - W2007 43
  44. Tính đơn thể là gì? „ Phân chia nhỏ một vấn đề phứctạp thành nhiều phần nhỏ, đơn giản hơn quản lý đượcNhận đơn đặt hàng Hệ thống xử lý đơn đặt hàng Thực hiện đơn đặt hàng Tính tiền Quản lý được độ phức tạp NNTu Công Nghệ Phần Mềm - W2007 44
  45. Sự phân cấp (Hierarchy) là gì? Tài sản „ Mức độ trừu tượng hoá Tăng mức độ trừu tượng Tài khoản Chứng khoán Bất động sản Tài khoản Tài khoản Cổ phiếu Trái phiếu Tiết kiệm Thanh toán Giảm mức độ Các phần tử trên cùng một mức trừu tượng phải có cùng mức độ trừu tượng NNTu Công Nghệ Phần Mềm - W2007 45
  46. Hướng đối tượng „ Các nguyên tắc cơ bản củaOO „ Các khái niệm cơ bản củaOO „ Sức mạnh củaOO „ Các cơ chế mô hình hoá cơ bản của UML NNTu Công Nghệ Phần Mềm - W2007 46
  47. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 47
  48. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 48
  49. Object là gì? „ Một cách không hình thức, một đối tượng biểu diễnmột thực thể,dạng vật lý, khái niệm, hoặc phần mềm ‰ Thực thể vật lý Truck ‰ Thực thể khái niệm Chemical Process ‰ Thực thể phần mềm Linked List NNTu Công Nghệ Phần Mềm - W2007 49
  50. Một định nghĩa hiệu quả hơn „ Một đối tượng là một khái niệm, sự trừu tượng, hoặc một vật với giới hạn rõ ràng và có ý nghĩavới một ứng dụng cụ thể „ Một đối tượng có: ‰ Trạng thái ‰ Hành vi ‰ Định danh (Identity) NNTu Công Nghệ Phần Mềm - W2007 50
  51. Biểu diễn đối tượng „ Một đối tượng được biểu diễn bởi một hình chữ nhật với tên được gạch dưới : Professor a+ b= 10 ProfessorClark Chỉ có tên Class Professor Clark ProfessorClark : Professor Chỉ có tên đốitượng Tên class và tên đốitượng NNTu Công Nghệ Phần Mềm - W2007 51
  52. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 52
  53. Classlàgì? „ Class là mô tả của một nhóm đối tượng có chung các thuộc tính (attributes), hành vi (operations), các mối quan hệ và ngữ nghĩa ‰ Một đối tượng là một thể hiện củaclass „ Một class là sự trừu tượng mà trong đó: ‰ Nhấn mạnh các tính chất quan trọng ‰ Bỏ qua các tính chất khác Nguyên tắc OO: Trừu tượng hóa NNTu Công Nghệ Phần Mềm - W2007 53
  54. Ví dụ về Class Class Course Properties Behavior Tên Thêm một sinh viên Địa điểm Huỷ mộtsinhviên a+ b= 10 Thờigian Lấy danh sách giáo sư Số tín chỉ Xác định hếtchỗ chưa Giờ bắt đầu Giờ kết thúc NNTu Công Nghệ Phần Mềm - W2007 54
  55. Biểu diễnClass „ Mộtclassbiểu diễn bằng một hình chữ nhật gồm ba phần Professor a+ b= 10 Professor Clark NNTu Công Nghệ Phần Mềm - W2007 55
  56. Các phần trong một Class „ Một class bao gồm ba phần ‰ Phần đầu chứa tên class ‰ Phần thứ hai cho thấy cấu trúc của lớp (attributes) ‰ Phần thứ ba cho thấy các hành vi của lớp (operations) Tên class Professor name Attributes empID Operations create( ) save( ) delete( ) change( ) NNTu Công Nghệ Phần Mềm - W2007 56
  57. Các lớp đối tượng „ Bạn nhìn thấy có bao nhiêu class? NNTu Công Nghệ Phần Mềm - W2007 57
  58. Quan hệ giữa class và đối tượng „ Một class là một định nghĩa trừu tượng của một đối tượng ‰ Nó định nghĩa cấu trúc và hành vi của mỗi đối tượng trong lớp ‰ Nó được dùng như khuôn mẫu để tạo đối tượng „ Các đối tượng được nhóm thành các class Objects Class Professor Professor Smith Professor Mellon Professor Jones NNTu Công Nghệ Phần Mềm - W2007 58
  59. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 59
  60. Thuộc tính (Attribute) là gì? Object Class Attribute Attribute Value :CourseOffering number = 101 startTime = 900 CourseOffering endTime = 1100 number startTime endTime :CourseOffering number = 104 startTime = 1300 endTime = 1500 NNTu Công Nghệ Phần Mềm - W2007 60
  61. Các khái niệm cơ bản của Hướng đối tượng „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 61
  62. Hành vi (Operation) là gì? CourseOffering Class addStudent deleteStudent getStartTime Operation getEndTime NNTu Công Nghệ Phần Mềm - W2007 62
  63. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 63
  64. Polymorphism là gì? „ Khả năng che dấu nhiều cài đặt khác nhau bên dưới một giao diện duy nhất Nhà SX B Nhà SX A Nhà SX C Nguyên tắc OO: Đóng gói NNTu Công Nghệ Phần Mềm - W2007 64
  65. Interface là gì? „ Interface hình thức hoá polymorphism „ Interface hỗ trợ kiến trúc “plug-and-play” Tube > Shape Pyramid Draw Move Scale Rotate Cube Quan hệ Realization
  66. Biểu diễn Interface Tube Biểudiễnrútgọn Pyramid Shape Cube Biểudiễn chính tắc Tube (Class/Stereotype) > Shape Pyramid Draw Move Scale Rotate Cube NNTu Công Nghệ Phần Mềm - W2007 66
  67. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 67
  68. Component là gì? „ Một phần không tầm thường của hệ thống, gần như độc lập và có thể thay thế được, giữ một chức năng rõ ràng trong hệ thống „ Một component có thể là ‰ Một source code component Nguyên tắc OO: Đóng gói ‰ Một run time components hoặc ‰ Một executable component Source File > > Name Executable Component Name Component Name Interface NNTu Công Nghệ Phần Mềm - W2007 68
  69. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 69
  70. Packagelàgì? „ Một package là một cơ chế để tổ chức các phần tử vào thành các nhóm „ Một phần tử trong mô hình có thể chứa các phần tử khác Nguyên tắc OO: Package Name Tính đơn thể „ Dùng để ‰ Tổ chức mô hình đang phát triển ‰ Một đơn vị trong quản trị cấu hình
  71. Các khái niệm cơ bản „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 71
  72. Subsystem là gì? „ Tổ hợp của một package (có thể chứa các phần tử khác trong mô hình) và một class (có hành vi) „ Hiện thực hoá một hoặc nhiều interface định nghĩa cho hành vi của nó Realization Subsystem > Interface Subsystem Name Interface Nguyên tắc OO: Đóng gói và Tính đơn thể NNTu Công Nghệ Phần Mềm - W2007 72
  73. Subsystem và Component „ Component là thể hiện ở mức vật lý của một khái niệm trừu tượng trong thiết kế „ Subsystem có thể dùng để biểu diễn các component trong thiết kế Design Model Implementation Model > Component Component Name Name Component Component Interface Interface Nguyên tắc OO: Đóng gói và Tính đơn thể NNTu Công Nghệ Phần Mềm - W2007 73
  74. Các khái niệm cơ bản của Hướng đối tượng „ Object „ Class „ Attribute „ Operation „ Interface (Polymorphism) „ Component „ Package „ Subsystem „ Relationships NNTu Công Nghệ Phần Mềm - W2007 74
  75. Các mối quan hệ „ Association (Kết hợp) ‰ Aggregation (Thu nạp/Bao gộp/Tụ hợp) ‰ Composition (Cấu thành) „ Dependency (Phụ thuộc) „ Generalization (Tổng quát hóa) „ Realization (Hiện thực hoá) NNTu Công Nghệ Phần Mềm - W2007 75
  76. Mối quan hệ: Association „ Mô hình hoá một liên kết ngữ nghĩa giữa các class Teân Association Professor Daïy cho University Association Tên Role Class Professor University Employee Employer NNTu Công Nghệ Phần Mềm - W2007 76
  77. Mối quan hệ: Aggregation „ Một dạng đặc biệt của association mô hình hoá mối quan hệ toàn thể-bộ phận giữa một thực thể và các bộ phận của nó Whole Part Student Schedule Aggregation NNTu Công Nghệ Phần Mềm - W2007 77
  78. Mối quan hệ: Composition „ Một dạng aggregation có tính sở hữu cao và cùng chu kỳ sống ‰ Các bộ phận không thể sống lâu hơn thực thể Whole Part Student Schedule Composition NNTu Công Nghệ Phần Mềm - W2007 78
  79. Association: Bản số và Chiều „ Bản số xác định số đối tượng tham gia vào một mối quan hệ ‰ Số các thể hiện của một class quan hệ vớiMỘTthể hiện của một class khác ‰ Được chỉ ra ở mỗi đầu của quan hệ association „ Association và aggregation mặc định là hai chiều, nhưng người ta thường giới hạn theo một chiều ‰ Mũi tên được thêm vào để chỉ chiều của mối quan hệ NNTu Công Nghệ Phần Mềm - W2007 79
  80. Association: Bản số „ Không xác định 1 „ Chỉ một 0 * „ Không hoặc nhiều * 1 * „ Một hoặc nhiều 0 1 2 4 „ Không hoặc một 2, 4 6 „ Khoảng được chỉ định „ Các khoảng không liên tục NNTu Công Nghệ Phần Mềm - W2007 80
  81. Ví dụ:Bản số và Chiều Multiplicity Student 1 0 * Schedule Navigation NNTu Công Nghệ Phần Mềm - W2007 81
  82. Mối quan hệ: Dependency „ Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử này có thể gây ra thay đổi ở phần tử kia „ Quan hệ “sử dụng”, không cấu trúc Client Supplier Component Class Client Supplier Package Dependency relationship ClientPackage SupplierPackage Dependency relationship NNTu Công Nghệ Phần Mềm - W2007 82
  83. Mối quan hệ: Generalization „ Quan hệ giữa các class trong đómột lớp chia sẻ cấu trúc và/hoặc hành vi của một hoặc nhiều class khác „ Xác định một sự phân cấp các mức độ trừu tượng trong đómột subclass kế thừa từ một hoặc nhiều superclass ‰ Đơn kế thừa ‰ Đa kế thừa „ Generalization là quan hệ “là một dạng của”
  84. Ví dụ: Đơn kế thừa „ Một class kế thừa từ một class khác Tổ tiên Account balance name Superclass number (cha) Withdraw() CreateStatement() Generalization Relationship Checking Savings Subclasses Withdraw() GetInterest() Withdraw() Hậuduệ NNTu Công Nghệ Phần Mềm - W2007 84
  85. Ví dụ: Đa kế thừa „ Một class kế thừa từ nhiềuclasskhác FlyingThing Animal Đakêthừa Airplane Helicopter Bird Wolf Horse Chỉ sử dụng đa kế thừa khi thật cần, và luôn phải cẩn thận! NNTu Công Nghệ Phần Mềm - W2007 85
  86. Cái gì được kế thừa? „ Một subclass kế thừa các thuộc tính, hành vi và các mối quan hệ từ cha nó „ Một subclass có thể: ‰ Bổ sung thuộc tính, hành vi và các mối quan hệ ‰ Định nghĩa lại các hành vi (nên cẩn thận!) „ Các thuộc tính, hành vi và các mối quan hệ chung được đặt ở mức cao nhất có thể trong cấu trúc phân cấp Sự kế thừa làm nổi bật các điểm tương đồng giữa các class
  87. Ví dụ: Cái gì được kế thừa GroundVehicle owner Person Superclass weight (cha) licenseNumber 0 * 1 register( ) generalization Car Truck Trailer Subclass size tonnage getTax( ) NNTu Công Nghệ Phần Mềm - W2007 87
  88. Mối quan hệ: Realization „ Một classifier đóng vai trò một hợp đồng mà một classifier khác đồng ý thực hiện „ Xuất hiện giữa: ‰ Các Interface và các classifier hiện thực chúng Class Component Subsystem Interface Interface Interface Dạng tắt ‰ Các Use case và các collaboration hiện thực chúng Dạng chính tắc Use Case Use-Case Realization NNTu Công Nghệ Phần Mềm - W2007 88
  89. Giới thiệu về Hướng đối tượng: Các chủ đề „ Các nguyên tắc cơ bản củaOO „ Các khái niệm cơ bản củaOO „ Sức mạnh củaOO „ Các cơ chế mô hình hoá cơ bản của UML NNTu Công Nghệ Phần Mềm - W2007 89
  90. Sức mạnh của Hướng đối tượng „ Một mô hình chung „ Có tính dễ dùng lại „ Mô hình phản ánh chính xác thế giơi thực ‰ Mô tả chính xác hơn các tập dữ liệu và các xử lý ‰ Được phân rã dựa trên các phân chia tự nhiên ‰ Dễ hiểu và dễ bảo trì „ Tính ổn định ‰ Một thay đổi nhỏ trong yêu cầu không gây ra sự thay đổi lớn trong hệ thống đang phát triển
  91. Ví dụ: Sales Order System Đặthàng Sảnxuất Vậnchuyểnbằng
  92. Class Diagram của ví dụ “bán hàng” Sale seller buyer item sold shipping mechanism SalespersonCustomer Product Vehicle Corporate Individual Truck Train
  93. Hiệu ứng của sự thay đổi yêu cầu Giả sử bạncầnphương tiệnvận chuyểnmới Sale seller buyer item sold shipping mechanism SalespersonCustomer Product Vehicle Corporate Individual Truck Train Airplane Việc thay đổi liên quan đến việc thêm 1 subclas mới
  94. Hướng Đối Tượng „ Các nguyên tắc cơ bản củaOO „ Các khái niệm cơ bản củaOO „ Sức mạnh củaOO „ Các cơ chế mô hình hoá cơ bản của UML NNTu Công Nghệ Phần Mềm - W2007 94
  95. Các khuôn mẫu (Stereotype) „ Phân lớp và mở rộng các phần tử trong hệ thống ký hiệuUML „ Định nghĩa một phần tử của mô hình mới dựa trên một phần tử khác „ Có thể áp dụng cho mọi phần tử mô hình „ Được biểu diễn với tên đặt trong dấu > hoặcbằng các icon khác > MyBoundaryClass MyBoundaryClass NNTu Công Nghệ Phần Mềm - W2007 95
  96. Ví dụ: Stereotype > > > DesignClass > Processor #1 Processor #1 NNTu Công Nghệ Phần Mềm - W2007 96
  97. Các ghi chú (note) „ Có thể đặt ghi chú cho mọi phần tử UML „ Ghi chú dùng để thêm thông tin cho các lược đồ „ Nó là hình chữ nhật bị bẻ góc „ Ghi chúcóthể móc nối với một phần tử bằng một đường đứt nét There can be up to one MaintainScheduleForm per MaintainScheduleForm user session.
  98. Các giá trị đính (Tagged Values) „ Là sự mở rộng của các thuộc tính hoặc của các phần tử UML „ Là một số thuộc tính được định nghĩa sẵn bởiUML ‰ Persistence ‰ Location (chẳng hạn client, server) „ Là các thuộc tính có thể được tạo bởi các nhà mô hình hoá UML phục vụ cho mục đích bất kỳ PersistentClass {persistence} anObject : ClassA {location=server}
  99. Các ràng buộc (Constraints) „ Hỗ trợ việc thêm các luật mới hoặc hiệu chỉnh các luật đang tồn tại Member 1 Professor Department 1 * {subset} Department Head 1 1 NNTu Công Nghệ Phần Mềm - W2007 99
  100. Q/A NNTu Công Nghệ Phần Mềm - W2007 100