Professional Documents
Culture Documents
z
Cần những kiến thức căn bản về CNTT
Cung cấp những nguyên lý chung về Kỹ
nghệ Phần mềm (KNPM)
Bài giảng cho lớp K49CA và K49CB z Cung cấp kiến thức để học các môn chuyên
Giảng viên: PGS.TS. Nguyễn Ngọc Bình ngành hẹp như Phân tích và thiết kế phần
Email: nnbinh@vnu.edu.vn mềm, Xây dựng và đánh giá phần mềm,
Http://www.jaist.ac.jp/~jaist Quản trị dự án phần mềm,...
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 1 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 2
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 5 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 6
1
Nội dung môn học (tiếp) Nội dung môn học (tiếp)
z Thiết kế phần mềm z Kiểm thử
• Khái niệm, nguyên lý, chất lượng thiết kế • Khái niệm, các loại kiểm thử
phần mềm • Quy trình, công cụ trợ giúp kiểm thử
• Thiết kế kiến trúc, thiết kế giao diện • Viết tài liệu kiểm thử
• Một số phương pháp, công cụ thiết kế z Tích hợp, chuyển giao và bảo trì
z Lập trình • Khái niệm
• Phong cách lập trình • Các nguyên lý, hoạt động tích hợp
• Lập trình tránh lỗi • Các hoạt động chuyển giao, bảo trì
• Lập trình hướng hiệu quả • Cácvấnđềcủahoạtđộngbảotrì
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 7 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 8
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 9 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 10
z Thường xuyên theo dõi thông tin trên z Điểm thi cuối kỳ (50-60%)
Website z Bài tập lớn theo nhóm (20-30%)
z Lấy yêu cầu bài tập và nộp bài trên Website z Kiểm tra giữa kỳ (20-30%)
z Xem điểm bài tập trên Website z Xét điều kiện thi cuối kỳ
z Tham gia diễn đàn môn học trên Website
z Lấy điểm
z Đưa các thắc mắc, kiến nghị về môn học
trên Website
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 11 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 12
2
Nội dung
NHẬP MÔN 1.1 Định nghĩa chung về phần mềm
1.2 Kiến trúc phần mềm
KỸ NGHỆ PHẦN MỀM
1.3 Các khái niệm
1.4 Đặc tính chung của phần mềm
1.5 Thế nào là phần mềm tốt ?
CHƯƠNG 1:
1.6 Các ứng dụng phần mềm
Bản chất phần mềm
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 13 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 14
1.1. Định nghĩa chung về phần mềm Các đặc tính của SW và HW
z Phần mềm (Software - SW) như một HW SW
khái niệm đối nghĩa với phần cứng z Vật “cứng” z Vật “mềm”
(Hardware - HW), tuy nhiên, đây là 2 z Kim loại z Kỹ thuật sử dụng
khái niệm tương đối z Vật chất z Trừu tượng
z Hữu hình
z Từ xưa, SW như thứ được cho không z Vô hình
z Sản xuất công
hoặc bán kèm theo máy (HW) nghiệp bởi máy móc
z Sản xuất bởi con
người là chính
z Dần dần, giá thành SW ngày càng cao là chính
z Định tính là chính
và nay cao hơn HW z Định lượng là chính
z Hỏng hóc, hao mòn z Không hao mòn
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 15 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 16
3
Định nghĩa 2 SW theo nghĩa rộng
z Trong một hệ thống máy tính, nếu trừ bỏ z Không chỉ SW cơ bản và SW ứng dụng
đi các thiết bị và các loại phụ kiện thì
z Phải gồm cả Khả năng, kinh nghiệm
phần còn lại chính là phần mềm (SW)
thực tiễn và kỹ năng của kỹ sư (người
z 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 chế ra phần mềm): Know-how of
của máy tính (như hệ điều hành - OS) Software Engineer
z Nghĩa rộng: SW là tất cả các kỹ thuật z Là tất cả các kỹ thuật làm cho sử dụng
ứng dụng để thực hiện những dịch vụ phần cứng máy tính đạt hiệu quả cao
chức năng cho mục đích nào đó bằng
phần cứng
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 19 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 20
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 21 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 22
4
Những yếu tố khác 1.2 Kiến trúc phần mềm
z Sản xuất phần mềm phụ thuộc rất nhiều 1.2.1 Phần mềm nhìn từ cấu trúc phân cấp
vào con người (kỹ sư phần mềm). Khả z Cấu trúc phần mềm là cấu trúc phân
năng hệ thống hóa trừu tượng, khả năng cấp (hierarchical structure): mức trên
lập trình, kỹ năng công nghệ, kinh là hệ thống (system), dưới là các hệ
nghiệm làm việc, tầm bao quát, . . .: thống con (subsystems)
khác nhau ở từng người z Dưới hệ thống con là các chương
z Phần mềm phụ thuộc nhiều vào ý tưởng trình
(idea) và kỹ năng (know-how) của z Dưới chương trình là các Modules
người/nhóm tác giả hoặc Subroutines với các đối số
(arguments)
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 25 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 26
Kiến trúc phần mềm 1.2.2 Phần mềm nhìn từ cấu trúc và thủ tục
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 27 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 28
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 29 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 30
5
Các khái niệm phần mềm
1.3 Các khái niệm (Software concepts)
z Khi chế tác phần mềm cần nhiều kỹ z Khái niệm tính môđun (modularity concept)
thuật z Khái niệm chi tiết hóa dần từng bước
• Phương pháp luận (Methodology): những (stepwise refinement concept)
chuẩn mực cơ bản để chế tạo phần mềm
với các chỉ tiêu định tính z Khái niệm trừu tượng hóa (abstraction
• Các phương pháp kỹ thuật (Techniques): concept): về thủ tục, điều khiển, dữ liệu
những trình tự cụ thể để chế tạo phần z Khái niệm che giấu thông tin (information
mềm và là cách tiếp cận khoa học mang hiding concept)
tính định lượng
z Khái niệm hướng đối tượng (object oriented)
z Từ phương pháp luận triển khai đến
kỹ thuật
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 31 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 32
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 33 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 34
Chuẩn phân chia môđun 1.3.2 Chi tiết hóa từng bước
tr
Phân chia chiều sâu
tố úc
Chi
tiÕt
i ư tru hãa Trừu tượng hóa mức trung gian:
u ng
hó g Đặc tả yêu cầu Xác định yêu cầu và đặc tả
a ia
n tõng Những định nghĩa yêu cầu
b−íc
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 35 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 36
6
Ví dụ: Trình tự giải quyết vấn đề từ mức
thiết kế chương trình đến mức lập trình Cụ thể hóa thủ tục qua các chức năng
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 37 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 38
Cụ thể hóa bước tiếp theo Mức mô tả chương trình (bằng PDL)
Bắt đầu
Đọc K
Nhận giá trị cho mảng 1 chiều A(I), (I =1, 2, . . . ,.N)
Tìm kiếm giá trị Xác lập phạm vi mảng số MIN = 1
MAX = N
(pp nhị phân) DO WHILE (Có giá trị bằng K không? Cho đến khi MIN > MAX)
Lấy MID = (MIN + MAX) / 2
Lặp lại xử lý tìm kiếm giá IF A(MID) > K THEN
trị K trong phạm vi tìm kiếm MAX = MID - 1
ELSE
IF A(MID) < K THEN
MIN = MID + 1
Lặp lại tìm kiếm K Tìm vị trí giữa phân đôi mảng ELSE
In giá trị MID
trong phạm vi tìm ENDIF
kiếm So sánh K với giá trị giữa ENDIF
ENDDO
Đặt lại phạm vi tìm kiếm Kết thúc
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 39 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 40
1.3.3 Khái niệm Che giấu thông tin Khái niệm Trừu tượng hóa
z Để phân rã phần mềm thành các môđun z Abstraction cho phép tập trung vấn đề ở
một cách tốt nhất, cần tuân theo nguyên mức tổng quát, gạt đi những chi tiết mức
thấp ít liên quan
lý che giấu thông tin: “các môđun nên
z 3 mức trừu tượng
được đặc trưng bởi những quyết định • Trừu tượng thủ tục: dãy các chỉ thị với chức năng
thiết kế sao cho mỗi môđun ẩn kín đối đặc thù và giới hạn nào đó
với các môđun khác” [Parnas1972] • Trừu tượng dữ liệu: tập hợp dữ liệu mô tả đối
tượng dữ liệu nào đó
z Rất hữu ích cho kiểm thử và bảo trì • Trừu tượng điều khiển: Cơ chế điều khiển
chương trình không cần đặc tả những chi tiết bên
phần mềm trong
z Ví dụ: Mở cửa. Thủ tục: Mở gồm . . .; Dữ
liệu: Cửa là . . .
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 41 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 42
7
1.4 Đặc tính chung của phần mềm Đặc tính chung của phần mềm
z Là hàng hóa vô hình, không nhìn thấy được z Chức năng của phần mềm thường biến hóa,
z Chất lượng phần mềm: không mòn đi mà có thay đổi theo thời gian (theo nơi sử dụng)
xu hướng tốt lên sau mỗi lần có lỗi (error/bug) z Hiệu ứng làn sóng trong thay đổi phần mềm
được phát hiện và sửa z Phần mềm vốn chứa ý tưởng và sáng tạo
z Phần mềm vốn chứa lỗi tiềm tàng, theo quy của tác giả / nhóm tác giả làm ra nó
mô càng lớn thì khả năng chứa lỗi càng cao z Cần khả năng “tư duy nhị phân” (binary
z Lỗi phần mềm dễ được phát hiện bởi người thinking) trong xây dựng, phát triển phần
ngoài mềm
z Có thể sao chép rất đơn giản
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 43 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 44
1.5 Thế nào là phần mềm tốt ? 1.5.1 Các chỉ tiêu cơ bản
z Phản ánh đúng yêu cầu người dùng
(tính hiệu quả - effectiveness)
Yếu
Hiệu suất xử lý Đặc z Chứa ít lỗi tiềm tàng
tố trưng
khái gần z Giá thành không vượt quá giá ước
niệm Tính dễ hiểu đây lượng ban đầu
phần
mềm z Dễ vận hành, sử dụng
tốt Các chỉ tiêu cơ bản
z Tính an toàn và độ tin cậy cao
Thời gian
(Phần cứng phát triển)
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 45 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 46
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 47 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 48
8
CHƯƠNG 2:
1.6 Các ứng dụng phần mềm
Khủng hoảng phần mềm
z Phần mềm hệ thống (System SW) (Software Crisis)
z Phần mềm thời gian thực (Real-time SW) và Khái niệm Kỹ nghệ phần mềm
z Phần mềm nghiệp vụ (Business SW)
(Software Engineering)
z Phần mềm tính toán KH&KT (Eng.&Scie. SW)
z Phần mềm nhúng (Embedded SW) 2.1 Khủng hoảng phần mềm là gì ?
z Phần mềm máy cá nhân (Personal computer 2.2 Những vấn đề (khó khăn) trong
SW) sản xuất phần mềm
z Phần mềm trên Web (Web-based SW) 2.3 Định nghĩa Kỹ nghệ phần mềm
z Phần mềm trí tuệ nhân tạo (AI SW)
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 49 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 50
2.1 Khủng hoảng phần mềm là gì? Khủng hoảng phần mềm là gì? (tiếp)
Là sự day dứt kinh niên (kéo dài theo thời gian hoặc
z 10/1968 tại Hội nghị của NATO các chuyên gia thường tái diễn, liên tục không kết thúc) gặp phải trong
phần mềm đã đưa ra thuật ngữ “Khủng hoảng phát triển phần mềm máy tính, như
phần mềm” (Software crisis). Qua hàng chục năm, z Phải làm thế nào với việc giảm chất lượng và những lỗi
thuật ngữ này vẫn được dùng và ngày càng mang tiềm tàng có trong phần mềm ?
tính cấp bách z Phải xử lý ra sao khi bảo dưỡng phần mềm đã có ?
z Khủng hoảng là gì ? [Webster’s Dict.] z Phải giải quyết thế nào khi thiếu kỹ thuật viên phần mềm?
• Điểm ngoặt trong tiến trình của sự vật, sự kiện nào đó; z Phải chế tác phần mềm ra sao khi có yêu cầu phát triển
thời điểm, giai đoạn hoặc biến cố quyết định hay chủ chốt theo qui cách mới xuất hiện ?
• Điểm ngoặt trong quá trình diễn biến bệnh khi trở nên rõ z Phải xử lý ra sao khi sự cố phần mềm gây ra những vấn
ràng bệnh nhân sẽ sống hay chết
đề xã hội ?
z Trong phần mềm: Day dứt kinh niên (chronic
affliation, by Prof. Tiechrow, Geneva, Arp. 1989)
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 51 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 52
z Công sức cho bảo trì càng tăng thì 80 - Phần cứng
chi phí cho Backlog càng lớn 60
Phát triển
-
z Nhân lực chưa đáp ứng được nhu Phần
40
cầu phần mềm - Mềm
Bảo trì
z Những phiền hà của phần mềm gây ra 20
-
những vấn đề xã hội 0+ + + +
1955 1970 1985 2000
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 53 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 54
9
2.2 Những vấn đề (khó khăn) trong
So sánh chi phí cho các pha sản xuất phần mềm
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 55 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 56
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 57 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 58
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 59 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 60
10
Những vấn đề trong
sản xuất phần mềm (tiếp)
IT Challenges for Vietnam
(13) Quản lý dự án lỏng lẻo kéo theo quản lý
• Lack of IT Skill Standards (ITSS). Curriculum?
lịch trình cũng không rõ ràng
• Foreign Language Skill (English, Japanese, Korean,
(14) Không có tiêu chuẩn để ước lượng nhân lực French, etc.)
và dự toán sẽ làm kéo dài thời hạn và vượt • Practice Skill
kinh phí của dự án • IT Project Managers, Leaders
• Documentations Skill
Đây là những vấn đề phản ánh các khía cạnh khủng • SQA: Few qualified IT Corp. with ISO9000 (32); CMM5
hoảng phần mềm, hãy tìmm cách nỗ lực vượt qua (FPT); CMM4, CMMI-5 (PSV, FSOFT); CMM3 (SilkRood)
để tạo ra phần mềm tốt! • ICT Education&Training Environment
• Lack of IT Books/Textbooks/Journals/Symposiums
• Recognition of Copyrights/IP
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 61 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 62
a. Lịch sử tiến triển của KNPM Lịch sử tiến triển của KNPM
z Nửa đầu 1960: ít quan tâm đến phần z Năm 1968: Tại Tây Đức, Hội nghị khoa học
mềm, chủ yếu tập trung nâng cao tính của NATO đã đưa ra từ “Software
năng và độ tin cậy của phần cứng Engineering”. Bắt đầu bàn luận về khủng
khoảng phần mềm và xu hướng hình thành
z Giữa những năm 1960: Phát triển hệ KNPM như một chuyên môn riêng
điều hành như phần mềm lớn (IBM z Nửa cuối 1960: IBM đưa ra chính sách phân
OS/360, EC OS). Xuất hiện nhu cầu về biệt giá cả giữa phần cứng và phần mềm. Từ
quy trình phát triển phần mềm lớn và đó, ý thức về phần mềm ngày càng cao. Bắt
quy trình gỡ lỗi, kiểm thử trong phạm vi đầu những nghiên cứu cơ bản về phương
giới hạn pháp luận lập trình
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 65 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 66
11
Lịch sử tiến triển của KNPM Lịch sử tiến triển của KNPM
z Nửa đầu những năm 1970: Nhằm nâng cao z Nửa sau những năm 1970: Quan tâm
chất lượng phần mềm, không chỉ có các đến mọi pha trong quy trình phát triển
nghiên cứu về lập trình, kiểm thử, mà có cả phần mềm, nhưng tập trung chính ở
những nghiên cứu đảm bảo tính tin cậy trong những pha đầu. ICSE tổ chức lần 2, 3 và
quy trình sản xuất phần mềm. Kỹ thuật: lập
4 vào 1976, 1978 và 1979
trình cấu trúc hóa, lập trình môđun, thiết kế
cấu trúc hóa, vv • Nhật Bản có “Kế hoạch phát triển kỹ thuật sản
xuất phần mềm” từ năm 1981
Giữa những năm 1970: Hội nghị quốc tế đầu
z
tiên về KNPM được tổ chức (1975):
• Cuộc “cách tân sản xuất phần mềm” đã bắt
đầu trên phạm vi các nước công nghiệp
International Conference on SE (ICSE)
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 67 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 68
Lịch sử tiến triển của KNPM Lịch sử tiến triển của KNPM
z Nửa đầu những năm 1980: Trình độ học vấn z Nửa cuối những năm 1980 đến nay: Từ học
và ứng dụng KNPM được nâng cao, các vấn sang nghiệp vụ! Chất lượng phần mềm
công nghệ được chuyển vào thực tế. Xuất tập trung chủ yếu ở tính năng suất, độ tin cậy
hiện các sản phẩm phần mềm và các công và tính bảo trì. Nghiên cứa hỗ trợ tự động
cụ khác nhau làm tăng năng suất sản xuất hóa sản xuất phần mềm
phần mềm đáng kể • Nhật Bản có “Kế hoạch hệ thống công nghiệp hóa sản
• ICSE tổ chức lần 5 và 6 năm 1981 và 1982 với trên xuất phần mềm”(SIGMA: Software Industrialized
1000 người tham dự mỗi năm Generator & Maintenance Aids, 1985-1990)
• Nhật Bản sang “Kế hoạch phát triển các kỹ thuật bảo • Nhiều trung tâm, viện nghiên cứu KNPM ra đời. Các
trì phần mềm” (1981-1985) trường đưa vào giảng dạy SE
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 69 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 70
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 71 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 72
12
Sơ khởi: nửa đầu 1970 Trưởng thành: nửa cuối 1970
z Khái niệm về tính môđun, cụ thể hóa z Phương pháp luận về quy trình thiết kế phần
từng bước trong phương pháp luận thiết mềm với phương pháp phân chia môđun và
thiết kế trong từng môđun.
kế
z L.L. Constantine, 1974: Thiết kế cấu trúc hóa
z N. Wirth: Chi tiết hóa từng giai đoạn. (phân chia môđun);
Thiết kế trên xuống. Lập trình môđun z E.W. Dijkstra, 1972: Lập trình cấu trúc hóa
(trong môđun) . Phương pháp M.A. Jackson
(1975) và J.D. Warnier (1974)
z Trừu tượng hóa dữ liệu: B.H. Liskov
(1974);D.L. Parnas (1972)
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 73 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 74
Phát triển: nửa đầu 1980 Biến đổi: nửa cuối 1980 đến nay
z Triển khai các công cụ hỗ trợ phát triển phần z Đưa ra các môi trường mới về phát triển
mềm dựa trên các phương pháp và kỹ thuật phần mềm. Triển khai mới về kết hợp giữa
đưa ra những năm 1970 KNPM và Kỹ nghệ Tri thức (Knowledge
z Bộ khởi tạo chương trình (program Engineering)
generators: pre-compiler; graphics-input z Triển khai những môi trường bậc cao về phát
editors, etc.) triển phần mềm; Tự động hóa sản xuất phần
z Ngôn ngữ đối thoại đơn giản (4GL, DB SQL) mềm; Chế phần mềm theo kỹ thuật chế thử
z Hệ trợ giúp: Hệ trợ giúp kiểm thử; Hệ trợ (Prototyping); Lập trình hướng đối tượng -
giúp quản lý thư viện môđun; Hệ trợ giúp tái OOP; Phần mềm dựa theo thành phần; Hỗ
sử dụng trợ phát triển phần mềm từ các hệ chuyên
gia, v.v.
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 75 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 76
Hình thái sản xuất Phần mềm c. Định nghĩa Kỹ nghệ phần mềm
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 77 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 78
13
Định nghĩa KNPM (tiếp) Định nghĩa KNPM (tiếp)
z IEEE [1993]: KNPM là z Sommerville [1995]: KNPM là lĩnh vực liên
• (1) việc áp dụng phương pháp tiếp cận có hệ quan đến lý thuyết, phương pháp và công cụ
thống, bài bản và được lượng hóa trong phát dùng cho phát triển phần mềm
triển, vận hành và bảo trì phần mềm;
z K. Kawamura [1995]: KNPM là lĩnh vực học
• (2) nghiên cứu các phương pháp tiếp cận
vấn về các kỹ thuật, phương pháp luận công
được dùng trong (1)
nghệ học (lý luận và kỹ thuật được hiện thực
z Pressman [1995]: KNPM là bộ môn tích hóa trên những nguyên tắc, nguyên lý nào
hợp cả quy trình, các phương pháp, các đó) trong toàn bộ quy trình phát triển phần
công cụ để phát triển phần mềm máy mềm nhằm nâng cao cả chất và lượng của
tính sản xuất phần mềm
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 79 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 80
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 81 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 82
d. Vòng đời phần mềm Mô hình vòng đời phần mềm của Boehm
(1981)
(Software life-cycle)
Xác định yêu
yêu cầu, vận hành, bảo trì cho đến khi Thiết kế
căn bản
Thiết kế
z Quy trình phần mềm (vòng đời phần chi tiết
Kiểm chứng
mềm) được phân chia thành các pha
chính: phân tích, thiết kế, chế tạo, kiểm
Lập trình
Gỡ lỗi
thử, bảo trì. Biểu diễn các pha có khác Kiểm thử
Vận hành
Bảo trì
Kiểm chứng
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 83 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 84
14
Suy nghĩ mới về vòng đời phần mềm Suy nghĩ mới về vòng đời phần mềm
(1) Pha xác định yêu cầu và thiết kế có vai trò (4) Trước khi chuyển sang pha kế tiếp phải
quyết định đến chất lượng phần mềm, đảm bảo pha hiện nay đã được kiểm thử
chiếm phần lớn công sức so với lập trình, không còn lỗi
kiểm thử và chuyển giao phần mềm (5) Cần có cơ chế kiểm tra chất lượng, xét
(2) Pha cụ thể hóa cấu trúc phần mềm phụ duyệt giữa các pha nhằm đảm bảo không
thuộc nhiều vào suy nghĩ trên xuống (top- gây lỗi cho pha sau
down) và trừu tượng hóa, cũng như chi tiết (6) Tư liệu của mỗi pha không chỉ dùng cho
hóa pha sau, mà chính là đối tượng quan trọng
(3) Pha thiết kế, chế tạo thì theo trên xuống, cho kiểm tra và đảm bảo chất lượng của
pha kiểm thử thì dưới lên (bottom-up) từng quy trình và của chính phần mềm
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 85 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 86
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 87 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 88
Bài tập lớn: Các đề tài Bài tập lớn: cách làm
1. CMM and CMMI 12. RTPA
(www.sei.cmu.edu) 13. COCOMO I, II z Mỗi nhóm 3 – 5 SV, thực hiện 1 đề tài, mỗi đề tài chỉ 1
2. ISO 9001,… for SE 14. Oracle PM nhóm
3. UML and RUP 15. Postgre-SQL z Phân công nhóm trưởng, trách nhiệm từng thành viên
4. CBSE 16. FreeBSD z Thu thập tư liệu, nghiên cứu, triển khai (minh họa hoặc cài
5. Java and JSP 17. Turbo Linux đặt đơn giản)
6. ASP and .NET 18. GCC z Viết báo cáo đầy đủ (15 trang / 1người) và chuẩn bị PPT
7. PHP and MySQL 19. CMS.NET and Related trình bày trong 15-20’ một nhóm
8. RAISE Issues z Đóng quyển theo quy cách báo cáo thực tập. Các thành
9. Z-Method 20. Design Patterns viên ký tên. Nộp theo CD có ghi các tệp báo cáo và tư liệu
10. B-Method 21. Software Metrics liên quan (1 CD có thể ghi cho nhiều nhóm)
11. rCOS method 22. XP (Extreme Progr.) z Thời hạn: tuần thứ 14 nộp. Thời gian và địa điểm cụ thể sẽ
thông báo sau
z Ghi chú: có thể đề xuất đề tài khác (ví dụ tìm hiểu yêu cầu
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 89
và đặc tả hệ thống nào đó, …), nhưng phải
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN
được GV đồng
Kỹ nghệ phần mềm Slide 90
ý
15