Skip to content

Latest commit

 

History

History
208 lines (174 loc) · 16.6 KB

File metadata and controls

208 lines (174 loc) · 16.6 KB

BỘ CÂU HỎI - TRẢ LỜI CHƯƠNG 1: GIỚI THIỆU CÔNG NGHỆ PHẦN MỀM

PHẦN 1: KHÁI NIỆM CƠ BẢN

Câu 1: Định nghĩa Công nghệ phần mềm là gì?

Trả lời: Công nghệ phần mềm là một kỷ luật kỹ thuật liên quan đến tất cả các khía cạnh của sản xuất phần mềm, sử dụng các lý thuyết và phương pháp phù hợp để giải quyết vấn đề, có tính đến các ràng buộc về tổ chức và tài chính. Nó bao gồm cả quy trình kỹ thuật phát triển, quản lý dự án, và việc phát triển các công cụ, phương pháp, v.v.

Câu 2: Phần mềm là gì? Hãy phân loại các loại sản phẩm phần mềm.

Trả lời:

  • Định nghĩa: Phần mềm là các chương trình máy tính và tài liệu liên quan.
  • Phân loại sản phẩm phần mềm:
    • Sản phẩm tùy chỉnh (Customized products): Được phát triển cho một khách hàng cụ thể
    • Sản phẩm chung (Generic products): Được phát triển cho thị trường chung
  • Ví dụ: Phần mềm quản lý nhân sự riêng cho công ty (tùy chỉnh), Microsoft Office (chung)

Câu 3: Sự khác biệt giữa Công nghệ phần mềm và Khoa học máy tính là gì?

Trả lời:

  • Khoa học máy tính: Tập trung vào lý thuyết và các nguyên lý cơ bản
  • Công nghệ phần mềm: Quan tâm đến tính thực tiễn của việc phát triển và cung cấp phần mềm hữu ích

Câu 4: Sự khác biệt giữa Công nghệ phần mềm và Kỹ thuật hệ thống là gì?

Trả lời:

  • Kỹ thuật hệ thống: Quan tâm đến tất cả các khía cạnh phát triển hệ thống dựa trên máy tính bao gồm phần cứng, phần mềm và kỹ thuật quy trình
  • Công nghệ phần mềm: Là một phần của quy trình tổng quát này, tập trung chủ yếu vào phần mềm

PHẦN 2: ĐẶC ĐIỂM VÀ THUỘC TÍNH PHẦN MỀM

Câu 5: Ai chịu trách nhiệm về đặc tả sản phẩm trong các loại phần mềm khác nhau?

Trả lời:

  • Sản phẩm chung: Nhà phát triển phần mềm chịu trách nhiệm về đặc tả sản phẩm ban đầu và các thay đổi sau này. Các bộ phận khác có thể tham gia như phòng marketing, hỗ trợ khách hàng
  • Sản phẩm tùy chỉnh: Khách hàng chịu trách nhiệm về đặc tả

Câu 6: Liệt kê và giải thích các thuộc tính của phần mềm tốt.

Trả lời: Các thuộc tính của phần mềm tốt bao gồm:

  1. Cung cấp chức năng yêu cầu: Phần mềm phải thực hiện đúng những gì được yêu cầu
  2. Hiệu năng (Performance): Hoạt động nhanh chóng và hiệu quả
  3. Có thể bảo trì (Maintainable): Dễ dàng sửa đổi và cập nhật
  4. Đáng tin cậy (Dependable): Hoạt động ổn định, không gây lỗi
  5. Có thể sử dụng (Usable): Giao diện thân thiện, dễ sử dụng

Câu 7: Phân tích cấu trúc chi phí trong phát triển phần mềm.

Trả lời:

  • Chi phí phần mềm chiếm tỷ lệ tương đương với chi phí hệ thống máy tính
  • Chi phí bảo trì lớn hơn chi phí phát triển
  • Công nghệ phần mềm quan tâm đến việc phát triển phần mềm hiệu quả về chi phí

PHẦN 3: HOẠT ĐỘNG CƠ BẢN TRONG CÔNG NGHỆ PHẦN MỀM

Câu 8: Liệt kê và giải thích 4 hoạt động cơ bản của Công nghệ phần mềm.

Trả lời:

  1. Đặc tả phần mềm (Software specification): Xác định đặc tả phần mềm và các ràng buộc
  2. Phát triển phần mềm (Software development): Thiết kế và lập trình phần mềm
  3. Xác thực phần mềm (Software validation): Kiểm tra để đảm bảo phần mềm đáp ứng yêu cầu của khách hàng
  4. Tiến hóa phần mềm (Software evolution): Sửa đổi phần mềm để phản ánh những thay đổi

