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

NHẬP MÔN  
CÔNG NGHỆ PHẦN MỀM  
(INTRODUCTION TO SOFTWARE  
ENGINEERING)  
1
Nội dung  
I. Phần mềm  
• 1. Định nghĩa  
• 2. Đặc tính của phần mềm  
• 3. Thế nào là phần mềm tốt?  
• 4. Phân loại phần mềm  
II. Công nghệ phần mềm  
• 1. Định nghĩa  
• 2. Công nghệ học trong CNPM  
• 3. Mục tiêu của công nghệ học phần mềm  
• 4. SE - công nghệ phân lớp  
• 5. SE - các pha  
• 6. Những khó khăn trong sản xuất phần mềm  
2
I. Phần mềm  
1. Định nghĩa về phần mềm  
– Phần mềm (Software - SW) như một khái niệm đối  
nghĩa với phần cứng (Hardware - HW), tuy nhiên,  
đây là 2 khái niệm tương đối  
– Từ xưa, SW như thứ được cho không hoặc bán  
kèm theo máy (HW)  
– Dần dần, giá thành SW ngày càng cao và nay cao  
hơn HW  
3
Các đặc tính của SW và HW  
Hardware  
Software  
• Vật “cứng”  
• Kim loại  
• Vật chất  
• Hữu hình  
• Vật “mềm”  
• Kỹ thuật sử dụng  
• Trừu tượng  
• Vô hình  
• Sản xuất công nghiệp bởi  
• Sản xuất bởi con người là  
máy móc là chính  
chính  
• Định lượng là chính  
• Hỏng hóc, hao mòn  
• Định tính là chính  
• Không hao mòn  
4
SW đối nghĩa với HW  
• Vai trò SW ngày càng thể hiện trội  
• Máy tính là . . . chiếc hộp không có SW  
• Ngày nay, SW quyết định chất lượng một hệ  
thống máy tính (HTMT), là chủ đề cốt lõi,  
trung tâm của HTMT  
• Hệ thống máy tính gồm HW và SW  
5
Định nghĩa 1  
• Phần mềm là  
– Các lệnh (chương trình máy tính) khi được thực hiện  
thì cung cấp những chức năng và kết quả mong muốn  
– Các cấu trúc dữ liệu làm cho chương trình thao tác  
thông tin thích hợp  
– Các tư liệu mô tả thao tác và cách sử dụng chương  
trình  
• IEEE: Computer programs, procedures, and  
possibly associated documentation and data  
pertaining to the operation of a computer  
system.  
6
Định nghĩa 2  
• Trong một hệ thống máy tính, nếu trừ bỏ đi  
các thiết bị và các loại phụ kiện thì phần còn  
lại chính là phần mềm (SW)  
• Nghĩa hẹp: SW là dịch vụ chương trình để tăng  
khả năng xử lý của phần cứng của máy tính  
(như hệ điều hành - OS)  
• Nghĩa rộng: SW là tất cả các kỹ thuật ứng dụng  
để thực hiện những dịch vụ chức năng cho  
mục đích nào đó bằng phần cứng  
7
SW theo nghĩa rộng  
• Không chỉ SW cơ bản và SW ứng dụng  
• Phải gồm cả khả năng, kinh nghiệm thực tiễn  
và kỹ năng của kỹ sư (người chế ra phần  
mềm): Kỹ năng của kỹ sư phầm mềm (Know-  
how of Software Engineer)  
• Là tất cả các kỹ thuật làm cho sử dụng phần  
cứng máy tính đạt hiệu quả cao  
8
2. Đặc tính chung của phần mềm  
• Là hàng hóa vô hình, không nhìn thấy được  
• Chất lượng phần mềm: không mòn đi mà có  
xu hướng tốt lên sau mỗi lần có lỗi  
(error/bug) được phát hiện và sửa  
• Phần mềm vốn chứa lỗi tiềm tàng, theo quy  
mô càng lớn thì khả năng chứa lỗi càng cao  
• Lỗi phần mềm dễ được phát hiện bởi người  
ngoài  
9
2. Đặc tính chung của phần mềm  
• Chức năng của phần mềm thường biến hóa,  
thay đổi theo thời gian (theo nơi sử dụng)  
• Hiệu ứng làn sóng trong thay đổi phần mềm  
• Phần mềm vốn chứa ý tưởng và sáng tạo của  
tác giả/nhóm làm ra nó  
• Cần khả năng “tư duy nhị phân” trong xây  
dựng, phát triển phần mềm  
• Có thể sao chép rất đơn giản  
10  
3. Thế nào là phần mềm tốt ?  
Đặc  
trưng  
gần  
Yếu  
tố  
khái  
niệm  
phần  
mềm  
tốt  
Hiệu suất xử lý  
đây  
Tính dễ hiểu  
Các chỉ tiêu cơ bản  
11  
3.1. Các chỉ tiêu cơ bản  
• Phản ánh đúng yêu cầu người dùng (tính hiệu  
quả - effectiveness)  
• Chứa ít lỗi tiềm tàng  
• Giá thành không vượt quá giá ước lượng ban  
đầu  
• Dễ vận hành, sử dụng  
• Tính an toàn và độ tin cậy cao  
12  
3.2. Hiệu suất xử lý cao  
• Hiệu suất thời gian tốt (efficiency):  
– Độ phức tạp tính toán thấp (Time complexity)  
– Thời gian quay vòng ngắn (Turn Around Time: TAT)  
– Thời gian hồi đáp nhanh (Response time)  
• Sử dụng tài nguyên hữu hiệu: CPU, RAM, HDD,  
Internet resources, . . .  
13  
3.3. Dễ hiểu  
• Kiến trúc và cấu trúc thiết kế dễ hiểu  
• Dễ kiểm tra, kiểm thử, kiểm chứng  
• Dễ bảo trì  
• Có tài liệu (mô tả yêu cầu, điều kiện kiểm thử,  
vận hành, bảo trì, FAQ, . . .) với chất lượng cao  
Tính dễ hiểu: chỉ tiêu ngày càng quan trọng  
14  
4. Phân loại phần mềm  
• Phần mềm hệ thống (System SW)  
• Phần mềm thời gian thực (Real-time SW)  
• Phần mềm nghiệp vụ (Business SW)  
• Phần mềm tính toán KH&KT (Engineering & Science  
SW)  
• Phần mềm nhúng (Embedded SW)  
• Phần mềm máy cá nhân (Personal computer SW)  
• Phần mềm trên Web (Web-based SW)  
• Phần mềm trí tuệ nhân tạo (Artificial Intelligent SW)  
15  
4. Phân loại phần mềm  
Phần mềm  
Phần mềm hệ  
thống  
Phần mềm ứng  
dụng  
Phần mềm mục  
Hệ điều hành  
đích chung  
Phần mềm xử lý văn  
bản  
Phần mềm  
nhúng  
Phần mềm mục  
đích đặc biệt  
Chương trình  
tiện ích  
Phần mềm tính  
toán KHKT  
Chương trình  
thư viện  
Phần mềm trên  
web  
Phần mềm nghiệp  
vụ  
Chương trình  
dịch  
Phần mềm đặt hàng  
16  
Câu hỏi: Phân biệt các khái niệm  
sau  
• Hệ thống, phần mềm, ứng dụng  
• Lập trình, phát triển phần mềm  
• Lập trình viên và kỹ sư phần mềm  
17  
II. Công nghệ phần mềm (Software  
Engineering)  
1. Định nghĩa  
– Bauer [1969]: CNPM là việc thiết lập và sử dụng các  
nguyên tắc công nghệ học đúng đắn dùng để thu  
được phần mềm một 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  
– Parnas [1987]: CNPM là việc xây dựng phần mềm  
nhiều phiên bản bởi nhiều người  
– Ghezzi [1991]: CNPM là một lĩnh vực của khoa học  
máy tính, liên quan đến xây dựng các hệ thống phần  
mềm vừa lớn vừa phức tạp bởi một hay một số nhóm  
kỹ sư  
18  
1. Định nghĩa  
• IEEE [1993]: CNPM là  
– (1) việc áp dụng phương pháp tiếp cận có hệ  
thống, bài bản và được lượng hóa trong phát  
triển, vận hành và bảo trì phần mềm;  
– (2) nghiên cứu các phương pháp tiếp cận được  
dùng trong (1)  
• Pressman [1995]: CNPM là bộ môn tích hợp cả  
quy 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  
19  
1. Định nghĩa  
• Sommerville [1995]: CNPM là lĩnh vực liên quan  
đến lý thuyết, phương pháp và công cụ dùng cho  
phát triển phần mềm  
• K. Kawamura [1995]: CNPM là lĩnh vực học vấn về  
các kỹ thuật, phương pháp luận công nghệ học (lý  
luận và kỹ thuật được hiện thực hóa trên những  
nguyên tắc, nguyên lý nào đó) trong toàn bộ quy  
trình phát triển phần mềm nhằm nâng cao cả  
chất và lượng của sản xuất phần mềm  
20  
Tải về để xem bản đầy đủ
pdf 35 trang Thùy Anh 17290 Free
Bạn đang xem 20 trang mẫu của 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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_nhap_mon_cong_nghe_phan_mem_chuong_1_tong_quan_ve.pdf