Presentation is loading. Please wait.

Presentation is loading. Please wait.

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG

Similar presentations


Presentation on theme: "CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG"— Presentation transcript:

1 CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
11/16/2018

2 Nội dung Các khái niệm cơ bản về hướng đối tượng
Các khái niệm và các thành phần trong hướng đối tượng Ký hiệu của quan hệ association trong UML

3 Mô hình Mô hình hóa phải đạt 4 mục tiêu
Giúp dễ hình dung ra một hệ thống như mong muốn Giúp xác định cấu trúc và hành vi của hệ thống Cung cấp một mẫu hướng dẫn xây dựng hệ thống Là tài liệu có giá trị dài hạn, nó cung cấp thông tin “cứng “ về các quyết định thiết kế. Mô hình hóa giúp thiết kế những hệ thống phức tạp Hiểu thấu đáo về hệ thống đang muốn phát triển

4 Nguyên tắc của mô hình hóa
Mô hình được tạo ra có ảnh hưởng như thế nào hệ thống và xác định giải pháp. Mỗi mô hình có một mức độ chính xác khác nhau Các mô hình tốt nhất được kết nối với thực tế Không có mô hình đơn nào là đầy đủ.

5 Mô hình hóa hướng đối tượng
Mô hình hóa hướng đối tượng là một cách mô hình hóa hệ thống, mà chính nó là một đối tượng được phân rã thành các đối tượng nhỏ hơn, đơn giản hơn. Mỗi đối tượng thành phần có thuộc tính và hành vi riêng của nó, các thành phần này cộng tác để cung cấp những chức năng cần thiết của hệ thống.

6 Các nguyên tắc cơ bản của hướng đối tượng

7 Các nguyên tắc cơ bản của hướng đối tượng
Abstraction và generalization Abstraction: Giảm độ phức tạp bằng cách che giấu những chi tiết không liên quan. Generalization: thay thế nhiều thực thể thực hiện cùng chức năng bằng một cấu trúc duy nhất.

8 Mastering OOAD w/ UML 2.0 – Instructor Notes
Ví dụ: Abstraction Student Professor The following are examples of abstraction. A student is a person enrolled in classes at the university. A professor is a person teaching classes at the university. A course is a class offered by the university. A course offering is a specific offering for a course, including days of the week and times. Course Offering (9:00 AM, Monday-Wednesday-Friday) Course (e.g., Algebra) Module 2 - Concepts of Object Orientation

9 Các nguyên tắc cơ bản của hướng đối tượng
Encapsulation 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

10 Mastering OOAD w/ UML 2.0 – Instructor Notes
Ví dụ: Encapsulation Note that encapsulation can also be illustrated using interfaces. Point out that the requesting object does not need to know the structure of the Professor object to request a state change. The object that owns the attributes is the only one allowed to change its own attributes. Giáo sư Clark có thể dạy 4 lớp trong học kỳ tiếp theo. Professor Clark AcceptCourseOffering() SubmitFinalGrades() Name: J Clark Employee ID: HireDate: 07/25/1991 Status: Tenured Discipline: Finance MaxLoad: 4 The key to encapsulation is an object’s message interface. The object interface ensures that all communication with the object takes place through a set of predefined operations. Data inside the object is only accessible by the object’s operations. No other object can reach inside of the object and change its attribute values. For example, Professor Clark needs to have her maximum course load increased from three classes to four classes per semester. Another object will make a request to Professor Clark to set the maximum course load to four.The attribute, MaxLoad, is then changed by the SetMaxLoad() operation. Encapsulation is beneficial in this example because the requesting object does not need to know how to change the maximum course load. In the future, the number of variables that are used to define the maximum course load may be increased, but that does not affect the requesting object. The requesting object depends on the operation interface for the Professor Clark object. SetMaxLoad(4) SetMaxLoad() TakeSabbatical() Module 2 - Concepts of Object Orientation

11 Các nguyên tắc cơ bản của hướng đối tượng
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

12 Mastering OOAD w/ UML 2.0 – Instructor Notes
Ví dụ: Modularity Tách hệ thống đăng ký khóa học (Course Registration System) thành các module. A car is an example of modularity. It is made of up of a body, chassis, engine, wheels, and so on. Billing System Course Registration System Course Catalog System Often, the system under development is too complex to understand. To further understanding, the system is broken into smaller blocks that are each maintained independently. Breaking down a system in this way is called modularity. It is critical for understanding a complex system. For example, the system under development is a Course Registration system. The system itself is too large and abstract to allow an understanding of the details. Therefore, the development team broke this system into three modular systems, each independent of the others. The Billing System Course Catalog System Student Management System Student Management System Module 2 - Concepts of Object Orientation

13 Các nguyên tắc cơ bản của hướng đối tượng
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

