Bài giảng Phân tích thiết kế hướng đối tượng - Vũ Thị Dương - Bài 2: Giới thiệu ngôn ngữ mô hình hóa thống nhất
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)
các mô phỏng Phân tích thiết kế hướng đối tượng Bài 2 - 23/43 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 Phân tích thiết kế hướng đối tượng Bài 2 - 25/43 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 - 26/43 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 - 27/43 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 - 28/43 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 - 29/43 Models and Diagrams Use Case Diagrams Scenario DiagramsScenario DiagramsCollaboration Diagrams Component Diagrams Deployment Diagrams Object Diagrams Scenario DiagramsScenario DiagramsStatechart Diagrams Sequence Diagrams Class Diagrams Activity Diagrams Models Phân tích thiết kế hướng đối tượng Bài 2 - 30/43 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 - 31/43 Kiến trúc hệ thống UML Conceptual Physical Logical View (Góc nhìn logic) End-user Functionality Implementation View (Góc nhìn cài đặt) Programmers Software management Process View (Góc nhìn quá trình) Performance Scalability Throughput System integrators Deployment View (Góc nhìn triển khai) System topology Delivery, installation Communication System engineering Use Case View 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 Phân tích thiết kế hướng đối tượng Bài 2 - 33/43 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 - 34/43 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 - 35/43 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 - 36/43 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 - 37/43 Biểu đồ ca sử dụng Student Registrar Professor Maintain Schedule Maintain Curriculum Request Course Roster Billing System Phân tích thiết kế hướng đối tượng Bài 2 - 38/43 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 - 39/43 Biểu đồ tuần tự : 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 Phân tích thiết kế hướng đối tượng Bài 2 - 40/43 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 - 41/43 Biểu đồ tương tác- Collaboration Diagram : Registrar course form : CourseForm theManager : CurriculumManager aCourse : Course 1: set course info 2: process 3: add course 4: new course Phân tích thiết kế hướng đối tượng Bài 2 - 42/43 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 - 43/43 Biểu đồ lớp- Class Diagram 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 Phân tích thiết kế hướng đối tượng Bài 2 - 44/43 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 - 45/43 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 - 46/43 Biểu đồ trạng thái: State Transition Diagram Initialization Open entry: Register student exit: Increment count Closed Canceled do: Initialize course do: Finalize course do: Notify registered students Add Student / Set count = 0 Add student [count < 10] [count = 10] Cancel Cancel Cancel Phân tích thiết kế hướng đối tượng Bài 2 - 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 - 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 - 49 Biểu đồ thành phần - Component Diagram Course Course Offering Student Professor Course.dll People.dll Course User Register.exe Billing.exe Billing System Phân tích thiết kế hướng đối tượng Bài 2 - 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 - 51 Biểu đồ triển khai- Deployment Diagram Registration Database Library Dorm Main Building Phân tích thiết kế hướng đối tượng Bài 2 - 52 Biểu đồ triển khai-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 Góc nhìn và biểu đồ Phân tích thiết kế hướng đối tượng Bài 2 - 53 Logical View (Góc nhìn logic) Biểu đồ lớp, bd đối tượng Implementation View (Góc nhìn cài đặt) BD gói, thành phần Process View (Góc nhìn hành vi) Performance Scalability Throughput BD trạng thái, hoạt động, tuần tự, cộng tác Deployment View (Góc nhìn triển khai) System topology Delivery, installation Communication BD triển khai Use Case View - Biểu đồ ca sử dụng Phân tích thiết kế hướng đối tượng Bài 2 - 54/43 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
File đính kèm:
- Bài giảng Phân tích thiết kế hướng đối tượng - Vũ Thị Dương - Bài 2 Giới thiệu ngôn ngữ mô hình hóa thống nhất.pdf