You are on page 1of 69

Chương 1

Tổng quan về phân tích và thiết kế

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.

Thế giới thực Thiết kế

Lập trình Kiểm thử Phần mềm

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ế

Cài đặt &


Kiểm thử

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)

„ Là một giai đoạn của dự án nhằm tạo ra một


môô hình
hì h rõ
õ ràng
à và à súc
ú tích
tí h những
hữ vấn
ấ đề
cần giải quyết theo những khái niệm và đối
tượ của
tượng ủ thế giới
iới thực
thự
„ Việc phân tích cần xác định những đặc
trưng, những tương tác và quan hệ có liên
quan của các thực thể

UML/NN 12
Cửa hàng bán xe hơi
„ Xác định thực thể
„ Khách
Khá h hàng

„ 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)

„ Qui trình phát triển phần mềm thống nhất


RUP là mộtột ttrong những
hữ quii trình
t ì h phát
hát triển
t iể
phần mềm theo hướng đối tượng, dùng
N ô ngữ
Ngôn ữ mô ô hình
hì h thống
thố nhất
hất (UML -
Unified modeling language)
„ RUP là qui trình do hãng Rational phát triểnể

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

responsible for Artifact

A piece of information that is


produced, modified, or used
by a process
Use case
Use case
package
UML/NN 25
Qui trình thiết kế

UML/NN 26
1.2 UML (Unified Modeling Language)

„ Là ngôn ngữ biểu diễn hệ thống bằng mô hình


„ Giải quyết
ết vấn
ấ đề trong
t các
á hệ thống
thố phức
hứ tạp,
t các
á
hệ thống ràng buộc nghiêm ngặt nhờ các ưu điểm
trong việc biểu diễn
„ Tạo một mô hình có thể sử dụng được bởi người
và máy
máy.

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

„ Thập niên 70 (tiếp)


„ Phân loại
„ Phân tích cấu trúc: phân rã chức năng HTTT (HIPO, SADT,
PSL/PSA, SA-SD, SSA, SASS )
„ Khái niệm
ệ cấu trúc: mô tả cấu trúc các đơn thể (PSL/PSA,
( / ,
JSD, SA-SD )
„ Ưu điểm
„ Tiếp cận theo hướng từ trên xuống (top – down)
„ Dễ
ễ dàng áp dụng cho các hệ thống được cấu thành bởi
những thành phần ghép nối
„ Tiếp cận từng bước
„ Khuyết điểm
„ Thiếu qui luật chính xác trong sự phân rã
„ Thiếu các ràng buộc về việc bố trí xứ lý theo thời gian
„ Khó khăn trong việc phân rã một hệ thống lớn

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

„ Thập niên 90: phương pháp hướng đối tượng, mô hình


tiêu biểu là OOD,
OOD HOOD,
HOOD BON,
BON OSA,
OSA … và sau này là
OOSA, OOA, OMT, CRC, OOM, OOAD, UML/RUP
„ Đặc trưng cơ bản
„ Tính bao bọc (encapsulation)

„ Tính phân loại (classification)

„ Tính kết hợp (aggregation)

„ Tính thừa kế (heritage)


( g )
„ Phân loại: 2 hướng
„ Lập trình:lập trình đơn thể -> hướng đối tượng
„ Hệ quản trị CSDL: CSDL hướng đối tượng
„ Cách tiếp cận: 2 cách
„ Phương pháp kỹ thuật: CNPM (OOD, HOOD, BON, BOOCH,
MECANO, OODA)
„ Phương pháp toàn cục:HTTT (OOA, OOSA, OOAD, OMT, OOM )

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: submit(uname, psswd) 1.1: verify(uname, psswd)

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

Node 1 (phòng quản trị):Server Node 3 (đọc giả):APP


CSDL
Giao diện

Node 2 (phòng quản trị):APP


Server Node 4 (thủ thư):APP
Tiện ích
Cơ sở dữ
liệu Giao diệ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

ó 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)

Use case Class


name
Attributes

Operations
Component Name
Dependency
Generalization

Association

Aggregation
(a form of Association)

UML/NN 62
Phần tử mô hình (model element)

„ Các biểu đồ được xây dựng từ các phần tử mô hình


(model element).
element)
„ Một phần tử mô hình được định nghĩa với ngữ
nghĩa (semantic) và được biểu diễn bằng ký hiệu
„ Một phần tử mô hình có thể tồn tại trong nhiều
dạng biểu đồ khác nhau
nhau, theo những nguyên tắc
xác định loại phần tử nào được dùng trong loại
biểu đồ nào

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)

„ Biểu thị (Adornment)


„ Ghi chú
hú (Note)
(N t )
„ Đặc tả (Specification)

UML/NN 65
Mở rộng UML

„ Khuôn mẫu (Stereotype)


„ Giá trị đính kèm (Tagged Value)
„ Ràngg buộcộ ((Constraint))

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

You might also like