Chủ Nhật, 26 tháng 12, 2010

phao

Trả lời:
Anh/Chị hãy cho biết phần mềm là gì?
Phần mềm thường được mô tả với 3 bộ phận cấu thành:
Tập các lệnh (chương trình máy tính) trên máy tính khi được thực hiện sẽ tạo ra các dịch vụ và đem lại những kết quả mong muốn cho người dùng.
Cấu trúc dữ liệu (lưu trữ trên các bộ nhớ) làm cho chương trình thao tác hiệu quả với các thông tin thích hợp và nội dung thông tin được số hóa.
Các tài liệu để mô tả thao tác, cách sử dụng và bảo trì phần mềm (hướng dẫn sử dụng, tài liệu kỹ thuật, tài liệu phân tích, thiết kế, kiểm thử, . . .).
Các đặc trưng của phần mềm?
Phần mềm được kỹ nghệ, không được chế tạo theo nghĩa cổ điển.
Phần mềm không “ hỏng đi ” nhưng “ thái hóa “ theo thời gian.
Phần lớn phần mềm vẫn được xây dựng theo đơn đặt hàng.
Sự phức tạp và tính thay đổi luôn là bản chất của phần mềm.
Ngày nay phần mềm được phát triển theo nhóm.
Trình bày quy trình phát triển phần mềm theo mô hình thác nước? Ưu nhược điểm của mô hình này là gì?
Mô hình thác nước hay còn gọi là mô hình vòng đời truyền thống do Royce đề xuất năm 1970. Nó yêu cầu tiếp cận một cách hệ thống, tuần tự và chặt chẽ đối với việc phát triển phần mềm.










Môn hình thác nước của tiến trình phần mềm.
Quy trình phát triển:
Kỹ nghệ thệ thống:
Bao gồm việc thu thập yêu cầu ở mức hệ thống với một lượng nhỏ thiết kế và phân tích ở mức đỉnh.
Phân tích (analysis)
Trước hết việc phân tích yêu cầu được tập trung vào việc thu thập và phân tích các thông tin cần cho phần mềm, các chức năng phần mềm cần phải thực hiện, hiệu năng cần có của mỗi chức năng, các giao diện cho người sử dụng, các ràng buộc mà phần mềm cần tuân thủ khi nó được phát triển và hoạt động. Sau đó, lập tư liệu về yêu cầu cho hệ thống và phần mềm để khách hàng duyệt lại.
Thiết kế (design)
Thiết kế là quá trình chuyển hóa các yêu cầu phần mềm thành các mô tả thiết kế.
Thiết kế chia làm 2 giai đoạn là: thiết kế logic và thiết kế vật lý. Thiết kế tập trung vào 4 bước chính sau: thiết kế kiến trúc, thiết kế dữ liệu, thiết kế các thủ tục và thiết kế các giao diện.
Mã hóa (coding)
Mã hóa là dịch các đặc tả thiết kế thành các chương trình mã nguồn trong một ngôn ngữ lập trình nào đó mà máy có thể thực hiện được.
Kiểm thử (testing)
Khi đã có chương trình mã nguồn ,việc kiểm thử bắt đầu.Tiến trình kiểm thử tập trung vào phát hiện và sửa lỗi trong trương trình.
Bảo trì (maintenance)
Phần mềm cần phải hoàn thiện trước khi nó được giao cho khách hàng .Đó là việc kiểm tra va sửa lỗi khi đưa chương trình vào sử dụng, việc thích ứng nó với thay đổi của môi trường bên ngoài hoặc bổ sung chức năng hay nâng cao hiệu năng cần có khi khách hàng yêu cầu. Việc bảo trì có thể áp dụng lại các bướ của vòng đời phát triển cho hệ chương trình hiện có khi có nhu cầu tiếp tục phát triển.
Ưu nhược điểm
Vòng đời cổ điển là mô hình có sớm nhất và được sử dụng rộng rãi nhất.Nó đưa ra các phương pháp khoa học, các bước tổng quát áp dụng được cho nhiều mô hình.Nó tốt hơn nhiều lần cách tiếp cận tự nhiên.Tuy nhiên,các dự án phần mềm thực tế hiếm khi tuân theo trình tự tuần tự.Quá trình lặp lại thì dễ gặp bất trắc,mà lặp lại thì khó quản lý được tiến độ và không đáp ứng được nhu cầu của khách hàng.Mặt khác, khách hàng phải kiên nhẫn tới cuối dự án mới có chương trình làm việc được. Thời gian thực hiện dự án theo mô hình này thường dài, các tài liệu đặc tả rất lớn. Nếu chương trình gặp lỗi khi kết thúc mới phát hiện ra thì có thể sẽ là một thảm họa.
Trả lời:
Anh/Chị hãy cho biết kỹ nghệ phần mềm là gì? Những yếu tố chủ chốt trong kỹ nghệ phần mềm?
Kỹ nghệ phần mềm là kỹ nghệ phát triển một hệ thống, gồm một loạt các bước chứa đựng 3 yếu tố chủ chốt sau đây:
Phương pháp (method);
Công cụ (tool);
Thủ tục (procedure).
Sự hình thành của kỹ nghệ phần mềm có liên quan mật thiết đến sự phát triển của khoa học máy tính.
Quy trình phát triển phần mềm theo mô hình xoắn ốc có đặc điểm gì?
Mô hình xoắn ốc (spiral model) được Boehm đưa ra năm 1988. Nó dựa trên ý tưởng là tối thiểu hóa rủi ro, bằng viêc phân tích yếu tố rủi ro ở mỗi bước lặp và sử dụng phương pháp làm bản mẫu. Quá trình phát triển được chia thành nhiều bước lặp lại, mỗi bước bắt đầu bằng việc lập kế hoạch, phân tích rủi ro, rồi tạo bản mẫu, hoàn thiện và phát triển hệ thống, duyệt lại, và cứ thế tiếp tục. Nội dung gồm 4 hoạt động chính:
Lập kế hoạch: xác định mục tiêu, giải pháp và ràng buộc;
Phân tích rủi ro: phân tích các phương án, xác định và giải quyết rủi ro;
Kỹ nghệ: phát triển sản phẩm “mức tiếp theo”.
Đánh giá của khách hàng: khẳng định kết quả của kỹ nghệ.
Với mỗi lần lặp vòng xoắn ốc (bắt đầu từ tâm), các phiên bản được hoàn thiện dần. Tại một vòng xoắn ốc, phân tích rủi ro phải đi đến quyết định “ tiến hành tiếp hay dừng “. Nếu rủi ro quá lớn, thì có thể đình chỉ dự án hay thay đổi yêu cầu đặt ra cho thích hợp.
Mô hình này thích hợp để phát triển các hệ thống quy mô lớn. Nhưng trong mô hình này không có sự phân biệt rõ ràng giữa hoạt động bảo trì và phát triển. Tuy nhiên, việc thay đổi một cách linh hoạt khi phát triển đòi hỏi nhà phát triển và khách hàng phải có liên kết chặt chẽ, nếu không sẽ không làm được gì khi hợp đồng đã ký kết. Mặt khác, quy mô dự án phải đủ lớn để chả chi phí cho chuyên gia phân tích rủi ro.

