1. Trang chủ
  2. » Công Nghệ Thông Tin

Định nghĩa các mỗi kết hợp

20 325 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Định nghĩa các mỗi kết hợp
Tác giả Dương Anh Đức
Chuyên ngành Object-Oriented Design and Architecture
Thể loại Lecture notes
Định dạng
Số trang 20
Dung lượng 194,42 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các bước thiết kế Classw Tạo các Design Class ban đầu w Xác định các Persistent Class w Định nghĩa các Operation w Định nghĩa Class Visibility w Định nghĩa các Method w Định nghĩa các tr

Trang 1

Các bước thiết kế Class

w Tạo các Design Class ban đầu

w Xác định các Persistent Class

w Định nghĩa các Operation

w Định nghĩa Class Visibility

w Định nghĩa các Method

w Định nghĩa các trạng thái

w Định nghĩa các thuộc tính

w Định nghĩa các phụ thuộc

w Định nghĩa các mỗi kết hợp

w Định nghĩa các quan hệ tổng quát hóa

Trang 2

Định nghĩa Associations

w Mục đích

§ Tinh chỉnh các association còn lại

w Những gì cần xem xét :

§ Cân nhắc giữa Association và Aggregation

§ Cân nhắc giữa Aggregation và Composition

§ Cân nhắc giữa Attribute và Association

§ Chiều của quan hệ (Navigability)

§ Thiết kế Association class

§ Thiết kế bản số (Multiplicity design)

Trang 3

Whole Part

Nhắc lại: Composition là gì ?

w Là một dạng của aggregation với tính sở hữu cao và trùng khớp về chu kỳ sống

§ “Bộ phận” không thể tồn tại lâu hơn “toàn thể”

Trang 4

w Shared Aggregation

w Non-shared Aggregation

1

Bản số > 1

Bản số = 1

Bản số = 1

Composition

Aggregation: Shared hay không shared

Trang 5

composition

Class1

Class1

Class2

Class2

Aggregation hay Composition?

w Xem xét

§ Chu kỳ sống của Class1 và Class2

Trang 6

Ví duï: Composition

Trang 7

Cân nhắc giữa Attributes và Composition

w Dùng composition khi

§ Các thuộc tính cần được nhận dạng độc lập

§ Nhiều class có chung các thuộc tính

§ Các thuộc tính có cấu trúc phức tạp và bản thân chúng cũng có thuộc tính riêng

§ Các thuộc tính có hành vi riêng (phức tạp)

§ Các thuộc tính có quan hệ riêng

w Các trường hợp còn lại dùng attributes

Trang 8

Ví duï: Attributes/Composition

Composition of separate class

Attributes

0 *

11

Student

- name

- address

<<classifier scope>> - nextAvailID : int

- StudentID : int

- dateofBirth : Date

+ addSchedule() + getSchedule() + delete schedule() + hasPrerequisites()

# passed()

<<entity>>

Schedule

+ submit() + // save()

# any conflicts?() + // create with offerings() + new()

+ passed()

<<entity>>

- Semester

Trang 9

Schedule CourseOffering

0 4 0 *

primaryCourses

Chiều của quan hệ

w Khảo sát các interaction diagram

w Ngay cả khi cả 2 chiều đều có vẻ cần thiết,

vẫn có thể chỉ 1 chiều hoạt động

§ Một chiều quan hệ ít xảy ra

§ Số thể hiện của một class ít

Trang 10

Ví dụ: Tinh chỉnh chiều quan hệ

w Tổng số Schedule nhỏ, hay

w Không bao giờ cần một list

Schedule có CourseOffering

xuất hiện trên đó

w Tổng số CourseOffering nhỏ,

hay

w Không bao giờ cần một list

CourseOffering có Schedule

xuất hiện trên đó

w Tổng số CourseOffering và

Schedule đều không nhỏ

w Phải quan tâm đến cả 2 chiều

Schedule CourseOffering

0 4 0 *

primaryCourses

Schedule CourseOffering

0 4 0 *

primaryCourses

Schedule CourseOffering

0 4 0 *

primaryCourses

Trang 11

Ví duï: Thieát keá Association Class

Schedule CourseOffering

0 4 0 *

primaryCourses

PrimaryScheduleOfferingInfo

- grade: char = I

alternateCourses

0 2 0 *

alternateCourses

Design Decisions

Trang 12

w Bản số = 1, hay = 0 1

§ Có thể cài đặt đơn giản như một giá trị hay pointer

§ Không cần thiết kế gì thêm

w Bản số > 1

§ Không thể dùng giá trị đơn hay pointer

§ Cần thực hiện thêm một số công việc thiết kế

Professor CourseOffering

0 *

0 1

instructor

Thiết kế bản số

Trang 13

Multiplicity Design Options

w Mô hình hóa tường minh một container class

w Ghi chú

instructor

Professor CourseOffering

0 *

0 1

CourseOffering <<entity>>

Professor

<<entity>> CourseOfferingList

+ new() + add()

1 0 *

0 1 0 1

+instructor

List

Trang 14

Item List

Parameterized

Class

Formal arguments

Parameterized Class (template) là gì?

w Là một class dùng để định nghĩa các class khác

w Thường dùng cho các container class

§ Một số container class thông dụng:

• Set, list, dictionary, stack, queue, …

Trang 15

Thể hiện của Parameterized Class

Instantiated Class <actual arguments>

<<bind>> <actual arguments>

Parameterized

Class

Formal arguments

Instantiated Class

HAY

Kết buộc ẩn Kết buộc tường

minh

Trang 16

Ví dụ: Thể hiện của Parameterized Class

CourseOffering <<entity>>

CourseOfferingList

Trước

Sau

<<bind>> <CourseOffering>

List

Item

List <CourseOffering> CourseOffering

HAY

Trang 17

CourseOffering Professor

Multiplicity Design: Optionality

w Nếu một link là tùy chọn, hãy cèn thêm một operation để kiểm tra sự tồn tại của link

Trang 18

(còn tiếp)

Bài tập: Đ/n Dependency và Association

w Hãy cho biết:

§ Use-case realization của 1 use case và chi tiết thiết kế của 1 subsystem

§ Thiết kế của tất cả các design element

Trang 19

Bài tập: Đ/n Dependenc và Association (tt.)

w Hãy xác định:

§ Chiều của mỗi quan hệ

§ Mọi class cần bổ sung để hỗ trợ cho việc thiết kế quan hệ

§ Mọi association được tinh chỉnh thành dependency

§ Mọi association được tinh chỉnh thành aggregation hoặc composition

§ Mọi tinh chỉnh liên quan đến bản số

Trang 20

Bài tập: Đ/n Dependency và Association (tt.)

w Xây dựng lược đồ

§ Một bản cập nhật của VOPC, bao gồm cả các tinh chỉnh quan hệ

Ngày đăng: 06/10/2013, 08:20

HÌNH ẢNH LIÊN QUAN

w Mô hình hóa tường minh một container class - Định nghĩa các mỗi kết hợp
w Mô hình hóa tường minh một container class (Trang 13)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w