Bài giảng Kỹ nghệ phần mềm - Bài 2: Kỹ nghệ phần mềm - Nguyễn Văn Vỵ

Tóm tắt Bài giảng Kỹ nghệ phần mềm - Bài 2: Kỹ nghệ phần mềm - Nguyễn Văn Vỵ: ... tiến trỡnh i Mô hình (p.pháp) luồng dữ liệu Bộ mụn Cụng nghệ phần mềm – ĐHCN 15 NguyễnVănVỵ Ví dụ: Biểu đồ luồng dữ liệu mức 0 bμi toán trông gửi xe 0 Hệ thống Khách DS thực thể a. xxxx b. xxxx c. xxxx d. xxxx e. xxxx f. xxxx a b c d e f 1 R C U R C 2 R R U C 3 R R 0 1 2...nμo? ai lμm? nh− thế nμo? bằng gì? ở đâu? kết quả? tiêu chí đánh giá? Đặc tr−ng Gắn với mỗi dự án Có cấu trúc xác định (công việc, trình tự, công cụ, ph−ơng pháp ) Sản phẩm cuối cùng lμ phần mềm bμn giao Bộ mụn Cụng nghệ phần mềm – ĐHCN 25 NguyễnVănVỵ Tiến trình phần mềm Các hoạt độn...? „Mỗi ngôn ngữ có 1 năng lực thể hiện „ Chọn ngôn ngữ tốt sẽ giảm kích cỡ Bộ mụn Cụng nghệ phần mềm – ĐHCN 36 NguyễnVănVỵ Phần mềm kỹ nghệ tốt „ Phần mềm kỹ nghệ tốt đ−ợc xét theo quan điểm nhμ phát triển „ Thuộc tính phần mềm cần có: • Tính bảo trì đ−ợc • Tính đáng tin cậy • Tính ...

pdf50 trang | Chia sẻ: havih72 | Lượt xem: 121 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Kỹ nghệ phần mềm - Bài 2: Kỹ nghệ phần mềm - Nguyễn Văn Vỵ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bộ môn Công nghệ phần mềm- Khoa CNTT- ĐHCN
Email: vynv@coltech.vnu.vn
Kỹ nghệ phần mềm
Software Engeneering
Nguyễn Văn Vỵ
Bộ mụn Cụng nghệ phần mềm – ĐHCN 2
NguyễnVănVỵ
Nội dung 
Bài 2: Kỹ nghệ phần mềm
„ Định nghĩa vμ khái niệm
„ Lịch sử phát triển
„ Các mô hình tiến trình
Bộ mụn Cụng nghệ phần mềm – ĐHCN 3
NguyễnVănVỵ
TÀI LiỆU THAM KHẢO
1. Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giỏo trỡnh kỹ nghệ phần 
mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008
2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified 
Modeling language User Guid. Addison-Wesley, 1998.
3. M. Ould. Managing Software Quality and Business Risk, John 
Wiley and Sons, 1999.
4. Roger S.Pressman, Software Engineering, a Practitioner’s 
Approach. Fifth Edition, McGraw Hill, 2001.
5. Ian Sommerville, Software Engineering. Sixth Edition, Addison-
Wasley, 2001.
6. Nguyễn Văn Vỵ. Phõn tớch thiết kế hệ thống thụng tin hiện đại. 
Hướng cấu trỳc và hướng đối tượng, NXB Thống kờ, 2002, Hà
Nội.
Bộ mụn Cụng nghệ phần mềm – ĐHCN 4
NguyễnVănVỵ
Các định nghĩa kỹ nghệ phần mềm
„ SE lμ thiết lập và sử dụng các nguyên lý công 
nghệ đúng đắn để đ−ợc phần mềm 1 cách kinh 
tế, vừa tin cậy vừa lμm việc hiệu quả trên các máy 
thực (Bauer [1969])
„ SE lμ nguyên lý kỹ nghệ liên quan đến tất cả các 
mặt lý thuyết, ph−ơng pháp và công cụ của
phần mềm (Sommerville [1995])
Kỹ nghệ phần mềm – Software Engineering:SE
Bộ mụn Cụng nghệ phần mềm – ĐHCN 5
NguyễnVănVỵ
„ SE lμ bộ môn tích hợp cả qui trình, các ph−ơng 
pháp, các công cụ để phát triển phần mềm máy 
tính (Pressman [1995])
„ Ba mặt cơ bản của kỹ nghệ phần mềm lμ:
1. Quy trình/thủ tục
2. Ph−ơng pháp
3. Công cụ 
Định nghĩa SE
1 ?
3
2
4
1
32
Bộ mụn Cụng nghệ phần mềm – ĐHCN 6
NguyễnVănVỵ
Lịch sử của kỹ nghệ phần mềm
„ Đề x−ớng, hình thμnh (70s)
Các ph−ơng pháp lập trình vμ cấu trúc dữ liệu
 Khái niệm về tính môđun
 Khái niệm sơ đồ khối, lập trình top-down
 Lập trình có cấu trúc (Dijkstra)
 ph−ơng pháp chia môdun một ch−ơng trình
 Trừu t−ợng hóa dữ liệu (Liskov)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 7