Phân tích rủi ro
Lập kế hoạch
Phân tích rủi ro dựa trên yêu cầu khách hàng
Phân tích rủi ro dựa trên yêu cầu ban đầu
Tập hợp yêu cầu ban đầu và kế hoạch dự án

Quyết định có tiếp tục hay không? (cao điểm của việc phân tích rủi ro)

Kế hoạch dự trên ý kiến của khách hàng




Bản mẫu ban đầu

Đánh giá của khách hàng

Kỹ nghệ
Lấy ý kiến đánh giá
Làm bản mẫu tiếp theo



Mô hình xoắn ốc
Trả lời:
Anh/Chị hãy cho biết thế nào là một phần mềm được kỹ nghệ tốt?
Phần mềm được kĩ nghệ tốt là phần mềm đáp ứng các thuộc tính sau
Có thể bảo trì được : Phần mềm thường có tuổi thọ dài,phải được xây dụng và lập tư liệu,sao cho co thể dễ dàng sửa đổi bổ sung mà không quá tốn kém.
Dáng tin cậy :Phần mềm phải thực hiện được điều mà người tiêu dung mong mỏi và không thất bại nhiều hơn những gì được đặc tả.
Có hiệu quả : Hệ thống phải không lãng phí nguồn lực như bộ nhớ,bộ sử lý.Thực tế chỉ ra rằng ,không thể tối ưu hóa độ hiệu quả,vì việc đó có thể làm cho phần mềm rất khó thay đổi và chi phí cao.
Khả dụng : Hệ thống phải có giao diện người sử dụng thích hợp,giao diện người sử dụng phải phù hợp với khản năng và kiến thức của người dung hệ thống,hỗ trợ được những người dùng có trinh độ khác nhau(dễ đọc, dễ sử dụng và nhớ lâu).
Giá cả phải được xem là một yếu tố xác định một phần mềm được kĩ nghệ tôt.Nhưng có thể bảo trì được xem là thuộc tính chủ chốt vì rằng các chi phí cho sản phẩm phần mềm chủ yếu là trong giai đoạn phần mềm được đưa vào sử dụng.
Thách thức đối với việc phát triển phần mềm hiện nay là gì?
Trong những năm gần đây thì những thách thức đối với việc phát triển phần mềm máy tính gia tăng vì những nguyên nhân sau:
Sự tinh vi và năng lực của phần cứng đã vượt xa khả năng xây dựng phần mềm để có thể sử dụng được các tiềm năng của nó.
Khả năng xây dựng các phần mềm tăng lên nhanh chóng. Đặc biệt khi internet phát triển.
Quy mô và độ phức tạp của các phần mềm mới ngày càng tăng. Khả năng bảo trì các hệ thống phần mềm cũ hiện đang tồn tại rất khó khăn và tốn kém các tài nguyên vì các thiết kế sơ sài. Phát triển các phần mềm mới phải nhanh chóng và dễ bảo trì trở thành nhu cầu cấp bách.
Qui trình phát triển phần mềm theo mô hình bản mẫu ( Prototyping Model) có những ưu và nhược điểm gì?











