Tải bản đầy đủ (.docx) (17 trang)

ĐỀ CƯƠNG MÔN CÔNG NGHỆ PHẦN MỀM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (226.17 KB, 17 trang )

ĐỀ CƯƠNG MÔN CÔNG NGHỆ PHẦN MỀM
CHƯƠNG 1: TỔNG QUAN VỀ CNPM
Câu 1: Khái niệm phần mềm. Phân biệt phần mềm và phần cứng. Phân loại phần
mềm.
 Khái niệm phần mềm: phần mềm gồm 3 phần:
- Chương trình máy tính: mã nguồn, mã máy
- Cấu trúc DL: cấu trúc làm việc (bộ nhớ trong), cấu trúc lưu trữ (bộ nhớ ngoài)
- Các tài liệu liên quan: hướng dẫn người sử dụng (người dung), tham khảo kĩ

thuật (người bảo trì), tà liệu phát triển (nhà phát triển).
 Phân loại phần mềm: 3 cách
- Theo mức độ hoàn thiện
- Theo chức năng thực hiện
- Theo lĩnh vực ứng dụng
1. Phân loại theo mức độ hoàn thiện
- Chương trình
• Một người viết, một người dùng (người viết ≡ người dùng)
• Mục đích thu thập, xử lý số liệu (dùng 1 lần)
• Không tài liệu, không kiểm thử triệt để
- Sản phẩm phần mềm
• Nhiều người viết, nhiều người dùng, độ phức tạp cao, đồng bộ, an toàn,

an ninh
• Kinh nghiệm viết chương trình nhỏ không áp dụng cho sản phẩm lớn
2. Phân loại theo chức năng thực hiện
- Phần mềm hệ thống
• Điều hành hoạt động máy tính, thiết bị và chương trình
• Trợ giúp các tiện ích (tổ chức tệp, nén, dọn đĩa)
- Phần mềm nghiệp vụ
• Trợ giúp các hoạt động nghiệp vụ khác nhau
• Có số lượng lớn, đa dạng


• Phân làm hai loại theo cách làm:
 Sản phẩm đặt hàng
o Sản xuất theo đơn đặt hàng
o Đơn chiếc, yêu cầu đặc thù
 Sản phẩm chung
o Bán rộng rãi
o Thỏa mãn yêu cầu chung số lớn người dùng
o Mỗi loại có cách thức tiếp cận riêng, nhất là ở một số các
bước -> chi phí, thời gian khác nhau
- Phần mềm công cụ
1

1


