PHẦN MỀM- Là hệ thống gồm có chương trình máy tính, tài liệu, dữ liệu và qui trình vận hành các chương trình đó để vận hành hệ thống máy tính - Phần mềm không chỉ là các chương trình má
Trang 1PGS TS Trần Cao Đệ
Bộ môn Công nghệ phần mềm Khoa CNTT&TT – Đại học Cần Thơ
Đảm bảo chất lượng phần mềm
Software Quality Assurance
VẤN ĐỀ QUẢN LÍ CHẤT LƯỢNG
TRONG CÔNG NGHỆ PHẦN MỀM
Trang 2CÔNG NGHỆ PHẦN MỀM là gì?
Trang 3PHẦN MỀM
- Là hệ thống gồm có chương trình máy tính, tài liệu, dữ
liệu và qui trình vận hành các chương trình đó để vận hành hệ thống máy tính
- Phần mềm không chỉ là các chương trình máy tính mà
còn bao gồm cả các tài liệu cần thiết cho việc phát triển
và bảo trì các chương trình đó.
- Ngày nay các phần mềm là phần không thể thiếu trong
hệ thống tác nghiệp tại các cơ quan, xí nghiệp
- Phần mềm có mặt khắp nơi: điện thoại di động, máy
lạnh, máy giặt, đồ chơi,…
Trang 4Lỗi phần mềm
Trang 5Lỗi phần mềm (tt)
• Hình ảnh tên lửa Ariane 5 nổ tung ngày 4/6/1996 sau vài giây được phóng lên, thiệt hại 500.000.000$US
• Image source: European Space Agency
Trang 6bệnh nhân
– Chết 3 Therac – 25
Trang 7Lỗi phần mềm (tt)
System) đã làm cho hệ thống chậm tiến độ 16 tháng, thiệt hại mỗi ngày 1.000.000 $US
hại lên đến hơn 3G $US
Trang 8Lỗi phần mềm (tt)
- Chưa nghe nói có phần mềm nào kém chất lượng
- SV có thể thêm ví dụ vào đây
Trang 9Tại sao phần mềm kém chất lượng?
Trang 10Các nguyên nhân gây lỗi phần mềm
Trang 11đúng đắn để thu được phần mềm một cách kinh tế nhất
và chạy hiệu quả trên các máy thật [NATO68]
Trang 12CÔNG NGHỆ PHẦN MỀM (tt)
yêu cầu cao về chất lượng
để phát triển phần mềm chuyên nghiệp
- Làm việc có tổ chức khoa học
- Đội ngũ KS/lập trình viên đông, chuyên môn hóa
- Tác phong chuyên nghiệp
Trang 15Qui trình phần mềm
• Qui trình phần mềm
- Các bước tiến hành một phần mềm
- Mô hình tiến trình
• Các bước chính trong tiến trình phát triển phần mềm
- Tìm hiểu yêu cầu
Trang 16Kế hoạch về nhân sự/nhân lực
xác định yêu cầu, 10%
đặc tả, 10%
thiết kế, 15%
cài đặt, 20%
kiểm thử, 45%
Trang 17Đặc tả yêu cầu phần mềm
• Các yêu cầu của người dùng về hệ thống tương lai
- Chỉ tập trung vào what và bỏ qua how
- Là hợp đồng (contract) giữa khách hàng và nhà phát triển.
- Phải bao gồm các ràng buộc mà sản phẩm phải đáp ứng
• Nội dung đặc tả
- Yêu cầu chức năng
- Yêu cầu không chức năng: hiệu quả của hệ thống, độ tin cậy, tài liệu
người dùng, tập huấn, giá thành,…
• Kết quả của đặc tả: tài liệu đặc tả yêu cầu
- Phản ánh sự hiểu biết chung về vấn đề cần giải quyết giữa người
phân tích và khách hàng.
- Cơ sở để nghiên cứu khả thi.
Trang 18Ba bước trong đặc tả yêu cầu
user
elicitation
User requirements
Problem Domain knowledge
specification validation knowledge
Request more knowledge
Trang 19Phân tích (Analyze)
- Giai đoạn cuối của đặc tả
- Giai đoạn đầu của thiết kế
- Làm rõ thêm các yêu cầu
- Trình bày các yêu cầu bằng các mô hình phân tích
- Định nghĩa rõ các thuật ngữ (từ điển dữ liệu)
Trang 20Kết quả của quá trình phân tích yêu cầu
Một ví dụ: kết quả theo phân tích truyền thống
Mô hình thực thể quan hệ
Trang 21- Có thể không phải duy nhất
YÊU CẦU ĐỐI LẬP NHAU
Trang 22Thiết kế kiến trúc
Requirements (from customer)
Req 1 Req 2
… Req n
Trang 23Thiết kế chi tiết
Trang 25- Sử dụng thư viện / Nguồn mở
- Hình thức chuẩn của code
- Refactoring
Cải tiến thiết kế và code đã có một cách an toàn
Viết lại source code để cải tiến thiết kế và tính dễ đọc
Trang 26Kiểm thử
• Kiểm thử phần mềm là kiểm tra hành vi động
của chương trình bằng một tập hợp hữu hạn
các trường hợp (test case) để xác nhận hành vi mong muốn đã được đặc tả
- Verification: do right things
- Validation: do things right
Trang 27Kiểm thử # chạy thử
trên test
nguyên nhân gây lỗi
- Hiệu quả của test
- Hiệu quả của lập trình viên
Trang 28Các loại kiểm thử
• Unit Test: test từng thành phần đơn vị để chỉ ra nó thỏa mãn
chức năng đặc tả và/hoặc để chỉ ra cấu trúc của nó phù hợp với cấu trúc thiết kế
• Integration Test: test để chỉ ra các mảnh/ thành phần của phần
mềm được kết nối nhau đúng đắn để tạo ra thành phần lớn hơn.
• System Test: test toàn bộ hệ thống trong môi trường hoạt động
của nó
• Acceptance Test : test toàn bộ hệ thống và tập trung vào yêu cầu
của người dùng nhằm chỉ ra sự thuận tiện để khai thác các chức năng của hệ thống.
Trang 29Kiểm thử hình chữ V
Trang 30Hết chương!
Liên hệ:
TS Trần Cao Đệ
Bộ môn Công nghệ Phần mềm Khoa CNTT và TT – ĐH Cần Thơ
Phone: 0710.831.301 # 228
Trang 31Yêu cầu đồ án
Xây dựng phần mềm: ứng dụng web hỗ trợ quản lí và tìm kiếm nhà trọ
- Admin, Chủ nhà trọ: Đăng kí thành viên, cập nhật thông tin về nhà trọ (tên, địa chỉ, sđt, hình ảnh,…)
- Admin, chủ nhà trọ: cập nhật thông tin trạng thái phòng trọ (trạng thái, giá cả, hình ảnh)
- Người dùng có thể nêu các yêu cầu: địa bàn, giá, loại phòng (số người), điều kiện khác (nấu ăn, nhà VS,…)
- Người dùng có thể đăng kí như là thành viên và gởi yêu cầu tìm chỗ trọ tới cho admin Admin tìm chỗ trọ và cung câp thông tin cho người dùng (có trả phí qua tài khoản)
Trang 32Công việc cần thực hiện