Mô hình hoạt động của mô hình bản mẫu
Ưu điểm:
Giảm chi phí phát triển
Giảm thời gian phát triển.
Yêu cầu người sử dụng tham gia.
Phát triển nhận được phản hồi người dùng định lượng.
Tạo điều kiện cho hệ thống thực hiện kể từ khi người sử dụng biết những gì mong đợi.
Kết quả trong sự hài lòng của người sử dụng cao hơn.
Cho thấy nhiều nhà phát triển để cải tiến hệ thống tiềm năng trong tương lai.
Nhược điểm:
Do sự hoàn thiện dần tiến hóa của bản mẫu phần mềm thường có cấu trúc không cao nên khó kiểm soát và bảo trì.
Khách hàng nhiều khi thất vọng với việc phát triển phần mềm do học lầm tưởng bản mẫu là sản phẩm cuối cùng, không dành nhiều công sức đánh giá bản mẫu.
Có thể dẫn đến phân tích không đủ.
Người sử dụng mong đợi hiệu suất của hệ thống cuối cùng để được giống như nguyên mẫu.
Phát triển có thể trở nên gắn liền với nguyên mẫu của họ.
Có thể gây ra các hệ thống để còn lại chưa hoàn chỉnh và / hoặc thwucj hiện trước khi họ đã sẵn sàng.
Đôi khi dẫn đến tài liệu không đầy đủ.
Nến nguyên mẫu của phần mềm phức tạp (4 GL hoặc CASE) được tuyển dụng, các lợi ích của tiết kiệm thời gian tạo mẫu có thể bị mất.
Trả lời:
Tiến trình phần mềm là gì?
Khi xây dựng 1 phần mềm 1 cách công nghiệp, điều quan trọng là phải vạch ra được 1 loạt các bước hoạt động dự kiến trước – 1 lộ trình, mà theo đó có thể tạo ra 1 phần mềm chất lượng, hiệu quả và đúng thời hạn. 1 lộ trình như vậy được gọi là tiến trình phần mềm (software process).
Các hoạt động của tiến trình phần mềm và tài liệu mà nó sản sinh ra?
Tiến trình phần mềm bao gồm 3 giai đoạn chính : xác đinh, phát triển, bảo trì. Không phụ thuộc vào miền áp dụng, độ lớn, độ phức tạp của dự án phát triển cũng như mô hình được chọn.
Xác định : giai đoạn này trả lời câu hỏi cái gì (what) và khi nào (when) về dữ liệu (thông tin) cần xử lý, mục đích chức năng và môi trường phát triển. Gồm 3 bước :
Phân tích hệ thống.
Lập kế hoạch dự án phần mềm.
Phân tích yêu cầu thực tiễn.
Phát triển : giai đoạn này trả lời câu hỏi làm như thế nào (how). Gồm 3 bước :
Thiết kế phần mềm : sử dụng các công cụ đặc tả và lập trình cấu trúc.
Chọn công cụ hoặc các ngôn ngữ lập trình để viết chương trình.
Kiểm thử : phát hiện sai sót, nhầm lẫn.
Bảo trì : giai đoạn này tập trung vào các thay đổi (modify). Có 3 kiểu thay đổi :
Sửa đổi : dù phần mềm có chất lượng tốt, vẫn còn tồn tại những khiếm khuyết từ việc sử dụng của khách hàng. Bảo trì sửa đổi làm thay đổi phần mềm, khắc phục khiếm khuyết.
Thích nghi : nhằm làm phần mềm thích nghi vs môi trường phần cứng, như CPU, OS, các thiết bị ngoại vi…
Nâng cao : khách hàng tìm ra những chức năng phụ của phần mềm, bảo trì hoàn thiện để mở rộng phần mềm ra ngoài những chức năng đó.
Tài liệu

Các hoạt động Tài liệu đưa ra
Phân tích yêu cầu Nghiên cứu khả thi.
Yêu cầu khái quát.
Xác định yêu cầu Tài liệu yêu cầu.
Đặc tả hệ thống Đặc tả chức năng.
Kế hoạch kiểm thử chấp nhận.
Giới thiệu tóm tắt cách sử dụng.
Thiết kế kiến trúc Đặc tả kiến trúc.
Kế hoạch kiểm thử hệ thống.
Đặc tả phần mềm Cấu trúc các hệ con và giao diện.
Mô tả các hệ con phần mềm.
Thiết kế dữ liệu Cấu trúc dữ liệu logic/ vật lý.
Từ điển dữ liệu.
Thiết kế giao diện Đặc tả giao diện.
Kế hoạch kiểm thử tích hợp.
Thiết kế chi tiết Đặc tả thiết kế.
Kế hoạch kiểm thử đơn vị.
Mã hóa Chương trình nguồn.
Kiểm thử đơn vị Báo cáo kiểm thử đơn vị
Kiểm thử Module Báo cáo kiểm thử Module
Kiểm thử tích hợp Báo cáo kiểm thử tích hợp.
Hướng dẫn sử dụng cuối cùng.
Kiểm thử hệ thống Báo cáo kiểm thử hệ thống
Kiểm thử chấp nhận Hệ thống chương trình và các tài liệu.

