Bài giảng Đảm bảo chất lượng phần mềm - Vấn đề quản lý chất lượng trong công nghệ phần mềm - Trần Cao Đệ

Tóm tắt Bài giảng Đảm bảo chất lượng phần mềm - Vấn đề quản lý chất lượng trong công nghệ phần mềm - Trần Cao Đệ: ...ào PP luận và nguyên tắc thực hành để 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 • Phát triển mềm không phải là chế tạo, lắp ráp • Sản phẩm phần mềm - Sản phẩm trí tuệ - Vô hình - Thời gian ...ậ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. - Cơ sở để kiểm thử-chấp nhận. 18 Ba bước trong đặc tả yêu cầu user elicit... Use Case - Collaboration - Sequence - Statechart - Component - Activity 25 Cài đặt • Cài đặt - Viết code - Kiểm thử đơn vị • Viết code - Ngôn ngữ lập trình - 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 ...

pdf32 trang | Chia sẻ: havih72 | Lượt xem: 264 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Đảm bảo chất lượng phần mềm - Vấn đề quản lý chất lượng trong công nghệ phần mềm - Trần Cao Đệ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
PGS. TS. Trần Cao Đệ
Bộ môn Công nghệ phần mềm
Khoa CNTT&TT – Đại học Cần Thơ
Năm 2013
Đả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
CÔNG NGHỆ PHẦN MỀM là gì?
3PHẦN MỀM
• Phần mềm là gì?
- 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,
• Chất lượng phần mềm như thế nào? Phần mềm kém 
chất lượng có tác hại gì?
4Lỗi phần mềm
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
6Lỗi phần mềm (tt)
• Máy xạ trị chế tạo bởi 
Canada + Pháp.
• 1985-1987: Ở 
Washington DC, KTV 
thao tác lỗi, máy hào 
phóng cho quá liều bình 
thường ít nhất với 6 
bệnh nhân. 
• Kết quả:
– Chết 3
– Số còn lại ngoắc ngoải!
Therac – 25
7Lỗi phần mềm (tt)
• Sân bay Denver (USA), 1994
• Bugs trong hệ thống quản lí hành lí (Baggage Handling 
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. 
• Tổng số thiệt hại > số tiền đầu tư cho dự án (234M)
• Nếu tính tổng số tiền phải chi để thao tác bằng tay, thiệt 
hại lên đến hơn 3G $US
8Lỗi phần mềm (tt)
• Ở VN: 
- 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
9Tại sao phần mềm kém chất lượng?
• Câu hỏi thảo luận: nêu 10 nguyên nhân dẫn đến phần 
mềm kém chất lượng
• Sắp xếp 10 nguyên nhân đó theo thứ tự: quan trọng 
nhất  ít quan trọng nhất
• Tổng hợp của cả lớp để chọn ra 10 nguyên nhân chung 
nhất
10
Các nguyên nhân gây lỗi phần mềm
• Faulty requirement definition.
• Client-developer communication failures.
• Deliberate deviations from software requirements.
• Logical design errors.
• Coding errors.
• Non-compliance with documentation and coding instructions.
• Shortcomings of the testing process.
• User interface and procedure errors.
• Documentation errors.
11
CÔNG NGHỆ PHẦN MỀM
• Thuật ngữ Software Engineering 
• CNPM là: (1) áp dụng cách tiếp cận có hệ thống, khoa 
học và định lượng vào phát triển, vận hành và bảo trì 
phần mềm; (2) nghiên cứu các cách tiếp cận nêu trên 
[IEEE93]. 
• CNPM là việc thiết và dùng các nguyên tắc công nghệ 
đú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]. 
12
CÔNG NGHỆ PHẦN MỀM (tt)
• CNPM tập trung vào các chương trình lớn, phức tạp, 
yêu cầu cao về chất lượng 
• CNPM tập trung vào PP luận và nguyên tắc thực hành 
để 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
• Phát triển mềm không phải là chế tạo, lắp ráp 
• Sản phẩm phần mềm 
- Sản phẩm trí tuệ
- Vô hình
- Thời gian dài, kinh phí lớn, outsource, third party.
- Không ngừng tiến triển 
13
Vấn đề quản lí trong CNPM
• Mục tiêu: thỏa mãn yêu cầu của khách hàng
- Giao hàng (phần mềm) đúng hạn
- Sản phẩm có chất lượng
- Chi phí trong khung ngân sách đã dự kiến 
• Quản lí dự án phát triển phần mềm
- Lập kế hoạch phát triển phần mềm
 Qui trình phần mềm/chu trình sống 
 Yêu cầu phần mềm
 Kế hoạch nhân sự
 Kế hoạch chất lượng
 Ước lượng giá thành 
 Quản lí rủi ro
