Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

CHƯƠNG 2: Vòng đời phần mềm

* Vòng đời phần mềm (Quy trình phần mềm):


- Là thời kỳ tính từ khi phần mềm được sinh 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)
- Mọi sp đều có vòng đời, vòng đời thường khá dài, có thể rút ngắn cho tiến bộ công nghệ.
- Các pha chính: + Yêu cầu: Xác định các nhu cầu của khách hàng và các ràng buộc của sp
+ Thiết kế: Xác định cấu trúc/tổ chức của hệ thống phần mềm + Mã hóa: Viết phần mềm
+ Kiểm thử: Vận hành hệ thống để tìm và loại bỏ các khiếm khuyết
+ Bảo trì: Sửa chữa và nâng cao sp sau khi khách hàng triển khai
* Các mô hình vòng đời phần mềm:
- Quá trình là 1 tập hợp các h/động, với các đầu vào và đầu ra được x/định rõ ràg, để h/thành 1 số nhiệm vụ.
- Mô hình vòng đời là 1 mô tả về 1 quá trình thực hiện 1 sp phần mềm trong toàn bộ hoặc 1 phần vòng đời của nó.
+ Có xu hướng tập trung vào các pha chính của chu kỳ và mối quan hệ của chúng với các pha khác.
+ Là một mô tả quy trình phần mềm.
- Các mô hình vòng đời phần mềm:
+ Mô hình thác nước: Là mô hình lâu đời nhất, thường được vẽ với một chuỗi các hoạt động qua cac giai đoạn của vòng đời
"xuống dốc" từ trái sang phải: Phân tích, Yêu cầu, Đặc tả, Thiết kế, Cài đặt, Kiểm thử, Bảo trì
-, Vòng đời lý tưởng là Thác nước không có phản hồi, mặc dù mô hình thác nước nhấn mạnh 1 chuỗi tuyến tính của các
pha, nhưng trên thực tế, luôn có 1 lượng lớn sự lặp lại các pha trước đó.
-, Điểm mạnh: Hoàn thành từng giai đoạn theo thứ tự; Nhấn mạnh việc lập kế hoạch sớm, đầu vào của khách hàng và thiết
kế; Nhấn mạnh kiểm tra như 1 phần ko thể thiếu; Cung cấp chất lượng ở mỗi giai đoạn.
-, Điểm yếu: Phụ thuộc vào các yêu cầu đc xác định sớm từ đầu; Phụ thuộc vào việc tách các yêu cầu khỏi thiết kế, Ko thả thi
trong 1 số trường hợp đòi hỏi nhiều thay đổi; Nhấn mạnh sp hơn là quy trình.
+ Mô hình mẫu thử: Chu trình: Nghe khách tr/bày, Tạo/sửa bản mẫu, Khách ktra bản mẫu, Nghe khách...; Dùg khi mới rõ
m/đích chug chug, dùg để thu thập yêu cầu, dùg làm bản mẫu để thảo luận gợi yêu cầu của người dùng.
+ Các mô hình tăng dần (Gia tăng, Xoắn ốc, Xoắn ốc WINWIN, Phát triển đồng thời): Tiến hóa theo thời gian;
-, Các m/hình tiến hóa (evolutionary models) có tính lặp lại. Kỹ sư PM tạo các version ngày càng hoàn thiện.
+ Mô hình gia tăng (Incremental models): -, Kết hợp giữa mô hình tuần tự và ý tưởng lặp lại của chế bản mẫu.
-, Sp với những yêu cầu cơ bản nhất đc phát triển; Các chức năng khác đc phát triển thêm sau (gia tăng)
-, Lặp lại quy trình để hoàn thiện dần
+ M/hình ph/triển ứng dụng nhanh (Rapid Application Developement = RAD): Là mô hình gia tăng, tăg dần từg bước
với mỗi chu trình rất ngắn (60-90d) ; Xây dựng dựa trên hướng thành phần với khả năng tái sử dụng.
-,Gồm 1 số nhó 1m, mỗi nhóm làm 1 RAD theo các pha: M/hình nghiệp vụ, M/hình dữ liệu, M/hình xử lý, Tạo ứg dụg,
Kiểm thử, Đánh giá.
+ Mô hình xoắn ốc (Spiral models): Giao tiếp khách hàng ; Lập kế hoạch ; Phân tích rủi ro ; Kỹ nghệ ; Xây dựng và xuất
xưởng ; Đánh giá của khách hàng.
-, Điểm mạ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 bước tiến hóa
-, Điểm yếu: Khó thuyết phục khách hàng là ph/pháp này có thể kiểm soát đc; Chưa đc dùng rộng rãi.
+ Mô hình xoắn ốc WINWIN: -, Nhằm thỏa hiệp giữa ng ph/triển và khách hàng, cả 2 cùng "Thắng", Khách có phần mềm
thỏa mãn yêu cầu, ng phát triển có kinh phí thỏa đáng và tgian hợp lý.
-, Các HĐ chính: Xác định cổ đông ; Xác định điều kiện thắng của cổ đông ; Thỏa hiệp ĐK thắng của các bên liên quan.
+ Tổng kết: Thác nước: tuyến tính ; Mẫu thử: lặp đi lặp lại ; Gia tăng: kết hợp tuyến tính và lặp đi lặp lại ; Xoắn ốc: kết hợp
giữa tuyến tính và lặp đi lặp lại ; Phát triển nhanh: lặp đi lặp lại.
CHƯƠNG 3: Phương pháp Agile
1. Khái niệm: Là một triết lý đc đưa ra vào năm 2001 ; thay đổi đáng kể từ cách tiếp cận phát triển phần mềm nặng theo theo
hướng tài liệu ; Phản ứng hiệu quả vs sự th/đổi ; Kết hợp quá trình tạo mẫu và dựa trên thử nghiệm ; Có sự phát triển liên tục
của lập trình ; Liên tục xác nhận yêu cầu của khách hàng ; Mục tiêu: Nhanh chóng phân phối phần mềm.
2. Các nguyên lý cơ bản: 12 nguyên lý
+ Ưu tiên cao nhất là làm hài lòng khách hàng thông qua phân phối sớm và liên tục các pm có giá trị. + Hoan nghênh các
yêu cầu thay đổi. (Ngay cả khi muộn). + Cung cấp sp phần mềm thường xuyên, ưu tiên khoảng thời gian ngắn hơn.
+ Ng kinh doanh và nhà ph/triển phải làm việc cùng nhau hằng ngày, trong suốt dự án. + Xây dựng các dự án xung quanh
các cá nhân có động lực. + Trò chuyện trực tiếp là phương pháp hiệu quả nhất để truyền tải thông tin đến nhóm ph/triển.
+ Phần mềm lm vc là thước đo chính của sự tiến bộ. + Các quy trình Agile thúc đẩy sự phát triển bền vững. ... duy trì một
tốc độ phát triển liên tục. + Sự quan tâm liên tục, sự xuất sắc về kỹ thuật, thiết kế tốt giúp tăng cường sự nhanh nhẹn.
+ Sự đơn giản – nghệ thuật tối đa hóa khối lg c/việc chưa h/thành – là điều cần thiết. + Các kiến trúc, yêu cầu và thiết kế tốt
nhất xuất hiện từ các nhóm dự án.
+ Theo định kỳ, các nhóm phản ánh về cách trở nên hiệu quả hơn, sau đó điều chỉnh hoạt động của mình cho phù hợp.
3. Ưu điểm Agile: + Phù hợp vs dự án nhỏ, yêu cầu ko rõ ràng ; + Có thể xem trc từng phần trong q/trình ph/triển, luôn
sẵn sàng cho bất kỳ thay đổi. ; + Chia dự án thành nhiều phần nhỏ, thảo luận hằng ngày về tiến độ và giải quyết những
vấn đề nảy sinh để đảm bảo đúng quy trình ph/triển dự án. + Tỉ lệ thành công thường cao hơn các quy trình khác.
4. Nhược điểm Agile: + Khó x/định loại dự án phù hợp nhất. + Gặp khó khăn (.) việc chuyển từ pp truyền thống sang pp
Agile (linh hoạt) + Rủi ro ( ph/triển quy mô lớn, ph/triển phân tán, KH ko đág tin, bắt buộc quy trình nhanh, NPT thiếu KN)
5. Extreme Programming: + Không thể lập trình cho đến khi biết mình đang làm gì + Cần khắc phục ở giai đoạn đầu tiên
khi h/thống đi vào s/xuất càg nhanh càg tốt + Kết hợp p/tích tổg thể dưới dạg các v/đề. Mỗi v/đề phải theo định hướng, có thể
k/tra và ước tính đc. + 1 thág là khoảng tgian dài đưa ra v/đề cho 1 dự án.
- Xác định thời điểm lập trình: + Khách hàng chọn bản phát hành tiếp theo tính năg có g/trị nhất (.) số tất cả các v/đề và
có thể có, x/định bởi chi phí các v/đề và tốc độ nhóm (.) vc cài đặt chúg. +Khách hàg x/định v/đề của lần lặp tiếp theo = cách
chọn nhữg v/đề có g/trị nhất còn lại (.) bản phát hành, đc thôg báo lại = chi phí v/đề và tốc độ nhóm.
+ Các lập trình viên nhận trách nhiệm cho các nh/vụ chi tiết + Xác định các TH kiểm thử để CMR nh/vụ đã h/thành.
+ Lm vc vs đối tác để chạy các TH kiểm thử, cải tiến để duy trì 1 th/kế đơn giản nhất có thể cho toàn hệ thống.
- Để XP thành côg, cần có kiến thức chuyên môn. - Kiểm thử đ/vị là trọng tâm của XP
- Ưu điểm: + Cải thiện tính đồg đội (nếu h/thành tốt); + Xây dựg năg lực th/sự ở các th/viên; + TDD huớg dẫn các
NPT về cách vt mã và cách cải thiện quan niệm về thiết kế, cải thiện vc ước lượg; + Cung cấp nhiều côg cụ cho q/lý
+ Cug cấp cho kh/hàg khả năg xem xét c/ty có thể th/hiện c/vc hay ko + Ko lãg phí tgian
- Nhược điểm: + Thiết kế trở nên tiềm ẩn + Dựa vào thiết kế là rủi ro; + Rất khó để vt các kiểm thử tốt
+Lặp lại quá thường xuyên có thể lm giảm chất lượg + Để thực hiện tốt, cần lm thuờg xuyên.
6. Scrum: + Nh/vụ: Tăng tốc phát hành sp; + Quá trình ph/triển đc chia thành 1 loạt các lần lặp đc gọi là sprint.
+ Trc mỗi sprint, xác định các c/vc còn tồn. + Kết thúc sprint, nêu rõ các kinh nghiệm và k/tra tiến độ.
Khái niệm khác: + Burndown chart: Biểu đồ cho thấy c/vc còn tồn. + Product backlog: D/sách đầy đủ các yêu cầu
+ ScrumMaster: Ng chịu trách nhiệm q/lý dự án + Sprint backlog: d/sách c/vc chỉ định cho 1 sprint (chưa h/thành)
+ Công việc tồn ( là điểm mấu chốt) : đc điền vào pha lập kế hoạch.
- Pha của scrum: Pregame, Developement, Postgam - Scrum meetings: C/vc hàng ngày
- Ưu điểm: Chia hệ thống thành các phần nhỏ hơn, "cuộc họp hàng ngày"
- Nhược điểm: Phụ thuộc vào khả năg kiểm soát, phải có kiến thức về phương pháp lm vc
7. Agile khác – Lean Developmet (ph/triển tinh gọn)
- Sẽ dễ dàng hơn nếu khách hàng ngừng th/đổi suy nghĩ - Để kh/hàg trì hoãn q/định về nhữg gì họ muốn càg lâu càg tốt
- Các th/kế x/hiện khi NTK hiểu v/đề, ko phải thu thập lượg lớn yêu cầu - Cug cấp h/thốg nhanh nhất có thể
- Elimiate waste: Giảm thiểu lãg phí - Amplify learning: Nhấn mạnh vc học - Đưa ra quyết định muộn nhất có thể
- Cug cấp nhanh nhất có thể - Để mn chịu trách nhiệm - Duy trì tính toàn vẹn - Xem xét toàn bộ h/thống
- Ưu điểm: Đảm bảo tính nhất quán và toàn vẹn, được mục tiêu và tự lập chính sách
- Nhược điểm: + Khó thực hiện vc hình dung cấu trúc của 1 h/thống phức tạp
+ Bị ảnh hưởg xấu bởi các q/định muộn, lm tổn hại đến sự ph/triển sog sog và lm tăg th/gian th/hiện.
CHƯƠNG 4: Quản lý cấu hình phần mềm – Software Configuration Management – SCM
1. SCM bao gồm các ng/tắc và kỹ thuật đánh giá và kiểm soát sự th/đổi đối vs các sp phần mềm (.) và sau q/trình phần mềm
2. Áp dụng 1 cách tiếp cận nghiêm ngặt để đảm bảo: + Các chi tiết đều đc x/định và theo dõi + Các thay đổi đc ghi lại
và theo dõi + Tích hợp tất cả các mô-đun khác nhau
3. Giúp x/định tác độg của th/đổi cũg như k/soát sự ph/triển.
4. Có thể theo dõi và k/soát các th/đổi (.) mọi các khía cạnh của ph/triển phần mềm (yêu cầu, th/kế, mã hóa, kiểm thử, lm tài liệu
5. Các khái niệm:
+ Mục cấu hình (Configuration item-CI) / Mục cấu hình phần mềm (Software CI-SCI): Tập hợp phần cứng, phần mềm,
hoặc cả 2, đc chỉ định để quản lý cấu hình và đc coi như 1 thực thể duy nhất (.) q/trình q/lý cấu hình. Các mục cấu hình phần
mềm ko chỉ là các đoạn mã ch/trình mà là tất cả các loại tài liệu cho sự phát triển phần mềm. Các dự án lớn thường tạo ra
hàng nghìn thực thể phải được xác định duy nhất. Một lược dồ đặt tên thực thể nên được xác định để định danh cho các
tài liệu có tên liên quan.
+ Đường cơ sở (Baseline): Đặc tả ký thuật hoặc sp đã đc xem xét và thống nhất chính thức, sau đó đc dùng như là một
cơ sở để tiếp tục phát triển, và có thể thay đổi chỉ thông qua thủ tục kiểm soát thay đổi chính thức.
+ Kho lưu trữ SCM (SCM Repository) : là 1 tập các cơ chế hoạt động và cấu trúc dữ liệu cho phép 1 nhóm phát triển phần
mềm có thể quản lý thay đổi, phát triển, bảo trì phần mềm một cách hiệu quả. Một kho lưu trữ có các chức năng sau đây:
Toàn vẹn dữ liệu; Chia sẻ thông tin; Tích hợp công cụ; Tích hợp dữ liệu; Thực thi phương pháp luận; Tiêu chuẩn hóa tài liệu
-, Các đặc trưng của respository: Phiên bản ; Theo dõi sự phụ thuộc và quản lý th/đổi ; Yêu cầu tìm kiếm ; Quản lý cấu
hình; Thông tin tác giả
+ Thư mục SCM (SCM Directory): Programmer's Directory; Master Directory; Software Repository
+ Phiên bản (Version): 1 bản phát hành ban đầu hoặc tái phát hành một mục cấu hình đc l/kết vs 1 bản biên dịch hoặc biên
dịch lại hoản chinh của mục đó. + Bản sửa đổi (Revision): Chỉ sửa lỗi trong th/kế, ko ảnh hưởng đến chức năng
+ Bản phát hành (Release): Việc phân phối chính thức đã được phê duyệt.
6. Các thành phần trong 1 h/thống quản lý cấu hình: Cấc yếu tố Cấu phần, xử lý, xây dựng, con ngưởi
7. Quy trình SCM: Identification; Version control, Change control, Configuration auditing, Reporting
8. Các hoạt động chính SCM: Nhận dạg mục cấu hình (Configuration item identification), Q/lý tăg trưởg (Promotion M..);
Quản lý phát hành (Release M..); Quản lý nhánh (Branch M..); Quản lý biến thể (Variant M..); Quản lý thay đổi (Change M..) ;
Kiểm toán cấu hình (Configuration Audit) và Báo cáo trạng thái (Status reporting)
9. Quản lý phiên bản (Version management hay kiểm soát phiên bản – Version control) là q/trình theo dõi các phiên bản
khác nhau của các th/phần phần mềm hoặc các mục cấu hình của hệ thống mà thành phần này đc sử dụng
10. Hệ thống kiểm soát phiên bản: Gồm 4 tính năng chính: Một cơ sở dữ liệu dự án; Quản lý phiên bản; Make facility; Theo
dõi vấn đè (bug tracking). Hiện nay có 2 loại HTDKPB hiện đại: Hệ thống tập trung: Subversion ; Hệ thống phân tán Git;
11. Quản lý thay đổi : Nhằm đảm bảo rằng sự phát triển của hệ thống là một quá trình đc quản lý và ưu tiên dành cho những
thay đổi cấp bách và tiết kiệm chi phí. Liên quan đến việc phân tích chi phí và lợi ích của những thay đổi, phê duyệt và theo dõi
những thay đổi

* Hệ thống phần mềm luôn thay đổi trong quá trình phát triển và sử dụng
.•Quản lý cấu hình phần mềm là một phần cơ bản của kế hoạch quản lý dự án để quản lý các hệ thống phần mềm đang phát triển
và điều phối các thay đổi đối với chúng.
•Quản lý cấu hình liên quan đến các chính sách, quy trình và công cụ để quản lý các hệ thống phần mềm đang thay đổi.
•SCM cần thiết vì rất dễ mất dấu những thay đổi và các phiên bản thành phần đã được tích hợp vào mỗi phiên bản hệ thống.
•SCM rất cần thiết cho các dự án nhóm để kiểm soát các thay đổi do các nhà phát triển khác nhau thực hiện
* Kỹ nghệ yêu cầu phần mềm:
Khởi đầu (Inception): Hỏi một loạt các câu hỏi để xác định:•Hiểu biết căn bản về vấn đề cần giải quyết.•Người đang cần giải
pháp•Loại giải pháp mong muốn•Mức độ hiệu quả ban đầucủa việc trao đổithông tin giữa khách hàng và nhà phát triển•Khám
phá (Elicitation): tìm ra yêu cầu của tất cả khách hàng.•Xây dựng (Elaboration): tạo ra mô hình phân tích xác địnhdữ liệu, chức
năng và hành vi được yêu cầu.•Đàmphán (Negotiation): đồngý với một hệ thống có thể bàn giao một cách thực tế đối với cả 2
bên.

1. Lựa chọn nào sau đây là giải thích phù hợp nhất với mô hình thác nước “WaterFall Model”? x2 Việc phát
triển hệ thống sẽ được làm theo thứ tự các pha trong tiến trình phần mềm, không quay trở lại công việc ở pha trước
của tiến trình.
2. Trong các giai đoạn phát triển phần mềm, thứ tự kiểm thử nào sau đây phù hợp nhất? x3 Kiểm thử đơn vị -
Kiểm thử tích hợp - Kiểm thử hệ thống
4. Mô tả nào phù hợp nhất với mô hình Agile? x2 Dễ dàng thích nghi với các thay đổi xảy ra.
5. Lý do khiến nhóm phát triển phần mềm nên tạo nguyên mẫu (prototype)? x2
a. Tạo nguyên mẫu làm sơ sở cho việc viết đặc tả cho sản phẩm.
b. Tạo nguyên mẫu dùng làm bản kiểm thử cho phần mềm sau này.
c. Tạo nguyên mẫu giúp hạ thấp chi phí sửa lỗi.
d. Tất cả các phương án đều đúng.
6. Trong các tính chất sau, tính chất nào là đặc trưng của thiết kế hướng đối tượng? x2 Các đối tượng liên lạc
với nhau thông qua trao đổi thông báo.
7. Các dự án phần mềm có đặc trưng nào cơ bản nhất? x2 Phức tạp và sản phẩm ít hữu hình.
8. Phát biểu nào là phù hợp nhất cho usecases? x3 Tập hợp các kịch bản mô tả việc sử dụng hệ thống dưới góc
nhìn của tác nhân.
10. Thành phần của một kế hoạch quản lý cấu hình cho phép thiết lập phạm vi và hướng dẫn cho phiên bản
hiện tại của phần mềm? x2 Cấu hình cơ bản (Baseline)
11. Phát biểu nào dưới đây mô tả phù hợp nhất cho nguyên lý mở-đóng (OCP) trong các nguyên lý thiết kế cơ
bản ? x2 Một mô-đun (thành phần) nên được thiết kế thuận tiện cho việc mở rộng nhưng nên đóng cho việc hiệu
chỉnh
12. Điều gì kết hợp các thủ tục và công cụ để quản lý các phiên bản khác nhau của các đối tượng cấu hình
được tạo ra trong quy trình phát triển phần mềm? x2 Quản lý phiên bản (Version Control)
13. Đáp án nào trong các đáp án sau không phải là một nhiệm vụ của quản lý cấu hình phần mềm? x3 Quản lý
rủi ro
14. Việc kết hợp các mã nguồn chương trình, thư viện và dữ liệu, biên dịch sau đó liên kết để tạo ra một hệ
thống thực thi được là: x2 Xây dựng hệ thống
16. Đâu là giải pháp cho thiết kế cấu trúc? x2 Mô hình đặc tả là biểu đồ cấu trúc hiển thị phân cấp gọi và phân
luồng dữ liệu đến và đi của các thủ tục
17. Đáp án nào sau đây không đại diện cho thiết kế hướng đối tượng? x2 Các thủ tục trong thiết kế cấu trúc được
phân rã dưới dạng các lớp và đối tượng
19. Đâu là các loại yêu cầu phần mềm? x2
a. Tính sẵn có
b. Độ tin cậy
c. Tính khả dụng
d. Tất cả các đáp án trên
2. Đáp án nào sau đây đại diện cho thiết kế hướng đối tượng?
b. Chương trình được xem như là một tập hợp các đối tượng
c. Biểu diễn bằng các biểu đồ lớp cho biết một chương trình tạo ra từ những lớp nào và quan hệ giữa chúng
d. Phương pháp hướng đối tượng kết hợp cả phương pháp hướng cấu trúc

7. Trong quá trình phát triển phần mềm, giai đoạn thiết kế phần mềm có nghĩa là? x2 Xây dựng giải pháp cho
vấn đề.
8. Thiết kế phần mềm là: x2
a. Một hoạt động phải chịu các ràng buộc
b. Chỉ định bản chất và thành phần của sản phẩm phần mềm
c. Đáp ứng nhu cầu và mong đợi của khách hàng
d. Tất cả những đáp án trên
9. Phát biểu nào phù hợp với mô hình phát triển phần mềm xoắn ốc? x2 Bao gồm việc đánh giá những rủi ro
phần mềm trong mỗi vòng lặp
10. Các yêu cầu phần mềm nhìn từ quan điểm của người phát triển? x2 Cả tính khả chuyển và khả năng bảo trì
15. Điều gì trong các điều sau là phát biểu không đúng về thiết kế cấu trúc? x2
a. Thiết kế cấu trúc tập trung vào việc phân rã các thủ tục
b. Ưu điểm là biểu diễn được luồng dữ liệu
c. Thiết kế cấu trúc tuân theo biểu đồ cấu trúc
d. Không có đáp án nào sai

a) Chọn phát biểu đúng nhất về sản phẩm phần mềm trong các phát biểu sau? Phần mềm gồm ba phần chính: chương
trình máy tính, cấu trúc dữ liệu (ngoài và trong) và tài liệu