1 số mô hình tiến trình phần mềm tiêu biểu ?
Mô hình thác nước cải tiến (waterfall model) : nó yêu cầu tiếp cận 1 cách tuần tự, hệ thống và chặt chẽ vs việc phát triển phần mềm, bắt đầu từ ở mức hệ thống và tiến dần xuống phân tích, thiết kế, mã hóa, kiểm thử và bảo trì.
Mô hình làm bản mẫu (prototyping model): là tạo ra 1 mô hình như thực tế cho phần mềm cần xây dựng.
Mô hình xoắn ốc (spiral model): nó dựa trên ý tưởng là tối thiểu hóa rủi ro, bằng việc phân tích yếu tố rủi ro ở mỗi bước lặp và sử dụng phương pháp bản mẫu. Quá trình phát triển được chia thành nhiều bước lặp, mỗi bước bắt đầu bằng việc lập kế hoạch, phân tích rủi ro, rồi tạo bản mẫu, hoàn thiện và phát triển hệ thống, duyệt lại và cứ thế tiếp tục.
Trả lời:
Anh/Chị hãy trình bày quy trình phát triển phần mềm theo mô hình xoắn ốc?
Mô hình xoắn ốc (spiral model) được Boehm đưa ra năm 1988. Nó dựa trên ý tưởng là tối thiểu hóa rủi ro, bằng viêc phân tích yếu tố rủi ro ở mỗi bước lặp và sử dụng phương pháp làm bản mẫu. Quá trình phát triển được chia thành nhiều bước lặp lại, mỗi bước bắt đầu bằng việc lập kế hoạch, phân tích rủi ro, rồi tạo bản mẫu, hoàn thiện và phát triển hệ thống, duyệt lại, và cứ thế tiếp tục. Nội dung gồm 4 hoạt động chính:
Lập kế hoạch: xác định mục tiêu, giải pháp và ràng buộc;
Phân tích rủi ro: phân tích các phương án, xác định và giải quyết rủi ro;
Kỹ nghệ: phát triển sản phẩm “mức tiếp theo”.
Đánh giá của khách hàng: khẳng định kết quả của kỹ nghệ.
Với mỗi lần lặp vòng xoắn ốc (bắt đầu từ tâm), các phiên bản được hoàn thiện dần. Tại một vòng xoắn ốc, phân tích rủi ro phải đi đến quyết định “ tiến hành tiếp hay dừng “. Nếu rủi ro quá lớn, thì có thể đình chỉ dự án hay thay đổi yêu cầu đặt ra cho thích hợp.
Mô hình này thích hợp để phát triển các hệ thống quy mô lớn. Nhưng trong mô hình này không có sự phân biệt rõ ràng giữa hoạt động bảo trì và phát triển. Tuy nhiên, việc thay đổi một cách linh hoạt khi phát triển đòi hỏi nhà phát triển và khách hàng phải có liên kết chặt chẽ, nếu không sẽ không làm được gì khi hợp đồng đã ký kết. Mặt khác, quy mô dự án phải đủ lớn để chả chi phí cho chuyên gia phân tích rủi ro.

Phân tích rủi ro
Lập kế hoạch
Phân tích rủi ro dựa trên yêu cầu khách hàng
Phân tích rủi ro dựa trên yêu cầu ban đầu
Tập hợp yêu cầu ban đầu và kế hoạch dự án

Quyết định có tiếp tục hay không? (cao điểm của việc phân tích rủi ro)

Kế hoạch dự trên ý kiến của khách hàng




Bản mẫu ban đầu

Đánh giá của khách hàng

Kỹ nghệ
Lấy ý kiến đánh giá
Làm bản mẫu tiếp theo



Mô hình xoắn ốc
Cho biết sự khác biệt cơ bản giữa mô hình xoắn ốc với mô hình thác nước và mô hình làm bản mẫu là gì?

Đặc trưng cơ bản Ưu và nhược điểm
Mô hình thác nước Trong giai đoạn thiết kế thường hay dễ phát hiện lỗi trong tài liệu đặc tả. Đặc tả có thể: mâu thuẫn, không đầy đủ, nhập nhằng.
Khi phát hiện được những mâu thuẫn nhập nhằng, ko đầy đủ thì pải hiệu chỉnh ngay trước khi tiến trình đc tiếp tục.
Quá trình lặp là không tránh khỏi khi thiết kế.
*Ưu điểm:
+Là mô hình sớm nhất và đc áp dụng rộng rãi.
+nó đưa ra các phương pháp khoa học, các bước tổng quát áp dụng đc cho nhiều mô hình
+dễ bảo trì vì có tài liệu
*Nhược điểm:
+khả năng cao là sản xuất ra phần mềm không đúng nhu cầu của khách hàng
+thường ẩn chứa nhiều rủi ro
+thời gian thực hiện dự án thường dài, các tài liệu đặc tả lớn.
Mô hình làm bản mẫu Thực hiện thiết kế nhanh, tập trung chuyển tải những khia cạnh thông qua prototype để khách hàng có thể hình dung, đánh giá giúp hoàn chỉnh hệ thống PM, ko đặt ra mục tiêu tái sử dụng
Các giai đoạn sau có thể kết hợp với các mô hình thác nước hay bản mẫu *Ưu điểm:
+người sử dụng sớm hình dung ra chức năng của hệ thống
+cho phép đánh giá rủi ro và kiểm tra giải pháp
+có ích trong tất cả các pha của vòng đời phần mềm
*Nhược điểm
+khách hàng hối thúc nhà phát triển hoàn thành sản phẩm khi thấy đc prototype đầu tiên
+prototype thường đc làm nhanh thậm chí là vội vàng theo kiểu ‘hiện thực-sửa’ và có thể thiếu sự phân tích, đánh giá 1 cách cẩn thận đến cuối SP
+ ko xay dụng trên cùng môi trường và công cụ phát triển của PM thực sự snày
+ko đặt ra mục tiêu tái sử dụng

Trả lời:
Tiến trình phần mềm là gì?
Khi xây dựng 1 phần mềm 1 cách công nghiệp, điều quan trọng là phải vạch ra được 1 loạt các bước hoạt động dự kiến trước – 1 lộ trình, mà theo đó có thể tạo ra 1 phần mềm chất lượng, hiệu quả và đúng thời hạn. 1 lộ trình như vậy được gọi là tiến trình phần mềm (software process).
Trình bày quy trình phát triển phần mềm theo mô hình thác nước? Ưu nhược điểm của mô hình này là gì?
Mô hình thác nước hay còn gọi là mô hình vòng đời truyền thống do Royce đề xuất năm 1970. Nó yêu cầu tiếp cận một cách hệ thống, tuần tự và chặt chẽ đối với việc phát triển phần mềm.