- Kiểm soát kế hoạch phát triển phần mềm
14
Phạm vi của CNPM
• Theo Pressman 
- Điều hành và theo dõi dự án phần mềm
- Qui trình phần mềm
- Xem xét các kỹ thuật hình thức
- Đảm bảo chất lượng phần mềm
- Công tác tài liệu 
- Sử dụng lại
- Đo lường phần mềm
- Quản lí rủi ro dự án phần mềm
15
Qui 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
- Phân tích-thiết kế
- Cài đặt
- Kiểm thử 
• Các mô hình về tiến trình 
- Mô hình xây dựng và hiệu chỉnh 
- Mô hình thác nước
- Mô hình định khung nhanh
- Mô hình xoắn ốc
- Mô hình hướng đối tượng,
16
Kế 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%
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.
- Cơ sở để kiểm thử-chấp nhận.
18
Ba bước trong đặc tả yêu cầu
user
elicitation
User requirements
Problem 
domain
Domain knowledge
specification validation
knowledge
Request more knowledge
Requirements model
validation results
Domain knowledge
User feedback
Models to be validated 
by user
19
Phân tích (Analyze)
• Phân tích là bước trung gian giữa đặc tả và thiết kế:
- Giai đoạn cuối của đặc tả 
- Giai đoạn đầu của thiết kế 
• Mục đích:
- 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)
• Kết quả của phân tích: xây dựng mô hình hệ thống
- ERD
- DFD
- State diagram
20
Kế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ệ
21
Thiết kế (Design)
• Thiết kế là giai đoạn chuyển từ đặc tả yêu cầu sang xây 
dựng
• Là quá trình chia nhỏ hệ thống thành các thành phần, 
xác lập quan hệ giữa các thành phần và mô tả chi tiết 
từng thành phần ở mức có thể xây dựng được 
• Thiết kế = chỉ ra giải pháp để xây dựng
- Có thể không phải tốt nhất
- Có thể không phải duy nhất
- NHƯNG: NÓ LÀ CÁI TỐI ƯU NHẤT - CÂN BẰNG CÁC 
YÊU CẦU ĐỐI LẬP NHAU. 
• Thiết kế kiến trúc (software architecture design)
• Thiết kế chi tiết (detailed design)
Design pattern: 
dùng lại ý tưởng 
& các mẫu thiết kế
22
Thiết kế kiến trúc
Requirements (from customer)
Req 1
Req 2
Req n
Conceptual System
A
n
a
lysis
Req 1..i
Req i..j
Req j..n
A
rch
. B
re
a
kd
o
w
n
Subsys. 1
Subsys. 2
Subsys. 3
23
Thiết kế chi tiết
• Module 
• Giao diện người dùng
• Giải thuật
24
OOD
• UML Diagrams
- Class
- Use Case
- Collaboration
- Sequence
- Statechart
- Component
- Activity
25
Cài đặt
• Cài đặt 
- Viết code 
- Kiểm thử đơn vị
• Viết code
- Ngôn ngữ lập trình 
- 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
26
Kiể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 
27
Kiểm thử # chạy thử 
• Tìm các test cases phù hợp 
• Khả thi: về thời gian, tiền của, kỹ thuật.
• Có thể đưa ra quyết định chấp nhận SP hay không dựa 
trên test
• Đánh giá khả năng gây lỗi, ảnh hưởng của lỗi và 
nguyên nhân gây lỗi.
• “Phán xét” được khi nào test đã đủ để ngưng test 
• “Đo được” hoặc đánh giá được
- Hiệu quả của test
- Hiệu quả của lập trình viên
- Hiệu quả của dự án – chất lượng phần mềm
28
Cá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.
Kiểm thử hình chữ V
Hế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ơ
Email: tcde@cit.ctu.edu.vn
Phone: 0710.831.301 # 228
Yê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ọ
- Quản lí danh mục các nhà trọ (ở nhiều tỉnh thành)
- 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)
- Tìm kiếm nhà trọ 
- 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,) 
- Quản lí yêu cầu tìm chỗ trọ
- 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) 
- Quản lí thu phí: 
- Người dùng trả phí qua tài khoản NH và thông báo cho admin (việc này ngoài 
hệ thống). Admin sau khi nhận được sẽ cung câp thông tin nhà trọ cho người 
dùng qua email (bên ngoài hệ thống) 
Công việc cần thực hiện 
- Viết đặc tả PM
- Thiết kế các chức năng phù hợp với yêu cầu
- Viết kế hoạch dự án + KHĐBCL 
- Viết PM demo
- Báo cáo viết (*.doc) cho tất cả các phần trên
- Báo cáo nói (PPT) và Demo chương trình 

File đính kèm:

  • pdfbai_giang_dam_bao_chat_luong_phan_mem_van_de_quan_ly_chat_lu.pdf