Bài cuối kì cnpm | Đại học Xây Dựng Hà Nội

Quy trình kỹ nghệ yêu cầu là một phần quan trọng trong quá trình phát triển phần mềm, tập trung vào việc xác định, phân tích và quản lý yêu cầu của hệ thống hoặc phần mềm sẽ được xây dựng. Dưới đây là một số hiểu biết cơ bản về quy trình kỹ nghệ yêu cầu:

lOMoARcPSD|45222017
zN 1 Trình bày nhng hiu biết ca e v quy trình k nghu cu
Quy trình k ngh yêu cu là mt phn quan trng trong quá trình phát trin phn mm, tp
trung vào việc xác định, phân ch và qun lý yêu cu ca h thng hoc phn mm s đưc xây
dng. ới đây là một s hiu biết cơ bản v quy trình k ngh yêu cu:
1. **Thu thp Yêu Cu:**
- Bắt đầu bng vic thu thp thông tin t các bên liên quan, bao gồm khách hàng, người
dùng cui, và các bên liên quan khác.
- Yêu cu có th chia thành yêu cu chức năng (functional requirements) và yêu cu phi
chức năng (non-functional requirements).
2. **Phân ch Yêu Cu:**
- Phân ch chi tiết các yêu cầu đã thu thập để hiu rõ và chia thành các mô-đun hoc chức năng
c th.
- Xác định các ràng buc và mi quan h gia các yêu cu.
3. **Kim soát Yêu Cu:**
- Xác định và qun lý s thay đổi trong yêu cu theo thi gian.
- Đảm bo nh nht quán và nh đầy đủ ca yêu cu.
4. **Mô hình Yêu Cu:**
- S dụng các phương tiện như biểu đồ use case, biểu đồ lp, hoc mô hình d liệu để
minh ha và trình bày yêu cu.
- Mô hình hóa giúp làm rõ ý đồ và giúp tt c các bên liên quan hiểu rõ hơn về h thng
hoc phn mm s đưc phát trin.
5. **Xác nhn Yêu Cu:**
- Xác nhn với khách hàng và người dùng cuối để đảm bo rng yêu cầu đã được hiu
đúng vàphản ánh đúng mong đợi ca h.
lOMoARcPSD|45222017
- Quy trình này giúp gim thiu ri ro xut hin li hoc hiu lm trong sut quá trình
phát trin.
6. **Tài liu Yêu Cu:**
- Làm vic vi tài liu yêu cu, bao gm các tài liu mô t yêu cu, biểu đồ và mô hình, để to
nên mt tài liu chính thc và chi tiết v yêu cu.
7. **Liên kết vi Các Quy trình Khác:**
- K ngh yêu cu là mt phn ca quy trình phát trin toàn din, liên quan cht ch vi các
quy trình khác như phân ch thiết kế, lp trình, và kim th.
Quy trình k ngh yêu cầu đóng vai trò quan trọng trong việc đảm bo rng phn mềm được
xây dng đáp ứng đúng nhu cầu và mong đợi của người s dụng. Đồng thi, nó giúp to nn
tảng cho các giai đoạn phát trin và kim th tiếp theo.
2 Hãy liệt kê các pha và đưa ra quan điểm v các pha trong quy trình phát trin
phn mm
Quy trình phát trin phn mm tng bao gm nhiều pha khác nhau, và quan điểm v tng
pha có th thay đổi tùy thuc vào ng cảnh và phương pháp cụ thể. Dưới đây là một mô t
tng quan v các pha thường gặp và quan điểm v chúng:
1. **Phân ch Yêu Cu (Requirements Analysis):**
- **Quan điểm:** Pha này rt quan trọng vì nó hình thành cơ sở cho toàn b d án. Hiu rõ
và xác định đúng yêu cầu s giúp đảm bo rng phn mm s đáp ứng nhu cu thc tế ca
người dùng.
2. **Thiết Kế (Design):**
lOMoARcPSD|45222017
- **Quan điểm:** Thiết kế quyết định cu trúc ca h thng và là bước chuyn t yêu cu
abstract sang mt kế hoch thiết kế c th. Mt thiết kế tt giúp gim thiu lỗi và tăng nh tái
s dng ca mã ngun.
3. **Lp Trình (Coding):**
- **Quan điểm:** Lp trình là quá trình chuyển đổi thiết kế thành mã ngun. Chất lượng ca
mã ngun ảnh hưởng đến hiu sut và bo trì ca h thng. Quan trọng để duy trì các tiêu
chun mã ngun và thc hin kim th đơn vị.
4. **Kim Th (Testing):**
- **Quan điểm:** Kim th đóng vai trò quan trọng trong việc đảm bo chất lượng phn
mm. Quy trình này giúp phát hin và sa cha lỗi trước khi sn phẩm được trin khai. Kim
th cũng giúp xác nhận rng yêu cầu đã được đáp ứng đúng cách.
5. **Trin Khai (Deployment):**
- **Quan điểm:** Trin khai là quá trình trin khai phn mềm cho người dùng cui. Vic trin
khai thành công đòi hỏi kế hoch cn thn và kim soát v môi trường trin khai.
6. **Bo Trì (Maintenance):**
- **Quan điểm:** Bo trì là mt phn quan trng để duy trì và cp nht phn mm sau khi nó
đã được trin khai. Các sa li, nâng cp và thích ng với môi trường mới đều là các hoạt động
quan trọng trong giai đoạn này.
7. **Phân ch Yêu Cu Li và Ci Tiến (Requirements Re-analysis and Enhancement):**
- **Quan điểm:** Quá trình này có th xy ra sau mi chu k phát triển (đặc bit là trong các
mô hình phát trin linh hoạt) và giúp đáp ứng các thay đổi trong yêu cầu và đảm bo rng h
thng vẫn đáp ứng đúng nhu cầu người dùng.
Mỗi pha đều quan trng và đóng góp vào sự thành công ca d án phn mm. Quy trình phát
trin phn mm hiu qu thưng kết hp các pha này mt cách linh hoạt để đảm bo rng nhu
cu của người dùng được đáp ứng và sn phẩm đáp ứng chất lượng mong đợi.
lOMoARcPSD|45222017
3 Trình bày nhng hiu biết ca e v 1 s k thut kim th ớng đối tượng t
đó hãy so sánh kiểm th dơn vịkim th thành phn
K thut kim th ớng đối tượng (Object-Oriented Testing) liên quan đến vic kim th
trong ng cnh ca lập trình hướng đối tượng (OOP). Dưới đây là mt s k thut và hiu biết
v chúng, cũng như so sánh gia kim th đơn vị và kim th thành phn.
### 1. **Kim Th Đơn Vị (Unit Testing):**
- **Mc Tiêu:**
- Kim th chức năng cụ th ca một đối tượng hay một phương thức trong môi trường cô lp.
- Xác định và sa li mức đơn vị, đảm bo rng mi phn ca mã ngun hoạt động chính xác.
- **K Thut:**
- S dng các framework kim th đơn vị như JUnit, NUnit.
- S dng mô phỏng (mocking) để to gi các đối tượng ph thuc và kim soát d liệu đầu
vào/đầu ra.
- **Ưu Đim:**
- Tp trung vào từng đơn vị, giúp d dàng xác định và sa li.
- Chy nhanh và có th ch hp vào quy trình phát trin liên tc.
- **Nhược Điểm:**
- Không kim th được tương tác giữa các đơn vị.
- Có th b sót các li xut hin khi ch hợp các đơn vị li vi nhau.
### 2. **Kim Th Thành Phn (Component Testing):**
- **Mc Tiêu:**
- Kim th tương tác giữa các đơn vị đã được kim th độc lp.
lOMoARcPSD|45222017
- Đảm bo nh đồng nht ca các thành phần khi chúng được kết hp li.
- **K Thut:**
- S dng kim th hộp đen để kim tra giao din ca các thành phn. - Kim th ch hợp để
đảm bo nh tương thích giữa các thành phn.
- **Ưu Điểm:**
- Kim th các tương tác giữa các thành phn, giúp phát hin li ch hp.
- Đảm bo nh đồng nht ca h thng.
- **Nhược Điểm:**
- Cn nhiều tài nguyên hơn so với kim th đơn vị.
- Không th kim soát mi chi tiết ni b ca từng đơn vị.
### So Sánh Kim Th Đơn V và Kim Th Thành Phn:
- **Phm Vi Kim Th:**
- **Kim Th Đơn Vị:** Tp trung vào từng đơn vị c th như một lớp hay phương thức.
- **Kim Th Thành Phn:** Tập trung vào tương tác giữa các thành phn lớn hơn.
- **Mức Độ Cô Lp:**
- **Kim Th Đơn Vị:** Cô lp, chạy trong môi trường kim th độc lp.
- **Kim Th Thành Phần:** Liên quan đến ch hp gia các thành phn.
- **S Chia S D Liu:**
- **Kim Th Đơn Vị:** S dng mô phỏng để cô lp và kim soát d liu.
- **Kim Th Thành Phn:** Kim th tương tác giữa các thành phần, thường s dng d
liuthc.
lOMoARcPSD|45222017
- **Quy Mô:**
- **Kim Th Đơn Vị:** Nh hơn và dễ trin khai.
- **Kim Th Thành Phn:** Lớn hơn và cần nhiều tài nguyên hơn.
C hai loi kim th đều quan trng trong quá trình phát trin phn mềm và thường được s
dụng cùng nhau để đảm bo nh chất lượng và độ tin cy ca h thng.
4 Trình bày nhng hiu biết ca e vnh lp trình, lit kê 1 s mô hình lp
trình ph biến làm minh ha
Mô hình lp trình:Mô hình lp trình là mt cách phân loi ngôn ng lp trình da trên nh năng
ca chúng.
Mt ngôn ng có th h tr nhiu mô hình lp trình.
Mt s mô hình ch yếu quan tâm đến s thc thi của chương trình, các mô hình khác li ch
yếu quan tâm đến cách t chc mã code, tuy nhiên nhng mô hình khác li ch quan tâm đến
phong cách ca cú pháp và ng pháp.
Các mô hình lp trình ph biến bao gm:Lp trình mnh lnh: Là mu hình lp trình s dng
mt chui các câu lệnh để thay đổi trng thái của chương trình. Bao gồm như:Lập trình hướng
th tc thc hin nhóm các câu lnh trong các th tc/các hàm.
Lập trình hướng đối tượng thc hiện code để tạo ra các đối tượng trừu tượng hóa các đối
ng trong bài toán thc tế.
Lp trình khai báo: Trong đó các lập trình viên khai báo các thuc nh ca kết qu mong mun,
nhưng không thực hin nh toán nó.
Lp trình khai báo bao gồm như:Lập trình hướng chức năng: Kết qu mong muốn được khai báo
như dãy giá trị ca chức năng các ứng dng.
Lp trình logic: Da trên logic toán trong các mi quan h và các suy lun.
Lp trình nh toán: Trong đó kết qu mong muốn được khai báo là gii pháp ca mt bài toán
tối ưu.
Lp trình phn ng(reactive): Trong đó kết qu mong muốn được khai báo vi các lung d liu
và s lan truyn ca s thay đổi.
| 1/6

