GIÁO TRÌNH:
Ô Ầ Ề
C
Ô
NG NGHỆ PH
Ầ
N M
Ề
M
T ầ T ấ Mi h
T
r
ầ
n
T
u
ấ
n
Mi
n
h
CÔNG NGHỆ PHẦNMỀM
CÔNG
NGHỆ
PHẦN
MỀM
• Mục tiêu
•
Khốilượng
•
Khối
lượng
• Nội dung
Đáh iá
•
Đá
n
h
giá
• Tài liệu tham khảo
M
ục tiêu
Các khái niêm cơ bản.
Các qui trình côn
g
n
g
hệ.
Các phương pháp phát triển phần mềm
Kỹ năng giao tiếp, soạn thảo báo cáo.
Nộ d
Nộ
i
d
ung
Chương 1:
Tổng quan về CNPM.
Ch 2
Ch
ương
2
:
Phân tích yêu cầu phần mềm
Chương 3:
Chương
3:
Thiết kế phần mềm
Chươn
g
4:
g
Kiểm thử phần mềm
CHƯƠNG 1:
T
Ổ
NG
Q
UAN V
Ề
Q
CÔNG NGHỆ PHẦN MỀM
5
¾
M
ục tiêu
¾ Nội dun
g
g
6
Mục tiêu :
Mục
tiêu
:
Cung cấp các khái niệmcơ bản
trong
công
nghệ
phần
mềm
trong
công
nghệ
phần
mềm
.
7
Nội dung
:
Nội
dung
:
1. Lược sử.
2. Ph
ầ
n m
ề
m.
3. Công nghệ phần mềm.
4. Các
q
ui trình côn
g
n
g
h
ệ
.
qggệ
5. Các phương pháp phát triển phần mềm.
6 Các công cụ và môi trường phát triểnphầnmềm
6
.
Các
công
cụ
và
môi
trường
phát
triển
phần
mềm
.
7. Các nội dung cơ bản của công nghệ phần mềm.
8
1.1 Lược sử
Qua các giai đoạn :
Giai đoạn I : Thời kỳ thế hệ thứ nhất của MTĐT ( Thập niên 50.)
Mô tả d àáđặ t
Mô
tả
d
ựa v
à
o c
á
c
đặ
c
t
rưng:
a) Quan điểm : Lập trình là một hoạt động nghệ thuật, dựa trên cảm
tính.
ấ
b
)
N
gôn ngữ lập trình : NN máy, bậc th
ấ
p.
c) Phương pháp lập trình : Tuyến tính.
d
)
N
ăn
g
suất : Thấ
p
)
g
p
9
1.1 Lượcsử (tt)
1.1
Lược
sử
(tt)
Giai đoạnthứ 2:
Giai
đoạn
thứ
2
:
1. Thời kỳ khủng hoảng phần mềm ( Trong thập niên 60 )
Nguyên nhân:
Chi h
íhầ ề
-
Chi
p
h
í
p
hầ
n m
ề
m cao.
-Cácdự án phầnmềm không có có kếtquả tốtdo
phương pháp xây dựng phầnmềmcảm tính, thô sơ,thủ
ô
c
ô
ng…
2. Giải quyết khủng hoảng:
-Thay đổi quan điểm nghiên cứu,đốitượng nghiên
ứ
h
há
hiê
ứ
c
ứ
u,
ph
ương
phá
png
hiê
nc
ứ
u,
3. Các thành quả:
-Hệ tiên đ
ề
chứn
g
minh tính đún
g
của chươn
g
trình
g g g
(Hoare)
-Phương pháp luận lập trình cấu trúc.
. . .
10
1.1 Lượcsử (tt)
1.1
Lược
sử
(tt)
Giai đoạn thứ 3 : ( Từ giữa những năm 70 đến nay ) :
Đặc trưng :
Hệ
thông
phân
bố
nhiều
máy
tính
mỗi
máy
thực
hiện
một
chức
-
Hệ
thông
phân
bố
-
nhiều
máy
tính
,
mỗi
máy
thực
hiện
một
chức
năng tương tranh và liên lạcvới máy khác.
-Sự phát triển nhanh của các máy tính cá nhân.
Gi i đ thứ 4
Gi
a
i
đ
oạn
thứ
4
:
Đặc trưng :
- Công nghệ phầnmềmhướng đốitượng thay thế nhiều cách tiếpcận
ể
ầ
ề
p
hát tri
ể
n
p
h
ầ
nm
ề
m.
-Phầnmềmvớikiếntrúctínhtoánkhácvề cơ bảnnhư các hệ chuyên
gia, phầnmềmtrítuệ nhân tạo, mạng Nơron đã chuyểntừ thí nghiệm
ế
vào ứng dụng thựct
ế
.
11
1.2. Phầnmềm (Software)
1.2.
Phần
mềm
(Software)
1. Khái niệm.
Phầnmềmlàhệ thống các chương trình thựchiện đượctrênmáy
tính nhằmhổ trợ cho các nhà chuyên môn trong từng lãnh vực
chuyên
ngành
thực
hiện
tốt
các
thao
tác
nghiệp
vụ
của
mình
chuyên
ngành
thực
hiện
tốt
các
thao
tác
nghiệp
vụ
của
mình
Lĩnh vực chuyên ngành : Mọimặttrongđờisống xã hộinhư giáo
dục, quốc phòng, giải trí, kinh doanh, . . .
Nhà chuyên môn ( nguờisử dụng) : Ngườihoặcbộ phậnthamgia
hoạt động vào các lĩnh vựctương ứng.
Thao tác nghiệpvụ : Các công việc trong thế giớithực được
chuyểnvàolĩnh vựctương ứng.
2. Các đặc trưng phần mềm.
- Không hỏng, chỉ lạc hậu.
- Làm theo đơn đ
ặ
t hàn
g,
ít khi lắ
p
rá
p
từ các thành
p
hần có sẵn.
ặ g, pp p
12
1.2. Phầnmềm (tt)
1.2.
Phần
mềm
(tt)
3Cá thàh hầ hầ ề
3
.
Cá
c
thà
n
h
p
hầ
n p
hầ
n m
ề
m.
a. Thành phần giao diện :
- Tiếpnhận các yêu cầuvề việcsử dụng phầnmềmcủangườisử
dụng
(
như
chọn
công
việcnhập
dữ
liệu
nguồn
)
dụng
(
như
chọn
công
việc
,
nhập
dữ
liệu
nguồn
,…
)
- Trình bày kết quả phần mềm thực hiện.
- Điều khiển phần mềm hoạt động.
bThàh hầ ử lý
b
.
Thà
n
h
p
hầ
n x
ử
lý
:
-Kiểm tra tính hợp lệ của dữ liệu nguồn.
-Tra cứu, Tính toán, biến đổi cho ra kết quả.
Thà h hầ dữ liệ
c.
Thà
n
h
p
hầ
n
dữ
liệ
u:
-Tổ chức cấu trúc dữ liệu.
-Tổ chức lưu trử Cơ sở dữ liệu.
ấ
- Truy xu
ấ
t (đọc, ghi) dữ liệu.
13
1.2. Phần mềm
(
tt
)
.
()
4. Phân loại :
a. Phần mềm hệ thống.
Được đặc trưng bởi : Tương tác chủ yếu với phần cứng, dùng chung
i
tà
i
nguyên, . . .
Là tập các chương trình phục vụ cho các chương trình khác như :
trình biên dịch, các trình tiện ích xử lý tệp, Hệ điều hành. . .
bPhầ ề thờii th
b
.
Phầ
n m
ề
m
thời
g
i
an
th
ực.
Có đặc trưng ràng buộc chặt chẽ với thời gian.
Là các phần mềm có các thành phần :
Th hậ dữ liệ
-
Th
u t
hậ
p
dữ
liệ
u.
- Phân tích.
- Kiểm soát.
ề ố
- Đi
ề
u ph
ố
i.
Chẳng hạn như các chương trình trò chơi, điều khiển tự động,. . .
14
12 Phầnmềm (tt)
1
.
2
.
Phần
mềm
(tt)
c. Phần mềm nghiệp vụ.
Các phần mềm hệ thông tin quản lý.
d. Phần mềm khoa học và công nghệ
ố ố
Được đặc trưng bởi thuật toán s
ố
như các chương trình t
ố
i ưu,. . .
e. Phần mềm nhúng.
Nằm trong bộ nhớ chỉđọcvàđược dùng để điềukhiểncácsảnphẩm
và
hệ
thống
cho
người
dùng
và
hệ
thống
cho
người
dùng
.
f. Phần mềm máy tính cá nhân.
Như phần mềm xử lý văn bản, bảng tính, . .
g.
Ph
ầ
n m
ề
m trí t
uệ
nh
â
n t
ạo
:
g. ầ ề uệ â ạo:
Dùng các thuật toán phi số,như các hệ chuyên gia, mạng nơron nhân
tạo, . . .
15
12 Phầnmềm (tt)
1
.
2
.
Phần
mềm
(tt)
5. Chất lượng phần mềm (các tiêu chuẩn phần mềm) :
a. Tính đúng đắn : Không có sự cố, Đúng với yêu cầu thiết kế.
b
Tính
tiến
hóa
:
Có
thể
thay
đổi
mở
rộng
các
yêu
cầu
chức
năng
của
b
.
Tính
tiến
hóa
:
Có
thể
thay
đổi
,
mở
rộng
các
yêu
cầu
,
chức
năng
của
phầnmềm.
c. Tính tiện dụng : Dễ học, dễ sử dụng.
dTíhhiệ ả Ki h tế tố độ bộ hớ
d
.
Tí
n
h
hiệ
u qu
ả
:
Ki
n
h
tế
,
tố
c
độ
,
bộ
n
hớ
.
e. Tính khoa học : Về nội dung, hình thức
f. Tính độc lập : Độc lập với thiết bị, với cấu trúc đối tượng phần mềm
quản lý.
g. Tính toàn vẹn:Cócơ chế ngănngừaviệcphátsinhdữ liệu sai qui
cách, phụchồidữ liệu, . . .
. . .
16
12 Phầnmềm (tt)
1
.
2
.
Phần
mềm
(tt)
.
6. Một số thuật ngữ liên quan:
- Phát triển phần mềm (Software development).
Tiến
trình
xây
dựng
phần
mềm
từ
khi
bắt
đầu
lập
kế
Tiến
trình
xây
dựng
phần
mềm
từ
khi
bắt
đầu
lập
kế
hoạch dự án phầnmềmchođến khi chuyểngiaosản
phẩm.
-
Ứng dụng (Application).
Ứng
dụng
(Application).
Tập các chương trình thực hiện tự động trên máy tính
một số nhiệm vụ.
-
Kỹ sư phầnmềm ( Software Engineer)
-
Kỹ
sư
phần
mềm
(
Software
Engineer)
.
Ngườiápdụng kiếnthứcpháttriểnphầnmềmvàoviệc
tổ chứcxâydựng một cách có hệ thống các ứng dụng.
Người dùng (User )
-
Người
dùng
(User
)
.
Đối tượng sử dụng phần mềm.
17
1.3. Công nghệ phầnmềm (Software Engineering )
1.3.
Công
nghệ
phần
mềm
(Software
Engineering
)
1. Định nghĩa CNPM.
Công nghệ :
Là cách sử dụng các công cụ,kỹ thuật trong việcgiải quyếtmột
bài
tá
à
đó
bài
t
o
á
nn
à
o
đó
.
Công nghệ phầnmềm là ngành khoa học nghiên cứu các nguyên
lý, các phương pháp,các công cụ, các thủ tụcphụcvụ cho việcxây
dựng các phầnmềmcóchấtlượng trong khoảng thờigianvàchi
p
hí hợplý.
2. Các đối tượng nghiên cứu của CNPM.
a. Qui trình công nghệ phần mềm
Hệ thố áiiđ ttiế tì h háttiể hầ ề
Hệ
thố
ng c
á
c g
i
a
i
đ
oạn
t
rong
tiế
n
t
r
ì
n
h
p
hát
t
r
iể
n p
hầ
n m
ề
m
b. Phương pháp phát triển phần mềm :
Hệ thống các hướng dẫnchophépthựchiệnmộtgiaiđoạnnàođó
tron
g
q
ui trình côn
g
n
g
h
ệ
.
g
q
g
g ệ
c. Công cụ và môi trường phát triển phần mềm :
Tập các phần mềm hổ trợ tiến trình phát triển phần mềm.
18
1.3. Công nghệ phầnmềm (Software Engineering) (tt)
1.3.
Công
nghệ
phần
mềm
(Software
Engineering)
(tt)
3. Các yếu tố trong CNPM.
a. Con nguời :
Bao gồm:Nhàquản lý, nhà phân tích hệ thống, kỹ sư phầnmềm,
ời
kiể
đị h
hất
l
lậ
tì h
iê
ời
dù
khá h
ngư
ời
kiể
m
đị
n
h
c
hất
l
ượng,
lậ
p
t
r
ì
n
h
v
iê
n, ngư
ời
dù
ng
khá
c
h
hàng,…
Cấu trúc nhóm tuỳ theo quy mô : nhóm nhỏ hoạt động có hiệuquả
khoảng5–8người (tích hợp các khả năng có thể hổ trợ nhau).
b. Dự án PM :
Đơn vị tổ chức, quản lý việc phát triển phần mềm.
c. Sản phẩm PM :
ầ ầ ề ể ồ
Đ
ầ
u ra của dự án ph
ầ
n m
ề
m, có th
ể
là mô hình, mã ngu
ồ
n, tài liệu,. . .
d. Qui trình công nghệ.
e. Công cụ.
Sơ đồ ảnh hưởng giữa các yếu tố :
19
1.3. Công nghệ phầnmềm (Software Engineering )(tt)
1.3.
Công
nghệ
phần
mềm
(Software
Engineering
)(tt)
QUI TRÌNH
DỰ ÁN
CON
CÔNG CỤ
DỰ
ÁN
CON
NGƯỜI
CÔNG
CỤ
SẢN PHẨM
20
1.4. Các qui trình công nghệ.
( ô hì h á ì h há ể hầ ề )
(
M
ô
hì
n
h
c
á
c quy tr
ì
n
h
p
há
t tri
ể
n p
hầ
n m
ề
m
)
1. Mô hình tuần tự tuyến tính ( Linear Sequential Model)
( Các tên gọi khác :
- Mô hình thác nước (Waterfall Model)
ổ ể
- Vòng đời c
ổ
đi
ể
n (Classical life cycle) )
a. Xác định yêu cầu bài toán .
( mô tả dạng văn bản).
M tiê Chỉ áêầ àhầ ề hảiâd
M
ục
tiê
u :
Chỉ
ra c
á
c y
ê
u c
ầ
u m
à
p
hầ
n m
ề
m p
hải
x
â
y
d
ựng.
Kết quả tiếp nhận : Thông tin về các hoạt động của thể giới thực.
Kết quả chuyển giao ( cho giai đoạn sau ):
-
Danh sách các yêu cầu
-
Danh
sách
các
yêu
cầu
.
- Thông tin chi tiết về các yêu cầu.
- Các qui định liên quan.
21
1.4. Các qui trình công nghệ (tt)
1.4.
Các
qui
trình
công
nghệ
(tt)
b. Mô hình hóa yêu cầu.
( mô tả dạng sơ đồ).
Mục tiêu : Chỉ ra các yêu cầumàphầnmềmphảixâydựng dưới
d
ô
hì h
(
Mô
hì h
thế
iới
th )
d
ạng m
ô
hì
n
h
(
Mô
hì
n
h
thế
g
iới
th
ực
)
.
Kết quả tiếp nhận : Kết quả chuyển giao của giai đoạn xác định
yêu cầu.
Kếtquả chuyển giao ( cho giai đoạnsau):
Kết
quả
chuyển
giao
(
cho
giai
đoạn
sau
):
-Môhìnhxử lý : Hệ thống các công việctrongthế giớithực cùng
với quan hệ giữa chúng.
- Mô hình dữ liệu : Hệ thống thông tin cùng với quan hệ giữa
hú
c
hú
ng.
- Các mô hình khác. . .
22
1.4. Các qui trình công nghệ (tt)
1.4.
Các
qui
trình
công
nghệ
(tt)
c. Thiết kế phần mềm :
Mục tiêu : Tạo ra mô hình phần mềm (các thành phần phần mềm ).
Kết quả tiếp nhận : Mô hình thế giới thực.
ế ể
K
ế
t quả chuy
ể
n giao :
-Mô tả thành phần giao diện
-Mô tả thành phần xử lý.
Mô tả thà h hầ dữ liệ
-
Mô
tả
thà
n
h
p
hầ
n
dữ
liệ
u.
-Mô tả kiến trúc phần mềm.
23
1.4. Các qui trình công nghệ (tt)
1.4.
Các
qui
trình
công
nghệ
(tt)
d. Mã hóa.
Mục tiêu : Tạo ra phần mềm đúng theo yêu cầu.
Kếtquả tiếpnhận : Mô hình phầnmềm
Kết
quả
tiếp
nhận
:
Mô
hình
phần
mềm
.
Kết quả chuyển giao :
- Mã nguồn chương trình.
-Cơ sở dữ liệu tương ứng.
-Chương trình cài đặt.
-Chương trình đã được dịch, thi hành được.
24
1.4. Các qui trình công nghệ (tt)
1.4.
Các
qui
trình
công
nghệ
(tt)
e. Kiểm chứng.
Mục tiêu : Nâng cao độ tin cậy của phần mềm.
Kếtquả tiếpnhận:PhầnmềmMôhìnhphầnmềm danh sách các
Kết
quả
tiếp
nhận
:
Phần
mềm
,
Mô
hình
phần
mềm
,
danh
sách
các
yêu cầu.
Kết quả chuyển giao :
Phầ ề đã đ khẳ đị h ề hấtl
-
Phầ
n m
ề
m
đã
đ
ược
khẳ
ng
đị
n
h
v
ề
c
hất
l
ượng.
25