Bài giảng Phân tích và thiết kế hệ thống - Chương 2: Các khái niệm cơ bản trong hướng đối tượng
TỔNG QUAN VỀ OOAD
• Mô hình hướng đối tượng giới thiệu một quan điểm lập trình
và phân tích/thiết kế khác hẳn so với trường phái cổ điển (có
cấu trúc)
• Bắt đầu nhen nhóm vào những năm cuối 60s và đến đầu 90s
trở nên rất phổ biến trong công nghiệp phần mềm
• Những ngôn ngữ hướng đối tượng đầu tiên: Smalltalk, Eiffel.
Sau đó xuất hiện thêm: Object Pascal, C++, Java
• Hình thành các phương pháp phân tích/thiết kế hướng đối
tượng
• Chiến lược phát triển phần mềm hướng đối tượng là quan sát
thế giới thực như tập các đối tượng
• Các tính chất của đối tuợng
– Ðối tượng có thể là
• thực thể nhìn thấy được trong thế giới thực (trong pha
phân tích yêu cầu)
• biểu diễn thực thể hệ thống (trong pha thiết kế)
– Ðối tượng có trách nhiệm quản lý trạng thái của mình,
cung cấp dịch vụ cho đối tượng khác khi có yêu cầu dữ
liệu và hàm cùng gói trong đối tượng
• Chức năng hệ thống: các dịch vụ được yêu cầu và cung cấp
như thế nào giữa các đối tượng, không quan tâm đến thay đổi
trạng thái bên trong đối tượng
Tóm tắt nội dung tài liệu: Bài giảng Phân tích và thiết kế hệ thống - Chương 2: Các khái niệm cơ bản trong hướng đối tượng
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Chương II Trần Thị Kim Chi 1 NỘI DUNG 2.1. Tổng quan về phân tích thiết kế hướng đối tượng OOAD (Object-Oriented Analysis and Design) 2.2. Các đặc trưng của phương pháp hướng đối tượng 2.3. Giới thiệu về hướng đối tượng: Object và class, các đặc trưng của class: kế thừa, đóng gói và đa hình 2.4. Unified Modeling Language (UML) 2.5. Tiến trình RUP Trần Thị Kim Chi 2 TỔNG QUAN VỀ OOAD • Mô hình hướng đối tượng giới thiệu một quan điểm lập trình và phân tích/thiết kế khác hẳn so với trường phái cổ điển (có cấu trúc) • Bắt đầu nhen nhóm vào những năm cuối 60s và đến đầu 90s trở nên rất phổ biến trong công nghiệp phần mềm • Những ngôn ngữ hướng đối tượng đầu tiên: Smalltalk, Eiffel. Sau đó xuất hiện thêm: Object Pascal, C++, Java • Hình thành các phương pháp phân tích/thiết kế hướng đối tượng. Trần Thị Kim Chi 3 • Chiến lược phát triển phần mềm hướng đối tượng là quan sát thế giới thực như tập các đối tượng • Các tính chất của đối tuợng – Ðối tượng có thể là • thực thể nhìn thấy được trong thế giới thực (trong pha phân tích yêu cầu) • biểu diễn thực thể hệ thống (trong pha thiết kế) – Ðối tượng có trách nhiệm quản lý trạng thái của mình, cung cấp dịch vụ cho đối tượng khác khi có yêu cầu dữ liệu và hàm cùng gói trong đối tượng • Chức năng hệ thống: các dịch vụ được yêu cầu và cung cấp như thế nào giữa các đối tượng, không quan tâm đến thay đổi trạng thái bên trong đối tượng TỔNG QUAN VỀ OOAD Trần Thị Kim Chi 4 • Các đối tượng được phân thành class – Các đối tượng thuộc cùng lớp đều có đặc tính (thuộc tính và thao tác) chung • Hướng đối tượng tập trung vào cả thông tin và hành vi • Cho khả năng xây dựng hệ thống mềm dẻo, “co dãn” • Phương pháp này dựa trên các nguyên tắc sau – Tính đóng gói – Kế thừa – Ða hình TỔNG QUAN VỀ OOAD Trần Thị Kim Chi 5 TỔNG QUAN VỀ OOAD • Class Model – static structure – what objects are in the system? – how are they related? • Dynamic Model – behavioral aspects – what events occur in the system – when do they occur and in what order? • Functional Model – data transformations – “what” does the system do • Data-Oriented • Action-Oriented • Both Data and Actions Trần Thị Kim Chi 6 TỔNG QUAN VỀ OOAD Dynamic Diagrams Activity Diagrams Models Static Diagrams Sequence Diagrams Communication Diagrams State Machine Diagrams Deployment Diagrams Component Diagrams Object Diagrams Class DiagramsUse-Case Diagrams Trần Thị Kim Chi 7 Các bước phân tích và thiết kế theo hướng đối tượng • Các bước phân tích thiết kế hướng đối tượng dựa trên biểu đồ các ký hiệu UML (Unit Modeling Language). • Các giai đoạn phân tích thiết kế hướng đối tượng – Phân tích hướng đối tượng(Object Oriented Analysis - OOA) – Thiết kế hướng đối tượng(Object Oriented Design – OOD) – Lập trình hướng đối tượng (Object Oriented Programming - OOP) TỔNG QUAN VỀ OOAD Trần Thị Kim Chi 8 PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG (OBJECT ORIENTED ANALYSIS – OOA) • Phát triển mô hình chính xác và súc tích của vấn đề • Ánh xạ các thực thể ở thế giới thực đối tượng trong thiết kế. • Chứa các thực thể trong một vấn đề có thực. • Giữ nguyên mẫu về cấu trúc, quan hệ cũng như hành vi của chúng. • Ví dụ: Cửa hàng bán xe hơi – Thực thể (đối tượng): ? – Tương tác và quan hệ giữa các thực thể: ? Trần Thị Kim Chi 9 PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG (OBJECT ORIENTED ANALYSIS – OOA) Ví dụ: Cửa hàng bán xe hơi, giai đoạn OOA sẽ nhận biết được • Các thực thể: – Khách hàng – Người bán hàng – Phiếu đặt hàng – Phiếu (hoá đơn) thanh toán – Xe hơi • Tương tác và quan hệ giữa các thực thể trên là: – Người bán hàng giới thiệu xe cho khách hàng – Khách hàng chọn xe – Khách hàng viết phiếu đặt xe – Khách hàng trả tiền xe – Người bán hàng giao xe cho khách hàng Trần Thị Kim Chi 10 THIẾT KẾ HƯỚNG ĐỐI TƯỢNG (OBJECT ORIENTED DESIGN – OOD) • Tạo thiết kế dựa trên kết quả của giai đoạn OOA, dựa trên các yêu cầu chức năng, phi chức năng – Yêu cầu chức năng? – Yêu cầu phi chức năng? • Định nghĩa các : – chức năng, thủ tục (operations), – thuộc tính (attributes) – mối quan hệ của một hay nhiều lớp (class) quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi trường phát triển • Đưa ra các biểu đồ: • Tĩnh: biểu thị các lớp và đối tượng • Động: biểu thị tương tác giữa các lớp và phương thức hoạt động chính xác của chúng. • Kết quả của giai đoạn thiết kế là bản thiết kế kiến trúc và thiết kế chi tiết. Trần Thị Kim Chi 11 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OBJECT ORIENTED PROGRAMMING - OOP) • Java • C++ • Smalltalk Trần Thị Kim Chi 12 CÁC ĐẶC TRƯNG CỦA HƯỚNG ĐỐI TƯỢNG Trần Thị Kim Chi 13 Lớp trừu tượng và lớp cụ thể (Abstract and Concrete Class) Trần Thị Kim Chi 14 Abstraction: Giảm độ phức tạp bằng cách che giấu những chi tiết không liên quan. Review: Encapsulation Illustrated – Kết hợp tiến trình và dữ liệu vào một thực thể thống nhất. Nhiều gói kết hợp thành một hệ thống con (subsystem). – Vấn đề cơ bản trong đóng gói (encapsulation) là giao diện thông báo của một đối tượng, phải đảm bảo các giao tiếp được thực hiện thông qua tập các hoạt động được xác định trước. – Dữ liệu bên trong đối tượng chỉ được truy cập bởi các hoạt động của đối tượng Trần Thị Kim Chi 15 Review: Encapsulation Illustrated • Giáo sư Clark có thể dạy 4 lớp trong học kỳ tiếp theo. TakeSabbatical() Professor Clark Name: J Clark Employee ID: 567138 HireDate: 07/25/1991 Status: Tenured Discipline: Finance MaxLoad: 4SetMaxLoad(4) Trần Thị Kim Chi 16 MODULARITY – Chia một hệ thống phức tạp thành các module nhỏ hơn dễ quản lý hơn. Các module này có thể kết hợp để tạo thành hệ thống. – Nhằm mục đích hiểu rõ hơn một hệ thống phức tạp Trần Thị Kim Chi 17 MODULARITY • Tách hệ thống đăng ký khóa học (course Registration System) thành các module. Billing System Course Registration System Course Catalog System Student Management System Trần Thị Kim Chi 18 HIERARCHY Trần Thị Kim Chi 19 • Phân cấp (Hierarchy) • Hệ thống phân cấp tổ chức theo cấu trúc cây • Loại hệ thống phân cấp: • Aggregation hierarchy, • Class hierarchy, • Containment hierarchy, • Inheritance hierarchy, • Partition hierarchy, • Specialization hierarchy, • Type hierarchy HIERARCHY Decreasing abstraction Increasing abstraction Asset RealEstate Savings BankAccount Checking Stock Security Bond Elements at the same level of the hierarchy should be at the same level of abstraction. Trần Thị Kim Chi 20 CÁC KHÁI NIỆM VỀ HƯỚNG ĐỐI TƯỢNG • Lớp và đối tượng, sự đóng bao • Thuộc tính, tác vụ, thông điệp • Bao gộp, thừa kế • Tính đa hình, tính vĩnh cửu Trần Thị Kim Chi 21 ĐỐI TƯỢNG (OBJECT) Đối tượng (Object): • Các đối tượng (Objects) là các thực thể trong thế giới thực như: con người, sự vật, sự kiện mà nó liên quan đến hệ thống đang phân tích. • Hệ thống hướng đối tượng mô tả các thực thể như các đối tượng. – Mỗi đối tượng có các thuộc tính mô tả thông tin của các đối tượng – Mỗi đối tượng cũng có các hành vi, xác định hoạt động của đối tượng. ĐỐI TƯỢNG (OBJECT) Đối tượng (Object): • Mô hình đối tượng quan niệm thế giới bao gồm các đối tượng(object) sinh sống và tương tác với nhau. • Đối tượng bao gồm: – Dữ liệu: mang một giá trị nhất định – Tác vụ: thực hiện một công việc nào đó • VD: Trần Thị Kim Chi 23 Đối tượng (Object): • VD: Person name age weight (Person) (Person) Joe Smith age=39 weight=158 Mary Wilson age=27 weight=121 ĐỐI TƯỢNG (OBJECT) Trần Thị Kim Chi 24 LỚP (CLASS) • Lớp là một nhóm các đối tượng có cùng thuộc tính, hành vi và các mối quan hệ. Đối tượng là một thể hiện của một lớp. • Một lớp xác định các thuộc tính và hành vi của tất cả các đối tượng trong lớp đó. • Mỗi lớp có một tên riêng biệt • Một lớp là sự trừu tượng của chính nó – Nhấn mạnh những đặc điểm liên quan – Che dấu những đặc điểm khác Class Attributes Operations ball radius, weight catch, throw football air pressure pass, kick, hand-off baseball liveness hit, pitch, tag Trần Thị Kim Chi 25 LỚP (CLASS) • Thuộc tính: là một vùng có thể chứa dữ liệu (đơn hoặc tổ hợp) của lớp • Dữ liệu mà thuộc tính thể hiện nằm trong một khoảng giá trị nào đó được xác định bởi kiểu • Giá trị của tất cả các thuộc tính xác định trạng thái của đối tượng – VD: một đối tượng của Circle có (Radius, x, y) = (2, 1.8,6.4) • Thuộc tính có thể bị che dấu hoặc truy xuất được từ bên ngoài: public, protected, private Trần Thị Kim Chi 26 LỚP (CLASS) Professor J Clark Professor - name - employeeID : UniqueID - hireDate - status - discipline - maxLoad + submitFinalGrade() + acceptCourseOffering() + setMaxLoad() + takeSabbatical() + teachClass() Trần Thị Kim Chi 27 LỚP (CLASS) • Thuộc tính có 2 loại tầm vực: – Tầm vực lớp: thuộc tính chung cho tất cả đối tượng của 1 lớp – Tầm vực đối tượng: thuộc tính của từng đối tượng (có thể mang giá trị khác nhau) • Bậc của thuộc tính chỉ ra số lượng dữ liệu mà bản thân thuộc tính có thể nắm giữ: 0..1, 1..*, 1020. Trần Thị Kim Chi 28 LỚP (CLASS) • Tác vụ - hành vi (operation)Là một dịch vụ có thể yêu cầu từ phía đối tượng để thực hiện hành vi • Dấu hiệu nhận dạng của tác vụ (signature) xác định các thông số truyền cũng như kết quả trả về. • Phương thức (method) là phần hiện thực của tác vụ • Tác vụ có thể bị che dấu hoặc truy xuất từ bên ngoài • Tác vụ có thể được override trong các lớp con thừa kế – Trừu tượng(abstract): không có hiện thực • Một số ngôn ngữ lập trình cho phép định nghĩa: – Tác vụ khởi tạo(constructor) – Tác vụ hủy (destructor) • Thông báo (Messages): thông tin gửi cho đối tượng kích hoạt phương thức. Một thông báo là một hàm hoặc một thủ tục gọi từ một đối tượng đến một đối tượng khác. Trần Thị Kim Chi 29 QUAN HỆ GIỮA LỚP VÀ ĐỐI TƯƠNG • Lớp là mô tả tĩnh của đối tượng, đối tượng là một thể hiện (INSTANCE) của lớp tại thời điểm thực thi Trần Thị Kim Chi 30 Professor MeijerProfessor Allen Professor Torpie Professor QUAN HỆ GIỮA CÁC LỚP (CLASS) Class Relationships: Association Aggregation Composition Generalization Dependency Realization OR OR OR Trần Thị Kim Chi 31 LỚP (CLASS) - Association and Links • Thuộc tính Navigability xác định hướng từ lớp liên kết đến lớp mục tiêu bằng cách sử dụng quan hệ kết hợp (association) • Ví dụ: kết hợp giữa Schedule và Course Offering là navigable theo cả 2 hướng • Schedule cần biết Course Offering được gán vào Schedule. • Ngược lại, Course Offering cần phải biết Schedules trong nó. RegistrationController CourseOfferingSchedule LỚP (CLASS) - Association and Links • Quan hệ ngữ nghĩa giữa 2 hay nhiều lớp xác định kết nối giữa các giữa các điển hình của hai lớp đó. Country name (Country) Canada City name has-capital (City) Ottawa has-capital (Country) France (City) Paris has-capital (Country) Austria (City) Vienna has-capital Class diagram Object diagram Trần Thị Kim Chi 33 Association • Xác định mối quan hệ giữa hai hoặc nhiều lớp trong hệ thống. Các loại kết hợp trong quan hệ Association – Directed Association: kết hợp có hướng, được biểu diễn bằng một nhãn và mũi tên chỉ hướng Association – Reflexive Association: sự kết hợp giữa một class với chính nó. – Ví dụ: Một nhân viên quản lý tối đa 10 nhân viên Association 2..4 0..1 1..* 0..* 1 * 2, 4..6 Unspecified Exactly One Zero or More Zero or One (optional scalar role) One or More Specified Range Multiple, Disjoint Ranges Zero or More Trần Thị Kim Chi 36 Multiplicity: Số instances của một class có thể kết hợp với một instance của lớp còn lại. Association Ví dụ Association Ví dụ: • Một sinh viên có thể đăng ký ít nhất là một và nhiều nhất là 5 khóa học. • Một khóa học ít nhất là 10 và tối đa là 300 sinh viên Aggregation • Aggregation: là một dạng đặc biệt của association nó thể hiện quan hệ has-a hoặc part-whole, còn gọi là share aggregation Trần Thị Kim Chi 39 Aggregation • Ví dụ: Course (khóa học) có nhiều student, nhưng student có thể tồn tại độc lập hoặc thuộc một course khác. Trần Thị Kim Chi 40 Composition • Quan hệ Composition là loại Aggregation chặt chẽ hơn, còn gọi là Non-share aggregation. Trần Thị Kim Chi 41 Composition • Ví dụ: – Apartment (căn hộ) được tạo thành từ nhiều Room (phòng), Room chỉ thuộc Apartment, Room không thể tồn tại độc lập. Trần Thị Kim Chi 42 LỚP (CLASS) – Association, Aggregation and Composition Mối quan hệ giữa các lớp (relationship) • Liên kết (Association) – Sử dụng (use-a) • Kết tập (Aggregation) – Strong association – has-a/is-a-part • Hợp thành (Composition) – Strong aggregation – Share life-time Trần Thị Kim Chi 43 LỚP (CLASS) – Association, Aggregation and Composition • Aggregation – University and Chancellor – Nếu không có trường Đại học (University), hiệu trưởng (Chancellor) không thể tồn tại. – Nếu không có Chancellor, University vẫn có thể tồn tại • Composition – University and Faculty – University không thể tồn tại nếu không có các giảng viên (Faculty) và ngược lại (share time-life) • Thời gian sống của University gắn chặt với thời gian sống của Faculty • Nếu Faculties được giải phóng thì University không thể tồn tại và ngược lại Trần Thị Kim Chi 44 Quan hệ Tổng quát hóa (Generalization) • Mối quan hệ giữa các lớp mà trong đó một lớp có thể chia sẽ cấu trúc hoặc hành vi cho nhiều lớp khác. • Xác định một hệ thống phân cấp trừu tượng, trong đó một lớp con(subclass) kế thừa từ một hoặc nhiều lớp cha (superclasses) • Loại quan hệ kế thừa – Single inheritance: subclass kế thừ từ một superclass. – Multiple inheritance: subclass kế thừa từ một hoặc nhiều superclass. Trần Thị Kim Chi 45 Quan hệ Tổng quát hóa (Generalization) Trần Thị Kim Chi 46 • Trong hệ thống phân cấp – Lớp có thể hiện (instances) gọi là concrete class. – Lớp không có thể hiện (instances) gọi là abstract classes. Tổng quát hóa (Generalization) Sơ đồ 1: Lớp B dẫn xuất từ lớp A, lớp C dẫn xuất từ lớp B Trần Thị Kim Chi 47 Tổng quát hóa (Generalization) Trần Thị Kim Chi 48 Tổng quát hóa (Generalization) • Ví dụ đơn kế thừa: Một lớp kế thừa từ MỘT lớp khác Trần Thị Kim Chi 49 Tổng quát hóa (Generalization) • Ví dụ đa kế thừa:Một lớp có thể kế thừa từ nhiều lớp khác Trần Thị Kim Chi 50 Lớp trừu tượng và lớp cụ thể (Abstract and Concrete Class) • Lớp trừu tượng không thể có đối tượng – Chứa phương thức trừu tượng – Chữ nghiêng • Lớp cụ thể có thể có đối tượng Trần Thị Kim Chi 51 Tổng quát hóa (Generalization) Advantages of Inheritance • Reusability – reuse public methods of base class • Extensibility – Extend the base class • Data hiding – base class keeps some data private derive class cannot change it • Rapid prototyping Trần Thị Kim Chi 52 Quan hệ Dependency • Một quan hệ giữa hai phần tử ... ontaining an order number, ship date, and total cost. If the order is valid, it must be entered into an order database. If the order is invalid, an error message must be generated.” Trần Thị Kim Chi 60 Nouns • Out-of-Domain – Internal Web • Abstract – user name – user password – account number – order number – ship date – total cost – list of supplies – office supplies -> item • Good Candidates – employee – item (was office supplies) – receipt – order – order database – error message • Notes We have decided not to worry about the Web in this design. Instead we focus on the inputs and outputs and defer the Web details until later. Trần Thị Kim Chi 61 Class Model order DBemployee name password order number account total cost receipt order number ship date total cost item name quantity price error message explanation Trần Thị Kim Chi 62 Class Model, continued response receipt order number ship date total cost error message explanation Since both receipts and error messages will be generated as output it might make sense to have them as subclasses of a more general class. We do not know enough yet to assign it attributes however. Trần Thị Kim Chi 63 Class Modeling - Relationships order DBemployee name password order number account total cost receipt order number ship date total cost item name quantity price 1+ error message explanation Trần Thị Kim Chi 64 Khái niệm lớp cấu trúc - Structured Class Trần Thị Kim Chi 65 • Lớp cấu trúc chứa các thành phần (part) và vai trò (Role) mà nó tạo thành cấu trúc và thực hiện hành vi của nó. • Mô tả cấu trúc hiện thực bên trong lớp cấu trúc • Các thành phần chính nó cũng tạo thành các lớp cấu trúc. • Cho phép phân cấp cấu trúc dạng mô hình phân cấp • Kết nối (connector) được sử dụng để biểu diễn sự liên kết giữa các thành phần trong một ngữ cảnh cụ thể Ký hiệu lớp cấu trúc Trần Thị Kim Chi 66 • Thành phần(part) hoặc vai trò (role): được biểu diễn bằng biểu tượng của một lớp (hình chữ nhật) Cú pháp: rolename : Typename [ multiplicity ] • Cả 3 thành phần có thể bỏ qua • Nếu multiplicity bỏ qua, mặc định là 1 • Tham chiếu đến đối tượng bên ngoài biểu diễn bằng hình chữ nhật nét đứt Class Diagram versus Structure Diagram Schedule Student 0..* 1 Schedule 0..* 1 Student comp : Schedule [0..*] shared : Schedule [0..*] Class Diagram Structure Diagram shared comp Trần Thị Kim Chi 67 Structure Diagram Ví dụ: Khi một hệ thống được phân rã, mỗi thành phần có thể trở thành một lớp cấu trúc chứa các thành phần của chính nó. Course Registration System : BillingSystem : StudentManagementSystem : CourseCatalogSystem What Is an Interface? • Khai báo một tập thống nhất các tính năng và quy ước chung. • Interface là cốt lõi của khả năng “Plug and play” của một kiến trúc. • Interface hình thức hóa tính đa hình. Cho phép định nghĩa tính đa hình bằng cách khai báo, không liên quan đến hiện thực. Trần Thị Kim Chi 69 What Is an Interface? • Ví dụ: giao tiếp giữa providers and consumers, có các interface – Provided interface. – Required interface. Trần Thị Kim Chi 70 Example: A Provided Interface Remote Sensor Manufacturer A RemoteSensor > Manufacturer B Manufacturer C Manufacturer A Manufacturer B Manufacturer C Elided/Iconic Representation (“ball”) Canonical (Class/Stereotype) Representation Trần Thị Kim Chi 71 What Is an Interface? Example: A Required Interface Remote Control Remote Sensor Remote Control Remote Sensor > Elided/Iconic Representation (“socket”) Canonical (Class/Stereotype) Representation Trần Thị Kim Chi 72 What Is an Interface? Example: A Required Interface Remote Control Remote Sensor Remote Control Remote Sensor > Elided/Iconic Representation (“socket”) Canonical (Class/Stereotype) Representation Trần Thị Kim Chi 73 What is a Port? • Port là một cấu trúc đóng gói sự tương tác giữa nội dung của một lớp và môi trường của nó. – Hành vi của Port được xác định bởi giao diện cung cấp (provided) và yêu cầu (required) của nó. • Việc hiệu chỉnh cấu trúc bên trong không ảnh hưởng đến bên ngoài. • Một lớp có thể có nhiều port. – Một Port có một tập các giao diện Provided và Required Trần Thị Kim Chi 74 What is a Port? • A port is shown as a small square with the name placed nearby. • Ports may be public, protected or private portName Trần Thị Kim Chi 75 Port Types • Ports có thể có nhiều loại hiện thực khác nhau: – Service Port: chỉ sử dụng để hiện thực bên trong của lớp – Behavior Port: các yêu cầu trên Port được hiện thực trực tiếp bởi lớp – Relay Port: các yêu cầu trên Port được chuyển đến các bộ phận bên trong hiện thực. Trần Thị Kim Chi 76 Port Types Structured Class Name partA partB Behavior Port Relay Port Service Port Trần Thị Kim Chi 77 Sơ đồ mô tả - Diagram Depiction • Mỗi sơ đồ có một khung, một ngăn chứa tiêu đề và một vùng chứa nội dung. Trần Thị Kim Chi 78 Sơ đồ mô tả - Diagram Depiction • Khung chứa tên theo cú pháp: [][] • có thể là: – Activity - activity diagram – Package - class diagram, package diagram – Communication - communication diagram – Component - component diagram – Class - composite structure diagram Trần Thị Kim Chi 79 deployment - deployment diagram intover - interaction overview diagram object - object diagram state machine - state machine diagram sd - sequence diagram timing -timing diagram use case - use case diagram What Are Notes? • Chú thích được thêm vào sơ đồ, bao gồm – Thông tin trên sơ đồ – Bất kỳ phần tử UML nào MaintainScheduleForm There can be up to one MaintainScheduleForm per user session. Trần Thị Kim Chi 80 Questions • What are the four basic principles of object orientation? Provide a brief description of each. • What is an object and what is a class? What is the difference between the two? • What is a class relationship? Give some examples. • What is polymorphism? • What is an interface? Trần Thị Kim Chi 81 UNIFIED MODELING LANGUAGE (UML) • Là ngôn ngữ mô hình hóa (UML) dùng để xác định, xây dựng và lưu trữ lại kết quả (artifact) của quá trình phát triển hệ thống. • UML ra đời nhằm chấm dứt cuộc chiến các phương thức (“method wars”) trong cộng đồng OO. • “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 Trần Thị Kim Chi 82 UNIFIED MODELING LANGUAGE (UML) Lịch sử phát triển của UML Trần Thị Kim Chi 83 UNIFIED MODELING LANGUAGE (UML) • UML (Unified Modeling Language): ngôn ngữ dùng để mô hình hóa quá trình phát triển hệ thống phần mềm hướng đối tượng. • Các biểu đồ trong UML được chia thành 2 nhóm: – Biểu đồ cấu trúc (Structure Diagrams): class, object, package, deployment, component, composite structure diagrams – Biểu đồ hành vi (Behavioral Diagrams): activity, sequence, communication, interaction, use case diagrams Trần Thị Kim Chi 84 UNIFIED MODELING LANGUAGE (UML) UML là ngôn ngữ dùng để lập và cung cấp tài liệu. Tài liệu gồm có: • Ghi chép về các yêu cầu của hệ thống • Kiến trúc của hệ thống • Thiết kế • Mã nguồn • Kế hoạch dự án • Tests • Các nguyên mẫu Các hệ thống ứng dụng UML • Hệ thống thông tin (Information System) • Hệ thống kỹ thuật (Technical System) • Hệ thống nhúng (Embeded System) • Hệ thống phân bố (Distributed System) • Hệ thống giao dịch (Business System) • Phần mềm hệ thống (System SoftWare) Trần Thị Kim Chi 85 UNIFIED MODELING LANGUAGE (UML) UML defines 13 diagrams that describe 4+1 architectural views 4+1 architectural views model was proposed by Philippe Kruchten, IBM Trần Thị Kim Chi 86 UNIFIED MODELING LANGUAGE (UML) 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 Trần Thị Kim Chi 87 UNIFIED MODELING LANGUAGE (UML) Trần Thị Kim Chi 88 UNIFIED MODELING LANGUAGE (UML) UML defines 13 diagrams that describe 4+1 architectural views 4+1 architectural views model was proposed by Philippe Kruchten, IBM Trần Thị Kim Chi 89 UNIFIED MODELING LANGUAGE (UML) Biểu đồ Use case Trần Thị Kim Chi 90 UNIFIED MODELING LANGUAGE (UML) Biểu đồ lớp (Class diagram) Trần Thị Kim Chi 91 UNIFIED MODELING LANGUAGE (UML) Biểu đồ đối tượng (Object diagram) Trần Thị Kim Chi 92 UNIFIED MODELING LANGUAGE (UML) Biểu đồ trạng thái (State diagram) Trần Thị Kim Chi 93 UNIFIED MODELING LANGUAGE (UML) Biểu đồ trình tự (Sequence diagram) Trần Thị Kim Chi 94 UNIFIED MODELING LANGUAGE (UML) Biểu đồ tương tác (Communication Diagram) Trần Thị Kim Chi 95 UNIFIED MODELING LANGUAGE (UML) Biểu đồ hoạt động (Activity Diagram) Trần Thị Kim Chi 96 UNIFIED MODELING LANGUAGE (UML) Biểu đồ thành phần (Component Diagram) Trần Thị Kim Chi 97 UNIFIED MODELING LANGUAGE (UML) Biểu đồ triển khai (Deployment Diagram) Trần Thị Kim Chi 98 RATIONAL UNIFIED PROCESS (RUP) IMPLEMENTS BEST PRACTICES Trần Thị Kim Chi 99 QUY TRÌNH RUP(Rational Unified Process)(1) • Do hãng Rational phát triển • Là quy trình phát triển hợp nhất gồm các pha (phase) và các giai đoạn công việc (workflow) mà đội thực hiện dự án cần tuân theo. • Quá trình thực hiện qua toàn bộ các pha được gọi là chu trình phát triển • Kết quả của quá trình phát triển các RUP được gọi là các Artifact, bao gồm các mô hình và các bộ tài liệu. • Mục tiêu của RUP là tạo ra sản phẩm phần mềm chất lượng cao nhất đáp ứng nhu cầu của người dùng. • Về mặt quản lý: RUP cung cấp một giải pháp để phân công công việc và nhiệm vụ trong hệ thống phát triển phần mềm. Trần Thị Kim Chi 100 QUY TRÌNH RUP(Rational Unified Process)(1) • Đặc điểm của tiến trình RUP – Là một tiến trình lặp đi lặp lại, phù hợp với những hệ thống có yêu cầu thay đổi. – Sử dụng mô hình UML – Phát triển theo kiến trúc trung tâm (architecture-centric) giảm thiểu làm lại, tăng khả năng tái sử dụng. – Nhấn mạnh việc xây dựng hệ thống dựa trên sự hiểu biết thấu đáo chức năng của hệ thống – RUP hỗ trợ kỹ thuật hướng đối tượng, RUP dựa trên khái niệm về đối tượng, lớp và mối quan hệ giữa chúng. – RUP luôn quan tâm đến hoạt động kiểm soát chất lượng và quản lý rủi ro Trần Thị Kim Chi 101 QUY TRÌNH RUP(Rational Unified Process)(1) • Các mô hình: - Mô hình nghiệp vụ - Mô hình tình huống sử dụng - Mô hình phân tích thiết kế - Mô hình triển khai - Mô hình thử nghiệm • Các tài liệu: - Bộ tài liệu về xác định yêu cầu hệ thống - Bộ tài liệu thiết kế - Bộ tài liệu lập trình - Bộ tài liệu triển khaiTrần Thị Kim Chi 102 QUY TRÌNH RUP(Rational Unified Process)(1) • Giai đoạn (Phases) là khoảng cách giữa 2 mốc quan trọng của tiến trình, mỗi giai đoạn phải xác định mục tiêu cần đáp ứng, sản phẩm hoàn thành, và các quyết định để chuyển sang giai đoạn tiếp theo. • RUP gồm 4 giai đoạn: – Inception, – Elaboration, – Construction, – Transition. Trần Thị Kim Chi 103 QUY TRÌNH RUP(Rational Unified Process)(1) Trần Thị Kim Chi 104 CÁC CÔNG VIỆC TRONG TIẾN TRÌNH RUP Trần Thị Kim Chi 105 CÁC GIAI ĐOẠN CÔNG VIỆC CỦA RUP(1) • Mô hình hóa nghiệp vụ (business modeling): mô tả cấu trúc và quy trình nghiệp vụ. • Xác định yêu cầu (requirement): mô tả nghiệp vụ bằng phương pháp “tình huống sử dụng” (use case base method) • Phân tích và thiết kế (analysis & design): mô tả kiến trúc hệ thống thông qua các sơ đồ phân tích thiết kế. • Lập trình: thực hiện các việc xây dựng chương trình bằng ngôn ngữ lập trình. Trần Thị Kim Chi 106 CÁC GIAI ĐOẠN CÔNG VIỆC CỦA RUP(1) • Thử nghiệm: mô tả các tình huống và kịch bản thử nghiệm, tiến hành thử nghiệm hệ thống phần mềm. • Triển khai: đưa hệ thống phần mềm vào sử dụng. • Quản trị cấu hình và quản trị thay đổi: kiểm soát các thay đổi và duy trì sự hợp nhất của các thành phần dự án. • Quản trị dự án: quản lý toàn bộ quá trình làm việc của dự án. • Môi trường: đảm bảo các hạ tầng cần thiết để có thể phát triển được hệ thống Trần Thị Kim Chi 107 CÁC PHA CỦA RUP(1) • Khởi động (Inception) – Tìm hiểu nghiệp vụ – Xác định phạm vi của dự án • .Cuối pha này: kiểm tra các mục tiêu của quá trình phát triển của dự án và quyết định có tiếp tục quá trình phát triển hay không • Phác thảo (Elaboration) – Phân tích nghiệp vụ – Xác định kiến trúc phù hợp – Xây dựng kế hoạch cho dự án – Giới hạn yếu tố rủi ro cao nhất • Cuối pha này cần kiểm tra các mục tiêu và phạm vi chi tiết của hệ thống, sự lựa chọn về kiến trúc và cách xử lý các rủi ro có thể đồng thời quyết định có tiếp tục chuyển sang pha xây dựng hay không Trần Thị Kim Chi 108 CÁC PHA CỦA RUP(1) • Xây dựng (Construction) • Phát triển sản phẩm đầy đủ chuyển giao tới người sử dụng. • Hoàn tất các yêu cầu còn thiếu, làm mịn thiết kế và hoàn thành việc lập trình ứng dụng. • Cuối pha: kiểm tra hệ thống sẵn sàng hoạt động chưa? – Chuyển giao (Deployment) • Triển khai hệ thống đến người dùng • Ghi nhận các vấn đề phát sinh(nếu có) và các hạn chế để hoàn thiện phiên bản cuối cùng. Trần Thị Kim Chi 109 CHU TRÌNH PHÁT TRIỂN • RUP trải qua 4 giai đoạn gọi là chu trình phát triển và kết quả là một sản phẩm phần mềm mới. • Khi sản phẩm đã tồn tại thì các phiên bản tiếp theo được phát triển bằng cách lặp đi lặp lại một chuỗi các 4 giai đoạn trên. Trần Thị Kim Chi 110 HỆ THỐNG PHẦN MỀM HỖ TRỢ CHO RUP • Rational Requisite Pro • Rational Rose • Rational XDE • Rational Clear Case Trần Thị Kim Chi 111 CÂU HỎI VÀ BÀI TẬP • Câu 1. Ba tác giả gia nhập công ty phần Mềm Rational để phát triển UML là ai? • Câu 2. Tổ chức nào hiện nay chịu trách nhiệm về chuẩn UML? • Câu 3. Lý do sử dụng UML? • Câu 4. Hướng nhìn là gì? UML bao gồm những hướng nhìn nào? • Câu 5. Liệt kê các biểu đồ của UML? • Câu 6. Phân biệt mô hình tĩnh và mô hình động trong UML? Trần Thị Kim Chi 112 CÂU HỎI VÀ BÀI TẬP • Câu 1. Ba tác giả gia nhập công ty phần Mềm Rational để phát triển UML là ai? • Câu 2. Tổ chức nào hiện nay chịu trách nhiệm về chuẩn UML? • Câu 3. Lý do sử dụng UML? • Câu 4. Hướng nhìn là gì? UML bao gồm những hướng nhìn nào? • Câu 5. Liệt kê các biểu đồ của UML? • Câu 6. Phân biệt mô hình tĩnh và mô hình động trong UML? Trần Thị Kim Chi 113 CÂU HỎI VÀ BÀI TẬP • What are the four basic principles of object orientation? Provide a brief description of each. • What is an object and what is a class? What is the difference between the two? • What is a class relationship? Give some examples. • What is polymorphism? • What is an interface? Trần Thị Kim Chi 114 Trần Thị Kim Chi115
File đính kèm:
- bai_giang_phan_tich_va_thiet_ke_he_thong_chuong_2_cac_khai_n.pdf