Preview text:

lOMoARcPSD| 45222017
zN 1 Trình bày những hiểu biết của e về quy trình kỹ nghệ yêu cầu
Quy trình kỹ nghệ yêu cầu là một phần quan trọng trong quá trình phát triển phần mềm, tập
trung vào việc xác định, phân tích và quản lý yêu cầu của hệ thống hoặc phần mềm sẽ được xây
dựng. Dưới đây là một số hiểu biết cơ bản về quy trình kỹ nghệ yêu cầu: 1. **Thu thập Yêu Cầu:** -
Bắt đầu bằng việc thu thập thông tin từ các bên liên quan, bao gồm khách hàng, người
dùng cuối, và các bên liên quan khác. -
Yêu cầu có thể chia thành yêu cầu chức năng (functional requirements) và yêu cầu phi
chức năng (non-functional requirements).
2. **Phân tích Yêu Cầu:**
- Phân tích chi tiết các yêu cầu đã thu thập để hiểu rõ và chia thành các mô-đun hoặc chức năng cụ thể.
- Xác định các ràng buộc và mối quan hệ giữa các yêu cầu.
3. **Kiểm soát Yêu Cầu:**
- Xác định và quản lý sự thay đổi trong yêu cầu theo thời gian.
- Đảm bảo tính nhất quán và tính đầy đủ của yêu cầu. 4. **Mô hình Yêu Cầu:** -
Sử dụng các phương tiện như biểu đồ use case, biểu đồ lớp, hoặc mô hình dữ liệu để
minh họa và trình bày yêu cầu. -
Mô hình hóa giúp làm rõ ý đồ và giúp tất cả các bên liên quan hiểu rõ hơn về hệ thống
hoặc phần mềm sẽ được phát triển.
5. **Xác nhận Yêu Cầu:** -
Xác nhận với khách hàng và người dùng cuối để đảm bảo rằng yêu cầu đã được hiểu
đúng vàphản ánh đúng mong đợi của họ. lOMoARcPSD| 45222017 -
Quy trình này giúp giảm thiểu rủi ro xuất hiện lỗi hoặc hiểu lầm trong suốt quá trình phát triển.
6. **Tài liệu Yêu Cầu:**
- Làm việc với tài liệu yêu cầu, bao gồm các tài liệu mô tả yêu cầu, biểu đồ và mô hình, để tạo
nên một tài liệu chính thức và chi tiết về yêu cầu.
7. **Liên kết với Các Quy trình Khác:**
- Kỹ nghệ yêu cầu là một phần của quy trình phát triển toàn diện, liên quan chặt chẽ với các
quy trình khác như phân tích thiết kế, lập trình, và kiểm thử.
Quy trình kỹ nghệ yêu cầu đóng vai trò quan trọng trong việc đảm bảo rằng phần mềm được
xây dựng đáp ứng đúng nhu cầu và mong đợi của người sử dụng. Đồng thời, nó giúp tạo nền
tảng cho các giai đoạn phát triển và kiểm thử tiếp theo.
2 Hãy liệt kê các pha và đưa ra quan điểm về các pha trong quy trình phát triển phần mềm
Quy trình phát triển phần mềm thường bao gồm nhiều pha khác nhau, và quan điểm về từng
pha có thể thay đổi tùy thuộc vào ngữ cảnh và phương pháp cụ thể. Dưới đây là một mô tả
tổng quan về các pha thường gặp và quan điểm về chúng:
1. **Phân tích Yêu Cầu (Requirements Analysis):**
- **Quan điểm:** Pha này rất quan trọng vì nó hình thành cơ sở cho toàn bộ dự án. Hiểu rõ
và xác định đúng yêu cầu sẽ giúp đảm bảo rằng phần mềm sẽ đáp ứng nhu cầu thực tế của người dùng. 2. **Thiết Kế (Design):** lOMoARcPSD| 45222017
- **Quan điểm:** Thiết kế quyết định cấu trúc của hệ thống và là bước chuyển từ yêu cầu
abstract sang một kế hoạch thiết kế cụ thể. Một thiết kế tốt giúp giảm thiểu lỗi và tăng tính tái
sử dụng của mã nguồn. 3. **Lập Trình (Coding):**
- **Quan điểm:** Lập trình là quá trình chuyển đổi thiết kế thành mã nguồn. Chất lượng của
mã nguồn ảnh hưởng đến hiệu suất và bảo trì của hệ thống. Quan trọng để duy trì các tiêu
chuẩn mã nguồn và thực hiện kiểm thử đơn vị.
4. **Kiểm Thử (Testing):**
- **Quan điểm:** Kiểm thử đóng vai trò quan trọng trong việc đảm bảo chất lượng phần
mềm. Quy trình này giúp phát hiện và sửa chữa lỗi trước khi sản phẩm được triển khai. Kiểm
thử cũng giúp xác nhận rằng yêu cầu đã được đáp ứng đúng cách.
5. **Triển Khai (Deployment):**
- **Quan điểm:** Triển khai là quá trình triển khai phần mềm cho người dùng cuối. Việc triển
khai thành công đòi hỏi kế hoạch cẩn thận và kiểm soát về môi trường triển khai.
6. **Bảo Trì (Maintenance):**
- **Quan điểm:** Bảo trì là một phần quan trọng để duy trì và cập nhật phần mềm sau khi nó
đã được triển khai. Các sửa lỗi, nâng cấp và thích ứng với môi trường mới đều là các hoạt động
quan trọng trong giai đoạn này.
7. **Phân tích Yêu Cầu Lại và Cải Tiến (Requirements Re-analysis and Enhancement):**
- **Quan điểm:** Quá trình này có thể xảy ra sau mỗi chu kỳ phát triển (đặc biệt là trong các
mô hình phát triển linh hoạt) và giúp đáp ứng các thay đổi trong yêu cầu và đảm bảo rằng hệ
thống vẫn đáp ứng đúng nhu cầu người dùng.
Mỗi pha đều quan trọng và đóng góp vào sự thành công của dự án phần mềm. Quy trình phát
triển phần mềm hiệu quả thường kết hợp các pha này một cách linh hoạt để đảm bảo rằng nhu
cầu của người dùng được đáp ứng và sản phẩm đáp ứng chất lượng mong đợi. lOMoARcPSD| 45222017
3 Trình bày những hiểu biết của e về 1 số kỹ thuật kiểm thử hướng đối tượng từ
đó hãy so sánh kiểm thử dơn vị và kiểm thử thành phần
Kỹ thuật kiểm thử hướng đối tượng (Object-Oriented Testing) liên quan đến việc kiểm thử
trong ngữ cảnh của lập trình hướng đối tượng (OOP). Dưới đây là một số kỹ thuật và hiểu biết
về chúng, cũng như so sánh giữa kiểm thử đơn vị và kiểm thử thành phần.
### 1. **Kiểm Thử Đơn Vị (Unit Testing):** - **Mục Tiêu:**
- Kiểm thử chức năng cụ thể của một đối tượng hay một phương thức trong môi trường cô lập.
- Xác định và sửa lỗi ở mức đơn vị, đảm bảo rằng mỗi phần của mã nguồn hoạt động chính xác. - **Kỹ Thuật:**
- Sử dụng các framework kiểm thử đơn vị như JUnit, NUnit.
- Sử dụng mô phỏng (mocking) để tạo giả các đối tượng phụ thuộc và kiểm soát dữ liệu đầu vào/đầu ra. - **Ưu Điểm:**
- Tập trung vào từng đơn vị, giúp dễ dàng xác định và sửa lỗi.
- Chạy nhanh và có thể tích hợp vào quy trình phát triển liên tục. - **Nhược Điểm:**
- Không kiểm thử được tương tác giữa các đơn vị.
- Có thể bỏ sót các lỗi xuất hiện khi tích hợp các đơn vị lại với nhau.
### 2. **Kiểm Thử Thành Phần (Component Testing):** - **Mục Tiêu:**
- Kiểm thử tương tác giữa các đơn vị đã được kiểm thử độc lập. lOMoARcPSD| 45222017
- Đảm bảo tính đồng nhất của các thành phần khi chúng được kết hợp lại. - **Kỹ Thuật:**
- Sử dụng kiểm thử hộp đen để kiểm tra giao diện của các thành phần. - Kiểm thử tích hợp để
đảm bảo tính tương thích giữa các thành phần. - **Ưu Điểm:**
- Kiểm thử các tương tác giữa các thành phần, giúp phát hiện lỗi tích hợp.
- Đảm bảo tính đồng nhất của hệ thống. - **Nhược Điểm:**
- Cần nhiều tài nguyên hơn so với kiểm thử đơn vị.
- Không thể kiểm soát mọi chi tiết nội bộ của từng đơn vị.
### So Sánh Kiểm Thử Đơn Vị và Kiểm Thử Thành Phần: - **Phạm Vi Kiểm Thử:**
- **Kiểm Thử Đơn Vị:** Tập trung vào từng đơn vị cụ thể như một lớp hay phương thức.
- **Kiểm Thử Thành Phần:** Tập trung vào tương tác giữa các thành phần lớn hơn. - **Mức Độ Cô Lập:**
- **Kiểm Thử Đơn Vị:** Cô lập, chạy trong môi trường kiểm thử độc lập.
- **Kiểm Thử Thành Phần:** Liên quan đến tích hợp giữa các thành phần.
- **Sự Chia Sẻ Dữ Liệu:**
- **Kiểm Thử Đơn Vị:** Sử dụng mô phỏng để cô lập và kiểm soát dữ liệu.
- **Kiểm Thử Thành Phần:** Kiểm thử tương tác giữa các thành phần, thường sử dụng dữ liệuthực. lOMoARcPSD| 45222017 - **Quy Mô:**
- **Kiểm Thử Đơn Vị:** Nhỏ hơn và dễ triển khai.
- **Kiểm Thử Thành Phần:** Lớn hơn và cần nhiều tài nguyên hơn.
Cả hai loại kiểm thử đều quan trọng trong quá trình phát triển phần mềm và thường được sử
dụng cùng nhau để đảm bảo tính chất lượng và độ tin cậy của hệ thống.
4 Trình bày những hiểu biết của e về mô hình lập trình, liệt kê 1 số mô hình lập
trình phổ biến làm minh họa
Mô hình lập trình:Mô hình lập trình là một cách phân loại ngôn ngữ lập trình dựa trên tính năng của chúng.
Một ngôn ngữ có thể hỗ trợ nhiều mô hình lập trình.
Một số mô hình chủ yếu quan tâm đến sự thực thi của chương trình, các mô hình khác lại chủ
yếu quan tâm đến cách tổ chức mã code, tuy nhiên những mô hình khác lại chỉ quan tâm đến
phong cách của cú pháp và ngữ pháp.
Các mô hình lập trình phổ biến bao gồm:Lập trình mệnh lệnh: Là mẫu hình lập trình sử dụng
một chuỗi các câu lệnh để thay đổi trạng thái của chương trình. Bao gồm như:Lập trình hướng
thủ tục thực hiện nhóm các câu lệnh trong các thủ tục/các hàm.
Lập trình hướng đối tượng thực hiện code để tạo ra các đối tượng trừu tượng hóa các đối
tượng trong bài toán thực tế.
Lập trình khai báo: Trong đó các lập trình viên khai báo các thuộc tính của kết quả mong muốn,
nhưng không thực hiện tính toán nó.
Lập trình khai báo bao gồm như:Lập trình hướng chức năng: Kết quả mong muốn được khai báo
như dãy giá trị của chức năng các ứng dụng.
Lập trình logic: Dựa trên logic toán trong các mối quan hệ và các suy luận.
Lập trình tính toán: Trong đó kết quả mong muốn được khai báo là giải pháp của một bài toán tối ưu.
Lập trình phản ứng(reactive): Trong đó kết quả mong muốn được khai báo với các luồng dữ liệu
và sự lan truyền của sự thay đổi.