Bài giảng Nhập môn Công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm - Nguyễn Văn Hiệp

I. Máy tính số và công dụng

‰ Các thiết bị cụ thể hóa : Con người thông minh hơn các ₫ộng vật

khác nhiều. Trong cuộc sống, họ ₫ã chế tạo ngày càng nhiều

công cụ, thiết bị ₫ể hỗ trợ mình trong hoạt ₫ộng. Các công cụ,

thiết bị do con người chế tạo ngày càng tinh vi, phức tạp và thực

hiện nhiều công việc hơn trước ₫ây. Mỗi công cụ, thiết bị thường

chỉ thực hiện ₫ược 1 vài công việc cụ thể nào ₫ó. Thí dụ, cây chổi

₫ể quét, radio ₫ể bắt và nghe ₫ài audio. Ta gọi các thiết bị này

là thiết bị cụ thể hóa.

‰ Khuyết ₫iểm của thiết bị cụ thể hóa là mỗi thiết bị chỉ giải quyết 1

công việc. Trong cuộc sống, ta cần thực hiện rất nhiều công việc,

do ₫ó ta phải chế tạo rất nhiều thiết bị và việc này không có dấu

hiệu chấm dứt

pdf 19 trang yennguyen 1300
Bạn đang xem tài liệu "Bài giảng Nhập môn Công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm - Nguyễn Văn Hiệp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Nhập môn Công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm - Nguyễn Văn Hiệp

