SlideShare a Scribd company logo
1 of 94
Download to read offline
Phân tích thiết kế hướng đối tượng
2 – Phân tích thiết kế hướng đối tượng 
Nội dung trước 
2 
Giới thiệu 
 Tiến trình phát triển hệ thống 
Các phương pháp phát triển hệ thống
2 – Phân tích thiết kế hướng đối tượng 
Nội dung 
3 
Hệ thống hướng chức năng vs. Hệ thống hướng đối tượng 
Các đặc điểm cơ bản của hệ thống hướng đối tượng 
Giới thiệu UML – UML 2.0 
Phân tích thiết kế hướng đối tượng với UML 2.0
2 – Phân tích thiết kế hướng đối tượng 
Giới thiệu 
Lịch sử phát triển của ngôn ngữ lập trình: 
First Generation (1954 – 1958) 
•Fortran I 
Second Generation (1959 – 1961) 
•Fortran II, Algol, Cobol 
Third Generation (1962 – 1970) 
•PL/I, Pascal 
Object Oriented Languages 
•Smalltalk, C++, Java 
4
2 – Phân tích thiết kế hướng đối tượng 
Lịch sử phát triển OOAD 
5
2 – Phân tích thiết kế hướng đối tượng 
Lịch sử của UML 
6 
OOSE 
OMT 
Booch method 
Others method 
Unified method 
UML 0.9 
UML 1.0 
UML 1.1 
UML 1.3 
UML 2.0 
OOPSLA ‘95 
Web – Jun ‘96 
UML Partners 
OMG Acceptance, Nov ‘97 
Final submission to OMG, Sep ’97 
First submission to OMG, Jan ‘97 
Public & Feedback
2 – Phân tích thiết kế hướng đối tượng 
Giới thiệu 
Thiết kế cấu trúc và thiết kế hướng đối tượng 
7 
Student Account 
Đăng ký học phần 
v..v… 
Thi cử 
Đóng học phí 
Nhập học 
Thiết kế cấu trúc
2 – Phân tích thiết kế hướng đối tượng 
Giới thiệu 
Thiết kế cấu trúc và thiết kế hướng đối tượng 
8 
Student Account 
v..v… 
Messege 
Messege 
Messege 
Messege 
Thiết kế hướng đối tượng
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng 
9 
Lập trình cấu trúc
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng 
10
2 – Phân tích thiết kế hướng đối tượng 
Nguyên tắc cơ bản của OO 
 Hướng đối tượng – Object-Oriented 
 Trừu tượng hoá – Abstraction 
 Tính đóng gói – Encapsulation 
 Tính đơn thể - Modularity 
 Tính phân cấp – Hierarchy 
11
2 – Phân tích thiết kế hướng đối tượng 
Trừu tượng hoá – Abstraction 
 Quản lý độ phức tạp 
12 
Người bán hàng 
Sản phẩm 
Khách hàng
2 – Phân tích thiết kế hướng đối tượng 
Tính đóng gói – Encapsulation 
 Che dấu cài đặt bên trong với clients 
Clients phụ thuộc vào interface 
 Tăng tính mềm dẻo 
13
2 – Phân tích thiết kế hướng đối tượng 
Tính đơn thể - Modularity 
Phân chia nhỏ 1 vấn đề phức tạp thành nhiều phần nhỏ, đơn giản hơn để có thể quản lý được độ phức tạp 
14 
Hệ thống xử lý mua bán hàng hoá 
Nhận đơn đặt hàng 
Thực hiện đơn đặt hàng 
Thanh toán đơn đặt hàng 
Lập hoá đơn bán hàng 
Thanh toán hoá đơn 
Xuất hoá đơn 
…Các đơn thể quản lý tồn kho
2 – Phân tích thiết kế hướng đối tượng 
Tính phân cấp – Hierarchy 
15 
Bất động sản 
Chứng khoán 
Tài khoản ngân hàng 
Tài sản 
Cổ phiếu 
Trái phiếu 
Tài khoản 
Tiết kiệm 
Tài khoản Thanh toán 
Tăng mức độ trừu tượng 
Giảm mức độ 
trừu tượng 
 Các phần tử trên cùng một mức phải có cùng mức độ trừu tượng
2 – Phân tích thiết kế hướng đối tượng 
Các khái niệm cơ bản của HĐT 
Objects & Class 
Attributes (Properties) & Operation (Behavior) 
Method & Message 
Interface (Polymorphism) 
Component 
Package 
Subsystem 
Relationship 
16
2 – Phân tích thiết kế hướng đối tượng 
Object 
 Một cách không hình thức, một đối tượng biểu diễn một thực thể, dạng vật lý, khái niệm hoặc phần mềm 
17 
Thực thể vật lý 
Thực thể 
Khái niệm 
Thực thể Phần mềm 
Chemical Process 
Truck 
Linked-list
2 – Phân tích thiết kế hướng đối tượng 
Objects & Class 
Một đối tượng là một đối tượng trừu tượng, hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể 
Lớp (Class) – khuôn mẫu cho các thể hiện của object 
Đối tượng (Object) – Thể hiện của một class 
Thuộc tính (Attributes) 
Hành vi (Behaviors) – chi tiết đối tượng có thể làm gì 
18
2 – Phân tích thiết kế hướng đối tượng 
Biểu diễn đối tượng 
 Một đối tượng được biểu diễn bởi một hình chữ 
nhật với tên được gạch dưới 
19 
: Profressor 
ProfressorJohn 
ProfressorJohn: 
Professor 
A x B = 10 
Profressor John 
Chỉ có tên Object 
Tên Class và tên Object 
Chỉ có tên Class
2 – Phân tích thiết kế hướng đối tượng 
Class - Example 
Class 
Course 
20 
A x B = 10 
Profressor John 
Properties 
Tên 
Địa điểm 
Thời gian 
Số tín chỉ 
Giờ bắt đầu 
Giờ kết thúc 
Behavior 
Thêm một sinh viên 
Huỷ một sinh viên 
Lấy danh sách giáo sư 
…
2 – Phân tích thiết kế hướng đối tượng 
Class & Object 
21
2 – Phân tích thiết kế hướng đối tượng 
Method & Message 
Phương thức (Methods) implement an object’s behavior 
Messages are sent to trigger methods 
Procedure call from one object to the next 
22
2 – Phân tích thiết kế hướng đối tượng 
Phương thức và message 
23
2 – Phân tích thiết kế hướng đối tượng 
Polymorphism 
Khả năng che dấu nhiều cài đặt khác nhau bên dưới một giao diện (interface) duy nhất 
 Nguyên tắc OO đóng gói 
24 
Nhà sản xuất A 
Nhà sản xuất B 
Nhà sản xuất C
2 – Phân tích thiết kế hướng đối tượng 
Polymorphism – Interface 
25 
 Interface là hình thức hoá polymorphism 
Interface hỗ trợ kiến trúc “plug & play” 
<<interface>> 
Shape 
Draw Move Scale Rotate 
Tube 
Pyramid 
Cube 
Quan hệ Realizzation
2 – Phân tích thiết kế hướng đối tượng 
Component 
Một phần không tầm thường của hệ thống, gần như độc lập và có thể thay thế được, giữ một chức năng rõ ràng trong hệ thống 
Một component có thể là 
Một source code component 
Một run time components hoặc 
Một executable component 
26 
Source File Name 
<<EXE>> 
Executable name 
<<DLL>> 
Component name
2 – Phân tích thiết kế hướng đối tượng 
Package 
Một package là một cơ chế để tổ chức các phần tử vào thành các nhóm 
Một phần tử trong mô hình có thể chứa các phần tử khác 
Dùng để 
Tổ chức mô hình đang phát triển 
Một đơn vị trong quản trị cấu hình 
27 
Package Name 
Nguyên tắc OO Tính đơn thể
2 – Phân tích thiết kế hướng đối tượng 
Subsystem 
 Tổ hợp của một package (có thể chứa các phần tử khác trong mô hình) và một class(có hành vi) 
