Hãy đánh giá phần mềm mà bạn đã lựa chọn ở ý trên với các thuộc tính chất lượng này.-Chức năng: Phù hợp, Chính xác, Tương tác, Thực hiện đúng, an toàn.-Tin cậy: Tỉ lệ trục trặc thấp
Bài tập cuối chương Bài 1.1 a) Nêu khái niệm về phần mềm Lấy ví dụ và mô tả về một phần mềm mà bạn sử dụng thường xuyên - phần mềm là chương trình chứa các dòng lệnh chỉ thị cho máy tính thực hiện một công việc nào đó [1] Theo nghĩa hoàn thiện hơn, phần mềm được xem là một sản phẩm bao gồm ba phần: (1) Các chương trình máy tính đơn lẻ: - Các file mã nguồn - Các file mã máy (file text): mã nguồn sau khi dịch và đóng gói (2) Dữ liệu: - Cấu trúc làm việc (bộ nhớ trong): các cấu trúc dữ liệu - Cấu trúc lưu trữ (bộ nhớ ngoài): cơ sở dữ liệu/file dữ liệu (3) Các tài liệu liên quan: - Tài liệu hướng dẫn sử dụng (dành cho người dùng cuối) - Tài liệu tham khảo kỹ thuật (dành cho người bảo trì phần mềm) - Tài liệu phát triển (dành cho nhà phát triển) Ngoài ra cần một Website cung cấp các thông tin về sản phẩm phần mềm & các bản cập nhật mới nhất về phần mềm - Vd: phần mềm quản lý nhân sự, chương trình quản lý tín dụng - Vd: Microsoft Office Mô tả: Microsoft Office là một bộ ứng dụng văn phòng phổ biến được sử dụng rộng rãi trên toàn thế giới Bộ ứng dụng này bao gồm các thành phần như Microsoft Word (xử lý văn bản), Microsoft Excel (tạo và quản lý bảng tính), Microsoft PowerPoint (tạo và thuyết trình bài giảng), và nhiều ứng dụng khác Người dùng có thể sử dụng Microsoft Office để soạn thảo văn bản, tạo bảng tính phức tạp, thiết kế bài thuyết trình chuyên nghiệp và thực hiện nhiều công việc văn phòng khác Phần mềm này đặc biệt hữu ích trong môi trường công việc, giáo dục và cá nhân b) Liệt kê 5 thuộc tính chất lượng cho một phần mềm tốt Hãy đánh giá phần mềm mà bạn đã lựa chọn ở ý trên với các thuộc tính chất lượng này - Chức năng: Phù hợp, Chính xác, Tương tác, Thực hiện đúng, an toàn - Tin cậy: Tỉ lệ trục trặc thấp, khả năng kháng lỗi, khả năng khôi - Dùng được: Dễ hiểu, dễ đọc, dễ dùng - Hiệu quả: Đáp ứng đc về tgian, đáp ứng đc về tài nguyên - Bảo trì đc: Phân tích đc, thay đổi dc, ổn định, kiểm thử - Khả chuyên: thích nghi đc, cài đặt đc, tuân chuẩn, có thể thay thế đc Phần mềm phải đáp ứng dc các chức năng theo yêu cầu, có hiệu năng tốt, có khả năng bảo trì, đáng tin cậy, và dc ng sử dụng chấp nhận 1 Độ Ổn Định (Stability): Một phần mềm tốt nên hoạt động mà không gặp phải lỗi hay sự sụp đổ thường xuyên Nếu một ứng dụng đảm bảo độ ổn định, người dùng có thể tin tưởng và sử dụng mà không phải lo lắng về việc mất dữ liệu hoặc trục trặc đột ngột 2 Hiệu Suất (Performance): Phần mềm tốt nên có hiệu suất cao, hoạt động nhanh chóng và mượt mà Người dùng không muốn đối mặt với việc phải chờ đợi lâu khi thực hiện các tác vụ, và phần mềm cần phản hồi nhanh gọn 3 Bảo mật (Security): Sự bảo mật là một yếu tố quan trọng Phần mềm cần bảo vệ thông tin cá nhân và dữ liệu người dùng khỏi rủi ro mất mát hoặc truy cập trái phép 4 Tương Thích (Compatibility): Phần mềm nên tương thích tốt với các hệ điều hành, thiết bị và ứng dụng khác Điều này đảm bảo rằng người dùng có thể tích hợp phần mềm vào môi trường làm việc của họ mà không gặp vấn đề tương thích 1 5 Dễ Sử Dụng (Usability): Một giao diện người dùng thân thiện và dễ sử dụng giúp tăng trải nghiệm người dùng và giảm thiểu thời gian đào tạo Phần mềm tốt nên cung cấp các tính năng dễ tìm kiếm và sử dụng b) Đánh Giá Microsoft Office: 1 Độ Ổn Định: Microsoft Office thường xuyên được cập nhật và duy trì, cung cấp phiên bản độ ổn định cho người dùng 2 Hiệu Suất: Với việc sử dụng tài nguyên hiệu quả và cải thiện liên tục, Microsoft Office đáp ứng yêu cầu về hiệu suất 3 Bảo Mật: Microsoft Office thường xuyên cập nhật để bảo vệ khỏi các lỗ hổng bảo mật và đảm bảo an toàn cho dữ liệu người dùng 4 Tương Thích: Office có thể hoạt động trên nhiều hệ điều hành và tương thích tốt với nhiều định dạng tệp 5 Dễ Sử Dụng: Giao diện người dùng của Microsoft Office thân thiện và dễ sử dụng, với nhiều tính năng được tổ chức một cách logic a) Phần mềm hệ thống (System Software) a) Phần mềm trí tuệ nhân tạo (Artificial Intelligence Software) b) Phần mềm thời gian thực (Real time Software) c) Phần mềm nghiệp vụ (Business Software) a) Phần Mềm Hệ Thống (System Software): 1 Độ Ổn Định: Phần mềm hệ thống nên đảm bảo độ ổn định cao để đảm bảo hoạt động ổn định của toàn hệ thống Hệ điều hành như Windows, Linux là một ví dụ 2 Hiệu Suất: Phải có hiệu suất tối ưu để quản lý tài nguyên hệ thống và cung cấp trải nghiệm mượt mà cho người dùng 3 Bảo Mật: Vì là phần mềm cơ bản của hệ thống, đảm bảo bảo mật là rất quan trọng để ngăn chặn các mối đe dọa mạng và bảo vệ dữ liệu 4 Tương Thích: Phải tương thích với nhiều loại phần cứng và ứng dụng khác nhau để có thể chạy trên nhiều hệ thống 5 Dễ Sử Dụng (đối với người quản trị hệ thống): Giao diện quản trị phải được thiết kế sao cho người quản trị có thể dễ dàng giám sát và điều chỉnh cài đặt Đánh Giá: Windows Operating System: Độ ổn định và hiệu suất cao, cung cấp bảo mật thông tin và tương thích rộng rãi với nhiều phần cứng và phần mềm khác nhau b) Phần Mềm Trí Tuệ Nhân Tạo (Artificial Intelligence Software): 1 Khả Năng Học (Learning Capability): Phần mềm AI cần có khả năng học từ dữ liệu và cải thiện hiệu suất theo thời gian 2 Độ Chính Xác (Accuracy): Độ chính xác cao là một yếu tố quan trọng để đảm bảo quyết định của AI là chính xác 3 Khả Năng Tương Tác (Interaction Capability): Nếu là phần mềm AI tương tác với người dùng, khả năng tương tác là quan trọng 4 Tính Linh Hoạt (Flexibility): Có khả năng thích nghi với các tình huống và yêu cầu mới 5 Bảo Mật Dữ Liệu: Bảo mật là quan trọng để đảm bảo an toàn cho dữ liệu được sử dụng trong quá trình học 2 Đánh Giá: Google's TensorFlow: Cung cấp khả năng học mạnh mẽ, độ chính xác cao và khả năng tương tác, nhưng đòi hỏi kiến thức sâu rộng về AI để tận dụng hết tiềm năng c) Phần Mềm Thời Gian Thực (Real-time Software): 1 Độ Tương Thích Thời Gian (Time Compatibility): Phần mềm thời gian thực cần hoạt động theo thời gian thực và đáp ứng trong khoảng thời gian nhất định 2 Độ Tin Cậy (Reliability): Phải đảm bảo độ tin cậy để ngăn chặn các lỗi có thể ảnh hưởng đến tính thời gian thực 3 Hiệu Suất (Performance): Phải có hiệu suất cao để xử lý dữ liệu và tương tác ngay lập tức 4 Bảo Mật (Security): Bảo mật dữ liệu trong thời gian thực là quan trọng 5 Độ Khả dụng (Availability): Phần mềm phải có sẵn khi cần thiết Đánh Giá: Embedded Real-Time Operating Systems (RTOS): Cung cấp độ tương thích thời gian, độ tin cậy cao và hiệu suất, thích hợp cho các ứng dụng như điều khiển máy móc và hệ thống nhúng Bài 1.3 Hãy cho biết các nhiệm vụ cơ bản mà tất cả các dự án kỹ nghệ phần mềm phải triển khai là gì? Thu Thập Yêu Cầu (Requirement Analysis): Hiểu rõ và xác định yêu cầu của khách hàng để xây dựng phần mềm đáp ứng đúng nhu cầu và mong muốn Phân Tích (Analysis): Phân tích yêu cầu và đặc tả hệ thống để hiểu cách các yêu cầu sẽ được triển khai trong hệ thống Thiết Kế (Design): Xây dựng kiến trúc và thiết kế chi tiết của hệ thống để đảm bảo rằng phần mềm có thể được triển khai một cách hiệu quả Lập Trình (Coding): Viết mã nguồn dựa trên thiết kế để tạo ra các chương trình và module cần thiết Kiểm Thử (Testing): Thực hiện kiểm thử để đảm bảo rằng phần mềm hoạt động đúng đắn và đáp ứng các yêu cầu Triển Khai (Deployment): Triển khai phần mềm vào môi trường sản xuất sau khi hoàn thành kiểm thử Bảo Trì (Maintenance): Thực hiện các hoạt động bảo trì để sửa lỗi, cải tiến và mở rộng tính năng theo thời gian Quản Lý Dự Án (Project Management): Theo dõi tiến độ dự án, quản lý tài nguyên và đảm bảo rằng dự án được triển khai theo kế hoạch Quản Lý Chất Lượng (Quality Management): Đảm bảo rằng phần mềm đáp ứng các tiêu chí chất lượng và được kiểm soát chất lượng thường xuyên 3 Quản Lý Rủi Ro (Risk Management): Đánh giá và quản lý rủi ro có thể ảnh hưởng đến tiến độ và chất lượng của dự án Hỗ Trợ Người Dùng Cuối (End User Support): Cung cấp hỗ trợ cho người dùng cuối khi họ sử dụng phần mềm, giải quyết vấn đề và đáp ứng các yêu cầu hỗ trợ Bài 1.4 Trình bày ngắn gọn các nhiệm vụ đã liệt kê ở bài tập 1.3 Bài 1.5 Hãy liệt kê ít nhất 5 thứ cần chuẩn bị cho giai đoạn phát hành/deployment phần mềm 1 Gói Phần Mềm (Software Package): Đảm bảo rằng tất cả các thành phần cần thiết của phần mềm đã được đóng gói một cách đầy đủ và chính xác Gói phần mềm này cần bao gồm mã nguồn, tài liệu hướng dẫn, tập tin cài đặt, và bất kỳ yêu cầu hệ thống nào 2 Tài Nguyên Hạ Tầng (Infrastructure Resources): Kiểm tra và chuẩn bị tài nguyên hạ tầng cần thiết để triển khai phần mềm, bao gồm cả máy chủ, cơ sở dữ liệu, và môi trường mạng Đảm bảo rằng tất cả các tài nguyên này đáp ứng các yêu cầu của phần mềm 3 Tài Liệu Hướng Dẫn (Documentation): Chuẩn bị tài liệu hướng dẫn triển khai chi tiết, bao gồm cách cài đặt, cấu hình, và bắt đầu sử dụng phần mềm Tài liệu này hỗ trợ người quản trị hệ thống và người dùng cuối trong quá trình triển khai 4 Quy Trình Kiểm Thử (Testing Procedures): Thực hiện kiểm thử cuối cùng trước khi triển khai để đảm bảo rằng phần mềm hoạt động đúng đắn và không gặp lỗi nổi bật Kiểm thử này bao gồm cả kiểm thử chức năng và kiểm thử hiệu suất 5 Kế Hoạch Hỗ Trợ (Support Plan): Xây dựng kế hoạch hỗ trợ sau triển khai để giải quyết các vấn đề và lỗi một cách nhanh chóng Bao gồm cả quy trình báo cáo sự cố và thời gian phản hồi 6 Quy Trình Rollback (Rollback Procedures): Chuẩn bị quy trình rollback để xử lý tình huống khi cần phải quay trở lại phiên bản trước của phần mềm do các vấn đề không mong muốn xảy ra sau triển khai Bài 1.6 Trước khi bắt đầu triển khai dự án SE, bạn cần chuẩn bị sẵn các công cụ/công nghệ nào để sử dụng xuyên suốt qua mọi giai đoạn tiến triển của dự án (beginning to end - từ giai đoạn thu thập yêu cầu của khách hàng → kết thúc dự án chuyển giao sản phẩm đến khách hàng)? Base Wework hỗ trợ người dùng tất cả công đoạn trong quy trình quản lý công việc và cộng tác giữa các thành viên trong nhóm Từ lập kế hoạch, giao việc, báo cáo kết quả, liên lạc trao đổi,… đều dễ dàng sử dụng trên điện thoại di động, giúp người dùng chủ động quản lý công việc Phần mềm làm việc nhóm này hoạt động trơn tru cả trên điện thoại di động, tablet và máy tính (laptop, PC), đem lại một trong những giải pháp quản lý dự án và công việc hiệu quả bậc nhất cho doanh nghiệp của bạn trong kỷ nguyên số Bài 1.7 Liệt kê 7 tính năng mà một hệ thống quản lý tài liệu dự án cần có Các công cụ quản lý dự án gồm tính năng như: tạo dự án, tạo nhiệm vụ trong dự án, phân bổ công việc, theo dõi thời gian thực hiện, theo dõi tiến độ dự án, lập ngân sách, theo dõi bảng phân bổ nguồn lực,… 4 Bài 1.9 Microsoft Word cũng cung cấp một công cụ so sánh tài liệu Nếu bạn thực hiện theo đúng các hướng dẫn ở bài tập trước bạn sẽ có 2 phiên bản của cùng một tài liệu Trong the Review tab’s Compare group, mở the Compare drop-down và lựa chọn Compare Lựa chọn 2 phiên bản của file và so sánh chúng Hãy cho biết những điểm tương tự và điểm khác biệt/thay đổi giữa 2 phiên bản được thể hiện như thế nào? Tại sao bạn sử dụng công cụ này thay vì sử dụng một công cụ theo dõi thay đổi khác? Bài 1.11 Liệt kê các tài liệu cần xây dựng tại giai đoạn tiền dự án 1 Bảng Đề Xuất Dự Án (Project Proposal): Mô tả tóm lược về mục tiêu của dự án Xác định lợi ích kỳ vọng từ dự án Nêu rõ nhóm mục tiêu và đối tượng của dự án 2 Phân Tích Yêu Cầu (Requirements Analysis): Xác định và mô tả chi tiết về yêu cầu chức năng và phi chức năng của hệ thống Xác định và mô tả các ràng buộc và yêu cầu kỹ thuật 3 Kế Hoạch Dự Án (Project Plan): Mô tả lịch trình dự án với các giai đoạn, công việc, và mốc thời gian Xác định nguồn lực cần thiết, bao gồm cả nhân sự, tài nguyên và ngân sách 4 Phân Tích Rủi Ro (Risk Analysis): Đánh giá và xác định các rủi ro có thể xảy ra trong quá trình triển khai dự án Xác định các biện pháp giảm thiểu rủi ro và phương thức đối phó khi rủi ro xảy ra 5 Bảng Phân Phối Trách Nhiệm (Responsibility Assignment Matrix - RAM): Xác định rõ vai trò và trách nhiệm của từng thành viên trong dự án Liệt kê công việc cụ thể và người chịu trách nhiệm 6 Bảng Đánh Giá Hiệu Suất (Performance Evaluation Matrix): Đặt ra các chỉ số hiệu suất cụ thể để đo lường sự thành công của dự án Xác định tiêu chí đánh giá để đảm bảo rằng mục tiêu được đạt được 7 Mô Hình Dữ Liệu (Data Model): Tạo mô hình dữ liệu mô tả cách thông tin sẽ được tổ chức và lưu trữ trong hệ thống 8 Bảng Thiết Kế Kiến Trúc (Architecture Design Document): Mô tả kiến trúc hệ thống, bao gồm các thành phần, khối lượng, và cách chúng tương tác với nhau 9 Bảng Mô Tả Giao Diện Người Dùng (User Interface Description Document): Mô tả cách người dùng sẽ tương tác với hệ thống, bao gồm các mô tả về giao diện và trải nghiệm người dùng 10 Mô Hình Dịch Vụ (Service Model): Mô tả cách các dịch vụ và chức năng cụ thể của hệ thống sẽ được triển khai 5 Bài tập cuối chương Bài 2.1 Hãy so sánh các mô hình phát triển phần mềm: Thác nước, Chữ V, Mẫu thử, Xoắn ốc, Agile Đặc điểm chính Ưu điểm Nhược Trường hợp điểm áp dụng phù hợp Mô hình thác nước Mô hình này áp Dễ sử Ít linhMô hình thường dụng tuần tự các dụng, giai đoạn của phát dễ tiếp hoạt, được áp dụng triển phần mềm cận Đầu ra của giai đoạn phạmcho các dự án trước là đầu vào của Các giai đoạn sau Giai giai vi phần mềm như đoạn sau chỉ được đoạn thực hiện khi giai và điều sau: đoạn trước đã kết hoạt thúc Đặc biệt động chỉnh không được quay được lại giai đoạn trước xác hạn Các dự để xử lý các yêu cầu định rõ khi muốn thay đổi ràng chế án nhỏ Xác Rất , ngắn nhận ở khó hạn từng giai để đo Các dự đoạn, đảm lườn án có ít bảo phát g sự thay hiện sớm phát đổi về các lỗi triển yêu trong cầu và từng không giai có đoạn những Mô yêu hình cầu khôn không g rõ thích ràng hợp với nhữn g dự án dài, đang diễn ra, hay nhữn g dự án 6 phức tạp, có nhiều thay đổi về yêu cầu trong vòng đời phát triển Khó quay lại khi giai đoạn nào đó đã kết thúc Mô hình chữ V Mô tả Mô hình V là Quá Không Ứng dụng Ứng một phần mở rộng trình thích dụng mô hình V- Model gần giống của mô hình thác phát hợp như mô hình nước và được dựa triển cho thác nước , vì cả trên sự kết hợp của và quy các dựhai mô hình đều một giai đoạn thử trình án lớnthuộc loại tuần nghiệm cho từng quản và tự Yêu cầu phải rất rõ ràng trước giai đoạn phát triển lý có phức khi dự án bắt tương ứng Điều tính tổ tạp đầu, bởi vì nó này có nghĩa là đối chức với mỗi giai đoạn và hệ Không thường đắt tiền để quay trở lại và trong chu kỳ phát thống phù thực hiện thay triển, có một giai hợp đổi Mô hình này đoạn thử nghiệm Hoạt nếu được sử dụng liên quan trực tiếp động các trong lĩnh vực Đây là một mô hình tốt cho yêu phát triển y tế, vì nó là một lĩnh có tính kỷ luật cao các dự cầu vực xử lý kỷ luật và giai đoạn tiếp theo chỉ bắt đầu sau khi hoàn thành giai 7 đoạn trước án có thường nghiêm ngặt quy xuyên Sau đây là một số kịch bản phù mô thay hợp nhất để sử vừa và đổi dụng ứng dụng nhỏ Không V-Model có Kiểm phần tra bắt mềm đầu từ làm khi bắt việc đầu được phát sản triển vì xuất ở vậy sự giai mơ hồ đoạn được trung xác gian định ngay Không từ đầu có điều khoản Dễ cho dàng việc quản phân lý vì tích rủi mỗi ro nên giai có sự đoạn không có các chắc mục chắn tiêu và và có mục tính rủi tiêu ro được xác định rõ ràng Mô hình mẫu thử Trong mô hình mẫu Ng Khi Hệ (prototype), qui ười mẫ thống 8 trình được bắt đầu sử u chủ bằng việc thu thập dụ yêu cầu với sự có ng (pr yếu mặt của đại diện sớ của cả phía phát m oto dựa triển lẫn khách hìn hàng nhằm định ra h typ trên mục tiêu tổng thể du của hệ thống phần ng e) giao mềm sau này, đồng ra thời ghi nhận tất cả ch khô diện những yêu cầu có ức thể biết được và sơ nă ng người luợc những nhóm ng yêu cầu nào cần và chu dùng phải được làm rõ đặc điể yển (GUI) m của tải hết Khách hệ các hàng, thố chứ nhất là ng c người năn sử Cải g, dụng thi đặc cuối, ện điể không sự m thể xác liê của định rõ n hệ ràng lạc thố yêu giữ ng cầu a nh phầ à ph n át triể mề n và m ng ười thì sử dụ ng ng ười sử dụ ng có thể thấ t vọn g và mấ t đi sự qua n tâ 9 m đến hệ thố ng sẽ đư ợc phá t triể n Pro tot ype thư ờn g đư ợc làm nha nh, thậ m chí vội vàn g, the o kiể u “hi ện thự c – sửa ” và có thể thi ếu sự phâ n 10