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:
Môn: công nghệ thông tin(HUCE)
Trường: Đại học Xây Dựng Hà Nội
Thông tin:
Tác giả:
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.