Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền

ĐỐI TƯỢNG (OBJECT)

MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 3

• Các cá thể của một hệ thống

• Các ký hiệu thay thế:

BIỂU ĐỒ ĐỐI TƯỢNG

• Các đối tượng của một hệ thống và quan hệ giữa chúng

gọi là liên kết (link)

• Snapshot của các đối tượng tại một thời điểm cụ thể.

TỪ ĐỐI TƯỢNG ĐẾN LỚP

• Nhiều cá thể xuất hiện trong hệ thống có cùng đặc tính và

hành vi.

• Nếu mỗi đối tượng được mô hình hoá độc lập nhau à mô

hình sẽ trở nên phức tạp và không thể bảo trì được.

èSử dụng các lớp cho phép ta mô tả các đối tượng giống

nhau mà không phải mô tả chi tiết mỗi một đối tượng một

cách riêng lẻ.

 

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 1

Trang 1

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 2

Trang 2

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 3

Trang 3

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 4

Trang 4

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 5

Trang 5

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 6

Trang 6

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 7

Trang 7

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 8

Trang 8

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 9

Trang 9

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 76 trang duykhanh 9340
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền

Bài giảng Mô hình hoá phần mềm - Tuần 3: Class diagram - Nguyễn Thị Minh Tuyền
sociation, link
• Mô hình các mối quan hệ có thể giữa các instance của
 các lớp
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 27
 LIÊN KẾT NHỊ PHÂN
• Binary Association
• Liên kết các instance của hai lớp với nhau
 Navigability Association name Reading direction
 Multiplicity
 Non-navigability
 Visibility Role
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 28
 BINARY ASSOCIATION - NAVIGABILITY
• Navigability: một đối tượng biết đối tượng kia và vì vậy có thể truy
 cập vào các thuộc tính và thao tác thấy được.
 • Ký hiệu bằng đầu mũi tên mở
• Non-navigability
 • Ký hiệu bằng dấu x
• Ví dụ:
 • A có thể truy cập các thuộc tính và thao tác thấy được của B
 • B không thể truy cập vào các thuộc tính và thao tác thấy được của A
• Navigability undefined
 • Giả định điều hướng cả hai hướng
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 29
 NAVIGABILITY – UML STANDARD VS. 
 BEST PRACTICE
 UML standard Best practice
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 30
 LIÊN KẾT NHỊ PHÂN DƯỚI DẠNG THUỘC TÍNH
 Preferable
• Mã nguồn Java :
 class Professor {}
 class Student{
 public Professor[] 
 lecturer;
 }
 MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 31
 BINARY ASSOCIATION – MULTIPLICITY VÀ ROLE
• Multiplicity: Số lượng đối tượng có thể được liên kết với ít nhất một
 đối tượng của phía đối diện
• Role: mô tả vai trò của một đối tượng khi tham gia vào một quan hệ
 liên kết
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 32
 BINARY ASSOCIATION – RÀNG BUỘC xor
• Ràng buộc “exclusive or”
• Một đối tượng của lớp A được liên kết với một đối tượng của lớp B
 hoặc một đối tượng của lớp C nhưng không đồng thời.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 33
 LIÊN KẾT BẬC N [1]
• n-ary Association
• Nhiều hơn hai đối tượng tham gia vào quan hệ.
• Cách cạnh không có mũi tên chỉ hướng.
 Ternary
 association
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 34
 LIÊN KẾT BẬC N [2]
• (Student, Exam) à (Lecturer)
 • One student takes one exam with one or no lecturer
• (Exam, Lecturer) à (Student)
 • One exam with one lecturer can be taken by any number of students
• (Student, Lecturer) à (Exam)
 • One student can be graded by one Lecturer for any number of exams
 ≠
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 35
 LIÊN KẾT BẬC N [3]
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 36
 LỚP LIÊN KẾT [1] 
• Association Class
• Gán các thuộc tính vào quan hệ giữa các lớp hơn là vào chính lớp
 đó
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 37
 LỚP LIÊN KẾT [2] 
• Cần thiết khi mô hình hoá liên kết n:m
 Association class
