Professional Documents
Culture Documents
UML/NN 1
Nội dung
Phân tích, thiết kế là gì?
Quá trình phân tích thiết kế
Phân tích thiết kế hướng đối tượng
RUP (Rational Unified Process)
UML ((Unified Modeling
g Language)
g g )
Giới thiệu
Các thành phần của UML
Các loại mô hình UML
UML/NN 2
1.1 Phân tích thiết kế là gì?
Phân tích thiết kế phần mềm:
Quá trình tìm hiểu
ể và mô phỏng lại hiện tượng,
quy trình nghiệp vụ trong thế giới thực từ đó xây
dựng hệ thống để giải quyết bài toán đặt ra trên
máy tính.
UML/NN 3
Tại sao phải phân tích thiết kế?
Bảo trì
Bảo trì
Kiểm thử
Cài đặt Kiểm thử
Cài đặt
Thiết kế
ó thiết
Có ế kế
ế Không thiết
ế kế
ế
UML/NN 4
Tại sao phải phân tích thiết kế?
Chất lượng thiết kế là nhân tố chính quyết
đị h chất
định hất lượ
lượng phần
hầ mềmề
Không thiết kế - hoặc thiết kế không tốt dẫn
đến phần mềm chất lượng thấp
Không quản lý được những thay đổi yêu cầu
Khó kiểm thử
Khó bảo trì
Không có tính tiến hóa
Không tái sử dụng được
UML/NN 5
Phân tích, thiết kế trong CNPM
Quy trình thác nước:
Yêu Phân tích
cầu yêu cầu Vị trí của Phân tích thiết kế
trongg quyy trình phát triển PM
Thiết kế
Triển khai
Phần mềm
UML/NN 6
Phân tích yêu cầu
Là bước đầu tiên trong xây dựng phần mềm
Gồm có các bước
Phân tích viên phân tích hiện trạng và yêu cầu
của khách hàng
Mô hình hệ thống
Lập bảng các chức năng của hệ thống
Yêu cầu chức năng
Yêu cầu phi chức năng
Xác định phạm vi của hệ thống
UML/NN 7
Thiết kế
Là bước kế tiếp nhằm phác họa ra hệ thống
Việc thiết kế bao gồim các công việc
Thiết kế dữ liệu
Thiết kế kiến trúc
Thiết kế thành phần
p
Thiết kế giao diện
UML/NN 8
Cài đặt, kiểm thử
Cài đặt theo thiết kế (sử dụng các công cụ
để xây
â dựng
dự phần hầ mềm ề từ thiết kế)
Kiểm thử:
Kiểm thử đơn vị (Unit Test)
Kiểm thử hệ
ệ thốngg con (Sub-System
( y Test))
Kiểm thử hệ thống (System Test)
UML/NN 9
Triển khai
Cài đặt hệ thống
Giải pháp phần cứng
Cài đặt phần mềm
Chuyển giao công nghệ
Hướng dẫn sử dụng: đào tạo, tài liệu hướng dẫn
Bảo trì, nâng cấp
UML/NN 10
Phương pháp phân tích thiết kế
Phương pháp hướng chức năng
Là lối tiếp
tiế cận
ậ ttruyền
ề thống
thố củaủ CôCông nghệ
hệ phần
hầ mềm ề
Tập trung vào thông tin
Dể dàng xử lý việc thay đổi dữ liệu,
liệu nhưng lại khó trong
thay đổi về nguyên tắc nghiệp vụ
Phương
gppháp
p hướng
g đối tượng
ợ g
Chúng ta tập trung vào cả thông tin và hoạt động
Xem xét các thành phần trong bài toán tương tự như các
đối
ố tượng trong thếế giới
ớ thực
Dễ dàng tái sử dụng
UML/NN 11
Phân tích hướng đối tượng (OOA)
UML/NN 12
Cửa hàng bán xe hơi
Xác định thực thể
Khách
Khá h hàng
hà
Người bán hàng
Đơn đặt hàng
Xe hơi
Hóa đơn
Những tương tác
Khách hàng
g xem xe
Khách hàng đặt hàng
Khách hàng thanh toán
Người bán hàng giao hóa đơn và giao xe
UML/NN 13
Ngân hàng bán lẻ
Xác định thực thể
LLoạii tài khoản:
kh ả ATM,
ATM Tiết kiệ
kiệm, Không
Khô kỳ hạn
h
Khách hàng
Nhân viên
Những tương tác
Khách hàng mở tài khoản
Chuyển tiền từ tài khoản Tiết kiệm đến tài khoản ATM
Chuyển
y tiền từ tài khoản Tiết kiệm
ệ tới tiền g
gởi Khôngg kỳỳ
hạn
Chuyển tiền từ tài khoản Không kỳ hạn tới tiền gởi tiết
kiệm
UML/NN 14
Thiết kế hướng đối tượng (OOD)
Chương trình được xem như là một tập hợp
những đối tượng cộng tác,
tác đối tượng là thể
hiện của lớp, các lớp tạo nên cây phân cấp
có quan hệ thừa kế
Nhà thiết kế xác định trách nhiệm, thuộc tính
tác vụ và quan hệ của các lớp
UML/NN 15
Những thuận lợi của OOA&D
Phù hợp với suy nghĩ tự nhiên của con
người giải quyết được một số vấn đề trong
người,
sản xuất phần mềm
Tăng cường tái sử dụng đối tượng nhờ đó
giảm được chi phí, lỗi, công sức, gia tăng tốc
độ thiết kế và bảo trì
Giúp phát triển những phần mềm phức tạp,
hỗ trợ cho việc tạo ra những hệ thống phần
mềm dẻo và có khả năng ráp nối cao
UML/NN 16
Qui trình RUP (Rational Unified Process)
UML/NN 17
Các vấn đề về phần mềm
UML/NN 18
Nguyên nhân
UML/NN 19
RUP
UML/NN 20
Các giai đoạn RUP
UML/NN 21
RUP: Nỗ lực
UML/NN 22
Qui trình RUP…
Giai đoạn 1 (Inception): khởi đầu
Phạm vii dự án,
Ph á yêu ê cầu
ầ ngườiười dùng
dù và à ràng
à buộc
b ộ
Yêu cầu nghiệp vụ, rủi ro, kế hoạch dự án (phân công,
chi phí)
Thiết kế kiến trúc (chi phí, lịch, tài nguyên)
Cấu hình môi trường làm việc, công cụ
Giai đoạn 2 (Elaboration): Hình thành
Tinh chỉnh tài liệu
Hoạch định những bước lặp
Kế hoạch phát triển: tiến trình, công cụ CASE
Ti h chỉnh
Tinh hỉ h kiến
kiế trúcú và
à chọn
h thành
hà h phần
hầ (component)
( )
23 CNPM/NN
…Qui trình RUP
Giai đoạn 3 (Construction): Xây dựng
Quản
ả lýý tiến
ế trình
ì tạo sản
ả phẩm:
ẩ năng suất,
ấ đảmả bảoả
chất lượng
Tạo sản phẩm (alpha,
(alpha beta,
beta các phiên bản test khác)
Kế hoạch triển khai ứng dụng: phần mềm, người sử
dụng, hỗ trợ…
Giai đoạn 4 (Transition): Chuyển giao
Tạo sản phẩm xuất xưởng
Kiểm tra sản phẩm, thu thập phản hồi
24 CNPM/NN
Unified Process
A unit of work
A role played by an
individual or a team
Activity
Worker
Describe a
Analyst
Use Case
C
UML/NN 26
1.2 UML (Unified Modeling Language)
UML/NN 27
Mô hình
Mô hình là một hình ảnh khái quát nhằm biểu diễn
hệ thống thực.
thực Nó chỉ ra được cấu trúc và ứng xử
của hệ thống
Ngôn ngữ để xây dựng mô hình được là ngôn ngữ
mô hình
Mô hình đối tượng là một mô hình biểu diễn hệ
thống theo những đối tượng
Nguyên tắc tạo mô hình
Phải sử dụng nhiều mô hình khác nhau trong biểu diễn
Mô hình ggiúp
p cho việc
ệ ggiải q
quyết
y vấn đề và hình thành
giải pháp
UML/NN 28
Tạo mô hình
Việc tạo mô hình phải thỏa mãn các yếu tố
sau:
Chính xác (accurate): Mô tả đúng hệ thống cần
xây dựng
dựng.
Nhất quán (consistent): Các khung nhìn (view)
khác nhau khôngg được
ợ mâu thuẩn với nhau.
Có thể hiểu được (understandable): cho người
xây dựng lẫn người sử dụng
Dễễ thay đổi
ổ (changeable)
Dễ dàng trao đổi với các mô hình khác
(exchangeable)
UML/NN 29
Các quy tắc ngôn ngữ mô hình
Syntactic (Cú pháp): cho biết hình dạng các
biể tượng
biểu tượ và à cách
á h kết hợ
hợp chúng
hú trong
t
ngôn ngữ.
Semantic (Ngữ nghĩa): cho biết ý nghĩa của
mỗi biểu tượng, chúng được hiểu thế nào khi
nằm trong hoặc không nằm trong ngữ cảnh
của các biểu tượng khác.
Pragmatic (Thực dụng): Hữu dụng, mọi
người
g có thể hiểu được
ợ mô hình,, có thể chia
sẻ thông tin một cách thuận tiện
UML/NN 30
Lịch sử các phương pháp mô hình hóa
Thập niên 60
Phương pháp sơ đẳng
ẳ với đặc tính chung là chuẩn
ẩ
hóa kỹ thuật của các nhà phát triển ứng dụng
Thập niên 70
Phương pháp Descartes với đặc trưng là phân rã chức
năng của HTTT theo mô hình phân cấp và ứng dụng
các phương pháp lập trình cấu trúc,
trúc đơn thể.
thể Một số
phương pháp: HIPO, SADT, SA hay SSA, SA/SD,…
Hướng tiếp cận:
Tính rõ ràng
Tính dừng
Sự rút g
gọn
31
Lịch sử các phương pháp mô hình hóa
32
Lịch sử các phương pháp mô hình hóa
Thập niên 80: phương pháp hệ thống, tiếp cận dữ liệu
và xử lý:
ý MERISE,, IDA,, REMORA,, IA,…
,
Cách tiếp cận
Tính toàn thể
Tính đúng đắn
Phâ loại
Phân l i
Mô hình cấu trúc dữ liệu của hệ thống (hướng tiếp cận CSDL)
Mô hình hành vi hệ thống (tiếp cận theo hướng xử lý)
Bao gồm 2 trường phái
Lưỡng phần dữ liệu và xử lý: MCT, SADT, MERISE
Không phân biệt rõ ràng giữa dữ liệu và xử lý: IDA, Remora, ACM-PCM,
CIAM
Ưu điểm
Mô hình ERA được sử dụng rộng rãi nhất
2 cách tiếp cận của hệ thống về dữ liệu và xử lý
Quan tâm đến những thành phần không tin học hóa
Kh ết điể
Khuyết điểm
Lưỡng phần dữ liệu và xử lý
33
Lịch sử các phương pháp mô hình hóa
34
Lịch sử các phương pháp mô hình hóa
Thập niên 90
Ư điểm
Ưu ể
Cấu trúc hoá được các cấu trúc phức tạp và sử dụng được
cấu trúc đệ qui
Xác định được đối tượng của hệ thống qua định danh đối
tượng
Tính thừa kế được đưa ra tạo tiền đề cho việc tái sử dụng
Khuyết điểm
ể
Nhiều khái niệm biểu diễn, khá rắc rối trong việc phân biệt
ngữ nghĩa một số khái niệm gần nhau
Xác định một đối tượng khá khó khăn
Hướng tiếp cận về hệ thống vẫn còn đơn giản
Kiểu đối tượng <-> hành vi
Mô hình ER -> đối tượng
35
Lịch sử phương pháp tiếp cận
UML/
Xöû ly
Xö lyù Thôøi gian
Thôi
RUP
OMT OOM
Sadt OOA
OODa CRC
OOSA
Axial 90 Tiếp
ế cận đối
ố tượng
Sa/sd
Remora
Ida
Ssa Merise
Tiếp cận hệ
Hipo 80 thống
Tiếp cận Descartes
Jsd
Proteeù 70
Arianne
60
Corig Niam Döõ lieäu
36
Giới thiệu
Vài công ty hàng đầu đã sử dụng và góp
phần
hầ phát
hát ttriển
iể UML
Hewlett – Packard
Microsoft
Oracle
IBM
Unisys
UML/NN 37
Lịch sử của UML
UML/NN 38
Lịch sử của UML
Booch and Rumbaughmethods - Unified
M th d v. 0.8
Method 0 8 (1995)
Jacobson góp phần cho UML 0.9, 1996
UML là standard modelling language (OMG)
1996.
UML 1.0 (1997), UML 1.1 (9 tháng sau).
UML 1.4
1 4 (2001),
(2001) UML 1.5
1 5 (2003)
UML 2.0 (cuối 2004)
UML/NN 39
UML – ngôn ngữ đặc tả
Cung cấp khung nhìn (view) cho việc phát
t iể và
triển à triển
t iể khai
kh i
UML không phụ thuộc qui trình
UML được đề nghị sử dụng với những quá
trình
Hướng theo use-case (chức năng – người dùng)
Lấy kiến trúc làm trọng tâm
Lặp lại
Tăng thêm
UML/NN 40
Đích (goal) của UML
Cung cấp những kỹ thuật đặc tả, có thể mở rộng từ
những khái niệm lõi
Cung cấp những mô hình mô hình trực quan
((visual)) và trao đổi thuận
ậ lợi
ợ
Cung cấp những đặc tả độc lập với ngôn ngữ lập
trình và qui trình phát triển
Hỗỗ trợ việc gia tăng thị trường công cụ (tool)
hướng đối tượng
Hỗ trợ mức phát triển cao hơn với những khái niệm
mẫu (pattern) và thành phần (component)
UML/NN 41
Thành phần của ngôn ngữ UML
Hướng nhìn (view)
Biể đồ (diagram)
Biểu (di )
Phần tử mô hình hóa (model element)
Cơ chế chung (General Mechanism)
UML/NN 42
“4+1” view
UML/NN 43
Biểu đồ (diagram)
UML/NN 44
Biểu đồ (diagram)
1. Biểu đồ Use case (Use Case Diagram)
2. Biể
Biểu đồ lớ
lớp (Cl
(Class Diagram)
Di )
3. Biểu đồ đối tượng (Object Diagram)
4. Biểu
ể đồ trạng thái (State Diagram)
5. Biểu đồ trình tự
ự ((Sequence
q Diagram)
g )
6. Biểu đồ cộng tác (Collaboration Diagram)
7. Biểu đồ hoạt động (Activity Diagram)
8. Biểu đồ thành phần (Component Diagram)
9
9. Biểu đồ triển khai (Deployment Diagram)
UML/NN 45
Biểu đồ Use case (Use Case Diagram)
UML/NN 46
Biểu đồ lớp (Class Diagram)
UML/NN 47
Biểu đồ đối tượng (Object Diagram)
UML/NN 48
Biểu đồ trạng thái (State Diagram)
UML/NN 49
Biểu đồ trình tự (Sequence Diagram)
: LoginForm : Database
: People
1.2: welcome
UML/NN 50
Biểu đồ cộng tác (Collaboration Diagram)
UML/NN 51
Biểu đồ hoạt động (Activity Diagram)
UML/NN 52
Biểu đồ thành phần (Component Diagram)
People
StudentInfo
<<file>> Database
PeopleInfo LectureInfo
Register
<<file>> RegisterForm
Login
<<file>>
fil
Index.shtml
LoginForm <<page>>
UML/NN 53
Biểu đồ thành phần là gì?
Thành phần là một phần vật lý và có thể thay thế
Một thà
thành
h phần
hầ code
d cóó thể là một
ột tậ
tập tin
ti (source
(
code), một thành phần nhị phân (binary) hay thực
thi được (executable)… Chúng có thể được nhóm
góp lại với nhau thành từng gói (package)
Biểu đồ thành phần là loại biểu đồ cấu trúc, chỉ ra
những sự phụ thuộcộ giữa các
á thành
à phần ầ vớiớ nhau,
một thành phần thay đổi sẽ gây ra hiệu ứng đối với
những thành phần khác
UML/NN 54
Giao diện (interface)
UML/NN 55
Biểu đồ triển khai
UML/NN 56
Mô hình Quản lý thư viện
Xử lý
57
Biểu đồ triển khai là gì?
Biểu đồ triển khai chỉ ra kiến trúc vật lý của
phần
hầ cứng
ứ cũngũ như hư phần
hầ mềm ề trong
t hệ
thống.
Biểu
ể đồ có thể ể chỉ ra từng trang thiết bị cụ
thể (node), sự kết nối, loại kết nối
Bên trong các nốt (node) chứa các thành
phần thực
p ự thi cùngg sựựpphụụ thuộc
ộ g giữa các
thành phần
UML/NN 58
NỐT (NODE)
Đối tượng vật lý thời gian thực thi mà biểu
diễ một
diễn ột tài nguyên
ê tí
tính
h ttoán,
á mộtột cách
á h
tổng quát có ít nhất một bộ nhớ và thường
có
ó khả năng
ă xử ử lý
UML/NN 59
Biểu đồ triển khai
Phân bổ các thành phần (thiết bị máy móc)
trong công trình
UML/NN 60
Biểu đồ triển khai
UML/NN 61
Phần tử mô hình (model element)
Operations
Component Name
Dependency
Generalization
Association
Aggregation
(a form of Association)
UML/NN 62
Phần tử mô hình (model element)
UML/NN 63
Quan hệ (relationship)
Liên kết (Association) : liên kết các phần tử
Khái quát
át hóa
hó (Generalization):
(G li ti ) cònò được
đ gọii là tính
tí h
thừa kế, có ý nghĩa rằng một phần tử này có thể là
một sự chuyên biệt hóa của một phần tử khác khác.
Sự phụ thuộc (Dependency): chỉ ra rằng một phần
tử này phụ thuộc trong một phương thức nào đó
vào một phần tử khác.
Kết tập (Aggregation): Một dạng của nối kết, trong
đó một phần tử này chứa các phần tử khác.
UML/NN 64
Cơ chế chung (General Mechanism)
UML/NN 65
Mở rộng UML
UML/NN 66
Sử dụng lược đồ UML
UML/NN 67
UML Hello World
UML/NN 68
Công cụ (Tool) – chức năng
Vẽ biểu đồ
H t độ
Hoạt động như
h một ột kh
kho (R
(Repository)
it )
Hỗ trợ điều hướng (Navigation )
Hỗ
ỗ trợ nhiều người sử dụng
Tự động tạo code
Tái tạo mô hình
Tích hợp với các công cụ khác
Bao quát mô hình ở tất cả các mức độ trừu tượng
hóa khác nhau
Trao đổi mô hình
UML/NN 69