Câu 9: Tại sao Công nghệ phần mềm quan trọng? Liệt kê các lý do.

Trả lời: Chúng ta cần Công nghệ phần mềm vì:

  • Độ tin cậy và đáng tin cậy: Cần các sản phẩm đáng tin cậy
  • Giao hàng đúng thời hạn: Đảm bảo dự án hoàn thành đúng kế hoạch
  • Tái sử dụng: Có thể sử dụng lại các thành phần
  • Hiệu quả chi phí: Tiết kiệm chi phí trong thay đổi/tiến hóa
  • Và nhiều lý do khác

PHẦN 4: CÁC VẤN ĐỀ CHUNG TRONG PHẦN MỀM

Câu 10: Phân tích 3 vấn đề chung ảnh hưởng đến hầu hết các phần mềm.

Trả lời:

  1. Tính không đồng nhất (Heterogeneity): Các hệ thống ngày càng được yêu cầu hoạt động như các hệ thống phân tán qua mạng bao gồm các loại máy tính và thiết bị di động khác nhau
  2. Thay đổi kinh doanh và xã hội: Kinh doanh và xã hội thay đổi cực kỳ nhanh khi các nền kinh tế mới nổi phát triển và công nghệ mới trở nên khả dụng. Cần có khả năng thay đổi phần mềm hiện có và phát triển phần mềm mới một cách nhanh chóng
  3. Bảo mật và tin cậy: Khi phần mềm gắn liền với mọi khía cạnh cuộc sống, việc tin tưởng vào phần mềm là điều thiết yếu

Câu 11: Phân loại các loại ứng dụng phần mềm và giải thích tính đa dạng của Công nghệ phần mềm.

Trả lời:

  • Tính đa dạng: Có nhiều loại hệ thống phần mềm khác nhau nên không có bộ kỹ thuật phần mềm phổ quát nào áp dụng được cho tất cả
  • Các loại ứng dụng:
    • Độc lập (Stand-alone)
    • Dựa trên giao dịch (Transaction-based)
    • Hệ thống nhúng (Embedded system)
    • Xử lý hàng loạt (Batch processing)
    • Giải trí (Entertainment)
    • Mô hình và mô phỏng (Modeling and simulation)
    • Thu thập dữ liệu (Data collection)
    • Hệ thống của các hệ thống (System of systems)

PHẦN 5: NGUYÊN LÝ CƠ BẢN

Câu 12: Liệt kê 4 nguyên lý cơ bản áp dụng cho tất cả các loại hệ thống phần mềm.

Trả lời:

  1. Sử dụng quy trình phát triển được quản lý và hiểu biết
  2. Xem xét tính đáng tin cậy và hiệu năng
  3. Hiểu và quản lý đặc tả và yêu cầu phần mềm
  4. Cố gắng tái sử dụng phần mềm

PHẦN 6: ĐẠO ĐỨC TRONG CÔNG NGHỆ PHẦN MỀM

Câu 13: Định nghĩa đạo đức trong Công nghệ phần mềm và tại sao nó quan trọng?

Trả lời:

  • Định nghĩa đạo đức: Các nguyên tắc đạo đức chi phối hành vi của một người hoặc việc thực hiện một hoạt động
  • Tầm quan trọng:
    • Công nghệ phần mềm bao gồm trách nhiệm rộng hơn việc chỉ áp dụng kỹ năng kỹ thuật
    • Kỹ sư phần mềm phải hành xử trung thực và có trách nhiệm về mặt đạo đức để được tôn trọng như các chuyên gia
    • Hành vi đạo đức không chỉ là tuân thủ pháp luật mà còn là tuân theo các nguyên tắc đúng đắn về mặt đạo đức

Câu 14: Trình bày Bộ quy tắc đạo đức IEEE (10 điều).

Trả lời: Bộ quy tắc đạo đức IEEE gồm 10 điều:

  1. Chấp nhận trách nhiệm đưa ra quyết định phù hợp với an toàn, sức khỏe và phúc lợi công cộng, và tiết lộ kịp thời các yếu tố có thể gây nguy hiểm cho công chúng hoặc môi trường
  2. Tránh xung đột lợi ích thực tế hoặc được nhận thức khi có thể, và tiết lộ chúng cho các bên liên quan khi chúng tồn tại
  3. Trung thực và thực tế trong việc phát biểu các tuyên bố hoặc ước tính dựa trên dữ liệu có sẵn
  4. Từ chối hối lộ dưới mọi hình thức
  5. Cải thiện sự hiểu biết về công nghệ, ứng dụng phù hợp và hậu quả tiềm tàng
  6. Duy trì và cải thiện năng lực kỹ thuật, chỉ đảm nhận nhiệm vụ công nghệ cho người khác nếu đủ năng lực qua đào tạo hoặc kinh nghiệm, hoặc sau khi tiết lộ đầy đủ các hạn chế liên quan
  7. Tìm kiếm, chấp nhận và đưa ra phản hồi trung thực về công việc kỹ thuật, thừa nhận và sửa chữa lỗi, và ghi nhận đúng đắn đóng góp của người khác
  8. Đối xử công bằng với tất cả mọi người bất kể các yếu tố như chủng tộc, tôn giáo, giới tính, khuyết tật, tuổi tác hoặc xuất xứ quốc gia
  9. Tránh làm tổn thương người khác, tài sản, danh tiếng hoặc việc làm của họ bằng hành động sai trái hoặc ác ý
  10. Hỗ trợ đồng nghiệp và đồng sự trong phát triển nghề nghiệp và ủng hộ họ tuân theo bộ quy tắc đạo đức này

