CNPM_Danhgia
Câu 1 : Hãy nêu các tiêu chuẩn của nhóm thành viên sản xuất phần mềm ? Theo bạn thành viên nào là quan trọng nhất ? Vì sao ?
Nhóm sản xuất phần mềm gồm :
- Người chủ nhiệm đề tài.
- Người phân tích thiết kế hệ thống.
- Người phụ trách phần cứng.
- Người phụ trách phần mềm.
- Các lập trình viên
- Những người phụ trách marketing
Yêu cầu tối thiểu với những người này là :
- Tri thức phần cứng
- Khả năng tiếp cận hệ thống
- Kiến thức cơ bản về toán và thuật toán
- Những hiểu biết về công nghệ phần mềm
- Biết một số ngôn ngữ lập trình
- Khả năng tiếp thị
Ngoài ra, mỗi người phải giỏi về lĩnh vực mình phụ trách. Cụ thể:
+ Chủ nhiệm đề tài phải là người có khả năng nhất về mặt tổ chức, quán xuyến các công việc chung, có khả năng đối nội đối ngoại và khả năng tâm lí học.
+ Người phân tích thiết kế hệ thống là người giỏi nhất về chuyên môn, phụ trách thu nhận yêu cầu của khách hàng để thiết kế 1 hệ thống đáp ứng của khách hàng.
+ Tiếp đến là người phụ trách phần mềm, có nhiệm vụ trợ giúp cho cả nhóm, cung cấp cho nhóm tất cả các chương trình trợ giúp liên quan, các phần mềm liên quan, các công cụ. Điều đó giúp giảm bớt thời gian, công sức và sự trùng lặp.
Từ đó, ta thấy rằng người quan trọng nhất là người phân tích thiết kế hệ thống.
Câu 2: Các lỗi có thể mắc phải trong quá trình thiết kế và cài đặt phần mềm là gì? Nguyên nhân? Theo bạn lỗi nào là lỗi nặng nhất? Vì sao?
* Các lỗi có thể mắc phải trong quá trình thiết kế và cài đặt phần mềm và nguyên nhân:
- Lỗi thứ 1: Lỗi về ý đồ thiết kế sai. Đây là lỗi nặng nhất. Hệ thống mà chúng ta xây dựng sẽ không thể đáp ứng được yêu cầu của khách hàng.
- Lỗi thứ 2: Lỗi phân tích các yêu cầu không đầy đủ hoặc lệch lạc. Đây là lỗi cũng thường xảy ra. Thực tế cho thấy, những người làm chuyên môn thì không hiểu sâu về tin học nên không cung cấp được những thông tin cần thiết cho những người làm tin học. Ngược lại, những người làm tin học là không hiểu hết về chuyên môn nghiệp vụ của khách hàng. Do vậy mà việc thu thập thông tin sẽ không đầy đủ hoặc thiếu chính xác. Chính vì vậy mà dễ mắc lỗi. Lỗi này có thể được khắc phục tại các cuộc gặp gỡ giữa hai bên và giải đáp những điều còn mơ hồ.
- Lỗi thứ 3: Lỗi hiểu sai các chức năng. Đây là lỗi thường hay mắc phải do trong hệ thống có thể có các chức năng hay lĩnh vực có tính chuyên môn cao. Các từ chuyên ngành. Dẫn đến khó hiểu đối với nhà phát triển phần mềm.
+ Ví dụ: Đối với phân số, khi cài đặt để đỡ rắc rối thì ta quan niệm
Tử_số Î Z (số nguyên); Mẫu_số Ï N (số tự nhiên). Như vậy biểu thức 3/-4 sẽ được hiểu là thương của hai số nguyên. Khi cài đặt, đôi khi người ta không chú ý đến chuyện này, do vậy có thể mắc lỗi.
- Lỗi thứ 4: Lỗi bỏ xót các chức năng. Lỗi này các nhà phát triển phần mềm cũng hay mắc phải, do điều kiện thời gian và chuyên môn có hạn, đôi khi các chức năng không thể được đưa ra một cách đầy đủ. Lỗi này có thể được hạn chế (không phải là khắc phục tất cả) qua thời gian làm việc nhiều hơn với khách hàng, do vậy mà ta có thể biết được nhiều thông tin hơn.
+ Ví dụ: Khi thực hiện các phép toán với Phân_số ta quên rút gọn phân số; không khởi tạo; kiểm tra phép chia cho số 0, …
+ Một khía cạnh khác nữa, đối với việc thiết kế hướng đối tượng (sẽ nghiên cứu sau), ta cần phải tuân theo nguyên lý về hướng đối tượng (chủ yếu là tính che dấu thông tin và kế thừa): ta phải biết cách để truy nhập đến từng thành phần của đối tượng.
- Lỗi thứ 5: Lỗi tại các đối tượng chịu tải. Lỗi xảy ra tại các hàm hoặc các thủ tục cấp thấp xây dựng lên các thủ tục khác. Lỗi này cũng là một lỗi nặng, có thể kéo theo sai xót ở một loạt các hàm hoặc thủ tục khác.
+ Xét về nguyên lý và mức độ lỗi thì lỗi nặng nhất vẫn là ở ý đồ thiết kế sai hoặc là ở thủ tục chịu tải mức thấp nhất.
- Lỗi thứ 6: Lỗi lây lan. Đây là lỗi do virus có thể lây từ chương trình này sang chương trình khác. Ví dụ, nếu trong thư viện có một chương trình bị lỗi. Nếu ta gọi thủ tục này thì sẽ có lỗi.
- Lỗi thứ 7: Lỗi cú pháp. Lỗi này sinh ra do việc viết sai các quy định về văn phạm. Những lỗi này thường được chương trình dịch thông báo ngay khi dịch theo nguyên lý an toàn: các lỗi nhỏ nhất cũng phải được xử lý ngay khi dịch đến đó.
- Lỗi thứ 8: Lỗi do hiệu ứng phụ. Lỗi xảy ra do việc sử dụng hàm, thủ tục hay chương trình con, có các phép tính biến đổi chương trình con nằm ngoài ý muốn của người lập trình. Xét ví dụ sau:
Var x, y, z : real;
Function FF : real;
Begin
X := 10 + 2*x;
FF := x + y/5;
End;
Begin
Write(' x = '); readln(x);
Write(' y = '); readln(y);
Z := FF;
Writeln(' 10 + 2*', x, '+', y, '/5 = ', z);
End.
Chương trình sai là do x là biến toàn cục nên nó tác động trên toàn bộ chương trình. Có nhiều cách sửa bằng cách sửa chương trình bằng cách thêm biến phụ hoặc biến địa phương. Hay bằng cách chuyển đổi lại cách in ra (vì kết quả vẫn đúng). Để tránh hiệu ứng phụ ta cần phải tuân theo:
+ Tất cả các biến được khai báo ở trong chương trình con đều là biến địa phương.
+ Tất cả các tham biến hình thức được truyền theo tham trị trong chương trình con dù có trùng tên với biến toàn cục cũng không làm thay đổi giá trị của biến toàn cục.
+ Đối với các phép tính làm thay đổi giá trị của biến thì phải dùng biến phụ.
Câu 3: Trình bày các tiêu chuẩn của một sản phẩm phần mềm? Tiêu chuẩn nào là quan trọng nhất ?
Người ta xác định một số tiêu chuẩn để đánh giá một sản phẩm phần mềm.
- Tiêu chuẩn 1: Tính đúng đắn.
Các sản phẩm phần mềm phải thực hiện được chính xác các mục tiêu được đặt ra ở giai đoạn thiết kế, không bị treo máy hoặc ra kết quả sai đối với bộ dữ liệu nằm trong phạm vi yêu cầu. Để đạt được yêu cầu này, các sản phẩm phần mềm trước hết phải có thuật toán đúng và chương trình tình phải tương ứng với thuật toán.
- Tiêu chuẩn 2: Tính khoa học.
+ Tính khoa học về cấu trúc: Các sản phẩm phần mềm được chia thành các đơn vị nhỏ cân đối và có quan hệ hữu cơ không trùng lặp và có thể tổ hợp từng nhóm để tạo ra các chức năng mới. Thuật toán và chức năng được xây dựng một cách có cấu trúc.
+ Tính khoa học về nội dung: Thuật toán được xây dựng dựa trên những thành tựu mới của toán học và tin học. Các chương trình phải được xây dựng trên các ngôn ngữ lập trình mới và phổ dụng.
+ Tính khoa học về hình thức thao tác: Mỗi lệnh của chương trình cần phải được tối ưu. Muốn vậy, các lệnh phải được xây dựng một cách hợp lý, logic và phù hợp với tư duy tự nhiên của người sử dụng. Các lỗi phải được thông báo một cách rõ ràng (lỗi số bao nhiêu, vị trí lỗi, nội dung lỗi, cách khắc phục).
- Tiêu chuẩn 3: Tính hữu hiệu. Thể hiện ở các mặt sau:
+ Hữu hiệu về kinh tế: Có giá trị kinh tế hoặc có ý nghĩa giá trị thu được khi áp dụng sản phẩm đó.
Hữu hiệu về tốc độ xử lý: Có số lượng lớn các đối tượng được xử lý trong một đơn vị thời gian. Lượng tối đa của sản phẩm quản lý được (ví dụ: trong Excel quản lý được 65536 bản ghi, FoxPro quản lý được 255 trường).
+ Hữu hiệu về dung lượng bộ nhớ: Tốn càng ít càng tốt.
- Tiêu chuẩn 4: Tính sáng tạo.
Sản phẩm phải mới mẻ và độc đáo. Nếu phát triển trên cái cũ thì phải tiếp theo được những cái hay của nó đồng thời phải cung cấp được các chức năng mới tốt hơn so với cái đã có.
- Tiêu chuẩn 5: Tính an toàn.
Sản phẩm phần mềm phải có cơ chế bảo mật chống xâm phạm, sao chép trộm và làm biến dạng chương trình. Có cơ chế bảo vệ đối tượng mà nó phát sinh và quản lý, có cơ chế hồi phục khi có sự cố.
- Tiêu chuẩn 6: Tính đầy đủ và toàn vẹn.
Sản phẩm thực hiện được đầy đủ yêu cầu của khách hàng. Các chức năng phải có tính đối xứng, nghĩa là: có tạo lập thì có xoá bỏ, có mở thì có đóng, có tiếp theo thì cũng cho phép trở về, …
- Tiêu chuẩn 7: Tính độc lập với các thiết bị.
Sản phẩm có thể sử dụng trên nhiều loại máy khác nhau và sử dụng nhiều các thiết bị đi kèm khác nhau. Độc lập cả với cấu trúc của đối tượng mà nó phát sinh ra.
- Tiêu chuẩn 8: Tính phổ dụng.
Có thể sử dụng được rộng rãi trong nhiều lĩnh vực và ở nhiều chế độ làm việc.
- Tiêu chuẩn 9: Tính dễ học và dễ sử dụng, cải tiến.
Sản phẩm hợp với yêu cầu người dùng về ngôn ngữ, hệ thống các chức năng (menu), các thông báo, cú pháp đơn giản, rõ ràng, dễ nhớ, dễ thao tác, dễ tăng cường các chức năng, dễ mở rộng và cải tiến.
Câu 4: Hồ sơ của sản phẩm phần mềm bao gồm những gì?
*) Khi bàn giao sản phẩm cho khách hàng ta cần chú ý đến các thành phần sau của một hồ sơ phần mềm:
+ Phải có chương trình nguồn, chương trình đích để trên đĩa.
+ Đính kèm các phần mềm tiện ích có liên quan.
+ Các bản in chương trình nguồn, trên đó có lời giải thích rõ ràng để tiện cho việc chứng minh tính đúng đắn của chương trình.
+ Bản mô tả các thuật toán của chương trình.
+ Bảng hướng dẫn sử dụng chi tiết, các lỗi có thể có và cách xử lý lỗi.
+ Các thông số đặc trưng của chương trình, sản phẩm gồm: Tên chủ nhiệm đề tài, chức vụ, nơi công tác, địa chỉ, điện thoại, … Các thông tin về sản phẩm: tên đầy đủ, tên vắn tắt, số hiệu phiên bản, ngày tháng thiết kế và cài đặt, các chức năng của hệ thống, chế độ làm việc (hộp hội thoại, menu, …).
+ Cấu hình tối thiểu của hệ thống, các thiết bị đi kèm. Cấu hình tối đa sử dụng hết công suất của sản phẩm.
+ Giới thiệu về ngôn ngữ lập trình được sử dụng để tạo ra sản phẩm.
+ Cơ chế bảo mật và một số phần mềm tương thích.
+ Cung cấp thêm một số tư liệu khác: một số các kết quả đã sử dụng ở một số nơi, thời gian sử dụng là bao nhiêu, yêu cầu về bản quyền, có thể biết khoá bảo mật hay không?
Câu 5: Thế nào là tránh lỗi và thứ lỗi trong phát triển phần mềm?
* Tránh lỗi :
Phần mềm không có lỗi, là phần mềm thỏa mãn yêu cầu của người sử dụng. Vì vậy để phát triển phần mềm không có lỗi thì người ta phải tuân theo các yếu tố sau:
o Phát triển phần mềm dựa trên đặc tả hệ thống chính xác
o Phải dựa trên che dấu và bao gói thông tin
o Tăng cường việc duyệt lại trong quá trình phát triển phần mềm
o Đưa chất lượng lên hàng đầu
Lập kế hoạch cẩn thận cho thử nghiệm hệ thống để phát hiện lỗi còn tiềm ẩn chưa phát hiện trong quá trình duyệt lại trên.
Việc xây dựng 1 phần mềm không lỗi là 1 việc làm rất đắt đỏ. Việc tìm và phát hiện các lỗi tốn rất nhiều thời gian và công sức. Vì vậy đôi khi người ta chấp nhận phần mềm với một số lỗi rất nhỏ nhưng giá bán thấp hơn một chút còn hơn là cố gắng sửa để bán với giá cao hơn 1 chút.
Có một số cấu trúc hay gây lỗi, đó là: lệnh nhảy không điều kiện goto, cấu trúc số thực dấu phẩy động, con trỏ, đệ qui, xử lí song song, các ngắt…Những cấu trúc này trong nhiều bài toán làm cho chương trình có thể ngắn gọn, hiệu quả tuy nhiên những cấu trúc này rất hay gây lỗi.Vì vậy khi sử dụng phải hết sức thận trọng.
* Thứ lỗi (tolerance):
Có một số phần mềm tiềm ẩn 1 số lỗi nhỏ không đáng kể, nhưng rất khó để khắc phục => coi phần mềm không có lỗi. Việc làm này gọi là thứ lỗi.
Để thứ lỗi, người ta phải tiến hành một số hành động sau:
o Phát hiện lỗi
o Đánh giá mức độ thiệt hại
o Phục hồi sau khi gặp lỗi
§ Phục hồi tiến : Chỉnh sửa trạng thái hiện tại đang lỗi
§ Phục hồi lùi : Lui về trạng thái an toàn trước khi gặp lỗi
o Chữa lỗi
Câu 6: Phân biệt thẩm định và xác minh phần mềm? Trình bày các loai và chiến lược kiểm thử phần mềm?
* Thẩm định phần mềm:
Là xem phần mềm cho kết quả đúng hay không và có thỏa mãn yêu cầu của người sử dụng hay không.
* Xác minh phần mềm:
Là xem sản phẩm có đúng là sản phẩm được yêu cầu không và chương trình có đúng với đặc tả không.
Thẩm định và xác minh phần mềm là 2 quá trình liên tục, xuyên suốt tử lúc phân tích các yêu cầu của khách hàng cho đến khi giao sản phẩm, với mục đích: Xem hệ thống có đáp ứng yêu cầu của khách hàng không, phát hiện lỗi của phần mềm.
Để thẩm định và xác minh phần mềm người ta phải thử nghiệm.
* Các loại thử nghiệm:
1. Thử thống kê: cho nhiều bộ dữ liệu khác nhau để chạy thử và tính tần suất xuất hiện thất bại.
2. Thử khuyết tật: Cho những bộ dữ liệu thật đặc biệt để chạy thử => phải lựa chọn được những bộ dữ liệu thật đặc biệt. Phép thử được coi là thành công nhất nếu phơi được nhiều khuyết tật nhất.
3. Thử giới hạn tải(áp lực): Nếu phần mềm có giới hạn tải, ta thử bằng cách tăng dần tải cho đến khi không chịu được.
Câu 7: Độ tin cậy của phần mềm? Một số cách đo độ tin cậy của phần mềm?
* Độ tin cậy của phần mềm:
- Độ tin cậy của phần mềm là độ đo về mức độ tốt của các dịch vụ mà hệ thống cung cấp.
- Độ tin cậy của phần mềm là một đặc trưng của hệ thống, là hệ số tỉ lệ nghịch đối với số thất bại của phần mềm.
- Để đo độ tin cậy của phần mềm ta tiến hành các cách sau. Một số cách đo độ tin cậy của phần mềm:
+ Tính xác suất xuất hiện thành công hay thất bại.
+ Đo độ dài khoảng thời gian trung bình giữa hai lần thất bại liên tiếp.
+ Khả năng sẵn sàng hoạt động lại của hệ thống.
Câu 8: Khái niệm về dự án và quản lí dự án?
* Khái niệm chung về dự án:
1. Dự án: là một tập hợp các công việc, được thực hiện bởi một tập thể nhằm đạt được một kết quả dự kiến, trong một thời gian dự kiến, với một kinh phí dự kiến. Trong đó, 4 yếu tố không thể thiếu của dự án :
- Tập thể thực hiện dự án: nguồn nhân lực, mỗi người có chuyên môn và năng lực nhất định.
- Thời gian dự kiến thực hiện dự án: Ngày bắt đầu, ngày kết thúc, thời điểm trung gian ứng với kết quả trung gian.
- Kết quả dự kiến: Sản phẩm sau cùng của dự án, phải hình dung và mô tả được. Kết quả có đặc tính/đặc điểm gì, giá trị sử dụng như thế nào? hiệu quả ra làm sao?
- Kinh phí dự kiến: tiền để thực hiện dự án. Người (hoặc đơn vị) cấp tiền (cấp vốn) được gọi là chủ đầu tư.
Ví dụ : Dự án “Xây một ngôi nhà 5 tầng cho cơ quan”.
- Tập thể thực hiện: nhóm kiến trúc sư, công nhân xây dựng, giám sát viên kỹ thuật.
- Thời gian thực hiện: 6 tháng, Khởi công: ngày N1, dự kiến kết thúc: ngày N2.
- Kinh phí được cấp: 1tỷ đồng.
- Kết quả cần đạt được: 1 ngôi nhà 5 tầng với đầy đủ tiện nghi làm việc cho cơ quan.
2. Dự án công nghệ thông tin:
Theo nghị quyết 49/CP ngày 4/8/1996, các dự án CNTT tập trung chủ yếu vào các nội dung sau:
- Ứng dụng CNTT trong các hoạt động quản lý và nghiệp vụ, trong đó trọng tâm là Tin học hóa phục vụ điều hành và quản lý Nhà nước;
- Xây dựng hệ thống các Cơ sở dữ liệu (CSDL) quốc gia và chuyên ngành;
- Phát triển tiềm lực và cơ sở hạ tầng về CNTT...
Nội dung cơ bản của các dự án đó đều xoay quanh:
- Phần cứng; phần mềm.
- Sự tích hợp giữa phần cứng/phần mềm và con người.
Ví dụ về dự án công nghệ thông tin:
- Nâng cấp HĐH từ Windows 98 thành Windows 2000 cho toàn bộ hệ thống.
- Xây dựng một hệ thống máy tính cho một trường học.
- Xây dựng một Web Site.
- Xây dựng một hệ thống bán hàng qua mạng.
- Xây dựng hệ thống đào tạo t ừ xa.
- …..
3. Phân loại dự án.
Theo tầm cỡ của dự án:
- Dự án lớn.
- Dự án trung bình và nhỏ. (nhỏ <15 người/1 năm)
Theo nội dung của dự án:
- Ứng dụng CNTT trong công tác QL và hoạt động nghiệp vụ.
- Xây dựng cơ s ở hạ tầng về CNTT
- Các dự án nhằm thực hiện nhiệm vụ đã phân công cho các B ộ ngành như phát triển nền công nghiệp CNTT; đảm bảo đủ cán bộ tin học cho đất nước.
* Thế nào là quản lý dự án
- Mục đích của quản lý dự án:
Mục đích cuối cùng là nhằm đảm bảo cho dự án đýợc thực hiện thành công. Nghĩa là đáp ứng 4 vấn đề sau:
o Sản phẩm cuối cùng của dự án thực sự đáp ứng các yêu cầu của người dùng, đảm bảo thời gian và kinh phí không vượt quá 10-20% dự tính ban đầu;
o Người dùng hài lòng với quá trình thực hiện dự án, thực sự tham dự và góp phần công sức của mình trong các hoạt động của dự án. Đặc biệt đối với các dự án ứng dụng CNTT, vai trò của những cán bộ nghiệp vụ trong việc xác định yêu cầu, phân tích quy trình, thông tin... tại chính đơn vị của mình là rất quan trọng;
o Các cấp quản lý phía trên của dự án (BCĐ CNTT, Bộ Tài chính...) được cung cấp đầy đủ thông tin về tình hình thực hiện dự án.
o Những người thực hiện dự án cũng phấn khởi, không bị quá gò bó, tích luỹ được kinh nghiệm, tăng thêm thu nhập...
- Phương pháp và kỹ thuật quản lý dự án.
o Áp dụng các kiến thức, kỹ năng, công cụ và kỹ thuật để thực hiện mục đích quản lý nêu trên.
o Trong suốt vòng đời của dự án, các công việc ở mỗi giai đoạn phải bao hàm những nội dung chủ yếu sau:
o Xác định rõ các yêu cầu về phạm vi, thời gian, chi phí, rủi ro, chất lượng.
o Phân công, đôn đốc, theo dõi và kiểm tra các thành viên trong đội dự án.
Bạn đang đọc truyện trên: Truyen4U.Com