Giáo trình Công nghệ phần mềm - Chương 1: Tổng quan Công nghệ phần mềm - Phạm Thị Vương
1. Lập trình viên đưa ra đoạn mã mà anh ta
tin rằng không hề có lỗi
2. Kiểm tra chất lượng sản phẩm, phát hiện
20 lỗi.
3. Lập trình viên sửa 10 lỗi và gửi e-mail tới
phòng Thử nghiệm sản phẩm về 10 "vấn
đề" còn lại mà anh ta nhất định cho rằng
không phải là lỗi.
46 trang |
Chia sẻ: huongthu9 | Lượt xem: 446 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Công nghệ phần mềm - Chương 1: Tổng quan Công nghệ phần mềm - Phạm Thị Vương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PTV
Tổng quan
Công nghệ phần mềm
GVLT: ThS Phạm Thi Vương
Tài liệu tham khảo
• Trần Minh Triết, bài giảng Nhập môn CNPM, ĐH
KHTN, ĐH QG TPHCM.
• Nguyễn Tấn Trần Minh Khang, bài giảng Nhập
môn CNPM, ĐH KHTN, ĐH QG TPHCM.
• Nguyễn Văn Vỵ, bài giảng Kỹ nghệ phần mềm,
ĐH Công nghệ, ĐH QG HN.
• Nguyễn Việt Hà, bài giảng Kỹ nghệ phần mềm,
ĐH Công nghệ, ĐH QG HN.
• Vũ Diệu Hương, bài giảng Kỹ nghệ phần mềm,
ĐH Công nghệ, ĐH QG HN.
17-Sep-09 SE - PTV 2
Nội dung
Một số khái niệm cơ bản
Công nghệ phần mềm
Quy trình công nghệ phần mềm
Add Your Text in here
Add Your Text in here
17-Sep-09 3SE - PTV
Khái niệm về phần mềm
• Ví dụ: xét một số phần mềm sau
– Phần mềm quản lý học sinh cấp 3.
– Phần mềm quản lý thư viện.
– Phần mềm quản lý nhà sách.
– Phần mềm quản lý khách sạn.
– Phần mềm quản lý phòng mạch tư.
– Phần mềm quản lý sổ tiết kiệm.
– Phần mềm quản lý bán vé chuyến bay.
– Phần mềm xếp thời khóa biểu
– .
17-Sep-09 SE - PTV 4
Khái niệm về phần mềm
• Được xem xét ở hai góc độ
– Góc nhìn người dùng
– Góc nhìn chuyên viên tin học
17-Sep-09 SE - PTV 5
Phần mềm là gì?
Khái niệm về phần mềm
• Phần mềm dưới góc nhìn của người sử dụng
– Chương trình thực thi được trên máy tính hoặc các
thiết bị chuyên dụng khác
– Nhằm hỗ trợ cho các nhà chuyên môn trong từng lĩnh
vực chuyên ngành thực hiện tốt hơn các thao tác
nghiệp vụ của mình
17-Sep-09 SE - PTV 6
Khái niệm về phần mềm
• Môi trường triển khai phần mềm:
– Máy tính: Desktop, Laptop, Tablet PC
– Thiết bị chuyên dụng:
• Thiết bị di động: PDA, Pocket PC, ĐTDĐ
• Các thiết bị chuyên dụng khác: set-top box, router,...
• Hỗ trợ làm tốt hơn các thao tác nghiệp vụ:
– Tin học hóa nghiệp vụ hiện đang làm thủ công
– Cải tiến chức năng nghiệp vụ hiện đang được
thực hiện trên máy tính
– Đề ra, xây dựng và triển khai chức năng nghiệp vụ
mới
17-Sep-09 SE - PTV 7
Khái niệm về phần mềm
• Phần mềm dưới góc nhìn của chuyên viên Tin học
– Đây là một hệ thống bao gồm 3 thành phần cơ bản:
• Thành phần giao tiếp
• Thành phần xử lý
• Thành phần lưu trữ
Cần được xây dựng để thực hiện theo yêu cầu của
người sử dụng
17-Sep-09 SE - PTV 8
Khái niệm về phần mềm
• Thành phần giao tiếp (Giao diện):
– Cho phép nhập/xuất thông tin cùng với hình thức
trình bày/giao tiếp tương ứng.
– Nhằm đưa thông tin từ thế giới thực bên ngoài phần
mềm (người sử dụng, các thiết bị, phần mềm khác)
vào bên trong, hoặc ngược lại
– Cho phép tiếp nhận các yêu cầu về việc sử dụng
phần mềm từ người sử dụng, từ các thiết bị thu thập
dữ liệu, hoặc từ các phần mềm khác
– Cho phép trình bày các kết quả của việc thực hiện
các yêu cầu cho người dùng hoặc điều khiển hoạt
động các thiết bị điều khiển.
17-Sep-09 SE - PTV 9
Khái niệm về phần mềm
• Thành phần xử lý:
– Kiểm tra tính hợp lệ của thông tin nguồn được
cung cấp từ người dùng theo các quy định ràng
buộc trong thế giới thực
– Tiến hành xử lý cho ra kết quả mong đợi theo
quy định tính toán có sẵn trong thế giới thực
– Hoặc tiến hành xử lý theo thuật giải tự đề xuất
17-Sep-09 SE - PTV 10
Khái niệm về phần mềm
• Thành phần xử lý(tt):
– Việc xử lý dựa trên thông tin nguồn từ người sử dụng
cung cấp
– Việc xử lý cho ra kết quả có thể dùng để xuất cho
người dùng xem qua thành phần giao diện, hay lưu
trữ lại qua thành phần lưu trữ, hoặc cả hai
17-Sep-09 SE - PTV 11
Khái niệm về phần mềm
• Thành phần xử lý(tt):
– thành phần xử lý là hệ thống chuyên xử lý
tính toán, biến đổi dữ liệu
• Dùng thông tin nguồn từ thành phần giao diện
(chức năng nhập) hay thành phần dữ liệu (chức
năng đọc)
• Kiểm tra tính hợp lệ (chức năng kiểm tra) và sau
đó tiến hành xử lý (chức năng xử lý) – nếu cần
thiết
• Cho ra kết quả sẽ được trình bày thông qua thành
phần giao diện (chức năng xuất) hoặc lưu trữ lại
trong thành phần dữ liệu (chức năng ghi)
17-Sep-09 SE - PTV 12
Khái niệm về phần mềm
• Thành phần lưu trữ (thành phần dữ liệu)
– Cho phép lưu trữ lại (chức năng ghi) các kết quả
đã xử lý
– Cho phép truy xuất lại (chức năng đọc) các dữ
liệu đã lưu trữ phục vụ cho các hàm xử lý tương
ứng
thành phần dữ liệu là hệ thống chuyên đọc ghi dữ
liệu cùng với mô hình tổ chức lưu trữ dữ liệu tương
ứng
– Mục tiêu chính của thành phần này là chuyển đổi
dữ liệu giữa bộ nhớ chính và bộ nhớ phụ
17-Sep-09 SE - PTV 13
Khái niệm về lớp phần mềm
• Phân lớp theo mục đích sử dụng:
– Lớp phần mềm quản lý học sinh
– Lớp phần mềm đánh cờ
– Lớp phần mềm giải bài tập
– Phần mềm soạn thảo văn bản
– ...
17-Sep-09 SE - PTV 14
Khái niệm về lớp phần mềm
• Phân lớp theo mục tiêu tạo lập
– Lớp phần mềm theo hợp đồng
– Lớp phần mềm khung
– Lớp phần mềm đóng gói
17-Sep-09 SE - PTV 15
Khái niệm về lớp phần mềm
• Lớp phần mềm
– Lớp phần mềm là hệ thống các phần mềm
trên cùng một lĩnh vực hoạt động nào đó
– Do cùng lĩnh vực hoạt động nên các phần
mềm cùng lớp thường có cấu trúc và chức
năng tương tự nhau
17-Sep-09 SE - PTV 16
Mục tiêu của ngành Công nghệ Phần mềm
• Xây dựng được phần mềm có chất lượng
• Dễ dàng xây dựng phần mềm mới từ các phần
mềm có sẵn cùng lớp
17-Sep-09 SE - PTV 17
18
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính đúng đắn
Tính đúng đắn:
- Đầy đủ
- Chính xác
Dưới góc nhìn của Người sử dụng
19
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tiện dụng
Tính tiện dụng:
- Dễ học
- Dễ sử dụng
- Giao diện trực quan
- Tự nhiên
Tính đúng đắn
Dưới góc nhìn của Người sử dụng
20
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính hiệu quả
Tính hiệu quả:
- Tối ưu sử dụng CPU*
- Tối ưu sử dụng bộ nhớ*
- Tối ưu sử dụng thiết bị
Tính đúng đắn
Tính tiện dụng
Dưới góc nhìn của Người sử dụng
21
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tương thích
Tính tương thích:
- Import/Export dữ liệu
- Tương tác
Tính đúng đắn
Tính tiện dụng
Tính hiệu quả
Dưới góc nhìn của Người sử dụng
22
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tiến hóa
Tính tiến hóa: một trong
các tính chất quan trọng
nhất được quan tâm xem
xét trong ngành Công
nghệ Phần mềm
Tính đúng đắn
Tính tiện dụng
Tính hiệu quả
Tính tương thích
Dưới góc nhìn của Người sử dụng
23
Chất lượng phần mềm
Phần mềm
Con người
Phần cứng
Phần mềm khác
Tính tiến hóa
Tính đúng đắn
Tính tiện dụng
Tính hiệu quả
Tính tương thích
Dưới góc nhìn của Người sử dụng
Chất lượng phần mềm
việc kiểm tra các thành phần phù hợp với yêu cầu
phần mềm là dễ dàng nhất có thể được
khi có sự không phù hợp (so với yêu cầu) trong quá
trình kiểm tra một thành phần, việc phát hiện chính
xác “vị trí lỗi” và sửa lỗi là nhanh nhất có thể được
khi cần nâng cấp, cải tiến một thành phần (theo yêu
cầu mới), việc cập nhật phần mềm là nhanh, chính
xác nhất có thể được và đặc biệt là cố gắng hạn chế
ảnh hưởng đến các thành phần khác
Tính dễ kiểm tra
Tính dễ sửa lỗi
Tính dễ bảo trì
17-Sep-09 24SE - PTV
Góc
nhìn
Chuyên
viên
tin
học
Chất lượng phần mềm
các thành phần đã thực hiện có thể dùng lại
trong các phần mềm cùng lớp (hoặc cùng lĩnh
vực) với thời gian và công sức ít nhất có thể
được
Tính tái sử dụng
17-Sep-09 25SE - PTV
Góc
nhìn
Chuyên
viên
tin
học
Phát triển của Công nghệ phần mềm
• Hệ thống đa chương trình và đa nguời dùng
• Bắt đầu cuộc “khủng hoảng” phần mềm
Giai đoạn 2 (từ giữa 1960 đến giữa 1970)
Giai đoạn 3 (từ giữa 1970 đến giữa 1980)
Xử lý theo lô, xử lý tập trung, ít xử lý phân tán,
ít sửa đổi phần mềm
Giai đoạn 1 (1950 – giữa 1960)
17-Sep-09 26SE - PTV
Phát triển của Công nghệ phần mềm
• Phần cứng ngày càng phát triển
• Hệ thống phần mềm ngày càng đa dạng, phong phú,
xử lý ngày càng phức tạp, công nghệ ngày càng phát
triển
• Sự phát triển và sử dụng rộng rãi máy tính cá nhân
• Sự phát triển của các công ty phần mềm
Giai đoạn 4 (từ giữa 1980 đến nay)
Giai đoạn 3 (từ giữa 1970 đến giữa 1980)
17-Sep-09 27SE - PTV
Cuộc khủng hoảng phần mềm
• Số lượng các phần mềm tăng vọt (do sự phát triển
của phần cứng: tăng khả năng, giá thành hạ)
• Có quá nhiều khuyết điểm trong các phần mềm
được dùng trong xã hội:
– Thực hiện không đúng yêu cầu (tính toán sai,
không ổn định)
– Thời gian bảo trì nâng cấp quá lâu, chi phí cao,
hiệu quả thấp
– Khó sử dụng, Thực hiện chậm
– Không chuyển đổi dữ liệu giữa các phần mềm
–
17-Sep-09 SE - PTV 28
Cuộc khủng hoảng phần mềm
• Một số kết luận
– Việc tăng vọt số lượng phần mềm là điều hợp
lý và sẽ còn tiếp diễn
– Các khuyết điểm của phần mềm có nguồn gốc
chính từ phương pháp, cách thức và quy trình
tiến hành xây dựng phần mềm
• Cảm tính: mỗi người theo một phương pháp riêng
• Thô sơ, đơn giản: chỉ tập trung vào việc lập trình mà
ít quan tâm đến các công việc cần làm khác (khảo
sát hiện trạng, phân tích yêu cầu, thiết kế)
• Thủ công: còn thiếu các công cụ hỗ trợ quy trình
phát triển
17-Sep-09 SE - PTV 29
Công nghệ phần mềm
• Công nghệ phần mềm là ngành khoa học
nghiên cứu về việc xây dựng các phần mềm có
chất lượng cao trong thời gian và chi phí thực
hiện hợp lý
17-Sep-09
SE - PTV
30
Phương pháp Công cụ Quy trình
Công nghệ phần mềm
Công nghệ phần mềm
• Các đối tượng nghiên cứu của Công nghệ
phần mềm
– Quy trình công nghệ phần mềm
• Hệ thống các giai đoạn mà quá trình phát triển
phần mềm phải trải qua
– Phương pháp phát triển phần mềm
• Hệ thống các hướng dẫn cho phép từng bước
thực hiện một giai đoạn nào đó trong quy trình
phần mềm
17-Sep-09 SE - PTV 31
Công nghệ phần mềm
• Các đối tượng nghiên cứu của Công nghệ
phần mềm
• Công cụ và Môi trường phát triển phần mềm
– Hệ thống các phần mềm trợ giúp trong lĩnh vực xây
dựng phần mềm
– Hỗ trợ các chuyên viên tin học trong các bước xây dựng
phần mềm theo một phương pháp nào đó với một quy
trình được chọn trước
17-Sep-09 SE - PTV 32
Qui trình Công nghệ phần mềm
33
Phần mềm
Yêu cầu phần mềm
Lập trình
Thiết kế
Lập trình
Phân tích
Thiết kế
Lập trình
Phân tích
Thiết kế
Lập trình
Kiểm tra
1
2 3
4
Qui trình Công nghệ phần mềm
• Phân tích: Mô tả mức phát thảo các thành
phần của phần mềm (đã có yêu cầu)
• Thiết kế: Mô tả mức chi tiết các thành
phần của phần mềm (đã phân tích)
• Lập trình: Thực hiện các thành phần của
phần mềm (đã thiết kế)
• Kiểm tra: kiểm chứng các thành phần của
phần mềm (đã thực hiện)
17-Sep-09 SE - PTV 34
35
Quy trình thác nước
Xác định
Yêu cầu
Phân tích
Thiết kế
Cài đặt
Kiểm chứng
Triển khai
Khảo sát
Hiện trạng
Waterfall
Các hoạt động
trong thế giới
thực
Các yêu cầu
Mô hình Thế giới thực
Mô hình phần mềm
Phần mềm
Phần mềm
“chất lượng”
36
Quy trình thác nước cải tiến
Xác định
Yêu cầu
Phân tích
Thiết kế
Cài đặt
Kiểm chứng
Triển khai
Khảo sát
Hiện trạng
37
Quy trình Prototype
Xác định
yêu cầu
“Thiết kế
nhanh”
Xây dựng
Prototype
Đánh giá và
xác định rõ yêu cầu
Phát triển
phần mềm
38
Quy trình xoắn ốc
Tiếp xúc
Khách hàng
Lập kế hoạch
Phân tích rủi ro
Phân tích, thiết kế
Xây dựng
và triển khai
Đánh giá
của khách hàng
39
Quy trình phát triển lặp
Chúng ta có thể chia nhỏ phần mềm ra làm nhiều
giai đoạn thay vì làm một lần từ đầu đến cuối.
Vòng đời phần mềm
1. Lập trình viên đưa ra đoạn mã mà anh ta
tin rằng không hề có lỗi
2. Kiểm tra chất lượng sản phẩm, phát hiện
20 lỗi.
3. Lập trình viên sửa 10 lỗi và gửi e-mail tới
phòng Thử nghiệm sản phẩm về 10 "vấn
đề" còn lại mà anh ta nhất định cho rằng
không phải là lỗi.
17-Sep-09 SE - PTV 40
Vòng đời phần mềm(tt)
4. Phòng thử nghiệm sản phẩm e-mail lại rằng 5
trong số 10 đoạn sửa lỗi không hoạt động và
đính kèm danh sách 15 lỗi mới.
5. Phòng tiếp thị gởi thông báo rằng họ đã hoàn
tất khâu quảng bá cho sản phẩm. Giám đốc gọi
điện xuống hỏi về tiến độ công việc và củng cố
tinh thần "chiến sỹ". Phòng phát hành cử nhân
viên đến nhận đĩa nguồn phần mềm. Phòng
tiếp thị thông báo trên truyền hình và báo chí
về việc hoãn lại ngày phát hành sản phẩm vài
tuần...
17-Sep-09 SE - PTV 41
Vòng đời phần mềm(tt)
6. Ơn trời! Cuối cùng sản phẩm cũng được
phát hành
7. Trong vòng một tuần, người sử dụng
phát hiện ra 137 lỗi mới.
8. Lập trình viên phụ trách phát triển sản
phẩm đã xin nghỉ phép
17-Sep-09 SE - PTV 42
Vòng đời phần mềm(tt)
9. Một nhóm "cứu nạn" gồm nhiều lập trình
viên kỳ cựu được thành lập khẩn cấp.
Sau một tuần làm việc cật lực, họ đã
"thanh toán" hết 137 lỗi, nhưng lại được
thông báo về 456 lỗi mới.
10. Mọi người tổng kết được 783 lỗi trong
chương trình
17-Sep-09 SE - PTV 43
Vòng đời phần mềm(tt)
11.Giám đốc ngồi tại bàn giấy xem xét các
báo cáo và quyết định thuê một lập trình
viên mới toanh để xây dựng lại phần
mềm từ đống đổ nát ban đầu
17-Sep-09 SE - PTV 44
Vòng đời phần mềm(tt)
• Lập trình viên mới đưa ra đoạn mã mà
anh ta tin rằng không hề có lỗi.
• Kiểm tra chất lượng sản phẩm, phát hiện
20 lỗi.
• ..
17-Sep-09 SE - PTV 45
PTV
Thank You!
Các file đính kèm theo tài liệu này:
- giao_trinh_cong_nghe_phan_mem_chuong_1_tong_quan_cong_nghe_p.pdf