b) MS Word thuộc loại phần mềm nào? Phần mềm ứng dụng

c) Chọn phát biểu đúng nhất trong các phát biểu sau? Mục tiêu của công nghệ phần mềm (SE) là phát triển các sản
phẩm phần mềm có chất lượng cao, thời gian phát triển nhanh với chi phí hợp lý

a) Mô hình bản mẫu (prototyping model) của phát triển phần mềm là : Một cách tiếp cận hữu ích khi khách hàng
không thể định nghĩa yêu cầu rõ ràng
b) Bước đầu tiên trong vòng đời phát triển phần mềm (Software Development Life Cycle) là? Xác định các nhu cầu
và ràng buộc
c) Tình huống nào không phù hợp để có thể áp dụng mô hình thác nước? (chọn nhiều)
1. Khó khăn trong việc bổ sung yêu cầu mới trong các pha sau của tiến trình
2. Khách hàng muốn có sản phẩm vận hành được sớm
3. Khó thu thập đầy đủ yêu cầu ngay ở giai đoạn đầu của dự án

a) Nội dung nào sau đây được chuyển giao vào cuối Sprint? Một phiên bản gia tăng của phần mềm hoàn thành
b) Product Backlog chứa những thông tin cơ bản gì? Danh sách đầy đủ các yêu cầu hiện không có trong bản phát
hành sản phẩm