Môn hình thác nước của tiến trình phần mềm.
Quy trình phát triển:
Kỹ nghệ thệ thống:
Bao gồm việc thu thập yêu cầu ở mức hệ thống với một lượng nhỏ thiết kế và phân tích ở mức đỉnh.
Phân tích (analysis)
Trước hết việc phân tích yêu cầu được tập trung vào việc thu thập và phân tích các thông tin cần cho phần mềm, các chức năng phần mềm cần phải thực hiện, hiệu năng cần có của mỗi chức năng, các giao diện cho người sử dụng, các ràng buộc mà phần mềm cần tuân thủ khi nó được phát triển và hoạt động. Sau đó, lập tư liệu về yêu cầu cho hệ thống và phần mềm để khách hàng duyệt lại.
Thiết kế (design)
Thiết kế là quá trình chuyển hóa các yêu cầu phần mềm thành các mô tả thiết kế.
Thiết kế chia làm 2 giai đoạn là: thiết kế logic và thiết kế vật lý. Thiết kế tập trung vào 4 bước chính sau: thiết kế kiến trúc, thiết kế dữ liệu, thiết kế các thủ tục và thiết kế các giao diện.
Mã hóa (coding)
Mã hóa là dịch các đặc tả thiết kế thành các chương trình mã nguồn trong một ngôn ngữ lập trình nào đó mà máy có thể thực hiện được.
Kiểm thử (testing)
Khi đã có chương trình mã nguồn ,việc kiểm thử bắt đầu.Tiến trình kiểm thử tập trung vào phát hiện và sửa lỗi trong trương trình.
Bảo trì (maintenance)
Phần mềm cần phải hoàn thiện trước khi nó được giao cho khách hàng .Đó là việc kiểm tra va sửa lỗi khi đưa chương trình vào sử dụng, việc thích ứng nó với thay đổi của môi trường bên ngoài hoặc bổ sung chức năng hay nâng cao hiệu năng cần có khi khách hàng yêu cầu. Việc bảo trì có thể áp dụng lại các bướ của vòng đời phát triển cho hệ chương trình hiện có khi có nhu cầu tiếp tục phát triển.
Ưu nhược điểm
Vòng đời cổ điển là mô hình có sớm nhất và được sử dụng rộng rãi nhất.Nó đưa ra các phương pháp khoa học, các bước tổng quát áp dụng được cho nhiều mô hình.Nó tốt hơn nhiều lần cách tiếp cận tự nhiên.Tuy nhiên,các dự án phần mềm thực tế hiếm khi tuân theo trình tự tuần tự.Quá trình lặp lại thì dễ gặp bất trắc,mà lặp lại thì khó quản lý được tiến độ và không đáp ứng được nhu cầu của khách hàng.Mặt khác, khách hàng phải kiên nhẫn tới cuối dự án mới có chương trình làm việc được. Thời gian thực hiện dự án theo mô hình này thường dài, các tài liệu đặc tả rất lớn. Nếu chương trình gặp lỗi khi kết thúc mới phát hiện ra thì có thể sẽ là một thảm họa.
Trả lời:
Anh/Chị hãy cho biết phần mềm là gì?
Phần mềm thường được mô tả với 3 bộ phận cấu thành:
Tập các lệnh (chương trình máy tính) trên máy tính khi được thực hiện sẽ tạo ra các dịch vụ và đem lại những kết quả mong muốn cho người dùng.
Cấu trúc dữ liệu (lưu trữ trên các bộ nhớ) làm cho chương trình thao tác hiệu quả với các thông tin thích hợp và nội dung thông tin được số hóa.
Các tài liệu để mô tả thao tác, cách sử dụng và bảo trì phần mềm (hướng dẫn sử dụng, tài liệu kỹ thuật, tài liệu phân tích, thiết kế, kiểm thử, . . .).
Các đặc trưng của phần mềm?
Phần mềm được kỹ nghệ, không được chế tạo theo nghĩa cổ điển.
Phần mềm không “ hỏng đi ” nhưng “ thái hóa “ theo thời gian.
Phần lớn phần mềm vẫn được xây dựng theo đơn đặt hàng.
Sự phức tạp và tính thay đổi luôn là bản chất của phần mềm.
Ngày nay phần mềm được phát triển theo nhóm.
c. Thách thức đối với việc phát triển phần mềm hiện nay là gì?
Trong những năm gần đây thì những thách thức đối với việc phát triển phần mềm máy tính gia tăng vì những nguyên nhân sau:
Sự tinh vi và năng lực của phần cứng đã vượt xa khả năng xây dựng phần mềm để có thể sử dụng được các tiềm năng của nó.
Khả năng xây dựng các phần mềm tăng lên nhanh chóng. Đặc biệt khi internet phát triển.
Quy mô và độ phức tạp của các phần mềm mới ngày càng tăng. Khả năng bảo trì các hệ thống phần mềm cũ hiện đang tồn tại rất khó khăn và tốn kém các tài nguyên vì các thiết kế sơ sài. Phát triển các phần mềm mới phải nhanh chóng và dễ bảo trì trở thành nhu cầu cấp bách.
Trả lời:
Anh/Chị hãy cho biết các yêu cầu đối với phần mềm quản lý nhân sự mà Anh/Chị biết?
Quản lý thông tin đa cấp, đa ngành, phù hợp cho công ty có nhiều phòng ban, nhiều chi nhánh.
Có đầy đủ các báo cáo về quản lý nhân sự, theo dõi chính sách đối với người lao động và các báo cáo sử dụng lao động theo qui định của nhà nước.
Hỗ trợ các chức năng tìm kiếm, truy vấn động theo tất cả các chỉ tiêu có trong cơ sở dữ liệu, hỗ trợ lập các báo cáo thống kê nhanh theo các yêu cầu của lãnh đạo.
Hỗ trợ mềm dẻo trong việc xác lập các công thức tính lương cho người lao động với nhiều cách  tính lương khác nhau: Lương gián tiếp, lương khoán sản phẩm, lương khoán theo doanh thu, lương công nhật, lương công nhân trực tiếp sản xuất... 
Giao diện thân thiện, dễ sử dụng, hướng dẫn chi tiết trong từng chức năng chương trình.
Hỗ trợ các tiện ích truy xuất số liệu báo cáo thống kê. Cho phép kết xuất số liệu ra các định dạnh báo cáo khác nhau như: word, excel, pdf.
Phân quyền, phân cấp bảo mật dữ liệu, phân quyền sử dụng đến từng chức năng trong chương trình, phân quyền cập nhật truy xuất  dữ liệu theo phân cấp quản lý của người dùng.
Hệ thống được thiết kế theo mô hình khách-chủ (client-server), các tác vụ do máy chủ xử lý nên truy xuất dữ liệu nhanh.
Hệ thống hổ trợ nhiều ngôn ngữ: Việt, Anh, Hoa, Nhật
Hệ thống có thể chạy trên máy đơn hoặc trên mạng cục bộ (LAN) và không giới hạn số lượng máy trạm.
Hệ thống cung cấp chức năng lưu trữ dự phòng và phục hồi dữ liệu khi có sự cố.
Tra cứu thông tin lương của nhân viên thông qua trang web của công ty.
Hệ thống tự gửi mail thông minh thông tin lương đến từng nhân viên.