Hiện thực hoá một hoặc nhiều interface định nghĩa cho hành vi của nó 
28 
<<subsystem>> Subsystem Name 
Subsystem 
Relization 
Interface
2 – Phân tích thiết kế hướng đối tượng 
Subsystem & Component 
Component là thể hiện ở mức vật lý của một khái niệm trừu tượng trong thiết kế 
Subsystem có thể dùng để biểu diễn các component trong thiết kế 
29 
Component name 
<<subsystem>> Component name 
Design Model 
Implementation Model 
Component Interface 
Component Interface
2 – Phân tích thiết kế hướng đối tượng 
Relationships 
Association (Kết hợp) – Bản số và chiều 
Aggregation (Thu nạp): toàn thể và bộ phận 
Composition (Cấu thành) 
Dependency (Phụ thuộc) 
Generalization (Tổng quát hóa) Đơn/Đa kế thừa 
Realization (Hiện thực hoá) 
30
2 – Phân tích thiết kế hướng đối tượng 
Association 
 Mô hình hoá một liên kết ngữ nghĩa giữ các class 
31 
class 
Tên role 
Association 
Tên association
2 – Phân tích thiết kế hướng đối tượng 
Aggregation 
Một dạng đặc biệt của association – mô hình hoá mối quan hệ toàn thể - bộ phận giữa một thực thể và các bộ phận của nó 
32 
Whole 
Part 
Aggregation
2 – Phân tích thiết kế hướng đối tượng 
Composition 
Một dạng aggregation có tính sở hữu cao và cùng chu kỳ sống 
Các bộ phận không thể sống lâu hơn thực thể 
33 
Whole 
Part 
Aggregation
2 – Phân tích thiết kế hướng đối tượng 
Association: Bản số và chiều 
Bản số xác định số đối tượng tham gia vào một mối quan hệ 
Số các thể hiện của một class quan hệ với MỘT thể hiện của một class khác 
Được chỉ ra ở mỗi đầu của quan hệ association 
Association và aggregation mặc định là hai chiều, nhưng người ta thường giới hạn theo một chiều 
Mũi tên được thêm vào để chỉ chiều của mối quan hệ 
34
2 – Phân tích thiết kế hướng đối tượng 
Association: Bản số 
Không xác định 
Chỉ một 
Không hoặc nhiều 
Một hoặc nhiều 
Không hoặc một 
Khoảng được chỉ định 
Các khoảng không liên tục 
35 
1 
0 .. * 
1..* 
0..1 
2..4 
2,4,6
2 – Phân tích thiết kế hướng đối tượng 
Bản số và chiều 
36 
1 
0..* 
Navigation 
Multiplicity
2 – Phân tích thiết kế hướng đối tượng 
Mối quan hệ: Dependency 
Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử này có thể gây ra thay đổi ở phần tử kia 
Quan hệ “sử dụng”, không cấu trúc 
37 
Dependency relationship 
Dependency relationship 
Class 
Component 
Package
2 – Phân tích thiết kế hướng đối tượng 
Generalization 
Quan hệ giữa các class trong đó một lớp chia sẻ cấu trúc và/hoặc hành vi của một hoặc nhiều class khác 
Xác định một sự phân cấp các mức độ trừu tượng trong đó một subclass kế thừa từ một hoặc nhiều superclass 
Đơn kế thừa 
Đa kế thừa 
Generalization là quan hệ « là một dạng của » 
38
2 – Phân tích thiết kế hướng đối tượng 
Đơn kế thừa 
 Một class kế thừa từ một class khác 
39 
Tổ tiên 
Hậu duệ 
Hậu duệ 
Generalization Relationship 
Super Class (cha) 
Sub Classes
2 – Phân tích thiết kế hướng đối tượng 
Chỉ sử dụng đa kế thừa khi thật cần, và luôn phải cẩn thận ! 
40 
Đa kế thừa 
Đa kế thừa
2 – Phân tích thiết kế hướng đối tượng 
Cái gì được kế thừa 
Một subclass kế thừa các thuộc tính, hành vi và các mối quan hệ từ cha nó 
Một subclass có thể: 
Bổ sung thuộc tính, hành vi và các mối quan hệ 
Định nghĩa lại các hành vi (nên cẩn thận!) 
Các thuộc tính, hành vi và các mối quan hệ chung được đặt ở mức cao nhất có thể trong cấu trúc phân cấp 
41
2 – Phân tích thiết kế hướng đối tượng 
Realization 
Một classifier đóng vai trò một hợp đồng mà một classifier khác đồng ý thực hiện 
Xuất hiện giữa: 
Các Interface và các classifier hiện thực chúng 
Các Use case và các collaboration hiện thực chúng 
42 
Dạng tắt 
Dạng chính tắt 
Use case 
Use case Realization
2 – Phân tích thiết kế hướng đối tượng 
Giới thiệu về UML 
UML chỉ đơn thuần là ngôn ngữ đồ hoạ để mô hình hoá chứ không phải là phương pháp để phát triển hệ thống 
43
2 – Phân tích thiết kế hướng đối tượng 
Giới thiệu về UML 
UML 2.0 cung cấp 14 biểu đồ để mô hình hoá cấu trúc và chức năng của hệ thống, chia làm 2 nhóm: 
Biểu đồ mô hình cấu trúc 
Biểu đồ mô hình chức năng 
44
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ cấu trúc 
6 loại biểu đồ cấu trúc: 
Biểu đồ lớp (Class) 
Biểu đồ đối tượng (Object) 
Biểu đồ gói (package) 
Biểu đồ triển khai (Deployment) 
Biểu đồ thành phần (Component) 
Biểu đồ cấu trúc phức hợp (Composite structure diagrams) 
45
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ cấu trúc 
Biểu đồ lớp (class diagram) 
Biểu diễn mối quan hệ giữa các lớp 
46
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ cấu trúc 
Biểu đồ đối tượng (object diagram) 
Biểu diễn mối quan hệ giữa các đối tượng 
47
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ cấu trúc 
Biểu đồ gói (package diagram) 
Biểu đồ gói gộp các thành phần khác nhau của UML (ví dụ: lớp) để tạo thành thành phần lớn hơn 
48
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ cấu trúc 
Biểu đồ triển khai (deployment diagram) 
Biểu diễn cấu trúc phần cứng và các thành phần phần mềm của hệ thống 
49 
Printer123 Le Loi StrRegional ATM ServerBanking Datab... 345 Nguyen Hue Str. Oracle ServerATMServer.exeATMClient.exeATMClient.exe<<Private Network>><<Private Network>> <<LAN>>
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ cấu trúc 
Biểu đồ thành phần (component diagram) 
Biểu diễn quan hệ giữa các thành phần của hệ thống 
50
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ cấu trúc 
Biểu đồ cấu trúc phức hợp (composite structure diagram) 
Minh hoạ chi tiết cấu trúc bên trong của một lớp 
51
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
8 loại biểu đồ chức năng 
Biểu đồ hoạt động (activity diagram) 
Biểu đồ tương tác (interaction diagrams) 
•Biểu đồ chuỗi tuần tự (sequence diagram) 
•Biểu đồ cộng tác (communication/collaboration diagram) 
•Biểu đồ khát quát tương tác (interaction overview diagram) 
•Biểu đồ thời gian (timing diagram) 
Biểu đồ máy trạng thái (state machines) 
•Máy trạng thái chức năng (behavior state machines) 
•Máy trạng thái giao thức (protocol state machines) 
Biểu đồ ca sử dụng (use case diagram) 
52
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
Biểu đồ hoạt động 
(activity diagram) 
 Được dùng để mô 
tả luồng công việc 
của hệ thống hoặc 
luồng hoạt động 
trong một ca sử 
dụng hoặc mô tả 
thiết kế chi tiết của 
một phương thức 
(method) 
53
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
Biểu đồ chuỗi tuần tự (sequence diagram) 
Mô tả các hoạt động của các đối tượng trong một ca sử dụng dựa vào thứ tự xuất hiện theo thời gian 
54
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
Biểu đồ cộng tác (collaboration diagram) 
 Là cách biểu diễn khác của biểu đồ chuỗi tuần tự 
nhưng tập trung vào mối quan hệ và giao tiếp giữa 
các đối tượng 
55
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
Biểu đồ khát quát tương tác (interaction overview 
diagram) 
 Được dùng để mô tả tương tác giữa các đối tượng trong các 
ca sử dụng phức tạp 
 Ít được sử dụng 
Biểu đồ thời gian (timing diagram) 
 Được dùng để mô tả tương tác giữa các đối tượng theo thời 
gian. Chủ yếu được dùng để mô tả sự thay đối trạng thái 
của đối tượng khi có tác động của một sự kiện theo thời 
gian. 
 Được dùng để phát triển các hệ thống thời gian thực và hệ 