c) Chuỗi hoạt động nào sau đây là đúng cho Extreme Programming (XP)? Write test, write code, refactor

a) Loại nào sau đây là một phần của đầu ra của quy trình phần mềm?

1. Chương trình máy tính

2. Tài liệu mô tả các chương trình máy tính

3. Dữ liệu

4. Tất cả những phương án trên

b) Khái niệm quản lý cấu hình phần mềm nào giúp chúng ta kiểm soát sự thay đổi mà không cản trở đến những thay
đổi chính đáng?

1. Baselines

2. Source code

3. Data model

4. Các phương án trên đều sai

c) Quá trình nào sau đây tập hợp các thành phần chương trình, dữ liệu và thư viện, sau đó biên dịch và liên kết các
thành phần này để tạo ra một hệ thống thực thi? System building

e) Những gì liên quan đến việc chuẩn bị phần mềm để phát hành bên ngoài và theo dõi các phiên bản hệ thống đã
được phát hành cho khách hàng sử dụng? Version management

a. Lựa chọn nào sau đây mô tả một yêu cầu phi chức năng? Hệ thống phải có khả năng lưu trữ ban đầu là
500MB dữ liệu, mỗi năm tăng lên 100MB
b. Lựa chọn nào sau đây mô tả một yêu cầu chức năng? Hệ thống cho phép người sử dụng thêm một sản
phẩm muốn mua vào giỏ hàng
c. Sơ đồ luồng dữ liệu cung cấp thông tin gì? Đưa ra hình ảnh những chức năng biến đổi luồng dữ liệu
d. Đặc tả hệ thống mô tả _____? Chức năng, hiệu năng và các ràng buộc của hệ thống
e. Hoạt động nào sau đây không phải là mục tiêu của xây dựng mô hình yêu cầu?
1. Xác định một tập các yêu cầu phần mềm có thể được thẩm định
2. Mô tả các yêu cầu khách hàng
3. Tạo lập một cơ sở cho thiết kế phần mềm
4. Đưa ra giải pháp sơ bộ cho vấn đề đặt ra
f. Điều gì xảy ra khi sử dụng ngôn ngữ tự nhiên để mô tả các yêu cầu? (chọn nhiều)
1. Một vài yêu cầu được diễn đạt chung, đi cùng nhau ở dạng một yêu cầu
2. Các yêu cầu, mục tiêu hệ thống và thông tin thiết kế có thể không được phân biệt rõ ràng
3. Dễ dẫn đến hiểu nhầm giữa người đọc và người viết
4. Cung cấp thông tin đầy đủ nhất cho người phát triển
a. Tác nhân ca sử dụng luôn là con người, không phải là các thiết bị hệ thống? Sai
b. Use-cases là một kịch bản mà mô tả? Kế hoạch xây dựng cho sản phẩm phần mềm
c. Phát biểu nào sau đây là đúng về yêu cầu phần mềm? Trả lời bằng cách đánh dấu T (đúng) hoặc F
(sai).
(1) T / F Độ tin cậy và bảo mật là ví dụ về các yêu cầu chức năng.
(2) T / F Yêu cầu đóng vai trò như một cơ sở cho việc kiểm tra và xác minh.
(3) T / F Yêu cầu mô tả kiến trúc phần mềm.
(4) T / F Các yêu cầu về hành vi thường mang tính chủ quan và không thể đo lường được.
(5) T / F Các trường hợp sử dụng nắm bắt các yêu cầu chức năng.
(6) T / F Lý do số một mà các dự án thành công là sự tham gia của nhà phát triển.
(7) T / F Một ca sử dụng đại diện cho một hành vi ví dụ của hệ thống.
(8) T / F Các tình huống mở rộng của một ca sử dụng thiết lập sự hiểu biết giữa khách hàng và nhà phát triển
hệ thống về các yêu cầu.
(9) T / F Trong hầu hết các trường hợp sử dụng, gần như mọi bước đều có thể bị lỗi.
a. Kiểu kiến trúc ống dẫn – bộ lọc (pipes and filters) là một dạng đặc biệt của kiểu client-server? Sai
b. Yếu tố nào có ảnh hưởng đến việc thiết kế kiến trúc phần mềm?
1. Công nghệ sử dụng
2. Yêu cầu về thuộc tính chất lượng
3. Chiến lược triển khai hệ thống
4. Tất cả các phương án trên
c. Chọn những yếu tố quan trọng tạo nên kiến trúc phần mềm (chọn nhiều)?
1. Phần tử phần mềm
2. Mối quan hệ giữa các phần tử
3. Thuộc tính của mối quan hệ
4. Thuộc tính của môi trường hoạt động
5. Thuộc tính của phần tử
d. Mẫu thiết kế chỉ áp dụng được cho lập trình hướng đối tượng? Sai
e. Một số lớp có được trong giai đoạn phân tích có thể được lược bỏ trong giai đoạn thiết kế? Đúng
f. Trong thiết kế theo phương pháp cấu trúc, tương tác giữa các chương trình con (subprogram) được thể
hiện trong …? Biểu đồ cấu trúc
a. Giao diện người dùng là gì? Là phương tiện để người dùng khai thác các tính năng của phần mềm
b. Lựa chọn nào là các kiểu giao diện người dùng?
1. Giao diện người dùng đồ họa
2. Giao diện dòng lệnh
3. Giao diện ngôn ngữ tự nhiên
4. Tất cả các phương án trên
c. Phần mềm có thể cho phép người dùng tương tác qua thiết bị đa dạng như chuột, bàn phím, thiết bị
nhận dạng giọng nói, màn cảm ứng,…? Đúng
d. Để xây dựng một giao diện người dùng hiệu quả, nhà thiết kế phải bắt đầu bằng sự hiểu biết về người
dùng, bao gồm hồ sơ về tuổi, khả năng thể chất, kỹ năng, trình độ học vấn, sở thích,…? Đúng
e. Nguyên tác cơ bản trong thiết kế giao diện người dùng?
1. Lấy người dùng làm trung tâm
2. Giảm tải bộ nhớ trên máy người dùng
3. Giao diện cần nhất quán (consistent)
4. Tất cả các phương án trên
f. Những hoạt động được chú trọng khi thiết kế giao diện người dùng?
1. Mô hình hóa và phân tích người dùng, nhiệm vụ, môi trường
2. Thiết kế giao diện
3. Thẩm định giao diện
4. Tất cả các phương án trên
g. Hướng tiếp cận nào để phân tích tác vụ của người dùng trong thiết kế giao diện? Quan sát thao tác
người dùng
a. Cài đặt phần mềm là triển khai thiết kế chi tiết thành chương trình? Đúng
b. Mã nguồn dễ bảo trì là?
1. Dễ hiểu
2. Dễ sửa lỗi
3. Dễ nâng cấp
4. Tất cả các phương án trên
c. Các quy định về chuẩn viết code được đề xuất bởi? Ngôn ngữ lập trình
d. Đặt tên biến và tên hàm nên? Có nghĩa, gợi nhớ
e. Việc chú thích các mô-đun là để làm rõ? Mục đích, chức năng của mô-đun
2) Phương pháp nào phù hợp nhất cho việc kiểm thử được tiến hành với sự chú ý nhất được dành cho cấu trúc bên
trong của chương trình và giải thuật? Kiểm thử hộp trắng
3) Phương án nào là kỹ thuật phù hợp nhất đối với mối quan hệ giữa dữ liệu vào và kết quả đầu ra trong việc
chuẩn bị dữ liệu kiểm thử, kiểm thử các chức năng của chương trình? Kiểm thử hộp đen
4) Mô tả chính xác nhất về kiểm thử tích hợp trong tiến trình phát triển hệ thống, ngay sau kiểm thử đơn vị được
hoàn tất? Xác nhận không có vấn đề về giao diện giữa các đơn vị / các thành phần của chương trình

You might also like