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

ĐỀ CƯƠNG ÔN TẬP MÔN CÔNG NGHỆ PHẦN MỀM(CTB)

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 (344.19 KB, 12 trang )

ĐỀ CƯƠNG ÔN TẬP MÔN CÔNG NGHỆ PHẦN MỀM(CTB)
Câu 1:






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 dữ liệu: 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 sử dụng, tham khảo kỹ thuật, tài liệu
phát triển.
Phân biệt phần mềm và phần cứng:
- Phần cứng là các cơ phận (vật lý) cụ thể của máy tính hay hệ thống máy
tính như màn hình, chuột, bàn phím, máy in, máy quét, CPU, loa,….
- Phần mềm là 1 tập hợp những câu lệnh hoặc chỉ thị đượ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, và các dữ liệu
hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ hay chức
năng hoặc giải quyết một vấn đề cụ thể nào đó. Phần mềm là một khái
niệm trừu tượng, nó khác với phần cứng ở chỗ là "phần mềm không thể
sờ hay đụng vào", và nó cần phải có phần cứng mới có thể thực thi được.
Phân loại phần mềm:
- Theo mức độ hoàn thiện: + Chương trình
+ Sản phẩm phần mềm
- Theo chức năng thực hiện:+ Phần mềm hệ thống
+ Phần mềm nghiệp vụ
+ Phần mềm công cụ
- Theo lĩnh vực ứng dụng:+ Phần mềm hệ thống
+Phần mềm thời gian thực


+Phần mềm nghiệp vụ
+Phần mềm khoa học kỹ thuật
+Phần mềm nhúng
+Phần mềm máy tính cá nhân
+Phần mềm trí tuệ nhân tạo
+Phần mềm dựa trên nền web

Câu 2:


Kiến trúc phần mềm: là cấu trúc của các thành phần trong một chương trình
máy tính hay một hệ thống tính toán. 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








Thế nào là một phần mềm tốt?
Phần mềm phải đáp ứng các chức năng theo yêu cầu, có hiệu năng tốt, có
khả năng bảo trì, đáng tin cậy và được người sử dụng chấp nhận
Câu 3:
Vai trò của phần mềm:
- Là linh hồn của các hệ thống máy tính
- Là 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, thì kinh tế sẽ 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
- Không được lắp rắp từ mẫu có sẵn
- Phức tạp, khó hiểu, vô hình
- Thay đổi là bản chất
- Cần phát triển theo nhóm
Câu 4:
Vắn tắt 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
+ Xử lý số, theo lô
+ Ngôn ngữ máy, hợp ngữ, đặc thù cho từng máy
+ Tiêu chí đánh giá: Tính nhanh và giải được bài toán
- 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, Fortran
+ Tiêu chí đánh giá: Nhanh, giải được bài toán lớn, nhiều người dùng
- Giai đoạn 3: Đầu những năn 1990:
+ Phần mềm cá nhân và 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
+ 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ì
- Giai đoạn 4: Từ năm 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, webserrvice sử dụng
rộng rãi, internet mở rộng
+ CSDL hướng đối tượng, kho dữ liệu 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âu 5:
Tiêu chí để đánh giá một 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 6:
Vòng đời của phần mềm: là thời kỳ tính từ khi phần mềm được sinh (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 người dùng)
Mô hình vòng đời phần mềm của Boehm:



Câu 7:
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 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ủ…
- 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á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ã mã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á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 thác nước:
- Thực tế các dự án ít khi 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õ ràng khi nào xong hết các yêu cầu
- Khách hàng phải có lòng 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à một thảm họa
Câu 8:
Mô hình xoắn ốc:
-






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ý
- Kỹ nghệ: xây dựng một hay một 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 (tư liệu, huấn luyện…)
- Đánh giá của 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 xoắn ốc:
- Tốt cho các hệ 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óa 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ử
Câu 9:
- 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:
+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:
 Yêu cầu chức năng
 Yêu cầu phi chức năng
 Yêu cầu về sản phẩm
-





