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 đủ
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:
bai_giang_nhap_mon_cong_nghe_phan_mem_chuong_1_tong_quan_ve.pdf

