Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Chương V: Quy trình làm phần mềm docx
MIỄN PHÍ
Số trang
64
Kích thước
510.3 KB
Định dạng
PDF
Lượt xem
876

Chương V: Quy trình làm phần mềm docx

Nội dung xem thử

Mô tả chi tiết

CHƯƠNG V – QUI TRÌNH LÀM PHẦN MỀM.

1. MỞ ĐẦU

Quy trình làm phần mềm (hay gọi đơn giản theo tiếng Anh: software

process - quy trình phần mềm) là quá trình tạo ra phần mềm. Quy trình này là sự

kết hợp mô hình vòng đời phần mềm, các công cụ được sử dụng và quan trọng

hơn hết, là những người xây dựng nên phần mềm đó. Các công ty phần mềm

khác nhau có các quy trình phần mềm khác nhau. Ví dụ hãy xem vấn đề tài liệu.

Có một số công ty cho rằng chính bản thân phần mềm với các mã nguồn là tài

liệu về phần mềm. Họ cho rằng phần mềm có thể hiểu được bằng cách đọc các

mã nguồn này. Một số công ty khác chuẩn bị tài liệu rất chi tiết. Ngay cả khi

phần mềm đã cài đặt cho khách hàng và chuyển sang giai đoạn bảo trì, thì mọi sự

sửa đổi phần mềm cũng được ghi chép lại, các bản thiết kế cũng được thay đổi

cho phù hợp. Từ thực tế có thể thấy rằng một phần mềm được kiểm thử kỹ lưỡng

và có các tài liệu báo cáo đầy đủ trong từng pha thì chất lượng sẽ tốt hơn và

công việc bảo trì cũng thuận lợi hơn.

Nói chung, một quy trình phần mềm thường trải qua 7 pha: xác định yêu

cầu, phân tích, thiết kế, cài đặt, tích hợp, bảo trì và thôi sử dụng. Trong một số

trường hợp thì tên các pha này có thể khác. Ví dụ người ta hợp nhất hai pha xác

định yêu cầu và phân tích thành pha phân tích hệ thống. Một vài pha khác lại

được chia nhỏ hơn, ví dụ pha thiết kế được chia thành pha thiết kế kiến trúc và

thiết kế chi tiết. Hai pha cài đặt và tích hợp được kết hợp thành pha cài đặt và

tích hợp. Những lý do sau đây trả lời câu hỏi vì sao các pha của vòng đời phần

mềm cần được kiểm thử kỹ và báo cáo thành tài liệu chi tiết bởi nhóm thực hiện

trước khi tiến hành các pha tiếp theo:

- Vì sự thúc ép về thời gian hoàn thành nên những phần tài liệu bị trì hoãn

thường ít khi được tiếp tục hoàn thiện.

- Trách nhiệm về một pha nào đó có thể được chuyển giao cho nhóm khác

thậm chí ở một công ty phần mềm khác.

- Phần mềm thường liên tục thay đổi trong quá trình xây dựng. Ví dụ thiết

kế có thể bị thay đổi trong pha cài đặt. Rõ ràng nếu tài liệu thiết kế được biên

soạn đầy đủ thì sự sửa đổi sẽ thuận lợi hơn.

99

II. CÁC ĐỐI TƯỢNG

1. Khách hàng

Khách hàng là cá nhân hoặc công ty có nhu cầu sử dụng phần mềm.

2. Người phát triển

Những người phát triển là những người nhận trách nhiệm xây dựng

phần mềm do khách hàng yêu cầu.

3. Người sử dụng

Người sử dụng là người trực tiếp sử dụng phần mềm khi nó được cài

đặt cho khách hàng.

Khách hàng, người phát triển và người sử dụng có thể ở các công ty khác

nhau hoặc ở ngay trong một công ty. Cũng có khi họ là những người lao động tự

do. Thường thì khách hàng và người sử dụng ở cùng một công ty, còn những

người phát triển là thành viên của một công ty phần mềm nào đó. Nếu xét về mặt

giá cả thì người ta phân các phần mềm thành hai loại: Phần mềm được xây dựng

cho một khách hàng thường có giá cao, và phần mềm đóng gói được bán cho

nhiều khách hàng ví dụ như Microsoft Word, Microsoft Excel...thường có giá rẻ

hơn.

Trong những lần gặp đầu tiên giữa khách hàng và người phát triển, khách

hàng phác thảo các yêu cầu, chức năng, các công việc cần thực hiện của phần