Yêu cầu về tiếng trình phát triển
Yêu cầu về ngoại lại
VD minh họa: ………
Câu 10:
Các kỹ thuật đặc tả yêu cầu:
Đặc tả bằng ngôn ngữ hướng cấu trúc
Đặc tả dựa biểu mẫu
Đặc tả dựa bằng biểu đồ trình tự
Câu 11:
Qui trình xác định yêu cầu:



-

-



Câu 12:
Kĩ thuật phân tích và xác định yêu cầu:
- Tiếp cận định hướng cách nhìn
- Kĩ thuật phân tích yêu cầu dựa trên mô hình
- Kĩ thuật phân tích hình thức hóa
Câu 13:
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
- Use Case: 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

- Data Flow Diagram (DFD): Thể hiện dòng dữ liệu trong một hệ thống,
biểu diễn sự di chuyển dữ liệu giữa các tiến trình xử lý dữ liệu.
- 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
Câu 14:
Kiến trúc phần mềm: là cấu trúc của các thành phần trong một chương trình
máy tính hay một hệ thống tính toán. 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






Vai trò kiến trúc phần mềm:
- Có vai trò quan trọng trong p/triển phần mềm:
+ Công cụ giao tiếp giữa những người liên quan
+ Để phân tích hệ thống
+ Sử dụng lại ở quy mô lớn
- Cho phép các kỹ sư phần mềm 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
Mô hình kiến trúc phần mềm:
- Mô hình kiến trúc tĩnh
- Mô hình tiến trình động
- Mô hình giao diện
- Mô hình liên kết
- Mô hình phân tán

Câu 15:
- Khái niệm thiết kế: 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.
- Vai trò của thiết kế:
 Là cách duy nhất để chuyển hóa một 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.
 Là công cụ giao tiếp giữa 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 hiệu quả.
 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 ko có thiết kế thì hệ thống ko tin cậy  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:



Các bước trong giai đoạn thiết kế:




Hình thức biểu diễn thiết kế:
- Các biểu đồ
- Ngôn ngữ mô tả chương trình
- Dạng văn bản không hình thức hóa
Câu 17:
Phương pháp thiết kế cấu trúc:

-

Phát biểu lại bài toán như 1 DFD( Data Flow Diagram)
Chỉ ra các thành phần dữ liệu vào/ra
Phân chia mức cao
Phân chia ở mức chi tiết

Câu 18:
Phương pháp thiết kế hướng đối tượng:
-

Hệ thống được nhìn nhận như 1 bộ các đối tượng tương tác với nhau, đối
tượng gồm dữ liệu vào thao tác
1 lớp được xác định bằng thuộc tính và phương thức, có tính kế thừa cao
Các đối tượng liên lạc với nhau bằng các thông điệp
1 số công cụ hỗ trợ mạnh như: Jbuilder

Câu 19:
Sự khác nhau giữa thiết kế hướng chức năng và thiết kế hướng đối tượng:
Hướng chức năng
Cách tiếp cận truyền thống

Hướng đối tượng
Cách tiếp cận hiện đại


Tập trung vào thông tin
Tính tái sử dụng thấp
Thiết kế ngân hàng dữ liệu theo
những thông tin người dùng yêu cầu


Tập trung vào cả thông tin và cách hoạt
động
Tính tái sử dụng cao
Ánh xạ các thành phần trong bài toán vào
các đối tượng ngoài đời thực

Câu 20:
-

Khái niệm UI(User Interface): 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.
Mục đích thiết kế giao diện người dùng:
 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,…
 Trình bày thông tin: Một số câu hỏi để xác định kiểu trình 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?
+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à gì?

Câu 21:
-

-

Một ngôn ngữ lập trình có các yếu tố đặc trưng cơ bản:
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ố:
Tính đơn giản và rõ ràng của chương trình
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
Câu 23:
Lời chú thích trong mã nguồn chương trình thường được đặt ở đầu
chương trình, đầu các mô đun, đầu các hàm hoặc trước các khối lệnh


-