Trả lời:
Anh/Chị hãy cho biết thiết kế phần mềm là gì?
Thiết kế phần mềm là quá trình chuyển các đặc tả yêu cầu phần mềm thành một biểu diễn thiết kế của hệ thống phần mềm cần xây dựng, sao cho người lập trình có thể ánh xạ nó thành chương trình vận hành được.
Nêu các đặc trưng của thiết kế hướng đối tượng?
Thiết kế hướng đối tượng nhằm xác định lớp, thuộc tính và mối quan hệ của chúng. Có nhiều phương pháp, nhưng tiến trình RUP là tiên tiến. Khi cấu trúc thành phần với các lớp cần dựa trên các mẫu thiết kế. UML là ngôn ngữ chuẩn cho phát triển hệ thống theo đối tượng. Các lớp có thể có một số quan hệ với nhau: mối quan hệ phụ thuộc, mối quan hệ kế thừa, mối quan hệ kết hợp (giữa toàn thể và bộ phận) hay mối quan hệ kết tập (đối tượng và thành phần cấu thành nó).
Ưu nhược điểm:
Thiết kế hướng đối tượng dễ bảo trì vì có thẻ hiểu và cả biên đối tượng như một thực thể độc lập. Thay đổi trong thực hiện một đối tượng hoặc thêm các dịch vụ chon nó sẽ không làm ảnh hưởng tới các đối tượng khác của hệ thống.
Các đối tượng là các thành phần có thể dùng lại được.
Có một vài lớp hệ thống phản ánh một quan hệ rõ ràng giữa các thực thể có thực (chẳng hạn như các thành phần phần cứng) với các đối tượng khiển nó trong hệ thống. Điều này làm cho thiết kế có được tính dễ hiểu.
Nhược điểm của thiết kế hướng đối tượng là không dễ dàng nhận ra các đối tượng của một hệ thống. Vì rằng, cách nhìn tự nhiên nhiều hệ thống là cách nhìn chức năng.
Trả lời:
Các yêu cầu vs phần mềm quản lý khách sạn VsoftHMS.net của công ty Trí Tuệ Việt.


Với các module: Quản lý đặt phòng/ kinh doanh; Quản lý lễ tân; Quản lý nhà buồng; Quản lý tổng đài; Quản lý nhà hàng.
Và 1 số yêu cầu như sau:
Quản lý được sơ đồ phòng của khách sạn hiệu quả, thống kê các phòng đang có khách, các phòng đã đặt , phòng trống ...
Quản lý các tiện nghi của từng phòng, mô tả phòng.
Dễ dàng theo dõi tình trạng danh mục các phòng (đang sửa chữa, bảo trì, đang dọn …).
Hệ thống check in – check out nhanh chóng và thuận lợi giúp đăng ký phòng cho khách hàng nhanh chóng, hiệu quả.
Quản lý các dịch vụ kèm theo của khách sạn (giặt ủi – điểm tâm …)tự động tính tiền khi khách hàng trả phòng.
Hỗ trợ in ấn biểu mẫu đăng ký lưu trú tại khách sạn cho chính quyền hoặc các cơ quan hữu trách.
Hỗ trợ theo dõi tình hình sử dụng điện thoại của khách hàng (một tiện ích chuyên biệt cho phần mềm quản lý khách sạn).
Với hệ thống báo cáo chi tiết giúp nhà quản lý – chủ doanh nghiệp khách sạn dễ dàng thống kê theo dõi tình hình họat động của khách sạn cũng như doanh số của đơn vị.
Giao diện đồ họa đẹp mắt và dễ sử dụng. Ngôn ngữ giao tiếp Tiếng Việt.
Quản lý thống kê danh sách khách đăng ký (đã từng lưu trú tại khách sạn hoặc khách hàng mới …..).