Bài giảng Nhập môn Công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm - Nguyễn Văn Hiệp
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 1
1.1 Máy tính số và công dụng
1.2 Chương trình máy tính
1.3 Các mục tiêu chính yếu của việc xây dựng phần mềm
1.4 Các hoạt ₫ộng chức năng trong phát triển phần mềm
1.5 Qui trình phát triển phần mềm
1.6 Công nghệ phần mềm
1.7 Kết chương
Chương 1
Tổng quan về công nghệ phần mềm
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 2
I. Máy tính số và công dụng
‰ Các thiết bị cụ thể hóa : Con người thông minh hơn các ₫ộng vật
khác nhiều. Trong cuộc sống, họ ₫ã chế tạo ngày càng nhiều
công cụ, thiết bị ₫ể hỗ trợ mình trong hoạt ₫ộng. Các công cụ, 
thiết bị do con người chế tạo ngày càng tinh vi, phức tạp và thực
hiện nhiều công việc hơn trước ₫ây. Mỗi công cụ, thiết bị thường
chỉ thực hiện ₫ược 1 vài công việc cụ thể nào ₫ó. Thí dụ, cây chổi
₫ể quét, radio ₫ể bắt và nghe ₫ài audio... Ta gọi các thiết bị này
là thiết bị cụ thể hóa.
‰ Khuyết ₫iểm của thiết bị cụ thể hóa là mỗi thiết bị chỉ giải quyết 1 
công việc. Trong cuộc sống, ta cần thực hiện rất nhiều công việc, 
do ₫ó ta phải chế tạo rất nhiều thiết bị và việc này không có dấu
hiệu chấm dứt
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 3
I. Máy tính số và công dụng
‰ Thiết bị tổng quát hóa - Máy tính số (digital computer) : nó cũng
là 1 thiết bị, nhưng thay vì chỉ thực hiện 1 vài chức năng cụ thể, 
sát với nhu cầu ₫ời thường của con người, nó có thể thực hiện 1 
số hữu hạn các chức năng cơ bản (tập lệnh), mỗi lệnh rất sơ khai
chưa giải quyết trực tiếp ₫ược nhu cầu ₫ời thường nào của con 
người. Cơ chế thực hiện các lệnh là tự ₫ộng, bắt ₫ầu từ lệnh ₫ược
chỉ ₫ịnh nào ₫ó rồi tuần tự từng lệnh kế tiếp cho ₫ến lệnh cuối
cùng. Danh sách các lệnh ₫ược thực hiện này ₫ược gọi là chương
trình.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 4
I. Máy tính số và công dụng
‰ Bất kỳ công việc (bài toán) ngoài ₫ời nào cũng có thể ₫ược chia
thành trình tự nhiều công việc nhỏ hơn. Trình tự các công việc
nhỏ này ₫ược gọi là giải thuật giải quyết công việc ngoài ₫ời. Mỗi
công việc nhỏ hơn cũng có thể ₫ược chia nhỏ hơn nữa nếu nó
còn phức tạp,... ⇒ công việc ngoài ₫ời có thể ₫ược miêu tả bằng
1 trình tự các lệnh máy (chương trình ngôn ngữ máy).
‰ Ưu ₫iểm của máy tính số là ta chỉ cần chế tạo 1 lần, rồi theo thời
gian ta nhờ nó chạy những phần mềm khác nhau ₫ể thực hiện
các bài toán khác nhau.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 5
I. Máy tính số và công dụng
‰ Vấn ₫ề mấu chốt của việc dùng máy tính giải quyết công việc
ngoài ₫ời là lập trình (₫ược hiểu nôm na là qui trình xác ₫ịnh trình
tự ₫úng các lệnh máy ₫ể thực hiện công việc). Cho ₫ến nay, lập
trình là công việc của con người (với sự trợ giúp ngày càng nhiều
của máy tính).
‰ Với công nghệ phần cứng hiện nay, ta chỉ có thể chế tạo các máy
tính mà tập lệnh máy rất sơ khai, mỗi lệnh máy chỉ có thể thực
hiện 1 công việc rất nhỏ và ₫ơn giản ⇒ công việc ngoài ₫ời
thường tương ₫ương với trình tự rất lớn (hàng triệu) các lệnh máy
⇒ Lập trình bằng ngôn ngữ máy rất phức tạp, tốn nhiều thời gian, 
công sức, kết quả rất khó bảo trì, phát triển.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 6
I. Máy tính số và công dụng
‰ Ta muốn có máy luận lý với tập lệnh (₫ược ₫ặc tả bởi ngôn ngữ
lập trình) cao cấp và gần gủi hơn với con người. Ta thường hiện
thực máy này bằng 1 máy vật lý + 1 chương trình dịch. Có 2 loại
chương trình dịch : trình biên dịch (compiler) và trình thông dịch
(interpreter).
‰ Gọi ngôn ngữ máy vật lý là N0. Trình biên dịch ngôn ngữ N1 sang 
ngôn ngữ N0 sẽ nhận ₫ầu vào là chương trình ₫ược viết bằng
ngôn ngữ N1, phân tích từng lệnh N1 rồi chuyển thành danh sách
các lệnh ngôn ngữ N0 có chức năng tương ₫ương. Để viết
chương trình dịch từ ngôn ngữ N1 sang N0 dễ dàng, ₫ộ phức tạp
của từng lệnh ngôn ngữ N1 không quá cao so với từng lệnh ngôn
ngữ N0.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 7
I. Máy tính số và công dụng
‰ Sau khi có máy luận lý hiểu ₫ược ngôn ngữ luận lý N1, ta có thể
₫ịnh nghĩa và hiện thực máy luận lý N2 theo cách trên và tiếp tục
₫ến khi ta có 1 máy luận lý hiểu ₫ược ngôn ngữ Nm rất gần gũi
với con người, dễ dàng miêu tả giải thuật của bài toán cần giải
quyết...
‰ Nhưng qui trình trên chưa có ₫iểm dừng, với yêu cầu ngày càng
cao và kiến thức ngày càng nhiều, người ta tiếp tục ₫ịnh nghĩa
những ngôn ngữ mới với tập lệnh ngày càng gần gũi hơn với con 
người ₫ể miêu tả giải thuật càng dễ dàng, gọn nhẹ và trong sáng
hơn. 
‰ Hiện nay, ta thường viết phần mềm bằng các ngôn ngữ cấp cao
như Java, C#...
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 8
II. Chương trình máy tính — Phần mềm
‰ Chương trình máy tính là một giải thuật cụ thể ₫ể giải quyết công
việc ngoài ₫ời mà mỗi công việc trong giải thuật ₫ược miêu tả
bằng 1 lệnh máy cụ thể.
‰ Chương trình máy tính có thể là chương trình ngôn ngữ máy, nó
có thể chạy trực tiếp bởi CPU phần cứng của máy.
‰ Chương trình máy tính cũng có thể là chương trình ngôn ngữ cấp
cao như C, C++, C#, Java, Trong trường hợp này ta phải dùng
chương trình dịch nó ra chương trình ngôn ngữ máy có hành vi 
tương ₫ương trước khi có thể nhờ CPU máy tính chạy trực tiếp nó.
‰ Đối với các ứng dụng lớn và phức tạp, ta nên chọn ngôn ngữ cấp
cao nhất ₫ể xây dựng nó.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 9
II. Phần mềm - FAQ
Khoa học máy tính tập trung về lý thuyết và thông
tin nền tảng, công nghệ phần mềm liên quan ₫ến
thực tiển phát triển và phân phối phần mềm hữu
dụng.
5. Sự khác biệt giữa công
nghệ phần mềm và khoa học
máy tính là gì ?
Đặc tả yêu cầu, phát triển phần mềm, kiểm ₫ịnh
phần mềm, duy trì sự tiến triển phần mềm.
4. Các hoạt ₫ộng kỹ thuật
chính ₫ể viết phần mềm là gì?
Lĩnh vực kỹ thuật liên quan ₫ến mọi hoạt ₫ộng viết
phần mềm.
3. Công nghệ phần mềm là gì
?
Nó phải cung cấp các chức năng và ₫ộ hiệu quả
hoạt ₫ộng theo yêu cầu, phải dễ bảo trì, sử dụng, 
hiệu chỉnh và nâng ấp.
2. Phần mềm tốt có các tính
chất gì ?
Chương trình máy tính và các tài liệu kết hợp. 
Phần mềm có thể ₫ược viết theo yêu cầu cá nhân
hay theo thị trường tổng quát.
1. Phần mềm là gì ?
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 10
II. Phần mềm - FAQ
Phụ thuộc vào tính chất phần mềm mà phương
pháp và kỹ thuật nào sẽ thích hợp nhất.
9. Phương pháp và kỹ thuật
phát triển phần mềm nào là
tốt nhất ?
Khoảng 60% là phát triển, 40% kiểm thử. Đối với
phần mềm cá nhân hóa, chi phí tiến triển phần
mềm sẽ vượt xa chi phí viết phần mềm lần ₫ầu.
8. Chi phí phát triển phần
mềm như thế nào ?
Phần mềm cần viết ngày càng ₫a dạng và phức
tạp hơn, user muốn phần mềm ₫ược phân phối
ngày càng sớm hơn và phải có ₫ộ tin cậy cao hơn.
7. Những thách thức chính
trong công nghệ phần mềm là
gì ?
Kỹ thuật hệ thống thiên về các lĩnh vực phát triển
hệ thống dựa trên máy tính như phần cứng, phần
mềm; công nghệ phần mềm chỉ là 1 phần của kỹ
thuật hệ thống.
6. Sự khác biệt giữa công
nghệ phần mềm và kỹ thuật
hệ thống là gì ?
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 11
II. Phần mềm - FAQ
Nhờ web, ta có thể dùng nhiều dịch vụ phần mềm
có sẵn, ta dễ dàng phát triển các hệ thống phân
tán dựa vào dịch vụ. Việc phát triển hệ thống dựa
vào Web dẫn ₫ến nhiều tiến bộ quan trọng về
ngôn ngữ lập trình và về ₫ộ sử dụng lại phần mềm
10. Web có ảnh hưởng gì ₫ến
công nghệ phần mềm ?
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 12
II. Phần mềm — Phân loại
‰ Tùy vào góc nhìn mà ta phân loại phần mềm như thế nào. Thí dụ, 
nếu dựa vào cách thức hoạt ₫ộng của phần mềm ₫ối với người
dùng nó thì ta có thể phân phần mềm ra 2 loại sau :
ƒ Phần mềm ₫ại chúng : ₫ược viết và bán cho bất kỳ khách
hàng nào muốn dùng chúng. Thí dụ như phần mềm ₫ồ họa
PhotoShop, tool quản lý dự án, phần mềm CAD
ƒ Phần mềm cá nhân hóa : ₫ược viết cho khách hàng ₫ặc biệt, 
riêng lẻ theo yêu cầu riêng của họ. Thí dụ hệ thống ₫iều
khiển nhúng, phần mềm ₫iều khiển không lưu, phần mềm
kiểm soát giao thông.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 13
II. Phần mềm — Phân loại
‰ Nếu dựa vào khả năng thay ₫ổi hành vi của phần mềm ₫ối với
người dùng nó thì ta có thể phân phần mềm ra 2 loại sau :
ƒ Phần mềm cụ thể hóa hóa : luôn cung cấp các tính năng và
hành vi cố ₫ịnh, cho dù ₫ược chạy bởi ai và lần thứ mấy.
ƒ Phần mềm tổng quát hóa : có thể thay ₫ổi tính năng và hành
vi theo thời gian và theo yêu cầu từng người dùng. Thí dụ MS 
Word có thể là phần mềm soạn thảo văn bản, nhưng user có
thể cá nhân hóa theo thời gian ₫ể biến nó thành ứng dụng có
chức năng bất kỳ.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 14
II. Phần mềm — Phân loại
‰ Nếu dựa vào tài nguyên mà phân mềm dùng thì ta có thể phân
phần mềm ra 2 loại sau :
ƒ Phần mềm chạy trên máy ₫ơn : chỉ dùng những tài nguyên
trên 1 máy trong qua trình hoạt ₫ộng.
ƒ Phần mềm mạng hay phân tán : dùng nhiều tài nguyên ở
nhiều máy khác nhau ₫ể hoạt ₫ộng.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 15
II. Phần mềm — Phân loại
‰ Nếu dựa vào lĩnh vực xử lý thì ta có thể có những loại phần mềm
sau :
ƒ Hệ ₫iều hành : là phần mềm quản lý các tài nguyên cấp thấp
(thường là phần cứng), che dấu các tính chất vật lý của chúng
(thường rất khó hiểu và sử dụng), rồi cung cấp lại một
interface sử dụng chúng với các lợi ₫iểm như an toàn, tin cậy, 
thân thiện, hiệu quả và nhất là ₫ộc lập với tính chất vật lý của
tài nguyên ₫ược sử dụng. Người ta còn gọi HĐH là máy ảo
(máy luận lý)..
ƒ Chương trình dịch : sẽ dịch các file mã nguồn sang dạng mã
máy tương ₫ương (thường ₫ược link lại thành file khả thi -
*.exe). Mỗi lần chạy ứng dụng, ta chỉ kích hoạt file khả thi.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 16
II. Phần mềm — Phân loại
ƒ Ứng dụng văn phòng : Cho phép người dùng thực hiện 1 số
chức năng thông thường liên quan ₫ến văn phòng. Microsoft 
Office là ứng dụng văn phòng ₫ược sử dụng phổ biến nhất. 
Open Office là ứng dụng văn phòng mã nguồn mở nhưng yếu
hơn và thiếu ổn ₫ịnh hơn).
ƒ Ứng dụng nghiệp vụ & Database server : Ứng dụng nghiệp vụ
thực hiện các yêu cầu nghiệp vụ trong các cơ quan, ₫ơn vị
như quản lý nhân viên, quản lý tài sản, quản lý ₫iểm, quản lý
bệnh nhân và bệnh án,... Trong hầu hết các ứng dụng nghiệp
vụ, dữ liệu cần lưu trữ và xử lý là rất lớn. Vấn ₫ề lưu trữ và
quản lý những dữ liệu lớn sao cho nhất quán, an toàn tin 
cậy,... ₫òi hỏi nhiều kiến thức chuyên sâu và nhiều thời gian
công sức hiện thực. Database server giải phóng người lập
trình khỏi các công việc liên quan ₫ến database.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 17
II. Phần mềm — Phân loại
ƒ Biên tập & chơi multimedia : Multimedia là dữ liệu ₫a phương
tiện như văn bản, hình ảnh, âm thanh, film,... Dữ liệu ₫a
phương tiện giúp người dùng thích thú hơn khi nghiên cứu về
1 vấn ₫ề nào ₫ó. Các ứng dụng biên tập dữ liệu ₫a phương
tiện cho phép ta xây dựng, thêm/bớt/hiệu chỉnh thông tin và
file ₫a phương tiện tương ứng. Thí dụ trình Photoshop cho ta
xử lý ảnh tĩnh, SoundGold cho phép ta xử lý âm thanh, Photo 
Premiere cho ta biên tập film... Các ứng dụng chơi multimedia 
cho phép người dùng tham khảo file multimedia ₫ã có. Thí dụ
trình Window Multimedia Player của Microsoft cho ta chơi hầu
hết các ₫ịnh dạng file multimedia khác nhau từ ảnh tĩnh, âm
thanh hay film. File multimedia cần chơi có thể nằm trên máy
₫ơn hay trên 1 server multimedia nào ₫ó trong mạng Internet
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 18
II. Phần mềm — Phân loại
ƒ Game : Game (ứng dụng trò chơi) là những ứng dụng dễ lôi
cuốn người dùng nhất. Có 2 thể loại game phổ biến : game 
hành ₫ộng và game trí tuệ.
ƒ Các ứng dụng trên mạng Internet : Thường ứng dụng mạng
dùng mô hình hoạt ₫ộng client/server, mỗi module sẽ ₫óng
vai trò hoặc server, hoặc client. Module server sẽ quản lý các
tài nguyên liên quan trên máy mình ₫ang chạy và cung cấp
dịch vụ truy xuất các tài nguyên này cho các module ở các
máy khác. Module client sẽ chạy trên máy người dùng, cung
cấp giao tiếp sử dụng thân thiện, dễ dàng, an toàn,... Các
module server/client cửa 1 ứng dụng mạng thường tuân thủ 1 
giao thức xác ₫ịnh nào ₫ó. Giao thức (protocol) là tập các
thông báo request/reply cùng ₫ịnh dạng cụ thể của từng
thông báo mà client/server sẽ gởi/nhận cho nhau.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 19
II. Phần mềm — Phân loại
ƒ Các ứng dụng CAD (Computer-Aided Design) : Giúp người
thiết kế xây dựng/hiệu chỉnh bản thiết kế trực tiếp trên máy
tính với sự giám sát/kiểm soát/trợ giúp ngày càng nhiều của
phần mềm, nhờ ₫ó ta có nhanh ₫ược bản thiết kế ₫úng ₫ắn, 
khoa học, bài bản,... Bản vẽ có thể ₫ược phân tích tự ₫ộng ₫ể
xác ₫ịnh một số thông tin cần thiết. CAD ₫ược dùng ₫ể thiết
kế chi tiết cơ khí, mạch ₫iện tử, tàu thủy, xe hơi, nhà cửa, 
quần áo, Một số phần mềm tiêu biểu: OrCAD, AutoCAD,
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 20
II. Phần mềm — Phân loại
ƒ Ứng dụng CAM (Computer-Aided Manufacture) : Phần mềm
dùng máy tính hỗ trợ quá trình sản xuất và chế tạo linh
kiện/thiết bị. Một số dạng CAM như Robot công nghiệp, CNC, 
CAD/CAM, hệ thống ₫iều khiển... Robot công nghiệp thay thế
con người trong việc thực hiện 1 công việc cụ thể xác ₫ịnh. 
Robot có 3 thành phần chính : tay máy, bộ ₫iều khiển và bộ
cung cấp năng lượng. Robot có khả năng cảm nhận môi
trường xung quanh (nhờ các sensor) và ₫áp ứng kịp thời với
sự thay ₫ổi trạng thái của môi trường. CNC (Computer 
numerical control) ₫ược sử dụng rộng rãi trong các thiết bị
máy, nó ₫iều khiển hoạt ₫ộng của máy dựa trên chương trình
viết sẵn. Mạch vi xử lý sẽ thu thập các thông tin liên quan
(thông qua các mạch D/A), dựa trên thông tin thu thập ₫ược, 
nó ₫iều khiển thiết bị máy thay ₫ổi hành vi theo sự tác ₫ộng
củ bên ngoài.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 21
II. Phần mềm — Phân loại
ƒ Ứng dụng nhúng (embedded apllications) : Là các ứng dụng
₫ược cài ₫ặt vào 1 thiết bị cụ thể có trang bị máy tính số với
các tài nguyên hạn chế. Nhiệm vụ của ứng dụng nhúng là
₫iều khiển quá trình hoạt ₫ộng của thiết bị. Thí dụ chương
trình ₫iều khiển máy in laser, máy vẽ, máy photocopy, máy
giặt,...
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 22
II. Phần mềm — Phân loại
ƒ Mô hình hóa & mô phỏng : Mô hình hóa ₫ược dùng ₫ể xem
xét, phân tích hoặc lên kế hoạch cho một công việc phức tạp. 
Mô hình hóa thường dùng các công thức toán học ₫ể mô tả
một công việc hay một quá trình phức tạp. Ví dụ : s = 0.5 at2 
với s là quảng ₫ường ₫i ₫ược, a là gia tốc và t là thời gian. Mô
phỏng dùng máy tính ₫ể mô hình hóa và xem xét hệ thống : 
Kiểm tra, An toàn, Dự ₫oán, Nhanh chóng và linh hoạt. 
Thường phần mềm mô hình hóa & mô phỏng ₫ược sử dụng
nhiều trong các lĩnh vực Giao thông, Xã hội học, Dự ₫oán thời
tiế, Thủy lực học, Sinh học, Giáo dục học, Mô hình 3 chiều.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 23
III. Các mục tiêu của việc phát triển phần mềm
‰ Hiện nay, phần mềm thường phải có nhiều tính năng hữu dụng
và dễ dàng sử dụng. Do ₫ó ₫ộ phức tạp thường cao, hơn nữa
phần mềm sẽ ₫ược dùng lâu dài qua nhiều thế hệ user, trong quá
trình dùng có thể phần mềm cần ₫ược nâng cấp hiệu chỉnh theo
yêu cầu mới phát sinh. 
‰ Ta dùng thuật ngữ “phát triển phần mềm” (software development) 
₫ể chỉ tất cả các hoạt ₫ộng giúp phần mềm tồn tại và phát triển
theo thời gian. 
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 24
III. Các mục tiêu của việc phát triển phần mềm
‰ Chi phí “phát triển phần mềm” :
ƒ Thường rất lớn và chiếm phần rất lớn trong chi phí xây dựng
và duy trì hệ thống tính toán, cao hơn nhiều so với chi phí
trang bị phần cứng.
ƒ Chi phí duy trì tính hữu dụng của phần mềm theo thời gian sử
dụng thường rất cao so với chi phí xây dựng phiên bản ₫ầu
tiên của phần mềm. 
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 25
III. Các mục tiêu của việc phát triển phần mềm
‰ Phát triển phần mềm cần ₫ạt các mục tiêu chính sau ₫ây :
ƒ Phần mềm phải thực hiện ₫úng và ₫ủ các chức năng ₫ề ra
(tính ₫úng ₫ắn và tin cậy của phần mềm). Đây là yêu cầu về
chức năng.
ƒ Mỗi chức năng phải thực hiện 1 cách hiệu quả, tin cậy trong
thời gian qui ₫ịnh Đây là yêu cầu phi chức năng.
ƒ Tốn chi phí thấp nhất, thời gian nhanh nhất ₫ể có phần mềm
chạy ₫ược, dùng ₫ược.
ƒ Ít khi cần thay ₫ổi theo thời gian và yêu cầu mới phát sinh (₫ể
hạn chế chi phí nâng cấp, hiệu chỉnh). Nếu có thì chỉ cần thay
₫ổi ít nhất -> tối thiểu chi phí hiệu chỉnh, nâng cấp.
ƒ Nếu cần thay ₫ổi, nâng cấp thì phần mềm hiện hành phải hỗ
trợ tối ₫a cho việc thay ₫ổi, nâng cấp này -> tối thiểu chi phí
hiệu chỉnh, nâng cấp.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 26
IV. Các hoạt ₫ộng chức năng ⊂ phát triển phần mềm
‰ Việc phát triển phần mềm ₫ược tiến hành theo nhiều chu kỳ, 
trong mỗi chu kỳ ta phải thực hiện các hoạt ₫ộng chức năng sau
₫ây : 
Nắm bắt yêu cầu
Requirements
Phân tích yêu cầu
Analysis
Thiết kế
Design
Hiện thực
Implementation
Kiểm thử
Test
Lập tài liệu cho từng kết quả
(dùng ngôn ngữ ₫ặc dụng)
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 27
IV. Các hoạt ₫ộng chức năng ⊂ phát triển phần mềm
‰ Nắm bắt yêu cầu (Requirements) : Nhiệm vụ của workflow này là
xác ₫ịnh chính xác, rõ ràng và ₫ầy ₫ủ các thông tin sau liên quan
₫ến chương trình :
ƒ các chức năng của chương trình cần ₫áp ứng, mỗi chức năng
cần xác ₫ịnh rõ phục vụ cho ai, họ cung cấp thông tin gì ở
dạng nào cho phần mềm, phần mềm xuất kết quả gì và ở
dạng nào
ƒ chương trình sẽ tương tác với các thành phần nào : loại người
nào, phần mềm nào, thiết bị nào,...
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 28
IV. Các hoạt ₫ộng chức năng ⊂ phát triển phần mềm
‰ Phân tích yêu cầu (Analysis) : Nhiệm vụ của workflow này là phát
họa sơ lược cách giải quyết từng chức năng của chương trình. 
Thường ta dựa vào phương pháp phân tích từ trên xuống :
ƒ Nội dung của phương pháp này là xét xem, muốn giải quyết
vấn ₫ề nào ₫ó thì cần phải làm những công việc nhỏ hơn nào. 
Mỗi công việc nhỏ hơn tìm ₫ược lại ₫ược phân thành những
công việc nhỏ hơn nữa, cứ như vậy cho ₫ến khi những công
việc phải làm là những công việc thật ₫ơn giản, có thể thực
hiện dễ dàng.
ƒ Thí dụ việc học lấy bằng kỹ sư CNTT khoa CNTT ĐHBK 
TP.HCM có thể bao gồm 9 công việc nhỏ hơn là học từng học
kỳ từ 1 tới 9, học học kỳ i là học n môn học của học kỳ ₫ó, 
học 1 môn học là học m chương của môn ₫ó,...
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 29
IV. Các hoạt ₫ộng chức năng ⊂ phát triển phần mềm
‰ Thiết kế (Design) : Nhiệm vụ của workflow này là chi tiết hóa
cách giải quyết từng chức năng của chương trình ₫ến mức ₫ộ dễ
dàng viết code nhất có thể có. Nếu 1 người làm, ta lặp thiết kế
từng chức năng theo 1 thứ tự xác ₫ịnh.
‰ Hiện thực (Implementation) : Nhiệm vụ của workflow này là dịch
bản thiết kế chi tiết thành mã nguồn của ngôn ngữ lập trình xác
₫ịnh, từ ₫ó dịch ra mã máy ₫ể tạo thành chương trình khả thi có
thể chạy trên máy tính. Nếu 1 người làm, ta lặp hiện thực từng
chức năng thiết kế (hay từng phần nhỏ của chức năng) theo 1 thứ
tự xác ₫ịnh.
‰ Kiểm thử (Testing) : Nhiệm vụ của workflow này kiểm tra và thử
nghiệm chương trình thực thi xem nó có lỗi không, nếu có thì lỗi
cụ thể nằm ở lệnh nào, tại sao bị lỗi và sữa lỗi. Nếu 1 người làm, 
ta lặp kiểm thử từng hàm chức năng theo 1 thứ tự xác ₫ịnh.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 30
IV. Các hoạt ₫ộng chức năng ⊂ phát triển phần mềm
‰ Lập tài liệu cho từng hoạt ₫ộng chức năng : Thực hiện mỗi
workflow sẽ tạo ra nhiều kết quả, ta phải quản lý, bảo trì các kết
quả này theo thời gian nhằm phục vụ cho việc nghiên cứu, hiệu
chỉnh, nâng cấp phầm mềm sau này. Một trong các việc quản lý, 
bảo trì các kết quả tạo ₫ược là lập tài liệu. Ta phải dùng 1 ngôn
ngữ thích hợp ₫ể lập tài liệu cho các kết quả sao cho việc quản
lý, bảo trì, chuyển giao phần mềm ₫ược dễ dàng, tin cậy và hiệu
quả... Hiện nay, ngôn ngữ mô hình UML (Unified Modeling 
Language) ₫ược sử dụng rất phổ biến ₫ể ₫ặc tả, quản lý các tài
liệu trong quá trình phát triển phần mềm.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 31
V. Qui trình phát triển phần mềm
‰ Nói nôm na là trình tự các công việc mà ta phải tuân thủ thực
hiện ₫ể xây dựng và duy trì phần mềm hữu dụng theo thời gian.
‰ Có nhiều qui trình phát triển phần mềm khác nhau ₫ã ₫ược ₫ề
nghị và sử dụng. Mỗi qui trình có những ưu, nhược ₫iểm riêng và
thích hợp trong từng loại phần mềm cụ thể.
‰ Cho dù dùng qui trình phát triển phần mềm nào thì cũng phải
thực hiện các hoạt ₫ộng chức năng ₫ã ₫ược giới thiệu ở các slide 
trước, chỉ có ₫ều cách thức và thời ₫iểm thực hiện chúng như thế
nào mà thôi. Các hoạt ₫ộng chức năng phải làm là nắm bắt yêu
cầu phần mềm, phân tích yêu cầu, thiết kế (kiến trúc và chi tiết), 
hiện thực, kiểm thử và chuyển giao cho user.
‰ Mô hình của qui trình phát triển phần mềm là sự diễn tả trừu
tượng về qui trình ₫ó theo 1 vài góc nhìn xác ₫ịnh.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 32
V. Qui trình phát triển phần mềm
‰ Mô hình phát triển thác nước (waterfall model).
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 33
V. Qui trình phát triển phần mềm
‰ Mô hình phát triển prototype (Incremental development model).
Thao luaän vơi
khach hang
Xaây dưng
prototype
Đanh gia cua
khach hang
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 34
V. Qui trình phát triển phần mềm
‰ Mô hình phát triển xoắn ốc (spiral development model).
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 35
V. Qui trình phát triển phần mềm
‰ Mô hình phát triển tăng tiến (Incremental development model).
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 36
V. Qui trình phát triển phần mềm
‰ Qui trình RUP (Rational Unified Process) : qui trình phát triển
phần mềm hợp nhất của hãng Rational, do hãng Rational khởi
xướng và duy trì. Nó dựa trên việc dùng và kết hợp các ₫ối tượng
₫ể cấu thành phần mềm. Nó có nhiều ưu ₫iểm so với các qui 
trình khác, do ₫ó ₫ược dùng chủ yếu hiện nay trong các công ty
phát triển phần mềm. Trong các chương còn lại, ta sẽ tập trung
giới thiệu các thông tin cơ bản và chính yếu của qui trình phát
triển này.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 37
VI. Công nghệ phần mềm
‰ Thuật ngữ “Công nghệ phần mềm” (Software engineering) ₫ể nói
về các lý thuyết, phương pháp, qui trình và tiện ích ₫ược dùng
trong việc phát triển phần mềm chuyên nghiệp hầu tối thiểu chi 
phí, nâng cao tính ₫úng ₫ắn, bền vững của phần mềm.
‰ Trong các nội dung của công nghệ phần mềm thì qui trình phát
triển phần mềm là chủ yếu nhất.
‰ Trong các qui trình phát triển ₫ược dùng thì hiện tại qui trình RUP 
₫ược dùng phổ biến nhất. Qui trình này dựa trên nền tảng hướng
₫ối tượng.
‰ Ngôn ngữ UML sẽ ₫ược dùng ₫ể ₫ặc tả hầu hết các tài liệu tạo ra
trong qui trình phát triển RUP.
Khoa Khoa học & Kỹ thuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Nhập môn Công nghệ phần mềm
Chương 1 : Tổng quan về công nghệ phần mềm
Slide 38
VII. Kết chương
‰ Chương này ₫ã giới thiệu cho chúng ta bức tranh toàn cục về
thiết bị tổng quát hóa là máy tính số, cách thức nhờ máy tính thực
hiện dùm 1 bài toán, chi phí xây dựng và duy trì phần mềm, các
hoạt ₫ộng chức năng của phát triển phần mềm, qui trình phát
triển phần mềm và ý nghĩa của thuật ngữ công nghệ phần mềm.

File đính kèm:

  • pdfbai_giang_nhap_mon_cong_nghe_phan_mem_chuong_1_tong_quan_ve.pdf