thống nhúng 
56
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
Biểu đồ máy trạng thái chức năng (behavior state machines) 
Được dùng để mô tả các trạng thái khác nhau mà các đối tượng của một lớp có thể có trong thời gian tồn tại của chúng. 
57
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
Biểu đồ máy trạng thái giao thức (protocol state machines) 
Được dùng để mô tả giao thức giữa các lớp 
Ví dụ: open database -> Query or update 
Biểu đồ ca sử dụng (use case diagram) 
Được dùng để mô tả tương tác giữa một hệ thống với người sử dụng hoặc với các hệ thống khác có tương tác với nó. 
Là công cụ để mô tả các yêu cầu của hệ thống 
Là một trong những công cụ quan trọng nhất trong phân tích và thiết kế hướng đối tượng 
58
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
59
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
60
2 – Phân tích thiết kế hướng đối tượng 
Biểu đồ chức năng 
61
2 – Phân tích thiết kế hướng đối tượng 
Các Ràng buộc 
Ràng buộc (constraints) 
Dùng để biểu diễn ràng buộc và các quan hệ mà không thể biểu diễn được bằng UML 
Ràng buộc được đặt trong ngoặc { } 
62
2 – Phân tích thiết kế hướng đối tượng 
Các giá trị đính 
Nhãn:giá trị (tagged values) 
Là một cặp chuỗi ký tự: nhãn (tag) và giá trị (value) được dùng để bổ sung thông tin cho một phần tử nào đó (lớp, đối tượng, quan hệ …) 
Nhãn và giá trị được đặt trong ngoặc { } 
63
2 – Phân tích thiết kế hướng đối tượng 
Các khuôn mẫu 
Khuôn mẫu (stereotype) 
Cho phép mở rộng UML bằng cách sử dụng các phần tử mô hình hoá đã có sẵn trong UML 
Khuôn mẫu có thể sử dụng ràng buộc và tagged values 
Khuôn mẫu được đặt trong dấu << >> 
64
2 – Phân tích thiết kế hướng đối tượng 
Các ghi chú 
Note: Có thể đặt ghi chú cho mọi phần tử UML 
Ghi chú dùng để thêm thông tin cho các lược đồ 
Nó là hình chữ nhật bị bẻ góc 
Ghi chú có thể móc nối với một phần tử bằng một đường đứt nét 
65
2 – Phân tích thiết kế hướng đối tượng 
Đặc điểm cơ bản của OOAD 
Use-case driven 
Architecture Centric 
•Cấu trúc phần mềm quyết định việc mô tả, xây dựng và viết tài liệu hệ thống 
•3 dạng cấu trúc của một hệ thống: 
•Chức năng (functional view): chức năng bên ngoài của hệ thống từ góc nhìn của người sử dụng : biểu đồ ca sử dụng, biểu đồ hoạt động 
•Cấu trúc tĩnh (static view): lớp, thuộc tính, phương thức, quan hệ 
•Cấu trúc động (dynamic view): chức năng bên trong của hệ thống: biểu đồ máy trạng thái chức năng 
Iterative and Incremental 
66
2 – Phân tích thiết kế hướng đối tượng 
Ưu điểm của OOAD 
Việc chia nhỏ một hệ thống lớn thành các module sẽ giúp cho việc giải quyết vấn đề dễ dàng hơn, dễ chia sẻ giữa các thành viên của dự án và dễ dàng trao đổi với người dùng về các yêu cầu của hệ thống 
Dễ dàng sử dụng lại các module trong các dự án khác 
Tư duy suy nghĩ về đối tượng gần gũi với thực tế 
67
2 – Phân tích thiết kế hướng đối tượng 
Ưu điểm 
Một mô hình chung 
Có tính dễ dùng lại 
Mô hình phản ánh chính xác thế giơi thực 
Mô tả chính xác hơn các tập dữ liệu và các xử lý 
Được phân rã dựa trên các phân chia tự nhiên 
Dễ hiểu và dễ bảo trì 
Tính ổn định 
Một thay đổi nhỏ trong yêu cầu không gây ra sự thay đổi lớn trong hệ thống đang phát triển 
68
2 – Phân tích thiết kế hướng đối tượng 
Ưu điểm của OOAD 
69
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Unified process là một phương pháp phát triển hệ thống trong đó quy định khi nào thì sử dụng các kỹ thuật UML và sử dụng chúng như thế nào trong quá trình phân tích và thiết kế hệ thống. 
Tác giả: Booch, Jacobsen, Rumbaugh 
Là phương pháp hướng đối tượng 
Không phải là một quy trình phát triển phần mềm hoàn thiện 
•Không xét đến các vấn đề về phân bổ nhân lực, ngân quỹ, quản lý hợp đồng 
•Không quy định về các hoạt động bảo trì hay hỗ trợ khách hàng 
•Không xét đến các vấn đề tương tác giữa các dự án 
70
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
71
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Pha khởi tạo (Inception): giống như pha lập kế hoạch 
Các bước liên quan: 
•Mô hình hoá giá trị kinh doanh của hệ thống (business modeling) * 
•Xác định yêu cầu (requirements)* 
•Phân tích (analysis)* 
•Thiết kế (design) 
•Thực hiện (implementation) 
•Kiểm tra (test) 
•Môi trường phát triển (environment)* 
Kết quả: 
•Phạm vi của dự án 
•Các yêu cầu và ràng buộc quan trọng 
•Kế hoạch dự án bước đầu 
•Miêu tả tính khả thi và rủi ro của dự án 
•Lựa chọn môi trường cần thiết để phát triển hệ thống 
72
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Pha phát triển (elaboration): hoàn thiện mô hình kinh doanh, đánh giá lại rủi ro và hoàn thiện kế hoạch dự án 
Các bước liên quan: 
•Thu thập yêu cầu (requirements) 
•Phân tích (analysis)* 
•Thiết kế (design)* 
•Thực hiện (implementation) 
•Kiểm tra (test) 
•Triển khai (deployment) 
•Quản lý cấu hình và thay đổi (configuration and change management) 
Kết quả: 
•Biểu đồ cấu trúc và chức năng UML 
•Phiên bản hoạt động đầu tiên của hệ thống 
73
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Pha xây dựng (construction): tập trung chủ yếu vào lập trình 
Các bước liên quan: 
•Thu thập yêu cầu (requirements) 
•Phân tích (analysis) 
•Thiết kế (design) 
•Thực hiện (implementation)* 
•Kiểm tra (test) 
•Triển khai (deployment) 
•Quản lý cấu hình và thay đổi (configuration and change management)* 
Kết quả: 
•Phiên bản beta của hệ thống 
74
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Pha chuyển tiếp (transition): tập trung chủ yếu vào kiểm tra và triển khai 
Các bước liên quan: 
•Thu thập yêu cầu (requirements) 
•Phân tích (analysis) 
•Thiết kế (design) 
•Thực hiện (implementation) 
•Kiểm tra (test)* 
•Triển khai (deployment)* 
•Quản lý cấu hình và thay đổi (configuration and change management)* 
Kết quả: 
•Phiên bản cuối cùng (release) của hệ thống 
•Hướng dẫn sử dụng 
•Kế hoạch hỗ trợ khách hàng, kế hoạch nâng cấp hệ thống 
75
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Các bước kỹ thuật (Engineering workflows) 
1.Mô hình hoá giá trị kinh doanh (business modeling) 
•Diễn ra chủ yếu trong pha khởi tạo 
•Phát hiện vấn đề và xác định các dự án tiềm năng 
•Xác định giá trị kinh doanh mà dự án đem lại 
•Thu thập dữ liệu và mô hình hoá ca sử dụng có thể được sử dụng 
2. Xác định yêu cầu (requirements) 
•Xác định yêu cầu về chức năng và cả không chức năng 
•Yêu cầu được thu thập từ người sử dụng, người quản lý người sử dụng, khách hàng 
3.Phân tích 
•Xây dựng biểu đồ cấu trúc và chức năng sử dụng UML 
•Xác định các lớp có thể sử dụng lại 
•Bước phân tích có thể được sử dụng lại bất kỳ lúc nào trong chu trình phát triển hệ thống 
76
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Các bước kỹ thuật (Engineering workflows) 
4.Thiết kế 
•Chuyển từ mô hình phân tích sang mô hình thiết kế 
•Thiết kế giao diện, cơ sở dữ liệu, cấu trúc vật lý của hệ thống, thiết kế chi tiết các lớp 
5.Thực hiện (implementation) 
•Lập trình: viết các lớp, chương trình và sử dụng các lớp trong thư viện 
•Tích hợp các module 
6.Kiểm tra (Test) 
•Kiểm tra tích hợp hệ thống, chức năng, kiểm tra khả năng chấp nhận của người sử dụng … 
•Việc kiểm tra đuợc tiến hành trong suốt quá trình phát triển của HT 
7.Triển khai (deployment) Đóng gói phần mềm, phân phối, cài đặt và beta testing 
77
2 – Phân tích thiết kế hướng đối tượng 
The Unified process 
Các bước hỗ trợ (Supporting workflows) 
1.Quản lý dự án (project management) 
•Diễn ra trong suốt quá trình phát triển hệ thống 
•Xác định và quản lý rủi ro 
•Quản lý phạm vi dự án 
•Quản lý về thời gian, chi phí… 
2. Quản lý cấu hình và thay đổi (configuration and change management ) 
•Theo dõi và quản lý trạng thái và các phiên bản của hệ thống 
•Quản lý việc thay đổi các phiên bản (người thay đổi, thời gian thay đổi…) 
3.Quản lý môi trường phát triển (environment) 
•Quản lý các công cụ và môi trường phát triển cần thiết cho dự án 
•Ví du: Rational Rose, Microsoft project, Microsoft Visual C++ 
78
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Các giai đoạn 
Phân tích hướng đối tượng (Object Oriented Analysis - OOA) 
Thiết kế hướng đối tượng (Object Oriented Design - OOD) 
Lập trình hướng đối tượng (Object Oriented Programming - OOP) 
79
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – tư tưởng chính 
Tạo các đối tượng trong máy tính tương ứng đối tượng có thật và phân công trách nhiệm cho chúng để thực hiện yêu cầu người dùng 
Các đối tượng được tạo lập sẽ được tái sử dụng 
Các đối tượng có thể phối hợp nhau qua cớ chế đặc biệt – cơ chế đa hình 
80
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Quy trình 
Kết quả của các giai đoạn đều là sự mô tả các đối tượng từ tổng quát đến chi tiết 
Hoạt động chung: 
Nhận kết quả 
Xử lý: mô tả chi tiết hơn 
Chuyển giao kết quả 
81
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Các giai đoạn 
Object Oriented Analysis – OOA 
giai đọan phát triển một mô hình chính xác và súc tích của vấn đề 
thành phần là các đối tượng và khái niệm đời thực 
vấn đề được trình bày bằng các thuật ngữ tương ứng với các đối tượng có thực 
Mô hình thiết kế sẽ chứa các thực thể trong một vấn đề có thực và giữ nguyên các mẫu hình về cấu trúc, quan hệ cũng như hành vi của chúng 
82
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Các giai đoạn 
Object Oriented Analysis – OOA 
Ví dụ: một phòng bán ô tô sẽ có các thực thể: 
•Khách hàng 
•Người bán hàng 
•Phiếu đặt hàng 
•Phiếu (hoá đơn) thanh toán 
•Xe ô tô 
83
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Các giai đoạn 
Object Oriented Analysis – OOA 
Ví dụ: một phòng bán ô tô - tương tác và quan hệ giữa các đối tượng trên là : 
•Người bán hàng dẫn khách hàng tham quan phòng trưng bày xe. 
•Khách hàng chọn một chiếc xe 
•Khách hàng viết phiếu đặt xe 
•Khách hàng trả tiền xe 
•Xe ô tô được giao đến cho khách hàng 
84
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – tư tưởng chính 
Object Oriented Analysis – OOA 
Ví dụ: ngân hàng – thực thể 
•Loại tài khoản: ATM (rút tiền tự động), Savings (tiết kiệm), Current (bình thường), Fixed (đầu tư), ... 
•Khách hàng 
•Nhân viên 
•Phòng máy tính. 
85
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – tư tưởng chính 
Object Oriented Analysis – OOA 
Ví dụ: ngân hàng – tương tác và quan hệ 
•Một khách hàng mới mở một tài khoản tiết kiệm 
•Chuyển tiền từ tài khoản tiết kiệm sang tài khoản đầu tư 
•Chuyển tiền từ tài khoản tiết kiệm sang tài khoản ATM 
•. 
86
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Các giai đoạn 
Object Oriented Design - OOD 
Giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, 
•mỗi đối tượng trong đó là thực thể của một lớp. 
•Các lớp là thành viên của một cây cấu trúc với mối quan hệ thừa kế. 
Tạo thiết kế dựa trên 
•kết quả của giai đoạn OOA, 
•những quy định phi chức năng, 
•những yêu cầu về môi trường, 
•những yêu cầu về khả năng thực thi 
87
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Các giai đoạn 
Object Oriented Design - OOD 
Trong giai đoạn OOD, nhà thiết kế định nghĩa 
• các chức năng, thủ tục (operations), 
•thuộc tính (attributes) 
•mối quan hệ của một hay nhiều lớp (class) và quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi trường phát triển 
•thiết kế ngân hàng dữ liệu và áp dụng các kỹ thuật tiêu chuẩn hóa 
88
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Các giai đoạn 
Object Oriented Design - OOD 
Cuối giai đoạn OOD đưa ra một loạt các biểu đồ (diagram): 
•biểu đồ tĩnh biểu thị các lớp và đối tượng 
•biểu đồ động biểu thị tương tác giữa các lớp và phương thức hoạt động chính xác của chúng 
89
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Phương pháp 
OOA 
OOD 
OMT 
UML 
90
2 – Phân tích thiết kế hướng đối tượng 
CNPM Hướng đối tượng – Kiến trúc 
Hệ thống các lớp đối tượng 
Hệ thông giao diện 
Hệ thống lưu trữ 
91
2 – Phân tích thiết kế hướng đối tượng 
Thành phần đối tượng 
Thành phần giao tiếp 
Thành phần dữ liệu 
Thành phần xử lý 
92
2 – Phân tích thiết kế hướng đối tượng 
93
Lecture02(1)

