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

Phân tích và Thiết kế hướng đối tượng dùng UML: THiết kế class doc

131 670 2

Đ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

Định dạng
Số trang 131
Dung lượng 653,98 KB

Nội dung

PT & TK Hướng đối tượng – Thiết kế kiến trúcMục tiêu w Tìm hiểu mục đích của bước thiết kế Class và vị trí của công đoạn này trong qui trình w Xác định bổ sung các class và quan hệ của

Trang 1

Phân tích và Thiết kế Hướng đối tượng

dùng UML

Module 13: Thiết kế Class

Trang 2

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Mục tiêu

w Tìm hiểu mục đích của bước thiết kế Class và

vị trí của công đoạn này trong qui trình

w Xác định bổ sung các class và quan hệ của

chúng cần để hỗ trợ cho việc cài đặt các cơ chế kiến trúc đã chọn

w Xác định và phân tích việc chuyển đổi trạng thái các đối tường trong các class kiểm soát được trạng thái

w Tinh chỉnh các quan hệ, operation, và thuộc tính

Trang 3

Vò trí cuûa Thieát keá Class

Architect

Designer

Architectural Analysis

Architecture Reviewer

Review the Design

Review the Architecture

Use-Case Analysis

Architectural Design Concurrency Describe Distribution Describe

Class Design

Subsystem Design

Use-Case Design Reviewer Design

Trang 4

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Tổng quan về Class

Supplementary Specifications

Class Design

Architecture Document

Design Model

Design Guidelines

Use-Case Realization

Design Classes

Design Classes

Trang 5

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

Trang 6

PT & TK Hướng đối tượng – Thiết kế kiến trúc

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

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 7

Các khảo sát khi thiết kế Class

w Class stereotype

§ Entity

w Các design pattern khả dụng

w Các cơ chế kiến trúc

§ Persistence

§ Distribution

Trang 8

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Một class phải có một mục tiêu rõ ràng.

Một class phải làm một việc gì đó và phải làm tốt điều này !

Cần bao nhiêu Class ?

w Nếu nhiều class đơn giản Nghĩa là mỗi class:

§ Đóng gói một phần ít hơn trên toàn bộ hệ thống

§ Nhiều khả năng dùng lại hơn

§ Dễ cài đặt hơn

w Nếu nhiều class phức tạp Nghĩa là mỗi class:

§ Đóng gói một phần nhiều hơn trên toàn bộ hệ thống

§ Ít khả năng dùng lại hơn

§ Khó cài đặt hơn

Trang 9

SubWindow

DropDownList Button

MainWindow

Thiết kế các Boundary Class

w Các User interface (UI) boundary class

§ Công cụ xây dựng giao diện người dùng nào sẽ được sử dụng?

§ Bao nhiêu giao diện có thể được xây dựng bởi công cụ?

w Các External system interface boundary class

§ Thường được mô hình như subsystem

Trang 10

PT & TK Hướng đối tượng – Thiết kế kiến trúc

FatClassDataHelper

+ commonlyUsedAtt1 + commonlyUsedAtt2

FatClassLazyDataHelper

+ rarelyUsedAtt3 + rarelyUsedAtt4

Thiết kế các Entity Class

w Các Entity object thường thụ động và persistent

w Các yêu cầu về hiệu năng có thể buộc ta phải tái xây dựng

w Xem thêm bước xác định Persistent Class

Trang 11

Thiết kế Control Class

w Chuyện gì xảy ra với các Control Class?

§ Chúng thật sự cần thiết?

§ Có phải tách chúng ra không?

w Dựa vào đâu để quyết định?

§ Độ phức tạp

§ Khả năng thay đổi

§ Tính phân tán và hiệu năng

Trang 12

PT & TK Hướng đối tượng – Thiết kế kiến trúc

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

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 13

w Mọi thể hiện của class đều đòi hỏi phải lưu giữ trạng thái của nó

w Các Persistent class được gán với cơ chế persistence

Client

Class

Persistency

Analysis Mechanism (Conceptual)

Design Mechanism (Concrete)

Implementation Mechanism (Actual)

Trang 14

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Class Design

Database Design

Class

Database Designer

Data Model

Designer

Database Design Preview

w Persistence strategy must be coordinated

w Ở đây, nhớ rằng các class đều persistent

Trang 15

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

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 16