mềm mà họ muốn đặt hàng. Theo cách nhìn nhận của người phát triển thì những

điều khách hàng mô tả có thể mơ hồ, có những điều không hợp lý, thậm chí mâu

thuẫn hay không khả thi. Nhiệm vụ của người phát triển là phải tìm hiểu xem

thực chất khách hàng cần gì. Ngoài những yêu cầu về chức năng và công việc,

họ còn phải tìm hiểu xem các điều kiện về phần mềm là gì? Ví dụ như phần mềm

phải hoàn thành trong thời gian bao lâu, phần mềm cần làm việc với hệ điều

hành nào, trên máy tính có cấu hình ra sao, giá cả khoảng bao nhiêu thì chấp

nhận được. Thường thì chính khách hàng hỏi lại người phát triển giá của phần

mềm, và người phát triển phải cân nhắc khi trả lời câu hỏi này.

III – PHA XÁC ĐỊNH YÊU CẦU

1. Nắm bắt yêu cầu

Quá trình khám phá các yêu cầu của khách hàng được gọi là sự nắm bắt

yêu cầu (requirements capture), hoặc sự gợi mở yêu cầu (requirements

100

elicitation) hay tìm hiểu vấn đề (concept exploration). Sau khi các yêu cầu được

xác định thì chúng được xem xét để hiệu chỉnh, lược bỏ bớt hoặc mở rộng. Quá

trình này được gọi là phân tích yêu cầu (requrements analysis). Pha yêu cầu

thường được bắt đầu bằng việc gặp gỡ trao đổi giữa một vài thành viên của

nhóm yêu cầu và một vài thành viên đại diện cho công ty khách hàng để cùng

nhau xác định xem sản phẩm phần mềm cần những gì. Cuộc trao đổi thường

được thực hiện theo cách là thành viên của nhóm yêu cầu đưa ra các câu hỏi có

tính gợi mở về lĩnh vực mà phần mềm được sử dụng. Các thành viên của công ty

khách hàng hoặc trả lời các câu hỏi của nhóm yêu cầu, hoặc chủ động nêu ra các

vấn đề mà họ cần. Rõ ràng, những thành viên tham gia khám phá yêu cầu của

khách hàng phải có hiểu viết về lĩnh vực mà phần mềm ứng dụng giải quyết, để

có thể hiểu được những điều khách hàng nói, và có thể đưa ra các câu hỏi có ý

nghĩa. Vì vậy, nhiệm vụ đầu tiên của nhóm yêu cầu chính là tìm hiểu và làm

quen với lĩnh vực ứng dụng của phần mềm mà khách hàng muốn có. Ví dụ, nếu

phần mềm là quản lý các chuyến bay của một hãng hàng không thì lĩnh vực cần

tìm hiểu là cách thức quản lý các chuyến bay của một hãng hàng không. Nếu

phần mềm là chương trình quản lý thư viện thì nhóm yêu cầu cần có hiểu biết

nhất định về lĩnh vực thư viện...Để sử dụng từ một cách chính xác, các thành

viên nhóm yêu cầu cần tìm hiểu các thuật ngữ. Ví dụ, nếu họ đang chuẩn bị làm

phần mềm trong lĩnh vực sinh học thì cần tìm hiểu các thuật ngữ về sinh học.

Một trong những phương pháp khắc phục vấn đề thuật ngữ là xây dựng bộ từ

vựng về lĩnh vực ứng dụng. Mỗi lần gặp một thuật ngữ mới thì nhóm yêu cầu

cần tìm hiểu để biết được một cách chính xác ý nghĩa và đưa thuật ngữ này vào

bộ từ vựng. Sau khi đã có những hiểu biết nhất định về lĩnh vực ứng dụng phần

mềm, các thành viên bắt đầu khám phá, tìm hiểu các yêu cầu khách hàng theo

các cách thức sau:

1.1. Phỏng vấn khách hàng

Có hai kiểu phỏng vấn: có cấu trúc (structured) và không có cấu trúc

(unstructured). Với kiểu phỏng vấn cấu trúc thì các câu hỏi đóng (close-ended)

và được chuẩn bị trước. Ví dụ như: "công ty sử dụng bao nhiêu nhân viên bán

hàng", "lương trung bình của các nhân viên trong công ty là bao nhiêu"... Trong

cách phỏng vấn không có cấu trúc thì các câu hỏi có tính mở (open-ended) được

đưa ra. Ví dụ: "Hãy nêu ra một vài điểm yếu của phần mềm đang sử dụng mà

101

