Mô tả:
P
h
Ç
n
1
giíi thiÖu vÒ
chu tr×nh sèng cña phÇn mÒm
(INTRODUCTION TO THE SOFTWARE LIFE CYCLE)
Huỳnh Xuân Hiệp - CNPM
4
1
ph¹m vi cña c«ng nghÖ phÇn mÒm
(SCOPE OF SOFTWARE ENGINEERING)
Nội dung:
Lịch sử
Kinh tế
Bảo trì
Đặc tả và thiết kế
Đội ngũ lập trình
Mô hình hương đối tượng
Thuật ngữ
Huỳnh Xuân Hiệp - CNPM
5
1.1
1.1LÞch
LÞch sö
(historical aspects)
Thuật ngữ công nghệ phần mềm (software engineering-SE) được đề xuất
bởi một nhóm nghiên cứu của NATO vào năm 1967
Hội nghị về SE được tổ chức tại Garmisch-Đức năm 1968 nhằm giải quyết
vấn đề khủng hoảng phần mềm
Cuộc khủng hoảng vẫn còn kéo dài đến nay vì hai lý do:
tiến trình sản xuất phần mềm có những thuộc tính và vấn đề riêng
sự trì trệ của phần mềm (software depression) với thời gian kéo dài
và những dự đoán nghèo nàn
Sự phát triển của phần cứng và hệ điều hành
hệ điều hành đa nhiệm (1960s)
bộ nhớ ảo (1970s)
đa xử lý (multiprocessor)
hệ điều hành phân tán (mạng),...
Vấn đề bảo trì phần mềm
Huỳnh Xuân Hiệp - CNPM
6
1.2
1.2Kinh
Kinh tÕ
(economic aspects)
Sự lựa chọn kỹ thuật thực hiện nhanh hơn để giảm giá thành
Sự ảnh hưởng của kỹ thuật mới lên công ty phần mềm
khó bảo trì
thời gian huấn luyện
kinh nghiệm làm việc trên kỹ thuật mới chưa nhiều
Phụ thuộc vào sự lựa chọn của khách hàng
Luật bản quyền
Huỳnh Xuân Hiệp - CNPM
7
1.3
1.3B¶o
B¶o tr×
(maintenance aspects)
Chu tr×nh sèng cña phÇn mÒm
yªu cÇu
®Æc t¶ (ph©n tÝch)
thiÕt kÕ
cµi ®Æt
tÝch hîp
b¶o tr×
kÕt thóc ho¹t ®éng
ViÕt m· lÖnh
cho m«-®un
5%
Giai ®o¹n yªu cÇu vµ ®Æc t¶
Yªu cÇu
2%
132 dù ¸n gÇn ®©y
nhÊt cña
Hewlett-Packard
18%
Giai ®o¹n thiÕt kÕ
18
19
Giai ®o¹n cµi ®Æt
36
34
Giai ®o¹n tÝch hîp
24
29
H×nh 1.2 Mét sè so s¸nh trªn c¸c dù ¸n
Huỳnh Xuân Hiệp - CNPM
TÝch hîp
8%
ThiÕt kÕ
6%
§Æc t¶
(Ph©n tÝch)
5%
C¸c dù ¸n kh¸c
nhau tõ
1976 ®Õn 1981
21%
KiÓm thö m«-®un
7%
B¶o tr×
67%
H×nh 1.1 Gi¸ thµnh cña c¸c
giai ®o¹n trong chu tr×nh
sèng cña phÇn mÒm
8
1.4
1.4§Æc
§Æc t¶ vµ thiÕt kÕ
(specification and design aspects)
Sai sãt t¹i c¸c giai ®o¹n tríc sÏ ¶nh hëng ®Õn c¸c giai ®o¹n sau, t¹o ra
c¸c lçi. C«ng viÖc söa ch÷a c¸c lçi cµng sím cµng tèt lµ rÊt quan träng
Huỳnh Xuân Hiệp - CNPM
9
400
368
350
300
Gi
¸
gÇ
n
®ó
ng
(xÊ
p
xØ)
®Ó
t×m
kiÕ
m
vµ
chØ
nh
sö
a
mé
t
lçi
250
200
200
c¸c dù ¸n tõ 1974
®Õn 1980
150
IBM AS/400 [Kan
vµ al., 1994]
100
52
50
30
1
4
10
3
Huỳnh Xuân Hiệp - CNPM
1
Yªu cÇu
ThiÕt kÕ
§Æc t¶
TÝch hîp
Cµi ®Æt
B¶o tr×
H×nh 1.4 Gi¸ ph¶i tr¶ ®Ó ®iÒu chØnh lçi
1.3 Đội ngũ lập trình
(team programming aspects)
Hình thành từng nhóm làm việc chuyên biệt trong từng lĩnh vực. Một số
vấn đề nảy sinh như:
cách chia xẻ các phần công việc
mối quan hệ, sự giao tiếp giữa các thành viên với nhau
Kỹ thuật tổ chức và quản lý đội ngũ phát triển phần mềm
lập trình viên
đặc tả viên
thiết kế viên,...
Sự ràng buộc lẫn nhau giữa các thành viên cùng nhóm, khác nhóm,...
Cách đánh giá thời gian làm việc
Cách đánh giá hiệu quả công việc
Cách đánh giá về kinh nghiệm thực hiện công việc
Huỳnh Xuân Hiệp - CNPM
1
1.5
1.5M«
M« h×nh h
híng
íng ®èi ttîng
îng
(the object-oriented paradigm)
D÷ liÖu vµ t¸c ®éng cã vai trß quan träng nh nhau. Mét sè tªn gäi kh¸c:
thiÕt kÕ híng tr¸ch nhiÖm (responsibility-driven design)[Wirfs-Brock,
Wilkerson vµ Wiener, 1990]
thiÕt kÕ theo hîp ®ång [Meyer, 1992a]
th«ng b¸o
rót tiÒn
göi tiÒn
tµi kho¶n
tiÒn göi
x¸c ®Þnh
tån kho¶n
göi tiÒn
rót tiÒn
th«ng b¸o
tµi kho¶n
tiÒn göi
x¸c ®Þnh
th«ng b¸o
tån kho¶n
(a)
(b)
H×nh 1.4 So s¸nh hai ph¬ng ph¸p cµi ®Æt (a) cÊu tróc vµ (b) híng ®èi tîng
Híng cÊu tróc
Híng ®èi tîng
Huỳnh Xuân Hiệp - CNPM
1
1. Yªu cÇu
1. Yªu cÇu
2. §Æc t¶ (ph©n tÝch)
2. (*) §Æc t¶ (ph©n tÝch) híng ®èi tîng
3. ThiÕt kÕ
3. (*)ThiÕt kÕ híng ®èi tîng
4. Cµi ®Æt
4. (*)LËp tr×nh híng ®èi tîng
5. TÝch hîp
5. TÝch hîp
6. B¶o tr×
6. B¶o tr×
7. KÕt thóc ho¹t ®éng
7. KÕt thóc ho¹t ®éng
H×nh 1.5 So s¸nh chu tr×nh sèng gi÷a híng cÊu tróc vµ híng ®èi tîng
Híng cÊu tróc
2. §Æc t¶ (ph©n tÝch)
•
x¸c ®Þnh s¶n phÈm ph¶i lµm g×
Híng ®èi tîng
2. (*) §Æc t¶ (ph©n tÝch) híng ®èi tîng
•
x¸c ®Þnh s¶n phÈm ph¶i lµm g×
•
t¹o c¸c ®èi tîng
3. (*)ThiÕt kÕ híng ®èi tîng
•
thiÕt kÕ chi tiÕt
3. ThiÕt kÕ
•
thiÕt kÕ kiÕn tróc (t¹o c¸c m«®un )
•
thiÕt kÕ chi tiÕt
4. Cµi ®Æt
4. (*)LËp tr×nh híng ®èi tîng
•
cµi ®Æt trªn ng«n ng÷ lËp tr×nh
•
cµi ®Æt trªn ng«n ng÷ lËp tr×nh híng ®èi tîng
thÝch hîp
thÝch hîp
H×nh 1.6 Sù kh¸c nhau gi÷a híng cÊu tróc vµ híng ®èi tîng
Huỳnh Xuân Hiệp - CNPM
1
Thuật ngữ
(terminology)
Phần mềm (software)
mã lệnh dưới dạng máy có thể đọc được
các dạng tài liệu đặc tả, thiết kế, luật và sổ sách về chi phí
kế hoạch quản lý dự án phần mềm và các tài liệu quản lý khác
các dạng tài liệu hướng dẫn sử dụng
Chương trình (program), là một đoạn mã lệnh có thể tự thực thi được
Hệ thống (system), là tập hợp các chương trình liên quan với nhau
Sản phẩm (product)
một mẩu bình thường của phần mềm
kết quả đạt được sau một tiến trình (process) phát triển phần mềm
Sản xuất phần mềm (software production) bao gồm hai giai đoạn:
phát triển phần mềm (software development)
bảo trì (maintenance)
Huỳnh Xuân Hiệp - CNPM
1
TËp hîp c¸c kü thuËt (methodology, paradigm)
Lçi (error) hay cã lçi (bug)
Thuéc tÝnh (attribute), lµ thµnh phÇn d÷ liÖu cña mét ®èi tîng. Cßn gäi lµ:
tr¹ng th¸i biÕn (state variable) trong ng÷ c¶nh híng ®èi tîng
thÓ hiÖn biÕn (instance variable,field) trong Java
trêng (field,member) trong C++
Ph¬ng thøc (method). Cßn gäi lµ:
hµm thµnh viªn (member function) trong C++
trêng (field) trong Java
Khi mét ph¬ng thøc bªn trong mét ®èi tîng ®îc kÝch ho¹t, ta gäi lµ göi mét
th«ng b¸o (sending a message) ®Õn ®èi tîng
Huỳnh Xuân Hiệp - CNPM
1
Huỳnh Xuân Hiệp - CNPM
1
- Xem thêm -