PT & TK Hướng đối tượng – Thiết kế kiến trúc

w Những cái cần xem xét:

§ Tên Operation, signature, và mô tả

§ Operation visibility

§ Tầm vực Operation

• Class operation hay instance operation

Trang 17

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

CourseOffering

addStudent deleteStudent getStartTime getEndTime

Class

Operation

Trang 18

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Operation: Tìm chúng ở đâu?

w Các thông điệp trong các interaction diagram

w Các chức năng phụ thuộc vào cài đặt khác

§ Các chức năng quản trị

§ Các nhu cầu sao chép class

§ Các nhu cầu kiểm tra bằng, khác nhau, …

Trang 19

Đặt tên và mô tả các Operation

w Các tên thích hợp cho operation

§ Chỉ rõ kết quả của operation

§ Đứng dưới góc nhìn của client

§ Nhất quán qua tất cả các class

w Định nghĩa operation signature

§ operationName(parameter : class, ) : returnType

w Cung cấp một mô tả ngắn, bao gồm ý nghĩa của tất cả các tham số

Trang 20

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Guidelines: Thiết kế Operation Signatures

w Khi thiết kế operation signatures phải bảo đảm hàm chứa:

§ Các tham số truyền theo giá trị hay tham số?

§ Các tham số có bị thay đổi bởi operation?

§ Các tham số là optional?

§ Tham số có giá trị mặc định?

§ Miền tham số hợp lệ?

w Càng ít tham số càng tốt

w Truyền các object thay vì “data bits”

Trang 21

Phát hiện Additional Classes và Relationships

Additional classes và relationships có thể được

thêm vào để hỗ trợ signature

op1(var1:Class2): Class3

Class3

Trang 22

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Public

operations

Protected operations Private operations

Trang 23

Ký hiệu tính khả kiến?

w Các ký hiệu sau được dùng:

Trang 24

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Class

- classifierScopeAttribute classifierScopeOperation()

- instanceScopeAttribute instanceScopeOperation()

Tầm vực

w Xác định số lượng thể hiện của attribute / operation

§ Instance: 1 instance cho mỗi class instance

§ Classifier: 1 instance cho tất cả class instance

w Tầm vực mức Classifier được ký hiệu bằng cách gạch dưới tên attribute/operation

Trang 25

+ hasPrerequisites(forCourseOffering : CourseOffering) : boolean

# passed(theCourseOffering : CourseOffering) : boolean + getNextAvailID() : int

<<entity>>

- studentID

Trang 26

PT & TK Hướng đối tượng – Thiết kế kiến trúc

MathFunctions

<<utility>>

Utility Classes

w Thế nào là một Utility Class?

§ Utility là một class stereotype

§ Dùng để chỉ các class chứa một bộ các chương

trình con miễn phí

w Tại sao lại dùng chúng?

§ Để cung cấp các dịch vụ có thể hữu dụng trong

các ngữ cảnh khác nhau

§ Để gói các hàm thư viện hay các ứng dụng phi đối tượng

Trang 27

Ví duï: Utility Classes

<<utility>>

MathPack

- randomSeed : long = 0 -pi : double = 3.14159265358979

+sin (angle : double) : double +cos (angle : double) : double +random() : double

Trang 28

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Ví dụ: Định nghĩa các Operation

CourseOffering(from University Artifacts)

+ hasPrerequisites(forCourseOffering : CourseOffering) : boolean

# passed(theCourseOffering : CourseOffering) : boolean

<<class>> + getNextAvailID() : int

<<class>> + new(forStudent : string)

+ getStudent(withID : string) : Student

(from Registration)

<<control>>

Schedule(from University Artifacts)

<<entity>>

0 1

0 1 +registrant

0 *

1

0 1

0 1 +currentSchedule

0 * 0 *

+primaryCourses 0 4

+alternateCourses

0 2

ICourseCatalogSystem

+ getCourseOfferings() + initialize()

(from External System Interfaces)

<<Interface>>

1 0 *

Trang 29

(còn tiếp)

Bài tập: Định nghĩa các Operation

w Hãy cho biết:

§ Các architectural layers, các package và các phụ thuộc của chúng

§ Các Design class cho một use case cụ thể

Trang 30

PT & TK Hướng đối tượng – Thiết kế kiến trúc

(còn tiếp)

Bài tập: Define Operations (tt.)

w Với các design class, hãy xác định:

