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
Analysis
Req 1.i
Req i.j
Req j.n
Arch. Breakdown
Subsys. 1
Subsys. 2
Subsys. 32
32 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 441 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Đảm bảo chất lượng phần mềm - Chương 1: Vấn đề quản lí chất lượng trong công nghệ phần mềm - Trần Cao Đệ, để 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:
- bai_giang_dam_bao_chat_luong_phan_mem_bai_2_van_de_quan_li_c.pdf