NguyễnVănVỵ
„ Tăng tr−ởng (nửa đầu 80s)
ắ Xuất hiện các ph−ơng pháp phát triển hệ thống
ƒ công nghệ CSDL (mô hình quan hệ)
ƒ phân tích, thiết kế h−ớng cấu trúc (biểu đồ luồng,..)
ắ Các bộ công cụ phát triển
ƒ công cụ trợ giúp phân tích, thiết kế
ƒ bộ khởi tạo ch−ơng trình, kiểm thử
ƒ các ngôn ngữ bậc cao 
ắ Bắt đầu quan tâm đến quản lý 
ƒ Các độ do phần mềm
ƒ Quản lý theo thống kê
Lịch sử của kỹ nghệ phần mềm
Bộ mụn Cụng nghệ phần mềm – ĐHCN 8
NguyễnVănVỵ
Lịch sử của kỹ nghệ phần mềm
„ Phát triển (từ giữa 80s)
ắHoμn thiện công nghệ cấu trúc, ra đời công nghệ
đối t−ợng
ƒ Nhiều mô hình h−ớng cấu trúc triển khai, chuẩn hóa
ƒ CASE hoμn thiện, đạt mức tự động hóa cao
ƒ Ngôn ngữ thế hệ 4 ra đời (LIPS, PROLOG,..)
ƒ Công nghệ h−ớng đối t−ợng bắt đầu phát triển:
Quy trình RUP, UML, Các công cụ đầy đủ (ROSE, 
JIBULDER,..)
ƒ Sử dụng lại chiếm vị trí quan trọng trong phát triển
Bộ mụn Cụng nghệ phần mềm – ĐHCN 9
NguyễnVănVỵ
Lịch sử của kỹ nghệ phần mềm
„ Phát triển (từ giữa 80s)
ắPhát triển công nghệ đối t−ợng
Kho dữ liệu, CSDL đối t−ợng, đa ph−ơng tiện
Định h−ớng sử dụng lại: thμnh phần, mẫu, Framework
Công nghệ Web: web services
ắPhát triển các mô hình quản lý 
 Chuẩn quản lý đ−ợc công nhận (CMM, IS9000-03)
 Nhiều mô hình tổ chức lμm phần mềm đ−ợc đề xuất
 Nhiều công cụ trợ giúp quản lý dự án hoμn thiện
Bộ mụn Cụng nghệ phần mềm – ĐHCN 10
NguyễnVănVỵ
Các yếu tố cơ bản của - SE
„ Tổng hợp: Kỹ nghệ phần mềm
 Lμ một quá trình kỹ nghệ tích hợp:
y Thủ tục (procedures)
y Ph−ơng pháp (methods)
y Công cụ (tools)
Nhằm tạo ra phần mềm hiệu quả, với các giới hạn 
cho tr−ớc
Bộ mụn Cụng nghệ phần mềm – ĐHCN 11
NguyễnVănVỵ
Các thủ tục - Procedures
„ Qui trình phát triển vμ quản lý:
ƒ Xác định trình tự thực hiện các công việc
ƒ Xác định các tμi liệu, sản phẩm cần bμn giao, 
vμ cách thức thực hiện
ƒ Định các mốc thời gian (millestones) vμ sản 
phẩn đ−a ra (theo các chuẩn)
ắ Có thể ở mức chung cho nhiều dự án
ắ Hay cụ thể hoá cho 1 dự án cụ thể
Bộ mụn Cụng nghệ phần mềm – ĐHCN 12
NguyễnVănVỵ
Các ph−ơng pháp - methods
„ Cách lμm cụ thể để xây dựng phần mềm
„ Mỗi công đoạn có ph−ơng pháp riêng:
• Phân tích (xác định, đặc tả yêu cầu)
• Thiết kế (đặc tả kiến trúc, giao diện, dữ liêu, thủ tục)
• Lập trình (cấu trúc, h−ớng đối t−ợng)
• Kiểm thử (hộp đen, hộp trắng, áp lực, hồi quy, luồn sợi)
• Quản lý dự án (PERT, GANTT, COCOMO)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 13
NguyễnVănVỵ
„ Nội dung ph−ơng pháp th−ờng bao gồm:
y Các phân tử mô hình: mô tả khái niệm
y Các ký pháp: đặc tả phần tử
y Các quy tắc: liên kết các phân tử mô hình
y Quy trình xây dựng: trình tự tạo 1 mô hình
y Lời khuyên, cách dùng: cho mô hình tốt vμ dùng nó
Các ph−ơng pháp - methods
Bộ mụn Cụng nghệ phần mềm – ĐHCN 14
NguyễnVănVỵ
luồng dữ liệu
kho dữ liệu
tiến trình
ƒ Vẽ luồng dữ liệu 
mức 0 từ mô hình 
nghiệp vụ
ƒ Vẽ biểu đồ mức i: 
từ mỗi tiến trình 
mức i-1 ch−a là
cơ sở
- Tiến trình l là duy nhất
- Các luồng vào 1 tiến 
trình phải # các 
luồng ra
- Các luồng vào 1 tiến 
trình đủ để tạo ra các 
luồng ra
- Không có các luồng 
dữ liệu sau:
Kho ặ kho
Kho ặ tác nhân
•
tác nhân
Quy trìnhQuy tắcKý phápKhái niệm
Các ph−ơng pháp  methods
tờn tỏc nhõn
tờn luồng
tờn kho 
tờn tiến 
trỡnh
i
Mô hình (p.pháp) luồng dữ liệu
Bộ mụn Cụng nghệ phần mềm – ĐHCN 15
NguyễnVănVỵ
Ví dụ: Biểu đồ luồng dữ liệu mức 0 bμi toán 
trông gửi xe 
0
Hệ
thống
Khách
DS thực thể
a. xxxx
b. xxxx
c. xxxx
d. xxxx
e. xxxx
f. xxxx
a b c d e f
1 R C U R
C
2 R R U C
3 R R
0
1 2 3
3.0
giải 
quyết sự
cố
t.t. xe
nét đỏ lμ phần thay thế hay thêm vμo
2.0
trả xe
khách
vé 
xe
"không g.q."
phiếu chi
biên bản
tt sự cố
phiếu 
t.toán 
phiếu t.toáne
biên bản f
1.0
nhận xekhách
"hết chỗ"
vé xe
bảng giáa
sổ xevàoc sổ xe rad
vé xeb
"vé 
zả"
phiếu chig
Mô hình nghiệp vụ
Bộ mụn Cụng nghệ phần mềm – ĐHCN 16
NguyễnVănVỵ
Các công cụ - tools
„ Trợ giúp tự động/bán tự động ph−ơng pháp
„ Computer Aided Software Engineering  CASE
các công cụ trợ giúp các công đoạn khác nhau 
tiến trình phát triển phần mềm 
„ Các ngôn ngữ lập trình
công cụ sinh giao diện (C Builder, ...)
hỗ trợ phân tích, thiết kế (Rwin, Modeler
(Oracle Designer, Rational Rose,...)
trợ giúp lập trình: compiler, debugger
trợ giúp quản lý: project management
Ví dụ:
Bộ mụn Cụng nghệ phần mềm – ĐHCN 17
NguyễnVănVỵ
Các công cụ - tools
Biểu đồ mô hình
Bộ mụn Cụng nghệ phần mềm – ĐHCN 18
NguyễnVănVỵ
Vòng đời phát triển hệ thống phần mềm
(systems development life cycle - SDCL)
„ Lμ các hoạt động từ khi đ−ợc đặt hàng, 
phát triển, sử dụng đến khi bị loại bỏ nó
„ Vòng đời chia thμnh các giai đoạn chính :
ắ xác định yêu cầu,
ắ triển khai, 
ắ kiểm thử, 
ắ Vận hành, bảo trì và lặp lại
Phạm vi, thứ tự, nội dung khác nhau tùy theo 
từng sản phẩm vμ dự án
Bộ mụn Cụng nghệ phần mềm – ĐHCN 19
NguyễnVănVỵ
Vòng đời phát triển phần mềm
„ Tùy mô hình áp dụng, phân chia các pha, các 
b−ớc có thể khác nhau : từ 3 đến 20 b−ớc
Xác định yêu cầu Triền khai Kiểm thử
Vận hành - Bảo trì
Các pha chính của vòng đời
Bộ mụn Cụng nghệ phần mềm – ĐHCN 20
NguyễnVănVỵ
Các b−ớc chung nhất phát triển 
  Xác định yêu cầu
y phân tích hệ thống
y lập kế hoạch
y phân tích yêu cầu
y đặc tả yêu cầu
  Tiến hóa
y sửa lỗi
y thích nghi
y nâng cao
y bổ sung
  Phát triển
y Thiết kế
y Mã hoá
y Kiểm thử
y Lμm tμI liệu
Bộ mụn Cụng nghệ phần mềm – ĐHCN 21
NguyễnVănVỵ
Xác định yêu cầu
Xác định: Hệ thống lμm gi?
Những rμng buộc gì nó cần tuân thủ?
  Phân tích hệ thống
 vai trò phần mềm trong hệ thống
 phác hoạ & chọn ph−ơng án khả thi
  Lập kế hoạch
−ớc l−ợng, lập lịch, tổ chức, b−ớc đi, sản phẩm
  Phân tích yêu cầu
ƒ các yêu cầu cụ thể (chức năng, rμng buộc)
ƒ đặc tả yêu cầu (kiến trúc, giao diện, xử lý, dữ liệu)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 22
NguyễnVănVỵ
Phát triển
Tạo ra phần mềm nh− thế nào?
  Thiết kế (design)
dịch yêu cầu thμnh bản thiết kế HT nh− nó tồn tại
(môi tr−ờng, kiến trúc, dữ liệu, xử lý, giao diện)
  M∙ hóa (coding)
Chuyển thiết kế thμnh ch−ơng trình (của1 ngôn ngữ)
  Kiểm thử (testing)
sửa lỗi, hoμn thiện ch−ơng trình (kiểm thử đơn vị, tích hợp, 
hệ thống, chấp nhận), lμm tμi liệu
Bộ mụn Cụng nghệ phần mềm – ĐHCN 23
NguyễnVănVỵ
Vận hμnh, bảo trì
Hòan thiện hệ thống sau khi đ−a vào hoạt động?
  Sửa lỗi: để vận hμnh thông suốt
  Thích nghi: với môi tr−ờng (kỹ thuật, nghiệp vụ) 
đã thay đổi để hoạt động hiệu quả
  Nâng cao: Hoμn thiện chức năng, phát triển dự
phòng
  Thêm mới: thêm các chức năng mới
Bộ mụn Cụng nghệ phần mềm – ĐHCN 24
NguyễnVănVỵ
Tiến trình phần mềm
„ Tiến trình phần mềm (software process) lμ một tập 
các hoạt động có cấu trúc nhằm phát triển vμ tiến 
hóa 1 phần mềm 
„ Một tiến trình cụ thể phải trả lời đ−ợc các câu hỏi: lμm 
gì? khi nμo? ai lμm? nh− thế nμo? bằng gì? ở đâu? 
kết quả? tiêu chí đánh giá?
Đặc tr−ng
Gắn với mỗi dự án
Có cấu trúc xác định (công việc, trình tự, công cụ, 
ph−ơng pháp )
Sản phẩm cuối cùng lμ phần mềm bμn giao 
Bộ mụn Cụng nghệ phần mềm – ĐHCN 25
NguyễnVănVỵ
Tiến trình phần mềm
Các hoạt động chính của mọi tiến trình
ƒ Xác định yêu cầu: định rõ yêu cầu sản phẩm
ƒ Phát triển: tạo ra sản phẩm 
ƒ Thẩm định: phần mềm đáp ứng đ−ợc yêu cầu không?
ƒ Tiến hóa phần mềm: thay đổi nhằm đáp ứng yêu cầu 
thay đổi (người dùng, môi trường)
Xác định 
yêu cầu
Phát 
triển
Thẩm 
định
Tiến 
hóa
vấn đề, 
mong 
đợi Phần 
mềm
file.exe
Bộ mụn Cụng nghệ phần mềm – ĐHCN 26
NguyễnVănVỵ
Tiến trình phần mềm
1. Xác định yêu cầu (Requirements)
KHÁCH HÀNG
Khó khăn hệ
thống thực, 
mong đợi về 
hệ phần mềm Đặc tả yêu 
cầu phần 
mềm
đội phát triển
Bộ mụn Cụng nghệ phần mềm – ĐHCN 27
NguyễnVănVỵ
ƒ Chức năng hệ
thống
ƒ Ràng buộc 
hệ thống
Tiến trình phần mềm
2. Phát triển phần mềm (Development)
Đặc tả yêu 
cầu
Xác định yêu cầu
đội phát triển
Hệ thống 
phần mềm 
vận hành 
đúng
file.exe
file.com
Bộ mụn Cụng nghệ phần mềm – ĐHCN 28
NguyễnVănVỵ
Tiến trình phần mềm
3. Thẩm định phần mềm (Validation)
Hệ thống 
phần mềm 
vận hành 
đúng
file.exe
file.com
Phát triển Ng−ời dùng
Hệ thống 
phần mềm 
đáp ứng yêu 
cầu
file.exe
file.com
Bộ mụn Cụng nghệ phần mềm – ĐHCN 29
NguyễnVănVỵ
4. Tiến hóa phần mềm (Evolution)
đội phát triển
Thẩm định
Hệ thống 
phần mềm 
đáp ứng yêu 
cầu
file.exe
file.com
Hệ thống 
phần mềm 
đ−ợc tiến 
hóa
file.exe
file.com
file.com
môi tr−ờng thay đổi
Tiến trình phần mềm
Bộ mụn Cụng nghệ phần mềm – ĐHCN 30
NguyễnVănVỵ
Mô hình tiến trình phần mềm
„ Mô hình tiến trình (software process model) lμ
cách biểu diễn trừu t−ợng tiến trình phần mềm theo 
cách nhìn cụ thể.
Công việc 1
Công việc 2
Cụng việc 1.1.1
Công việc 1.1
Cụng việc 1.2
Cụng việc 2.1
Cụng việc 2.1.1
TIẾN TRèNH CỤ THỂ
Giai đoạn 1 Giai đoạn 2 Giai đoạn 3
Mễ HèNH TIẾN TRèNH
Bộ mụn Cụng nghệ phần mềm – ĐHCN 31
NguyễnVănVỵ
Chi phí của kỹ nghệ phần mềm
ắ Chi phí kỹ nghệ phần mềm: lμ các 
khoản chi liên quan đến toμn bộ sự phát triển 
ắ Chi phí phụ thuộc:
ƒ Loại hệ thống (đơn giản, phức tạp)
ƒ Yêu cầu đặt ra (nhiều, ít, cao, thấp)
ƒ Mức độ hoμn thiện (hiệu năng, độ tin cây, an toμn,..)
ƒ Năng lực của tổ chức (nhân lực, công nghệ, công 
cụ, kỹ năng có đ−ợc)
ƒ Loại tiến trình sử dụng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 32
NguyễnVănVỵ
Chi phí của kỹ nghệ phần mềm
Chi phớ phỏt triển tiến húa
đặc tả thiết kế phỏt triển kiểm thử tớch hợp
0 25 50 75 100
Phõn bố chi phớ phỏt triển (nói chung)
26 23 3813
đặc tả phỏt triển tiến húa kiểm thử hệ thống
0 25 50 75 100
10 60 30
Bộ mụn Cụng nghệ phần mềm – ĐHCN 33
NguyễnVănVỵ
Chi phí của kỹ nghệ phần mềm
Chi phí hệ có vòng đời dμi
phỏt triển hệ thống tiến húa hệ thống
0 25 50 75 100
25 75
đặc tả phỏt triển kiểm thử hệ thống
0 25 50 75 100
chi phớ phỏt triển sản phẩm trực tuyến
35 578
Bộ mụn Cụng nghệ phần mềm – ĐHCN 34
NguyễnVănVỵ
Quy mô phần mềm
„ Kích cỡ phần mềm ảnh h−ởng lớn đến chi phí
„ Kích cỡ th−ờng đo bằng số dòng lệnh
„ Kích cỡ phần mềm phụ thuộc:
• Bμi toán
• Thiết kế
• Ngôn ngữ lập trình (& trình độ ng−ời lập)
ắVới cùng thiết kế, dùng ngôn ngữ khác nhau 
cho kích cỡ khác nhau 
Bộ mụn Cụng nghệ phần mềm – ĐHCN 35
NguyễnVănVỵ
Số đo ngôn ngữ
Ngôn ngữ Dòng lệnh/chức năng
Assembly
C
FORTRAN 77
COBOL 85
Ada 83
C++
Ada 95
Java
Visual Basic
SQL
320
128
105
91
71
56
55
55
35
?
„Mỗi ngôn ngữ có 1 
năng lực thể hiện 
„ Chọn ngôn ngữ tốt 
sẽ giảm kích cỡ
Bộ mụn Cụng nghệ phần mềm – ĐHCN 36
NguyễnVănVỵ
Phần mềm kỹ nghệ tốt
„ Phần mềm kỹ nghệ tốt đ−ợc xét theo quan 
điểm nhμ phát triển
„ Thuộc tính phần mềm cần có:
• Tính bảo trì đ−ợc
• Tính đáng tin cậy
• Tính hiệu quả
• Tính tiện dụng
• Giá cả phải chăng
• Một số tiêu chí khác
mức 
−u
tiên
Bộ mụn Cụng nghệ phần mềm – ĐHCN 37
NguyễnVănVỵ
Tính bảo trì đ−ợc
 Kiến trúc tốt: kết dính chặt, ghép nối lỏng (dễ đọc, dễ 
sửa, dễ phát triển, ảnh h−ởng cục bộ)
 cμi đặt bằng ngôn ngữ bậc cao (dễ đọc, viết nhanh)
 tμi liệu đầy đủ, tốt (dễ theo dõi, dễ hiểu, có cơ sở sửa,..)
 Có tuổi thọ cao, phụ vụ nhiều
 Chi phí bảo trì thấp ặ cho hiệu quả
"Phần mềm luôn có yêu cầu sửa đổi“
Để sửa đổi (bảo trì) đ−ợc phần mềm cần:
Bộ mụn Cụng nghệ phần mềm – ĐHCN 38
NguyễnVănVỵ
Đáng tin cậy
„ Đáp ứng đ−ợc nhu cầu ng−ời sử dụng
 Đảm bảo các chức năng cần
 Ôn định, thời gian lμm việc không lỗi lớn
 Cho kết quả xác đáng
„ Phần mềm có ít khiếm khuyết về:
 lỗi lập trình
 lỗi phân tích, thiết kế: sai, thiếu chức năng, 
 hoạt động không hiệu quả
Bộ mụn Cụng nghệ phần mềm – ĐHCN 39
NguyễnVănVỵ
Tính hiệu quả
„ Không sử dụng lãng phí tμi nguyên phần cứng
Để tối −u hóa cần:
 Đòi hỏi bộ nhớ lớn
 Đòi hỏi tốc độ cao
 Chiếm không gian đĩa lớn,...
 dùng ngôn ngữ bậc thấp
 truy cập trực tiếp đến thiết bị
 sử dụng thuật toán viết gọn
Cần tối ưu 
hợp lý
dễ dẫn tới khó bảo trì, giá thành cao.
Bộ mụn Cụng nghệ phần mềm – ĐHCN 40
NguyễnVănVỵ
Tiện dụng, tinh vi
„ Giao diện phù hợp với trình độ của ng−ời dùng
„ Học nhanh, nhớ lâu, dễ thao tác
„ Có đủ tμi liệu & nhiều tiện ích, trợ giúp thông minh
Giao diện quyết định thμnh công của sản phẩm
Bộ mụn Cụng nghệ phần mềm – ĐHCN 41
NguyễnVănVỵ
Cần cân đối, thỏa hiệp giữa các yêu cầu
• Khó tối −u đồng thời các thuộc tính
giá cả, hiệu quả >>> <<< dễ bảo trì, sử dụng, sự tinh vi
 Chi phí cho tối −u không tuyến tính (lμ hμm mũ)
Giá cả hợp lý
hiệu năng
g
i
á
t
h
μ
n
h
Chi phí bỏ ra
Hiệu suất đạt
Bộ mụn Cụng nghệ phần mềm – ĐHCN 42
NguyễnVănVỵ
Kỹ nghệ hệ thống (System Engineering)
„ Kỹ nghệ hệ thống lμ toμn bộ công việc phát triển hệ
thống dựa trên máy tính (computer based system):
• phần cứng 
• phần mềm 
• tổ chức, quản lý
„ Kỹ nghệ hệ thống bao gồm:
• đặc tả
• thiết kế
• triển khai
kỹ nghệ
hệ
thống
kỹ nghệ
phần mềm
• tích hợp
• thẩm định
• bảo trì
Bộ mụn Cụng nghệ phần mềm – ĐHCN 43
NguyễnVănVỵ
Kỹ nghệ hệ thống
„ Đặc tính nổi trội của hệ thống dựa trên máy tính 
• Thuộc tính chức năng: điều khiển 1 hệ
• Thuộc tính phi chức năng: độ tin cậy, an toμn
Mμ:
 từng bộ pbận không thể có đ−ợc
 quyết định đến toμn hệ thống
„ Kỹ nghệ hệ thống liên quan đến:
• áp dụng các nguyên lý tích hợp
• giảm chi phí lμm lại toμn hệ thống 
Bộ mụn Cụng nghệ phần mềm – ĐHCN 44
NguyễnVănVỵ
Kỹ nghệ hệ thống
„ Tiến trình ký nghệ hệ thống (system engineering 
process)
xỏc định 
yờu cầu
 ị 
tiến húa 
hệ thống
ti 
t
loại bỏ
hệ thống
l i 
t
thiết kế
hệ thống
t i t 
t
phỏt triển 
hệ con
t t i Cài đặt 
hệ thống
i t 
t
tớch hợp 
hệ thống
tớ 
t
cỏc hệ
cứng
cỏc hệ
mềm
Bộ mụn Cụng nghệ phần mềm – ĐHCN 45
NguyễnVănVỵ
Khái niệm liên quan - Khoa học máy tính
(Computer Sience)
ắ Khoa học máy tính liên quan đến những vấn đề lý 
thuyết vμ nền tảng cho máy tính vμ phần mềm
ắ Kỹ nghệ phần mềm liên quan đến thực tiễn của 
việc phát triển vμ xuất ra các phần mềm hiệu quả
™ Lý thuyết khoa học máy tính còn ch−a đủ cho các 
hoạt động của kỹ nghệ phần mềm
kỹ nghệ
phần mềm
khoa 
học máy
tính
Bộ mụn Cụng nghệ phần mềm – ĐHCN 46
NguyễnVănVỵ
Kiến trúc vμ
phần cứng 
máy tính
Hạ tầng các 
hệ thống
công nghệ
vμ ph. pháp 
phần mềm
Các công 
nghệ ứng 
dụng
tô chức vμ
các HTTT
Các lĩnh vực tính toán
(computing curricula 11/2004 -ACM, AIS, IEEE)
Lý thuyết, ứng dung
đổi mới triển khai
SECS
IT
IS
Bộ mụn Cụng nghệ phần mềm – ĐHCN 47
NguyễnVănVỵ
„ Mỗi lĩnh vực tínnh toán đ−ợc giới hạn bằng một 
vùng với biên có màu sau:
 CS  Khoa học máy tính: 
 IS  Hệ thống thông tin
 IT  Công nghệ thông tin
 SE  Kỹ nghệ phần mềm
„ Kỹ nghệ phần mềm chiếm phần lớn ở trung tâm -
Đó là lý do nó là ngành phức tạp và quan trọng
Phân biệt các lĩnh vực tính toán
Bộ mụn Cụng nghệ phần mềm – ĐHCN 48
NguyễnVănVỵ
Câu hỏi ôn tập
1) Định nghĩa kỹ nghệ phần mềm -SE?
2) Các giai đoạn lịch sử phát triển SE? đặc tr−ng của mỗi 
giai đoạn (sản phẩm, ph−ơng pháp, công cụ, quản lý 
vμ tổ chức lμm việc)?
3) Giải thích nội dung các yếu tố cơ bản trong SE? Lấy ví 
dụ minh hoạ về ph−ơng pháp, công cụ?
4) Tiến trình phần mềm lμ cái gì? Các b−ớc chung nhất 
của tiến trình lμ gì?
5) Mô hình tiến trinh lμ gì? Các mô hình có thể nhận đ−ợc 
từ những cách nhìn nhận nμo?
Bộ mụn Cụng nghệ phần mềm – ĐHCN 49
NguyễnVănVỵ
Câu hỏi ôn tập
6) Trình bμy một số mô hình tiến trình cơ bản (nội dung, 
−u, nh−ợc, thích hợp khi nμo)?
7) Chi phí của SE gồm những thμnh phần nμo? nó phụ 
thuộc vμo những cái gì?
8) Kỹ nghệ hệ thống lμ gì? Quan hệ với kỹ nghệ phần 
mềm ra sao?
9) Các thuộc tính của phần mềm đ−ợc kỹ nghệ tốt?
10)Khoa học máy tính lμ gì? Quan hệ giữa nó vμ kỹ nghệ
phần mềm nh− thế nμo? 
Bộ mụn Cụng nghệ phần mềm – ĐHCN 50
NguyễnVănVỵ
Câu hỏi và thảo luận

File đính kèm:

  • pdfbai_giang_ky_nghe_phan_mem_bai_2_ky_nghe_phan_mem_nguyen_van.pdf