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