Trường
Đại
Học
Bách
Khoa
Tp.
Hồ
Chí
Minh
Khoa
Công
Nghệ
Thông
Tin
Môn học
CÔNG
NGHỆ
PHẦN
MỀM
- Trang 1 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần M
ềm
GIỚI
THIỆU
MÔN
HỌC
Đặ c đi ểm
Ma õ số: 501095 Số tín chỉ: 2 Phân
phối giờ: 2(2.1.4)
Mô n họ c trước: Toán Ti n Học (501302)
Tó m tắt nội dung
Các khái niệm cơ bả n củ a Cô ng Nghệ Phần Mềm: các mo â hình pha ùt triển
phần mềm, phân tích yêu cầu, thiết k ế, k iểm tra…
2 trường phái c hính: c ó cấu trúc (cổ đi ển) & hướ ng đối tượng
Chuẩ n UML v à v iệc áp dụ ng n ó trong phương pháp hướng đối tượng
Thực hành tại phòng Lab: là m quen với co âng cu ï Rational Rose
- Trang 2 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mề
m
GIỚI
THIỆU
MÔN
HỌC
(t.t)
Tài li ệu tham khảo
[1] Software Engineering - A practitioner’s a pproach, R.S.
Pressman, McGraw-Hill, 1997
[2] OMG Unified Modeling La nguage Specification, version
1.3,
Object Management Group (www.omg.org), 1999
[3]UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998
[4] Object-Oriented Software Engineering, A U se-Case
Driven
Approach, I. Jacobson, ACM Press/Addison-Wesley, 199 2
[5] Object-Oriented Analysis and Design with App lications,
G.
Booch, The Benjamin Cummings Pub lishing Company, 1994
- Trang 3 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần
Mềm
GIỚI
THIỆU
MÔN
HỌC
(t.t)
Hình
thức
đánh
giá
Thi g iữa kỳ: trắc nghiệm kho âng s ử dụng
tài liệu , chiếm 20 % kết quả cuo ái c ùng
Thi cu ối kỳ: trắc nghiệm không sử dụng
tài liệu , chiếm 80 % kết quả cuo ái c ùng
- Trang 4 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm
ĐỀ
CƯƠNG
Chương 1
:
Giới
thiệu
về
Công
Nghệ
Phần
Mềm
Chương 2
:
Phân
tích
yêu
cầu
theo
phương
pháp
cổ
điển
Chương 3
:
Các
khái
niệm
cơ
bản
của
mô
hình
hướng
đối
tượng
Chương 4
:
Mô
hình
nghiệp
vụ
và
thu
thập
yêu
cầu
Chương 5
:
Phân
tích
yêu
cầu
hướng
đối
tượng
Chương 6
:
Cơ
sở
của
thiết
kế
phần
mềm
và
phương
pháp
thiết
kế
cổ
điển
Chương 7
:
Thiết
kế
hướng
đối
tượng
Chương 8
:
Hiện
thực
và
triển
khai
hệ
thống
Chương 9
:
Kỹ
thuật
kiểm
tra
phần
mềm
Chương 10
:
Chiến
thuật
kiểm
tra
phần
mềm
- Trang 5 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần
Mềm
Trường
Đại
Học
Bách
Khoa
Tp.
Hồ
Chí
Minh
Khoa
Công
Nghệ
Thông
Tin
Chương 1
GIỚI
THIỆU
VỀ
CÔNG
NGHỆ
PHẦN
MỀM
✦
Một
số
khái
niệm
✦
Các
mô
hình
phát
triển
phần
mềm
- Trang 6 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
NỘI
DUNG
1.1.
Một
số
khái
niệm
1.1.1.
Khủng
hoảng
phần
mềm
1.1.2.
Đònh
nghóa
1.1.3.
Chu
trình
(process),
phương
pháp
(method),
công
cụ
(tool)
1.1.4.
Một
cách
nhìn
tổng
quan
về
công
nghệ
phần
mềm
1.1.5.
Mô
hình
CMM
1.2.
Các
mô
hình
phát
triển
phần
mềm
1.2.1.
Mô
hình
tuần
tự
tuyến
tính
1.2.2.
Mô
hình
prototype
1.2.3.
Mô
hình
xoắn
ốc
1.2.4.
Mô
hình
tăng
dần
1.2.3.
Mô
hình
RAD
- Trang 7 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
KHỦNG
HOẢNG
PHẦN
MỀM
Phần me àm được viết ngay t ừ khi
xuất hiện các h ệ máy tính và n gôn
ngữ lậ ïp trình đầu tiên
Trên thực tế s ản xuất phầ n m ềm
không đa ùp ứng kòp yêu ca àu của
người s ử dụng
- Trang 8 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới th
iệu về CNPM
KHỦNG
HOẢNG
PHẦN
MỀM
(t.t)
Cá c dữ liệu quan sát đươ ïc
Cứ
6 đe à a ùn t riển khai thì có 2 bò huỷ bỏ
Trung bình th ời gian thực hiện th ực t ế bò kéo da øi 50 % (cá biệt 200-
300%)
Cá c đe à án lớn d ễ thất bại
3/4 ca ùc hệ thống lớn có lỗi khi thực thi
Qua ù trình phân tích ye âu cầu (5 % co âng sức): đe å lạ i 55 % lo ãi, c ó 18 %
phát hiện được
Qua ù trình thiết kế (25 % công sức): đ ể lại 30 % lo ãi, co ù 10 % p hát h iện
được
Qua ù trình mã hoá, kiểm tra và bảo trì: để lại 15 % lỗi, có 72 % phát hiện
được
- Trang 9 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
KHỦNG
HOẢNG
PHẦN
MỀM
(t.t)
Nguyê n nh ân
Phát triển phầ n mềm giống như một nghệ thuật, chưa được xem như một
ngành khoa h ọc
Qua ù trình phát triển p hần m ềm chưa được thống nhất
Phải viết lạ i s/w mỗi khi có s ự thay đổi về ngo ân ngữ , h/w hoặc o/s
Chưa đạ t đượ c 1 chuẩn cho việc đo lư ờng hiệu su ất và sản phẩm
Đo ä p hức ta ïp của phần me àm qua ù cao đố i v ới 1 “kie án t rúc sư”
Kỹ thuật đặc tả đe å la ïi s ự nhập nh ằng trong cá c ye âu cầu pha àn m ềm
Làm việ c nhóm kho âng đu ùng kỷ lu ật g ây ra các lỗi
- Trang 10 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
KHỦNG
HOẢNG
PHẦN
MỀM
(t.t)
Hướng
tới
công
nghệ
sản
xuất
phần
mềm
chuyên
nghiệp
product
ion
cr
aft
science
commercialization
professional
engineering
- Trang 11 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
ĐỊNH
NGHĨA
Đònh
nghóa
cổ
điển
(của
Fritz
Bauer)
Công Nghệ Phần Mềm là sự th iết lập và s ử dụng ca ùc nguyên tắc
khoa học nha èm mu ïc đích tạo ra ca ùc phần m ềm một cách kinh tế mà
cá c phần mềm đo ù hoạt độ ng h iệu quả và tin cậy trên các m áy tính.
- Trang 12 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1
: Giới thiệu về CNPM
ĐỊNH
NGHĨA
(t.t)
Đònh
nghóa
khác:
Công Nghệ Phần Mềm
Là c ác quy trình đúng k ỷ luật v à có đònh lượng được áp dụng
cho s ự phát triển, thực thi và bảo trì c ác hệ thố ng thiên về phầ n
mềm
Tập trung vào quy trình, s ự đo lư ờng, sản phẩm, tính đú ng
thời gian v à chất lươ ïng
- Trang 13 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
CHU
TRÌNH
Chu trình ( process) đònh nghóa một bo ä khung các tiêu
chuẩn pha ûi được thiết lập để triển khai công nghệ phần
mềm.
- Trang 14 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
PHƯƠNG
PHÁP
Phương pháp (method) chỉ ra cách thực hiện những công
việc c ụ thể (“how to”):
phân tích yêu cầu
thiết ke á
xâ y dựng chương trình
kiểm tra
sử a lo ãi
- Trang 15 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
CÔNG
CỤ
Công cụ (tool) cung ca áp các hỗ trơ ï tự
động hay b án t ự động đố i v ới chu trình và
phương pháp
Các co âng c ụ được tích hợ p t ạo thàn h
CASE ( Computer Aided Software
Engineering)
- Trang 16 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới t
hiệu về CNPM
MỘT
CÁCH
NHÌN
TỔNG
QUAN
VỀ
CNPM
Gồm 3 giai đoạn lớn
Giai đoạn đònh nghóa: Ph ân tích h ệ t hống ( system engineering), Hoạc h
đònh đề tài (software project management), Phâ n tích yêu cầu (requirement
analysis).
Giai đoạn phát triển: Thiết kế phần mềm (software design), sinh ma õ
(code generation), kiểm tra pha àn mềm (software testing)
Giai đoạn bảo trì: Sử a lỗi (correction), thay đổ i môi trường thực thi
(adaptation), ta êng cường (enhancement)
- Trang 17 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chươn
g 1: Giới thiệu về CNPM
MÔ
HÌNH
CMM
Opti
mize
d
(Le
vel 5
)
Risk
Managed
(Level 4)
Defined
(Level 3)
Repeatable
(Level 2)
Initial
Competitiveness
(Level 1)
- Trang 18 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới th
iệu về CNPM
CÁC
MÔ
HÌNH
PHÁT
TRIỂN
PHẦN
MỀM
Mô hình tu ần tự tuyến tính: c ổ điển
Mô hình prototyping: prototype
Mô hình xo ắn ốc: đánh giá rủi ro
Mô hình t ăng dần: ca ùc bước la ëp
Mô hình RAD: thời gian phát t riển ngắn
- Trang 19 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
MÔ
HÌNH
TUẦN
TỰ
TUYẾN
TÍNH
System
Engineering
Requirement
An
alysis
Software
Design
Coding
Test
Maintenance
Mô hình p hát triển p hần me àm đầu tiên
Các co âng vi ệc tiếp nối nhau một cách tuầ n t ự
Đặt n ền móng cho c ác phương pháp p hân tích, thiết k ế, kiểm
tra…
- Trang 20 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
MÔ
HÌNH
TUẦN
TỰ
TUYẾN
TÍNH
(t.t)
Bộ c lộ một so á khuyết điểm
Bả n c hất của pha ùt triển phần mềm là quá trình la ëp đi lặp lại chứ k hông
phải tuần tự
Bắ t buộc khác h hàng đa ëc tả tất cả yêu cầu m ột cách chính xác và đầ y đu û
ngay t ừ ban đầu
Khách hàng thường phải chờ đợi rất lâu để thấy đư ợc ph iên bản đầu tie ân
của sản p hẩm
Tồ n ta ïi “delay” trong nhóm làm việc
- Trang 21 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
MÔ
HÌNH
PROTOTYPING
Xây
dựn
g
prototyp
e
Prototype như l à một cơ chế để
nhận diện chính xa ùc yêu ca àu của
khách hàn g
Thảo
luận
với
khách
hàng
Prototype c ó thể bò “throw-away”
Một so á khuyết điểm
Khách hàng hố i thúc nhà
phát triển hoàn thành sản phẩm
Đánh
giá
của
khách
hàng
mộ t khi t hấy được ca ùc prototype
đầu tiên
Các protot
ype thường không
hoạt động hiệu
quả
- Trang 22 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương
1: Giới thiệu về CNPM
MÔ
HÌNH
XOẮN
ỐC
R
Đònh
nghó
a
trình
ch
nh
ề
Đánh giá
rủi ro
Phát triển sản p
hẩm
ở lần lặp tiếp th
eo
R
R
Được thư ïc hie än theo m ột chuỗi lặ p kiểu xoắn ốc, mỗi la àn lặp cải
thiện sả n phẩm
Có phương pháp đánh gia ù rủi ro
Có thể áp dụn g prototype
Mỗ i lần lặp đượ c c ải thiện cho thích nghi vơ ùi bản chất củ a đ ề án
- Trang 23 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
Phân tích yêu cầ
u
1
2
MÔ
HÌNH
TĂNG
DẦN
hiết kế kiến trúc
Phát t
riển module
T
ích hợp
3
4
Kiểm tra hệ thống
- Trang 24 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: G
iới thiệu về CNPM
MÔ
HÌNH
TĂNG
DẦN
(t.t)
Các b ước ( iteration) đầu tậ p trung vào yêu ca àu của phầ n m ềm và
thiết lậ p một kiến trúc ổn đònh cho hệ thốn g (ít phải thay đổi sau
này)
Các b ước sau tập trung vào việc xâ y dựng sản pha åm đe å cuối
cùng chuyển sang giai đoa ïn k iểm tra hệ thống
Mỗi b ước hi ện thực một phần cụ thể trong toàn bộ yêu cầu củ a
hệ tho áng
Qua ù trình x ây dựng và c hiến thuật kiểm tra theo kiểu tăng dần
và d ựa trên phương pháp kiểm tra h ồi quy.
- Trang 25 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1:
Giới thiệu về CNPM
MÔ
HÌNH
RAD
Business
modeling
Data
modeling Process
modeling
Application
T
urnover
Rapid Ap plication Development l à m ô hình tuầ n t ự tuyến tính co ù
thời gian phát triển rấ t ng ắn
Sử dụ ng các thà nh phần có sa ün càng nhiều càng tốt
Sử dụ ng công cụ lậ p trình ở dạng tự động sinh mã chứ khô ng
phải các ngô n ng ữ truyền thống
generation
Testing
&
- Trang 26 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1
: Giới thiệu về CNPM
Trường
Đại
Học
Bách
Khoa
Tp.
Hồ
Chí
Minh
Khoa
Công
Nghệ
Thông
Tin
Chương 2
PHÂN
TÍCH
YÊU
CẦU
THEO
PHƯƠNG
PHÁP
CỔ
ĐIỂN
✦
Mô
hình
phân
tích
✦
DFD
&
STD
✦
Từ
điển
dữ
liệu
- Trang 27 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2: P
hân tích yêu cầu theo pp cổ điển
GIỚI
THIỆU
Khác h hà ng v à nhà phát triển gặp nhau để thả o
luận về yêu cầu của he ä thống phần mềm cần xây
dựng
Nha ø phát triển kiểm chứng lại (validate) ye âu cầ
u
và b iểu di ễn nó bằng mô hình phân tích
Mo â hình p hân tích (WHAT?): các chức nă ng, dữ
liệu input & output, ca ùc trạng t hái khác nhau
- Trang 28 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2: P
hân tích yêu cầu theo pp cổ điển
NỘI
DUNG
2.1.
Các
yếu
tố
căn
bản
của
mô
hình
phân
tích
2.2.
Mô
hình
chức
năng
và
dòng
thông
tin
2.2.1.
Lược
đồ
dòng
chảy
dữ
liệu
với
các
ký
hiệu
cơ
bản
2.2.2.
Mở
rộng
của
Ward
và
Mellor
2.2.3.
Mở
rộng
của
Hatley
&
Pirbhai
2.3.
Mô
hình
hành
vi
phần
mềm
2.4.
Kỹ
thuật
phân
tích
yêu
cầu
2.4.1.
Xây
dựng
DFD
2.4.2.
Viết
PSPEC
2.5.
Từ
điển
dữ
liệu
- Trang 29 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2: P
hân tích yêu cầu theo pp cổ điển
CÁC
YẾU
TỐ
CĂN
BẢN
CỦA
MÔ
HÌNH
PHÂN
TÍCH
Đặc tả
đối tượng
dữ liệu
Process Specification (PSPEC)
Mo â hình c hức năng và
Lư
u đ
ồ
qua
n h
ệ
thự
c th
ể
Từ điển
dữ liệu
Lưu đồ
dòng chảy
dữ liệu
dòng thông tin: DFD, PSPEC
Mô hình d ữ liệu: ERD,
Lưu đồ
dòch chuyển
trạ
ng thái
Control Specification (CSPE
C)
đặ c t ả đối tượng dữ li ệu
Mo â hình ha ønh vi: STD,
CSPEC
- Trang 30 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2:
Phân tích yêu cầu theo pp cổ điển
MÔ
HÌNH
CHỨC
NĂNG
VÀ
DÒNG
THÔNG
TIN
Mô tả dòng thông tin di chuyển (flow) xuyên qua ca ùc hệ thống
thiê n ve à phần mềm.
Thông tin input cũng như output có th ể ở nhiều dạng khác nhau:
file, bàn phím, trên mạng, t ừ thiết bò, kế t xu ất ra màn hình v à máy
in…
Các giả i t huật xử lý cũ ng ra át đa dạng
- Trang 31 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2:
Phân tích yêu cầu theo pp cổ điển
MÔ
HÌNH
CHỨC
NĂNG
VÀ
DÒNG
THÔNG
TIN
(t.t)
Lưu đồ dòng chảy dữ liệu DFD (Data Flow Diagram) cung c ấp 4
ky ù hiệu cơ bản để mo â hình s ự di c huyển của dòng thô ng tin
DFD được mơ û rộng để mô hình ca ùc hệ tho áng thời gian thực
Mở rộ ng của Ward và Mellor (tự đo ïc: [ 1], trang 312)
Mở rộ ng của Hatley & Pirbhai (tự đo ïc: [1], trang 315)
- Trang 32 -
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 2:
Phân tích yêu cầu theo pp cổ điển
LƯC
ĐỒ
DÒNG
CHẢY
DỮ
LIỆU
(DFD)
4 phần t ử chính
Thực thể: tạo ra hoặc tiêu t hụ tho âng tin, nằm bên ngoài biê n giớ i cu ûa