• Với liên kết 1:1 hoặc 1:n có thể dùng nhưng không cần thiết
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 38
 LỚP LIÊN KẾT VS. LỚP THÔNG THƯỜNG
 ≠
 A Student can enroll for one A Student can have mutiple
 particular StudyProgram only Enrollments for one and the
 once same StudyProgram
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 39
 LỚP LIÊN KẾT – unique/non-unique [1]
• Default: no duplicates § non-unique: duplicates allowed
A student can only be granted an A student can have more than one 
exam meeting for a specific exam once. exam meetings for a specific exam.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 40
 LỚP LIÊN KẾT – UNIQUE/NON-UNIQUE [2]
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 41
AGGREGATION
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 42
 AGGREGATION 
• Là một dạng đặc biệt của liên kết
• Dùng để biểu diễn một lớp là một phần của lớp khác
• Các thuộc tính của liên kết aggregation:
 • Transitive: Nếu B là một phần của A và C là một phần của B, C cũng
 là một phần của A
 • Asymmetric: A không thể là một phần của B đồng thời B là một phần 
 của A.
• Có hai loại :
 • Shared aggregation
 • Composition
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 43
 SHARED AGGREGATIONS 
• Biểu diễn một phụ thuộc "yếu" của các phần đối với toàn bộ
 = Các phần cũng có thể tồn tại độc lập với toàn bộ
• Multiplicity tại đầu tổng hợp có thể >1
 = Một phần tử có thể đồng thời là một phần của nhiều phần tử khác nhau
• Cú pháp: Hình thoi tại đầu tổng hợp
• Ví dụ:
 • Student là một phần của LabClass
 • Course là một phần của StudyProgram
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 44
 COMPOSITION
 • Phụ thuộc tồn tại giữa composite object và các phần của nó
 • Một phần chỉ có thể được chứa trong nhiều nhất một composite
 object tại một thời điểm cụ thể.
 • Multiplicity tại đầu tổng hợp tối đa là 1 à các composite object hình
 thành một cây
 • Nếu composite object bị xoá, các phần của nó cũng bị xoá.
 • Cú pháp: Hình thoi màu đen tại đầu tổng hợp
 • Ví dụ: Beamer là một phần của LectureHall là một phần của
 Building
If the Building is deleted, The Beamer can exist without the 
the LectureHall is also deleted LectureHall, but if it is contained in the 
 LectureHall while it is deleted, the Beamer
 MÔ HÌNH HOÁ PHẦN MỀM is also deleted NGUYỄN THỊ MINH TUYỀN 45
 SHARED AGGREGATION VÀ COMPOSITION
• Mô hình nào áp dụng được?
 ----
 A Tire can exist without a Car. A Yes
 Tire belongs to one Car at most.
 ---
 ---------
 A Tire cannot exist without a Car.
 No
 --------
 A Tire can belong to multiple Cars
 ----
 A Car has one or two types of Yes
 Tires. Several Cars may have
 the same Type of Tires. ---
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 46
TỔNG QUÁT HOÁ
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 47
TỔNG QUÁT HOÁ
• Các đặc tính ( các thuộc tính và các thao
 Superclass
 tác), các liên kết, và các aggregation được
 đặc tả cho một lớp chung (superclass) sẽ
 được truyền cho lớp con của nó.
• Mỗi instance của lớp con đồng thời là một
 instance gián tiếp của lớp cha. Subclasses
 inherit characteristics, 
• Lớp con kết thừa tất cả đặc tính, liên kết và associations, and
 aggregations của lớp cha ngoại trừ các aggregations
 thành phần private. A Secretary is
• Lớp con có thể có thêm các đặc tính, liên kết an Employee and
 a Person
 và aggregation mới.
• Tổng quát hoá là chuyển tiếp.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 48
LỚP ABSTRACT
• Được dùng để làm nổi bật các đặc điểm chung của các lớp con của lớp đó.
• Được dùng để đảm bảo rằng không có instance trực tiếp nào của lớp cha.
• Chỉ các lớp con không là abstract mới có thể sinh ra instance.
• Hữu ích trong ngữ cảnh các mối quan hệ tổng quát hoá.
• Ký hiệu: từ khoá {abstract} hoặc tên lớp ở font in nghiêng.
 No Person-object possible
 Two types of Person: Man and Woman
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 49
 ĐA KẾ THỪA
