Hình 5.14. Mô hình quản lý 134
Hình 5.15. Mô hình phát tin 135
Hình 5.16. Mô hình điều khiển ngắt 135
Hình 5.17. Mô hình luồng dữ liệu 136
Hình 5.18. Quy trình thiết kế giao diện 143
Hình 5.19. Màn hình chính phần mềm quản lý ngân hàng câu hỏi 151
Hình 5.20. Màn hình dùng sơ đồ 152
Hình 5.21. Màn hình giới thiệu phần mềm Microsoft HTML Help Image Editor 152
Hình 5.22. Màn hình giới thiệu phần mềm Quản lý ngân hàng câu hỏi thi 153
Hình 5.23. Mẫu màn hình đăng nhập 153
Có thể bạn quan tâm!
- Công nghệ phần mềm - Phạm Hùng Phú, Nguyễn Văn Thẩm Biên soạn - 1
- Nhân Tố Con Người Trong Ngành Công Nghiệp Phần Mềm
- Mối Liên Hệ Giữa Dữ Liệu Và Xử Lý
- Vai Trò Của Người Dùng Trong Giai Đoạn Phát Triển Phần Mềm
Xem toàn bộ 305 trang tài liệu này.
Hình 5.24. Màn hình đăng nhập hệ thống quản lý dữ liệu 154
Hình 5.25. Màn hình đăng nhập Gmail 154
Hình 5.26. Mẫu màn hình đăng nhập với khóa bí mật 154
Hình 5.27. Màn hình đăng nhập với Password và Secret Key 154
Hình 5.28. Đăng nhập sử dụng SafeNet 155
Hình 5.29. Màn hình đăng nhập sử dụng SafeNet 155
Hình 5.30. Các ứng dụng bảo mật 155
Hình 5.31. RSA SecurID 156
Hình 5.32. Hybird USB Smartcard Token 156
Hình 5.33. Quản lý đăng nhập hệ thống 157
Hình 5.34. Khóa bí mật được đồng bộ với Server VPN 158
Hình 5.35. Mẫu màn hình nhập dữ liệu dạng danh sách 159
Hình 5.36. Màn hình nhập thể loại sách 160
Hình 5.37. Mẫu màn hình nhập dữ liệu dạng hồ sơ 160
Hình 5.38. Màn hình nhập hồ sơ học sinh 161
Hình 5.39. Màn hình nhập thông tin sách mới 161
Hình 5.40. Màn hình nhập thông tin đội bóng 161
Hình 5.41. Mẫu 1-Màn hình nhập dữ liệu dạng phiếu 162
Hình 5.42. Mẫu 2-Màn hình nhập dữ liệu dạng phiếu 162
Hình 5.43. Mẫu 3-Màn hình nhập dữ liệu dạng phiếu 162
Hình 5.44. Mẫu 4-Màn hình nhập dữ liệu dạng phiếu 163
Hình 5.45. Màn hình nhập phiếu mượn sách 163
Hình 5.46. Màn hình nhập danh mục tên nước 163
Hình 5.47. Màn hình nhập dữ liệu hồ sơ sử dụng Tab Control 164
Hình 5.48. Màn hình nhập dữ liệu khen thưởng sử dụng Tab Control 164
Hình 5.49. Màn hình nhập danh mục tên nước 164
Hình 5.50. Màn hình nhập dữ liệu hóa đơn 165
Hình 5.51. Màn hình nhập dữ liệu hóa đơn liên kết đến màn hình khác 165
Hình 5.52. Màn hình nhập dữ liệu khách hàng bằng cách Import 165
Hình 5.53. Màn hình tính lương 166
Hình 5.54. Màn hình lập phiếu mua hàng 166
Hình 5.55. Kết quả tra cứu dùng thông báo 167
Hình 5.56. Kết quả tra cứu dạng danh sách 167
Hình 5.57. Màn hình tra cứu dùng nhiều danh sách 168
Hình 5.58. Màn hình tra cứu dùng nhiều danh sách 168
Hình 5.59. Màn hình tra cứu dùng cây danh sách 169
Hình 5.60: Mẫu màn hình thông báo 170
Hình 5.61. Màn hình thông báo 170
Hình 5.62. Mẫu màn hình tra cứu 171
Hình 5.63. Ví dụ về màn hình tra cứu 171
Hình 5.64. Màn hình tra cứu tiếp nhận bưu điện, bưu phẩm 172
Hình 5.65. Mẫu màn hình tra cứu với hình thức cây 172
Hình 5.66. Màn hình cây tra cứu nhân viên 173
Hình 5.67. Màn hình cây tra danh mục nhân viên 173
Hình 5.68. Màn hình tra cứu tích hợp 173
Hình 6.1. Kiến trúc Case 193
Hình 6.2. Các công cụ theo dòi các yêu cầu 195
Hình 6.3. Mức độ áp dụng mẫu trong quá trình phát triển phần mềm 196
Hình 7.1. Qui trình kiểm thử phần mềm 207
Hình 7.2. Kiểm thử màn hình đăng nhập 209
Hình 7.3. Kiểm thử Black-box 213
Hình 7.4. Chương trình tìm số lớn nhất và nhỏ nhất trong 3 số 216
Hình 7.5. Kiểm thử White-box 221
Hình 7.6. Kiểm thử đột biến 228
Hình 7.7. Kiểm thử Top-down 229
Hình 7.8. Kiểm thử Top-down 230
Hình 8.1. So sánh chi phí cho các giai đoạn phát triển phần mềm 245
Hình 8.2. Bảo trì không cấu trúc và bảo trì có cấu trúc 248
Hình 8.3. Chi phí của việc phát triển phần mềm không có phương pháp 250
Hình 8.4. Cơ cấu bảo trì 251
Hình 8.5. Báo cáo các lỗi phần mềm 251
Hình 8.6. Báo cáo thay đổi phần mềm 252
Hình 9.1. Các thành phần cơ bản trong bản đóng gói 263
Hình 9.2. Các thành phần trong ứng dụng Window và Web 263
Hình 9.3. Tổ chức cây thư mục 264
Hình 9.4. Đóng gói sử dụng DLL 265
Hình 9.5. Đóng gói có dữ liệu sử dụng DLL 265
Hình 9.6. Đóng gói sử dụng OCX 266
Hình 9.7. Giao diện chính của InstallShield 267
Hình 9.8. Tạo dự án 267
Hình 9.9. Các giai đoạn đóng gói 268
Hình 9.10. Thiết lập thông tin ứng dụng 268
Hình 9.11. Thiết lập kiến trúc ứng dụng 269
Hình 9.12. Thiết lập thuộc tính cho đặc tính cài đặt 269
Hình 9.13. Thiết lập tập tin ứng dụng 270
Hình 9.14. Thêm tệp tin ứng dụng vào bộ cài đặt 270
Hình 9.15. Thêm thành công tập tin ứng dụng 271
Hình 9.16. Tạo Short cut cho ứng dụng 271
Hình 9.17. Thiết lập bản quyền ứng dụng 272
Hình 9.18. Chọn tệp tin *reg 272
Hình 9.19. Thiết lập các lựa chọn 273
Hình 9.20. Đóng gói dữ liệu đi kèm ứng dụng 273
Hình 9.21. Chọn tệp tin Script 274
Hình 9.22. Tạo bộ đĩa cài đặt 274
Hình 9.23. Các loại tài liệu hướng dẫn 275
CÁC DANH MỤC BẢNG
Bảng 2.1. Các phép đánh giá tính hiệu quả 41
Bảng 2.2. Các phép đánh giá tính năng suất 42
Bảng 2.3. Các phép đánh giá tính an toàn 45
Bảng 2.4. Các phép đánh giá tính thỏa mãn 47
Bảng 3.1. Lựa chọn chiến lược cài đặt 71
Bảng 4.1. Mối liên hệ giữa các kiểu ứng dụng và các đặc tính dữ liệu 92
Bảng 4.2. Phỏng vấn có cấu trúc và không có cấu trúc 97
Bảng 4.3. Các hành vi của người được phỏng vấn và hoạt động tương ứng 98
Bảng 4.4. Tính phù hợp của các kỹ thuật thu thập yêu cầu với đặc tính của dữ liệu... 102 Bảng 4.5. Tính phù hợp của các kỹ thuật thu thập dữ liệu với các kiểu ứng dụng 104
Bảng 4.6. Các công việc của cán bộ phân tích 115
Bảng 5.1. Kết quả của các giai đoạn thiết kế theo khía cạnh kỹ thuật 126
Bảng 5.3. Danh mục các loại màn hình 147
Bảng 5.4. Danh sách các biến cố 176
Bảng 5.5. Danh sách các hàm xử lý 176
Bảng 5.6. Các công việc của cán bộ thiết kế 178
Bảng 6.1. Ngôn ngữ lập trình và ứng dụng 193
Bảng 6.2. Một số CASE thông dụng 197
Bảng 7.1. Kiểm thử màn hình đăng nhập 210
Bảng 7.2. Bảng liệt kê các lớp tương đương 214
Bảng 7.3. Bảng liệt kê các lớp tương đương của chương trình nhập điểm 215
Bảng 7.4. Bảng liệt kê các giá trị cận để kiểm thử 217
Bảng 7.5. Các trường hợp xảy ra với EP và BVA 218
Bảng 7.6. Các trường hợp kiểm thử với EP và BVA 218
Bảng 7.7. Các ký hiệu trong đồ thị nguyên nhân – kết quả 219
Bảng 7.8. Các qui tắc trong bảng quyết định 220
Bảng 7.9. Các nguyên nhân và kết quả của bài toán tính thuế 220
Bảng 7.10. Bảng quyết định của bài toán tính thuế 221
Bảng 7.11. Công việc của cán bộ kiểm thử phần mềm 234
xii Phạm Hùng Phú-Nguyễn Văn Thẩm
LỜI NÓI ĐẦU
Ngày nay, tất cả các nước phát triển đều phụ thuộc chủ yếu vào các hệ thống phần mềm. Và càng ngày càng có nhiều hệ thống được kiểm soát bởi phần mềm. Do đó, việc xây dựng và bảo trì hệ thống phần mềm một cách hiệu quả là yêu cầu cần thiết đối với nền kinh tế toàn cầu và của từng quốc gia. Môn học Công nghệ phần mềm là môn học cung cấp cho sinh viên các kiến thức cơ bản về lý thuyết và thực tiễn của công nghệ phần mềm. Để giúp sinh viên các ngành thuộc lĩnh vực Công nghệ thông tin trường Đại học Sư phạm Kỹ thuật Nam Định học tốt hơn môn học này và vận dụng để triển khai xây dựng một phần mềm hoàn thiện thì việc xuất bản “Tập bài giảng Công nghệ phần mềm” là rất cần thiết.
Tập bài giảng được chia làm 9 chương: Chương 1. Tổng quan về Công nghệ phần mềm Chương 2. Tiêu chuẩn của sản phẩm phần mềm Chương 3. Quản lý dự án
Chương 4. Xác định và phân tích yêu cầu Chương 5. Thiết kế phần mềm
Chương 6. Cài đặt phần mềm
Chương 7. Kiểm tra chất lượng phần mềm
Chương 8. Bảo trì phần mềm và quản lý thay đổi phần mềm Chương 9. Đóng gói phần mềm
Mỗi chương trong tập bài giảng đều hệ thống hóa các kiến thức cơ bản, cần thiết. Tương ứng với mỗi nội dung kiến thức đều có các ví dụ minh họa cụ thể, gán với các ứng dụng thực tiễn. Đặc biệt, cuối tập bài giảng, tác giả đưa ra một số bài tập làm thêm để sinh viên vận dụng củng cố lại kiến thức và kỹ năng.
Với phần lý thuyết chi tiết, đầy đủ được trình bày một cách khoa học, logic và phần bài tập để củng cố kiến, chúng tôi hy vọng rằng tập bài giảng này sẽ mang lại cho bạn đọc nhiều điều bổ ích.
Trong quá trình biên soạn, tập bài giảng không tránh khỏi những sai sót, rất mong đồng nghiệp và các em sinh viên góp ý kiến để tập bài giảng ngày càng được hoàn thiện hơn. Mọi sự đóng góp ý kiến xin gửi về Văn phòng Khoa Công nghệ thông tin-Trường Đại học Sư phạm Kỹ thuật Nam Định-Phường Lộc Hạ-Tp Nam Định.
Nhóm biên soạn
Phạm Hùng Phú- Nguyễn Văn Thẩm
Chương 1
TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM
Khái niệm về công nghệ phần mềm được đưa ra lần đầu tiên vào năm 1968 tại hội nghị thảo luận về khủng hoảng phần mềm. Công nghệ phần mềm đề cập tới các lý thuyết, phương thức và công cụ để xây dựng phần mềm chuyên nghiệp, mang lại lợi nhuận cao.
Trong chương đầu tiên, chúng ta sẽ tìm hiểu về một số khái niệm cơ bản có liên quan tới phần mềm và công nghệ phần mềm. Từ đó, chúng ta có những hiểu biết cơ bản để tiếp tục nghiên cứu các chương tiếp theo. Ngoài ra, quy trình xây dựng phần mềm đòi hỏi phải tuân thủ các nguyên tắc vô cùng chặt chẽ. Do đó, chúng ta sẽ tìm hiểu về những yêu cầu căn bản đối với một kỹ sư phần mềm.
1.1. Các khái niệm cơ bản
Các giai đoạn phát triển sản phẩm phần mềm
- Giai đoạn 1 (từ 1950 đến giữa 1960): Xử lý theo lô, xử lý tập trung, ít xử lý phân tán, ít sửa đổi phần mềm.
- Giai đoạn 2 (từ giữa 1960 đến giữa 1970)
+ Hệ thống đa chương trình và đa nguời dùng
+ Bắt đầu cuộc “khủng hoảng” phần mềm
- Giai đoạn 3 (từ giữa 1970 đến giữa 1980)
+ Sự phát triển và sử dụng rộng rãi máy tính cá nhân
+ Sự phát triển của các công ty phần mềm
- Giai đoạn 4 (từ giữa 1980 đến nay)
+ Phần cứng ngày càng phát triển
+Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày càng phức tạp, công nghệ ngày càng phát triển…
Ngày nay, sự phát triển phần mềm ngày càng thực sự khó kiểm soát được; các dự án phần mềm thường kéo dài và vượt quá chi phí cho phép. Những nhà lập trình chuyên nghiệp phải cố gắng hoàn thành các dự án phần mềm một cách có chất lượng, đúng hạn trong chi phí cho phép. Cuộc khủng hoảng phần mềm xảy ra là do:
- Số lượng các phần mềm tăng vọt (do sự phát triển của phần cứng: tăng khả năng, giá thành hạ)
- Có quá nhiều khuyết điểm trong các phần mềm được dùng trong xã hội:
+ Thực hiện không đúng yêu cầu (tính toán sai, không ổn định…)
+ Thời gian bảo trì nâng cấp quá lâu, chi phí cao, hiệu quả thấp
+ Khó sử dụng, thực hiện chậm
+ Không chuyển đổi dữ liệu giữa các phần mềm
- Việc tăng vọt số lượng phần mềm là điều hợp lý và sẽ còn tiếp diễn
- Các khuyết điểm của phần mềm có nguồn gốc chính từ phương pháp, cách thức và quy trình tiến hành xây dựng phần mềm:
+ Cảm tính: mỗi người theo một phương pháp riêng
+ Thô sơ, đơn giản: chỉ tập trung vào việc lập trình mà ít quan tâm đến các công việc cần làm khác (khảo sát hiện trạng, phân tích yêu cầu, thiết kế…)
+ Thủ công: còn thiếu các công cụ hỗ trợ quy trình phát triển.
Mục tiêu của công nghệ phần mềm là tạo ra những phần mềm tốt, giảm đến tối thiểu những may rủi có thể gây cho các người liên quan. Trong quá trình đề cập, chúng ta sử dụng các thuật ngữ:
Phần mềm là gì ? Được xem xét ở hai góc độ:
Phần mềm dưới góc nhìn của người sử dụng: Chương trình thực thi được trên máy tính hoặc các thiết bị chuyên dụng khác. Nhằm hỗ trợ cho các nhà chuyên môn trong từng lĩnh vực chuyên ngành thực hiện tốt hơn các thao tác nghiệp vụ của mình.
- Môi trường triển khai phần mềm:
+ Máy tính: Desktop, Laptop, Tablet PC…
+ Thiết bị chuyên dụng: Thiết bị di động: PDA, Pocket PC, ĐTDĐ; Các thiết bị chuyên dụng khác: set-top box, router,...
- Hỗ trợ làm tốt hơn các thao tác nghiệp vụ:
+ Tin học hóa nghiệp vụ hiện đang làm thủ công
+ Cải tiến chức năng nghiệp vụ hiện đang được thực hiện trên máy tính
+ Đề ra, xây dựng và triển khai chức năng nghiệp vụ mới
Phần mềm dưới góc nhìn của chuyên viên Tin học. Đây là một hệ thống bao gồm ba thành phần cơ bản:
- Thành phần giao tiếp (Thành phần giao diện):
+ Cho phép tiếp nhận các yêu cầu về việc sử dụng phần mềm từ người sử dụng, từ các thiết bị thu thập dữ liệu, hoặc từ các phần mềm khác.
+ Cho phép trình bày các kết quả của việc thực hiện các yêu cầu cho người dùng (kết quả của công việc khi thực hiện trên máy tính) hoặc điều khiển hoạt động các thiết bị điều khiển (đóng/mở cửa, dừng hay cho chuyển động…)
+ Một cách tổng quát, thành phần giao tiếp cho phép nhập/xuất thông tin cùng với hình thức trình bày/giao tiếp tương ứng.
+ Mục tiêu chính của thành phần này là đưa thông tin từ thế giới thực bên ngoài phần mềm (người sử dụng, các thiết bị, phần mềm khác…) vào bên trong, hoặc ngược lại.
- Thành phần xử lý:
+ Kiểm tra tính hợp lệ của thông tin nguồn được cung cấp từ người dùng theo các quy định ràng buộc trong thế giới thực. Ví dụ: chỉ cho mượn tối đa 3 quyển sách, mỗi lớp học không quá 50 học sinh,…
+ Tiến hành xử lý cho ra kết quả mong đợi theo quy định tính toán có sẵn trong thế giới thực hoặc tiến hành xử lý theo thuật giải tự đề xuất.
+ Việc xử lý dựa trên thông tin nguồn từ người sử dụng cung cấp. Ví dụ: tính nghiệm phương trình bậc 2 dựa trên các hệ số nhập vào hoặc dữ liệu lưu trữ có sẵn; tính tiền phạt dựa trên ngày trả sách được nhập vào và thông tin về loại sách đã được lưu trữ.
+ Việc xử lý cho ra kết quả có thể dùng để xuất cho người dùng xem qua thành phần giao diện, hay lưu trữ lại qua thành phần lưu trữ, hoặc cả hai.
+ Một cách tổng quát, thành phần xử lý là hệ thống chuyên xử lý tính toán, biến đổi dữ liệu. Dùng thông tin nguồn từ thành phần giao diện (chức năng nhập) hay thành phần dữ liệu (chức năng đọc); Kiểm tra tính hợp lệ (chức năng kiểm tra) và sau đó tiến hành xử lý (chức năng xử lý) - nếu cần thiết. Để cho ra kết quả sẽ được trình bày thông qua thành phần giao diện (chức năng xuất) hoặc lưu trữ lại trong thành phần dữ liệu (chức năng ghi)
- Thành phần lưu trữ (thành phần dữ liệu):
+ Cho phép lưu trữ lại (chức năng ghi) các kết quả đã xử lý. Ví dụ: Việc mượn sách đã được kiểm tra hợp lệ, bảng lương tháng đã được tính trên bộ nhớ phụ với tổ chức lưu trữ được xác định trước; Tập tin có cấu trúc, tập tin nhị phân, cơ sở dữ liệu
+ Cho phép truy xuất lại (chức năng đọc) các dữ liệu đã lưu trữ phục vụ cho các hàm xử lý tương ứng
+ Một cách tổng quát thành phần dữ liệu là hệ thống chuyên đọc ghi dữ liệu cùng với mô hình tổ chức lưu trữ dữ liệu tương ứng. Mục tiêu chính của thành phần này là chuyển đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ. Do đó, cần được xây dựng để thực hiện theo yêu cầu của người sử dụng.
Phần mềm (software): là một tập hợp các câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình, nhằm tự động thực hiện một số các chức năng giải quyết một bài toán nào đó.
Công nghệ (engineering): là cách sử dụng các công cụ, các kỹ thuật trong cách giải quyết một vấn đề nào đó.
Công nghệ phần mềm (Software Engineering): là việc áp dụng các công cụ, các kỹ thuật một cách hệ thống trong việc phát triển các ứng dụng dựa trên máy tính. Đó chính là việc áp dụng các quan điểm, các tiến trình có kỷ luật và lượng hoá được, có bài bản và hệ thống để phát triển, vận hành và bảo trì phần mềm.