1.2.5. Mô hình tiến trình phần mềm
Một mô hình tiến trình phần mềm là việc mô tả một tiến trình phát triển phần mềm. Các
mô hình tiến trình có thể bao gồm việc mô tả các hoạt động trong tiến trình phần mềm, mô tả các
sản phần phầm mềm và vai trò của những người liên quan trong quá trình phát triển. Một vài ví
dụ về các kiểu mô hình tiến trình là:
Workflow model: mô hình này chỉ ra thứ tự các hoạt động trong một tiến trình cùng với
đầu vào, đầu ra và sự phụ thuộc. Các hoạt động trong mô hình này mô tả các hoạt động của con
người.
Data-flow/Activity model: các mô hình này mô tả tiến trình như một tập hợp các hoạt
động, mỗi hoạt động thực hiện việc biến đổi một số dữ liệu. Nó chỉ ra rằng dữ liệu đầu vào được
xử lý như thế nào, chẳng hạn như một bản đặc tả được biến đổi để có sản phẩm đầu ra là một bản
thiết kế. Những hoạt động ở đây có thể chỉ ra sự biến đổi được thực hiện bởi con người hoặc máy
tính.
Role/Action model: mô hình này giới thiệu vai trò của những người liên quan trong tiến
trình phần mềm và những hoạt động mà họ phải chịu trách nhiệm.
Hầu hết các mô hình tiến trình đều dựa trên một trong ba cách tiếp cận phát triển phần
mềm dưới đây:
Cách tiếp cận thác nước: mô hình này lấy những hoạt động trên và biểu diễn chúng như
những giai đoạn riêng rẽ, chẳng hạn như: đặc tả yêu cầu, thiết kế phần mềm, phát triển và kiểm
thử Việc phát triển phần mềm tuân theo tiến trình này.
Phát triển lặp và tăng dần: cách tiếp cận này đan xen các hoạt động đặc tả, phát triển và
kiểm thử. Một hệ thống ban đầu được xây dựng rất nhanh từ những đặc tả rất trìu tượng, sau đó
được làm mịn với đầu vào của khách hàng để sinh ra một hệ thống phù hợp với yêu cầu của
khách hàng. Hệ thống này sau đó có thể được bàn giao tới khách hàng sử dụng hoặc tiếp tục phát
triển để nâng cấp cải tiến sản phẩm.
Công nghệ phần mềm dựa trên thành phần (tái sử dụng): kỹ thuật này là việc kết hợp
các thành phần có sẵn để xây dựng thành một ứng dụng mới. Tiến trình phát triển hệ thống chủ
yếu dựa trên việc tích hợp các thành phần này lại với nhau hơn là việc phát triển chúng từ đầu.
183 trang |
Chia sẻ: thanhle95 | Lượt xem: 568 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Công nghệ phần mềm (Mới), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
MỤC LỤC
MỤC LỤC ........................................................................................................................ 1
DANH MỤC BẢNG BIỂU .................................................................................................. 9
DANH MỤC HÌNH ẢNH.................................................................................................. 10
Hình 8-1. Chi phí của việc phát triển phần mềm không có phương pháp 169THUẬT NGỮ VIẾT TẮT
12
LỜI NÓI ĐẦU ................................................................................................ 14
Chương 1: MỞ ĐẦU ....................................................................................... 15
1.1. LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN .......................................... 15
1.1.1. Quá trình tiến hóa của phần mềm .......................................................... 15
1.1.2. Sự ra đời của công nghệ phần mềm ....................................................... 16
1.2. MỘT SỐ KHÁI NIỆM CƠ BẢN TRONG LĨNH VỰC CÔNG NGHỆ
PHẦN MỀM .................................................................................................... 17
1.2.1. Khái niệm phần mềm ............................................................................. 17
1.2.2. Khái niệm công nghệ phần mềm ........................................................... 18
1.2.3. Sự khác nhau giữa công nghệ phần mềm và khoa học máy tính ........... 18
1.2.4. Tiến trình phần mềm .............................................................................. 18
1.2.5. Mô hình tiến trình phần mềm................................................................. 19
1.2.6. Chi phí của công nghệ phần mềm .......................................................... 20
1.2.7. Phương pháp công nghệ phần mềm ....................................................... 20
Bảng 1.1. Các thành phần mô hình hệ thống ........................................................... 20
1.2.8. CASE - Các công cụ trong công nghệ phần mềm ................................. 21
1.2.9. Những thuộc tính phần mềm tốt ............................................................ 21
Bảng 1.2. Các thuộc tính của phần mềm .................................................................. 21
1.2.10. Những thách thức cơ bản của lĩnh vực phát triển phần mềm .............. 22
1.3. MỘT SỐ VẤN ĐỀ VỀ ĐẠO ĐỨC CỦA CÁC CHUYÊN GIA CNTT .. 22
1.3.1. Những mối quan hệ cần phải quản lý của các chuyên gia công nghệ
thông tin ........................................................................................................... 23
1.3.2. Những quy tắc đạo đức của các chuyên gia CNTT .......................... 25
CÂU HỎI ÔN TẬP .......................................................................................... 27
Chương 2: TIẾN TRÌNH PHẦN MỀM .......................................................... 28
2.1. MÔ HÌNH TIẾN TRÌNH PHẦN MỀM ................................................... 28
2.1.1. Mô hình thác nước ................................................................................. 29
2.1.2. Phát triển tiến hóa .................................................................................. 31
2.1.3. Công nghệ phần mềm hướng thành phần .............................................. 32
2.2. TIẾN TRÌNH LẶP .................................................................................... 33
2.2.1. Mô hình gia tăng .................................................................................... 34
2.2.2. Mô hình xoắn ốc .................................................................................... 35
2.3. CÁC HOẠT ĐỘNG TRONG TIẾN TRÌNH ........................................... 36
2
2.3.1. Đặc tả phần mềm.................................................................................... 37
2.3.2. Thiết kế và thực thi phần mềm .............................................................. 38
2.3.3. Thẩm định phần mềm ............................................................................ 40
2.3.4. Cải tiến phần mềm ................................................................................. 42
2.4. RUP – TIẾN TRÌNH SẢN XUẤT PHẦN MỀM CỦA RATIONAL ...... 42
2.5. KỸ NGHỆ PHẦN MỀM CÓ MÁY TÍNH TRỢ GIÚP (CASE) ............. 44
CÂU HỎI ÔN TẬP .......................................................................................................... 45
Chương 3: QUẢN LÝ DỰ ÁN PHẦN MỀM ................................................. 46
3.1. CÁC KHÁI NIỆM CƠ BẢN .................................................................... 46
3.1.1. Khái niệm dự án ..................................................................................... 46
3.1.2. Các đặc trưng của dự án ......................................................................... 47
3.1.3. Quản lý dự án ......................................................................................... 47
3.2. QUẢN LÝ DỰ ÁN THEO PHƯƠNG PHÁP PHÁT TRIỂN TRUYỀN
THỐNG ............................................................................................................ 48
3.2.1. Các hoạt động quản lý dự án .................................................................. 48
3.2.2. Lập kế hoạch dự án ................................................................................ 49
Bảng 3.1. Các kiểu kế hoạch cần cho dự án .............................................................. 50
a) Tiến trình lập kế hoạch dự án ...................................................................... 50
b) Cấu trúc bản kế hoạch dự án ....................................................................... 51
c) Các mốc quan trọng và các sản phẩm bàn giao .......................................... 52
3.2.3. Lập lịch dự án......................................................................................... 52
a) Tiến trình lập lịch ........................................................................................ 52
3.2.4. Phương pháp và công cụ lập lịch ........................................................ 53
Bảng 3-2. Bảng liệt kê các công việc của dự án và đánh dấu .................................. 54
Bảng 3.3. Bảng phân công công việc ........................................................................ 58
3.3. QUẢN LÝ RỦI RO ĐỐI VỚI DỰ ÁN PHÁT TRIỂN PHẦN MỀM .... 58
3.3.1. Khái niệm rủi ro ..................................................................................... 58
Bảng 3.4. Bảng phân loại rủi ro ................................................................................. 59
3.3.2. Tiến trình quản lý rủi ro ......................................................................... 59
a) Xác định rủi ro ............................................................................................. 60
Bảng 3.5. Bảng đánh giá một số tình huống rủi ro................................................... 61
Rủi ro ........................................................................................................................... 61
Khả năng xảy ra .......................................................................................................... 61
Ảnh hưởng .................................................................................................................. 61
Vấn đề tài chính của tổ chức gặp khủng hoảng và phải giảm ngân sách cho dự án ............ 61
Thấp ............................................................................................................................. 61
Rất nghiêm trọng ........................................................................................................... 61
Không thể thành lập một đội ngũ nhân viên có những kỹ năng theo yêu cầu ..................... 61
Cao ............................................................................................................................... 61
3
Rất nghiêm trọng ........................................................................................................... 61
Những nhân viên quan trọng bị ốm và không thể làm việc tại những thời điểm quan trọng 61
Trung bình ..................................................................................................................... 61
Nghiêm trọng ................................................................................................................. 61
Các thành phần phần mềm được sử dụng lại có chứa những khuyết điểm làm hạn chế khả năng
của hệ thống ........................................................................................................................... 61
Trung bình ..................................................................................................................... 61
Nghiêm trọng ................................................................................................................. 61
Việc thay đổi yêu cầu đòi hỏi phải thiết kế lại những công việc chính ................................ 61
Trung bình ..................................................................................................................... 61
Nghiêm trọng ................................................................................................................. 61
Tổ chức được cấu trúc lại và thay đổi người quản lý dự án ............................................... 61
Cao ............................................................................................................................... 61
Nghiêm trọng ................................................................................................................. 61
Cơ sở dữ liệu sử dụng trong hệ thống không thể xử lý nhiều giao dịch tại cùng một thời điểm
.............................................................................................................................................. 61
Thấp ............................................................................................................................. 61
Khủng khiếp................................................................................................................... 61
Ước lượng: thời gian cần thiết để phát triển quá ngắn ...................................................... 61
Cao ............................................................................................................................... 61
Nghiêm trọng ................................................................................................................. 61
Bảng 3.6. Các yếu tố rủi ro......................................................................................... 62
3.4. KẾT THÚC DỰ ÁN ................................................................................. 63
3.5. CẤU TRÚC TÀI LIỆU QUẢN LÝ DỰ ÁN ............................................ 63
CÂU HỎI ÔN TẬP .......................................................................................................... 64
Chương 4: XÁC ĐỊNH VÀ ĐẶC TẢ YÊU CẦU PHẦN MỀM .................... 65
4.1. TỔNG QUAN VỀ YÊU CẦU PHẦN MỀM ........................................... 65
4.1.1. Khái niệm yêu cầu phần mềm ................................................................ 65
4.1.2. Phân loại yêu cầu phần mềm ................................................................. 66
A) YÊU CẦU CHỨC NĂNG ............................................................................. 67
B) YÊU CẦU PHI CHỨC NĂNG ...................................................................... 68
Thuộc tính ................................................................................................................... 70
Thước đo ..................................................................................................................... 70
Tốc độ ........................................................................................................................... 70
Số giao dịch được xử lý/giây ........................................................................................... 70
4
Thời gian trả lời một sự kiện/người dùng ......................................................................... 70
Thời gian làm mới màn hình ........................................................................................... 70
Kích thước ..................................................................................................................... 70
M Bytes ......................................................................................................................... 70
Dung lượng bộ nhớ ROM/RAM ........................................................................................ 70
Tính dễ sử dụng ............................................................................................................. 70
Thời gian huấn luyện ...................................................................................................... 70
Số màn hình trợ giúp ...................................................................................................... 70
Độ tin cậy ...................................................................................................................... 70
Thời gian trung bình kiểm soát lỗi ................................................................................... 70
Phần trăm thời gian hệ thống không thực hiện ................................................................. 70
Tỷ lệ lỗi xảy ra ............................................................................................................... 70
Tính sẵn sàng ................................................................................................................ 70
Sức kháng cự ................................................................................................................. 70
Thời gian để khởi động lại sau một lỗi ............................................................................. 70
Phần trăm của các sự kiện phát sinh lỗi ........................................................................... 70
Xác suất của việc sai lệch dữ liệu khi có lỗi ...................................................................... 70
Tính khả chuyển ............................................................................................................ 70
Lựa chọn ngôn ngữ cho giao diện phần mềm ................................................................... 70
Lựa chọn hệ thống cho việc cài đặt phần mềm ................................................................ 70
HÌNH 4.4. VÍ DỤ VỀ CÁC YÊU CẦU PHI CHỨC NĂNG ................................... 71
4.2. TIẾN TRÌNH KỸ NGHỆ YÊU CẦU ....................................................... 72
4.2.1. Khảo sát hệ thống và phân tích tính khả thi ........................................... 72
4.2.2. Tiến trình phát hiện và phân tích yêu cầu .............................................. 72
4.2.3. Các phương pháp phát hiện yêu cầu ...................................................... 74
4.2.4. Các kỹ thuật phân tích yêu cầu .............................................................. 76
A) TIẾP CẬN YÊU CẦU ĐỊNH HƯỚNG CÁCH NHÌN (VIEWPOINT) ............... 76
B) KỸ THUẬT XÁC ĐỊNH YÊU CẦU HƯỚNG CÁCH NHÌN VORD (VIEWPOINT ORIENTED
REQUIREMENT DEFINITION) ...................................................................... 77
C) KỸ THUẬT PHÂN TÍCH YÊU CẦU DỰA TRÊN MÔ HÌNH ............................ 77
D) CÁC CÁCH BIỂU DIỄN CỦA MÔ HÌNH PHÂN TÍCH .................................. 79
Bảng 4.2. Biểu diễn mô hình nghiệp vụ theo 2 cách tiếp cận .................................. 79
4.2.5. Ví dụ phân tích phát hiện yêu cầu .......................................................... 80
5
A) VÍ DỤ PHÂN TÍCH HƯỚNG CẤU TRÚC ..................................................... 80
HÌNH 4.7. BIỂU ĐỒ NGỮ CẢNH CỦA HỆ THỐNG .......................................... 80
Bảng 4.3. Danh sách các hồ sơ dữ liệu sử dụng ....................................................... 80
.............................................................................................................................................. 81
Bảng 4.4. Mô tả chi tiết chức năng rút tiền .............................................................. 81
4.3. ĐẶC TẢ YÊU CẦU PHẦN MỀM ........................................................... 82
4.3.1. Khái niệm ............................................................................................... 82
4.3.2. Các phương pháp đặc tả ......................................................................... 83
4.3.3. Cấu trúc tài liệu đặc tả ........................................................................... 84
Chương 5: UML – XÂY DỰNG VÀ THIẾT KẾ CÁC MÔ HÌNH HỆ
THỐNG ............................................................................................................ 87
5.1. GIỚI THIỆU VỀ UML ............................................................................. 87
5.1.1. Mô hình hóa hệ thống phần mềm .......................................................... 87
5.1.2. Lịch sử hình thành và phát triển ............................................................ 88
5.1.2. UML và các giai đoạn phát triển hệ thống ............................................. 89
5.2. MỘT SỐ MÔ HÌNH UML DÙNG TRONG PHÂN TÍCH VÀ THIẾT KẾ
.......................................................................................................................... 89
5.2.1. Mô hình ngữ cảnh .................................................................................. 89
5.2.2. Mô hình trường hợp sử dụng (USE-CASE) ...................................... 91
Bảng 5.1. Bảng các thông tin mô tả Use-case .......................................................... 93
5.2.3. Mô hình lớp đối tượng ........................................................................... 93
5.2.4. Mô hình tuần tự (Sequence diagram)..................................................... 98
5.2.5. Mô hình trạng thái máy ..................................................................... 100
Chương 6: THIẾT KẾ PHẦN MỀM ............................................................. 103
6.1. TỔNG QUAN VỀ THIẾT KẾ PHẦN MỀM ......................................... 103
6.1.1. Giới thiệu chung ................................................................................... 103
a. Khái niệm thiết kế ...................................................................................... 103
b. Vai trò của thiết kế ..................................................................................... 104
c. Một số khái niệm cơ bản trong thiết kế ...................................................... 104
6.1.2. Thiết kế phần mềm ............................................................................... 105
a. Tiến trình thiết kế ....................................................................................... 105
b. Các hoạt động và sản phẩm thiết kế .......................................................... 106
6
c. Biểu diễn thiết kế ........................................................................................ 107
d. Các giai đoạn thiết kế ................................................................................ 107
6.1.3. Các chiến lược và phương pháp thiết kế .............................................. 108
a. Thiết kế hướng chức năng .......................................................................... 108
b. Thiết kế hướng đối tượng .............................