Tải bản đầy đủ (.doc) (23 trang)

MÔN REQUIREMENT ENGINEERING Tìm hiểu các kĩ thuật phân tích yêu cầu phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (324.07 KB, 23 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

BÀI TẬP LỚN
MÔN REQUIREMENT ENGINEERING
Bài tập Tuần NO. 2
Tìm hiểu các kĩ thuật phân tích
yêu cầu phần mềm
Nhóm

: 2
Giảng viên hướng dẫn

: PGS.TS Huỳnh Quyết Thắng

Hà Nội, tháng 02 năm 2012


Contents


Câu1: Tổng hợp, đánh giá và so sánh các kỹ thuật phát hiện yêu cầu phần
mềm:
- Interview
- Workshop
- Brainstorming
- Storyboarding
- Prototyping
Về mục đích, khả năng áp dụng, quy trình thực hiện và các mẫu văn bản kèm theo cho
từng kỹ thuật.



1. InterViewing (Phỏng vấn):
Interviewing là việc tập hợp một số lương ít người – thường với một hoặc hai người – cho một
thời gian cố đinh.
Mục đích của Interview là thu nhận từ khách hàng thao tác và các vấn đề trong hệ thống hiện
hành, chính sách, nhu cầu và mong muốn trong hệ thống mới. Cuối cuộc phỏng vấn ta sẽ cho ra
được bản nội dung mô tả công việc người khách hàng làm dựa trên câu hỏi ta có.
Khả năng áp dụng:
Phỏng vấn thường diễn ra trước quá trình thiết kế và được sử dụng trong hầu hết các dự án.
Đặc điểm:
- Phỏng vấn là một kĩ thuật đơn giản và thu được thông tin một cách trực tiếp
- Các câu hỏi về phạm vi tự do sẽ giúp được mục đích của cuộc phỏng vấn
- Có thể thích hợp để tìm ra những mảng yêu cầu chưa được phát hiện bằng cách thăm dò
các tình huống
- Một số nhu cầu thông thường sẽ khởi đầu một “kho chứa các yêu cầu” và sử dụng trong
suốt dự án
- Một bản câu hỏi thăm dò ý kiến không thể thay thế cho một buổi phỏng vấn được
Các câu hỏi phạm vi tự do (Context free question):
Làm sao để tránh sự định kiến của người sử dụng khi đáp ứng yêu cầu của các câu hỏi ? Chúng
ta dùng các câu hỏi về các vấn đề tự nhiên của người sử dụng, các câu hỏi chung về bản chất dự
án và môi trường mà sản phẩm sẽ được dùng:
- Ai là người sử dụng?
- Ai là khách hàng?
- Họ có cần một sự thay đổi?
- Có thể tìm giải pháp cho vấn đề này ở đâu?
Quy trình tiến hành một cuộc phỏng vấn
 Tiến hành đặt cuộc hẹn phù hợp với thời gian của phỏng vấn
 Chuẩn bị tốt, tìm hiểu kỹ về người được phỏng vấn
 Đúng giờ
 Có kế hoạch cho cuộc phỏng vấn



-

Giới thiệu bản thân và mục đích
Sử dụng câu hỏi mở để bắt đầu
Luôn chú ý vào trả lời
Có kế hoạch cho nội dung chính
Kết hợp câu hỏi đóng và mở
Luôn bám sát các trình bày và phát triển chi tiết
Luôn cung cấp các thông tin phản hồi, ví dụ: “Cho phép tôi trình bày lại điều ông vừa
nói…”
Hạn chế ghi chép nếu không thấy tiện
Có kế hoạch kết thúc
Tóm tắt nội dung, yêu cầu hiệu chỉnh
Yêu cầu làm chính xác, đánh giá lại ghi chép
Cho biết ngày tháng họ sẽ nhận được báo cáo
Thống nhất lại ngày lấy lại bản hiệu chỉnh
Xác nhận lại lịch làm việc

Những điểm lưu ý khi tiến hành phỏng vấn:
- Chuẩn bị trước nội dung cần phỏng vấn. Xem lại các câu hỏi trước khi tiến hành phỏng
vấn.
- Trước khi thực hiện cuộc phỏng vấn, nghiên cứu kinh nghiệm của nhà đầu tư và công ty
được phỏng vấn. Đừng đẩy cho những người được phỏng vấn những câu hỏi mà bạn có
thể đã có câu trả lời.
- Ghi lại những câu trả lời trong quá trình phỏng vấn (không có gắng lấy ra thông tin trong
lúc này).
- Tham khảo các mẫu (template) trong quá trình phỏng vấn để đảm bảo đặt ra những câu
hỏi đúng đắn.

Nội dung cuộc phỏng vấn và mẫu văn bản kèm theo:
Part I: Thiết lập tiểu sử người dùng hay khách hàng
Name:
Company:
Industry:
Job title:
(The above information can typically be entered in advance.)
What are your key responsibilities?
What outputs do you produce?
For whom?
How is success measured?
Which problems interfere with your success?
What, if any, trends make your jo easier or more difficult?
Part II: Đi vào vấn đề
For which [application type] problems do you lack good solutions?
What are they? (hint: keep asking, “Anything else?”)
For each problem, ask the following questions:
- Why does this problem exist?


-

How do you solve it now?
How would you like to solve it?

Part III: Tìm hiểu về môi trường người dùng
Who are the users?
What is their educational background?
What is their computer background?
Are users experienced with this type of application?

Which platforms are in use?
What are your plans for future platforms?
Are additional applications in use that are relevant to this application? If so, let’s talk about them
a bit.
What are your expectations for training time?
What kinds of user help (for example, hard copy and online documentation) do you need?
Part IV: Tóm tắt lại những gì thu được
You have told me:
(List customer – descrbd problems in your own words.)
Does this adequately represent the problems you are having with existing solution?
What, if any, other problems are you expretiencing?
Part V: Phân tích đầu vào trên các vấn đề của khách hàng:
(Validate or invalidate assumptions.)
(If not yet addressed) Which, if any, problems are associated with: (List any needs or additional
problems you think should concern the customeror user.)
For each suggested problem, ask the following question.
- Is this a real problem?
- What are the reasons for this problem?
- How do you currently solve the problem?
- How would you like to solve the problem?
- How would you rank solving these problems in comparison to others you’ve mentioned?
Part VI: Đi vào giải pháp của mình (nếu thích hợp):
(Summarize the key capabilities of your proposed solution.)
What if you could:
How would you rank the importance of these?
Part VII: Đi vào cơ hội


Who in your organization needs this application?
How many of these types of users would use the application?

How would you value a successful solution?
Part VIII: Đi vào sự đáng tin cậy, hiệu quả và các nhu cầu hỗ trợ
What are your expectations for reliability?
What are your expectations for performance?
Will you support the product, or will others support it?
Do you have special needs for support?
What about maintenance and service access?
What are the instaliation and configuration requirements?
Are there special licensing requirements?
How will the software be distributed?
Are there labeling and packaging requirements?
Part IX: Các yêu cầu khác
Are there any legal, regulatory, or enviromental requirements or other standards that must be
supported?
Can you think of any other requirements we should know about?
Part X: Bao quát lại
Are there any other questions I should be asking you?
If I need to ask follow-up questions, may I give you a call? Would you be willing to participate
in a requirements review?
Part XI: Tổng kết phân tích
After the interview, and while the data is still fresh in your mind, summarize the three highestpriority needs or problems identified by this user/ custormer.




2. Requirements Workshops (Họp nhóm):
Họp nhóm là việc tập hợp ba hoặc nhiều hơn một số người cho một thời hạn nhất định để thảo
luân một số chủ đề. Họp nhóm có thể vừa bổ sung và thay thế phỏng vấn (Interviewing). Nó bổ
sung cho phỏng vấn bằng cách cho phép nhóm kiểm tra lại các kết quả phỏng vấn cá nhân, cung
cấp diễn đàn cho người sử dụng cùng tìm ra các đòi hỏi và các giải pháp cho ứng dụng.

Họp nhóm cũng có thể làm lãng phí thời gian. Nói chung, họp nhóm càng lớn thì càng ít ý kiến
nhất trí và thời gian quyết định càng kéo dài. Do vậy, nên có một kế hoạch ban đầu cho họp
nhóm. Lich trình nên được cung cấp trước cho các thành viên. Số lượng các chủ đề nên giữ ở
mức độ 1 đến 5 và không mởi những người không thích hợp để tránh lãng phí thời gian. Họp
nhóm nên có một thời gian cố định và có điểm thống nhất cụ thể với các quyết định cần thiết.
Mục đích:
- Gợi ý, phát hiện và tổ chức các yêu cầu.


-

Khuyến khích sự đồng thuận về các yêu cầu phần mềm giữa các nhà đầu tư trong thời
gian ngắn, thường mỗi cuộc họp nhóm không kéo dài quá 2 ngày (48 giờ).

Đặc điểm:
- Có lẽ đây là kĩ thuật hiệu quả nhất trong việc phát hiện yêu cầu phần mềm
- Tập hợp các nhà đầu tư trong một thời gian ngắn nhưng lại thu hút được sự tập trung
mạnh mẽ
- Việc sử dụng một người dẫn dắt chương trình bên ngoài có kinh nghiệm trong quản lí yêu
cầu có thể bảo đảm thành công cho buổi meeting
- Brainstorming (Thảo luận, góp ý) là phần quan trong nhất của Hội thảo. Ký thuật này thật
sự thích hợp trong thiết lập hội thảo. Nó khuyến khích tính sáng tạo và bầu không khí tích
cực từ tất cả các bên liên quan.
Quy trình thực hiện:
 Quảng bá nội dung, đảm bảo các bên liên quan sẽ tham dự. Chuẩn bị hậu cần tốt. Khởi
động vật chất (warm-up materials): gửi materials ra trước hội thảo để chuẩn bị tham dự và cũng
để tăng hiệu quả của cuộc hội thảo. Có 2 loại warm-up materials: thông tin cụ thể về dự án.
Trong đó có thể bao gồm bản phác thảo của các tài liệu yêu cầu, liệt kê những tính năng được đề
nghị, bản sao các cuộc phỏng vấn với những người dùng tiềm năng, báo cáo phân tích về xu
hướng, thư từ, khách hàng, báo cáo lỗi về hệ thống hiện hành, chỉ thị quản lý mới, dữ liệu

marketing mới…
 Chuẩn bị vai trò cho facililator (người dẫn chương trình hay chủ tọa)
 Lên lịch trình cho Hội thảo
 Tiến hành hội thảo
Đẩy nhanh công việc
Hỏi tất cả mọi người xem vấn đề chúng ta vừa đưa ra có đặc điểm nào cần bổ sung không trước
khi đưa ra vấn đề tiếp theo
Các yêu cầu của một hội thảo có rất nhiều điểm phải phù hợp:
- Nó phải giúp đỡ xây dựng một đội hiệu quả, tần tậm cho một mục đích chung: thành
công của dự án
- Tất cả mọi người đều được phát biểu
- Phải tiến tới một sự đồng thuận giữa nhà đầu tư và đội ngũ phát triển về những gì hệ
thống phải làm
- Trình bày, giải quyết các vấn đề gây trở ngại cho sự thành công của dự án
- Đưa ra định nghĩa sơ bộ về hệ thống
Chuẩn bị cho hội thảo
- Đưa ra các khái niệm
- Đảm bảo sự đóng góp của mọi người
- Hậu cần
- Làm nóng bầu không khí
- Chọn facililator:
+ Đó là người bên ngoài có kinh nghiệm xử lý về quản lý yêu cầu hoặc là một thành viên
trong nhóm và đã đạt được những thành tựu nhất định
+ Chứng minh được kỹ năng xây dựng sự đồng lòng hay xây dựng nhóm vững chắc


+ Là người được cả thành viên trong nhóm và ngoài nhóm tôn trọng
+ Có đủ vững vàng đối mặt với những thách thức trong hội thảo.
Trách nhiệm của facililator:
• Thiết lập một cuộc gặp mặt

• Bắt đầu và kết thúc đúng thời gian
• Thiết lập và đảm bảo quy tắc của cuộc họp
• Giới thiệu mục đích và lịch công tác của cuộc họp
• Quản lý cuộc họp và giữ đội ngũ đi đúng hướng
• Sự thuận tiện trong quá trình quyết định và sự đồng lòng, tránh các nội dung khác
biệt
• Đảm bảo lịch công tác đúng hướng
• Tất cả sự khác biệt giữa các nhà đầu tư phải được lắng nghe
• Kiểm soát các hành vi gây đổ vỡ và không mang lại giá trị
Lên lịch trình cho Workshop
Đảm bảo rằng tất cả thành viên liên quan đến dự án phải nhận được lịch họp. Cố gắng sắp xếp
sao cho mọi người có thể được.
Time
8:00 – 8:30
8:30 – 10:00

Agenda
Introduction
Context

10:00 – 12:00
12:00 – 1:00

Brainstorming
Lunch

1:00 – 2:00
2:00 – 3:00

Brainstorming

Feature definition

3:00 – 4:00
4:00 – 5:00

Idea reduction and priorization
Wrap-up

Description
Review agenda, facilities, and rules
Present project status, market needs,
results of user interviews, and so on
Brainstorm features of the application
Work through lunch to avoid loss of
momentum
Continue branistorming
Write out two – or three sentence
definitions for features
Prioritize features
Summarize and assign action items,
addresss “parking lot” items

Figure 1: Mẫu chương trình hội thảo
Đánh giá
 Ưu điểm của Workshop:
• Có thể tạo ra quyết định.
• Nhận được các thông tin tổng hợp và chi tiết.
• Phương pháp tốt cho các yêu cầu bên ngoài.
• Tập hợp được nhiều người dùng liên quan…
 Nhược điểm của Workshop:









Nếu số đại biểu nhiều sẽ tốn thời gian cho việc ra quyết định.
Tốn thời gian.
Các ngắt quãng làm phân tán sự chú ý.
Mời không dúng thành viên dẫn tới chậm có kết quả.
Dễ chuyển sang các chủ đề không liên quan như là chính trị, thể thao…

3. Brainstorming (Thảo luận)
Mục đích: đưa ra càng nhiều ý tưởng càng tốt, mục đích mới là bề rộng, chưa cần có chiều sâu.
Đặc điểm:
- Brainstorming gồm có 2 pha: Nêu ra các ý tưởng và thâu tóm lại ý tưởng: phân tích các ý
tưởng được đưa ra, chọn lọc, tổ chức, đánh giá, mở rộng theo chiều sâu, tinh chỉnh..
chúng lại thành ý tưởng thích hợp.
- Ý tưởng sáng tạo thường do kết hợp nhiều ý tưởng không liên quan lại với nhau.
- Các kỹ thuật bỏ phiếu khác nhau có thể được sử dụng để ưu tiên tạo ra các ý tưởng
- Mặc dù Brainstorming rất được ưa chuộng, web-base Brainstorming có thể là một thay
thế khả thi trong một vài trường hợp
Kỹ thuật Brainstorming có những lợi ích sau:
-

Khuyến khích được mọi thành viên tham gia
Cho phép các thành viên tranh luận với nhau về các ý kiến đề xuất
Người điều phối hoặc thư ký duy trì cuộc hội thảo không bị gián đoạn

Diễn ra nhanh chóng
Đưa ra các giải pháp khả thi cho vấn đề
Khuyến khích các ý tưởng, suy nghĩ sáng tạo, độc đáo

Người điều phối đưa ra các quy đinh của cuộc Thảo luận
- Không được phép tranh cãi, phê bình gay gắt: những người tham gia phải từ bỏ các ý
kiến phê bình trong suốt quá trình tìm và phát triển ý tưởng của nhóm.
- Tự do sáng tạo, tưởng tượng: các ý tưởng được đưa ra trong bầu không khi thoải mái, cởi
mở. Đồng thời ngừoi đề xuất ý tưởng không bị hạn chế về nội dung và không phải chững
minh tính chất đúng đắn cũng như hiện thực của ý tưởng. Có nhiều ý tưởng ban đầu trong
có vẻ ngớ ngẩn, khác thường nhưng khi thực hiện lại đem lại kết quả vượt trên mong đợi.
- Đưa ra càng nhiều ý tưởng càng tốt: khi càng có nhiều ý tưởng thì càng có nhiều khả
năng tìm được những giải pháp hữu ích
- Nghiên cứu tổng hợp lại ý tưởng hay.


Thêm nữa facililator cũng phải giải thích mục tiêu cần đạt được trong mỗi giai đoạn của cuộc
thảo luận. Mặc dù các mục tiêu trong có vẻ như là rõ ràng nhưng thực tế thì không phải vậy.
Ngoài ra các mục tiêu được quy định sẽ ảnh hưởng tới kết quả của buổi họp. Ví dụ các câu hỏi
sau đây là một cách để nêu bật các mục tiêu:
- Tính năng nào muốn có trong sản phẩm?
- Hệ thống nên cung cấp những dịch vụ gì?
- Những hội chúng ta đã bỏ lỡ trên thị trường?
Trong khi áp dụng Brainstorming tất cả các ý tưởng xuất hiện trong đầu của các thành viên trong
nhóm sẽ được viết hay vẽ ra, thông thường là bút chì và giấy trắng.
Người ta viết bất cứ thử gì có trong đầu ra mặt giấy (brain dumping), không cần phải suy nghĩ nó
là một ý tưởng tốt hay chỉ là một suy nghĩ thoảng qua trong đầu. Người ta cũng chẳng cần bận
tâm đến thẩm mỹ của việc trình bày đó. Nếu cần diễn tả một hình ảnh, nó sẽ được phác học thật
nhanh chóng. Khi phát hiện mình viết sai thì cũng chẳng cần quay lại để sửa chữa, mà sẽ để suy
nghĩ của mình được liên tục.


Phân tích kết quả:
Sau khi kết thúc, hãy lượt lại tất cả và bắt đầu đánh giá các câu trả lời:
-

Tìm những ý trùng lặp hay tương tự để thu gọn lại
Gộp các câu trả lời có sự tương tự hay tương đồng về nguyên tắc, nguyên lí. Xóa bỏ
những ý kiến hoàn toàn không thích hợp
Sau khi đã cô lập được danh sách các ý kiến, hãy bàn thêm về câu trả lời chung.

Đánh giá:
- Brainstorming giúp tổng hợp được nhiều ý tưởng từ các thành viên


-

Phân tích kỹ vấn đề, tự xem xét tất cả vấn đề có thể xảy ra trong khi ta liên tục đặt ra câu
hỏi.
Số lượng người tham gia nhiều sẽ giúp cho phương pháp tìm ra lời giải nhanh hơn hay
toàn diện hơn nhờ vào nhiều góc nhìn khác nhau bởi các trình độ, trình tự khác nhau của
mỗi người.

Ứng dụng :
Brainstorming được sử dụng trong các công việc như phát triển sản phẩm; quảng cáo; giải quết
vấn đề; quá trình quản trị; quản trị dự án; xây dựng nhóm; xây dựng kết hoạch kinh doạnh

4. Storyboarding
Đặc điểm:
- Mục đích của storyboarding là phát hiện sớm các tác động “Yes, but…”
- Kỹ thuật này có thể là bị động, chủ động hay là kết hợp cả 2 yếu tố trên

- Storyboards xác định người tham gia, giải thích chuyện gì xảy ra với họ và như thế nào
Tiến hàn storyboard dễ dàng và thường xuyên trên mọi dự án với sự phát triển nội dung mới.
Các loại StoryBoards:
• StoryBoards dạng bị động (Passive storyboards): kể về một câu chuyện của người sử
dụng. Có thể bao gồm bức phác thảo, bức tranh, ảnh chụp, hay trang thuyết trình dùng
PowerPoint hoặc là các mẫu đầu ra thử nghiệm
• StoryBoards dạng chủ động (Active storyboard): là các hoạt cảnh hoặc tự động, có thể
bằng một slide trình chiếu được sắp xếp tự động sẵn hoặc một công cụ tạo hoạt cảnh hay
thậm chí là cả một bộ phim
• StoryBoards tương tác (Interactive storyboards: để cho người dùng trải nghiệm hệ thống
một cách giống với thực tế. Cách này đòi hỏi sự tham gia của người sử dụng để thực hiện
được. Storyboards tương tác có thể giả lập hoặc tạo dựng mô hình hay có thể nâng cao tới
mức mã dùng một lần (throwaway code).


Figure 3: Storyboarding continuum
StoryBoards làm những gì (khả năng áp dụng)?
Trong phần mềm, Storyboards được sử dụng thường xuyên để làm việc thông qua các chi tiết của
giao diện tương tác người máy. Trong lĩnh vực này, mỗi người có thể có ý kiến khác nhau về
cách thức giao diện làm việc. Storyboards cho hệ thống người dùng xử lý với 3 yếu tố của hoạt
động:




Người tham gia là ai?
Điều gì xảy ra với họ?
Nó xảy ra như thế nào?

Những chú ý :

• Không nên đầu tư quá nhiều vào Storyboarding
• Storyboard nên dễ chỉnh sữa
• Không nên làm quá chi tiết, điều đó gây khó khăn khi sử dụng các kỹ thuật hoặc công cụ
khác nhau khi cài đặt sau này
• Cố gắng làm cho storyboard liên hệ với nhau, tương tác được với nhau.


5. Prototyping:
Là kỹ thuật xác định yêu cầu bằng cách đưa ra các mẫu thử. Người phát triển sẽ dựa vào các yêu
cầu khảo sát để đưa ra một sản phẩm phác thảo ban đầu có thể bằng công nghệ khác với công
nghệ sẽ được sử dụng. Sau đó có sự trao đổi với người sử dụng, từ đó tìm ra các yêu cầu một
cách cụ thể, rõ ràng hơn, đặc biệt là các yêu cầu có tính “mở”. Việc tạo mẫu thử có thể được sử
dụng nhiều lần ở nhiều phần và giai đoạn khác nhau. Các mẫu thử được tạo ra có thể có khả năng
tái sử dụng, các mẫu thử sau sẽ phát triển liên tiếp trên nền các mẫu thử trước.
Với mục đích phân tích yêu cầu phần mềm ta xem mẫu thử yêu cầu phần mềm như là sự thực thi
riêng lẻ của hệ thống, nhằm mục đích giúp đỡ người phát triển, người sử dụng và khách hàng
hiểu cặn kẽ hơn về yêu cầu của hệ thống.
Để xây dựng các mẫu thử cho mục đích phân tích yêu cầu phần mềm, trước hết người phát triển
phải khảo sát các yêu cầu của hệ thống, tiến hành trao đổi đàm phán vói khách hàng. Lựa chọn
công cụ thích hợp cho việc phát triển mẫu thử. Dựa vào các yêu cầu đã khảo sát tạo bản mẫu rồi
trao đổi với người sử dụng, với khách hàng, để phát hiện cụ thể hơn các yêu cầu đặc biệt, các yeu
cầu có tính “mở”. Tiến hành phát triển theo mẫu thử đã được phê duyệt, sau bước đó tiếp tục tạo
các mẫu thử có thể sử dụng các mẫu thử đã có từ trước.

Đặc điểm:
• Cực kỳ hiệu quả trong việc xác định các hội chứng “Yes, but” (không chắc chắn, không
bền, không đảm bảo tình lâu dài…) và “những thất bại vẫn chưa được phát hiện” (rủi ro
tiềm tàng).
• Một tạo mẫu yêu cầu phần mềm là một phần thực thi của một phần mềm hệ thống, được
xây dựng để giúp cho người phát triển, người sử dụng, và khách hàng hiểu tốt hơn về yêu

cầu hệ thống.
• Thực hiện làm mẫu các yêu càu còn “mờ”, còn chưa rõ ràng: nhờ đó, mặc dù những điều
đã biết hoặc còn “ẩn ý” vẫn chưa được định nghĩa hoặc còn được hiểu chưa rõ ràng.
Các mẫu phần mềm là hiện thân sớm của hệ thống phần mềm, cho chúng ta một phần chức năng
của một hệ thống mới. Mẫu thử cho phép người dùng có thể chạm, cảm nhận và tương tác với
một hệ thống mẫu theo cách mà không một công nghệ nào khác có thể làm được.
Các kiểu mẫu thử:
Các mẫu thử có thể được phân loại theo nhiều cách(throwaway, evolutionary, operational,
vertical, horizonal, userinterface algorithmic….). Tùy vào vấn đề cần giải quyết mà chúng ta xây
dựng các mẫu thử khác nhau:


Architectural prototype (mẫu thử hướng kiến trúc) – cho chúng ta thấy khả năng có thể
thực thi được của công nghệ.




Throwaway prototype (mẫu thử dùng một lần ) – sử dụng bất cứ công nghệ, sự mô
phỏng… hay bất cứ cái gì để hoàn thiện kết quả của bạn. Mẫu chỉ dùng cho một mục
đích, sau khi hoàn thành, mẫu sẽ được bỏ đi.

Nếu điểm yếu của dự án là giao diện người dùng, ngược lại bạn sẽ phát triển một mẫu thử yêu
cầu (requirements prototype), sử dụng bất cứ công nghệ gì cho phép bạn làm mẫu giao diện
nhanh nhất có thể.

Figure 1 Decision tree for prototype selection:
(a) Requirements prototypes
(b) Arichitectural prototypes
Requirements Prototypes – Các mẫu thử yêu cầu:

Mẫu thử yêu cầu phần mềm (software requirements prototype) là sự thi hành cục bộ (riêng lẻ)
của hệ thống phần mềm, được xây dựng để giúp các nhà phát triển (developers), người dùng
(user) và khách hàng (customer) hiểu tốt hơn về yêu cầu của hệ thống.


Vì mcụ đích phát hiện ra các yêu cầu phần mềm, chúng ta thường chọn cách xây dựng các mẫu
thử như “throwaway, horizontal (rộng), user interface” prototype (mẫu thử dùng một lần, mẫu
thử rộng, mẫu thử người dùng).
Horizontal prototypes (các mẫu thử rộng) ám chỉ rằng chúng ta sẽ thử xây dựng một dải khá rộng
chức năng của hệ thống, ngược lại, vertical prototype xây dựng chỉ một vài yêu cầu nhưng theo
một số phương pháp khá chất lượng. User interface prototype ngụ ý rằng chúng ra sẽ xây dựng
hầu hết các giao diện của hệ thống hơn là để người dùng thi hành các giải thuật và các logic xung
quanh phần mềm hoặc làm cả mẫu thử giao diệncho các hệ thống khác, thiết bị khác. Khi là một
công cụ khai thác, một mẫu thử giữ vai trò của nó theo vài cách khác nhau:




Được xây dựng bởi người phát triển, nó có thể chứa sự xác nhận của khách hàng rằng
người dùng đã hiểu yêu cầu.
Được làm bởi người phát triển, nó có thể được dùng như xúc tác khuyến khích khách
hàng nghĩ thêm các yêu cầu khác.
Được làm bởi khách hàng, nó có thể giúp trao đổi thông tin với nhà phát triển.

Trong cả 3 trường hợp, kết quả sẽ là xây dựng mẫu theo phương pháp tiêu tốn ít tài nguyên nhất.
Nếu nó quá đắt để xây dựng, nó có thể có hiệu quả hơn khi áp dụng vào hệ thống thật.
Nhiều mẫu thử phần mềm xoay sang hướng mẫu thử yêu cầu và đươc sử dụng và được sử dụng
chủ yếu để nắm được diện mạo của giao diện hệ thống cần xây dựng. Có hai lý do cho việc này:






Có nhiều công cụ, có chi phí không quá đắt và đôi khi là miễn phí hỗ trợ việc xây dựng
giao diện rất nhanh.
Với các hệ thống có tương tác người dùng khá nhiều, một giao diện người dùng đươc làm
mẫu sẽ khám phá ra rất nhiều các yêu cầu khác, như các chức năng đã được cung cấp tới
cho người dùng, khi nào các chức năng sẵn sàng cho người sử dụng và khi nào các chức
năng chưa xuất hiện với người dùng.
Tuy nhiên, chúng ta cần chắc chắn rằng tính khả dụng của những công cụ này không làm
ảnh hưởng tới việc xây dựng mẫu thư cho các phần của hệ thống không có rủi ro cao nhất
khi bắt đầu.

Figure 2 Contimuum of understading user needs
(Well – understood requirements) hiểu rõ yêu cầu có hiển nhiên nhận thấy được từ ngữ cảnh của
miền ứng dụng và kinh nghiệm của người dùng và kinh nghiệm của đội với một hệ thống cũng
kiểu.


(Unknown requirements) Những yêu cầu chưa biết, mặc dù là những rủi ro chưa được phát hiện
(“Undiscovered Ruins”) mà chúng ta thường mong là sẽ biết đến sau đó. Nhưng không may thay,
chúng ta không thể làm những mẫy thế này, nếu có thể, chúng sẽ không còn là chưa biết tới nữa
(unknown). Chính việc này đã đặt vị trí cho việc làm mẫu thử các phần “mờ” (fuzzy part) ở giữa.
Những yêu cầu này (Fuzzy) có thể được biết tới hoặc được ngầm hiểu nhưng chúng thường được
định nghĩa khá nghèo nàn và tiếp thu được rất ít thông tin.
Xây dựng mẫu thử
Sự lựa chọn công nghệ sử dụng trong khi xây dựng mẫu thử phụ thuộc vào các quyết định trong
tương lai (ở phía bên phải cây quyết định).
Đánh giá kết quả (Evaluating the results):
• Tính “mờ” cần được hiểu rõ ràng hơn.

• Thử nghiệm mẫu chắc chắn sẽ khám phá ra một đáp ứng “Yes, but…” từ phía người
dùng, do đó, những nhu cầu trước kia chưa biết sẽ “lộ ra” (become known). Đơn giản
nhìn một tập các hành vi sẽ giúp người dùng hiểu những yêu cầu khác phải được đảm
đương trong hệ thống.
Trong bất cứ trường hợp nào, Prototyping luôn luôn đưa ra được kết quả. Do đó, bạn nên làm
mẫu bất cứ ứng dụng mới nào.
Đánh giá
 Ưu điểm của Prototyping:
- Giảm thời gian phát triển.
- Giảm chi phí phát triển.
- Đòi hỏi sự tham gia của người sử dụng.
- Nhà phát triển nhận được phản hồi của người dùng.
- Tạo điều kiện thực hiện hệ thống khi người dùng biết được những gì mình cần có.
- Kết quả sẽ đem lại sự hài lòng cho người dùng
- Nâng cao hệ thống trong tương lai


-

Nhược điểm của Prototyping
Chỉ phân tích thôi là không đủ.
Người dụng mong chờ hiệu suất hệ thống giống như nguyên mẫu
Nhà phát triển có thể trở nên quá gắn bó với nguyên mẫu của họ
Đôi khi tài liệu hướng dẫn không đầy đủ
Nếu mẫu thử nghiệm quá tinh vi, lợi ích về tiết kiệm thời gian có thể bị mất


6. So sánh các kỹ thuật phát hiện yêu cầu phần mềm:
Đối tượng
tham gia

Nội dung
chuẩn bị

Interview
Khách hàng,
ngừoi phỏng
vấn
Câu hỏi

Workshop
Các bên liên
quan
Tài liệu họp

Đánh giá
phương pháp

Trực tiếp, đơn Trực tiếp,
giản
chuẩn bị công
phu

Loại yêu cầu

Tất cả

Tất cả

Brainstorming Storyboarding Prototyping
Các bên liên

Ngừoi dùng,
Người phát
quan
người phân
triển, khách
tích
hàng
Đánh giá ý
Chuẩn bị hình Chuẩn bị mẫu
tưởng
ảnh, bản phác thử, bản beta
thảo và kết
quả cuối
Trực tiếp, là
Trực tiếp, số
Trực tiếp, qua
một phần
liệu hình ảnh mẫu thử
trong tổ chức đưa ra phải
hội thảo
chính xác
Tập trung vào Tất cả
Tất cả
một yêu cầu

Câu 2: Đánh giá các tiêu chí phần mềm của 3 website của các trường đại
học Việt Nam:
-

(Đại học Quốc gia Hà Nội)

(Đại học kinh tế Quốc dân)
(Đại học Bách Khoa Hà Nội)

- Các thành phần user khi vào website 1 trường đại học: cán bộ giảng viên, sinh viên, cựu sinh
viên, khách tham quan ( có thể là các thí sinh có mong muốn thi vào trường, những người muốn
tìm hiểu về trường để phục vụ cho công việc …).
7. Các tiêu chí đánh giá chất lượng của 1 phần mềm:
Theo tiêu chuẩn ISO 9126 thì có 6 tiêu chí để đánh giá chất lượng của 1 phần mềm, đó là:
- Tính năng ( Functionality): Là khả năng của phần mềm cung cấp các chức năng thỏa mãn
các yêu cầu được xác định rõ ràng cũng như các yêu cầu 'không rõ ràng' khi phần mềm
được sử dụng trong những hoàn cảnh cụ thể. Bao gồm 4 tiêu chí nhỏ:
o Tính phù hợp(Suitability)
o Tính chính xác (Accuracy)
o Khả năng tương tác (Interoparability)
o Tính bảo mật/an toàn (Security)
- Tính tin cây (Realbility): Là khả năng của phần mềm duy trì mức hiệu năng được chỉ
định rõ khi sử dụng dưới những điều kiện cụ thể. Bao gồm các tiêu chí nhỏ:
o Tính hoàn thiện (Maturity)
o Khả năng chịu lỗi (Fault tolerant)
o Khả năng phục hồi (Recoverability)


-

-

-

-


Tính khả dụng (Usability): Là khả năng của phần mềm để có thể hiểu được, học hỏi
được, sử dụng được và hấp dẫn đối với người sử dụng:
o Dễ hiểu (Understandbility)
o Dễ học (Learnability)
o Khả năng vận hành (Operability)
o Tính hấp dẫn (Attreactiveness)
Tính hiệu quả (Efficiency): Là khả năng của phần mềm cung cấp hiệu năng thích hợp
nhằm tiết kiệm tối đa tài nguyên và tăng tối đa hiệu suất công việc, dưới những điều kiện
sử dụng nhất định:
o Thời gian xử lí (Time behavior)
o Sử dụng tài nguyên
Khả năng bảo trì (Maintainability): Là khả năng của phần mềm cho phép sửa đổi, nâng
cấp, bao gồm sửa chữa, cải tiến hoặc thích nghi của phần mềm thay đổi cho phù hợp với
môi trường, các yêu cầu và chức năng mới:
o Khả năng phân tích (Analysability)
o Khả năng thay đổi được (Changeability)
o Tính ổn định (Stability)
o Khả năng kiểm thử được (Testability)
Tính khả chuyển (Portability): Là khả năng của phần mềm có thể chuyển được từ môi
trường này sang môi trường khác:
o Khả năng thích nghi (Adaptability)
o Khẳ năng cài đặt (Installability)
o Khả năng chung sống (Co-existence)
o Khả năng thay thế được (Replaceability)

8. So sánh chất lượng của website 3 trường đại học:
BKHN (hut.edu.vn)
QGHN (vnu.edu.vn)
KTQD (neu.edu.vn)
Tính năng:

Tính phù hợp ( Suitability)
(Functionality)
Theo template của 1 website trường học ( tra cứu mục 3) thì website
của 3 trường đại học đáp ứng đầy đủ các chức năng cần thiết. ( Viết
thêm các chức năng này vào …)
Tuy nhiên đánh giá cao website của trường DHQG khi có mục giáo
trình giảng dạy, thật sự cần thiết cho sinh viên.
Tính chính xác (Accuracy)
- Thực hiện đúng các chức năng, không có sự nhầm lẫn giữa các
chức năng.
Khả năng tương tác (Interoperability)
Không có, người sử
Cũng như BKHN
Các sinh viên, cán bộ
dụng không có khả
nhân viên trong
năng liên hệ với
trường có account thì
admin hay gửi yêu
có thể đăng nhập vào


Tính tin cậy
(Realbility)
Tính khả dụng:
- Dễ hiểu
- Dễ học
- Dễ vận hành
- Tính hấp dẫn


Tính hiệu quả
(Efficiency)

Khả năng bảo trì
(Maintainability)

cầu, phản hồi, đóng
website của trường.
góp ý kiến về
website.
Website các trường đại học không đặt nặng vấn đề tương tác với người
sử dụng mà chú trọng vào việc cung cấp thông tin cho họ, nên việc
thiếu sót chức năng này không quá quan trọng.
Tính bảo mật / an toàn (Security)
- Khó có thể đánh giá được.
- Tính hoàn thiện (maturity):
- Khả năng chịu lỗi (fault tolerant):
- Khả năng phục hồi( recoverability):
- Đối với người sử dụng, khai thác các thông tin website ( không
phải người quản lí website) thì việc sử dụng website là khá dễ
dàng, các chức năng (thông tin) được trình bày trực quan, rõ
ràng, user có thể nhanh chóng tìm ra các thông tin mà mình
yêu cầu. => dễ hiểu, dễ học, dễ vận hành ( về tìm thêm)
- Tính hấp dẫn: hấp dẫn ở đây có thể hiểu là giao diện, chức
năng, cách sử dụng … có lôi cuốn user, làm họ thích thú hay
không. ( về nhà tìm thêm)
 Nhìn chung 3 website có bố cục các mục thông tin khá
giống nhau, giao diện dễ nhìn, không gây rối, dễ thao
tác.
 Chức năng và cách sử dụng cũng tương tự. Có thể hiện

thị nội dung website ở 2 ngôn ngữ là tiếng Việt và
tiếng Anh.
- Thời gian đáp ứng: cả 3 website có thời gian đáp ứng lại các
thao tác của người dùng nhanh. Chưa kiểm thử được với
trường hợp số người truy cập đông.
- Sử dụng tài nguyên: dùng trình duyệt firefox để so sánh ( tuy
không thực sự khách quan) thì khi vào các website, hệ thống sẽ
sử dụng mức tài nguyên như sau:
 BKHN: ram ~ 100MB
 QGHN: ram ~ 120MB
 KTQD: ram ~ 140MB
Mức chiếm dụng cpu không đáng kể. Với cấu hình của các pc, laptop
như hiện này thì mức chiếm dụng tài nguyên thế này là chấp nhận
được.

-

Khả năng phân tích, khả năng thay đổi được, khả năng kiểm
thử được: các vấn đề này thuộc quyền của quản trị website,
user thông thường khó có thể đánh giá được.
Tính ổn định: có thể nhận thấy các website hoạt động ổn định,
chưa gặp 1 lỗi nào.


Tính khả chuyển
(Portability)

-

Website có thể hoạt động tốt trên các trình duyệt phổ biến hiện

này như firefox, chrome, ie, opera, safari.

9. Template cho website trường học:
1. Trang chủ
- Giới thiệu về Trường, lịch sử hình thành và phát triển .
- Banner, logo, sologan của Trường.
- Hiển thị hình ảnh tổng thể Website.
- Liệt kê các tin tức mới, tin tức nổi bật trên trang chủ.
2. Giới thiệu thông tin về Trường, đơn vị đào tạo
- Cơ sở vật chất (Máy móc thiết bị, thư viện, phòng học...)
- Trình độ chuyên môn đội ngũ cán bộ
- Quy mô đào tạo của Trường.
- Các chương trình nghiên cứu Khoa học trong trường.
- Giới thiệu khác...
3. Trang giới thiệu cán bộ, công nhân viên của Trường (Ảnh và thông tin cá nhân).
- Hiển thị sơ đồ tổ chức nhân sự của Trường(Hiệu trưởng, các hiệu phó, các phòng ban trong
Trường...)
- Thông tin chi tiết các cán bộ trong Trường.
- Thông tin liên hệ các cán bộ trong Trường.
- Các thông tin tuyển dụng cán bộ(nếu có).
4. Trang thông tin các tổ chức đoàn thể trong Trường (Tổ chức Đảng, Đoàn TN, Hội SV, thư
viện, ký túc xá, các câu lạc bộ sinh viên...).
- Hiển thị danh sách các tổ chức đoàn thể trong Trường.
- Cho phép xem thông tin chi tiết các tổ chức đoàn thể.
- Thông tin các cán bộ phụ trách đoàn thể trong Trường.
- Thông tin liên hệ các tổ chức đoàn thể trong Trường.
- Các tổ chức sinh viên, cựu sinh viên.
5. Các nội quy, quy định của Trường.
- Quy định và điều kiện khi ra - vào Trường.
- Các quy định khi sử dụng tài liệu trong Trường.

- Các quy định về điều kiện sử dụng tài liệu trong Trường.
- Các quy định về cấp thẻ, sử dụng thẻ(nếu có).
- Quy định về thời gian làm việc, học tập.
- Các quy định về điều kiện học bổng - du học trong Trường.
- Các thông tin, thông báo mới...


6. Giới thiệu các hệ đào tạo trong Trường
- Thông tin về hệ đào tạo chính quy.
+ Giới thiệu về các khóa học đã qua.
+ Giới thiệu về các khóa học hiện tại.
+ Phương hướng, kế hoạch sắp tới.
+ Một số thông tin khác.
- Thông tin về hệ đào tạo tại chức (nếu có).
+ Giới thiệu về các khóa học đã qua.
+ Giới thiệu về các khóa học hiện tại.
+ Phương hướng, kế hoạch sắp tới.
+ Một số thông tin khác.
- Thông về hệ đào tạo sau khác.
+ Giới thiệu về các khóa học đã qua.
+ Giới thiệu về các khóa học hiện tại.
+ Phương hướng, kế hoạch sắp tới.
+ Một số thông tin khác.
- Hệ đào tạo từ xa (nếu có).
+ Giới thiệu về các khóa học đã qua.
+ Giới thiệu về các khóa học hiện tại.
+ Phương hướng, kế hoạch sắp tới.
+ Một số thông tin khác.
- Thông tin và chỉ tiêu tuyển sinh các hệ đào tạo.
- Những điều học sinh, sinh viên sẽ, đã và đang học cần biết về Trường.

7. Thông tin các chuyên ngành đào tạo trong Trường.
- Liệt kê danh sách và cho xem thông tin chi tiết các ngành trong Trường.
- Kế hoạch đào tạo và các chương trình đào tạo các chuyên ngành trong Trường.
- Điều kiện để có thể theo học của các chuyên ngành khác nhau.
- Chỉ tiêu tuyển sinh, đào tạo các chuyên ngành trong Trường.
8. Giới thiệu về các bộ môn trong Trường (Ảnh và thông tin cá nhân).
- Thông tin cơ bản của bộ môn.
- Hiển thị sơ đồ tổ chức nhân sự của bộ môn(Trưởng bộ môn, giáo viên cơ hữu...).
- Thông tin chi tiết các cán bộ trong bộ môn(Giáo viên chính thức, trợ giảng...).
- Thông tin liên hệ các cán bộ trong bộ môn.
- Hướng dẫn tìm kiếm tài liệu tham khảo của từng bộ môn.
- Các thông tin tuyển dụng cán bộ(nếu có).
9. Các chương trình nghiên cứu Khoa học trong Trường.
- Sinh viên nghiên cứu Khoa học trong Trường.
- Các chương trình hợp tác trong nước và quốc tế về nghiên cứu Khoa học.
- Công bố các chương trình nghiên cứu Khoa học.


- Thông tin các hội nghị, hội thảo Khoa học trong Trường.
- Thông tin các chương trình nghiên cứu Khoa học trong Trường và các trường bạn cho sinh viên
tham khảo, các điều kiện để đăng ký tham gia nếu sinh viên trong Trường được phép đăng ký
tham gia.
10. Quản lý các quy trình giảng dạy và học tập trong Trường (Học trực tuyến).
- Ngay trong quá trình giảng dạy của bôn môn, các giáo viên có thể upload các tài liệu liên quan
đế bộ môn lên trang web, sinh viên có thể download các tài liệu đó để tham khảo phục vụ cho
việc học tập
- Để có thể upload file hoặc điểm của sinh viên, các giáo viên phải đăng nhập hệ thống, từ đó
mới có thể upload tài liệu và điểm thi của sinh viên.
- Giáo viên bộ môn có thể đưa thông tin về điểm của các sinh viên lên website để sinh viên tự
xem điểm thi bộ môn tương ứng của mình.

- Khi sinh viên trúng tuyển, sẽ được nhà trường cấp mã sinh viên và sau đó, sinh viên đó sẽ được
cấp 1 acount với user name (thông thường là dùng ngay mã sinh viên) và mật khẩu của mình để
truy cập hệ thống.
- Hệ thống cho phép các sinh viên đăng nhập bằng user và mật khẩu của mình để xem điểm theo
môn học của mình.
- Sau khi đăng nhập xong, các sinh viên cũng có thể download tài liệu tham khảo của bộ môn
liên quan do giáo viên bộ môn upload lên.
+ Lưu ý: Mỗi giáo viên bộ môn chỉ được cập nhật tài liệu liên quan đến bộ môn của mình bằng
acount của mình. Mỗi sinh viên chỉ được xem thông tin cá nhân của mình(Thông tin bản thân:
Họ và tên, quê quán...Thông tin về điểm, thông tin khác – nếu có), không được xem thông tin cá
nhân của các sinh viên khác
11. Thông tin về các chương trình hợp tác.
- Các chương trình hợp tác trong nước.
- Các chương trình hợp tác quốc tế.
- Giới thiệu các chương trình hợp tác đào tạo đã thực hiện.
- Giới thiệu các chương trình hợp tác đang thực hiện.
- Định hướng, kế hoạch hợp tác phát triển Trường bền vững, lâu dài.
- Các bài viết nhận xét, đánh giá về từng chương trình hợp tác cụ thể.
12. Các thành tựu đã đạt được.
- Giới thiệu các thành công đã đạt được.
- Các bằng khen, huân chương cho các tập thể và cá nhân.
- Một số thành tựu khác...
13. Các hình ảnh hoạt động của Trường
- Hiển thị các hình ảnh hoạt động của Trường.
- Các hình ảnh hoạt động giao lưu với các Trường khác, các tổ chức khác trong trường.
- Hình ảnh các chương trình giao lưu, trao đổi với đơn vị cùng ngành.
- Các hình ảnh hoạt động giao lưu với các tổ chức khác.


- Hình ảnh hoạt động của các tổ chức trong Trường(Đảng, Đoàn TN, Hội SV, SV tình nguyện...)

- Hình ảnh các chương trình hoạt động khác.
14. Tìm kiếm - tra cứu.
- Cho phép tìm kiếm theo nhiều tiêu chí kết hợp.
- Tìm kiếm theo từ khóa để có được kết quả liệt kê.
- Một số tiêu chí tìm kiếm khác.
15. Quản lý tin tức
- Tin hoạt động của Trường.
- Tin chuyên ngành Trường
- Tin tức trong nước
- Tin tức quốc tế.
16. Thông tin liên hệ.
- Hiển thị thông tin liên hệ của Trường.
- Sơ đồ địa chỉ của Trường.
17. Sơ đồ Website.
- Hiển thị sơ đồ Website, cho phép người dùng có thể vào nhanh các mục cần xem
18. Liên kết website.
- Liên kết đến các Website của các tổ chức, đoàn thể...
- Liên kết đến các Website của cấp trên.
- Liên kết đến các Website Trường khác cùng trường, của trường khác...
- Liên kết đến các Website các tổ chức quốc tế có liên quan.
- Liên kết đên Website của các lĩnh vực Trường học - kỹ thuật.
- Liên kết đến các Website tin tức, thời sự, kinh tế, văn hóa...
19. Xây dựng trang quản trị tin tức và tài liệu, ấn phẩm.
- Cho phép cập nhật thông tin tin tức.
- Cập nhật thông tin tài liệu, ấn phẩm và các thuộc tính liên quan.



×