§ Các Operation và mô tả hoàn chỉnh của chúng

§ Operation scope và visibility

§ Mọi mối quan hệ và các class bổ sung để hỗ trợ cho các operation đã định nghĩa

Trang 31

Bài tập: Định nghĩa các Operation (tt.)

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

§ VOPC class diagram, chứa tất cả các operation, operation signature, và các quan hệ

Trang 32

PT & TK Hướng đối tượng – Thiết kế kiến trúc

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

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 33

Nhắc lại: Package Element Visibility

PackageA

Class A1

Class A3

Class A2 A

OO Principle: Encapsulation

Trang 34

PT & TK Hướng đối tượng – Thiết kế kiến trúc

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

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 35

Định nghĩa các Method

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

§ Các thuật toán đặc biệt

§ Các object và các operation khác cần sử dụng

§ Cách cài đặt và sử dụng các attribute và các tham số

§ Cách cài đặt và sử dụng các mối quan hệ

Trang 36

PT & TK Hướng đối tượng – Thiết kế kiến trúc

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 37

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

w Mục đích

§ Thiết kế ảnh hưổng của trạng thái đối tượng lên hành vi của nó

§ Phát triển statecharts để mô hình các hành vi này

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

§ Những object nào có trạng thái đáng kể?

§ Cách xác định các trạng thái của một object?

§ Cách ánh xạ statechart với phần còn lại của mô hình?

Trang 38

PT & TK Hướng đối tượng – Thiết kế kiến trúc

event(args) [guard condition]

Trang 39

w Trang thái bắt đầu (Initial state)

§ Là trạng thái khi mới được khởi tạo của object

§ Mang tính bắt buộc

§ Chỉ có thể có 1 initial state

w Trang thái kết thúc (Final state)

§ Chỉ vị trí kết thúc đời sống của object

§ Có thể có nhiều

Final state Initial state

Các trạng thái đặc biệt

Trang 40

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Qui trình suy dẫn ra Statecharts

w Xác định và định nghĩa các trạng thái

w Xác định các event

w Xác định các transition (hồi đáp lại các event)

w Thêm các activity và các action

Trang 41

w Significant, dynamic attributes

w Sự tồn tại và không tồn tại của các link

numStudents < 100 Open

Số sinh viên tối đa trong 1 lớp là 100

numStudents > = 100

Closed

Link to Professor Exists Link to Professor Doesn’t Exist

Trang 42

PT & TK Hướng đối tượng – Thiết kế kiến trúc

+instructor

CourseOffering

+ addProfessor() + removeProfessor()

<<entity>>

Professor

<<entity>> 0 1

0 *

Events: addProfessor, removeProfessor

Xác định các Event

w Xem xét các class interface operation

Trang 43

Professor

<<entity>>

0 1 0 *

Xác định các Transition

w Với mỗi trạng thái, xác định events nào gây ra transitions đến trạng thái nào, bao gồm các điều kiện kiểm soát, nếu cần

w Transitions mô tả điều gì xảy ra khi đối tượng hồi đáp lại một event nhân được

Trang 44

PT & TK Hướng đối tượng – Thiết kế kiến trúc

State A

State B do: activity

event[ condition ] / action

§ Kết hợp với một trạng thái

§ Bắt dầu khi trạng thái bắt đầu

§ Cần thời gian để hoàn tất

§ Có thể ngắt

w Actions

§ Kết hợp với 1 transition

§ Cần thời gian không đáng kể để hoàn tất

§ Không thể ngắt ngang

Trang 45

event ^TargetObject.event

Trang 46

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Committed do: Generate class roster

closeRegistration [ has Professor assigned ]

close

/ numStudents = 0

addProfessor

closeRegistration remove student / numStudents = numStudents - 1

cancel

removeProfessor

[ numStudents = 10 ] close[ numStudents < 3 ]

Trang 47

Ví dụ: Statechart với các trạng thái lồng nhau

Full

Committed do: Generate class roster

closeRegistration

close

remove a professor

close[ numStudents < 3 ] [ numStudents = 10 ]

closeRegistration[ numStudents >= 3 ]

close[ numStudents >= 3 ]

closeRegistration [ has Professor assigned ]

close / numStudents = 0

Trang 48

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Những Object có Significant State?

w Các Object có vai trò thể hiện rõ bởi state transitions