• UML cho phép đa kế thừa.
• Một lớp có thể có nhiều lớp cha.
• Ví dụ:
 A Tutor is both an Employee and a Student
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 50
 CÓ VÀ KHÔNG CÓ TỔNG QUÁT HOÁ
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 51
 NỘI DUNG
1.Đối tượng
2.Lớp
3.Các thành phần cơ bản
4.Tạo một biểu đồ lớp
5.Phát sinh mã nguồn
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 52
 TẠO MỘT BIỂU ĐỒ LỚP
• Không thể trích xuất các lớp, thuộc tính, liên kết từ văn bản text viết
 bằng ngôn ngữ tự nhiên một cách tự động.
• Chỉ dẫn
 • Các danh từ thường chỉ các lớp
 • Các tính từ thường chỉ các giá trị thuộc tính
 • Các động từ thường chỉ các hoạt động
• Ví dụ: The library management system stores users with their
 unique ID, name and address as well as books with their title, author
 and ISBN number. Ann Foster wants to use the library.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 53
 CÁC BƯỚC TẠO BIỂU ĐỒ LỚP
1. Nhận diện các lớp
2. Nhận diện các thuộc tính
3. Nhận diện quan hệ giữa các lớp
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 54
 VÍ DỤ: UNIVERSITY INFORMATION SYSTEM
• A university consists of multiple faculties which are composed of various
 institutes. Each faculty and each institute has a name. An address is known
 for each institute.
• Each faculty is led by a dean, who is an employee of the university.
• The total number of employees is known. Employees have a social security
 number, a name, and an email address. There is a distinction between
 research and administrative personnel.
• Research associates are assigned to at least one institute. The field of
 study of each research associate is known. Furthermore, research
 associates can be involved in projects for a certain number of hours, and
 the name, starting date, and end date of the projects are known. Some
 research associates hold courses. Then they are called lecturers.
• Courses have a unique number (ID), a name, and a weekly duration in
 hours.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 55
 BƯỚC 1: NHẬN DIỆN LỚP
 We model the system "University"
• A university consists of multiple faculties which are
 composed of various institutes. Each faculty and
 each institute has a name. An address is known for
 each institute.
• Each faculty is led by a dean, who is an employee
 of the university.
• The total number of employees is known.
 Employees have a social security number, a name,
 and an email address. There is a distinction
 between research and administrative personnel.
• Research associates are assigned to at least one
 institute. The field of study of each research
 associate is known. Furthermore, research
 associates can be involved in projects for a certain
 number of hours, and the name, starting date, and
 end date of the projects are known. Some research
 associates hold courses. Then they are called
 lecturers.
• Courses have a unique number (ID), a name, and a Dean has no further attributes than
 weekly duration in hours. any other employee
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 56
 BƯỚC 2: NHẬN DIỆN THUỘC TÍNH
• A university consists of multiple faculties which are
 composed of various institutes. Each faculty and
 each institute has a name. An address is known
 for each institute.
• Each faculty is led by a dean, who is an employee
 of the university.
• The total number of employees is known.
 Employees have a social security number, a
 name, and an email address. There is a distinction
 between research and administrative personnel.
• Research associates are assigned to at least one
 institute. The field of study of each research
 associate is known. Furthermore, research
 associates can be involved in projects for a certain
 number of hours, and the name, starting date, and
 end date of the projects are known. Some
 research associates hold courses. Then they are
 called lecturers.
• Courses have a unique number (ID), a name, and
 a weekly duration in hours.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 57
 BƯỚC 3: NHẬN DIỆN QUAN HỆ [1]
• Có 3 loại quan hệ :
 • Association
 Abstract vì Employee chỉ có 
 • Generalization 2 loại duy nhất, không có loại nào khác
 • Aggregation
• Nhận diện quan hệ Generalization
• “There is a distinction between research
 and administrative personnel.”
• “Some research associates hold courses.
 Then they are called lecturers.”
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 58
 BƯỚC 3: NHẬN DIỆN QUAN HỆ [2]
