Bài giảng Giới thiệu về hướng đối tượng và UML

Các lớp và các đối tượng ™Các phương thức và các thông điệp ™Tính bao đóng và che giấu thông tin ™Tính thừa kế ™Tính đa hình và kết nối động

pdf67 trang | Chia sẻ: haohao89 | Lượt xem: 2402 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Bài giảng Giới thiệu về hướng đối tượng và UML, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 1Nguyễn Trung Trực - Khoa CNTT Chương 2 Giới thiệu về hướng đối tượng và UML Chương 2. Giới thiệu về hướng đối tượng và UML 2006 2Nguyễn Trung Trực - Khoa CNTT Nội dung ™ Các đặc tính cơ bản của hệ thống hướng đối tượng. ™ Giới thiệu các thuật ngữ đối tượng, lớp, thuộc tính và phương thức. ™ Giới thiệu tính tổng quát hóa, tính đa hình và tính thừa kế. ™ Định nghĩa mối liên kết. ™ Ngôn ngữ mô hình hóa hợp nhất (UML - Unified Modeling Language). ™ Cách tiếp cận theo yêu cầu tối thiểu (minimalist approach) để phân tích và thiết kế hệ thống hướng đối tượng. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 3Nguyễn Trung Trực - Khoa CNTT Các đặc tính cơ bản của hệ thống hướng đối tượng ™ Các lớp và các đối tượng ™ Các phương thức và các thông điệp ™ Tính bao đóng và che giấu thông tin ™ Tính thừa kế ™ Tính đa hình và kết nối động Chương 2. Giới thiệu về hướng đối tượng và UML 2006 4Nguyễn Trung Trực - Khoa CNTT Ngôn ngữ mô hình hóa hợp nhất (UML) ™ Ký hiệu chuẩn để biểu diễn các hệ thống hướng đối tượng. ™ Hình chữ nhật biểu diễn lớp, thành phần, gói, đối tượng. f Chứa các thuộc tính và các tác vụ. f Cung cấp các giao tiếp cho các thực thể ngoài. ™ Đường thẳng biểu diễn tính tổng quát hóa và các mối liên kết. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 5Nguyễn Trung Trực - Khoa CNTT Ngôn ngữ mô hình hóa hợp nhất (UML) Sample UML Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 6Nguyễn Trung Trực - Khoa CNTT Đối tượng ™ Đối tượng (object) là một thực thể bao gồm dữ liệu và hành vi (behavior). f Các đối tượng được phân loại thành các lớp (class). fMỗi đối tượng riêng biệt là một thể hiện (instance) của một lớp. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 7Nguyễn Trung Trực - Khoa CNTT Tính bao đóng và che giấu thông tin ™ Tính bao đóng (encapsulation) f Sự kết hợp dữ liệu và quá trình vào trong một đối tượng. ™ Che giấu thông tin (information hiding) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 8Nguyễn Trung Trực - Khoa CNTT Lớp ™ Lớp (class) là một loại các đối tượng có cùng các thuộc tính, các tác vụ, các mối liên kết và ngữ nghĩa. Name Attributes Operations An Illustration of a Class Chương 2. Giới thiệu về hướng đối tượng và UML 2006 9Nguyễn Trung Trực - Khoa CNTT Thuộc tính ™ Thuộc tính (attribute) là một đặc tính được đặt tên của một lớp, dùng để mô tả một miền trị có thể gán cho các thể hiện của thuộc tính này. ™ Các loại thuộc tính f Thuộc tính đơn (simple attribute) f Thuộc tính xác định (identifier) f Thuộc tính đa trị (multivalued attribute) f Thuộc tính phức hợp (composite attribute) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 10Nguyễn Trung Trực - Khoa CNTT Thuộc tính ™ Kiểu mở rộng (stereotype) là một thành phần (construct) cho phép mở rộng từ vựng của UML. ™ Các loại kiểu mở rộng trong sơ đồ lớp f Kiểu mở rộng khóa chính: >. f Kiểu mở rộng đa trị: >. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 11Nguyễn Trung Trực - Khoa CNTT Thuộc tính Attributes are properties containing values Minus sign indicates these are private (hidden) A Class with Attributes Chương 2. Giới thiệu về hướng đối tượng và UML 2006 12Nguyễn Trung Trực - Khoa CNTT Thuộc tính Primary key is a unique identifier; no two Student instances will have the same studentId value. The Identifier shown by the Stereotype > Chương 2. Giới thiệu về hướng đối tượng và UML 2006 13Nguyễn Trung Trực - Khoa CNTT Thuộc tính Multivalued attribute can contain multiple values; a student may have several phone numbers Attribute phoneNumber shown by the Stereotype > Chương 2. Giới thiệu về hướng đối tượng và UML 2006 14Nguyễn Trung Trực - Khoa CNTT Thuộc tính Composite attributes have multiple sections (subattributes). They are treated as separate classes in conceptual data models. Attribute Address shown as a type Address Composite attribute Address shown as a Class Composite attribute Address shown as a Class Chương 2. Giới thiệu về hướng đối tượng và UML 2006 15Nguyễn Trung Trực - Khoa CNTT Phương thức và thông điệp ™ Tác vụ (operation) là một hành vi của một đối tượng. ™ Tác vụ được thể hiện trong các lớp là các phương thức (methods). f Tương tự với một hàm hoặc một thủ tục. ™ Thông điệp (message) được gửi đến các phương thức của đối tượng. ™ Tính sử dụng lại (reusability) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 16Nguyễn Trung Trực - Khoa CNTT Phương thức và thông điệp Signature identifies and invokes the behavior Method implements the behavior An Operation with Signature and Method Written in PL/SQL Chương 2. Giới thiệu về hướng đối tượng và UML 2006 17Nguyễn Trung Trực - Khoa CNTT Phương thức và thông điệp Chương 2. Giới thiệu về hướng đối tượng và UML 2006 18Nguyễn Trung Trực - Khoa CNTT Lớp và đối tượng Method signaturesPlus sign indicates these are public (accessible) A Class with Attributes and Operations Chương 2. Giới thiệu về hướng đối tượng và UML 2006 19Nguyễn Trung Trực - Khoa CNTT Lớp và đối tượng Class Class Student Instances Objects Maria and David of the Class Student Chương 2. Giới thiệu về hướng đối tượng và UML 2006 20Nguyễn Trung Trực - Khoa CNTT Lớp và đối tượng Chương 2. Giới thiệu về hướng đối tượng và UML 2006 21Nguyễn Trung Trực - Khoa CNTT Tính tổng quát hóa ™ Lớp cha (superclass, general class, parent class) ™ Lớp con (subclass, specific class, child class) ™ Tính tổng quát hóa (generalization) ™ Lớp con có thể có thêm các thuộc tính và các phương thức riêng. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 22Nguyễn Trung Trực - Khoa CNTT Tính tổng quát hóa Class Hierarchy Chương 2. Giới thiệu về hướng đối tượng và UML 2006 23Nguyễn Trung Trực - Khoa CNTT Tính tổng quát hóa Generalization represented by arrows from subclass to superclass Subclasses inherit all attributes and operations of superclasses An Example of Generalization Chương 2. Giới thiệu về hướng đối tượng và UML 2006 24Nguyễn Trung Trực - Khoa CNTT Tính tổng quát hóa Multiple inheritance is complicated and not supported by all object-oriented programming languages. Generalization based on two characteristics Chương 2. Giới thiệu về hướng đối tượng và UML 2006 25Nguyễn Trung Trực - Khoa CNTT Tính thừa kế ™ Tính thừa kế (inheritance) là một cơ chế mà lớp con trong mối liên kết tổng quát hóa có được các thuộc tính và các tác vụ của lớp cha. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 26Nguyễn Trung Trực - Khoa CNTT Tính thừa kế Chương 2. Giới thiệu về hướng đối tượng và UML 2006 27Nguyễn Trung Trực - Khoa CNTT Tính đa hình và kết nối động ™ Tính đa hình (polymorphism) là khả năng của các đối tượng khác nhau đáp ứng các thông điệp giống nhau theo các cách khác nhau. ™ Polymorphism = “having many forms”. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 28Nguyễn Trung Trực - Khoa CNTT Tính đa hình và tính bao đóng Chương 2. Giới thiệu về hướng đối tượng và UML 2006 29Nguyễn Trung Trực - Khoa CNTT Thành phần và giao tiếp ™ Thành phần (component) là một phần có thể thay thế được (replaceable part) của một hệ thống, cung cấp một chức năng được định nghĩa rõ ràng thông qua một tập các giao tiếp. ™ Giao tiếp (interface) là một cơ chế mà qua đó người sử dụng yêu cầu các hành vi và thao tác trên các đặc tính của đối tượng. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 30Nguyễn Trung Trực - Khoa CNTT Thành phần và giao tiếp Interfaces are represented as small rectangles An EC System with Four Components Chương 2. Giới thiệu về hướng đối tượng và UML 2006 31Nguyễn Trung Trực - Khoa CNTT ™ Gói (package) là một cơ chế chung để tổ chức các phần tử thành các nhóm. ™ Nhóm các lớp dùng chung các đặc tính hoặc các mục đích tương tự nhau. Gói An Example of a Package Chương 2. Giới thiệu về hướng đối tượng và UML 2006 32Nguyễn Trung Trực - Khoa CNTT Mối liên kết ™ Mối liên kết (relationship) là mối quan hệ ngữ nghĩa giữa các đối tượng của một hoặc nhiều lớp. ™ Trong UML, mối liên kết được biểu diễn bằng một đường nối giữa hai hoặc nhiều lớp (hoặc nối cùng một lớp). Chương 2. Giới thiệu về hướng đối tượng và UML 2006 33Nguyễn Trung Trực - Khoa CNTT Mối liên kết Roles identify the purpose of each class in the relationship. Relationship between Classes Chương 2. Giới thiệu về hướng đối tượng và UML 2006 34Nguyễn Trung Trực - Khoa CNTT Mối liên kết ™ Các loại mối liên kết fMối liên kết đơn giản (simple relationship) fMối liên kết bao gộp (aggregation relationship) fMối liên kết hợp thành (composition relationship) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 35Nguyễn Trung Trực - Khoa CNTT Mối liên kết Transaction and Line Items as Composition Loosely Bound Aggregation Chương 2. Giới thiệu về hướng đối tượng và UML 2006 36Nguyễn Trung Trực - Khoa CNTT Mối liên kết ™ Bậc của mối liên kết (relationship degree) là số lượng các lớp tham gia đồng thời vào mối liên kết. fMối liên kết một ngôi (unary relationship) fMối liên kết hai ngôi (binary relationship) fMối liên kết ba ngôi (ternary relationship) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 37Nguyễn Trung Trực - Khoa CNTT Mối liên kết Unary Relationship Binary Relationship Chương 2. Giới thiệu về hướng đối tượng và UML 2006 38Nguyễn Trung Trực - Khoa CNTT Mối liên kết Ternary Relationship Chương 2. Giới thiệu về hướng đối tượng và UML 2006 39Nguyễn Trung Trực - Khoa CNTT Mối liên kết ™ Lượng số của mối liên kết (relationship cardinality) là số lượng đối tượng của lớp A có thể hoặc phải liên kết với mỗi đối tượng của lớp B. f Lượng số nhỏ nhất (minimum cardinality) f Lượng số lớn nhất (maximum cardinality) ™ Các loại lượng số fOne – to – one fOne – to – many fMany – to – many Chương 2. Giới thiệu về hướng đối tượng và UML 2006 40Nguyễn Trung Trực - Khoa CNTT Mối liên kết Cardinality of a Relationship Fixed Cardinality Chương 2. Giới thiệu về hướng đối tượng và UML 2006 41Nguyễn Trung Trực - Khoa CNTT Mối liên kết Roles make it clearer to see which should be on the one side and which should be on the many side of the relationship. Use of Roles to illustrate Cardinality in a 1:M Unary Relationship Chương 2. Giới thiệu về hướng đối tượng và UML 2006 42Nguyễn Trung Trực - Khoa CNTT Lớp kết hợp ™ Lớp kết hợp (associative class) là một lớp đặc biệt biểu diễn mối liên kết giữa các lớp và chứa các thuộc tính của mối liên kết. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 43Nguyễn Trung Trực - Khoa CNTT Lớp kết hợp A Certificate represents a relationship between an employee and a course, and has an attribute pertaining to that relationship Example of an Associative Class Chương 2. Giới thiệu về hướng đối tượng và UML 2006 44Nguyễn Trung Trực - Khoa CNTT Lớp kết hợp Sometimes associative classes have their own relationships with other classes. Relationship between an Associative Class and a Class Chương 2. Giới thiệu về hướng đối tượng và UML 2006 45Nguyễn Trung Trực - Khoa CNTT Ngôn ngữ mô hình hóa hợp nhất 2.0 ™ Các sơ đồ cấu trúc f structure diagram ™ Các sơ đồ hành vi f behavior diagram ™ Các cơ chế mở rộng f extension mechanism Chương 2. Giới thiệu về hướng đối tượng và UML 2006 46Nguyễn Trung Trực - Khoa CNTT UML 2.0 Diagram Summary Chương 2. Giới thiệu về hướng đối tượng và UML 2006 47Nguyễn Trung Trực - Khoa CNTT Các sơ đồ cấu trúc ™ Các sơ đồ cấu trúc f Sơ đồ lớp (class diagram) f Sơ đồ đối tượng (object diagram) f Sơ đồ gói (package diagram) f Sơ đồ triển khai (deployment diagram) f Sơ đồ thành phần (component diagram) f Các sơ đồ cấu trúc phức hợp (composite structure diagram) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 48Nguyễn Trung Trực - Khoa CNTT Các sơ đồ cấu trúc Class Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 49Nguyễn Trung Trực - Khoa CNTT Các sơ đồ cấu trúc Object Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 50Nguyễn Trung Trực - Khoa CNTT Các sơ đồ cấu trúc Package Diagram of Dependency Relationships Among Layers Chương 2. Giới thiệu về hướng đối tượng và UML 2006 51Nguyễn Trung Trực - Khoa CNTT Các sơ đồ cấu trúc Package Diagram of Appointment System Chương 2. Giới thiệu về hướng đối tượng và UML 2006 52Nguyễn Trung Trực - Khoa CNTT Các sơ đồ cấu trúc Three Versions of Appointment System Deployment Diagram. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 53Nguyễn Trung Trực - Khoa CNTT Các sơ đồ cấu trúc Simple Internet Architecture Chương 2. Giới thiệu về hướng đối tượng và UML 2006 54Nguyễn Trung Trực - Khoa CNTT Các sơ đồ hoạt động ™ Sơ đồ hoạt động f activity diagram ™ Sơ đồ tuần tự f sequence diagram ™ Sơ đồ liên lạc f communication diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 55Nguyễn Trung Trực - Khoa CNTT Các sơ đồ hoạt động Activity Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 56Nguyễn Trung Trực - Khoa CNTT Các sơ đồ hoạt động Sequence Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 57Nguyễn Trung Trực - Khoa CNTT Các sơ đồ hoạt động Collaboration Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 58Nguyễn Trung Trực - Khoa CNTT Các sơ đồ use-case ™ Giải quyết các yêu cầu nghiệp vụ. ™ Cho thấy sự tương tác giữa hệ thống và môi trường. ™ Làm rõ và lập tài liệu các yêu cầu hệ thống cần được mô hình hóa. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 59Nguyễn Trung Trực - Khoa CNTT Các sơ đồ use-case Use-case Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 60Nguyễn Trung Trực - Khoa CNTT Các cơ chế mở rộng ™ Các kiểu mở rộng f stereotype f Cho phép khả năng mở rộng thêm UML. ™ Các giá trị buộc f tagged value f Thêm các đặc tính mới cho các phần tử cơ bản. ™ Các ràng buộc f constraint f Các hạn chế về việc sử dụng các phần tử của mô hình. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 61Nguyễn Trung Trực - Khoa CNTT Phân tích, thiết kế HT hướng đối tượng ™ Sử dụng use-case f use-case driven f Các use-case là công cụ mô hình hóa chính để định nghĩa hành vi của hệ thống. fMột use-case mô tả người sử dụng tương tác như thế nào với hệ thống để thực hiện một hoạt động nào đó. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 62Nguyễn Trung Trực - Khoa CNTT Phân tích, thiết kế HT hướng đối tượng ™ Kiến trúc trung tâm f architecture centric f Kiến trúc phải hỗ trợ các cái nhìn riêng biệt nhau nhưng liên quan với nhau. f Cái nhìn chức năng (functional view) f Cái nhìn tĩnh (static view) f Cái nhìn động (dynamic view) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 63Nguyễn Trung Trực - Khoa CNTT Phân tích, thiết kế HT hướng đối tượng Behavioral State Machine Diagram Chương 2. Giới thiệu về hướng đối tượng và UML 2006 64Nguyễn Trung Trực - Khoa CNTT Phân tích, thiết kế HT hướng đối tượng ™ Sự phát triển lặp lại và gia tăng fMỗi lần lặp lại của hệ thống làm cho hệ thống càng đáp ứng yêu cầu của người sử dụng. f Cách tiếp cận RAD (Rapid Application Development) : phát triển theo giai đoạn. Chương 2. Giới thiệu về hướng đối tượng và UML 2006 65Nguyễn Trung Trực - Khoa CNTT Phân tích, thiết kế HT hướng đối tượng Chương 2. Giới thiệu về hướng đối tượng và UML 2006 66Nguyễn Trung Trực - Khoa CNTT Cách tiếp cận MOOSAD MOOSAD (Minimalist Object-Oriented Systems Analysis and Design) Chương 2. Giới thiệu về hướng đối tượng và UML 2006 67Nguyễn Trung Trực - Khoa CNTT Phân tích hệ thống hướng đối tượng ™ Xác định giá trị nghiệp vụ ™ Phân tích tính khả thi ™ Xây dựng kế hoạch làm việc ™ Phân công dự án ™ Điều khiển và kiểm tra dự án ™ Xác định các yêu cầu ™ Mô hình hóa chức năng ™ Mô hình hóa cấu trúc ™ Mô hình hóa hành vi ™ Chuyển sang thiết kế