w Các use case phức tạp là state-controlled

w Không cần mô hình hóa tất cả các object

§ Các Object dễ dàng cài đặt

§ Các Object không thuộc loại state-controlled

§ Các Object chỉ với một trạng thái

Trang 49

Cách Statecharts gắn với phần còn lại?

w Các Event biến thành các operation

w Các Method phải được cập nhật với các thông tin đặc thù cho các trạng thái

w Các trạng thái được biểu diễn bởi attributes

§ Chúng là input cho bước định nghĩa Attribute

Trang 50

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Bài tập: Định nghĩa States (optional)

w Hãy cho biết:

§ Tất cả các design classe

w Hãy xác định:

§ Các Class vứi significant state-controlled behavior

§ Các trạng thái và transitions quan trong của class

w Hãy xây dựng lược đồ:

§ Statechart của một class

Trang 51

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

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 52

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Định nghĩa Attributes

w Mục đích

§ Formalize definition of attributes

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

§ Persistency

§ Visibility

§ Tên gọi, kiểu, và giá trị mặc định

Trang 53

Nhắc lại: Thế nào là Attribute?

:CourseOffering

number = 101 startTime = 900 endTime = 1100

:CourseOffering

number = 104 startTime = 1300 endTime = 1500

CourseOffering

number startTime endTime

Class

Attribute

Object

Attribute Value

Trang 54

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Cách tìm ra các Attribute?

w Khảo sát mô tả của các method

w Khảo sát các trạng thái

w Bất kỳ thông tin nào mà class cần duy trì

Trang 55

Biểu diễn Attribute

w Mô tả name, type, và giá trị mặc định

§ attributeName : Type = Default

w Tuân thủ qui ước đặt tên của NNLT và dự án

w Type phải là KDL cơ sở trong NNLT cài đặt

§ Các KDL định sẵn, người dùng đ/n

w Mô tả tình khả kiến

§ Public: ‘+’

§ Private: ‘-’

§ Protected: ‘#’

Trang 56

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Các Derived Attribute

w Thế nào là derived attribute?

§ Một attribute mà giá trị co thể tính từ giá trị của các attribute khác

w Khi nào dùng chúng?

§ Khi không đủ thời gian để tính lại giá trị mỗi khi cần thiết

§ Dung hòa giữa thời gian thực hiện và bộ nhớ sử dụng

Trang 57

Ví duï: Define Attributes

(from University Artifacts)

0 *

0 *

+primaryCourses 0 4

+alternateCourses

0 2

Trang 58

PT & TK Hướng đối tượng – Thiết kế kiến trúc

(còn tiếp)

Bài tập: Define Attributes (optional)

w Hãy cho biết:

§ Các architectural layers, các package và phụ thuộc của chúng

§ Các Design class của một use case cụ thể

Trang 59

(còn tiếp)

Bài tập: Define Attributes (tt.)

w Với các design class hãy xác định:

§ Các Attribute và mô tả đầy đủ của nó

§ Tầm vực và tính khả kiến của Attribute

§ Mọi mối quan hệ và class bổ sung để hỗ trợ cho việc định nghĩa các attribute và attribute

signatures

Trang 60

PT & TK Hướng đối tượng – Thiết kế kiến trúc

Bài tập: Define Attributes (cont.)

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

§ VOPC class diagram, chứa tất cả các attribute và mối quan hệ

Trang 61

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

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

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

w Giải quyết đụng độ giữa các Use-Case

w Xử lý các yêu cầu phi chức năng nói chung

Trang 62

PT & TK Hướng đối tượng – Thiết kế kiến trúc

w Dependency là gì?

§ Là một loại quan hệ giữa hai object

w Mục đích

§ Xác định những nơi KHÔNG cần đến các mối

quan hệ cấu trúc

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

§ Những gì buộc supplier trở nên nhìn thấy được bởi client

Định nghĩa Dependency

Trang 63

w Association là quan hệ câu trúc

w Dependency là quan hệ phi cấu trúc

w Để “nói chuyện” được, object phải khả kiến

§ Tham chiếu đến biến cục bộ

§ Tham chiếu đến tham số

§ Tham chiếu toàn cục

§ Tham chiếu đến trường dữ liệu (Field)

Association

Client Supplier1

Supplier2

Dependency

So sánh Dependency và Association

Ngày đăng: 27/06/2014, 03:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w