You are on page 1of 5

Tên Module: KỸ NGHỆ PHẦN MỀM

(Software Engineering)
Mã Module/Project:
Giáo viên: Nguyễn Minh Quý
Ngành học: Công nghệ Thông tin Số tín chỉ : 3 (45 tiết lý thuyết+90
giờ c/bị)
Loại hình đào tạo: Chính qui Thời gian thực hiện:
Năm học: Loại Module/Project: LT
Phiên bản: 2008-10-25 Phương pháp dạy học:

1. Mục tiêu:
Sau khi hoàn thành module này, người học có khả năng:
− Chỉ ra được vai trò và tầm quan trọng của Công nghệ phần mềm.
− Mô tả được một số qui trình phát triển phần mềm phổ biến
− Trình bày được các phương pháp, công cụ, thủ tục được sử dụng
trong các giai đoạn phát triển phần mềm, bao gồm: Phân tích và đặc
tả yêu cầu (Requirement), Thiết kế (Design) kiến trúc, xây dựng
(Construction), kiểm thử (Testing) phần mềm và các phương pháp về
quản lý dự án.
− Vận dụng các kiến thức đã học, sử dụng công cụ và phương pháp
phù hợp để phát triển phần mềm.

Module này giúp người học rèn luyện kỹ năng: Phân tích (M3), thiết
kế(M2), thực hiện (M3), tư vấn(M3).
2. Điều kiện tiên quyết:
- Học sau Module Lập trình hướng đối tượng, Cơ sở dữ liệu.
3. Mô tả module:
- Module này cung cấp cho người học những kiến thức cơ bản nhất về
kỹ nghệ phát triển phần mềm, bao gồm Phương pháp, công cụ và qui
trình. Những nền tảng kiến thức này sẽ làm cơ sở để học tập các
module tiếp theo (OOAD, Kiểm thử, Quản lý dự án, các vấn đề nâng
cao trong CNPM).
- Module này cũng giới thiệu thêm cho người học sử dụng một số
công cụ phần mềm, giúp họ có cơ hội ứng dụng vào thực tiễn và
nâng cao kỹ năng thực hành.
4. Nội dung Module

1
Bài 1: Tổng quan về Công nghệ phần mềm
1.0 Giới thiệu môn học
1.1 CNPM là gì ?
1.2 Tầm quan trọng của CNPM
1.3 Các thuật ngữ liên quan
1.4 Các công đoạn (phase) trong phát triển phần mềm
1.5 Chi phí trong từng giai đoạn phát triển PM
1.6 Vấn đề bảo trì PM

Bài 2: Các mô hình về tiến trình phần mềm


2.1 Khái niệm về tiến trình/qui trình PM
2.2 Các giai đoạn trong tiến trình phần mềm
2.3 Các mô hình về tiến trình phần mềm
2.4 Mô hình xây dựng và hiệu chỉnh
2.5 Mô hình thác nước
2.6 Mô hình bản mẫu
2.7 Mô hình tăng trưởng
2.8 Mô hình định khung nhanh
2.9 Mô hình xoắn ốc
2.10 Mô hình RUP (Rati onal Unified Process)
2.11 Mô hình hướng đối tượng
2.12 So sánh các mô hình

Bài 3: Đặc tả yêu cầu phần mềm (Software Requirement


specification)
3.1 Khái niệm đặc tả yêu cầu (requirement specification)
3.2 Yêu cầu của tài liệu đặc tả
3.3 Nôi dung đặc tả
3.4 Yêu cầu chức năng và phi chức năng (Functional & non-
Functional)
3.5 Đặc tả yêu cầu người sử dụng
3.6 Đặc tả yêu cầu hệ thống
3.7 Đặc tả giao diện
3.8 Xây dựng tài liệu yêu cầu phần mềm
3.9 Một số đặc tả yêu cầu phần mềm mẫu

Bài 4: Qui trình đặc tả yêu cầu phần mềm


4.1 Nghiên cứu tính khả thi
4.2 Phân tích và chọn lọc các yêu cầu
4.3 Kiểm tra các yêu cầu
4.4 Quản lý các yêu cầu
4.5 Một số công cụ hỗ trợ đặc tả yêu cầu.

