Ư
CH
Ư
ƠNG 1:
Ổ Ề
T
Ổ
NG QUAN V
Ề
CÔNG NGHỆ PHẦNMỀM
CÔNG
NGHỆ
PHẦN
MỀM
¾
Mục
tiêu
ục tiêu
¾
Nội dung
¾
Nội
dung
Mục tiêu :
Mục
tiêu
:
Cun
g
c
ấp
các khái ni
ệ
mcơ
b
ản
g
p
ệ
trong công nghệ phầnmềm.
Nội dung
:
Nội
dung
:
1. Lược sử.
ầ ề
2. Ph
ầ
n m
ề
m.
3. Côn
g
n
g
h
ệ
p
h
ầ
n m
ề
m.
ggệ p
4. Các qui trình công nghệ.
5Cácphương pháp phát triểnphầnmềm
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ển phần mềm.
ầ ề
7. Các nội dung cơ bản của công nghệ ph
ầ
n m
ề
m.
1.1 Lược sử
Qua các giai đoạn :
Giai đoạnI:
Thờikỳ thế hệ thứ hất ủ MTĐT(Thậ iê 50 )
Giai
đoạn
I
:
Thời
kỳ
thế
hệ
thứ
n
hất
c
ủ
a
MTĐT
(
Thậ
p n
iê
n
50
.
)
Mô tả dựa vào các đặc trưng:
a)
Quan điểm:L
ậptrìnhlàmộthoạt động nghệ thuật, dựatrêncảm
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) Ngô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ăng suất : Thấp
11Lượcsử (tt)
1
.
1
Lược
sử
(tt)
Giai đoạn thứ 2 :
1. Thời kỳ khủng hoảng phần mềm ( Trong thập niên 60 )
Nêhâ
N
guy
ê
n n
hâ
n:
- Chi phí phần mềm cao.
-
Các
dự
án
phần
mềm
không
có
có
kết
quả
tốt
do
Các
dự
án
phần
mềm
không
có
có
kết
quả
tốt
do
phương pháp xây dựng phầnmềmcảm tính, thô sơ,thủ
công…
2Giải ếtkhủ h ả
2
.
Giải
quy
ết
khủ
ng
h
o
ả
ng:
-Thay đổi quan điểm nghiên cứu,đốitượng nghiên
cứu,
p
hươn
g
p
há
p
n
g
hiên cứu,
p g
pp
g
3. Các thành quả:
-Hệ tiên đề chứng minh tính đúng của chương trình
(Hoare)
(Hoare)
-Phương pháp luận lập trình cấu trúc.
. . .
11Lượcsử (tt)
1
.
1
Lược
sử
(tt)
Giai đoạn thứ 3 : ( Từ giữa những năm 70 đến nay ) :
Đ
ặctrưng :
Đ
ặc
trưng
:
-Hệ thông phân bố -nhiều máy tính, mỗimáythựchiệnmộtchứ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.
Giai đoạn thứ 4 :
Đ
ặ t ư
Đ
ặ
c
t
r
ư
ng :
- Công nghệ phầnmềmhướng đốitượng thay thế nhiều cách tiếpcận
phát triểnphầ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ực
tế
vào
ứng
dụng
thực
tế
.
12 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ựchiệntốt các thao tác nghiệpvụ củamình
Lĩnh vực chuyên ngành : Mọimặttrongđờisống xã hộinhư giáo
d
ố
hò
iải
tí
ki h
dh
d
ục, qu
ố
c
phò
ng, g
iải
t
r
í
,
ki
n
h
d
oan
h
,
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.
Th
tá
hiệ
Cá
ô
iệ
t
thế
iới
thự
đượ
Th
ao
tá
cng
hiệ
pv
ụ
:
Cá
cc
ô
ng v
iệ
c
t
rong
thế
g
iới
thự
c
đượ
c
chuyểnvàolĩnh vựctương ứng.
2Cácđặctrưng phầnmềm
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àng, ít khi lắp ráp từ các thành phần có sẵn.
12 Phầnmềm (tt)
1
.
2
.
Phần
mềm
(tt)
3. Các thành phần phần mềm.
a. Thành phần giao diện :
ế
ầ
ề
ầ
ề
- Ti
ế
pnhận các yêu c
ầ
uv
ề
việcs
ử
dụng
p
h
ầ
nm
ề
mcủangườis
ử
dụng ( như chọn công việc,nhậpdữ 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.
b. Thành phần xử lý :
Kiểm tra tính hợplệ củadữ liệu nguồn
-
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ả.
c. Thành phầ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
-
Truy
xuất
(đọc
,
ghi)
dữ
liệu
.
12 Phầnmềm (tt)
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
tài nguyên, . . .
Là tập các chương trình phụcvụ cho các chương trình khác như :
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. . .
b. Phần mềm thời gian thực.
Có đặctrưng ràng buộcchặtchẽ vớithờigian
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 :
- Thu thập dữ liệu.
- Phân tích.
- Kiểm soát.
Điềuphối
-
Điều
phối
.
Chẳng hạn như các chương trình trò chơi, điều khiển tự động,. . .
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ầnmềm nhúng.
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.
f
.
Ph
ầ
n m
ề
m m
áy
tính
cá
nh
â
n
.
. ầ ề áy cá â .
Như phần mềm xử lý văn bản, bảng tính, . .
g. Phần mềm trí tuệ nhân tạo :
Dùng
các
thuật
toán
phi
số
như
các
hệ
chuyên
gia
mạng
nơron
nhân
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, . . .
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) :
aTínhđúng đắn : Không có sự cố
Đúng vớiyêucầuthiếtkế
a
.
Tính
đúng
đắn
:
Không
có
sự
cố
,
Đúng
với
yêu
cầu
thiết
kế
.
b. Tính tiếnhóa:Cóthể thay đổi, mở rộng các yêu cầu, chứcnăng của
phầnmềm.
c. Tính tiện dụng : Dễ học, dễ sử dụng.
d. Tính hiệu quả : Kinh tế, tốc độ, bộ nhớ.
Tí h kh h Về ộid hì hthứ
e.
Tí
n
h
kh
oa
h
ọc :
Về
n
ội
d
ung,
hì
n
h
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, . . .
. . .
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ểnphầnmềm (Software development)
Phát
triển
phần
mềm
(Software
development)
.
Tiếntrìnhxâydựng phầnmềmtừ khi bắt đầulậpkế
hoạch dự án phầnmềmchođến khi chuyểngiaosản
phẩm
phẩm
.
- Ứng dụng (Application).
Tập các chương trình thựchiệntự động trên máy tính
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ần mềm ( Software Engineer).
N ời
á
d
kiế
thứ
hát
tiể
hầ
ề
à
iệ
N
gư
ời
á
p
d
ụng
kiế
n
thứ
c
phát
t
r
iể
n
phầ
nm
ề
mv
à
ov
iệ
c
tổ chứcxâydựng một cách có hệ thống các ứng dụng.
-
Ng
ười dùn
g
(
User
)
.
g g( )
Đối tượng sử dụng phần mềm.
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 toán nào đó.
Công nghệ phầnmềm là ngành khoa học nghiên cứu các nguyên
lý, các
p
hương
p
háp,các công cụ, các thủ tục
p
hụcvụ cho việcxây
dựng các phầnmềmcóchấtlượng trong khoảng thờigianvàchi
phí hợplý.
2Cá đốitượ hiê ứ ủ CNPM
2
.
Cá
c
đối
tượ
ng ng
hiê
n c
ứ
u c
ủ
a
CNPM
.
a. Qui trình công nghệ phần mềm
Hệ thống các giai đoạn trong tiến trình phát triển phầ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đó
trong qui trình công nghệ.
i hiể hầ ề
c. Công cụ và mô
i
trường p
h
át tr
iể
n p
hầ
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.
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,
ngườikiểm định chấtlượng, lập trình viên, người dùng khách
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ố :
1 3 Công nghệ phầnmềm (Software Engineering )(tt)
1
.
3
.
Công
nghệ
phần
mềm
(Software
Engineering
)(tt)
QU
I TRÌ
N
H
QU N
DỰ ÁN
CON
NGƯỜI
CÔNG CỤ
SẢN PHẨM
1.4. Các
q
ui trình côn
g
n
g
hệ.
qgg
( Mô hình các quy trình phát triển phầ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 .
a.
Xác
định
yêu
cầu
bài
toán
.
( mô tả dạng văn bản).
Mục tiêu : Chỉ ra các yêu cầu mà phần mềm phải xây dựng.
Kếtquả tiếpnhận : Thông tin về các hoạt động củathể giớithực
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.
Thông tin chi tiết ề cácêcầ
-
Thông
tin
chi
tiết
v
ề
các
y
ê
u
cầ
u.
- Các qui định liên quan.
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ạng mô hình ( Mô hình thế giớithự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ế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
chúng.
- Các mô hình khác. . .
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ầngiaodiện
Mô
tả
thành
phần
giao
diện
-Mô tả thành phần xử lý.
-Mô tả thành phần dữ liệu.
-
Mô tả kiếntrúcphầnmềm
-
Mô
tả
kiến
trúc
phần
mềm
.
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ạoraphầnmềm đúng theo yêu cầu
Mục
tiêu
:
Tạo
ra
phần
mềm
đúng
theo
yêu
cầu
.
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.
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ậycủaphầnmềm
Mục
tiêu
:
Nâng
cao
độ
tin
cậy
của
phần
mềm
.
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ần mềm đã được khẳng định về chất lượng.
1 4 Các qui trình công nghệ (tt)
1
.
4
.
Các
qui
trình
công
nghệ
(tt)
f. Bảo trì :
Mục tiêu : Làm cho phầnmềmhoạt động ổn định hoặcnângcấp
Mục
tiêu
:
Làm
cho
phần
mềm
hoạt
động
ổn
định
hoặc
nâng
cấp
phần mềm.
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ầnmềm đãhoạt động ổn định
-
Phần
mềm
đã
hoạt
động
ổn
định
.
-Phần mềm đã được nâng cấp.
1 4 Các qui trình công nghệ (tt)
1
.
4
.
Các
qui
trình
công
nghệ
(tt)
XĐYC
MHHYC
Thiết kế
Mã hoá
Mã
hoá
Kiểm
chứng
Bảo trì
( Mô hình thác nước )
Ưu điểm:
Ưu
điểm:
Các giai đoạn được định nghĩa, với đầuvàovàđầurarõ
ràn
g
.Môhìnhnà
y
cơ bảnd
ự
atrêntàili
ệu
nh
ấ
tlàtron
g
ầ
ầ
ầ
ề
g
y
ự
ệ
g
các giai đoạn đ
ầ
u, đ
ầ
uvàovàđ
ầ
urađ
ề
ulàtàiliệu.
Sảnphẩmphầnmềm được hình thành thông qua chuỗi
các
hoạt
động
xây
dựng
phần
mềm
theo
trình
tự
rõ
ràng
các
hoạt
động
xây
dựng
phần
mềm
theo
trình
tự
rõ
ràng
.
Nhược điểm:
Nhược
điểm:
Đòi hỏitấtcả yêu cầuphầnmềmphải đượcxácđịnh rõ
ràn
g
n
g
a
y
t
ừ
đ
ầu
d
ự
án.
N
hưn
g
đas
ố
d
ự
án cho th
ấy
y
êu
ầ
ầ
ề
ẩ
ể
ắ
g
gy
ự
g
ự
y
y
c
ầ
u
p
h
ầ
nm
ề
mthường
ẩ
nchứa các đi
ể
m không ch
ắ
c
chắn.
Chưa
thực
sự
phù
hợp
với
thực
tế
vì
các
dự
án
hiếm
khi
Chưa
thực
sự
phù
hợp
với
thực
tế
vì
các
dự
án
hiếm
khi
đượcthựchiện đầy đủ các bước trong suốt chu kỳ dự án.
Ngườisử dụng không có cơ hộithamgiatrongsuốtthời
i
ủ
á
ii
đ
t
i
từ
thiết
kế
h
đế
kiể
g
i
an c
ủ
ac
á
cg
i
a
i
đ
oạn
t
rung g
i
an
từ
thiết
kế
c
h
o
đế
n
kiể
m
thử. Đặcbiệtvớinhững dự án lớn, ngườisử dụng chỉ có
thể nhậnrarằng hệ thống phầnmềm không phù hợpcho
h
ầ
ủ
h
à
thời
điể
ối
d
á
n
h
uc
ầ
uc
ủ
a
h
ọ v
à
o
thời
điể
mcu
ối
dự
á
n.
Nói
chung
mô
hình
này
thường
ẩn
chứa
nhiều
rủi
ro
mà
Nói
chung
,
mô
hình
này
thường
ẩn
chứa
nhiều
rủi
ro
mà
chỉ có thể phát hiện ở giai đoạncuối cùng và chi phí để
sửachữacóthể rất cao.