More Related Content

What's hot

T+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umlT+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umllam lythanh
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngNguyễn Quang Thiện
 
13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...
13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...
13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...leethinh
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngTráng Hà Viết
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGTrường Phạm
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTMasterCode.vn
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlTráng Hà Viết
 
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Đông Lương
 
Chuong2 extra c_
Chuong2 extra c_Chuong2 extra c_
Chuong2 extra c_Hồ Lợi
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramHuy Vũ
 

What's hot (17)

Bai02 java introduction
Bai02 java introductionBai02 java introduction
Bai02 java introduction
 
T+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp umlT+¦¦ëng h¦í¦úp uml
T+¦¦ëng h¦í¦úp uml
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối Tượng
 
Bai03 xay dunglop
Bai03 xay dunglopBai03 xay dunglop
Bai03 xay dunglop
 
13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...
13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...
13690151 slide-phan-tich-thiet-ke-he-thong-huong-doi-tuong-dai-hoc-bach-khoa-...
 
Oop 0
Oop 0Oop 0
Oop 0
 
Ch4.phan tich(1)
Ch4.phan tich(1)Ch4.phan tich(1)
Ch4.phan tich(1)
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượng
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
 
Uml diagram type
Uml diagram typeUml diagram type
Uml diagram type
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
 
Chuong2 extra c_
Chuong2 extra c_Chuong2 extra c_
Chuong2 extra c_
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
 
Phân tích
Phân tíchPhân tích
Phân tích
 
Bai05 ket tapvakethua
Bai05 ket tapvakethuaBai05 ket tapvakethua
Bai05 ket tapvakethua
 

Similar to Lecture02(1)

Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3NguynMinh294
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxdong92356
 
Chuong trinh hoc phan phan tich thiet ke httt
Chuong trinh hoc phan phan tich thiet ke htttChuong trinh hoc phan phan tich thiet ke httt
Chuong trinh hoc phan phan tich thiet ke htttlvtoi1403
 
Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Hoa Le
 
Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02nguyen minh
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06xcode_esvn
 
Attachment 183 544a70c9aa0c8_544a70c473f0c_hdt
Attachment 183 544a70c9aa0c8_544a70c473f0c_hdtAttachment 183 544a70c9aa0c8_544a70c473f0c_hdt
Attachment 183 544a70c9aa0c8_544a70c473f0c_hdtNguyễn Hải
 
W03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptxW03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptxHnginh10297
 
De cuong-on-tap-mon-agent
De cuong-on-tap-mon-agentDe cuong-on-tap-mon-agent
De cuong-on-tap-mon-agentDung Doan Tien
 
Cơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcCơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcChu TheKop
 

Similar to Lecture02(1) (20)

Bai1
Bai1Bai1
Bai1
 
Chapter1
Chapter1Chapter1
Chapter1
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptx
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Chuong trinh hoc phan phan tich thiet ke httt
Chuong trinh hoc phan phan tich thiet ke htttChuong trinh hoc phan phan tich thiet ke httt
Chuong trinh hoc phan phan tich thiet ke httt
 
Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL
 
Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02
 
OOP_Bai13(vi).pdf
OOP_Bai13(vi).pdfOOP_Bai13(vi).pdf
OOP_Bai13(vi).pdf
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
 
Các mô hình dữ liệu
Các mô hình dữ liệuCác mô hình dữ liệu
Các mô hình dữ liệu
 
Thcb c3&4
Thcb c3&4Thcb c3&4
Thcb c3&4
 
Attachment 183 544a70c9aa0c8_544a70c473f0c_hdt
Attachment 183 544a70c9aa0c8_544a70c473f0c_hdtAttachment 183 544a70c9aa0c8_544a70c473f0c_hdt
Attachment 183 544a70c9aa0c8_544a70c473f0c_hdt
 
W03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptxW03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptx
 
De cuong-on-tap-mon-agent
De cuong-on-tap-mon-agentDe cuong-on-tap-mon-agent
De cuong-on-tap-mon-agent
 
Lesson06
Lesson06Lesson06
Lesson06
 
Chuong2 c
Chuong2 c Chuong2 c
Chuong2 c
 
Đồ-Án-1.docx
Đồ-Án-1.docxĐồ-Án-1.docx
Đồ-Án-1.docx
 
Cơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcCơ sở dữ liệu đại học
Cơ sở dữ liệu đại học
 
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượngLuận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
 

More from Nguyễn Thu Hằng (17)

Huong-dan-hoc-Excel.ppt
Huong-dan-hoc-Excel.pptHuong-dan-hoc-Excel.ppt
Huong-dan-hoc-Excel.ppt
 
ASP.NET.docx
ASP.NET.docxASP.NET.docx
ASP.NET.docx
 
Tranh to-mau-danh-cho-be
Tranh to-mau-danh-cho-beTranh to-mau-danh-cho-be
Tranh to-mau-danh-cho-be
 
Duoihinhbatchu 120811082150-phpapp02
Duoihinhbatchu 120811082150-phpapp02Duoihinhbatchu 120811082150-phpapp02
Duoihinhbatchu 120811082150-phpapp02
 
Vie ebi 2020 v2.5 final
Vie   ebi 2020 v2.5 finalVie   ebi 2020 v2.5 final
Vie ebi 2020 v2.5 final
 
Gt cac pptoankinhte - (huapro.vn)
Gt cac pptoankinhte - (huapro.vn)Gt cac pptoankinhte - (huapro.vn)
Gt cac pptoankinhte - (huapro.vn)
 
Baitapvaloigiaisql 130821085507-phpapp02
Baitapvaloigiaisql 130821085507-phpapp02Baitapvaloigiaisql 130821085507-phpapp02
Baitapvaloigiaisql 130821085507-phpapp02
 
3250
32503250
3250
 
Kiến trúc hướng dịch vụ (webservice)
Kiến trúc hướng dịch vụ (webservice)Kiến trúc hướng dịch vụ (webservice)
Kiến trúc hướng dịch vụ (webservice)
 
Lecture03
Lecture03Lecture03
Lecture03
 
Lecture02
Lecture02Lecture02
Lecture02
 
Lecture02(2)
Lecture02(2)Lecture02(2)
Lecture02(2)
 
Lecture01
Lecture01Lecture01
Lecture01
 
Lecture03(1)
Lecture03(1)Lecture03(1)
Lecture03(1)
 
Ch3.mo hinhhoayeucau(1)
Ch3.mo hinhhoayeucau(1)Ch3.mo hinhhoayeucau(1)
Ch3.mo hinhhoayeucau(1)
 
Ch3.mo hinhhoayeucau(1)(1)
Ch3.mo hinhhoayeucau(1)(1)Ch3.mo hinhhoayeucau(1)(1)
Ch3.mo hinhhoayeucau(1)(1)
 
Ch5.thiet kedulieu
Ch5.thiet kedulieuCh5.thiet kedulieu
Ch5.thiet kedulieu
 