2
Bài 5: Kiến trúc phần mềm (Software Architecture)
5.1 Định nghĩa kiến trúc phần mềm
5.2 Kiến trúc phần mềm dạng Client-Server
5.3 Kiến trúc phần mềm dựa trên thành phần – Component Based
5.4 Kiến trúc phần mềm đa tầng – MultiTier
5.5 Kiến trúc phần mềm dựa trên tình huống – Scenario Based
5.6 Kiến trúc phần mềm dựa theo mẫu – Design Pattern
5.7 Kiến trúc phần mềm dựa trên công nghệ sử dụng lại (re-use)

Bài 6: Thiết kế hướng đối tượng


6.1 Giới thiệu về phân tích thiết kế hướng đối tượng – OOAD
6.2 Các loại biểu đồ cơ bản biểu diễn hệ thống
6.3 Thiết kế hệ thống hướng đối tượng sử dụng UML
6.4 Giới thiệu và sử dụng một số Công cụ thiết kế hướng đối
tượng

Bài 7: Thiết kế giao diện người dùng (User Interface Design)


Các vấn đề thiết kế
Qui trình thiết kế giao diện người dùng
Phân tích người dùng
Lập mẫu giao diện người dùng (Prototyping)
Đánh giá giao diện

Bài 8: Công nghệ phát triển ứng dụng nhanh (RAD)


8.1 Các phương pháp Agile
8.2 Lập trình cực đoan (Extreme programming)
8.3 Phát triển ứng dụng nhanh
8.4 Phát triển mẫu (Software prototyping)

Bài 9: Sử dụng lại phần mềm (Software Reuse)


9.1 Giới thiệu
9.2 Các mẫu thiết kế
9.3 Sử dụng lại kết quả từ các công cụ
9.4 Các khung ứng dụng (Application Frameworks)
9.5 Sử dụng lại hệ thống ứng dụng

Bài 10: Công nghệ phần mềm dựa trên thành phần (CBSE)
10.1 Các thành phần và các mô hình thành phần
10.2 Tiến trình CBSE
10.3 Kết hợp thành phần

Bài 11: Kiểm thử phần mềm (Software Testing)


11.1 Tại sao phải kiểm thử

3
11.2 Vai trò của kiểm thử phần mềm trong dự án
11.3 Các loại kiểm thử (Unit, Integration, System, User
Acceptance test)

Bài 12: Kiểm thử phần mềm (Tiếp)


12.1 Thiết kế test case
12.2 Kiểm thử tự động (Automation test)
12.3 Giới thiệu một số mẫu kiểm thử thực tế
12.5 Giới thiệu một số phần mềm kiểm thử tự động

Bài 13: Thẩm định và kiểm tra – VV (Verification & Validation)


13.1 Lập kế hoạch thẩm định và kiểm tra
13.2 Kiểm tra phần mềm
13.3 Phân tích tĩnh tự động
13.4 Thẩm định và các phương pháp hình thức

Bài 14: Quản lí cấu hình (Configuration Management)


14.1 Quản lí cấu hình là gì
14.2 Tại sao phải quản lí cấu hình
14.3 Nội dung quản lí cấu hình
14.4 Qui trình quản lí cấu hình
14.5 Hướng dẫn xây dựng tài liệu quản lí cấu hình
14.6 Giới thiệu một số công cụ quản trị cấu hình

Bài 15 : Quản lý dự án phần mềm


15.1 Quản lý con người
15.2 Quản lý thay đổi
15.3 Quản lý rủi ro
15.4 Quản lý chất lượng
15.5 Ước lượng chi phí.
15.6 Một số vấn đề quản lý khác.

5. Tài liệu tham khảo:


Sách giáo trình, Slide do giáo viên biên soạn.
Sách tham khảo:
[1]. Ian Sommerville – Software Engineering 7th Ed- Addison wesley
2005
[2]. Leszek A, Bruc Lee Liong – Practical Software Engeneering a case
study approach – Addison wesley 2005 – ISBN 0-321-20465-4

4
[3]. Pressman R.Software Engineering-A Practitioner's Approach,
McGraw 2001
6. Học liệu:
Giáo trình lưu hành nội bộ, sách tham khảo, hệ thống case study mẫu, các
tài nguyên trên Internet.
7. Đánh giá:
Trọng số đánh giá:
- Chuyên cần : 10 %
- Đánh giá quá trình 20 %
- Kết thúc : 70%
Tiêu chí đánh giá:
- Kỹ năng phân tích
- Kỹ năng sử dụng công cụ
Người đánh giá: Giáo viên giảng dạy và người học.
8. Kế hoạch học tập
Học 3 tiết / 1 tuần, kéo dài trong 15 tuần.

You might also like