Câu 15: Trình bày Bộ quy tắc đạo đức ACM (8 điều chính).

Trả lời: Bộ quy tắc đạo đức và hành vi nghề nghiệp ACM gồm:

  1. 1.1 Đóng góp cho xã hội và phúc lợi con người
  2. 1.2 Tránh gây hại cho người khác
  3. 1.3 Trung thực và đáng tin cậy
  4. 1.4 Công bằng và hành động không phân biệt đối xử
  5. 1.5 Tôn trọng quyền sở hữu bao gồm bản quyền và bằng sáng chế
  6. 1.6 Ghi nhận đúng đắn tài sản trí tuệ
  7. 1.7 Tôn trọng quyền riêng tư của người khác
  8. 1.8 Tôn trọng tính bảo mật

Câu 16: Trình bày Bộ quy tắc đạo đức ACM SE (phiên bản ngắn - 8 nguyên tắc).

Trả lời:

  1. CÔNG CHÚNG: Kỹ sư phần mềm phải hành động phù hợp với lợi ích công cộng
  2. KHÁCH HÀNG VÀ NHÀ TUYỂN DỤNG: Kỹ sư phần mềm phải hành động vì lợi ích tốt nhất của khách hàng và nhà tuyển dụng, phù hợp với lợi ích công cộng
  3. SẢN PHẨM: Kỹ sư phần mềm phải đảm bảo sản phẩm và các sửa đổi liên quan đáp ứng các tiêu chuẩn nghề nghiệp cao nhất có thể
  4. PHÁN ĐOÁN: Kỹ sư phần mềm phải duy trì tính toàn vẹn và độc lập trong phán đoán nghề nghiệp
  5. QUẢN LÝ: Người quản lý và lãnh đạo kỹ thuật phần mềm phải đăng ký và thúc đẩy cách tiếp cận có đạo đức trong việc quản lý phát triển và bảo trì phần mềm
  6. NGHỀ NGHIỆP: Kỹ sư phần mềm phải thúc đẩy tính toàn vẹn và danh tiếng của nghề nghiệp phù hợp với lợi ích công cộng
  7. ĐỒNG NGHIỆP: Kỹ sư phần mềm phải công bằng và hỗ trợ đồng nghiệp
  8. BẢN THÂN: Kỹ sư phần mềm phải tham gia học tập suốt đời về thực hành nghề nghiệp và thúc đẩy cách tiếp cận có đạo đức trong thực hành nghề nghiệp

PHẦN 7: LÀM VIỆC NHÓM VÀ QUẢN LÝ DỰ ÁN

Câu 17: Liệt kê các vấn đề cần quyết định khi thành lập nhóm ban đầu.

Trả lời:

  • Đặt chương trình nghị sự cuộc họp và giới hạn thời gian
  • Chọn trưởng nhóm (chiến lược lãnh đạo?)
  • Quyết định cách nhóm sẽ giao tiếp
  • Xác định khách hàng (bên hoặc các bên muốn ứng dụng này)
  • Hiểu dự án theo thuật ngữ chung (đừng ngại nếu dự án có vẻ quá mơ hồ, hãy tìm hiểu cho đến khi cảm thấy thoải mái)

Câu 18: Làm thế nào để thiết lập kỳ vọng nhóm?

Trả lời:

  • Cam kết thời gian: Xác định số giờ trung bình dự kiến mỗi tuần, nếu không có cam kết thì cảnh báo quản lý (công nghiệp) hoặc thông báo giảng viên (học thuật)
  • Thu thập ngày nghỉ dự kiến
  • Chọn trọng tâm nhóm:
    • Thành tựu (sản phẩm có khả năng): có sự kết hợp tốt về lãnh đạo, kỹ thuật, viết, quan hệ khách hàng
    • Học tập: hy sinh thành tựu bằng cách cho phép thành viên trải nghiệm các hoạt động mới
  • Hiểu trọng tâm của người quản lý/giảng viên

