1. Định nghĩa phần mềm? Kể các loại hệ thống phần mềm ứng dụng? Giải thích nội dung? 2 2. Các đặc trưng của phần mềm? Các thuộc tính của phần mềm kỹ nghệ tốt? 3 3. Định nghĩa kỹ nghệ phần mềm? Các yếu tố: Phương pháp, công cụ và thủ tục trong quá trình kỹ nghệ được hiểu như thế nào? 5 4. Mô hình vòng đời cổ điển gồm những bước nào? Ưu và nhược điểm của mô hình này? 6 5. Mô hình làm bản mẫu hoạt động như thế nào? Ưu và nhược điểm của mô hình này? 7 6. Mô hình xoắn ốc hoạt động như thế nào? Ưu và nhược điểm của mô hình này? 9 7. Lý do phải quản lý dự án? Mục tiêu quản lý dự án là gì ? Nhiệm vụ của người quản lý là làm gì ? 11 8. Độ đo phần mềm là gì? Có những phương pháp phổ biến nào để đo kích cỡ phần mềm? 12 9. Giải thích nội dung hai chỉ tiêu: Số dòng lệnh (LOC), điểm chức năng (FP)? 13 10. Trình bày các phương trình cơ bản của mô hình COCOMO? 14 11. Các bước tiến hành mô hình COCOMO? 14 12. Trình bày nội dung của quản lý nhân sự? Các đặc trưng của nhóm và tổ chức làm việc theo nhóm? 15 13. Quản lý cấu hình là gì? Quản lý cấu hình gồm những công việc gì? 16 14. Nêu các đặc trưng của ngôn ngữ lập trình? Giải thích? 17 15. Tại sao kiểm thử lại là 1 phương pháp k thể thiếu trong việc đảm bảo chất lượng phần mềm.Nêu các loại hình (mức) kiểm thử phần mềm? Giải thích? 18 16. Liệt kê các kỹ thuật kiểm thử? So sánh giữa kiểm thử hộp đen và kiểm thử hộp trắng? Kiểm thử đơn vị (Unit test) là kiểm thử hộp đen hay kiểm thử hộp trắng? Tại sao? 20
Trang 11 Định nghĩa phần mềm? Kể các loại hệ thống phần mềm ứng dụng? Giải thích nội dung? 2
2 Các đặc trưng của phần mềm? Các thuộc tính của
phần mềm kỹ nghệ tốt? 3
3 Định nghĩa kỹ nghệ phần mềm? Các yếu tố: Phương pháp, công cụ và thủ tục trong quá trình kỹ nghệ được hiểu như thế nào? 5
4 Mô hình vòng đời cổ điển gồm những bước nào? Ưu và nhược điểm của mô hình này? 6
5 Mô hình làm bản mẫu hoạt động như thế nào? Ưu và nhược điểm của mô hình này? 7
6 Mô hình xoắn ốc hoạt động như thế nào? Ưu và nhược điểm của mô hình này? 9
7 Lý do phải quản lý dự án? Mục tiêu quản lý dự án là gì
? Nhiệm vụ của người quản lý là làm gì ? 11
8 Độ đo phần mềm là gì? Có những phương pháp phổ biến nào để đo kích cỡ phần mềm? 12
9 Giải thích nội dung hai chỉ tiêu: Số dòng lệnh (LOC), điểm chức năng (FP)? 13
10 Trình bày các phương trình cơ bản của mô hình
COCOMO? 14
11 Các bước tiến hành mô hình COCOMO? 14
12 Trình bày nội dung của quản lý nhân sự? Các đặc trưng của nhóm và tổ chức làm việc theo nhóm? 15
13 Quản lý cấu hình là gì? Quản lý cấu hình gồm những công việc gì? 16
14 Nêu các đặc trưng của ngôn ngữ lập trình? Giải
thích? 17
15 Tại sao kiểm thử lại là 1 phương pháp k thể thiếu trong việc đảm bảo chất lượng phần mềm.Nêu các loại hình (mức) kiểm thử phần mềm? Giải thích? 18
16 Liệt kê các kỹ thuật kiểm thử? So sánh giữa kiểm thử hộp đen và kiểm thử hộp trắng? Kiểm thử đơn vị
Trang 2(Unit test) là kiểm thử hộp đen hay kiểm thử hộp trắng? Tại sao? 20
Trang 31 Định nghĩa phần mềm? Kể các loại hệ thống phần mềm ứng dụng? Giải thích nội dung?
- Định nghĩa phần mềm bao gồm các lệnh máy tính nhằm thực hiện các chức năng nhất định Các cấu trúc dữ liệu cho phép chương trình thao tác với dữ liệu, các tài liệu giúp cho người dùng vận hành được phần mềm có thể bảo trì được,
đáng tin cậy, có hiệu quả và dễ sử dụng
PM là 1 tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chức năng hoặc giải quyết một bài toán nào đó
Phần mềm gồm 3 loại: chương trình máy(mã nguồn,mã
máy), cấu trúc dữ liệu( cấu trúc làm việc-bộ nhớ trong, cấu trúc
dữ liệu-bộ nhớ ngoài) và các tài liệu liên quan (hướng dẫn sử dụng cho người sử dụng, tài liệu tham khảo kỹ thuật cho nhà bảo trì, tài liệu phát triển cho người phát triển thiết kế)
- Các loại hệ thống phần mềm ứng dụng :
Phần mềm hệ thống: vd win xp…là một tập các chương trình đc viết để phục vụ cho các chương trình khác,đặc trưng bởi tương tác với phần cứng máy tính Nó xử lý các chương trìnhphức tạp nhưng xđịnh ( trình biên dịch, trình soạn thảo )
Phần mềm thời gian thực: là phần mềm điểu phối, phát triển hoặc kiểm soát ở thế giới thực ngay khi chúng xuất hiện thì gọi là phần mềm thời gian thực điển hình là các phần mềm điều khiển các thiết bị tự động Nó bao gồm các thành tố: tp thuthập dữ liệu để thu và định dạng thông tin từ môi trường ngoài,
tp để biến đổi thông tin theo yêu cầu của ứng dụng,tp kiểm
Trang 4soát hoặc đưa ra đáp ứng môi trường ngoài, tp điều phối để điều hòa các thành phần khác sao cho có thể duy trì và đáp ứng thời gian thực.
Phần mềm nghiệp vụ: là các pm` xử lý thông tin nghiệp vụgắn với CSDL
Phần mềm KH và CN: đặc trưng bởi các thuật toán phức tạp, loại phần mềm này đòi hỏi năng lực tính toán cao
Phần mềm nhúng: là pm nằm trong bộ nhớ chỉ đọc và đc dùng để đkhien các sản phần và hệ thống cho người dùng và thị trường công nghiệp
Phần mềm máy tính cá nhân: gồm các bài toán nghiệp vụ nhỏ, học tập giải trí Có yêu cầu về giao diện đồ họa phát triển
và là phần mềm có nhu cầu lớn
Phần mềm trí tuệ nhân tạo: dùng các thuật toán phi sổ để giải quyết những vấn đề phức tạp(suy luận,lôgic ) vd: hệ
chuyên gia, trò chơi, nhận dạng…
Phần mềm dựa trên web: cung cấp các dịch vụ khai thác ứng dụng trên web.(browser)
2 Các đặc trưng của phần mềm? Các thuộc tính của phần mềm kỹ nghệ tốt?
- Đặc trưng của phần mềm:
+) PM ko chế tạo trên đĩa cổ điển: PM được thiêt kế phát triển như phần cứng
Trang 5nhưng nó ko được định hình trước, chỉ khi phát triển xong người ta có sản
phẩm cụ thể mới hiểu được nó có hiểu quả hay ko Tức là ở các bước trung gian
chúng ta khó kiểm soát được pm
+ Phần mềm không mòn cũ nhưng thoái hóa theo thời gian,
pm ko cảm ứng với những tác động môi trường vốn gây cho phần cứng bị mòn đi nhưng nó cũng bị thoái hoá theo time Thực tế pm trải qua time sử dụng cần phải được thay đổi bảo trì
để đáp ứng nhu cầu luôn thay đổi của ntổ chức của nó
+ Phần lớn phần mềm đều đc xây dựng từ đầu, ít được rắp ráp từ mẫu có sẵn: không có danh mục thiết kế phần mềm cho trước, các phần mềm được thiết kế do đặt hàng và làm theo yêu cầu của khách hàng
+ Giá thành của pm chủ yếu tập trung vào chi phí nhân côngphát triển pm phụ
thuộc vào con người, sự hiểu biết khả năng quản lý…môi trường đa dạng và con
người thay đổi do đó rất khó ước lượng chi phí cũng như phát triển pm
- Các thuộc tính của phần mềm kỹ nghệ tốt:
+) Bảo trì được: “phần mềm luôn yêu cầu đc sửa đổi”
Để sửa đổi được phần mềm cần: Thiết kế dễ hiểu, dễ sửa (thiết kế tốt), Cài đặt bằng ngôn ngữ bậc cao, Có đầy đủ tài
Trang 6liệu, Có tuổi thọ caophục vụ nhiều, Chi phí thấp cho hiệu quả
+) Đáng tin cậy: phần mềm ít khiếm khuyết như:Lỗi lập trình,Lôi phân tich, thiết kế: sai, thiếu chức năng, Hoạt động không hiệu quả
Đáp ứng được nhu cầu người sử dụng: Đảm bảo thời gian làmviệc, ổn định, cho kết quả xác đáng
+) Có hiệu quả: Không sử dụng lãng phí tài nguyên phần cứng: Đòi hỏi bộ nhớ lớn, Đòi hỏi tốc độ cao, Chiếm không gian đĩa lớn,…
cần tối ưu hợp lý
nhưng tối ưu hóa dễ dẫn tới khó khăn bảo trì, giá thành cao: dùng ngôn ngữ bậc thấp, truy cập trực tiếp đến thiết bị.+) Tiện dụng: Giao diện phù hợp với trình độ của users, Học nhanh nhớ lâu, Có đủ tài liệu và tiện ích trợ giúp
giao diện quyết định thành công của sản phẩm
+) giá cả hợp lý: khó tối ưu đồng thời các thuộc tính Hiệu quả<> dễ bảo trì, dễ sử dụng, chi phí cho tối ưu là không tuyếntính
Trang 73 Định nghĩa kỹ nghệ phần mềm? Các yếu tố: Phương pháp, công cụ và thủ tục trong quá trình kỹ nghệ được hiểu như thế nào?
Kỹ nghệ phần mềm là thiết lập và sử dụng các nguyên lý công nghệ đúng đắn để được phần mềm một cách kinh tế, vừa tin cậy, vửa làm việc hiệu quả trên các máy thực
- Các yếu tố:
Phương pháp: là cách làm cụ thể để xây dựng phần mềm Được sử dụng các bước: Lập kế hoạch ; Ước lượng dự án ; Phân tích yêu cầu hệ thống ; Thiết kế cấu trúc dữ liệu, kiến trúc
chương trình, thủ tục thuật toán, mã hóa, kiểm thử và bảo trì
Công cụ: trợ giúp tự động hoặc bán tự động phương pháp,
nó gồm các công cụ khác nhau hỗ trợ trong quá trình thiết kể cũng như phát triển phần mềm, hầu như các công cụ là ngôn ngữ lập trình
Thủ tục: xác định trình tự thực hiện công việc, phương pháp sẽ đc áp dụng cho mỗi dự án; Tạo các sản phẩm cần bàn giao như tài liệu báo cáo, bản mẫu cần cho việc kiểm soát để đảm bảo chất lượng và điều hòa thay đổi; định mức thời gian
và sản phẩm đưa ra
4 Mô hình vòng đời cổ điển gồm những bước nào? Ưu
và nhược điểm của mô hình này?
Mô hình này yêu cầu tiếp cận 1 cách hệ thống, tuần tự và chặt chẽ, xong bước này mới chuyển sang bước kia
Phân tích
Thiết kế
Trang 8- thiết kế: là quá trình chuyển hóa các yêy cầu PM thành các mô tả thiết kế gồm nhiều bước thông thường gồm: cấu trúc
PM, cấu trúc tổng quan, thiết kế cấu trúc dữ liệu, thiết kê chi tiết các thủ tục, thiết kế giao diện và tương tác
- Mã hóa: biểu diễn thiết kế bằn 1 hay 1 số ngôn ngữ lập trình và dịch thành mã máy thực hiện được
- Kiểm thử: là xem PM có hđ như mong muốn hay không tức là phát hiện ra những lỗi, hay thiếu hụt, hay sai xót về chức năng, ktra xem PM có đảm bảo tính hiệu quả hay không
- Bảo trì: bào gồm các công việc sửa chữa các lõi phát sinh khi hđ chương trình hoặc yêu cầu bổ sung nâng câo hiệu năng cần có
Ưu điểm: có sớm và được sử dụng rộng rãi, thích hợp khi yêucầu hiểu tốt, hệ lớn và phức tạp; dễ bảo trì
Mã hóa
Kiểm thử
Bảo trì
Trang 9Nhược điểm: khó tuân thủ tuần tự (các dự án lớn thường phảiquay lại), khó đáp ứng yêu cầu thường thay đổi của khách
hàng, đòi hỏi khách hàng phải kiên nhẫn, sai sót phát hiện muộn có thể coi là thảm họa, tài liệu quá nhiều tốn sức người cũng như thời gian tiền bạc
5 Mô hình làm bản mẫu hoạt động như thế nào? Ưu và nhược điểm của mô hình này?
Hoạt động: trước hết người phát triển và khách hàng gặp nhau xây dựng mục tiêu tổng thể cho pm, xác định các yêu cầuđã biết, các miền cần khảo sát thêm
Trang 10Giai đoạn thiết kế nhanh tập trung vào việc biểu diễn các khía cạnh của pm, thấy được đối với người dùng và xây dựng1 bản mẫu một cách nhanh chóng sau đó được làm mịn hoắc thiết kế lại, và quá trình này được lặp đi lặp lại cho đến khi
không còn yêu cầu mới nào được phát hiện và không cần sửa đổi gì thêm nữa Sau đó phiên bản cuối cùng được sử dụng Mỗi bản mẫu nhận được lần sau đáp ứng được nhu cầu người dùng nhiều hơn, gần với hệ thống cần xây dựng hơn
-các dạng của bản mẫu: có 3 dạng
+Bản mẫu trên giấy hay máy tính mô tả giao diện máy, làm người dùng hiểu được cách tương tác xuất hiện
người-+Bản mẫu cái đặt chỉ một tập con các chức năng cảu pm mong đợi
+Bản mẫu là một chương trình có thể thực hiện 1 phần hay tất cả các chức năng mong muốn nhưng ở mức sơ lược và cần cải tiến thêm các tính năng khác tuỳ theo khả năng phát triển
Ưu điểm:
-Không phải ở bước cuối cùng khách hàng mới đánh giá được kết quả cuối cùng Và luôn có sự trao đổi giữa khách hàng với người phát triển
-Làm bản mẫu đặc biệt có lợi khi mà một ssos nhu cầu
thoogn tin hay giải pháp cho nó còn chưa dược xác định
-Có lợi cho thiết kế giao diện cuối cùng
-Hạn chế được những chi phí quá đáng của sự phát triển
Trang 11-Thích hợp nhất với những hệ thống nhỏ hay hệ thống lớn có thể chia nhỏ đẻ làm từng phần
trường hợp mà dữ liệu ko lớn hay số người dùng nhiều
-Khách hàng nhiều khi thất vọng với việc phát triển pm do họlầm tưởng bản mẫu là sản phẩm cuối cùng hướng tới người sử dụng, do đó khách hàng cũng không giành nhiều công sức vào đánh giá bản mẫu-> do đó những sai sót nhỏ có thể được sửa đổi chậmhơn
-Hệ thống thay đổi nhanh, việc làm tài liệu có thể ko kịp thời(Đối với đối tượng khách hàng hay thay đổi ta nên áp dụng
mô hình phát triển phần mềm bản mẫu bởi vì mô hình vòng đời cổ điển luôn luôn lặp đi lặp lại một hành động nên nó chỉ phù hợp với khách hàng có ít yêu cầu)
6 Mô hình xoắn ốc hoạt động như thế nào? Ưu và
nhược điểm của mô hình này?
Trang 12Hoạt động: quá trình phát triển được chia thành hiều bước lặp đi lặp lại, mọi bước bắt đầu bằng việc phân tích rủi ro rồi tạo
ra bản mẫu, cải tạo và phát triển bản mẫu, duyệt lại và cứ thế tiếp tục Nội dung 1 bước bao gồm 4 hoạt động chính:
-hđ1: lập kế hoạch, xác định mục tiêu và các giải pháp và các ràng buộc
-hđ2: phân tích rủi ro là phát triển các phương án và xác địnhgiải quyết rủi ro
-hđ3: kỹ nghệ: đưa ra các bản mẫu, phát triển sản phẩm ở mức tiếp theo
-hđ4: Đánh giá: đánh giá của khách hàng về kết quả của kỹ nghệ
Với mỗi lần lặp xoắn ốc (bắt đầu từ trung tâm), các phiên bảnđược hoàn thiện và bổ sung dần Nếu phân tích rủi ro chỉ ra rằng yêu cầu là ko chắc chắn thì bản mẫu có thể được sd trong
Trang 13góc phần tư kỹ nghệ Các mô hình và các mô phỏng khác cũng được dùng để làm rõ hơn vấn đề và làm mịn yêu cầu 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ànhtiếp hay dừng”, nếu rủi ro quá lớn có thể đình chỉ dự án
Ưu điểm: Mô hình xoắn ốc là cách tiếp cận thức tế nhất để phát triển các hệ thống và pm quy mô lớn Trong đó làm bản mẫu xem như một cơ chế làm giảm bớt rủi ro
-Chính quá trình lặp và đánh giá rủi ro ở mỗi bước là cơ chế tốt đảm bảo sự thành công của công việc xây dựng HTTT (vì rủi
ro ở mỗi bước là nhỏ, dễ dàng nhận ra, để khắc phục và có xảy
ra ko ảnh hưởng lớn đến phần đã xây dựng)
Nhược điểm:
-Cách tiếp cận tiến hoá khó kiểm soát được
-Đòi hỏi chuyên gia đánh giá rủi ro phải có năng lực quản lý chuyên môn cao, nếu ko quản lý tốt sẽ rơi vào trạng thái sửa lỗicục bộ, ko có kế hoạch
-Mô hình tương đối mới và chưa được sử dụng rộng rãi
7 Lý do phải quản lý dự án? Mục tiêu quản lý dự án là
gì ? Nhiệm vụ của người quản lý là làm gì ?
- Lý do quản lý dự án: sản phẩm phần mềm là vô hình,
không thể là duy nhất với một yêu cầu, tiến trình phát triển tùy theo yêu cầu của khách hàng, rủi ro khó có thể tránh khỏi…vì thế cần phải có sự quản lý để đảm bảo dự án đó được thực thi một cách hiệu quả nhất
Trang 14Mục tiêu quản lý: tạo ra sản phẩm bàn giao chất lượng (đúngthời gian, trong phạm vi chi phí dự đoán, phù hợp với yêu cầu của khách hàng), thoả mãn các nhu cầu của khách hàng, đầy đủ các chức năng đã định, lợi nhuận phải nhiều hơn chi phí
- Nhiệm vụ của người quản lý: xác định vi phảm dự án (xác định mỗi công việc mỗi giai đoạn, xác định sp giao nộp,kiểm soát sự thay đổi của vi phạm), Quản lý nguồn lực (xác định,bổ sung, phân bổ điều phối tài nguyên, đánh giá sử dụng tài
nguyên, phát triền bồi dưỡng nguồn lực), quản lý thời gian (xác định thời gian giao nộp, lập lịch ước lượng thời gian, kiểm soát tiến độ), quản lý tài chính (ước tính chi phí, phân bổ chi phí cho các công việc, kiểm soát chi tiêu ở mỗi công việc), quản lý rủi
ro (ước lượng, phát hiện rủi ro, đề xuất phòng ngừa) , quản lý mua sắm, đảm bảo chất lượng (quản lý tiêu chuẩn chất lượng, quản lý chất lượng sản phẩm được giao ), quản lý thay đổi, quản lý cấu hình phần mềm
8 Độ đo phần mềm là gì? Có những phương pháp phổ biến nào để đo kích cỡ phần mềm?
Độ đo phần mềm: là đo kích cỡ phần mềm
Những phương pháp phổ biến để đo kích cỡ phần mềm: Phương pháp Use Cases và phương pháp Function Point , LOC lànhững phương pháp được sử dụng rộng rãi nhất hiện nay để ước lượng nguồn lực cho phát triển một phần mềm
- Phương pháp Use Cases dựa trên việc xác định độ phức tạp của các Actor và các giao dịch trên mỗi Use Cases
Trang 15- Phương pháp function point:Phương pháp phân tích
Function Point là một phương pháp chuẩn để tính kích thước phần mềm dựa trên việc phân tích các chức năng mà phần mềm đó phải thực hiện
- Phương pháp Uscase Point: Là một phương pháp do hãng Rational giới thiệu, dùng để xác định kích thước một phần mềmđặc biệt là đối với phần mềm dùng UML trong phân tích, thiết
kế và xây dựng Trên thực tế có một mối quan hệ giữa usecase
và code, các usecase phức tạp thường sẽ tốn nhiều thời gian đểcode hơn
Các điểm mà phương pháp UCP quan tâm khi ước lượng kích thước phần mềm là:
+ Số lượng và độ phức tạp của các usecase trong hệ thống.+ Số lượng và độ phức tạp của các Actor (thực hiện) trong hệthống
+ Các yêu cầu non-functional khác như (ngôn ngữ lập trình, động lực của nhóm phát triển,…)
+ Môi trường để phát triển hệ thống (ngôn ngữ lập trình, động lực của nhóm phát triển,…)
-phương pháp LOC: đo kích thước pm bằng cách đo số dòng lệnh, trực quan phụ
thuộc vào ngôn ngữ lập trình cụ thể Từ đó ta đưa ra 1 số công thức: Hiệu năng=KLOC / người-tháng
CHất lượng = Số lỗi / KLOC
Chi phí = giá thành cả pm/ KLOC