CSC13005 - Phân tích và quản lý yêu cầu phần mềm # ÔN TẬP YCPM ## <font color="#4CB5F5">Phần 1 - LÝ THUYẾT</font> ### <font color="#CB0000">A - Thu thập yêu cầu</font> #### 1. Yêu cầu phần mềm là gì? Có bao nhiêu loại yêu cầu? ``` - Là tình trạng/khả năng của người dùng cần để giải quyết vấn đề hay đạt được mục tiêu - Là trạng thái phải đáp ứng của hệ thống để thỏa mãn tiêu chuẩn, đặc tả, mô tả - Có 2 loại yêu cầu: + Yêu cầu chức năng: gồm tính năng, giao diện, input/output + Yêu cầu phi chức năng: - Chất lượng người dùng: gồm hiệu năng, độ chính xác và độ tin cậy - Chất lượng nhà phát triển: dễ bảo trì, tái sử dụng và khả năng liên vận hành ``` #### 2. Nêu các kỹ thuật phát hiện yêu cầu? ``` Gồm 8 kỹ thuật: 1. Động não: sử dụng để giúp stakeholder tìm ra các ý tưởng sáng tạo hoặc cách tiếp cận mới cho vấn đề 2. Workshops: là các cuộc gặp được điều phối, có liên quan đến nhiều stakeholder để phác thảo và tạo ra các tài liệu yêu cầu 3. Phỏng vấn: là các cuộc gặp cá nhân, nhà phân tích nghiệp vụ đặt câu hỏi cho stakeholder để lấy thông tin 4. Khảo sát: thu thập thông tin nặc danh từ stakeholder 5. Xem xét lại các tài liệu: là tiến trình đạt được các yêu cầu từ tài liệu viết, ví dụ như là hướng dẫn sử dụng 6. Sử dụng nguyên mẫu: sử dụng các phiên bản đã hoàn thiện một phần của phần mềm để xác minh yêu cầu 7. Tập trung nhóm: là hình thức phỏng vẫn nhóm, nhà phân tích nghiệp vụ đưa ra các vấn đề, câu hỏi để lấy thông tin từ stakeholder 8. Quan sát: nhà phân tích nghiệp vụ quan sát người dùng thực hiện công việc hằng ngày và đặt câu hỏi để lấy thông tin ``` #### 3. Stakeholder là gì? ``` Là cá nhân/nhóm người, có mối quan tâm đến phần mềm, có ảnh hưởng đến các yêu cầu phần mềm và bị ảnh hưởng mởi sản phẩm phần mềm ``` --- ### <font color="#CB0000">B - Tầm nhìn và phạm vi</font> #### 1. Mục đích của việc phát biểu tầm nhìn là gì? ``` - Đảm bảo các định nghĩa của sản phẩm tương ứng với các mục đích và mục tiêu nghiệp vụ - Xác định các stakeholders – Ai sẽ mua hay dùng sản phẩm? - Sản phẩm sẽ làm gì cho các stakeholder của nó? - Lí do mua hoặc dùng sản phẩm là gì? - Điểm khác biệt của sản phẩm với các sản phẩm khác là gì? - Mô tả trạng thái của nghiệp vụ - điểm mạnh, yếu - Mô tả các cơ hội và thử thách với nghiệp vụ ``` #### 2. Một tài liệu Vision gồm những nội dung chính nào? ``` - Vị trí của sản phẩm - Mô tả stakeholder và người dùng - Tổng quan hệ thống + Quan điểm về sản phẩm + Tóm tắt những lợi ích và tính năng chính mà sản phẩm sẽ cung cấp + Chi phí và giá + Vấn đề bản quyền - Mô tả các chức năng của phẩn mềm - Ràng buộc phạm vi chất lượng - Yêu cầu khác + Tiêu chuẩn áp dụng + Yêu cầu hệ thống + Yêu cầu hiệu suất + Yêu cầu môi trường người dùng + Yêu cầu về sưu liệu: hướng dẫn sử dụng, trợ giúp trực tuyến, hướng dẫn cài đặt, cấu hình ``` --- ### <font color="#CB0000">C - Phân tích yêu cầu</font> #### 1. Phân tích yêu cầu là gì? Để phân tích hiệu quả yêu cầu cần làm gì? ``` - Là các kĩ thuật quyết định tính năng nào là thích hợp cho sản phẩm dựa trên nhu cầu của stakeholder - Để phân tích hiệu quả yêu cầu, kĩ sư phần mềm cần hiểu, định nghĩa và xác minh yêu cầu từ quan điểm của các stakeholder, để có thể xếp hạng độ ưu tiên các nhu cầu trước khi chỉ định yêu cầu cho phần mềm - Kết quả của phân tích yêu cầu là các mô hình yêu cầu Mô hình yêu cầu là các yêu cầu đại diện bởi lược đồ, văn bản có cấu trúc (danh sách, bảng, ma trận) ``` #### 2. Mô tả tiến trình phân tích yêu cầu ``` - Là tiền trình chuyển các nhu cầu nghiệp vụ thành các mô tả hệ thống với tham số hiệu năng và phân hoạch chúng thành các hệ thống con để cấp phát phần cứng và phần mềm - Mục tiêu: Định nghĩa hệ thống sẽ làm cái gì? - Quy trình: 1. Xem xét tất cả các yêu cầu để đảm bảo chúng khớp với các mục đích và mục tiêu nghiệp vụ 2. Định nghĩa phạm vi dự án 3. Tạo ra các yêu cầu chi tiết, sử dụng nhiều mô hình giúp stakeholder hiểu rõ các nhu cầu của họ 4. Xếp hạng độ ưu tiên các yêu cầu 5. Tiếp tục phân tích khi có nhiều chi tiết xuất hiện 6. Gán các thuộc tính chất lượng khi các yêu cầu được phát hiện và tinh chế ``` #### 3. Các thuộc tính chất lượng phần mềm ``` 1. Hiệu năng: là khả năng của hệ thống cấp phát tài nguyên - Độ trễ: Thời gian hồi đáp lại một yêu cầu - Thông lượng: Số lượng sự kiện hoàn thành trong thời gian quan sát - Sức chứa: Lượng công việc một hệ thống có thể thực hiện mà vẫn thỏa mãn độ trễ và yêu cầu thông lượng (không suy giảm) 2. Tính mở rộng: Khả năng chuyển đổi, Khả năng sửa đổi - Khả năng chuyển đổi: Là mức độ phần mềm chạy trên một nền tảng có thể dễ dàng chuyển đổi sang nền tảng khác, chuyển đổi ngôn ngữ. - Khả năng sửa đổi: là chi phí thực hiện thay đổi. Cần quan tâm: + Cái gì có thể thay đổi: Chức năng, Phần cứng, Hệ thống, Phần mềm. + Ai sẽ tạo ra thay đổi: Nhà phát triển, hệ thống, người dùng + Khi nào sẽ có thay đổi: trong quá trình phát triển hay bảo trì + Các thay đổi có thể được phân loại dựa vào + Xác suất – Khả năng nó sẽ xảy ra + Tần suất – Bao lâu thì sẽ thay đổi. + Sự phụ thuộc – Cách ảnh hưởng lên những điều khác 3. Tính bảo mật: 3 mức cơ bản - Tuyệt mật: Bảo vệ khỏi việc đính kèm không phép. - Tích hợp: Bảo vệ khỏi thay đổi không phép - Khả dụng: Bảo vệ khỏi từ chối dịch vụ đối với người dùng được cấp phép 4. Tính khả dụng (tính hữu dụng): 5 lĩnh vực để đo lường tính hữu dụng - Thời gian để học sử dụng - Tốc độ thực thi - Mức độ lỗi - Duy trì trong một thời gian dài - Thỏa mãn chủ quan 5. Độ tin cậy: Khả năng của hệ thống cư xử nhất quán theo cách người dùng chấp nhận được khi vận hành trong môi trường dành cho nó. Độ tin cậy có thể được định nghĩa với thuật ngữ phần trăm (99.999%). ``` --- ### <font color="#CB0000">D - Xếp hạng ưu tiên và Kiểm tra hợp lệ </font> #### 1. Kỹ thuật xác định độ ưu tiên - 1 ``` - Must Have (Essential - High): Không có các yêu cầu (chức năng), hệ thống không phải là chính nó và các nghiệp vụ không thể giải quyết. - Should Have (Desirable- Medium): các tính năng quan trọng để phân biệt hệ thống và các hệ thống tương tự. - Nice to Have (Optional - Low): các tính năng tăng cường hệ thống nhưng không đáng kể. ``` #### 2. Kỹ thuật xác định độ ưu tiên - 2 | | Important | Not Important | | -------------- | -------------- | -------------- | | **Urgent** | High Priority | Don't do these!| | **Not Urgent** | Medium Priority| Low Priority | #### 3. Kỹ thuật xác định độ ưu tiên - 3 ``` - Ước lượng giá trị, chi phí, rủi ro của mỗi yêu cầu: thang điểm từ 1 đến 9 - Tính % trên dự án (cộng tổng và chia cho số lượng yêu cầu) - Công thức: (% giá trị) / (% chi phí * % rủi ro) * kết quả càng cao, thì độ ưu tiên càng cao ``` --- ## <font color="#4CB5F5">Phần 2 - THỰC HÀNH</font> ### <font color="#CB0000">A - Đề tài</font> ``` 1. Mạng xã hội âm nhạc 2. REAL LOVE (thuenguoiyeu) 3. FoodLife 4. Sàn thương mại điện tử GETIT 5. RES travel 6. Website giao dịch bất động sản ``` --- ### <font color="#CB0000">B - Tiêu chuẩn áp dụng</font> ``` - Tiêu chuẩn ISO/IEC 9126: là tiêu chuẩn quốc tế để đánh giá chất lượng các phần mềm doanh nghiệp. ISO/IEC 9126 được giám sát bởi ISO 25000:2005 dựa trên các khái niệm chung tương đương nhau. - Tiêu chuẩn ISO 27001: là hệ thống tiêu chuẩn của Anh về hệ thống quản lý an ninh thông tin. Tiêu chuẩn ISO 27001 giúp quản lý an ninh thông tin một cách hiệu quả nhất. Đảm bảo an toàn thông tin của tổ chức đối tác và khách hàng; giúp cho hoạt động của tổ chức luôn thông suốt và an toàn Nâng cao uy tín của tổ chức, tăng sức cạnh tranh; tạo lòng tin với đối tác, khách hàng - Pháp lệnh số 39/2001/PL-UBTVQH10 của Quốc hội: là pháp lệnh quy định về quảng cáo, bảo vệ quyền và lợi ích hợp pháp của người tiêu dùng, của tổ chức, cá nhân trong hoạt động quảng cáo ``` --- ### <font color="#CB0000">C - Yêu cầu chức năng</font> --- ### <font color="#CB0000">D - Yêu cầu phi chức năng</font> #### 1. Sản phẩm phần mềm: Website ``` - Yêu cầu môi trường người dùng: trình duyệt web phổ biến (Cốc Cốc, Google Chrome, Firefox, Microsoft Edge, Safari, Opera, …) - Yêu cầu hiệu suất + Thời gian chuyển hướng trang web dưới 2s + Thời gian tải những thành phần chính, hiển thị màu, hình ảnh, chữ phải dưới 3s + Thời gian có thể tương tác(chưa tải xong hoàn chỉnh) phải dưới 3s + Thời gian tải hoàn thành một trang web Trang chủ dưới 20s + Đảm bảo website được duy trì và hoạt động ổn định, không crash, sập web hoặc lỗi bảo mật + Đảm bảo có thể tiếp nhận lượng truy cập đồng thời của 1000 người dùng - Khả năng chuyển đổi Phần mềm cho phép người dùng sử dụng trên các hệ điều hành khác nhau, các thiết bị khác nhau, chỉ cần đã cài đặt trình duyệt web và kết nối với Internet - Khả năng sửa đổi + Website phải ràng buộc thông tin người dùng nhập, xử lý thông tin đầu vào hợp lệ một cách linh hoạt (tức là phát hiện đầu vào không hợp lệ, gửi thông báo yêu cầu đầu vào hợp lệ). + Website phải xử lý các lỗi phần cứng một cách linh hoạt (tức là cung cấp những phương án chuyển đổi dự phòng, thông báo cho nhà điều hành hệ thống). - Độ tin cậy + Thời gian trung bình giữa các lần xảy ra sự cố sẽ vượt quá 6 tháng. + Hệ thống đơn giản, dễ sử dụng, không yêu cầu cài đặt + Giao diện chuẩn, màu sắc hợp lý, tất cả tính năng phải chạy ổn + Sản phẩm phải vượt qua tất cả các Test-case và automation testing - Khả năng tái sử dụng + Website phải kết hợp với các cơ sở dữ liệu khác nhau một cách linh hoạt + Website sẽ sử dụng lại cấu trúc phần mềm để phát triển trên ứng dụng mobile trong tương lai + Website sẽ sử dụng lại phần mềm để gửi email, thông báo đến người dùng - Độ bảo mật + Website sẽ không vô tình làm mất thông tin tài khoản người dùng. + Số lượng tương tác, sử dụng của người dùng đối với các trang web bất động sản hiện nay là rất lớn. Do đó, người quản lý phần mềm cần phải có trách nhiệm hoàn toàn khi để thất thoát dữ liệu cá nhân của người dùng, kiểm duyệt sai đối với các tài khoản giả mạo, lừa đảo,... ``` --- #### 2. Sản phẩm phần mềm: Ứng dụng moblie ``` - Yêu cầu môi trường: - Yêu cầu hiệu suất: - Khả năng chuyển đổi: - Khả năng sửa đổi: - Độ tin cậy: - Khả năng tái sử dụng: - Độ bảo mật: ``` ---