Lecture02(1)

  • 1. Phân tích thiết kế hướng đối tượng
  • 2. 2 – Phân tích thiết kế hướng đối tượng Nội dung trước 2 Giới thiệu  Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống
  • 3. 2 – Phân tích thiết kế hướng đối tượng Nội dung 3 Hệ thống hướng chức năng vs. Hệ thống hướng đối tượng Các đặc điểm cơ bản của hệ thống hướng đối tượng Giới thiệu UML – UML 2.0 Phân tích thiết kế hướng đối tượng với UML 2.0
  • 4. 2 – Phân tích thiết kế hướng đối tượng Giới thiệu Lịch sử phát triển của ngôn ngữ lập trình: First Generation (1954 – 1958) •Fortran I Second Generation (1959 – 1961) •Fortran II, Algol, Cobol Third Generation (1962 – 1970) •PL/I, Pascal Object Oriented Languages •Smalltalk, C++, Java 4
  • 5. 2 – Phân tích thiết kế hướng đối tượng Lịch sử phát triển OOAD 5
  • 6. 2 – Phân tích thiết kế hướng đối tượng Lịch sử của UML 6 OOSE OMT Booch method Others method Unified method UML 0.9 UML 1.0 UML 1.1 UML 1.3 UML 2.0 OOPSLA ‘95 Web – Jun ‘96 UML Partners OMG Acceptance, Nov ‘97 Final submission to OMG, Sep ’97 First submission to OMG, Jan ‘97 Public & Feedback
  • 7. 2 – Phân tích thiết kế hướng đối tượng Giới thiệu Thiết kế cấu trúc và thiết kế hướng đối tượng 7 Student Account Đăng ký học phần v..v… Thi cử Đóng học phí Nhập học Thiết kế cấu trúc
  • 8. 2 – Phân tích thiết kế hướng đối tượng Giới thiệu Thiết kế cấu trúc và thiết kế hướng đối tượng 8 Student Account v..v… Messege Messege Messege Messege Thiết kế hướng đối tượng
  • 9. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng 9 Lập trình cấu trúc
  • 10. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng 10
  • 11. 2 – Phân tích thiết kế hướng đối tượng Nguyên tắc cơ bản của OO  Hướng đối tượng – Object-Oriented  Trừu tượng hoá – Abstraction  Tính đóng gói – Encapsulation  Tính đơn thể - Modularity  Tính phân cấp – Hierarchy 11
  • 12. 2 – Phân tích thiết kế hướng đối tượng Trừu tượng hoá – Abstraction  Quản lý độ phức tạp 12 Người bán hàng Sản phẩm Khách hàng
  • 13. 2 – Phân tích thiết kế hướng đối tượng Tính đóng gói – Encapsulation  Che dấu cài đặt bên trong với clients Clients phụ thuộc vào interface  Tăng tính mềm dẻo 13
  • 14. 2 – Phân tích thiết kế hướng đối tượng Tính đơn thể - Modularity Phân chia nhỏ 1 vấn đề phức tạp thành nhiều phần nhỏ, đơn giản hơn để có thể quản lý được độ phức tạp 14 Hệ thống xử lý mua bán hàng hoá Nhận đơn đặt hàng Thực hiện đơn đặt hàng Thanh toán đơn đặt hàng Lập hoá đơn bán hàng Thanh toán hoá đơn Xuất hoá đơn …Các đơn thể quản lý tồn kho
  • 15. 2 – Phân tích thiết kế hướng đối tượng Tính phân cấp – Hierarchy 15 Bất động sản Chứng khoán Tài khoản ngân hàng Tài sản Cổ phiếu Trái phiếu Tài khoản Tiết kiệm Tài khoản Thanh toán Tăng mức độ trừu tượng Giảm mức độ trừu tượng  Các phần tử trên cùng một mức phải có cùng mức độ trừu tượng
  • 16. 2 – Phân tích thiết kế hướng đối tượng Các khái niệm cơ bản của HĐT Objects & Class Attributes (Properties) & Operation (Behavior) Method & Message Interface (Polymorphism) Component Package Subsystem Relationship 16
  • 17. 2 – Phân tích thiết kế hướng đối tượng Object  Một cách không hình thức, một đối tượng biểu diễn một thực thể, dạng vật lý, khái niệm hoặc phần mềm 17 Thực thể vật lý Thực thể Khái niệm Thực thể Phần mềm Chemical Process Truck Linked-list
  • 18. 2 – Phân tích thiết kế hướng đối tượng Objects & Class Một đối tượng là một đối tượng trừu tượng, hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể Lớp (Class) – khuôn mẫu cho các thể hiện của object Đối tượng (Object) – Thể hiện của một class Thuộc tính (Attributes) Hành vi (Behaviors) – chi tiết đối tượng có thể làm gì 18
  • 19. 2 – Phân tích thiết kế hướng đối tượng Biểu diễn đối tượng  Một đối tượng được biểu diễn bởi một hình chữ nhật với tên được gạch dưới 19 : Profressor ProfressorJohn ProfressorJohn: Professor A x B = 10 Profressor John Chỉ có tên Object Tên Class và tên Object Chỉ có tên Class
  • 20. 2 – Phân tích thiết kế hướng đối tượng Class - Example Class Course 20 A x B = 10 Profressor John Properties Tên Địa điểm Thời gian Số tín chỉ Giờ bắt đầu Giờ kết thúc Behavior Thêm một sinh viên Huỷ một sinh viên Lấy danh sách giáo sư …
  • 21. 2 – Phân tích thiết kế hướng đối tượng Class & Object 21
  • 22. 2 – Phân tích thiết kế hướng đối tượng Method & Message Phương thức (Methods) implement an object’s behavior Messages are sent to trigger methods Procedure call from one object to the next 22
  • 23. 2 – Phân tích thiết kế hướng đối tượng Phương thức và message 23
  • 24. 2 – Phân tích thiết kế hướng đối tượng Polymorphism Khả năng che dấu nhiều cài đặt khác nhau bên dưới một giao diện (interface) duy nhất  Nguyên tắc OO đóng gói 24 Nhà sản xuất A Nhà sản xuất B Nhà sản xuất C
  • 25. 2 – Phân tích thiết kế hướng đối tượng Polymorphism – Interface 25  Interface là hình thức hoá polymorphism Interface hỗ trợ kiến trúc “plug & play” <<interface>> Shape Draw Move Scale Rotate Tube Pyramid Cube Quan hệ Realizzation
  • 26. 2 – Phân tích thiết kế hướng đối tượng Component Một phần không tầm thường của hệ thống, gần như độc lập và có thể thay thế được, giữ một chức năng rõ ràng trong hệ thống Một component có thể là Một source code component Một run time components hoặc Một executable component 26 Source File Name <<EXE>> Executable name <<DLL>> Component name
  • 27. 2 – Phân tích thiết kế hướng đối tượng Package Một package là một cơ chế để tổ chức các phần tử vào thành các nhóm Một phần tử trong mô hình có thể chứa các phần tử khác Dùng để Tổ chức mô hình đang phát triển Một đơn vị trong quản trị cấu hình 27 Package Name Nguyên tắc OO Tính đơn thể
  • 28. 2 – Phân tích thiết kế hướng đối tượng Subsystem  Tổ hợp của một package (có thể chứa các phần tử khác trong mô hình) và một class(có hành vi) Hiện thực hoá một hoặc nhiều interface định nghĩa cho hành vi của nó 28 <<subsystem>> Subsystem Name Subsystem Relization Interface
  • 29. 2 – Phân tích thiết kế hướng đối tượng Subsystem & Component Component là thể hiện ở mức vật lý của một khái niệm trừu tượng trong thiết kế Subsystem có thể dùng để biểu diễn các component trong thiết kế 29 Component name <<subsystem>> Component name Design Model Implementation Model Component Interface Component Interface
  • 30. 2 – Phân tích thiết kế hướng đối tượng Relationships Association (Kết hợp) – Bản số và chiều Aggregation (Thu nạp): toàn thể và bộ phận Composition (Cấu thành) Dependency (Phụ thuộc) Generalization (Tổng quát hóa) Đơn/Đa kế thừa Realization (Hiện thực hoá) 30
  • 31. 2 – Phân tích thiết kế hướng đối tượng Association  Mô hình hoá một liên kết ngữ nghĩa giữ các class 31 class Tên role Association Tên association
  • 32. 2 – Phân tích thiết kế hướng đối tượng Aggregation Một dạng đặc biệt của association – mô hình hoá mối quan hệ toàn thể - bộ phận giữa một thực thể và các bộ phận của nó 32 Whole Part Aggregation
  • 33. 2 – Phân tích thiết kế hướng đối tượng Composition Một dạng aggregation có tính sở hữu cao và cùng chu kỳ sống Các bộ phận không thể sống lâu hơn thực thể 33 Whole Part Aggregation
  • 34. 2 – Phân tích thiết kế hướng đối tượng Association: Bản số và chiều Bản số xác định số đối tượng tham gia vào một mối quan hệ Số các thể hiện của một class quan hệ với MỘT thể hiện của một class khác Được chỉ ra ở mỗi đầu của quan hệ association Association và aggregation mặc định là hai chiều, nhưng người ta thường giới hạn theo một chiều Mũi tên được thêm vào để chỉ chiều của mối quan hệ 34
  • 35. 2 – Phân tích thiết kế hướng đối tượng Association: Bản số Không xác định Chỉ một Không hoặc nhiều Một hoặc nhiều Không hoặc một Khoảng được chỉ định Các khoảng không liên tục 35 1 0 .. * 1..* 0..1 2..4 2,4,6
  • 36. 2 – Phân tích thiết kế hướng đối tượng Bản số và chiều 36 1 0..* Navigation Multiplicity
  • 37. 2 – Phân tích thiết kế hướng đối tượng Mối quan hệ: Dependency Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử này có thể gây ra thay đổi ở phần tử kia Quan hệ “sử dụng”, không cấu trúc 37 Dependency relationship Dependency relationship Class Component Package
  • 38. 2 – Phân tích thiết kế hướng đối tượng Generalization Quan hệ giữa các class trong đó một lớp chia sẻ cấu trúc và/hoặc hành vi của một hoặc nhiều class khác Xác định một sự phân cấp các mức độ trừu tượng trong đó một subclass kế thừa từ một hoặc nhiều superclass Đơn kế thừa Đa kế thừa Generalization là quan hệ « là một dạng của » 38
  • 39. 2 – Phân tích thiết kế hướng đối tượng Đơn kế thừa  Một class kế thừa từ một class khác 39 Tổ tiên Hậu duệ Hậu duệ Generalization Relationship Super Class (cha) Sub Classes
  • 40. 2 – Phân tích thiết kế hướng đối tượng Chỉ sử dụng đa kế thừa khi thật cần, và luôn phải cẩn thận ! 40 Đa kế thừa Đa kế thừa
  • 41. 2 – Phân tích thiết kế hướng đối tượng Cái gì được kế thừa Một subclass kế thừa các thuộc tính, hành vi và các mối quan hệ từ cha nó Một subclass có thể: Bổ sung thuộc tính, hành vi và các mối quan hệ Định nghĩa lại các hành vi (nên cẩn thận!) Các thuộc tính, hành vi và các mối quan hệ chung được đặt ở mức cao nhất có thể trong cấu trúc phân cấp 41
  • 42. 2 – Phân tích thiết kế hướng đối tượng Realization Một classifier đóng vai trò một hợp đồng mà một classifier khác đồng ý thực hiện Xuất hiện giữa: Các Interface và các classifier hiện thực chúng Các Use case và các collaboration hiện thực chúng 42 Dạng tắt Dạng chính tắt Use case Use case Realization
  • 43. 2 – Phân tích thiết kế hướng đối tượng Giới thiệu về UML UML chỉ đơn thuần là ngôn ngữ đồ hoạ để mô hình hoá chứ không phải là phương pháp để phát triển hệ thống 43
  • 44. 2 – Phân tích thiết kế hướng đối tượng Giới thiệu về UML UML 2.0 cung cấp 14 biểu đồ để mô hình hoá cấu trúc và chức năng của hệ thống, chia làm 2 nhóm: Biểu đồ mô hình cấu trúc Biểu đồ mô hình chức năng 44
  • 45. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc 6 loại biểu đồ cấu trúc: Biểu đồ lớp (Class) Biểu đồ đối tượng (Object) Biểu đồ gói (package) Biểu đồ triển khai (Deployment) Biểu đồ thành phần (Component) Biểu đồ cấu trúc phức hợp (Composite structure diagrams) 45
  • 46. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ lớp (class diagram) Biểu diễn mối quan hệ giữa các lớp 46
  • 47. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ đối tượng (object diagram) Biểu diễn mối quan hệ giữa các đối tượng 47
  • 48. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ gói (package diagram) Biểu đồ gói gộp các thành phần khác nhau của UML (ví dụ: lớp) để tạo thành thành phần lớn hơn 48
  • 49. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ triển khai (deployment diagram) Biểu diễn cấu trúc phần cứng và các thành phần phần mềm của hệ thống 49 Printer123 Le Loi StrRegional ATM ServerBanking Datab... 345 Nguyen Hue Str. Oracle ServerATMServer.exeATMClient.exeATMClient.exe<<Private Network>><<Private Network>> <<LAN>>
  • 50. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ thành phần (component diagram) Biểu diễn quan hệ giữa các thành phần của hệ thống 50
  • 51. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ cấu trúc phức hợp (composite structure diagram) Minh hoạ chi tiết cấu trúc bên trong của một lớp 51
  • 52. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 8 loại biểu đồ chức năng Biểu đồ hoạt động (activity diagram) Biểu đồ tương tác (interaction diagrams) •Biểu đồ chuỗi tuần tự (sequence diagram) •Biểu đồ cộng tác (communication/collaboration diagram) •Biểu đồ khát quát tương tác (interaction overview diagram) •Biểu đồ thời gian (timing diagram) Biểu đồ máy trạng thái (state machines) •Máy trạng thái chức năng (behavior state machines) •Máy trạng thái giao thức (protocol state machines) Biểu đồ ca sử dụng (use case diagram) 52
  • 53. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ hoạt động (activity diagram)  Được dùng để mô tả luồng công việc của hệ thống hoặc luồng hoạt động trong một ca sử dụng hoặc mô tả thiết kế chi tiết của một phương thức (method) 53
  • 54. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ chuỗi tuần tự (sequence diagram) Mô tả các hoạt động của các đối tượng trong một ca sử dụng dựa vào thứ tự xuất hiện theo thời gian 54
  • 55. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ cộng tác (collaboration diagram)  Là cách biểu diễn khác của biểu đồ chuỗi tuần tự nhưng tập trung vào mối quan hệ và giao tiếp giữa các đối tượng 55
  • 56. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ khát quát tương tác (interaction overview diagram)  Được dùng để mô tả tương tác giữa các đối tượng trong các ca sử dụng phức tạp  Ít được sử dụng Biểu đồ thời gian (timing diagram)  Được dùng để mô tả tương tác giữa các đối tượng theo thời gian. Chủ yếu được dùng để mô tả sự thay đối trạng thái của đối tượng khi có tác động của một sự kiện theo thời gian.  Được dùng để phát triển các hệ thống thời gian thực và hệ thống nhúng 56
  • 57. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ máy trạng thái chức năng (behavior state machines) Được dùng để mô tả các trạng thái khác nhau mà các đối tượng của một lớp có thể có trong thời gian tồn tại của chúng. 57
  • 58. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ máy trạng thái giao thức (protocol state machines) Được dùng để mô tả giao thức giữa các lớp Ví dụ: open database -> Query or update Biểu đồ ca sử dụng (use case diagram) Được dùng để mô tả tương tác giữa một hệ thống với người sử dụng hoặc với các hệ thống khác có tương tác với nó. Là công cụ để mô tả các yêu cầu của hệ thống Là một trong những công cụ quan trọng nhất trong phân tích và thiết kế hướng đối tượng 58
  • 59. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 59
  • 60. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 60
  • 61. 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 61
  • 62. 2 – Phân tích thiết kế hướng đối tượng Các Ràng buộc Ràng buộc (constraints) Dùng để biểu diễn ràng buộc và các quan hệ mà không thể biểu diễn được bằng UML Ràng buộc được đặt trong ngoặc { } 62
  • 63. 2 – Phân tích thiết kế hướng đối tượng Các giá trị đính Nhãn:giá trị (tagged values) Là một cặp chuỗi ký tự: nhãn (tag) và giá trị (value) được dùng để bổ sung thông tin cho một phần tử nào đó (lớp, đối tượng, quan hệ …) Nhãn và giá trị được đặt trong ngoặc { } 63
  • 64. 2 – Phân tích thiết kế hướng đối tượng Các khuôn mẫu Khuôn mẫu (stereotype) Cho phép mở rộng UML bằng cách sử dụng các phần tử mô hình hoá đã có sẵn trong UML Khuôn mẫu có thể sử dụng ràng buộc và tagged values Khuôn mẫu được đặt trong dấu << >> 64
  • 65. 2 – Phân tích thiết kế hướng đối tượng Các ghi chú Note: Có thể đặt ghi chú cho mọi phần tử UML Ghi chú dùng để thêm thông tin cho các lược đồ Nó là hình chữ nhật bị bẻ góc Ghi chú có thể móc nối với một phần tử bằng một đường đứt nét 65
  • 66. 2 – Phân tích thiết kế hướng đối tượng Đặc điểm cơ bản của OOAD Use-case driven Architecture Centric •Cấu trúc phần mềm quyết định việc mô tả, xây dựng và viết tài liệu hệ thống •3 dạng cấu trúc của một hệ thống: •Chức năng (functional view): chức năng bên ngoài của hệ thống từ góc nhìn của người sử dụng : biểu đồ ca sử dụng, biểu đồ hoạt động •Cấu trúc tĩnh (static view): lớp, thuộc tính, phương thức, quan hệ •Cấu trúc động (dynamic view): chức năng bên trong của hệ thống: biểu đồ máy trạng thái chức năng Iterative and Incremental 66
  • 67. 2 – Phân tích thiết kế hướng đối tượng Ưu điểm của OOAD Việc chia nhỏ một hệ thống lớn thành các module sẽ giúp cho việc giải quyết vấn đề dễ dàng hơn, dễ chia sẻ giữa các thành viên của dự án và dễ dàng trao đổi với người dùng về các yêu cầu của hệ thống Dễ dàng sử dụng lại các module trong các dự án khác Tư duy suy nghĩ về đối tượng gần gũi với thực tế 67
  • 68. 2 – Phân tích thiết kế hướng đối tượng Ưu điểm Một mô hình chung Có tính dễ dùng lại Mô hình phản ánh chính xác thế giơi thực Mô tả chính xác hơn các tập dữ liệu và các xử lý Được phân rã dựa trên các phân chia tự nhiên Dễ hiểu và dễ bảo trì Tính ổn định Một thay đổi nhỏ trong yêu cầu không gây ra sự thay đổi lớn trong hệ thống đang phát triển 68
  • 69. 2 – Phân tích thiết kế hướng đối tượng Ưu điểm của OOAD 69
  • 70. 2 – Phân tích thiết kế hướng đối tượng The Unified process Unified process là một phương pháp phát triển hệ thống trong đó quy định khi nào thì sử dụng các kỹ thuật UML và sử dụng chúng như thế nào trong quá trình phân tích và thiết kế hệ thống. Tác giả: Booch, Jacobsen, Rumbaugh Là phương pháp hướng đối tượng Không phải là một quy trình phát triển phần mềm hoàn thiện •Không xét đến các vấn đề về phân bổ nhân lực, ngân quỹ, quản lý hợp đồng •Không quy định về các hoạt động bảo trì hay hỗ trợ khách hàng •Không xét đến các vấn đề tương tác giữa các dự án 70
  • 71. 2 – Phân tích thiết kế hướng đối tượng The Unified process 71
  • 72. 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha khởi tạo (Inception): giống như pha lập kế hoạch Các bước liên quan: •Mô hình hoá giá trị kinh doanh của hệ thống (business modeling) * •Xác định yêu cầu (requirements)* •Phân tích (analysis)* •Thiết kế (design) •Thực hiện (implementation) •Kiểm tra (test) •Môi trường phát triển (environment)* Kết quả: •Phạm vi của dự án •Các yêu cầu và ràng buộc quan trọng •Kế hoạch dự án bước đầu •Miêu tả tính khả thi và rủi ro của dự án •Lựa chọn môi trường cần thiết để phát triển hệ thống 72
  • 73. 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha phát triển (elaboration): hoàn thiện mô hình kinh doanh, đánh giá lại rủi ro và hoàn thiện kế hoạch dự án Các bước liên quan: •Thu thập yêu cầu (requirements) •Phân tích (analysis)* •Thiết kế (design)* •Thực hiện (implementation) •Kiểm tra (test) •Triển khai (deployment) •Quản lý cấu hình và thay đổi (configuration and change management) Kết quả: •Biểu đồ cấu trúc và chức năng UML •Phiên bản hoạt động đầu tiên của hệ thống 73
  • 74. 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha xây dựng (construction): tập trung chủ yếu vào lập trình Các bước liên quan: •Thu thập yêu cầu (requirements) •Phân tích (analysis) •Thiết kế (design) •Thực hiện (implementation)* •Kiểm tra (test) •Triển khai (deployment) •Quản lý cấu hình và thay đổi (configuration and change management)* Kết quả: •Phiên bản beta của hệ thống 74
  • 75. 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha chuyển tiếp (transition): tập trung chủ yếu vào kiểm tra và triển khai Các bước liên quan: •Thu thập yêu cầu (requirements) •Phân tích (analysis) •Thiết kế (design) •Thực hiện (implementation) •Kiểm tra (test)* •Triển khai (deployment)* •Quản lý cấu hình và thay đổi (configuration and change management)* Kết quả: •Phiên bản cuối cùng (release) của hệ thống •Hướng dẫn sử dụng •Kế hoạch hỗ trợ khách hàng, kế hoạch nâng cấp hệ thống 75
  • 76. 2 – Phân tích thiết kế hướng đối tượng The Unified process Các bước kỹ thuật (Engineering workflows) 1.Mô hình hoá giá trị kinh doanh (business modeling) •Diễn ra chủ yếu trong pha khởi tạo •Phát hiện vấn đề và xác định các dự án tiềm năng •Xác định giá trị kinh doanh mà dự án đem lại •Thu thập dữ liệu và mô hình hoá ca sử dụng có thể được sử dụng 2. Xác định yêu cầu (requirements) •Xác định yêu cầu về chức năng và cả không chức năng •Yêu cầu được thu thập từ người sử dụng, người quản lý người sử dụng, khách hàng 3.Phân tích •Xây dựng biểu đồ cấu trúc và chức năng sử dụng UML •Xác định các lớp có thể sử dụng lại •Bước phân tích có thể được sử dụng lại bất kỳ lúc nào trong chu trình phát triển hệ thống 76
  • 77. 2 – Phân tích thiết kế hướng đối tượng The Unified process Các bước kỹ thuật (Engineering workflows) 4.Thiết kế •Chuyển từ mô hình phân tích sang mô hình thiết kế •Thiết kế giao diện, cơ sở dữ liệu, cấu trúc vật lý của hệ thống, thiết kế chi tiết các lớp 5.Thực hiện (implementation) •Lập trình: viết các lớp, chương trình và sử dụng các lớp trong thư viện •Tích hợp các module 6.Kiểm tra (Test) •Kiểm tra tích hợp hệ thống, chức năng, kiểm tra khả năng chấp nhận của người sử dụng … •Việc kiểm tra đuợc tiến hành trong suốt quá trình phát triển của HT 7.Triển khai (deployment) Đóng gói phần mềm, phân phối, cài đặt và beta testing 77
  • 78. 2 – Phân tích thiết kế hướng đối tượng The Unified process Các bước hỗ trợ (Supporting workflows) 1.Quản lý dự án (project management) •Diễn ra trong suốt quá trình phát triển hệ thống •Xác định và quản lý rủi ro •Quản lý phạm vi dự án •Quản lý về thời gian, chi phí… 2. Quản lý cấu hình và thay đổi (configuration and change management ) •Theo dõi và quản lý trạng thái và các phiên bản của hệ thống •Quản lý việc thay đổi các phiên bản (người thay đổi, thời gian thay đổi…) 3.Quản lý môi trường phát triển (environment) •Quản lý các công cụ và môi trường phát triển cần thiết cho dự án •Ví du: Rational Rose, Microsoft project, Microsoft Visual C++ 78
  • 79. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Các giai đoạn Phân tích hướng đối tượng (Object Oriented Analysis - OOA) Thiết kế hướng đối tượng (Object Oriented Design - OOD) Lập trình hướng đối tượng (Object Oriented Programming - OOP) 79
  • 80. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – tư tưởng chính Tạo các đối tượng trong máy tính tương ứng đối tượng có thật và phân công trách nhiệm cho chúng để thực hiện yêu cầu người dùng Các đối tượng được tạo lập sẽ được tái sử dụng Các đối tượng có thể phối hợp nhau qua cớ chế đặc biệt – cơ chế đa hình 80
  • 81. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Quy trình Kết quả của các giai đoạn đều là sự mô tả các đối tượng từ tổng quát đến chi tiết Hoạt động chung: Nhận kết quả Xử lý: mô tả chi tiết hơn Chuyển giao kết quả 81
  • 82. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Các giai đoạn Object Oriented Analysis – OOA giai đọan phát triển một mô hình chính xác và súc tích của vấn đề thành phần là các đối tượng và khái niệm đời thực vấn đề được trình bày bằng các thuật ngữ tương ứng với các đối tượng có thực Mô hình thiết kế sẽ chứa các thực thể trong một vấn đề có thực và giữ nguyên các mẫu hình về cấu trúc, quan hệ cũng như hành vi của chúng 82
  • 83. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Các giai đoạn Object Oriented Analysis – OOA Ví dụ: một phòng bán ô tô sẽ có các thực thể: •Khách hàng •Người bán hàng •Phiếu đặt hàng •Phiếu (hoá đơn) thanh toán •Xe ô tô 83
  • 84. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Các giai đoạn Object Oriented Analysis – OOA Ví dụ: một phòng bán ô tô - tương tác và quan hệ giữa các đối tượng trên là : •Người bán hàng dẫn khách hàng tham quan phòng trưng bày xe. •Khách hàng chọn một chiếc xe •Khách hàng viết phiếu đặt xe •Khách hàng trả tiền xe •Xe ô tô được giao đến cho khách hàng 84
  • 85. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – tư tưởng chính Object Oriented Analysis – OOA Ví dụ: ngân hàng – thực thể •Loại tài khoản: ATM (rút tiền tự động), Savings (tiết kiệm), Current (bình thường), Fixed (đầu tư), ... •Khách hàng •Nhân viên •Phòng máy tính. 85
  • 86. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – tư tưởng chính Object Oriented Analysis – OOA Ví dụ: ngân hàng – tương tác và quan hệ •Một khách hàng mới mở một tài khoản tiết kiệm •Chuyển tiền từ tài khoản tiết kiệm sang tài khoản đầu tư •Chuyển tiền từ tài khoản tiết kiệm sang tài khoản ATM •. 86
  • 87. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Các giai đoạn Object Oriented Design - OOD Giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, •mỗi đối tượng trong đó là thực thể của một lớp. •Các lớp là thành viên của một cây cấu trúc với mối quan hệ thừa kế. Tạo thiết kế dựa trên •kết quả của giai đoạn OOA, •những quy định phi chức năng, •những yêu cầu về môi trường, •những yêu cầu về khả năng thực thi 87
  • 88. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Các giai đoạn Object Oriented Design - OOD Trong giai đoạn OOD, nhà thiết kế định nghĩa • các chức năng, thủ tục (operations), •thuộc tính (attributes) •mối quan hệ của một hay nhiều lớp (class) và quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi trường phát triển •thiết kế ngân hàng dữ liệu và áp dụng các kỹ thuật tiêu chuẩn hóa 88
  • 89. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Các giai đoạn Object Oriented Design - OOD Cuối giai đoạn OOD đưa ra một loạt các biểu đồ (diagram): •biểu đồ tĩnh biểu thị các lớp và đối tượng •biểu đồ động biểu thị tương tác giữa các lớp và phương thức hoạt động chính xác của chúng 89
  • 90. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Phương pháp OOA OOD OMT UML 90
  • 91. 2 – Phân tích thiết kế hướng đối tượng CNPM Hướng đối tượng – Kiến trúc Hệ thống các lớp đối tượng Hệ thông giao diện Hệ thống lưu trữ 91
  • 92. 2 – Phân tích thiết kế hướng đối tượng Thành phần đối tượng Thành phần giao tiếp Thành phần dữ liệu Thành phần xử lý 92
  • 93. 2 – Phân tích thiết kế hướng đối tượng 93