Trả lời:
Anh/Chị hãy cho biết thiết kế phần mềm là gì?
Thiết kế phần mềm là quá trình chuyển các đặc tả yêu cầu phần mềm thành một biểu diễn thiết kế của hệ thống phần mềm cần xây dựng, sao cho người lập trình có thể ánh xạ nó thành chương trình vận hành được.
Phân tích vai trò của thiết kế trong quá trình kỹ nghệ?
Thiết kế là cách duy nhất để chuyển hóa 1 cách chính xác các yêu cầu của khách hàng thành mô hình thiết kế hệ thống phần mềm cuối cùng, làm cơ sở cho việc triển khai chương trình phần mềm.
Tài liệu thiết kế phần mềm là công cụ giao tiếp giữa các nhóm cùng tham gia vào việc phát triển sản phẩm, để quản lý các rủi ro, đạt đến phần mềm đạt hiệu quả.
Thiết kế phần mềm là tài liệu cung cấp đầy đủ các thông tin cần thiết cho những người kỹ sư hệ thống để bảo trì hệ thống sau này.
Nếu không có thiết kế sẽ có nguy cơ sản sinh 1 hệ thống không tin cậy – 1 hệ thống dễ thất bại. Với bản chất không nhìn thấy và phức tạp, 1 hệ thống phần mểm rất khó xác định được chất lượng chừng nào chưa được kiểm thử, chưa vận hành, nên thiết kế tốt là chìa khóa làm cho kỹ nghệ phần mềm hữu hiệu. Không thể hình thức hóa mọi quá trình thiết kế đối với bất kỳ 1 sản phẩm phần mềm nào.
Trả lời:
Nếu người dùng không tham gia vào việc xác định yêu cầu thì năng suất đạt cao hơn nhưng những sản phẩm có thể không thỏa mãn nhu cầu người dùng điều đó được thể hiện qua một số mặt sau:
Khi mà người dùng ko tham gia vào quá trình xác định yêu cầu thì công việc phân tích - thiết kế sẽ dễ dàng hơn rất nhiều, vì lúc này nhà phát triển sẽ không cần quan tâm đến yêu cầu của khách hàng, mà họ hoàn toàn có thể tự phát triển phần mềm theo ý của mình. Tránh được các thay đổi bất ngờ từ phía người dùng ngay trong quá trình phát triển phần mềm, nên phần mềm tiếp tục được xây dựng theo tiến trình đã định sẵn từ nhà phát triển. Rút ngắn được thời gian xây dựng, giảm phí xây dựng. Do vậy năng suất của sản phẩm phần mềm sẽ đạt khá cao.
Tuy nhiên, chính việc người sử dụng không tham gia xác định yêu cầu sẽ dẫn đến tình trạng sản phẩm không đáp ứng được hết những yêu cầu mà người sử dụng muốn. Đây là nhược điểm mà ta phải chấp nhận.

Trả lời:
Anh/Chị hãy cho biết các bước chính của quá trình thiết kế hướng đối tượng là gì?
Thiết kế hệ thống hướng đối tượng là một phần của chiến lược phát triển định hướng đối tượng. Tiến trình thiết kế có thể mô tả khái quát như sau:
Xác định kiến trúc của hệ thống;
Sắp thứ tự ưu tiên các gói;
Với mỗi gói, thiết kế cho mỗi ca sử dụng thuộc gói bằng cách xác định các lớp thiết kế tham gia triển khai các lớp phân tích;
Xây dựng biểu đồ tương tác giữa các lớp;
Thiết kế chi tiết các lớp;
Phân tích và hoàn thiện biểu đồ lớp dựa trên các mẫu thiết kế.
Cho ví dụ minh họa?
Ví dụ về hệ thống rút tiền:

Giao Diện




Quản lý rút tiền

Điều khiển rút tiền
Quản lý chuyển tiền

Điều khiển chuyển tiền
Quản lý người dùng

Điều khiển dửi tiền





Quản lý tài khoản

Tài khoản Chuyển đổi




Mô hình kiến trúc hệ thống về sự phụ thuộc giữa các gói.

Mô hình phân tích

Tài khoản
Điều khiển rút tiền
Máy trả tiền
Giao diện thủ quỹ


Lần vết
Lần vết
Lần vết
Lần vết
Mô hình thiết kế


Rút tiền
Tài khoản
Màn hình hiển thị
Cảm ứng trả tiền


Quản lý khách
Bàn phím
Máy đẩy tiền
Lịch sử tài khoản


Quản lý giao dịch
Máy đọc thẻ
Máy đếm tiền
Quản lý tài khoản


Các lớp thiết kế nhận được từ các lớp phân tích khi làm mịn

Máy đọc thẻ
Quản lý giao dịch




Màn hình hiển thị


Lịch sử tài khoản

Quản lý khách

Bàn phím

Rút tiền


Máy đẩy tiền



Máy đếm tiền
Quản lý tài khoản
Cảm ứng trả tiền

Tài khoản




Biểu đồ lớp thiết kế tham gia thực hiện ca sử dụng rút tiền


:Quản lý giao dịch
:Máy đếm tiền
:Quản lý khách
:Bàn phím
:Màn hình hiển thị
:Máy đọc thẻ


:Khách hàng


Thẻ đưa vào


Thông tin thẻ (ID)

Yêu cầu nhập mã PIN