khách hàng có ý định thay thế". Tuy nhiên, cũng không nên hỏi những câu quá

chung chung, khó trả lời như: "Hãy nói cho tôi biết về sản phẩm hiện tại". Các

câu hỏi mở nên đưa ra sao cho có thể khích lệ người được phỏng vấn có thể cho

câu trả lời trong một phạm vi rộng, tuy nhiên cũng không nên rộng quá mà chỉ

nằm trong phạm vi các thông tin cần nắm bắt. Phỏng vấn có hiệu quả là công

việc không dễ dàng. Điều kiện quan trọng đầu tiên là người phỏng vấn cần am

hiểu về lĩnh vực mà họ chuẩn bị phỏng vấn. Các câu hỏi đưa ra cũng phải hợp lý

để người được phỏng vấn có thể nói ra những thông tin có ích cần thiết một cách

tự nhiên, không bị gò ép hay e ngại gì. Đôi khi những câu hỏi quá thẳng thắn và

trực tiếp chưa chắc đã nhận được câu trả lời đúng. Ví dụ nếu hỏi rằng "lương anh

chị rất thấp, nhưng chi tiêu thì có vẻ rất nhiều. Anh chị hãy cho biết làm sao có

được khoản tiền ngoài lương kia..." thì thường là người được hỏi sẽ tìm cách né

tránh câu trả lời thật.

Sau khi phỏng vấn xong thì người phỏng vấn cần viết báo cáo về kết quả

phỏng vấn và nên đưa cho người được phỏng vấn xem và góp ý kiến.

1.2. Kịch bản (scenario)

Kịch bản là một kỹ thuật được sử dụng để phân tích yêu cầu. Kịch bản

là mô tả các thao tác cần thực hiện trên phần mềm cần xây dựng để hoàn thành

một công việc nào đó (trong các công việc mà phần mềm cung cấp).

1.3. Một vài kỹ thuật nắm bắt yêu cầu khác

Một kỹ thuật khác hay được sử dụng để nắm bắt các yêu cầu khách

hàng là gửi các bảng câu hỏi cho một số thành viên đại diện của công ty khách

hàng. Bằng cách này có thể gửi cho hàng trăm thành viên để nhận được các câu

trả lời dưới dạng viết, được suy nghĩ kỹ. Tuy nhiên, nếu từ bảng câu hỏi đã được

trả lời, người phỏng vấn có thể đưa ra thêm các câu hỏi thích hợp với người được

phỏng vấn thì có thể nhận được các thông tin bổ ích. Đôi khi các thông tin này

có ích hơn nhiều so với trả lời viết đã có.

Một cách khác để tìm hiểu và nắm bắt yêu cầu khách hàng, đặc biệt trong môi

trường kinh doanh, là xem xét các biểu mẫu khác nhau mà các khách hàng sử

dụng. Ví dụ, từ việc xem xét các biểu mẫu được in ra có thể biết được các dạng

báo cáo, cỡ giấy; tài liệu viết về cách thức điều hành hoặc mô tả công việc là

102

những công cụ rất hữu ích để giúp tìm ra công việc gì đang được thực hiện, và

được thực hiện như thế nào ở công ty khách hàng.

Gần đây, người ta thường áp dụng thêm một phương pháp nữa là quay băng

video cảnh làm việc ở công ty khách hàng (tất nhiên là được sự cho phép của

công ty và của những người được quay). Như vậy, có thể biết được chính xác

những gì đang xảy ra. Tuy nhiên, cách này có một nhược điểm là phải tốn khá

nhiều thời gian để xem lại băng và phân tích để rút ra những thông tin cần thiết.

Một nhược điểm rất lớn khác của phương pháp này là phần lớn những người

được quay đều không thích mình xuất hiện trong máy quay và trở nên dè dặt khi

hành động.

Sau khi thu được các thông tin ban đầu về yêu cầu khách hàng, bước tiếp theo

là phân tích các yêu cầu đó để rút ra những thông tin cơ bản nhất có thể giúp ích

cho việc xây dựng phần mềm.

2. Phân tích yêu cầu

Tới thời điểm này, nhóm yêu cầu đã có được tập hợp khởi đầu các yêu cầu

khách hàng. Các yêu cầu này được phân làm hai loại: chức năng (functional) và

phi chức năng (nonfunctional).

Yêu cầu chức năng thường gắn với chức năng tương ứng của phần mềm cần

xây dựng và thể hiện dưới dạng các mục chọn của thực đơn, ví dụ như: "Phần