-

-

-

-

-

-


-

Nội dung: truyền thông với các độc giả về chương trình gốc, mô tả các
hàm xử lý, hỗ trợ và diễn giải chương trình, ngày tháng và lịch sử phát
triển chương trình, cách sử dụng chương trình, cách truyền đố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 yếu tố về ngôn ngữ lập trình sẽ quyết định: miền ứng dụng của ngôn
ngữ lập trình đó. Miền ứng dụng là yếu tố chính để lựa chọn ngôn ngữ
lập trình
Dựa vào năng lực và thói quen của người lập trình
Câu 25:
Tính hiệu quả của chương trình thể hiện trên những yếu tố: Hiệu quả về
tốc độ, về bộ nhớ và hiệu quả về vào ra.
Câu 26:
Để cải thiện hiệu xuất của chương trình cần làm:
Cải thiện về thuật toán
Lựa chọn cấu trúc dữ liệu, ko gian dữ liệu
Sử dụng nguyên tắc cấp phát bộ nhớ phù hợp, lựa chọn phần cứng phù
hợp
Câu 27:
Hiểu biết của về lập trình hướng thủ thụ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
Nhược điểm: vùng dữ liệu dùng chung  khó khăn khi có các thay đổi
Câu 28:
Hiểu biết về lập trình hướng đối tượng:

Chương trình gồm các đối tượng: Bao gói/che dấu thông tin, Kế thừa, Đa
hình
Vùng dữ liệu dùng chung nhỏ, phù hợp với các dự án lớn
Câu 29:
Kiểm thử phần mềm là:
Kiểm tra xem phần mềm có đúng đặc tả ko
Kiểm tra xem phần mềm có đạp ứng đúng nhu cầu người dùng ko
Câu 30:
Có những loại kiểm thử:
Kiểm thử tĩnh


-

-

-

-

-

-

Kiểm thử động
Kiểm thử thống kê
….
Câu 31:
Những hạn chế thường gặp phải khi kiểm thử phần mềm:
Ko thể khẳng định tính đúng của chương trình do bản chất qui nạp toán

học
Nhiều trường hợp kiểm thử ở giai đoạn cuối nhưng lỗi phát sinh ở giai
đoạn đầu
Bộ dữ liệu kiểm thử ko được thay đổi
Người kiểm thử lại là người xây dựng phần mềm
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ó đảm bảo tính đầy đủ khi kiểm thử
Câu 32:
Có những mức kiểm thử phần mềm:
Kiểm thử đơn vị
Kiểm thử mô đun
Kiểm thử hệ thống
Kiểm thử chấp nhận
Kiểm thử tích hợp
Câu 33:
Khi kiểm thử phần mềm phải tuân thủ các nguyên tắc:
Nguyên tắc khách quan
Nguyên tắc ngẫu nhiên
Nguyên tắc “người dùng kém”
Nguyên tắc “kẻ phá hoại”
Câu 34:
Hiểu biết về kiểm thử hộp trắng:
Xét duyệt thiết kế
Xét duyệt yêu cầu
Nghiên cứu mã nguồn
Kiểm tra tính đúng của chương trình
Có thể phát hiện hết các lỗi của chương trình nhưng ko đánh giá được
tính hiệu quả của chương trình, tốn kém thời gian và công sức
Câu 35:

Hiểu biết về kiểm thử hộp đen:
Được tiến hành sau khi có chương trình
Ưu: + nhanh, dễ tiến hành


-

+ có nhiều công cụ hỗ trợ
Nhược: phụ thuộc nhiều vào bộ dữ liệu
Câu 36:
Việc kiểm thử phần mềm nên được làm ở những giai đoạn nào của quá
trình phát triển phần mềm: Ở toàn bộ quá trình phát triển, ở giai đoạn nào
cũng cần phải rà soát sửa đổi các lỗi và lỗi được phát hiện càng sớm càng
tốt, càng đỡ tốn kém. Nếu lỗi phát hiện muộn thì chi phí sửa đổi lớn.



×