Vấn đề quản lí chất lượng trong công nghệ phần mềm

- 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

pdf32 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1050 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Vấn đề quản lí chất lượng trong công nghệ phần mềm, để xem tài liệu hoàn chỉnh 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

Các file đính kèm theo tài liệu này:

  • pdfba_i_gia_ng_da_m_ba_o_cha_t_luo_ng_pha_n_me_m1_sqa_la_gi_sqa_course_tcde_7627.pdf
Tài liệu liên quan