Sau cuộc khủng hoảng trong ngành công nghệ thông tin vào đầu những năm 2000, đến nay, công nghệ sản xuất phần mềm trên thế giới và nhất là Việt Nam đang tiến những bước tiến mạnh mẽ hơn.Vượt qua cuộc khủng hoảng này, ngoài những kinh nghiệm trong kinh doanh, các công ty tin học Việt Nam nhận thức được rằng quy trình sản xuất phần mềm của chính công ty họ cần được nâng cấp vớimục tiêu đầu tiên là nâng cao chất lượng, gia tăng tính chuyên nghiệp trong sản xuất phần mềm.
104 trang |
Chia sẻ: vietpd | Lượt xem: 1410 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu về quản lý yêu cầu và kiểm thử tại phòng phát triển phần mềm trung tâm tin học trường đại học khoa học tự nhiên, xây dựng phần mềm hỗ trợ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KH
OA
C
NT
T –
Đ
H
KH
TN
1
Lời cám ơn
Lời đầu tiên, chúng con xin gửi đến cha mẹ lòng biết ơn, sự tôn kính của chúng
con. Cha mẹ đã sinh dưỡng và không ngại khó khăn tạo mọi điều kiện tốt nhất cho
chúng con có được ngày hôm nay.
Chúng em xin chân thành cám ơn thầy Trần Đan Thư, thầy Nguyễn Trọng Tài
đã tận tâm hướng dẫn chúng em, giúp đỡ chúng em hoàn thành đề tài này.
Chúng em cũng xin cám ơn các anh chị làm việc trong phòng phát triển phần
mềm Trung tâm Tin học trường Đại học Khoa học Tự nhiên đã sẵn sàng giúp đỡ chúng
em, cung cấp các thông tin cho chúng em trong quá trình khảo sát. Chúng em cũng xin
cám ơn các thầy cô, cán bộ giảng viên trẻ đã nhiệt tình đóng góp những kinh nghiệm, ý
kiến quý báu cho chúng em.
Chúng em xin gửi lời cám ơn tất cả các quý thầy cô đã giảng dạy, cung cấp cho
chúng em vốn kiến thức quý báu suốt những năm học vừa qua.
Chúng em cám ơn khoa Công nghệ thông tin trường Đại học Khoa học Tự nhiên
đã tạo điều kiện cho chúng em thực hiện đề tài này.
Chúng tôi cũng xin cám ơn các bạn đã nhiệt tình giúp đỡ khi chúng tôi vướng
phải những khó khăn, động viên chúng tôi trong suốt quá trình thực hiện đề tài luận
văn tốt nghiệp này.
Mặc dù chúng em đã cố gắng rất nhiều để hoàn thành tốt luận văn, nhưng chắc
chắn không tránh khỏi những thiếu sót, chúng em rất mong được sự cảm thông và tận
tình giúp đỡ của quý thầy cô.
Tp. Hồ Chí Minh, 07/2004
Nhóm sinh viên thực hiện
Nguyễn Khánh Chi- Tăng Nguyễn Trung Hiếu
KH
OA
C
NT
T –
Đ
H
KH
TN
2
Lời mở đầu
Sau cuộc khủng hoảng trong ngành công nghệ thông tin vào đầu những năm
2000, đến nay, công nghệ sản xuất phần mềm trên thế giới và nhất là Việt Nam đang
tiến những bước tiến mạnh mẽ hơn. Vượt qua cuộc khủng hoảng này, ngoài những
kinh nghiệm trong kinh doanh, các công ty tin học Việt Nam nhận thức được rằng quy
trình sản xuất phần mềm của chính công ty họ cần được nâng cấp với mục tiêu đầu tiên
là nâng cao chất lượng, gia tăng tính chuyên nghiệp trong sản xuất phần mềm.
Một điều không thể tranh cãi , quy trình đóng một vai trò rất quan trọng trong
việc sản xuất phần mềm. Hiện nay có rất nhiều quy trình sản xuất phần mềm như Quy
trình RUP, Quy trình xoắc ốc, Quy trình thác nước.., nhưng điều cốt lõi nhất là ứng
dụng những quy trình đó như thế nào và ứng dụng như vậy sẽ đạt được những thuận lợi
gì, quá trình sản xuất phần mềm có tốt hơn không, chất lượng phần mềm có được nâng
cao hay không. Trong một quy trình sản xuất phần mềm, ngoài việc thành lập các
chuẩn coding, phân công sắp xếp các công việc cho các thành viên trong tổ chức, một
yếu tố rất quan trọng là việc quản lý các tài liệu bao gồm các bản đặc tả yêu cầu, bản
phân tích thiết kế chương trình, chương trình nguồn, các bản báo cáo kiểm thử và vô số
những tài liệu không tên khác.
Trong bối cảnh đó, chúng em đã thực hiện đề tài “Tìm hiểu về quản lý yêu cầu
và kiểm thử tại Phòng phát triển phần mềm Trung Tâm Tin Học trường
ĐHKHTN_Xây dựng phần mềm hỗ trợ” nhằm có thể hiểu rõ hơn việc quản lý yêu cầu
và kiểm thử, những mục tiêu, thuận lợi mà hai tiến trình này đem lại.
Đề tài này có thể được xem như một phần trong việc quản lý cấu hình, trong đó
chú trọng ở hai giai đoạn khảo sát và kiểm thử. Luận văn của chúng em được trình bày
với tám chương chính, bao gồm :
KH
OA
C
NT
T –
Đ
H
KH
TN
3
- Chương 1 Mở đầu
- Chương 2 Tổng quan về SQA (Software Quality Assurance) và các công
việc quản lý yêu cầu, quản lý kiểm thử
- Chương 3 Các công cụ hỗ trợ cho việc quản lý yêu cầu và quản lý kiểm thử
hiện nay.
- Chương 4 Giới thiệu về ứng dụng “Phần mềm quản lý yêu cầu và quản lý
kiểm thử” (Requirements and Testing Management)
- Chương 5 Thực hiện _ Kiểm tra ứng dụng
- Chương 6 Tổng kết
KH
OA
C
NT
T –
Đ
H
KH
TN
4
Mục lục
Chương 1 Mở đầu................................................................................................................ 9
1.1 Khái quát vai trò quy trình phát triển phần mềm........................................................... 9
1.2 Tầm quan trọng của việc quản lý quy trình .................................................................. 10
1.3 Hiện trạng phát triển phần mềm tại T3H...................................................................... 10
1.4 Đánh giá hiện trạng ........................................................................................................ 19
1.4.1 Quản lý yêu cầu : ............................................................................................................................19
1.4.2 Quản lý kiểm thử :...........................................................................................................................19
1.5 Mục tiêu đề tài ................................................................................................................ 20
Chương 2 Tổng quan về SQA và các công việc quản lý yêu cầu, quản lý kiểm thử ...... 21
2.1 Vai trò của việc quản lý chất lượng phần mềm ............................................................. 21
2.2 Tại sao cần quản lý chất lượng ?.................................................................................... 24
2.3 Tổng quan về quản lý yêu cầu........................................................................................ 25
2.3.1 Quản lý yêu cầu là gì ?....................................................................................................................25
2.3.2 Các thông tin cần quản lý trong quản lý yêu cầu. ..........................................................................25
2.3.3 Giới thiệu tiến trình RM (Requirement Management) trong CMMI...............................................27
2.4 Tổng quan về quản lý kiểm thử...................................................................................... 28
2.4.1 Mục tiêu của quản lý kiểm thử. .......................................................................................................28
2.4.2 Các thông tin cần quản lý trong quản lý kiểm thử...........................................................................29
2.4.3 Giới thiệu tiến trình Verification (VER) trong CMMI....................................................................30
Chương 3 Các công cụ hỗ trợ cho việc quản lý yêu cầu và quản lý kiểm thử hiện nay 32
3.1 Công cụ hỗ trợ quản lý yêu cầu...................................................................................... 32
3.1.1 Giới thiệu : ......................................................................................................................................32
3.1.2 Định nghĩa công cụ quản lý yêu cầu ...............................................................................................33
3.1.3 Các loại công cụ ..............................................................................................................................33
3.1.4 Tại sao phải sử dụng các công cụ quản lý yêu cầu :........................................................................34
3.1.5 Kiến trúc chức năng : ......................................................................................................................35
3.1.6 So sánh với các phần mềm có chức năng tương tự : .......................................................................37
3.1.7 Đánh giá các công cụ quản lý yêu cầu ............................................................................................38
3.2 Công cụ kiểm thử : ......................................................................................................... 38
3.2.1 Các loại công cụ kiểm thử :.............................................................................................................38
3.2.2 Một số công cụ quản lý kiểm thử : ..................................................................................................41
Chương 4 Xây dựng “Phần mềm quản lý yêu cầu và quản lý kiểm thử” (Requirements
and Testing Management) ....................................................................................................... 44
4.1 Mục tiêu của ứng dụng................................................................................................... 44
4.2 Thủ tục cho các quy trình được xây dựng mới .............................................................. 44
4.3 Đặc tả yêu cầu................................................................................................................. 49
KH
OA
C
NT
T –
Đ
H
KH
TN
5
4.4 Thiết kế ứng dụng........................................................................................................... 51
4.4.1 Mô hình use case.............................................................................................................................51
4.4.2 Đặc tả use case ................................................................................................................................52
4.5 Mô hình dữ liệu .............................................................................................................. 72
4.5.1 Kiến trúc hệ thống...........................................................................................................................73
4.5.2 Thiết kế màn hình ...........................................................................................................................77
Chương 5 Thử nghiệm ứng dụng..................................................................................... 89
5.1 Dữ liệu thử nghiệm......................................................................................................... 89
5.1.1 Giới thiệu project thử nghiệm : .......................................................................................................89
5.1.2 Bộ dữ liệu thử nghiệm :...................................................................................................................90
5.2 Kết quả thực hiện chương trình..................................................................................... 91
Chương 6 Tổng kết ............................................................................................................ 92
6.1 Tự đánh giá..................................................................................................................... 92
6.1.1 Những kết quả đạt được : ................................................................................................................92
6.2 Hướng phát triển của chương trình. .............................................................................. 93
Phụ lục ..................................................................................................................................... 95
Phụ lục A. Mô tả dữ liệu ................................................................................................... 95
Phụ lục B. RM Tool Survey Summary [INCOSE]............................................................ 98
KH
OA
C
NT
T –
Đ
H
KH
TN
6
Danh sách các hình
Hình 1-1 Mô hình phát triển phần mềm theo quy trình thác nước tại T3H.............................. 11
Hình 1-2 Sơ đồ tổ chức các vai trò của nhân sự trong 1 đề án phần mềm ............................... 14
Hình 1-3 Mô hình quản lý yêu cầu tại T3H.............................................................................. 16
Hình 1-4 Mô hình kiểm thử tại T3H......................................................................................... 18
Hình 2-1 Các hoạt động trong CM ........................................................................................... 22
Hình 2-2 Tổng quan về CM...................................................................................................... 23
Hình 2-3 Năm cấp độ (tầng trưởng thành của CMMI) ............................................................. 27
Hình 5-1 Mô hình tiến trình quản lý yêu cầu cho hệ thống mới............................................... 45
Hình 5-2 Mô hình quản lý kiểm thử cho hệ thống mới ............................................................ 48
Hình 5-3 Mô hình usecase ....................................................................................................... 51
Hình 5-4 Kiến trúc hệ thống ..................................................................................................... 73
Hình 5-5 Kiến trúc Phần mềm quản lý yêu cầu và kiểm thử. ................................................... 75
Hình 5-6 Các lớp xử lý yêu cầu ................................................................................................ 76
Hình 5-7 Các lớp xử lý kiểm thử .............................................................................................. 76
Hình 5-8 Sơ đồ màn hình cho phần truy cập cơ sở dữ liệu ...................................................... 77
Hình 5-9 Sơ đồ các trang tổng quát .......................................................................................... 77
Hình 5-10 Sơ đồ nhóm các màn hình liên quan đến phần quản lý yêu cầu.............................. 78
Hình 5-11 Sơ đồ các màn hình liên quan đến phần kiểm thử ................................................... 79
Hình 5-12 MH. Trang chính ..................................................................................................... 80
Hình 5-13 MH.Thông tin yêu cầu tổng quát............................................................................ 81
Hình 5-14 MH. Cập nhật tài liệu mô tả yêu cầu. ...................................................................... 82
Hình 5-15 MH. Cây kiến trúc của project ................................................................................ 83
Hình 5-16 MH. Thiết lập mối liên hệ giữa các yêu cầu và phân hệ ......................................... 84
Hình 5-17 MH. Các release trong Project................................................................................. 84
Hình 5-18 MH. Cập nhật môi trường kiểm tra. ........................................................................ 85
Hình 5-19 MH. Các release và file đã được lập testcase. ......................................................... 86
Hình 5-20 MH. Cập nhật thông tin review ............................................................................... 87
KH
OA
C
NT
T –
Đ
H
KH
TN
7
Thuật ngữ / Từ viết tắt / Khái niệm
Phần mềm _Software Là những chương trình, những thủ tục
được gắn liền với các tài liệu mô tả và các
dữ liệu có liên quan đến tác vụ của một
hệ thống máy tính.[PGSQM]
Chất lượng _Quality Việc thỏa mãn một sản phẩm theo đúng sự
mong đợi của khách hàng, dựa vào những
yêu cầu cho sản phẩm.[PGSQM]
Việc đảm bảo chất lượng _Quality
Assurance hay Kiểm soát chất lượng _
Quality Control
Là một tập các hành động đã được dự
định trước đó nhằm dò tìm, dẫn chứng qua
các tài liệu, phân tích, và hiệu chỉnh các
lỗi của sản phẩm cũng như quản lý các
thay đổi của sản phẩm.[PGSQM]
Quản lý chất lượng _ Quality
Management
Là việc ủy nhiệm, xúc tiến nhà sản xuất
nhận ra, chấp thuận các cải tiến cho tiến
trình sản xuất sản phẩm.[PGSQM]
SQA Software Quality Assurance
SQS Software Quality System
CM Configuration management
T3H Phòng phát triển phần mềm Trung tâm
Tin học trường Đại học Khoa học Khoa
học Tự nhiên.
Internal release Mỗi khi việc coding hoàn tất ở một phân
KH
OA
C
NT
T –
Đ
H
KH
TN
8
hệ hay một phần cụ thể nào đó của
project, project manager hay coding
manager sẽ compile cho một bản release.
Bản release này sẽ được kiểm tra, sửa lỗi
dùng trong nội bộ cơ quan.
Release Release sẽ được giao cho khách hàng khi
chương trình đã hoàn tất
CMMI Capability Maturity Model Integration
RM Requirement Management
KH
OA
C
NT
T –
Đ
H
KH
TN
Chương 1 Mở đầu
9
Chương 1 Mở đầu
1.1 Khái quát vai trò quy trình phát triển phần mềm
Thưở ban đầu của ngành công nghiệp máy tính nói chung và công nghệ phần
mềm nói riêng, việc phát triển phần mềm được xem như một quá trình “viết và sửa”
(code and fix), không có bất kỳ một kế hoạch nào trước đó. Quá trình này thành công
cho đến khi các chương trình phần mềm bắt đầu có quy mô lớn hơn, độ phức tạp cao
hơn, cần có sự hợp tác của nhiều người hơn, do đó các phương pháp phát triển phần
mềm hay quy trình phần mềm ra đời.Thực tế cho thấy, hầu hết các dự án thất bại do
các nguyên nhân sau 1 :
· Hiểu không đúng yêu cầu người dùng
· Không thể thích ứng với các thay đổi về yêu cầu đối với hệ thống.
· Các module không khớp với nhau.
· Phần mềm khó bảo trì và nâng cấp, mở rộng.
· Phát hiện trễ các lỗ hổng của dự án.
· Chất lượng phần mềm kém.
· Hiệu năng của phần mềm thấp.
· Các thành viên trong nhóm không biết được ai đã thay đổi cái gì, khi nào, ở
đâu, tại sao phải thay đổi.
· Quá trình build-and-release không đáng tin cậy.
Để khắc phục những rủi ro này đòi hỏi việc phát triển phần mềm phải theo một
quy trình cụ thể đảm bảo phần mềm được xây dựng đảm bảo được chất lượng, thỏa
mãn các yêu cầu của người dùng.
1 [LVRUP99]
KH
OA
C
NT
T –
Đ
H
KH
TN
Chương 1 Mở đầu
10
1.2 Tầm quan trọng của việc quản lý quy trình
Như đã đề cập ở trên, việc thỏa mãn nhu cầu (Fitness for purpose) của người
dùng rất quan trọng, đó là đích cuối cùng cho mọi sản phẩm được sản xuất ra. Vì vậy,
việc đảm bảo chất lượng phần mềm cũng là một phần rất quan trọng trong quá trình
sản xuất phần mềm và do đó, việc quản lý chất lượng cũng được đặt ra.
Hơn thế nữa, quan điểm hiện đại về việc đảm bảo chất lượng ngày càng phức
tạp hơn, không còn giới hạn ở mục tiêu thỏa yêu cầu khách hàng. Một sản phẩm phần
mềm chất lượng cao (high quality product) phải kết hợp được nhiều nhân tố chất lượng
(quality factors) hay thuộc tính chất lượng (Quality Attributes), trong đó có thể chia
làm ba loại, đó là những nhân tố có thể tìm thấy trong đặc tả yêu cầu ví dụ như tính
linh động (portability), là “cutural factors” ví dụ như tính hiệu dụng (usability), và
những nhân tố mà người lập trình sẽ chú trọng nhưng người dùng thì không, đơn cử là
tính tái sử dụng (reusability). Để một sản phẩm đặt ra đạt được những nhân tố chất
lượng này không phải là một việc dễ dàng, vì vậy, việc quản lý chất lượng phần mềm
là một công việc không thể tránh khỏi trong công nghệ phần mềm.
1.3 Hiện trạng phát triển phần mềm tại T3H
T3H phát triển phần mềm theo quy trình thác nước bao gồm các giai đoạn sau :
· Khảo sát hiện trạng – xác định yêu cầu
· Lập giải pháp khả thi
· Phân tích
· Thiết kế
· Coding
· Kiểm thử
· Triển khai và bảo trì
Quy trình được minh họa qua sơ đồ
KH
OA
C
NT
T –
Đ
H
KH
TN
Chương 1 Mở đầu
11
NV quaûn lyù ñeà
aùn
NV phaân tích _
thieát keá
NV quaûn trò heä
thoáng
NV laäp trình
NV kieåm tra
NV huaán luyeän
NV quaûn lyù
caáu hình
NV phaân tích _
thieát keá
NV phaân tích _
thieát keá
NV laäp trình
NV phaân tích _
thieát keá
NV laäp trình
NV huaán luyeän
Laäp keá hoaïch & theo doõi tieán ñoäâ
Laäp giaûi phaùp
khaû thi
Khaûo saùt -
phaân tích
Thieát keá
phaàn meàm
Xaây döïng
phaàn meàm
Kieåm tra & thöû
nghieäm noäi boä
Trieån khai
Hoaøn chænh saûn
phaåm
Quaûn lyù caáu hình
NV phaân tích _
thieát keá
Hình 1-1 Mô hình phát triển phần mềm theo quy trình thác nước tại T3H
KH
OA
C
NT
T –
Đ
H
KH
TN
Chương 1 Mở đầu
12
MÔ TẢ CÁC GIAI ĐOẠN TRONG QUY TRÌNH PHÁT TRIỂN PHẦN MỀM
Gđoạn Lập giải pháp khả thi Khảo sát – phân tích Thiết kế phần mềm Xây dựng phần mềm Kiểm tra và thử nghiệm nội
bộ
Tài liệu
đầu vào
Tài liệu giải pháp khả thi Tài liệu khảo sát phân tích - Tài liệu khảo sát phân tích
- Tài liệu thiết kế phần
mềm
- Prototype chưong trình
- Tài liệu khảo sát phân tích
- Tài liệu thiết kế phần mềm
- Chương trình
Mô tả
công việc
cụ thể
của giai
đoạn