Câu 19: Các nguyên tắc giao tiếp trong nhóm như thế nào?

Trả lời:

  • Chính sách chung: Khi nghi ngờ, hãy giao tiếp. Sự dư thừa là OK!
  • Địa điểm và thời gian họp thường xuyên
  • Cuộc họp thay thế
  • Tiêu chuẩn: MS WORD được sử dụng để lập tài liệu, E-mail qua Yahoo email tương thích
  • Chế độ giao tiếp điện tử ưa thích: Trừ khi giao tiếp có tính chất rất hạn chế đối với nhóm, nó nên được đăng lên trang web nhóm với thông báo tự động cho mọi thành viên
  • Chế độ giao tiếp điện tử thay thế: Cho giao tiếp 1-1 có tính chất rất hạn chế, thành viên sẽ sử dụng e-mail và/hoặc điện thoại
  • Xác nhận: Thành viên nhóm nên xác nhận tất cả giao tiếp điện tử được nhắm mục tiêu cụ thể cho họ, dù có được yêu cầu xác nhận hay không

PHẦN 8: TÓM TẮT VÀ KẾT LUẬN

Câu 20: Tóm tắt những điểm chính về Công nghệ phần mềm.

Trả lời:

  • Công nghệ phần mềm là một kỷ luật kỹ thuật liên quan đến tất cả các khía cạnh của sản xuất phần mềm
  • Các thuộc tính cần thiết của sản phẩm phần mềm là khả năng bảo trì, độ tin cậy và bảo mật, hiệu quả và khả năng chấp nhận
  • Các hoạt động cấp cao về đặc tả, phát triển, xác thực và tiến hóa là một phần của tất cả các quy trình phần mềm
  • Các khái niệm cơ bản của công nghệ phần mềm có thể áp dụng phổ quát cho tất cả các loại phát triển hệ thống
  • Có nhiều loại hệ thống khác nhau và mỗi loại yêu cầu các công cụ và kỹ thuật công nghệ phần mềm phù hợp cho việc phát triển
  • Kỹ sư phần mềm có trách nhiệm với nghề kỹ thuật và xã hội. Họ không nên chỉ quan tâm đến các vấn đề kỹ thuật
  • Các hiệp hội chuyên nghiệp xuất bản các quy tắc ứng xử đặt ra các tiêu chuẩn hành vi được mong đợi từ các thành viên của họ

Câu 21: Vai trò của việc tự học trong Công nghệ phần mềm là gì?

Trả lời: Tự học (Self-study) là một phần quan trọng trong việc đọc thêm và mở rộng kiến thức về Công nghệ phần mềm. Kỹ sư phần mềm cần tham gia học tập suốt đời để cập nhật kiến thức và kỹ năng trong lĩnh vực công nghệ phát triển nhanh chóng này.

CÂU HỎI TÌNH HUỐNG VÀ PHÂN TÍCH

Câu 22: So sánh ưu nhược điểm giữa phát triển sản phẩm phần mềm chung và sản phẩm tùy chỉnh.

Trả lời: Sản phẩm chung:

  • Ưu điểm: Thị trường rộng, có thể bán cho nhiều khách hàng, tự chủ trong quyết định tính năng
  • Nhược điểm: Cạnh tranh cao, khó đáp ứng nhu cầu đặc thù

Sản phẩm tùy chỉnh:

  • Ưu điểm: Đáp ứng chính xác yêu cầu khách hàng, ít cạnh tranh
  • Nhược điểm: Thị trường hạn chế, phụ thuộc vào yêu cầu khách hàng

Câu 23: Phân tích mối quan hệ giữa chi phí và chất lượng trong phát triển phần mềm.

Trả lời:

  • Chi phí bảo trì thường lớn hơn chi phí phát triển, do đó cần đầu tư vào chất lượng từ giai đoạn phát triển
  • Phần mềm chất lượng cao sẽ giảm chi phí bảo trì về lâu dài
  • Cân bằng giữa chi phí đầu tư ban đầu và lợi ích dài hạn là mục tiêu của Công nghệ phần mềm hiệu quả

Câu 24: Tại sao không thể có một bộ kỹ thuật phần mềm phổ quát cho tất cả ứng dụng?

Trả lời: Do tính đa dạng của các loại hệ thống phần mềm (stand-alone, embedded, transaction-based, entertainment, v.v.), mỗi loại có:

  • Yêu cầu kỹ thuật khác nhau
  • Ràng buộc về hiệu năng khác nhau
  • Môi trường vận hành khác nhau
  • Mục tiêu sử dụng khác nhau Do đó cần áp dụng các công cụ và kỹ thuật phù hợp với từng loại hệ thống cụ thể.