Bài giảng Giới thiệu về ngôn ngữ mô hình hóa UML
Tóm tắt Bài giảng Giới thiệu về ngôn ngữ mô hình hóa UML: ...quan hệ Dependence Association Inheritance Realisation 9 biểu đồ của UML Biểu đồ Ca sử dụng Lớp Trạng thái Hoạt động Cài đặt Đối tượng Tuần tự Tương tác Thành phần 4+1 cách nhìn một hệ thống Cách nhìn ca sử dụng Cách nhìn logic Cách nhìn thực thi Cách nhìn cài đặt Cách nhìn tiến... Hiểu và tổ chức lại yêu cầu của khách hàng Khi xác định và tổ chức lại, những yêu cầu này: Định nghĩa toàn hệ thống cần mô hình hóa Cho phép xác định các chức năng chính của hệ thống Biểu diễn yêu cầu Hiểu về ngữ cảnh của hệ thống bằng cách định nghĩa một mô hình theo lĩnh...ười sử dụng hệ thống đăng ký được cấp passwords để vào máy Use case Diagram Biểu đồ ca sử dụng (Use case diagrams) được dùng để hiển thị quan hệ giữa tác nhân và các use cases Student Registrar Professor Maintain Schedule Maintain Curriculum Request Course Roster Billing System Use c...
Giới thiệu về ngôn ngữ mô hình hóa UML Tại sao cần mô hình hóa? Một mô hình là sự đơn giản hóa thực tế, nó cho phép hiểu rõ hơn hệ thống cần phát triển Ngoài ra, nó còn cho phép: Hiển thị hệ thống như nó vốn có hoặc nó cần đạt tới Kiểm chứng hệ thống bởi khách hàng Cung cấp những chỉ dẫn để xây dựng hệ thống Tài liệu hóa hệ thống Các nguyên tắc của mô hình hóa Việc chọn mô hình nào để tạo lập có ảnh hưởng sâu sắc đến cách giải quyết vấn đề và cách hình thành các giải pháp Mỗi mô hình biểu diễn hệ thống với mức độ chính xác khác nhau Mô hình tốt nhất phải là mô hình phù hợp với thế giới thực Không mô hình nào là đầy đủ. Mỗi hệ thống thường được tiếp cận thông qua tập mô hình gần như độc lập nhau. Lợi ích của mô hình hóa hướng đối tượng? Tăng tính độc lập của mô hình với các chức năng yêu cầu Có thể thay đổi hoặc thêm bớt các chức năng mà mô hình đối tượng không thay đổi Gần hơn với thế giới thực Ví dụ về mô hình Thế giới thực Ôtô Con người SáchĐọc Làm chủ Mô hình Thế giới thực Mô hình: Quả địa cầu học sinh Mô hình hóa ngôi nhà Unified Modeling Language OMT-2 James Rumbaugh Booch´93 Grady Booch OOSE Ivar Jacobson UML 0.8 UML 0.9 OOPSLA 95 UML 1.0 UML 1.1 UML 1.2 UML 1.3 UML 1.4 UML 1.5 UML 2.0 Các phương pháp khác Đề nghị chuẩn OMG 1997 Chuẩn OMG 1997 2005 2003 2001 1998 Mục đích của UML Giới thiệu toàn bộ hệ thống Thành lập một sự liên quan giữa các khái niệm (concepts) và các artefacts thực hiện được Tạo ra một ngôn ngữ sử dụng được cùng lúc với con người và máy móc Tìm kiếm một ngôn ngữ chung: Sử dụng được với tất cả các phương pháp Đáp ứng tất cả các giai đoạn trong phát triển phần mềm Tích hợp tất cả các kỹ thuật thực hiện UML là một ngôn ngữ UML không phải là một phương pháp UML là một ngôn ngữ mô hình hóa đối tượng UML đã được công nhận bởi tất cả các phương pháp đối tượng UML được sử dụng chung trong cộng đồng CNTT, đó là một chuẩn. UML là một ngôn ngữ dùng để Hiển thị Mỗi ký pháp đồ họa mang một ngữ nghĩa Đặc tả Một cách chính xác và toàn diện Xây dựng Các lớp, các quan hệ có thể xây dựng một cách tự động Làm tài liệu Các biểu đồ khác nhau, các ghi chú, ràng buộc được giới thiệu trong tài liệu UML và các lĩnh vực được sử dụng Hệ thống thông tin các doanh nghiệp Ngân hàng và các dịch vụ tài chính Viễn thông Giao thông Quân sự và hàng không Khoa học Các ứng dụng phân tán trên web 3 phần tử cơ bản của UML 1. Các khối cơ bản để xây dựng Các thực thể sử dụng Các khái niệm liên quan Các biểu đồ 2. Các luật để sử dụng các khối cơ bản Các luật ngữ nghĩa Các luật trình bày 3. Các cơ chế chung Đặc tả Trình bày Mở rộng mô hình Thực thể cấu trúc Thực thể hành vi Thực thể nhóm Thực thể chỉ dẫn Các thực thể cấu trúc Person name : String age : Integer eat() talk() Class Comparable Interface Borrow Use case Các thực thể hành vi call Message borrowed State Ký pháp quan hệ Dependence Association Inheritance Realisation 9 biểu đồ của UML Biểu đồ Ca sử dụng Lớp Trạng thái Hoạt động Cài đặt Đối tượng Tuần tự Tương tác Thành phần 4+1 cách nhìn một hệ thống Cách nhìn ca sử dụng Cách nhìn logic Cách nhìn thực thi Cách nhìn cài đặt Cách nhìn tiến trình Lớp, đối tượng Tương tác, chuyển trạng thái Gói, phương thức, luồng Luồng, tiến trình nhiệm vụ, tương tác Ca sử dụng, tác nhân, lớp Biểu đồ cài đặt, node, module Cách nhìn ca sử dụng Nhìn hệ thống bởi những người dùng cuối Nhóm các hành vi của hệ thống theo Độ ưu tiên: cực kỳ quan trọng, quan trọng, phụ Các mục đích khác về chiến thuật và ràng buộc Cách nhìn logic Phân rã hệ thống theo hướng đối tượng Xác định các lớp và đối tượng Nhóm vào các gói Kết nối bằng các quan hệ Sự trừu tượng, đa hình, đồng nhất Thực hiện các kịch bản của các ca sử dụng Cách nhìn tiến trình Phân rã dựa trên nhiệm vụ và tiến trình Nhóm thành các nhóm của các tiến trình Thông tin trên các đặc điểm sau: Tính sẵn sàng, tính tin cậy Tính tích hợp, hiệu năng Điều khiển Cách nhìn thực thi Phân rã theo module Nhóm thành các module bằng các gói Tổ chức thành các hệ thống con theo định mức để: Tăng độ chắc chắn Giảm sự kết dính và nhìn thấy Các đặc điểm: Dễ dàng phát triển Tiềm năng tái sử dụng Quản lý cấu hình Cách nhìn cài đặt Phân rã theo nút thực hiện Vai trò của một nút Liên quan giữa các nút Thông tin trên các đặc điểm sau: Hiệu năng, tính sẵn sàng Cài đặt, bảo trì 3 thành phần của mô hình hóa Mô hình chức năng Mô hình cấu trúc Mô hình thời gian Hệ thống làm gì Hệ thống phản ứng với cái gì Thứ tự giữa các hành động trong hệ thống Biểu đồ ca sử dụng Biểu đồ lớp và đối tượng Biểu đồ tuần tự Biểu đồ tương tác Biểu đồ trạng thái Biểu đồ hoạt động Các giai đoạn của mô hình hóa Biểu diễn yêu cầu Phân tích Đặc tả Kiểm thử Coding Vai trò của biểu diễn yêu cầu Cho phép hiểu rõ hơn về hệ thống Hiểu và tổ chức lại yêu cầu của khách hàng Khi xác định và tổ chức lại, những yêu cầu này: Định nghĩa toàn hệ thống cần mô hình hóa Cho phép xác định các chức năng chính của hệ thống Biểu diễn yêu cầu Hiểu về ngữ cảnh của hệ thống bằng cách định nghĩa một mô hình theo lĩnh vực và theo ngành nghề Rà soát lại các yêu cầu chức năng và định nghĩa lại bằng các ca sử dụng Ghi lại những ràng buộc, yêu cầu phi chức năng Các yêu cầu phi chức năng Các ràng buộc tranh chấp Các ràng buộc về thời gian phản ứng Các ràng buộc phân tán Các ràng buộc về hiệu năng Các ràng buộc về chia sẻ Ký pháp đồ họa Mục đích: Mô hình hóa các đối tượng, quan hệ giữa các đối tượng, tương tác với hệ thống Hỗ trợ giao tiếp giữa người phân tích, khách hàng và người sử dụng 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 Đóng góp cho ngôn ngữ UMLMeyer Before and after conditions Harel Statecharts Gamma, et al Frameworks and patterns, HP Fusion Operation descriptions and message numbering Embley Singleton classes and high-level view Wirfs-Brock Responsibilities Odell Classification Shlaer - Mellor Object lifecycles Rumbaugh Object Modeling Technique Booch Booch method Jacobson Object-Oriented Software Engineering 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: Giáo vụ (Registrar) lập chương trình giảng dạy (curriculum) cho 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) 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 Use case Diagram Biểu đồ ca sử dụng (Use case diagrams) được dùng để hiển thị quan hệ giữa tác nhân và các use cases Student Registrar Professor Maintain Schedule Maintain Curriculum Request Course Roster Billing System Use case Diagram Xác định các chức năng theo nhìn nhận của người sử dụng Xây dựng ở giai đoạn ban đầu Mục đích Xác định ngữ cảnh của hệ thống Nắm bắt các yêu cầu của hệ thống Kiểm chứng kiến trúc hệ thống Hướng dẫn thực thi và sinh test cases Phát triển bởi người phân tích và chuyên gia trong lĩnh vực Sequence Diagram Biểu đồ tuần tự (sequence diagram) biểu diễn sự tương tác giữa các đối tượng theo sự sắp xếp về thời gian : Student registration form registration manager math 101 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) math 101 section 1 Collaboration Diagram Biểu đồ cộng tác (collaboration diagram) hiển thị sự tương tác giữa các đối tượng : Registrar course form : CourseForm theManager : CurriculumManager aCourse : Course 1: set course info 2: process 3: add course 4: new course Class Diagram Biểu đồ lớp (class diagram) biểu diễn sự tồn tại của các lớp và quạn hệ giữa chúng RegistrationForm RegistrationManager Course Student CourseOffering Professor addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) major location open() addStudent(StudentInfo) tenureStatus ScheduleAlgorithm 1 0..* 0..* 1 1 1..* 4 3..10 0..4 1 Object Diagram Biểu diễn thực thể và liên kết Được xây dựng ở giai đoạn phân tích và thiết kế Mục đích Minh họa cấu trúc dữ liệu/đối tượng Đặc tả snapshots State Transition Diagram Biểu đồ chuyển trạng thái (State transition diagrams) dùng để biểu diễn sự chuyển đổi giữa các trạng thái trong đối tượng entry: Register student Canceled Initialization Open exit: Increment count Closed do: Initialize course do: Finalize course do: Notify registered students Add Student / Set count = 0 Add student [count < 10] [count = 10] Cancel Cancel Cancel Activity Diagram Biểu diễn các luồng công việc Hướng hoạt động Component Diagram Biểu đồ thành phần (Component diagrams) biểu diễn sự tổ chức và phụ thuộc giữa các thành phần phần mềm Course Course Offering Student Professor Course.dll People.dll Course User Register.exeBilling.exe Billing System Deployment Diagram Biểu đồ triển khai (deployment diagram) biểu diễn cấu hình của các phần tử thực hiện tại run-time và các tiến trình phần mềm ở trong nó Registration Database Library Dorm Main Building Deployment Diagram Client Server Application Server Fulfillment System Financial System Inventory System RDBMS Server Dynamic HTML, JavaScript, Java plug-ins, source code enhancements Java, C, C++, JavaScript, CGI Java, C, C++, JavaBeans, CORBA, DCOM Native languages Question?
File đính kèm:
- bai_giang_gioi_thieu_ve_ngon_ngu_mo_hinh_hoa_uml.pdf