Hiện bảng yêu cầu


Mã PIN
Nhập mã PIN

Đề nghị xác nhận PIN


Yêu cầu chọn dịch vụ

Hiện bảng yêu cầu


Yêu cầu số tiền mặt (A)
Số tiền (A)

Chọn dịch vụ



Yêu cầu giảm số dư đi


Trả lời:
Anh/Chị hãy cho biết tư tưởng của chiến lược phát triển phần mềm theo hướng cấu trúc và hướng đối tượng?
Hiện nay có rất nhiều phương pháp tiếp cận khác nhau được áp dụng cho thiết kế. Nó làm cho quá trình thiết kế trở nên rõ ràng hơn, có thể theo dõi được và mang tính khoa học nhiều hơn. Hai cách tiếp cận phổ biến hiện nay là: Tiếp cận hướng cấu trúc và tiếp cận hướng đối tượng. Tương ứng với mỗi cách tiếp cận là một chiến lược cho việc phát triển hệ thống phần mềm.
Chiến lược và phương pháp hướng cấu trúc:
Theo cách tiếp cận định hướng cấu trúc, hệ thống được phân chi thành các chức năng, bắt đầu ở mức cao nhất, sau đó làm mịn dần dần để thành thiết kế với các chức năng chi tiết hơn. Trạng thái của hệ thống thể hiện qua cơ sở dữ liệu chung và được chia sẻ cho các chức năng thao tác trên nó.






Phần chương trình









Phần dữ liệu

Cơ sở dữ liệu dùng chung





Mô hình hệ thống hướng cấu trúc
Với đặc trưng trên, thiết kế chức năng thường có 2 hoạt động tương đối độc lập: thiết kế dữ liệu và thiết kế xử lý. Sau giai đoạn phân tích – đặc tả được yêu cầu, thiết kế dữ liệu thường đi trước một bước để có cơ sở dữ liệu dùng chung (độc lập với chương trình). Các thiết kế xử lý (các chương trình) được thực hiện trên cơ sở sử dụng các cấu trúc dữ liệu lưu trữ đã có.
Các cấu trúc nhấn mạnh vào “ duy trì miền chức năng “. Tức là, mỗi cấu trúc đều có một cấu trúc logic dự đoán được, có lỗi vào trên đỉnh, có lỗi ra ở đáy, làm cho độc giả theo dõi được luồng thủ tục dễ dàng hơn.
Ba cấu trúc tiêu biểu của lập trình cấu trúc đã được nêu ra là tuần tự, tuyển chọn và lặp. Cấu trúc tuần tự dành cho các bước xử lý theo trình tự lần lượt mà về bản chất có trong đặc tả của bất kỳ thuật toán nào. Cấu trúc tuyển chọn dành cho việc xử lý có sự lựa chọn dựa trên một sự kiện logic nào đó, còn cấu trúc lặp thì thích hợp cho mọi quá trình lặp lại. Ba cấu trúc này là nền tảng cho lập trình cấu trúc – một kỹ thuật thiết kế quan trọng trong lĩnh vực kỹ nghệ phần mềm.
Chiến lược và phương pháp hướng đối tượng
Theo hướng đối tượng, hệ thống được nhìn nhận như một bộ các đối tượng tương tác với nhau. Mỗi đối tượng bao hàm trong nó cả các dữ liệu và các thao tác thực hiện chúng, vì thế nó có trạng thái riêng. Mỗi đối tượng là một thể hiện của một lớp được xác định bởi các thuộc tính và các phương thức. Bộ các “ thuộc tính “ xác định trạng thái của đối tượng và các phương thức của nó thao tác với các dữ liệu của thuộc tính. Các lớp có thể được thừa kế từ một vài lớp đối tượng khác cao hơn và khi định nghĩa nó chỉ cần nêu đủ những gì khác giữa nó và các lớp cha. Các đối tượng liên lạc với nhau chỉ bằng cách trao đổi các thông báo để cộng tác thực hiện một dịch vụ chung.

Mô hình cấu trúc của một hệ thống hướng đối tượng
Mặc dù mới phát triển từ đầu những năm 90 của thế kỷ XX trở lại gần đây, có nhiều phương pháp phát triển phần mềm hướng đối tượng ra đời. Một ngôn ngữ chung có tính chuẩn cao UML cùng nhiều công cụ mạnh (như Jbuilder, Rational Rose) đã được phát triển để trợ giúp cho các phương pháp theo định hướng này.
Trả lời:
Theo thống kê của Frank Winter và Standish Group đưa ra thì nguyên nhân “yêu cầu thay đổi (quá nhiều)” là một trong những nguyên nhân gây ra sự thất bại của một dự án phần mềm, Anh/Chị hãy phân tích nguyên nhân trên?
Thất bại của dự án phần mềm phụ thuộc vào rất nhiều nguyên nhân, và “ yêu cầu thay đổi (quá nhiều) ” chính là 1 nguyên nhân của rất nhiều rủi ro và khó khăn xảy ra trong các dự án. Thay đổi, bao gồm cả yêu cầu và nguồn lực dự án, dẫn đến phá vỡ các kế hoạch thực hiện dự án. Thành viên dự án không nắm bắt kịp các yêu cầu, khiến dự án bị mất kiểm soát, thiếu thời gian để điều chỉnh thiết kế và kiểm định dẫn đến nhiều sai sót xuất hiện, làm tăng số nhân lực và khả năng dự án không hoàn thành đúng hạn, thậm chí thất bại hoàn toàn.

Không có nhận xét nào:

Đăng nhận xét