• “A university consists of multiple faculties which are
 composed of various institutes.”
 Composition to show existence
 dependency
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 59
 BƯỚC 3: NHẬN DIỆN QUAN HỆ [3]
• “Each faculty is led by a dean, who is an employee of
 the university”
 In the leads-relationship, the
 Employee takes the role of a dean.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 60
 BƯỚC 3: NHẬN DIỆN QUAN HỆ [4]
• “Research associates are assigned to at least one
 institute.”
 Shared aggregation to show that ResearchAssociates
 are part of an Institute, 
 but there is no existence dependency
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 61
 BƯỚC 3: NHẬN DIỆN QUAN HỆ [5]
• “Furthermore, research associates can be involved in
 projects for a certain number of hours.”
 Association class enables to store
 the number of hours for every
 single Project of every single
 ResearchAssociate
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 62
 BƯỚC 3: NHẬN DIỆN QUAN HỆ [6]
• “Some research associates hold courses. Then they are
 called lecturers.”
 Lecturer inherits all characteristics, 
 associations, and aggregations from 
 ResearchAssociate. 
 In addtion, a Lecturer has an association 
 teaches to Course.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 63
 BIỂU ĐỒ LỚP HOÀN THIỆN
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 64
 NỘI DUNG
1.Đối tượng
2.Lớp
3.Các thành phần cơ bản
4.Tạo một biểu đồ lớp
5.Phát sinh mã nguồn
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 65
 PHÁT SINH MÃ NGUỒN
• Các biểu đồ lớp thường được tạo ra với ý định cài đặt các thành
 phần đã mô hình hoá trong một ngôn ngữ lập trình hướng đối
 tượng.
• Thông thường, việc dịch là bán tự động và chỉ yêu cầu can thiệp thủ
 công ở mức tối thiểu.
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 66
 VÍ DỤ [1]
 class Course {
 public int courseNo;
 }
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 67
 VÍ DỤ [2]
 abstract class UniversityMember {
 public String firstName;
 public String lastName;
 public int ssNo;
 }
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 68
 VÍ DỤ [3]
 Enumeration ESemesterESemester{ {
 winter,,
 summer
 }
 EnumerationERoleERole{ {
 lecturer,,
 tutor,,
 examiner
 }
 }
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 69
 VÍ DỤ [4]
 class Student extends 
 UniversityMember {
 public int matNo;
 public CourseExecution [] 
 completedCourses;
 }
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 70
 VÍ DỤ [5]
 class Employee extends UniversityMember {
 private int acctNo;
 public int getAcctNo () { 
 return acctNo; 
 }
 public CourseExecution [] courseExecutions;
 }
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 71
 VÍ DỤ [6]
 class CourseExecution {
 public int year;
 public ESemester semester;
 public Student [] student;
 public Course course;
 public Hashtable support;
 // Key: employee 
 // Value: (role, hours) 
 }
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 72
CÁC THÀNH PHẦN KÝ HIỆU [1]
 Name Notation Description
 Description of the structure and 
 Class
 behavior of a set of objects
 oder
 Abstract class Class that cannot be instantiated
 Relationship between classes:
 navigability unspecified,
 Association
 navigable in both directions,
 not navigable in one direction
 73
CÁC THÀNH PHẦN KÝ HIỆU [2]
 Name Notation Description
 n-ary Relationship between n (here 3) 
 association classes
 More detailed description of an 
 Association class
 association
 An object of C is in a relationship 
 xor relationship with an object of A or with an 
 object of B but not with both
 74
CÁC THÀNH PHẦN KÝ HIỆU [3]
 Name Notation Description
 Shared Parts-whole relationship (A is part 
 aggregation of B)
 Strong 
 Existence-dependent parts-whole 
 aggregation = 
 relationship (A is part of B)
 composition
 Inheritance relationship (A
 Generalization
 inherits from B)
 Object Instance of a class
 Link Relationship between objects
 75
 Câu hỏi? 
MÔ HÌNH HOÁ PHẦN MỀM NGUYỄN THỊ MINH TUYỀN 76

File đính kèm:

  • pdfbai_giang_mo_hinh_hoa_phan_mem_tuan_3_class_diagram_nguyen_t.pdf