mềm cung cấp chức năng tìm kiếm hàng hóa theo tên hàng và ngày bán". Đặc tả

phi chức năng dùng để chỉ rõ tính chất nào đó của phần mềm cần xây dựng, ví dụ

tính tin cậy và bảo trì được; hoặc liên quan đến môi trường mà phần mềm được

sử dụng, ví dụ: tất cả các mã khách hàng được nhập trực tiếp từ bàn phím và

được lưu trong một tệp bảng dữ liệu". Tóm lại yêu cầu chức năng là nói đến một

công việc cụ thể, thường thể hiện bằng các mục chọn trong chương trình; còn

yêu cầu phi chức năng thì nói về các tính chất của phần mềm, các tính chất này

không thể thể hiện được bằng một việc cụ thể. Thí dụ từ câu: "yêu cầu phần mềm

phải có giao diện đẹp, thân thiện với người sử dụng", ta không thể nói được cụ

thể là phải làm gì.

Một điều rất quan trọng là phần mềm phải theo dõi được (traceable). Điều

này có nghĩa là có thể kiểm tra xem tất cả các yêu cầu đã được thể hiện trong bản

đặc tả chưa; điểm nào trong bản báo cáo yêu cầu tương ứng với điểm nào trong

báo cáo đặc tả. Tương tự, báo cáo thiết kế hay chương trình cũng phải tương ứng

103

với các tài liệu trước đó. Như vậy, nhóm bảo đảm chất lượng phần mềm có thể

kiểm tra xem có phải tất cả các mục trong các yêu cầu khách hàng đã được thực

hiện hay chưa.

Tất cả các yêu cầu thu thập được ban đầu đều được đưa cho khách hàng xem

xét. Họ sẽ sắp xếp các mục yêu cầu theo thứ tự quan trọng, phát hiện và hiệu

chỉnh những điều không chính xác hoặc bỏ đi những mục không cần thiết...

Tiếp theo, nhóm yêu cầu sẽ thảo luận với những khách hàng đã được phỏng

vấn và xem xét lại các vấn đề một cách kỹ càng, xem có điều gì còn bị bỏ sót

không. Và như chúng ta biết, kỹ thuật phân tích yêu cầu hiệu quả và chính xác

nhất là làm bản mẫu, vì vậy nếu có thể thì nhóm chuyển qua bước làm bản mẫu

để đưa cho khách hàng xem xét một cách trực quan hơn.

3. Làm bản mẫu (prototyping)

Bản mẫu được xem là kỹ thuật phân tích yêu cầu chính xác nhất.

Bản mẫu là phần mềm được xây dựng nhanh chủ yếu để thể hiện các chức

năng quan trọng nhất của phần mềm cần xây dựng. Mục đích của bản mẫu là thể

hiện các yêu cầu khách hàng, do đó khi xây dựng người ta chú ý nhiều đến giao

diện và các báo cáo in ra. Những vấn đề quan trọng khác mà một phần mềm sản

phẩm cần phải có như tính bảo mật, an toàn dữ liệu, tốc độ tính toán, kiểm tra và

khắc phục lỗi... đều chưa được chú ý khi làm bản mẫu; nghĩa là bản mẫu chỉ là

thể hiện bên ngoài của sản phẩm và bỏ qua những phần được che dấu. Bản mẫu

được cài đặt để khách hàng sử dụng thử. Qua việc thao tác trực tiếp với bản mẫu,

họ sẽ thấy được các chức năng của phần mềm đã thể hiện đúng các yêu cầu của

họ chưa, cái gì cần thêm bớt hay hiệu chỉnh bổ sung. Những người phát triển sẽ

hiệu chỉnh bản mẫu cho đến khi khách hàng vừa ý và cho rằng mọi yêu cầu của

họ đã được bao hàm trong phần mềm (tất nhiên là về hình thức). Bản mẫu sẽ

được dùng làm cơ sở để biên soạn tài liệu đặc tả.

Như tên gọi của nó, bản mẫu nhanh (rapid prototype) được xây dựng với mục

đích để người phát triển và khách hàng thống nhất càng nhanh càng tốt những

điều mà sản phẩm chính cần làm. Như vậy, nhiều điều có thể bỏ qua khi làm bản

mẫu. Bản mẫu có thể thường xuyên gặp sự cố và phải khởi động lại; màn hình

nhập dữ liệu có thể chưa đẹp; báo cáo in ra còn thiếu biểu tượng công ty khách

hàng,...

104

Tải ngay đi em, còn do dự, trời tối mất!