Trợ giúp cho quá trình phát triển phần mềm
Các ngôn ngữ lập trình (soạn thảo, dịch, gỡ rối,…)
Công cụ trợ giúp 1, nhiều giai đoạn phát triển (phân tích, thiết kế, quản
lý dự án, kiểm thử, …
3. Phân loại theo lĩnh vực ứng dụng
- Phần mềm hệ thống
• Phục vụ cho các chương trình khác nhau
• Tương tác trực tiếp với phần cứng
• Phục vụ nhiều người dùng
- Phần mềm thời gian thực
• Thu thập, xử lí các dữ kiện thế giới thực
• Đáp ứng yêu cầu chặt chẽ về thời gian
- Phần mềm nghiệp vụ
• Xử lí thông tin nghiệp vụ, gắn với CSDL
• Xử lý các giao tác mạng

• Các lĩnh vực ứng dụng rất lớn (như các hệ điều khiển vũ trụ)
- Phần mềm khoa học kỹ thuật
• Dùng thuật toán phức tạp (vật lí, mô phỏng)
• Năng lực tính toán cao




Câu 2: Kiến trúc phần mềm là gì? Thế nào là 1 phần mềm tốt
-

-

Kiến trúc phần mềm là cấu trúc của các thành phần trong hệ thống đó. Kiến
trúc phần mềm bao gồm các phần tử phần mềm, các thuộc tính và mối quan hệ
giữa chúng.
Tiêu chí đánh giá phần mềm tốt hiện nay:
• Người dùng:
 Đủ chức năng nghiệp vụ
 Dễ sử dụng, tinh vi (tính thông minh)
 Tin cậy, an toàn
• Nhà phát triển: dễ bảo trì.

Câu 3: Khái niệm phần mềm? Vai trò và đặc trưng của phần mềm?
 Vai trò của phần mềm
- Là linh hồn của hệ thống máy tính
- Có vai trò nền tảng của mọi hoạt động xã hội tổ chức
- Mọi nền kinh tế phụ thuộc rất lớn vào phần mềm
- Phần mềm sai hỏng, kinh tế tổn thất lớn
 Đặc trưng của phần mềm

- Không mòn cũ nhưng thoái hóa theo thời gian
• Môi trường sử dụng, nhu cầu thay đổi
2

2


• Lỗi phát sinh tăng do nâng cấp
Không được lắp ráp từ mẫu có sẵn
Phức tạp, khó hiểu, vô hình
• Phần mềm là hệ thống logic khó hiểu
 Nhiều khái niệm khác nhau
 Mối liên kết là logic (không nhìn thấy)
 Để hiểu phải tư duy trừu tượng
• Không nhìn thấy
Không phải vật thể vật lý. Mỗi biểu diễn chỉ một khía cạnh, không phải
một hệ thống tổng thể
- Thay đổi là bản chất
• Là mô hình TG thực thay đổi theo thời gian
• Thay đổi thích ứng với môi trường vận hành
- Cần phát triển phần mềm theo nhóm
• Quy mô ngày càng lớn và yêu cầu kĩ năng khác nhau
• Nhu cầu bàn giao nhanh
• Năng suất của nhóm không tỉ lệ với số thành viên
Câu 4: Khái niệm phần mềm? Nêu vắn tắt các giai đoạn phát triển của phần mềm?
 Các giai đoạn phát triển của phần mềm
• Giai đoạn 1: 1950-1960
- Chương trình nhỏ, tính toán chuyên dụng
- Ngôn ngữ máy, hợp ngữ, đặc thù cho từng máy
- Tiêu chí đánh giá:

• Tính nhanh
• Giải được bài toán
• Công nghệ: bóng điện tử (chậm, bộ nhớ nhỏ)
• Giai đoạn 2: Giữa thập kỉ 70
- Sản phẩm: đa dạng, đa người sử dụng
- Xử lí số, kí tự, theo lô, thời gian thực
- Xuất hiện lưu trữ trực tuyến
- Ngôn ngữ: Algol, Fortan
- Tiêu chí đánh giá:
• Nhanh
• Giải được bài toán
• Nhiều người sử dụng
- Công nghệ:
• Bán dẫn (nhanh hơn, bộ nhớ khá hơn), CSDL
• Yêu cầu bảo trì (sửa lỗi, thích nghi)
• Giai đoạn 3: Đầu những năm 1990
- Phần mềm cá nhân, mạng, hệ lớn, chia sẻ được
- Ra đời phần mềm nhúng
- Xử lí số, kí tự, âm thanh, hình ảnh, theo lô, thời gian thực, phân tán, song song
- Truy nhập dữ liệu phát triển, từ xa
-

3

3


Ngôn ngữ bậc cao, hướng đối tượng, logic
Tiêu chí: tiện dụng, tin cậy, dễ bảo trì
Công nghệ: mạch tích hợp, vi mạch, các cấu hình, mạng internet, CSDL quan

hệ…
• Giai đoạn 4: Từ 1990 đến nay
- Phần mềm lớn,tinh vi, tin cậy, hướng người dùng
- Hệ chuyên gia, trí tuệ nhân tạo, phần mềm nhúng, web service sử dụng rộng
rãi, intrenet mở rộng
- CSDL hướng đối tượng, kho DL phát triển
- Ngôn ngữ: hướng đối tượng, thế hệ thứ 4, visual
- Tiêu chí: tiện dụng, tinh vi, tin cậy dễ bảo trì
- Công nghệ: vi mạch siêu tích hợp, internet, mạng không dây,tốc độ cao, hướng
đối tượng, web
-

Câu 5: Nêu sơ lược lịch sử phát triển của phần mềm? Tiêu chí để đánh giá một phần
mềm tốt hiện nay là gì?
 Tiêu chí đánh giá 1 phần mềm tốt hiện nay
• Người dùng:
 Đủ chức năng nghiệp vụ
 Dễ sử dụng, tinh vi (tính thông minh)
 Tin cậy, an toàn
• Nhà phát triển: dễ bảo trì.

CHƯƠNG 2: TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM
Câu 6: Vòng đời của phần mềm? Mô hình vòng đời phần mềm của Boehm?
- Vòng đời phần mềm: là thời kì tính từ khi phần mềm được tạo ra cho đến khi
chết đi (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến khi
loại bỏ không đâu dùng)
-

4


Mô hình vòng đời phần mềm của Boehm

4


Suy nghĩ mới về vòng đời phần mềm
• Pha xác định yêu cầu và thiết kế có vai trò quyết định chất lượng phần
mềm, chiếm phần lớn công sức so với lập trình, kiểm thử và chuyển
giao sản phẩm.
• Pha cụ thể hóa cấu trúc phần mềm phụ thuộc vào nhiều suy nghĩ trên
xuống và trừu tượng hóa cũng như chi tiết hóa.
• Pha thiết kế và chế tạo thì theo trên xuống, pha kiểm thử thì từ dưới lên.
• Trước khi chuyển sang pha kế tiếp phải đảm bảo pha hiện nay đã kiểm
thử không còn lỗi.
• Cần có cơ chế kiểm tra chất lượng, xét duyệt giữa các pha nhằm đảm
bảo không gây lỗi cho pha sau.
• Tư liệu của mỗi pha không chỉ dùng cho pha sau mà chính là đối tượng
quan trọng cho kiểm tra và đảm bảo chất lượng cho từng quy trình và
của chính phần mềm.
• Cần chuẩn hóa mẫu biểu, cách ghi chép tạo tư liệu cho từng pha nhằm
đảm bảo chất lượng phần mềm.
• Thao tác bảo trì phần mềm là việc xử lý quay trở lại các pha trong vòng
đời phần mềm nhằm biến đổi, sửa chữa và nâng cấp phần mềm.
Câu 7: Phân tích mô hình thác nước? Ưu và nhược điểm của mô hình?
-

5

5



 Phân tích mô hình thác nước

Phân tích: tập trung vào việc thu thập phân tích các thông tin 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ủ.
- 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ế mà từ đó nhà phát triển và lập trình có thể lắp đặt hệ thống và chuyển thiết
kế thành chương trình vận hành được
- Mã hóa: dịch đặc tả các thiết kế thành các chương trình mã nguồn trong 1 ngôn
ngữ lập trình nào đó mà mã này có thể thực hiện được.
- Kiểm thử: phát hiện lỗi và sửa lỗi trong chương trình
- Bảo trì: trong môi trường hoạt động thực tế, hệ thống có đáp ứng các yêu cầu
đặt ra ban đầu và đề xuất nhưng thay đổi bổ sung để hoàn thiện hệ thống
 Ưu và nhược điểm của mô hình
- Ít dự án tuân theo dòng tuần tự của mô hình mà thường có lặp lại
- Khách hàng ít khi tuyên bố rõ rang khi nào xong hết các yêu cầu
- Khách hàng phải có long kiên nhẫn chờ đợi thời gian nhất định mới có sản
phẩm. Nếu phát hiện ra lỗi nặng thì là 1 thảm họa
Câu 8: Phân tích mô hình xoắn ốc? Ưu và nhược điểm của mô hình?
 Phân tích mô hình xoắn ốc
-

6

6


Giao tiếp khách hàng: giữa người phát triển và khách hàng để tìm hiểu yêu cầu,

ý kiến
- Lập kế hoạch: xác lập tài nguyên, thời hạn và những thông tin khác
- Phân tích rủi ro: xem xét mạo hiểm kĩ thuật và mạo hiểm quản lí
- Thiết kế: xây dựng 1 hay 1 số biểu diễn của ứng dụng
- Xây dựng và xuất xưởng: xây dựng, kiểm thử, cài đặt và cung cấp hỗ trợ người
dùng
- Đánh giá khách hàng: nhận các phản hồi của người sử dụng, về biểu diễn phần
mềm trong giai đoạn kỹ nghệ và cài đặt
 Ưu và nhược điểm của mô hình
- Tốt cho các phần mềm quy mô lớn
- Dễ kiểm soát các mạo hiểm ở từng mức tiến hóa
- Khó thuyết phục khách hàng là phương pháp tiến hóa xoắn ốc có thể kiểm soát
được.
- Chưa được dùng rộng rãi như các mô hình tuyến tính hoặc chế thử
-

CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU
Câu 9: Anh (chị) hãy trình bày khái niệm yêu cầu phần mềm, phân loại yêu cầu
phần mềm ? cho ví dụ minh họa?
 Khái niệm yêu cầu phần mềm
- Yêu cầu phần mềm là cơ sở xem xét:
• Xem xét chất lượng
• Yêu cầu thể hiện ra bằng đặc tả: đặc tả có chuẩn mới kiểm tra, đo đạc được:
7

7


 Các chuẩn đặc tả là một bộ các tiêu chuẩn phát triển và hướng dẫn cách


thức làm ra phần mềm
 Không tuân thủ các tiêu chuẩn đó thì chắc chắn là chất lượng sẽ kém.
 Phân loại yêu cầu phần mềm
- Các yêu cầu chức năng: là những phát biểu về chức năng hay dịch vụ mà hệ
thống cung cấp. Yêu cầu chức năng cũng có thể là chức năng mà hệ thống
không nên thực hiện.
- Các yêu cầu phi chức năng: những ràng buộc lên các dịch vụ, hoặc chức năng
mà hệ thống cung cấp. Nó bao gồm các ràng buộc về thời gian, về ngân sách,
các ràng buộc trong quá trình phát triển hay các ràng buộc về chuẩn sử dụng…
- Các yêu cầu miền lĩnh vực: là các yêu cầu xuất phát từ miền ứng dụng, phản
ánh đặc trưng của lĩnh vực ứng dụng này (các quy tắc nghiệp vụ).Có thể là
chức năng hay phi chức năng.
Câu 12: Anh (Chị) hãy trình bày các kỹ thuật phân tích và xác định yêu cầu?
 Kỹ thuật xác định phân tích yêu cầu:
- Tiếp cận định hướng cách nhìn
• Ghi nhận những cách nhìn khác nhau của những người liên quan và sử
dụng nó vào tiến trình phát hiện yêu cầu và tổ chức các yêu cầu
• Các góc độ khác nhau có thể được xem xét

Từ nguồn hay đích tới của dữ liệu

Từ khung làm việc

Từ sự tiếp nhận dịch vụ
• Xác định yêu cầu định hướng cách nhìn gồm 4 giai đoạn cơ bản:

Xác định viewpoint

Cấu trúc viewpoint


Làm tài liệu viewpoint

Ánh xạ hệ thống viewpoint
-

Kỹ thuật phân tích yêu cầu dựa trên mô hình

Được sử dụng rộng rãi để phân tích yêu cầu
Kỹ thuật này đi theo 2 hướng tiếp cận
Tiếp cận định hướng chức năng (Hướng cấu trúc dựa trên luồng dữ liệu)
Tiếp cận hướng đối tượng
Tập trung hướng vào mô tả nghiệp vụ của hệ thống thực, kết quả thu được là MÔ
HÌNH NGHIỆP VỤ
• Mô hình nghiệp vụ theo phương pháp này gồm:
 Mô hình ngữ cảnh: Mô tả hệ thống được xét trong môi trường của nó
 Các mô hình cấu trúc chức năng mô tả cấu trúc chức năng của hệ thống






8

8


 Mô tả chi tiết các chức năng: cho đến mức thấp nhất
 Mô tả các đối tượng dữ liệu: Theo hướng cấu trúc là bao gồm tất cả các hồ sơ và


bản mẫu, theo HĐT gồm các đối tượng và khái niệm của thế giới thực
 Mô tả các mối liên kết của dữ liệu và chức năng – chỉ cần thiết với cách tiếp cận
hướng cấu trúc
 Từ điển giải thích
-

Kỹ thuật phân tích hình thức hoá

Dựa trên việc sử dụng các khái niệm, ký pháp và mô hình toán học để
phân tích và biểu diễn hệ thống
• Phân tích sẽ không tách thành mô hình riêng. Kết quả của việc phân tích
và mô hình hóa cho ta ngay đặc tả của hệ thống.
Câu 13: Anh (Chị) hãy trình bày Các kỹ thuật và phương pháp hỗ trợ phân tích yêu
cầu?
- Các mô hình hệ thống: Phương pháp biểu diễn yêu cầu hệ thống một cách có
kỹ thuật (thay vì văn bản dạng text)
- Use Case (UC)
• UC chỉ ra chức năng của một hệ thống bằng cách mô tả hành vi của hệ
thống (nghĩa là tương tác giữa người sử dụng và hệ thống).
• UC có thể được sử dụng để mô tả hành vi của hệ thống phần mềm.
• Các khái niệm cơ bản trong UC:
 Actor: Nhân vật sự dụng hệ thống để đạt được một mục đích nào đó.
 Primary actor là nhân vật chính khởi tạo một UC.
 Hoạt cảnh (Scenario): Tập hợp các hành động nhằm đạt được mục
đích
- Data Flow Diagram (DFD)
• DFD phổ biến trong phân tích bài toán.
• DFD thể hiện dòng dữ liệu trong một hệ thống. DFD coi hệ thống như
là một hàm chuyển dữ liệu đầu vào thành dữ liệu đầu ra.
• DFD biểu diễn sự di chuyển dữ liệu giữa các tiến trình xử lý dữ liệu.

• Ký hiệu trong DFD:
 Tiến trình : Đường tròn
 Dòng dữ liệu là đường cong có mũi tên
 Hình chữ nhật là nguồn sinh hay tiêu thụ dữ liệu
 Sự cần thiết nhiều dòng dữ liệu được biểu dễn bởi “*” đặt giữa hai
dòng (AND). Nghĩa là cả hai dòng đều cần thiết.
 Tương tự, kí hiệu “+” dùng cho phép toán OR.
- Các mô hình khác
• Mô hình ER cho phân tích dữ liệu
• Mô hình đối tượng cho phân tích dự liệu


9

9


Câu 14: Anh (Chị) hãy trình khái niệm kiến trúc phần mềm, vai trò của kiến trúc
phần mềm, và các mô hình kiến trúc phần mềm ?
 Khái niệm kiến trúc phần mềm:
- Kiến trúc phần mềm (Software Architecture) <-> một cấu trúc phần mềm và
qua đó cung cấp một sự tích hợp chặt về mặt khái niệm của hệ thống
- Qui trình thiết kế các hệ thống con cũng như mô hình điều khiển/giao tiếp giữa
các hệ thống con <-> architectural design. Kết quả của qui trình thiết kế này
chính là software architecture.
- Kiến trúc phần mềm của một hệ thống bao gồm các thành phần phần mềm, các
thuộc tính của chúng cũng như mối quan hệ giữa các thành phần.
 Vai trò của kiến trúc phần mềm:
- Có vai trò quan trọng trong p/triển phần mềm (PM):
 Công cụ giao tiếp giữa những người liên quan (understanding and

communication): Tài liệu mô tả kiến trúc sẽ đựoc sử dụng bởi nhiều
thành viên liên quan tới dự án phần mềm
 Để phân tích hệ thống/xây dựng hệ thống: Kiến trúc phần mềm có thể
được sử dụng để chỉ ra/dự đoán các thuộc tính của hệ thống. Ngoài ra
nếu kiến trúc phần mềm có phân hoạch tốt, thì việc sử dụng phân hoạch
để phát triển các chức năng dễ dàng hơn.
 Sử dụng lại ở quy mô lớn: Chúng ta có xu hướng sử dụng lại các phần
của phần mềm, do đó, kiến trúc là thông thông tin quan trọng trong việc
hiểu biết các phần của phần mềm.
- Kiến trúc không phải là thành phần hoạt động nhưng nó có tác động sâu rộng
đến quá trình phát triển PM, nó là một lọat mô tả PM mà cho phép các kỹ sư
PM thực hiện công việc:
 Tăng cường hiểu biết về hệ thống cần xây dựng
 Phân tích hiệu quả
 Xem xét, sửa đổi kiến trúc từ sớm, giảm rủi ro
 Các mô hình kiến trúc phần mềm:
- Có nhiều mô hình khác nhau, thường được nhìn nhận dưới một số mặt:
 Mô hình kiến trúc tĩnh – các hệ con hay các thành phần được phát triển
độc lập
 Mô hình tiến trình động- hệ thống được tổ chức thành các tiến trình vận
hành
 Mô hình giao diện – xác định giao diện đưa ra các dịch vụ
 Mô hình liên kết – chỉ ra mối liên kết giữa các hệ con hay giữa các
thành phần
 Mô hình phân tán
- Cách nhìn khác
 Module
 Thành phần và kết nối (Component & Connector – C&C)
 Cấp phát (Allocation)
10


10


Câu 15: Anh (Chị ) hãy trình bày khái niệm thiết kế và vai trò của thiết kế ?
 Khái niệm
- Thiết kế là quá trình chuyển hóa đặ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 một chương trình.
 Vai trò của 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.
- Là công cụ giao tiếp giữa các nhóm cùng tham gia phát triển phần mềm, quản
lí rủi ro, đạt được phần mềm hiệu quả.
- Là tài liệu cung cấp đầy đủ các thông tin cần thiết để bảo trì hệ thống.
- Nếu không có thiết kế thì hệ thống không tin cậy dẫn đến nguy cơ thất bại cao.
- Thiết kế tốt là chìa khóa làm cho phần mềm hữu hiệu.
Câu 16: Anh (Chị) hãy trình bày các bước trong giai đoạn thiết kế, và hình thức
biểu diễn thiết kế ?
 Các hình thức biểu diễn thiết kế
- Các biểu đồ: biểu diễn các mối quan hệ giữa các thành phần của hệ thống, vừa
là mô hình mô tả tả thế giới thực.
- Ngôn ngữ mô tả chương trình: dùng để kiểm tra và cấu trúc các cơ cấu thiết kế
dựa trên các cấu trúc của 1 ngôn ngữ lập trình.
- Dạng văn bản không hình thức hóa: mô tả các thông tin không thể hình thức
hóa được như thông tin phi chức năng bên cạnh các mô tả khác
Câu 20: Anh (Chị) trình bày khái niệm và mục đích thiết kế giao diện người dùng ?
 Khái niệm UI: Là không gian nơi mà sự tương tác giữa người sử dụng và máy
tính được thực hiện.
- UID là thành phần quan trọng trong thiết kế phần mềm

- Yếu tố con người phải được coi trọng đặc biệt (user-centric design)
 Chúng ta có trí nhớ giới hạn
 Chúng ta đều có thể có sai lầm trong thao tác với phần mềm
 Chúng ta có khả năng vật lý khác nhau: nghe nhìn, vv
 Chúng ta có sở thích tương tác với phần mềm khác nhau
- Người sử dụng thông thường đánh giá phần mềm thông qua giao diện hơn là
chức năng
- Giao diện tồi là nguyên nhân mà phần mềm không được sử dụng
- Phần lớn là giao diện đồ họa
 Các mô hình thiết kế giao diện:
11

11








-

-

Mô hình thiết kế do kỹ sư phần mềm xây dựng: tổ hợp biểu diễn dữ liệu,
kiến trúc và thủ tục của phần mềm để thực hiện được chức năng
Mô hình người dùng: do kỹ sư phần mềm và người chịu trách nhiệm làm
việc với người sử dụng xây dựng, nó mô tả sơ lược hệ thống cho người
dùng cuối

Mô hình người dùng cảm nhận hệ thống do người dùng cuối cùng xây dựng
Hình ảnh hệ thống do người cài đặt hệ thống xây dựng, nó tổ hợp các biểu
lộ bên ngoài của hệ thống dựa trên máy tính.

Tương tác của người sử dụng:
• Thao tác trực tiếp:
• Lựa chọn menu
• Nhập form
• Sử dụng ngôn ngữ dòng lệnh
• Sử dụng ngôn ngữ tự nhiên
Trình bày thông tin:
• Một số câu hỏi cần phải đặt ra để xác định kiểu trinhg bày thông tin
• Người sử dụng quan tâm tới độ chính xác thông tin hay là mối quan hệ giữa
các giá trị dữ liệu?
• Tốc độ thay đổi thông tin? Và liệu người sử dụng có cần htông báo về thay
đổi này?
• Liệu người sử dụng có bắt buộc phải tác động phản ứng lại thay đổi này?
• Người sử dụng có phải tương tác với thông tin trình bày?
• Kiểu dữ liệu trình bày là gi?


CHƯƠNG 5: LẬP TRÌNH HIỆU QUẢ
Câu 21: Một ngôn ngữ lập trình có các yếu tố đặc trưng cơ bản gì?
- Dễ dịch thiết kế sang chương trình
- Từ khóa gần với ngôn ngữ tự nhiên
- Có trình biên dịch hiểu quả
- Khả năng chuyển chương trình gốc
- Có sẵn công cụ phát triển
- Dễ bảo trì
Câu 22: Khi nói về phong cách lập trình là nói về những yếu tố nào?

- Tính đơn giản và dễ hiểu
- Tài liệu bên trong
- Phương pháp khai báo dữ liệu
- Cách tiếp cận đến việc xây dựng câu lệnh
- Các kĩ thuật vào/ra

12

12


Câu 23: Lời chú thích trong mã nguồn chương trình thường được đặt ở đâu? Nội
dung mô tả những gì?
- Lời chú thích trong mã nguồn chương trình thường được đặt ở đầu chương
trình, đầu modun, đầu các hàm, trước các khối lệnh
- Nội dung mô tả:
• Truyền thông với các đặc tả chương trình gốc
• Mô tả các hàm xử lý
• Hỗ trợ diễn giải chương trình
• Cách sử dụng chương trình
• Cách truyền các đối số cho các hàm
Câu 24: Khi lựa chọn ngôn ngữ lập trình để viết phần mềm thường dựa trên các yếu
tố?
- Các đặc trưng của ngôn ngữ lập trình sẽ quyết định miền ứng dụng của ngôn
ngữ. Miền ứng dụng là yếu tố chính để lựa chọn ngôn ngữ lập trình cho dự án
phần mềm.
Câu 25: Tính hiệu quả của chương trình thể hiện trên những yếu tố nào?
- Tốc độ
- Bộ nhớ
- Đầu vào/ra

Câu 26: Để cải thiện hiệu xuất của chương trình cần làm những gì?
- Cải thiện thuật toán
- Lựa chọn cấu trúc dữ liệu
- Tinh chế mã, không gian dữ liệu để đảm bảo tính đơn giản tính lại khi cần
- Không nên lưu trữ khi không cần thiết
- Nén dữ liệu, sử dụng nguyên tắc cấp phát bộ nhớ phù hợp
- Giảm không gian chương trình gốc, lựa chọn phần cứng phù hợp
Câu 27: Trình bày ngắn gọn hiểu biết của anh/chị về lập trình hướng thủ tục?
- Lập trình hướng thủ tục là phương pháp truyền thống phổ biến sử dụng các thủ
tục lập trình có cấu trúc, chia 1 chương trình lớn thành các chương trình nhỏ,
giảm độ phức tạp, công cụ hỗ trợ đầy đủ, vùng dữ liệu chung dẫn đến khó khan
khi có thay đổi
Câu 28: Trình bày ngắn gọn hiểu biết của anh/chị về lập trình hướng đối tượng?
- Lập trình hướng đối tượng dựa trên 3 đặc trưng cơ bản:
• Tính bao gói
• Tính kế thừa
• Tính đa hình

CHƯƠNG 6: KIỂM THỬ
13

13


Câu 29: Kiểm thử phần mềm là gì?
-

Là yếu tố quyết đinh của đảm bảo chất lượng phần mềm SQA (Software Quality
Assuarance), là khâu điển hình của rà soát đặc tả, thiết kế, lập mã.
Kiểm thử theo Glen Myers: kiểm thử phần mềm là quá trình vận hành chương

trình để tìm ra lỗi.

Câu 30: Có những loại kiểm thử nào? Kiểm thử đơn vị (unit testing
-

-

Kiểm thử tích hợp (intergration testing)
Kiểm thử hệ thống (system testing)
+ Kiểm thử chức năng (function testing)
+ Kiểm thử phục hồi (recovery testing)
+ Kiểm thử chịu tải (extra: stress và load testing)
+ Kiểm thử thi hành (performance testing)
+ Kiểm thử an ninh (sercurity testing)
+ Kiểm thử chấp nhận (acceptance testing)
Kiểm thử alpha (alpha testing)
Kiểm thử beta (beta testing)

Câu 31: Những hạn chế thường gặp khi kiểm thử phần mềm
-

Nâng cao chất lượng phần mềm nhưng không vượt quá chất lượng khi thiết kế, chỉ
phát hiện các lỗi tiềm tàng và sửa chúng
Phát hiện lỗi bị hạn chế do thủ công là chính
Dễ bị ảnh hưởng tâm lí khi kiểm thử
Khó bảo đảm tính đầy đủ khi kiểm thử

Câu 32: Có những mức kiểm thử phần mềm nào?
-


14

Kiểm thử đơn vị (unit testing): kiểm thử các đơn vị chương trình độc lập như các
thủ tục, hàm, phương thức 1 cách riêng rẽ.
Kiểm thử tích hợp (intergration testing): kiểm thử việc ghép nối các đơn vị
chương trình.
Kiểm thử hệ thống (system testing): bao gồm 1 dải kiểm thử rộng như chức năng,
khả thi chịu tả,…
Kiểm thử chấp nhận (acceptance testing): khách hàng kiểm tra những kì vọng của
mình về hệ thống
+ Có 2 loại acceptance testing
• UAT ( user acceptance testing): hệ thống đáp ứng các tiêu chí của hợp đồng
• BAT (Business acceptance testing): hệ thống chưa nhưng sẽ đáp ứng được
user acceptance testing
Kiểm thử thi hành (performance testing)
14


-

+ Có thể liên quan đến việc kiểm thử các tính chất quan trọng của hệ thống như
hiệu suất và độ tin cậy
+ Các test hiệu suất thường liên quan đến việc lập kế hoạch cho 1 loạt các bài
kiểm tra khả năng chịu tải tang dầ cho đến khi hệ thống không thể thực hiện được
nữa.
Kiểm thử chịu tải ( stress testing):
+ Là thử nghiệm hệ thống vượt quá khả năng chịu tải của nó. Việc thử nghiệm quá
tải thường giúp phát hiện các khuyết tật của hệ thống
+ Tập trung vào vấn đề hư hại của hệ thống. Không có hệ thống nào không thể
không hỏng. Stress testing không thể chấp nhận được giới hạn mất mát dữ liệu và

dịch vụ.

Câu 33: Khi kiểm thử phần mềm tuân thủ những nguyên tắc nào?
-

Nguyên tắc khách quan
Nguyên tắc ngẫu nhiên
Nguyên tắc “người dung kém”
Nguyên tắc “kẻ phá hoại”

Câu 34: Trình bày tóm tắt về kiểm thử hộp trắng
 Khái niệm:
- Đối tượng: Mã nguồn
- Mức: các modun đơn vị
- Nội dung là khám xét:
• Các chi tiết thủ tục (thuật toán)
• Con đường logic (luồng điều khiển)
• Các trạng thái của chương trình (dữ liệu)
 Nội dung kiểm thử hộp trắng
- Kiểm thử cái gì?
• Mọi lệnh (đầy đủ)
• Mọi điều kiện logic có thể (rẽ nhánh)
• Mọi chu trình trong chương trình (lặp lại)
• Mọi cấu trúc dữ liệu được dùng (dữ liệu)
• Mọi tiến trình từ đầu – kết thúc(từng luồng điều khiển)
- Yêu cầu đặt ra:
• Mọi con đường độc lập trong mọi modun cần được thực hiện ít nhất một

lần.
• Mọi ràng buộc logic được thực hiện cả hai phía đúng và phía sai

• Tất cả các vòng lặp ở biên của nó và cả các biên vận hành phải được thực
hiện
• Mọi cấu trúc dữ liệu nội tại được dùng để đảm bảo hiệu lực thi hành của nó
15

15


-

-

Lý do kiểm thử hộp trắng
• Các sai logic và giả thiết không đúng tỷ lệ nghịch với xác suất để một con
đường logic được thi hành
• Thực tế: mọi con đường logic đều có thể được thi hành trên một cơ sở nhất
định
• Có những sai chính tả có thể là ngẫu nhiên trên đường ta không kiểm tra.
Các kĩ thuật sử dụng:
• Đồ thị dòng (Tom MacCabe đưa ra đầu tiên)
• Ma trận kiểm thử (số đường đi, trọng số)
• Điều kiện logic (chiến lược miền và BRO)
• Điều khiển theo dòng dữ liệu
• Các cấu trúc chu trình – giá trị đặc trưng

Câu 35: Trình bày tóm tắt hiểu biết của anh/chị về kiểm thử hộp đen
 Khái niệm
- Là kiểm thử yêu cầu chức năng
- Đối tượng: modun, hệ con, toàn hệ thống
- Đăc trưng:

• Thuyết minh: các chức năng đủ và vận hành đúng
• Thực hiện: qua giao diện
• Cơ sở: đặc tả, điều kiện vào/ra và cấu trúc dữ liệu
• Ít chú ý đến cấu trúc logic và nội tại của nó
 Mục đích kiểm thử hộp đen
- Chức năng: đủ, đúng đắn
- Giao diện: vào/ra phải đủ, đúng, phù hợp, tiện lợi
- Cấu trúc truy nhập dữ liệu: thông suốt, đúng đắn
- Khởi đầu- kết thúc: mỗi tiến trình thông suốt
 Các kĩ thuật kiểm thử hộp đen
- Phân hoạch tương đương
- Phân tích giá trị biên
- Đồ thị nhân quả
 Những hạn chế của kiểm thử hộp đen
- Khi hệ thống có nhiều loại dữ liệu đầu vào khác nhau, điều này có thể dẫn tới
sự bùng nổ các ca kiểm thử.
- Do không thể biết được modun nào của chương trình đã hay chưa được kiểm
thử, khi đó phải kiểm thử lại hay bỏ qua những lỗi tiềm ẩn trong gói phần
mềm.
- Nếu không có bản đặc tả rõ ràng súc tích rất khó thiết kế các ca kiểm thử đúng
đắn

16

16


17

17




×