14 Mastering OOAD w/ UML 2.0 – Instructor Notes
Ví dụ: Hierarchy Hierarchy is a taxonomic organization. The use of hierarchy makes it easy to recognize similarities and differences. Asset Increasing abstraction BankAccount Security RealEstate Hierarchy can be defined as: Any ranking or ordering of abstractions into a tree-like structure. Kinds: Aggregation hierarchy, class hierarchy, containment hierarchy, inheritance hierarchy, partition hierarchy, specialization hierarchy, type hierarchy. (Dictionary of Object Technology, Firesmith, Eykholt, 1995) Hierarchy organizes items in a particular order or rank (for example, complexity and responsibility). This organization is dependent on perspective. Using a hierarchy to describe differences or variations of a particular concept provides for more descriptive and cohesive abstractions and a better allocation of responsibility. In any one system, there may be multiple abstraction hierarchies (for example, a financial application may have different types of customers and accounts). Hierarchy is not an organizational chart or a functional decomposition. Hierarchy is a taxonomic organization. The use of hierarchy makes it easy to recognize similarities and differences. For example, botany organizes plants into families. Chemistry organizes elements in a periodic table. Decreasing abstraction Savings Checking Stock Bond Elements at the same level of the hierarchy should be at the same level of abstraction. Module 2 - Concepts of Object Orientation

15 Khái niệm cơ bản trong hướng đối tượng
Đối tượng – Object Lớp – Class Quan hệ giữa Class và Object

16 Đối tượng - Objects 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.

17 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

18 Lớp – Class 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 Ký hiệu Class trong UML Class name + attribute + operation()

19 Phương thức (Methods and Messages)
Phương thức (Methods): hiện thực hành vi của đối tượng, một phương thức ứng với một hành vi của đối tượng. 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.

20 Quan hệ giữ lớp và đối tượng
Lớp mô tả một tập các đối tượng cùng thuộc tính hành vi, mối quan hệ và ngữ cảnh. Một đối tượng được định nghĩa bởi một lớp. Một lớp xác định một mẫu cấu trúc và hành vi của tất cả đối tượng. Lớp là một định nghĩa trừu tượng của các đối tượng. A class is a description of a set of objects that share the same responsibilities, relationships, operations, attributes, and semantics. An object is defined by a class. A class defines a template for the structure and behavior of all its objects. The objects created from a class are also called the instances of the class. The class is the static description; the object is a run-time instance of that class. Since we model from real-world objects, software objects are based on the real-world objects, but they exist only in the context of the system. Starting with real-world objects, abstract out what you do not care about. Then, take these abstractions and categorize, or classify them, based on what you do care about. Classes in the model are the result of this classification process. These classes are then used as templates within an executing software system to create software objects. These software objects represent the real-world objects we originally started with. Some classes/objects may be defined that do not represent real-world objects. They are there to support the design and are "software only.”

21 Quan hệ giữ 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 của lớp tại thời điểm thực thi Professor Meijer Professor Allen Professor Torpie Professor

22 Quan hệ giữ lớp và đối tượng
Ví dụ:

23 Class diagrams Class diagrams mô tả các lớp trong hệ thống và các loại mối quan hệ giữa chúng, bao gồm: Association Generalization (Inheritance) Aggregation or composition Dependency

24 Navigability 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)

25 RegistrationController
Navigability 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 CourseOffering Schedule

26 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.

27 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

28 Association Multiplicity: Unspecified
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 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.

29 Association Ví dụ

30 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

31 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 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.

32 Aggregation Ví dụ:

33 Composition Quan hệ Composition là loại Aggregation chặt chẽ hơn, còn gọi là Non-share aggregation. 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.

34 Khái niệm lớp cấu trúc - Structured Class
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ể

35 Ký hiệu lớp cấu trúc 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 partA : CompositionPart partB : SharedPart connector parts

36 Class Diagram và Structure Diagram
Mastering OOAD w/ UML 2.0 – Instructor Notes Class Diagram và Structure Diagram Class Diagram Structure Diagram Student Student 1 1 shared : Schedule [0..*] shared 0..* 0..* comp comp : Schedule [0..*] Schedule Schedule Module 2 - Concepts of Object Orientation

37 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

38 Quan hệ 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.

39 Quan hệ Generalization
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.

40 Quan hệ Dependency Một quan hệ giữa hai phần tử mô hình, trong đó, sự thay đổi của mô hình này sẽ gây ra sự thay đổi của mô hình kia Package Class Dependency relationship Component Client ClientPackage SupplierPackage Supplier

41 Tính đa hình - Polymorphism
Cùng một hành vi nhưng thể hiện khác nhau bởi những lớp đối tượng khác nhau. Manufacturer A Manufacturer B Manufacturer C OO Principle: Encapsulation Remote Control

42 Khái niệm 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.

43 Khái niệm Interface Ví dụ: giao tiếp giữa providers and consumers, có các interface Provided interface. Required interface.

44 Khái niệm Interface Ví dụ: A Provided Interface
Sử dụng khi chỉ quan tâm đến sự tồn tại của interface(“ball”) Sử dụng khi cần xem chi tiết của interface

45 Khái niệm Interface Ví dụ: A Required Interface
Sử dụng khi chỉ quan tâm đến sự tồn tại của interface (“socket”) Sử dụng khi cần xem chi tiết của interface

46 Khái niệm Interface Ví dụ: Connecting Interfaces

47 Khái niệm 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

48 Khái niệm Port Ký hiệu Port: Ports có thể public, protected or private

49 Các loại Port 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.

50 Các loại Port Ví dụ: Structure Diagram with Ports

51 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.

52 Sơ đồ mô tả - Diagram Depiction
Khung chứa tên <Heading> theo cú pháp: [<kind>]<name>[<parameters>] <Kind> có thể là: Activity - activity diagram Package - class diagram, package diagram Communication - communication diagram Component - component diagram Class - composite structure diagram 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

53 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

54 Câu hỏi 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?


Download ppt "CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG"

Similar presentations


Ads by Google