Đề cương Bài giảng Phát triển hệ thống thông tin quản lý bao gồm 6 chương với các nội dung đại cương về phát triển hệ thống thông tin quản lý; khảo sát hiện trạng và xác định yêu cầu nghiệp vụ hệ thống thông tin quản lý; phân tích hệ thống về chức năng; phân tích hệ thống thông tin quản lý về mặt dữ liệu; thiết kế hệ thống thông tin quản lý; cài đặt - kiểm thử - triển khai và bảo trì hệ thống thông tin quản lý.
Trang 1PHÁT TRIỂN HỆ THỐNG THÔNG TIN
QUẢN LÝ
Hưng yên, năm 2016
Trang 2MỤC LỤC
DANH MỤC HÌNH VẼ 7
DANH MỤC TỪ VIẾT TẮT VÀ TỪ TIẾNG ANH 9
LỜI NÓI ĐẦU 10
CHƯƠNG 1: ĐẠI CƯƠNG VỀ PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ 12
1.1 Khái niệm về hệ thống thông tin quản lý 12
1.1.1 Hệ thống 12
1.1.2 Hệ thống thông tin 16
1.1.3 Hệ thống thông tin quản lý 17
1.1.4 Cấu trúc của hệ thống thông tin quản lý 19
1.2 Các phương pháp tiếp cận phân tích và thiết kế hệ thống thông tin 22
1.2.1 Ba thành phần của một phương pháp 22
1.2.2 Một số phương pháp phân tích và thiết kế 23
1.2.3 Những khó khăn đối với các phương pháp phân tích và thiết kế 29
1.2.4 Phương pháp được đề cập trong tài liệu 30
1.3 Vòng đời phát triển hệ thống 30
1.3.1 Khởi tạo và lập kế hoạch dự án 30
1.3.2 Phân tích hệ thống 32
1.3.3 Thiết kế hệ thống 32
1.3.4 Triển khai hệ thống 33
1.3.5 Vận hành và bảo trì 33
1.4 Sự phát triển hệ thống 34
1.4.1 Chu trình phát triển hệ thống 34
1.4.2 Mô hình hóa hệ thống 40
1.5 Các phương pháp xây dựng hệ thống thông tin 43
1.5.1 Phương pháp sử dụng phần mềm đóng gói 43
1.5.2 Phát triển hệ thống do người sử dụng thực hiện 45
1.5.3 Phương pháp thuê bao 45
1.6 Xây dựng thành công HTTT 46
1.6.1 Khái niệm về HTTT được xây dựng thành công 46
1.6.2 Những vấn đề đặt ra của việc xây dựng HTTT 46
1.6.3 Tự động hóa các hoạt động phát triển hệ thống 47
1.6.4 Quản lý dự án phát triển HTTT 47
1.7 Sơ đồ tổng quát quá trình phân tích thiết kế HTTT 47
1.8 Vấn đề con người trong phát triển hệ thống thông tin quản lý 49
1.8.1 Các vấn đề hệ thống 49
Trang 31.8.2 Các nhu cầu tổ chức 49
1.8.3 Nhu cầu của người sử dụng 49
1.8.4 Vai trò và đào tạo các nhà quản lý 50
1.8.5 Các nhân viên trong tổ chức 50
1.8.6 Vai trò của phân tích viên hệ thống 51
Câu hỏi cuối chương 53
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐNNH YÊU CẦU NGHIỆP VỤ HỆ THỐNG THÔNG TIN QUẢN LÝ 54
2.1 Khảo sát, thu thập thông tin của hệ thống 54
2.1.1 Quá trình khảo sát 54
2.1.2 Nguồn thông tin và phương pháp thu thập thông tin phù hợp 55
2.2 Một số phương pháp khảo sát hiện trạng 57
2.2.1 Nghiên cứu tài liệu 58
2.2.2 Phương pháp quan sát 59
2.2.3 Phương pháp phỏng vấn 60
2.2.4 Phương pháp bảng hỏi 65
2.2.5 Phương pháp mẫu bản ghi 66
2.3 Các quy trình điều tra 66
2.4 Phê phán hiện trạng 67
2.5 Xác định yêu cầu hệ thống 68
2.5.1 Xác đinh phạm vi và các hạn chế 68
2.5.2 Phác họa các giải pháp và cân nhắc tính khả thi 69
2.5.3 Phương pháp hiện đại để xác định yêu cầu 70
2.6 Các khái niệm sử dụng trong khảo sát 72
2.6.1 Chức năng – công việc 72
2.6.2 Các thủ tục và quy tắc nghiệp vụ 72
2.6.3 Các hồ sơ tài liệu – các thực thể dữ liệu 73
2.6.4 Lưu đồ quy trình nghiệp vụ hệ thống 73
2.7 Các bước thực hiện sau khảo sát 80
2.7.1 Xử lý sơ bộ kết quả khảo sát 80
2.7.2 Tổng hợp kết quả khảo sát 80
2.7.3 Hợp thức hóa kết quả khảo sát 81
Bài tập cuối chương 2 82
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG 84
3.1 Tổng quan 84
3.2 Phân tích từ trên xuống 86
3.2.1 Biểu đồ phân cấp chức năng 86
Trang 43.2.2 Ý nghĩa của mô hình 87
3.2.3 Xây dựng mô hình 87
3.2.4 Hai dạng khác nhau của biểu đồ phân rã chức năng 89
3.3 Phân tích phạm vi hệ thống 90
3.3.1 Ma trận yếu tố quyết định thành công - chức năng 90
3.3.2 Ma trận thực thể-chức năng 91
3.4 Xây dựng dòng thông tin nghiệp vụ 93
3.4.1 Định nghĩa và ký pháp 93
3.4.2 Một số quy tắc vẽ biểu đồ luồng dữ liệu 97
3.5 Phát triển các biểu đồ luồng dữ liệu của một ứng dụng 101
3.5.1 Các loại biểu đồ luồng dữ liệu khác nhau 101
3.5.2 Biểu đồ ngữ cảnh của hệ thống 102
3.5.3 Biểu đồ luồng dữ liệu mức đỉnh 104
3.5.4 Biểu đồ luồng dữ liệu mức dưới đỉnh 107
3.5.5 Phát triển các biểu đồ là một quá trình lặp 108
3.6 Sử dụng biểu đồ luồng dữ liệu để phân tích 109
3.7 Chuyển DFD mức vật lý sang DFD mức logic 109
3.7.1 Khái niệm DFD mức vật lý và mức logic 109
3.7.2 Phương pháp chuyển đổi 110
3.7.3 Chuyển DFD từ hệ thống cũ sang hệ thống mới 112
3.8 Kiểm chứng tính đúng mô hình DFD 114
3.8.1 Định nghĩa cơ bản 114
3.8.2 Quan hệ tiền định 117
3.8.3 Kiểm chứng hình thức sơ đồ luồng dữ liệu 118
Bài tập chương 3 123
CHƯƠNG 4: PHÂN TÍCH HỆ THỐNG THÔNG TIN QUẢN LÝ VỀ MẶT DỮ LIỆU 124
4.1 Một số phương tiện sơ đẳng để diễn tả và quản lý dữ liệu 124
4.1.1 Mã hoá dữ liệu 124
4.1.2 Từ điển dữ liệu 126
4.2 Mô hình thực thể - liên kết 128
4.2.1 Sử dụng mô hình quan niệm bậc cao cho việc thiết kế cơ sở dữ liệu 128
4.2.2 Các thành phần cơ bản của mô hình ER 129
4.2.3 Ví dụ về thiết kế mô hình thực thể liên kết 138
4.3 Mô hình quan hệ 141
4.3.1 Các khái niệm của mô hình quan hệ 144
4.3.2 Các ràng buộc quan hệ, lược đồ cơ sở dữ liệu quan hệ 148
4.3.3 Chuyển đổi mô hình ER thành mô hình quan hệ 154
Trang 54.4 Phụ thuộc hàm và chu6n hóa cơ sở dữ liệu quan hệ 157
4.4.1 Các nguyên tắc thiết kế lược đồ quan hệ 158
4.4.2 Các phụ thuộc hàm 161
4.4.3 Các dạng chu(n dựa trên khóa chính 167
4.4.4 Một số ví dụ về chu(n hoá 172
Bài tập chương 4 175
CHƯƠNG 5: THIẾT KẾ HỆ THÔNG THÔNG TIN QUẢN LÝ 176
5.1 Tổng quan về giai đoạn thiết kế 176
5.2 Thiết kế tổng thể chương trình 177
5.2.1 Phân định hệ thống máy tính – thủ công 177
5.2.2 Phân định các hệ thống con máy tính 180
5.3 Thiết kế cơ sở dữ liệu 181
5.3.1 Thiết kế cơ sở dữ liệu vật lý 181
5.3.2 Thiết kế các trường 182
5.3.4 Thiết kế các file 182
5.3.5 Các hệ quản lý tệp tin 183
5.3.6 Các cấu trúc dữ liệu và phương thức truy nhập 183
5.3.7 Thiết kế kiểm soát các tệp tin 184
5.3.8 Xác định quy mô file và không gian lưu trữ cần thiết 184
5.4 Thiết kế giao diện nguời sử dụng 186
5.4.1 Mục đích 186
5.4.2 Các chỉ dẫn về thiết kế giao diện người dùng 187
5.4.3 Thiết kế đầu vào hệ thống 188
5.4.4 Thiết kế đầu ra 189
5.4.5 Thiết kế thủ tục người dùng 190
5.4.6 Thiết kế đối thoại trên màn hình 191
5.5.Thiết kế các kiểm soát 192
5.5.1 Tổng quan thiết kế kiểm soát 192
5.5.2 Nghiên cứu việc kiểm tra các thông tin thu nhập hay xuất ra 192
5.5.3 Các giai đoạn tiếp cận kỹ thuật phân tích các kiểm soát 193
5.5.4 Các kỹ thuật bảo mật 194
5.5.5 Phân biệt quyền riêng tư 194
5.5.6 Nghiên cứu khả năng gián đoạn chương trình và sự phục hồi 194
5.6 Thiết kế chi tiết chương trình 195
5.6.1 Tổng quan thiết kế chương trình 195
5.6.2 Mô đun chương trình 196
5.6.3 Thiết kế cấu trúc 197
5.6.4 Công cụ để diễn tả cấu trúc chương trình - Lược đồ cấu trúc chương trình 197
5.6.5 Chất lượng của lược đồ cấu trúc (LCT) 199
5.6.7 Đóng gói thành modun tải 208
5.6.8 Đặc tả các mô đun 208
Trang 65.6.8 Lập các mẫu thử (test) 210
5.7 Hồ sơ thiết kế 211
5.7.1 Mô hình dữ liệu tổng thể 212
5.7.2 Thiết kế chi tiết dữ liệu 212
5.7.3 Mô hình chức năng tổng thể 212
5.7.4 Thiết kế chi tiết chức năng 212
5.7.5 Thiết kế thủ tục và kết nối giữa chức năng và cơ sở dữ liệu 213
Bài tập chương 5 214
CHƯƠNG 6: CÀI ĐẶT - KIỂM THỬ - TRIỂN KHAI VÀ BẢO TRÌ HỆ THỐNG THÔNG TIN QUẢN LÝ 215
6.1 Cài đặt chương trình 215
6.1.1 Thành lập tổ cài đặt 215
6.1.2 Lựa chọn ngôn ngữ lập trình 215
6.1.3 Soạn thảo chương trình cho từng module xử lý 215
6.2 Kiểm thử chương trình 215
6.2.1 Các bước kiểm thử 216
6.2.2 Vai trò của người dùng trong giai đoạn kiểm thử 220
6.3 Triển khai hệ thống 221
6.3.1 Lên lịch và phân công nhiệm vụ 221
6.3.2 Thu mua và cài đặt phần cứng 223
6.3.3 Thay đổi hệ thống 225
6.3.4 Đ(y nhanh quá trình chuyển đổi 228
6.4 Lập tài liệu hướng dẫn sử dụng 228
6.5 Bảo trì – Nâng cấp hệ thống 229
3.2.5 Ví dụ xây dựng sơ đồ phân cấp chức 234
TÀI LIỆU THAM KHẢO 237
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1 Mô hình vận hành tổng quát của hệ thống 16
Hình 1.2 Mô hình xử lý thông tin của hệ thống 16
Hình 1.3 Dòng thông tin trong tổ chức nhiều cấp 18
Hình 1.4 Lĩnh vực quản lý của một phân hệ 19
Hình 1.5 Hệ thống thông tin của công ty có 3 phân hệ 20
Hình 1.6 Sơ đồ ghi sổ kế toán chi tiết NVL phương pháp sổ số dư 22
Hình 1.7 Mô hình hình thác nước của vòng đời phát triển hệ thống 31
Hình 1.8 Chu trình hình thác nước 35
Hình 1.9 Chu trình phát triển hình V 36
Hình 1.10 Chu trình phát triển tăng trưởng 36
Hình 1.11 Chu trình xoắn ốc 37
Hình 1.12 Quy trình phát triển hệ thống theo chu trình hình xoắn ốc 38
Hình 1.13 Chu trình lắp ráp từng thành phần 39
Hình 1.14: Các hướng mô hình hoá 42
Hình 1.15 Mô hình chung sử dụng phần mềm đóng gói 44
Hình 1.16 Sơ đồ tổng quát quá trình phân tích, thiết kế hệ thốn thông tin 49
Hình 2.1 Sơ đồ quy trình điều tra hiện trạng hệ thống thông tin 55
Hình 2.2 Lưu đồ nghiệp vụ hệ thống trong lúc phỏng vấn 64
Hình 3.1 Các giai đoạn phân tích thiết kế hệ thống thể hiện trên hai mức độ mô hình hóa 85
Hình 3.2 Mô hình giả lập sơ đồ phân rã chức năng 87
Hình 3.3 Sơ đồ phân cấp chức năng chu trình kế toán doanh thu 89
Hình 3.4 Quá trình phân rã sơ đồ luồng dữ liệu 100
Hình 3.5: Biểu đồ ngữ cảnh hệ thống quản lý chu trình kế toán doah thu 104
Hình 3.6: Biểu đồ luồng dữ liệu mức 1 (mức đỉnh) chu trình kế toán doanh thu 105
Hình 3.7 Sơ đồ luồng dữ liệu mức dưới đỉnh cho chức năng “Quản lý đơn hàng” 108
Hình 3.8 Sơ đồ ngữ cảnh hệ cung ứng vật tư 111
Hình 3.9 Sơ đồ luồng dữ liệu mức 111
Hình 3.10 Biểu đồ luồng dữ liệu mức logic hệ cung ứng vật tư 112
Hình 3.11 Biểu đồ luồng dữ liệu logic hệ cung ứng vật tư 114
Hình 3.12: Mô hình kiểm chứng tín dụng của khách hàng (D31) 115
Trang 8Hình 3.13 Một tiến trình cha (a); một sơ đồ phân rã từ tiến trình cha (b) 119
Hình 4.1 Các bước chính của việc phân tích và thiết kế phần mềm 129
Hình 4.2 Biểu diễn thực thể và các thuộc tính 133
Hình 4.3 Lược đồ và sơ đồ tham chiếu 153
Hình 4.4 Sơ đồ quá trình chu(n hóa 172
Hình 5.1 Phân định máy tính và thủ công 177
Hình 5.2 Sơ đồ mức đỉnh hệ thống chọn nhà cung cấp 178
Hình 5.3 Phân rã thành các chức năng nhỏ hơn 179
Hình 5.4a và 5.4b Mô hình tương tác giữa các mô đun 201
Hình 5.5 Tương tác dữ liệu vòng vèo: “bảng ghi chính chuyển qua mođun tương tác nhãn không cần thiết “Trích [2]" 202
Hình 5.6 Ba mô đun tương tác nhãn không cần thiết [2] 203
Hình 5.7 Hai module tương tác điều khiển [2] 203
Hình 5.8 Xác định trung tâm biến đổi [Trích 2] 205
Hình 6.1 Các bước kiểm tra hệ thống 217
Hình 6.2 Mạng CPM của bảng 6.1 223
Hình 6.3 Chuyển đổi song song 227
Hình 6.4 Chuyển đổi theo pha 227
Trang 9DANH MỤC BẢNG BIỂU
Bảng 2.1 Phân loại các phương pháp điều tra 58
Bảng 2.2: Các phương pháp hiện đại để xác định yêu cầu của hệ thống 70
Bảng 3.1: sơ đồ tổ chức xí nghiệp dạng công ty 90
Bảng 3.2 Ma trận quyết định yếu tố thành công - chức năng 91
Bảng 3.3: Tóm tắt ký pháp trên sơ đồ luồng dữ liệu 96
Bảng 4.1 Kiểu thực thể và tập thực thể 132
Bảng 4.2: Quan hệ SINHVIEN 145
Bảng 6.1 Biểu đồ Gantt cho việc triển khai hệ thống 223
Bảng 6.2 Biểu đồ CPM dạng bảng cho việc triển khai 224
DANH MỤC TỪ VIẾT TẮT VÀ TỪ TIẾNG ANH
Từ viết tắt tiếng việt
hoặc tiếng anh
vụ kinh doanh
doanh
đồ dòng dữ liệu)
HFD Hierachical function diagram Sơ đồ phân cấp chức năng
system
Hệ thống thông tin lý
Trang 10LỜI NÓI ĐẦU
Công nghệ thông tin ở nước ta đang bước vào thời kỳ triển khai rộng rãi các ứng dụng của tin học cho các tổ chức, các xí nghiệp, và các tập đoàn kinh tế Hệ thống thông tin tin học là một ứng dụng đầy đủ nhất các thành tựu của công nghệ thông tin áp dụng cho tổ chức Trong thời đại thông tin, không một tổ chức nào không áp dụng tin học Việc áp dụng tin học cho tổ chức thì việc xây dựng hệ thống thông tin là tất yếu, nhu cầu này càng gia tăng khi tổ chức càng phát triển và hội nhập với thế giới bên ngoài Nhu cầu xây dựng hệ thống thông tin ngày càng tăng cả về quy mô và sự phức tạp của hệ thống Đặc thù riêng của hệ thống thông tin không giống với các sản phNm phần mềm khác là sản phNm sau không giống với sản phNm trước nó tạo ra, với quy mô và độ phức tạp của
nó ngày càng tăng Do vậy việc phân tích và thiết kế trở thành một yêu cầu bắt buộc để
có được một hệ thống tốt, đầy đủ và hoàn thiện về chức năng
Việc xây dựng một hệ thống thông tin quản lý cho các tổ chức, doanh nghiệp như công việc đi xây nhà, người phân tích và thiết kế hệ thống chính là kiến trúc sư vẽ ra bản
vẽ cho ngôi nhà Để có cái nhìn tổng thể về hệ thống thông tin và cũng như xây dựng được các phần mềm dù lớn hay nhỏ thì bạn phải có kỹ năng phân tích và thiết kế hệ thống Dù bạn là lập trình viên hay quản lý dự án phát triển hệ thống thông tin thì bạn cũng phải có kỹ năng phân tích và thiết kế hệ thống, chí ít là đọc được bản vẽ về hệ thống Phân tích và thiết kế hệ thống có những phương pháp khác nhau, công cụ và kỹ thuật khác nhau, tuy nhiên để nắm bắt được điều này đòi hỏi phải có kinh nghiệm Nhưng
về cơ bản thì việc phân tích và thiết kế, cần có bốn kỹ năng chủ yếu sau mà bất kỳ ai làm công nghệ thông tin cũng phải biết: Kỹ năng phân tích, kỹ năng công nghệ thông tin, kỹ năng về nghiệp vụ và kỹ năng về giao tiếp Trong lĩnh vực sản xuất phần mềm, nếu chỉ là lập trình viên thì bạn chỉ là chú ong thợ lập trình mà thôi Đó là công đoạn gần cuối trong quy trình xây dựng một hệ thống thông tin quản lý Chính các phân tích viên hệ thống là những kiến trúc sư nhằm phân tích các vấn đề để hình thành nên hệ thống thông tin, rồi thiết kế thành các module chức năng, giao diện chương trình,… Và khi có các module chức năng, với các đặc tả liên quan đến đầu vào, đầu ra, quy trình xử lý nghiệp vụ, kèm theo là dữ liệu kiểm thử, rồi mới giao cho lập trình viên viết các mã lệnh chương trình theo một ngôn ngữ chỉ định nào đó để thực hiện các chức năng này trên hệ thống máy tính
Trang 11Hiện nay ở Việt nam, do hệ thống đào tạo chưa chú trọng đúng mức nên chỉ đào tạo ra các lập trình viên, chứ các kiến trúc sư phần mềm của chúng ta rất ít, hầu hết sinh viên khi ra trường không biết thiết kế các phần mềm, mà chỉ là người gia công phần mềm, nếu có thì cũng chỉ là những sản phNm nhỏ, tính ứng dụng không được rộng rãi và phổ biến Do vậy, kỹ năng phân tích và thiết kế hệ thống thông tin là bắt buộc học đối với sinh viên, ít nhất cũng phải biết đọc các bản vẽ phần mềm, và hơn thế nữa là có thể tham gia vào các dự án phát triển hệ thống thông tin khi ra trường
Tuy nhiên, do thời lượng môn học có hạn, nên trong tài liệu này chỉ trình bày các giai đoạn phát triển phần mềm với một phương pháp, kỹ thuật và công cụ để phân tích và thiết kế là hướng cấu trúc Mặt khác, ở nội dung không thể trình bày toàn bộ chi tiết các bước liên quan đến toàn bộ quá trình xây dựng một hệ thống Tuy nhiên cũng đã nêu được các bước cơ bản để nắm được các bước xây dựng và có cái nhìn nhất định về việc phát triển một hệ thống thông tin, còn rất nhiều vấn đề đặt ra mà trong nội dung môn học này không thể giải quyết được hết, do vậy sinh viên cần phải tiếp tục tìm hiểu và nghiên cứu các vấn đề sau này
Xin chân thành cảm ơn các đồng nghiệp trong bộ môn tin học và các em sinh viên trong khoa đã đóng góp ý kiến để bản thảo hoàn thiện hơn, đặc biệt xin chân thành cảm
ơn thầy Tạ Minh Châu - Trưởng khoa Hệ thống thông tin quản lý; Trường Đại học Tài chính – Quản trị kinh doanh đã tận tình động viên trong quá trình hoàn thiện bài giảng
Trang 12Chương 1: ĐẠI CƯƠNG VỀ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
QUẢN LÝ
Phát triển hệ thống thông tin (HTTT) là một quá trình tạo ra một hệ thống thông tin cho tổ chức Quá trình đó bắt đầu từ khi nêu vấn đề cho đến khi đưa hệ thống vào vận hành trong tổ chức Với lịch sử nhiều năm phát triển HTTT, những cơ sở lý luận phát triển HTTT đã không ngừng hoàn thiện và bổ sung cho phù hợp với sự phát triển về công nghệ và các điều kiện môi trường đã biến đổi; đặc biệt là yêu cầu của người dùng Trong chương này đưa ra các khái niệm tiếp cận từ lý thuyết hệ thống, lý thuyết thông tin, thông tin quản lý, các quyết định của các cấp quản lý, hệ thống thông tin, cấu trúc hệ thống thông tin, quy trình xây dựng và phát triển một hệ thống thông tin, các trường phái mô hình hóa cho việc phát triển HTTT, đưa ra quy trình tổng quát để xây dựng HTTT, có khái niệm về việc xây dựng HTTT thành công, và vấn đề con người trong việc xây dựng HTTT
1.1 Khái niệm về hệ thống thông tin quản lý
1.1.1 Hệ thống
Hệ thống: Hệ thống là tập hợp các phần tử có mối quan hệ ràng buộc lẫn nhau
cùng hoạt động nhằm đạt được mục đích chung của hệ thống
Ví dụ 1.1. Như hệ thống mặt trời, thì các phần tử của hệ thống này là các hành tinh
có mối quan hệ chặt chẽ bằng lực hấp dẫn nhằm mục đích chung là duy sự ổn định và cân bằng, đồng thời các hành tinh duy trì được quỹ đạo của mình trong hệ mặt trời Một ví dụ khác là hệ thống doanh nghiệp, xét về một khía cạnh nào đó thì các bộ phận trong doanh nghiệp là các phần tử, mỗi bộ phận lại có chức trác nhiệm vụ riêng của mình và có mối liên hệ với các bộ phận khác và có mối liên hệ với bên ngoài làm đầu ra hay đầu vào doanh nghiệp, các bộ phận của doanh nghiệp hoạt động hoàn thành nhiệm vụ được doanh nghiệp giao và kết với bộ phận khác mục đích cuối cùng là đạt được mục đích chung của doanh nghiệp như giữ vững và ổn định hoạt động của doanh nghiệp, gây dựng thương hiệu cho doanh nghiệp, tạo dựng uy tín trên thị trường,… Cụ thể trong phần này ta đi xem xét hệ thống thông tin
Một hệ thống bao gồm các thành phần và đặc điểm như sau:
Trang 13- Các phần tử có thể rất đa dạng: Các phần tử có thể định tính được như các vật, các bộ phận, đơn vị, các thành viên, các thành phần, …., ví như trong hệ mặt trời thì các phần tử là mặt trời, trái đất, sao thổ, …; như hệ thống triết học thì bao gồm các phạm trù
và các quy luật là những phần tử trừu tượng
- Các phần tử không chỉ đơn giản là các phần tử mang tính chất thuần tuý là phần
tử mà trong mỗi phần tử khi xét đến nó, trong mỗi phần tử đó lại có các phần tử con, điều
đó có nghĩa là hệ thống mang tính phân cấp Khi xét một hệ thống có các phần tử, khi xét các phần tử có thể nó lại là một hệ thống con
Ví dụ 1.2: Hệ thống thông tin quản lý doanh nghiệp, khi xem xét ở mức tổng quát thì phần tử của chúng là các phân hệ như quản lý nhân sự, quản lý sản xuất, quản lý kinh doanh và marketing, phân hệ kế toán và tài chính Và khi các xét chi tiết các phân hệ nà thì chính nó lại trở thành một hệ thống con như hệ thống thông tin quản lý nhân sự, hệ thống thông tin quản lý sản xuất,…
b Thuộc tính của các phần tử
Thuộc tính: Là bản chất cố hữu của phần tử trong những điều kiện bình thường, chỉ thay đổi khi điều kiện thay đổi, các phần tử dù bản chất gì đều có các tính chất hoặc các đặc trưng, gọi là thuộc tính, mọi thuộc tính đều biểu hiện bề ngoài cho sự tồn tại của phần tử, để người ta có thể quan sát và biết được.
Phần tử ít nhiều cũng có tác động nên sự hoạt động của hệ thống dưới nhiều khía cạnh khác nhau Sự hoạt động của hệ thống bao giờ cũng làm thay đổi các đặc trưng của phần trong nó, việc chọn lựa phần tử trong hệ thống là hết sức quan trọng bởi vì nó có thể tác động tích cực nên hệ thống, cũng có thể tác động tiêu cực nên hệ thống
c Quan hệ giữa các phần tử
Quan hệ giữa các phần tử: Các phần tử có mối quan hệ tương tác lẫn nhau theo cách thức và quan hệ đã định trước do luật của hệ thống quy định, mối quan hệ này có thể thúc đ(y hệ thống hoạt động tốt hơn, có thể làm cho hệ thống hoạt động kém hiệu quả.
Ví dụ 1.3: Ta coi nhà trường là một hệ thống, ở một mức độ tổng quát thì trong nhà trường có các phần tử là ban giám hiệu, các phòng ban, các khoa, các bộ môn, và các trung tâm, mỗi phần tử này đều có tác động qua lại lẫn nhau theo một quy chế đã định sẵn do quy định của nhà trường thông qua đó ta gọi là luật của hệ thống Các phần tử này
có thể là tác động tới nhau theo hướng tích cực làm cho hoạt động của hệ thống tốt hơn,
có thể tác động tới nhau tiêu cực làm cho hoạt động của hệ thống trì trệ Giả sử có thêm một khoa mới thì bản chất của phần tử là khác, còn mối quan hệ với ban giám hiệu, với
Trang 14các phòng ban, các bộ môn, các khoa khác đã được quy định từ trước cũng giống với các khoa khác và theo chức năng chuyên môn của khoa (hay bản chất của khoa)
Từ ví dụ 1.3, có thể nói rằng các phần tử trong hệ thống không phải được tập hợp lại một cách ngẫu nhiên, rời rạc, mà giữa chúng luôn tồn tại những quan hệ tạo thành một thể thống nhất, chẳng hạn trong tổ chức một công ty gồm ban quản trị, các giám đốc, các trưởng phòng, nhân viên, giữa họ có nhiều mối quan hệ ràng buộc lẫn nhau như phân cấp, phân quyền làm việc, các quan hệ trong công việc, quan hệ tập thể trong công ty, quan hệ
về quyền lợi, nhiệm vụ, các quan hệ cá nhân…
Có hai loại quan hệ cần phân biệt:
- Quan hệ ổn định lâu dài: Ví dụ vị trí làm việc theo quy định hoạt động thường ngày của một công ty
- Các quan hệ bất thường, tạm thời: Ví dụ trong một doanh nghiệp sản xuất khi mua một máy móc thiết bị mới ở nước ngoài, cần của 3 người đi nước ngoài khảo sát, một người ở phòng kế hoạch, một người ở phòng kế toán – tài chính, một ở bộ phân sản xuất đi, thì trong thời gian đi công tác, ba người này có quan hệ tạm thời trong công việc thNm định mua thiết bị
Do vậy khi xem xét tính tổ chức của hệ thống thì phải xem xét trên phương diện
ổn định lâu dài Tuy nhiên nói ổn định, không nhất thiết hoàn toàn bất biến, tĩnh tại, mà trong các hệ thống lớn chúng ta hay xét vẫn có tính biến động Tuy vậy nó vẫn giữ được
sự ổn định trong tổ chức, trong mối quan hệ giữa các phần tử, cái bản chất, cái đặc trưng của hệ thống
d Thực thể
Thực thể: Là tổng thể các thành phần của hệ thống như phần tử, mối quan hệ giữa các phần tử, ràng buộc giữa các phần tử tạo nên cấu trúc hệ thống một cách thống nhất và hoàn chỉnh.
Ví dụ 1.4: Hệ thống thông tin quản lý nhân sự có các phần tử là hệ thống hoạch định công việc, hệ thống tuyển dụng, hệ thống quản lý hồ sơ nhân sự, hệ thống quản lý đào tạo nhân sự, hệ thống chấm công, hệ thống tính lương, … Giữa các phần tử này có mối quan hệ và ràng buộc lẫn nhau tạo thành một chỉnh thể thống nhất, như hệ thống quản lý công việc cung cấp thông tin về lượng công việc cần phải làm hiện tại và hoạch định lượng công việc tương lai, đồng thời nó cũng cung cấp thông tin về yêu cầu và điều kiện về trình độ và kỹ năng cho mỗi vị trí công việc trong doanh nghiệp để cung cấp thông tin về nhu cầu nhân sự cho hệ thống tuyển dụng, dựa vào đó hệ thống dụng đưa ra báo cáo nhân sự cần phải tuyển dụng mới hay điều chuyển vị trí công việc của các nhân
Trang 15viên, và đầu ra của hệ thống này lại chuyển thông tin về nhân sự cho hệ thống quản lý hồ
sơ nhân sự,… Các phần tử có quan hệ như vậy tạo nên hệ thống quản lý nhân sự hoàn chỉnh và thống nhất thì ta gọi đó là thực thể quản lý nhân sự
Thừa nhận sự tồn tại của những liên hệ giữa các phần tử dẫn tới sự suy luận rằng một hệ thống có cấu trúc thì cấu trúc đó sẽ làm cho nó trở thành một đơn vị hoàn chỉnh thì ta nói rằng đó là thực thể
Hệ thống được tạo nên từ các đơn vị được phối hợp qua bản chất hoặc nghệ thuật Một số khác ưa sử dụng các thuật ngữ: Hợp nhất, tập hợp, tổ hợp, kết hợp hoặc các cụm từ: Rất phức tạp, rất hoà hợp, hợp các bộ phận, thực thể khái niệm và cụ thể Để được coi
là một hệ thống, một tổ hợp phải có liên hệ với môi trường bên ngoài qua các lối vào ra
có ý nghĩa đối với các phần tử của nó
e Mục tiêu của hệ thống
Chúng ta không thể hình dung được một hệ thống mà lại không có mục đích gắn với hoạt động hoặc sự tồn tại của nó Do vậy nhiều tác giả đã không dùng từ cấu trúc nó quá chung chung và họ đã sử dụng từ có tính có ý nghĩa hơn như :”Vận động đi tới sự thống nhất”, “đạt mục tiêu”, “chức năng sống cơ bản”, “tuân theo kế hoạch khi phục vụ mục đích chung”, hoặc như là đích, mục tiêu, đề án Do vậy đơn vị được chọn gắn liền cố hữu với khái niệm hệ thống, không chỉ đơn thuần là một đơn vị tích tụ Tổng thể phải hướng về mục đích chung nên nó khác biệt với một tập hợp các phần tử hoặc các quan
hệ Chẳng hạn, với mọi hệ thống như doanh nghiệp tư nhân, doanh nghiệp nhà nước, cơ quan hành chính mục đích là thích nghi với hoạt động xã hội
f Kiểm soát
Để đảm bảo tính thống nhất và để theo đuổi mục tiêu của mình, hệ thống phải có các liên hệ đặc biệt về liên lạc giữa các phần tử, giữa đầu vào và đầu ra Mỗi khi các phần của đầu ra được sử dụng làm đầu vào thì tức là đã thiết lập được sự kiểm soát
Dù sơ khai hay phức tạp, kiểu kiểm soát này đều cho phép hệ thống tiến hoá Nếu kiểm soát hiểu theo nghĩa tự động hoá, chỉ ra một cách vận hành thuộc về hệ thống máy nội cân bằng và tự điều chỉnh
Quá trình kiểm soát của hệ thống là quá trình hoạt động và tự điều chỉnh của nội hàm hệ thống, mỗi khi các phần tử của hệ thống hoạt động chệch các mục tiêu đề ra, thì việc kiểm soát là điều chỉnh ngay hoạt động của mỗi phần tử để các phần tử đó hoạt động đúng mục tiêu đã định trước
g Giới hạn của một hệ thống: Để phân biệt hệ thống với môi trường, rõ ràng cần phải xác định giới hạn của hệ thống đó về phương diện vật lí hoặc khái niệm Thật không
Trang 16dễ dàng để phân biệt được nó, bởi vậy cần phải thiết lập ra danh sách tất cả các phần tử của hệ thống và chính xác hoá các điểm nối hệ thống với môi trường
hệ thống hoặc bị tác động bởi hệ thống Vậy một hệ thống, hiểu một cách đơn giản, là nơi diễn ra sự biển đổi từ cái vào của môi trường thành cái ra của hệ thống
Hình 1.1 Mô hình vận hành tổng quát của hệ thống
Cũng tương tự như vậy ta đưa vào khái niệm hộp đen qua sơ đồ sau:
Hình 1.2 Mô hình xử lý thông tin của hệ thống
Mỗi hệ thống cũng có thể được phân tích thành các hệ thống con biểu diễn qua sơ
đồ trên vậy một hệ thống phức tạp sẽ được phân rã đầu ra thành từng phần ngày một sơ cấp hơn Phương pháp này đôi khi cho phép ta mô ta mọi thứ mà không thể giải thích ngay mọi thứ Ưu điểm của nó là giải phóng được suy nghĩ và mở ra một viễn cảnh mới
1.1.2 Hệ thống thông tin
Hệ thống thông tin: Hệ thống thông tin được tạo ra từ phần cứng, phần mềm, con
người, thủ tục và dữ liệu Thuật ngữ hệ thống thông tin là cách nói chung các hệ thống hoạt động dựa trên việc xử lý thông tin bằng máy tính cung cấp:
- Khả năng xử lý dữ liệu cho một phòng ban hay cả tổ chức
- Thông tin con người cần để làm quyết định được tốt hơn, có đủ căn cứ hơn Khả năng xử lí dữ liệu là khả năng của hệ thống thao tác và xử lí dữ liệu Hệ thông tin càng phức tạp thì càng cung cấp cho các nhà làm quyết các báo cáo theo yêu cầu và khả năng hỏi thông tin cũng như các báo cáo định kỳ
Trang 17Trong định nghĩa trên liên quan đến một số khái niệm: dữ liệu, thông tin, hoạt
động xử lý thông tin, xử lý, xuất thông tin
a Dữ liệu (data): Là những mô tả về sự vật, con người và sự kiện trong thế giới thực mà chúng ta gặp hàng ngày, dưới các dạng thể hiện khác nhau Một số dạng để thể hiện dữ liệu như văn bản, âm thanh, hình ảnh, biểu tượng, … Ngoài ra còn nhiều khái niệm khác về dữ liệu
b Thông tin (information): Thực tế đã có rất nhiều định nghĩa thông tin khác
nhau, đối với con người, thông tin được xem như một đối tượng thường dùng nhất, thông tin chỉ ra nội dung trao đổi giữa con người và môi trường để làm dễ dàng sự thích nghi của con người Từ các lĩnh vực nghiên cứu khác nhau của thông tin làm nổi bật những mặt sau: Sự phủ định của tính không chắc chắn; quan hệ với sự tự do lựa chọn; duy trì tổ chức; liên hệ, trao đổi
Còn định nghĩa chung chung nhất, thông tin là dữ liệu đã qua xử lý và được đặt vào một ngữ cảnh và một hình thức thể hiện nào đó mà có lợi cho người dùng thông tin
Ví dụ: Thông tin biến động về giá một loại chứng khoán của một tháng nếu ta đặt
nó vào một bảng biểu trên Excel thì rất khó nhận biết rõ ràng sự biến động, nhưng khi ta thể hiện nó bằng một đồ thị thì ta dễ nhận biết sự biến động của về giá của loại chứng khoán đó
c Các hoạt động thông tin: (Information activitties) Là các hoạt động xảy ra trong một HTTT, bao gồm cả việc nắm bắt, xử lý, phân phối, lưu trữ, trình diễn dữ liệu
và kiểm tra các hoạt động trong HTTT
d Xử lý: Xử lý thông tin được hiểu như là hoạt động tác động lên dữ liệu Khả năng xử lí của hệ thống thông tin bao gồm: Sắp xếp, thâm nhập, ghi, sửa đổi dữ liệu trong
bộ nhớ, tổng hợp thông tin dưới dạng cô đọng, thường phản ánh con số dưới dạng tổng thể, lựa chọn; chọn lựa các bản ghi theo tiêu chuNn và thao tác; thực hiện các phép toán
số học và các phép toán logic Trong HTTT có nhiều phương pháp xử lý thông tin, như
xử lý tương tác, xử lý theo lô, xử lý giao dịch, xử lý trực tuyến, xử lý thời gian thực, xử
lý phân tán
e Xuất thông tin: Là cách thể hiện dữ liệu dưới một hình thức thể hiện xác định
mà con người có thể nhận biết được các hình thức thể hiện có thể là hình ảnh, âm thanh
và ký tự
1.1.3 Hệ thống thông tin quản lý
Trước đây, phần lớn các hệ thống tính lương đều là hệ thống xử lí dữ liệu, chủ yếu các giấy ghi thời gian làm việc, in ra séc trả lương và lưu giữ tổng số lương hàng năm và phần khấu trừ Các nhà quản lí bắt đầu yêu cầu những thông tin tốt hơn và nhiều hơn về các nhân viên Kết quả là hệ thống xử lí dữ liệu lương tiến hoá thành hệ thông tin quản lí
Trang 18tài nguyên con người Hệ thông tin quản lí tài nguyên con người có khả năng dự đoán số ngày nghỉ ốm trung bình của nhân viên, điều phối sự cân bằng lương giữa các nhóm nhỏ, giúp cho việc sử dụng hữu hiệu hơn các khả năng có sẵn, và cung cấp các thông tin khác cần cho cả ở mức quản lí – tác nghiệp, sách lược và chiến lược
Hệ thống thông tin quản lí (MIS) không có một khái niệm thống nhất nào cả, MIS được gọi là một phương pháp, một chức năng, cách tiếp cận, tiến trình, tổ chức, hệ thống
và hệ con Vậy ta có thể nêu khái niệm hệ thống thông tin quản lý như sau:
Hệ thống thông tin quản lý (MIS) là một cấu trúc hợp nhất các cơ sở dữ liệu và dòng thông tin làm tối ưu cho việc thu thập, truyền, và trình bày thông tin thông qua tổ chức nhiều cấp có các nhóm thành phần thực hiện nhiều nhiệm vụ để hoàn thành một mục tiêu thống nhất
Khái niệm về dòng thông tin trong tổ chức nhiều cấp (chiến lược, sách lược…) với các thành phần (tài chính, kế toán,…) được minh hoạ trong hình.1.3 Trong thực tế một tổ chức chỉ có thể cố gắng cho việc tối ưu và nhất thể toàn bộ
Hình 1.3 Dòng thông tin trong tổ chức nhiều cấp HTTTQL cũng được định nghĩa theo cách khác: Là một hệ thống tích hợp “người- máy” tạo ra thông tin giúp con người trong sản xuất, quản lý và ra quyết định HTTTQL
sử dụng các thiết bị tin học, các phần mềm, cơ sở dữ liệu, các mô hình phân tích, lập kế
hoạch, kiểm tra và ra quyết định
Đặc trưng của hệ thống thông tin quản lí (MIS)
- MIS hỗ trợ cho chức năng xử lí dữ liệu trong giao dịch và lưu trữ
- MIS dùng cơ sở dữ liệu hợp nhất và hỗ trợ cho nhiều lĩnh vực chức năng
- MIS cung cấp cho các nhà quản lí các cấp tác nghiệp, sách lược, chiến lược khả năng dễ dàng thâm nhập các thông tin theo thời gian nhưng phần lớn là thông tin có cấu trúc
Trang 19- MIS đủ mềm dẻo và có thể thích ứng được với những thay đổi về nhu cầu thông tin trong tổ chức
- MIS cung cấp lớp vỏ an toàn cho hệ thống để giới hạn việc thâm nhập của các nhân viên không có quyền
1.1.4 Cấu trúc của hệ thống thông tin quản lý
HTTTQL gồm 4 thành phần: Các phân hệ hay hệ thống con (sub-systems), dữ liệu (data) cần lưu trữ của hệ thống nghiệp vụ, mô hình (models) và các quy tắc quản lý (management rules)
a Các phân hệ
+ Định nghĩa phân hệ: Phân hệ hay còn gọi là lĩnh vực quản lý (management domain) nhóm các hoạt động có cùng một mục tiêu trong nội bộ một đơn vị, như sản xuất, kinh doanh, hành chính, kế toán, nghiên cứu…
Người ta phân biệt 4 mức sau:
1 Mức giao dịch: các hoạt động thường nhật của tổ chức, hoặc công ty hoặc xí nghiệp
2 Mức tác nghiệp: một số hoạt động thường nhật có thể đưa đến những quyết định ban đầu
Ví dụ: cần có biện pháp xử lý thích hợp khi gặp trường hợp nợ đáo hạn của khách
Hình 1.4 Lĩnh vực quản lý của một phân hệ
Việc phân chia một hệ thống thông tin của một đơn vị thành các phân hệ cần tuân theo tính tổ chức và các quy tắc sau:
- Biểu diễn một hoạt động của đơn vị có mục tiêu xác định
Trang 20- Không dựa theo sự phân chia theo chức năng hoạt động của đơn vị tại một thời điểm nào đó, mà phải dựa trên tính hiệu quả và việc lựa chọn chiến thuật hay chiến lược
- Không căn cứ vào các mối liên hệ phân cấp vì các mối liện hệ này không phải lúc nào cũng mô tả các tình huống quản lý hay sản xuất
- Cần phân tích các dòng bên trong và bên ngoài trong quan hệ với môi trường Để bảo đảm tính độc lập, phân hệ phải được xác định sao cho sự trao đổi thông tin với các lĩnh vực khác là tối thiểu
Ví dụ 1.5: Trong một xí nghiệp, HTTT có thể gồm có các phân hệ: Quản lý vật tư;
Quản lý nguyên nhiên liệu; Quản lý tài sản cố định; Quản lý nhân sự - tiền lương; Quản
lý tài chính kế toán; Quản lý tiêu thụ sản phNm - công nợ khách hàng; Quản lý công văn thư tín hành chính
+ Sự phân chia thành các dự án và áp dụng
Một phân hệ, nếu như là một tập hợp độc lập với các phân hệ khác, thì vẫn còn là một khái niệm tương đối rộng Vì vậy, khi Tin học hóa, cần tiếp tục phân chia các phân
hệ thành phần nhỏ hơn
Ví dụ 1.6: Hệ thống thông tin của công ty có 3 phân hệ
Hình 1.5 Hệ thống thông tin của công ty có 3 phân hệ
Như vậy, mỗi phân hệ, hay lĩnh vực quản lý, đã được phân chia thành các hoạt động riêng rẽ và được xem như là các dự án Mỗi dự án lại có thể tiếp tục được phân chia thành các áp dụng để dễ dàng Tin học hóa
Hệ thống thông tin của công ty
Chức năng
11 Chức năng
12
Trang 21Ví dụ 1.7: Dự án Quản lý lương trong phân hệ Quản lý nhân sự tiền lương có thể
được phân chia thành các áp dụng: Lương sản phNm; lương thời gian (hành chính); bảo hiểm xã hội; bảo hiểm thất nghiệp; phụ cấp nghề nghiệp
b Dữ liệu dùng cho hệ thống nghiệp vụ
Dữ liệu (data) là cơ sở của thông tin Nói đến thông tin là nói đến dữ liệu Dữ liệu nhận giá trị trong một miền xác định
Ví dụ 1.8: Khách hàng (có tên là) Nam, (có địa chỉ là) khu tập thể E7 – Bách khoa
– Hai bà trưng – Hà nội
Mặt hàng bia chai Tiger
Ngày đặt hàng là 05/11/2009, v.v
Các dữ liệu trên đây mặc dù đã được cho giá trị cụ thể nhưng khó biết được mối liên hệ giữa chúng như thế nào Tuy nhiên, khi đặt chúng trong một mối liên hệ, người ta
có được thông tin về yêu cầu đặt hàng của khách hàng
Ví dụ 1.9: Anh Nguyễn Quang A, có địa chỉ là khu tập thể E7 – Bách khoa – Hai
bà trưng – Hà nội đặt mua bia chai Tiger ngày 5/11/2009
Như vậy, khái niệm dữ liệu hẹp hơn khái niệm thông tin Thông tin luôn mang ý nghĩa xác định và gồm nhiều giá trị dữ liệu được tổng hợp
Các dữ liệu có thể được biễu diễn dưới nhiều dạng khác nhau (chữ viết, lời nói ), thể hiện trên giấy (công văn, hóa đơn, thư, fax ) hoặc trên màn hình của máy vi tính, dễ hoặc khó sử dụng tùy theo tính chất hay hoàn cảnh thu nhận
Có ba loại dữ liệu tương ứng với ba tình huống hay gặp khi thu nhận dữ liệu là tình huống chắc chắn, tình huống ngẫu nhiên và tình huống chưa biết trước:
Ví dụ 1.10: Dữ liệu chắc chắn: số ngày công của một công nhân trong tháng, thuế
suất áp dụng cho một mặt hàng
Dữ liệu có tính ngẫu nhiên hay chưa chắc chắn: doanh số dự báo theo phân tích thị trường, thuế suất sẽ áp dụng cho một mặt hàng mới nhập
Dữ liệu chưa biết: rủi ro do các sự cố sản xuất, yếu tố con người
Dữ liệu phục vụ cho hệ thống nghiệp vụ ở đây chính là toàn bộ dữ hệ thống hồ sơ,
sổ sách, hóa đơn, chứng từ và các bảng kê mà hệ thống nghiệp vụ đó sử dụng
c Mô hình quản lý
Mô hình quản lý bao gồm tập hợp các thủ tục, quy trình và phương pháp đặc thù cho mỗi phân hệ Mô hình quản lý và dữ liệu luân chuyển trong phân hệ phục vụ các quy tắc quản lý
Trang 22Ví dụ 1.12: Mô hình ghi sổ kế toán chi tiết NVL theo phương pháp sổ số dư
Hình 1.6 Sơ đồ ghi sổ kế toán chi tiết NVL phương pháp sổ số dư
d Quy tắc quản lý
Quy tắc quản lý, hay công thức tính toán, cho phép biến đổi hoặc xử lý dữ liệu phục vụ cho mục tiêu đã xác định
Ví dụ 1.13: Quy tắc quản lý trong hệ thống tính hàng tồn kho, tính tiền thanh toán,
hoặc tính lương trong hệ thống thông tin quản lý doanh nghiệp
SL_tồn_cuối_kỳ = SL_tồn_đầu_kỳ + SL_nhập_trong_kỳ − SL_xuất_trong_kỳ Số_Tiền_Ttoán = Giá_Đơn_vị × Số_lượng
Lương_Tgian = (Lương_CBản × Số_Ngày_công) / 26
1.2 Các phương pháp tiếp cận phân tích và thiết kế hệ thống thông tin
Phát triển HTTT dựa trên máy tính bắt đầu từ năm 50 của thế kỷ XX Cho đến nay tồn tại nhiều phương pháp phân tích và thiết kế hệ thống Người phát triển hệ thống, trước khi bắt tay vào việc phát triển, phải lựa chọn một phương pháp thích hợp với mình
Phiếu nhập kho
Phiếu xuất kho
Bảng kê xuất
Bảng kuỹ kế nhập
Trang 23các kỹ thuật biến đổi từ luồng dữ liệu vật lý sang biểu đồ luồng dữ liệu lôgic, từ biểu đồ luồng dữ liệu hệ thống cũ sang biểu đồ luồng dữ liệu hệ thống mới
- Một tiến độ triển khai: Bao gồm các bước đi lần lượt, các hoạt động cần làm, các sản phNm qua từng giai đoạn (như tư liệu, mô hình…), các điều hành đối với tiến độ
đó và cách đánh giá chất lượng các kết quả thu được Chẳng hạn phương pháp hướng đối tượng OOA/D của Coad và Yourdon1 triển khai giai đoạn phân tích theo năm tầng lần lượt là: Lớp, đối tượng, cấu trúc, chủ đề, thuộc tính, và dịch vụ: Tiếp đó triển khai giai đoạn thiết kế theo bốn thành phần lần lượt là: Giao diện người máy, lĩnh vực bài toán, quản lý các nhiệm vụ, quản lý các dữ liệu
- Các công cụ trợ giúp: Đó là các phần mềm hỗ trợ cho quá trình mô hình hoá với các khả năng sau: Sản sinh các mô hình và biểu đồ; biến đổi và điều chỉnh nhanh các
mô hình và biểu đồ; kiểm tra cú pháp, sự chặt chẽ và sự đầy đủ; kiểm thử và đánh giá;
mô phỏng và thực hiện mô hình
1.2.2 Một số phương pháp phân tích và thiết kế
Người ta thường phân loại các phương pháp phân tích và thiết kế theo hai hướng chính: Phân tích và thiết kế hướng đối tượng, phân tích và thiết kế có cấu trúc, tuy nhiên
ta có thể phân loại chi tiết và liệt kê các phương pháp như sau:
- Phương pháp hệ thống: Merise (H Tardieu, A Rochfield 1976)
- Các phương pháp chức năng hay có cấu trúc: Gồm có SA (De Marco, 1978); SADT (Douglas T.ross, 1977); SA-RT (Ward – Mellor, 1995; Hatley – Pirbhai, 1987)
- Phương pháp theo sự kiện: State chart (D.harel, 1987); phương pháp tích hợp (O foucaut, O Thiery, 1996)
- Các phương pháp hướng dữ liệu: LCP, LCS (J.D Warnier, 1969 – 1970); E/A (H Tardieu, P Chen, 1976)
- Các phương phháp hướng đối tượng với các hương khác nhau: OOA/RD; OOAD; OMT; OOA/OOD; OOSE; Fusion; SOART; UML _ RUP_Relational Rose (G Booch, J Rumbaugh, I Jacobson, 1997)
Để thực hiện một dự án phát triển phần mềm thì vấn đề quan trọng đầu tiên chắc
sẽ là phải chọn cho một cách thực hiện cho thích hợp Có hai cách tiếp cận cơ bản để phát triển phần mềm: Cách tiếp hướng chức năng (Functional-Oriented) và cách tiếp cận hướng đối tượng (Object-Oriented Approach) Sau đây giới thiệu về hai phương pháp
1 Edward Nash Yourdon sinh ngày 30 tháng 4 năm 1944 là kỹ sư phần mềm người mỹ, người xây dựng máy tính, tác giả và
giảng viên và nhạc trưởng trong các phương pháp công nghệ phần mềm Ông được biết đến như một người dẫn dắt những người phát triển của kỹ thuật phân tích hướng cấu trúc những năm 70 của thế kỷ 20 và là người đồng phát triển phương pháp Yourdon/Whitehead cho phân tích và thiết kế hướng đối tượng vào những năm 80 phương pháp Coad/Yourdon cho phân tích thiết kế hướng đối tượng những năm 90
Trang 24hướng chức năng và hướng đối tượng thường được dùng phổ biến trong giảng dạy về phân tích và thiết kế hệ thống thông tin
1.2.2.1 Phương pháp hướng chức năng
Đây là lối tiếp cận truyền thống của ngành Công nghệ phần mềm Theo lối tiếp cận này, chúng ta quan tâm chủ yếu tới những thông tin mà hệ thống sẽ giữ gìn Chúng ta hỏi người dùng xem họ sẽ cần những thông tin nào, rồi chúng ta thiết kế ngân hàng dữ liệu để chứa những thông tin đó, cung cấp các biểu mẫu để nhập thông tin và in báo cáo
để trình bày các thông tin Nói một cách khác, chúng ta tập trung vào thông tin và không mấy để ý đến những gì có thể xảy ra với những hệ thống đó và cách hoạt động (ứng xử) của hệ thống là ra sao Đây là lối tiệm cận xoay quanh dữ liệu và đã được áp dụng để tạo nên hàng ngàn hệ thống trong suốt nhiều năm trời
Lối tiếp cận xoay quanh dữ liệu là phương pháp tốt cho việc thiết kế ngân hàng dữ liệu và nắm bắt thông tin, nhưng nếu áp dụng cho việc thiết kế ứng dụng lại có thể khiến phát sinh nhiều khó khăn Một trong những thách thức lớn là yêu cầu đối với các hệ thống thường xuyên thay đổi Một hệ thống xoay quanh dữ liệu có thể dễ dàng xử lý việc thay đổi ngân hàng dữ liệu, nhưng lại khó thực thi những thay đổi trong nguyên tắc nghiệp vụ hay cách hoạt động của hệ thống
Phần lớn các chương trình được viết bằng ngôn ngữ lập trình như C, hay Pascal từ
trước đến nay đều được thực hiện theo cách tiếp cận hướng chức năng (Functional Oriented ) hay còn được gọi là cách tiếp cận hướng thủ tục (Procedure-Oriented) Cách
tiếp cận này có những đặc trưng sau:
(i) Dựa vào chức năng, nhiệm vụ là chính
Khi khảo sát, phân tích một hệ thống chúng ta thường tập trung vào các nhiệm vụ
mà nó cần thực hiện Chúng ta tập trung trước hết vào việc nghiên cứu các yêu cầu của
bài toán để xác định các chức năng chính của hệ thống Ví dụ khi cần xây dựng “hệ
thống quản lý thư viện” thì trước hết chúng ta thường đi nghiên cứu, khảo sát trao đổi và phỏng vấn xem những người thủ thư, bạn đọc cần phải thực hiện những công việc gì để phục vụ được bạn đọc và quản lý tốt được các tài liệu Qua nghiên cứu “hệ thống quản lý thư viện”, chúng ta xác định được các nhiệm vụ chính của hệ thống như: Quản lý bạn đọc, cho mượn sách, nhận trả sách, thông báo nhắc trả sách, v.v Như vậy, khi đã nghiên cứu để hiểu rõ được bài toán và xác định được các yêu cầu của hệ thống thì các chức năng, nhiệm vụ của hệ thống gần như là không thay đổi suốt trong quá trình phát triển
tiếp theo ngoại trừ khi cần phải khảo sát lại bài toán Dựa chính vào chức năng (thuật toán) thì dữ liệu sẽ là phụ và biến đổi theo các chức năng Do đó, hệ thống phần mềm
được xem như là tập các chức năng, nhiệm vụ cần tổ chức thực thi
Trang 25(ii) Phân rã chức năng và làm mịn dần theo cách từ trên xuống (Top/Down)
Khả năng của con người là có giới hạn khi khảo sát, nghiên cứu để hiểu và thực thi những gì mà hệ thống thực tế đòi hỏi Để thống trị (quản lý được) độ phức tạp của những vấn đề phức tạp trong thực tế thường chúng ta phải sử dụng nguyên lý chia để trị, nghĩa
là phân tách nhỏ các chức năng chính thành các chức năng đơn giản hơn theo cách từ trên xuống Qui trình này được lặp lại cho đến khi thu được những đơn thể chức năng tương đối đơn giản, hiểu được và thực hiện cài đặt chúng mà không làm tăng thêm độ phức tạp để liên kết chúng trong hệ thống Độ phức tạp liên kết các thành phần chức năng của hệ thống thường là tỉ lệ nghịch với độ phức tạp của các đơn thể Vì thế một vần đề đặt ra là có cách nào để biết khi nào quá trình phân tách các đơn thể chức năng hay còn gọi là quá trình làm mịn dần này kết thúc Thông thường thì quá trình thực hiện phân rã các chức năng của hệ thống phụ thuộc nhiều vào độ phức hợp của bài toán ứng dụng và vào trình độ của những người tham gia phát triển phần mềm Một hệ thống được phân tích dựa trên các chức năng hoặc quá trình sẽ được chia thành các hệ thống con và tạo ra
cấu trúc phân cấp các chức năng.
Chúng ta có thể khẳng định là các chức năng của hầu hết các hệ thống thông tin quản lý đều có thể tổ chức thành sơ đồ chức năng theo cấu trúc phân cấp có thứ bậc
(iii) Các đơn thể chức năng trao đổi với nhau bằng cách truyền tham số hay sử dụng dữ liệu chung
Một hệ thống phần mềm bao giờ cũng phải được xem như là một thể thống nhất,
do đó các đơn thể chức năng phải có quan hệ trao đổi thống tin, dữ liệu với nhau Trong một chương trình gồm nhiều chương trình con (thực hiện nhiều chức năng khác nhau)
muốn trao đổi dữ liệu được với nhau thì nhất thiết phải sử dụng dữ liệu liệu chung hoặc liên kết với nhau bằng cách truyền tham biến Mỗi đơn thể chức năng không những chỉ
thao tác, xử lý trên những dữ liệu cục bộ (Local Data) mà còn phải sử dụng các biến chung, thường đó là các biến toàn cục (Global Data)
Với việc sử dụng những biến toàn cục thì những bất lợi trong quá trình thiết kế và lập trình là khó tránh khỏi Đối với những dự án lớn, phức tạp cần nhiều nhóm tham gia, mỗi nhóm chỉ đảm nhận một số chức năng nhất định và như thế khi một nhóm có yêu cầu thay đổi về dữ liệu chung đó sẽ kéo theo tất cả các nhóm khác có liên quan cũng phải thay đổi theo Kết quả là khi có yêu cầu thay đổi của một đơn thể chức năng sẽ ảnh hưởng tới các chức năng khác và do đó sẽ ảnh hưởng tới hiệu xuất lao động của công việc Mà nhu cầu thay đổi các chức năng khi phân tích là tất yếu và thường rất hay thay đổi
Trang 26(iv) Tính mở (Open) và thích nghi của hệ thống được xây dựng theo cách tiếp cận này là thấp
Hệ thống được xây dựng dựa vào chức năng là chính mà trong thực tế thì chức năng, nhiệm vụ của hệ thống lại hay thay đổi Để đảm bảo cho hệ thống thực hiện được công việc theo yêu cầu, nhất là những yêu cầu về mặt chức năng đó lại bị thay đổi là công việc phức tạp và rất tốn kém Ví dụ: giám đốc thư viện yêu cầu thay đổi cách quản
lý bạn đọc hoặc hơn nữa, yêu cầu bổ sung chức năng theo dõi những tài liệu mới mà bạn đọc thường xuyên yêu cầu để đặt mua, v.v Khi đó vấn đề bảo trì hệ thống phần mềm không phải là vấn đề dễ thực hiện Nhiều khi có những yêu cầu thay đổi cơ bản mà việc sửa đổi không hiệu quả và vì thế đòi hỏi phải phân tích, thiết kế để xây dựng lại mới hệ thống
Các bộ phận của hệ thống phải sử dụng biến toàn cục để trao đổi với nhau, do vậy, khả năng thay đổi, mở rộng của chúng và của cả hệ thống là bị hạn chế Như trên đã phân tích, những thay đổi liên quan đến các dữ liệu chung sẽ ảnh hưởng tới tất cả các bộ phận liên quan Do đó, một thiết kế tốt phải dễ hiểu và sửa đổi chỉ có hiệu ứng cục bộ
(v) Khả năng tái sử dụng (Reuse) bị hạn chế và hầu như không hỗ cơ chế kế thừa (Inheritance)
Để có độ thích nghi tốt thì một thành phần phải là tự chứa Muốn là tự chứa hoàn toàn thì một thành phần không nên dùng nhiều các thành phần ngoại lai Tuy nhiên, điều này lại mâu thuẫn với kinh nghiệm nói rằng các thành phần hiện có nên là dùng lại được Vậy là cần có một sự cân bằng giữa tính ưu việt của sự dùng lại các thành phần (ở đây chủ yếu là cấu trúc và các hàm) và sự mất mát tính thích ứng được của chúng Các thành
của hệ thống phải kết dính (Cohension) nhưng phải tương đối lỏng để dễ thích nghi Một trong cơ chế chính hỗ trợ để dễ có được tính thích nghi là kế thừa thì cách tiếp cận
hướng chức năng lại không hỗ trợ Đó là cơ chế biểu diễn tính tương tự của các thực thể, đơn giản hoá định nghĩa những khái niệm tương tự từ những sự vật đã được định nghĩa trước trên cơ sở bổ sung hay thay đổi một số các đặc trưng hay tính chất của chúng Cơ chế này giúp chúng ta thực hiện được nguyên lý tổng quát hoá và chi tiết hoá các thành phần của hệ thống phần mềm
1.2.2.2 Phương pháp hướng đối tượng
Để khắc phục được những vấn đề tồn tại nêu trên thì chúng ta cần phải nghiên cứu phương pháp, mô hình và công cụ mới, thích hợp để phát triển phần mềm Mô hình hướng đối tượng có thể giúp chúng ta vượt được khủng hoảng trong công nghệ phần mềm và hy vọng sẽ đưa ra được những sản phNm phần mềm thương mại chất lượng cao,
Trang 27tin cậy, dễ mở rộng, dễ thích nghi, cường tráng và phù hợp với yêu cầu của khách hàng Cách tiếp cận hướng đối tượng có những đặc trưng sau:
(i) Đặt trọng tâm vào dữ liệu (thực thể)
Khi khảo sát, phân tích một hệ thống chúng ta không tập trung vào các nhiệm vụ
như trước đây mà tìm hiểu xem nó gồm những thực thể nào Thực thể hay còn gọi là đối tượng, là những gì như người, vật, sự kiện, khái niệm, v.v mà chúng ta đang quan tâm,
hay cần phải xem xét và xử lý Ví dụ, khi xây dựng “Hệ thống quản lý thư viện” thì trước
hết chúng ta tìm hiểu xem nó gồm những lớp đối tượng hoặc những khái niệm nào Đó là các lớp Sách, Tạp_Chí, Bạn_Đọc, v.v
(ii) Xem hệ thống như là tập các thực thể, các đối tượng
Để hiểu rõ về hệ thống chúng ta phân tách hệ thống thành các đơn thể đơn giản
hơn Quá trình này được lặp lại cho đến khi thu được những đơn thể tương đối đơn giản,
dễ hiểu và thực hiện cài đặt chúng mà không làm tăng thêm độ phức tạp khi liên kết chúng trong hệ thống Các đối tượng trong hệ thống liên quan với nhau theo các quan hệ:
kết hợp (Association), kết nhập (Aggregation), kế thừa (Inheritance) và sự phụ thuộc
(Dependency) Phương pháp hướng đối tượng cho phép đặc tả hết được tất cả các mối quan hệ của các đối tượng đúng với bản chất tự nhiên như trong thế giới thực
(iii) Các lớp đối tượng trao đổi với nhau bằng các thông điệp (Message)
Theo nghĩa thông thường thì lớp (Class) là nhóm một số người, vật có những đặc
tính tương tự nhau hoặc có những hành vi ứng xử giống nhau Trong mô hình đối tượng,
khái niệm lớp là cấu trúc mô tả hợp nhất các thuộc tính (Attributes), hay dữ liệu thành phần (Data Member) thể hiện các đặc tính của mỗi đối tượng và các phương thức (Methods), hay hàm thành phần (Member Function) thao tác trên các dữ liệu riêng và là giao diện trao đổi với các đối tượng khác để xác định hành vi của chúng trong hệ thống
Khi có yêu cầu dữ liệu để thực hiện một nhiệm vụ nào đó, một đối tượng sẽ gửi một thông điệp (gọi một phương thức) cho đối tượng khác Đối tượng nhận được thông điệp yêu cầu sẽ phải thực hiện một số công việc trên các dữ liệu mà nó sẵn có hoặc lại tiếp tục yêu cầu những đối tượng khác hỗ trợ để có những thông tin và trả lời cho đối tượng yêu
cầu Với phương thức xử lý như thế thì một chương trình hướng đối tượng thực sự có thể không cần sử dụng biến toàn cục nữa
(iv) Tính mở và thích nghi của hệ thống cao hơn
Hệ thống được xây dựng dựa vào các lớp đối tượng nên khi có yêu cầu thay đổi thì chỉ thay đổi những lớp đối tượng có liên quan hoặc bổ sung thêm một số lớp đối tượng mới (có thể kế thừa từ những lớp có trước) để thực thi những nhiệm vụ mới mà hệ thống
Trang 28cần thực hiện Ví dụ: Giám đốc thư viện yêu cầu bổ sung chức năng theo dõi những tài
liệu mới mà bạn đọc thường xuyên yêu cầu để đặt mua, ta có thể bổ sung thêm lớp mới
để theo dõi yêu cầu: lớp Yêu_Cầu
Trong các chương trình hướng đối tượng có thể không cần sử dụng biến toàn cục nên mọi sửa đổi chỉ có hiệu ứng cục bộ
(v) Hỗ trợ sử dụng lại và cơ chế kế thừa
Các lớp đối tượng được tổ chức theo nguyên lý bao gói (Encapsulation) và che giấu thông tin (Information Hidding) tăng thêm hiệu quả của kế thừa và độ tin cậy của hệ thống Các ngôn ngữ lập trình hướng đối tượng như: C++, Java , C#, Delphi, v.v đều hỗ
trợ quan hệ kế thừa
Ưu điểm chính của phương pháp hướng đối tượng:
- Đối tượng là cơ sở để kết hợp các đơn thể có thể sử dụng lại thành hệ thống lớn hơn, tạo ra những sản phNm có chất lượng cao Đây cũng là cơ sở để thực hiện theo công nghệ thành phần
- Qui ước truyền thông điệp giữa các đối tượng đảm bảo cho việc mô tả các giao diện giữa các đối tượng thành phần bên trong hệ thống và những hệ thống bên ngoài trở nên dễ dàng hơn Điều đó giúp cho việc phân chia những dự án lớn, phức tạp để phân tích, thiết kế theo cách chia nhỏ bài toán thành các lớp đối tượng hoàn toàn tương ứng với quan điểm hướng tới lời giải phù hợp với thế giới thực một các tự nhiên
- Nguyên lý bao gói, che giấu thông tin hỗ trợ cho việc xây dựng những hệ thống thông tin an toàn và tin cậy
- Nguyên lý kế thừa dựa chính vào dữ liệu rất phù hợp với ngữ nghĩa của mô hình trong cài đặt, không những có thể giảm thiểu được thời gian thực hiện mà còn làm cho hệ thống có tính mở, tin cậy hơn
- Phương pháp hướng đối tượng, nhất là nguyên lý kế thừa cho phép dễ dàng xác định những bộ phận cơ bản, xây dựng các lớp như là các đơn vị cơ sở của hệ thống và sử dụng ngay khi chúng mà không cần phải hoàn thiện, không đòi hỏi phải thực hiện đầy đủ tất cả các chức năng (đơn thể mở) và sau đó có thể mở rộng đần và không làm ảnh hưởng tới các đơn thể khác, không đòi hỏi phải thiết kế lại
- Định hướng đối tượng cung cấp những công cụ, môi trường mới, hiệu quả để phát triển phần mềm theo hướng công nghiệp và hỗ trợ để tận dụng được những khả năng kế thừa, sử dụng lại ở phạm vi diện rộng để xây dựng được những hệ thống phức tạp, nhạy cảm như: hệ thống động, hệ thống thời gian thực, hệ thống đa phương tiện, v,v
Trang 29- Xoá bỏ được hố ngăn cách giữa các pha phân tích, thiết kế, cài đặt và kiểm định trong quá trình xây dựng phần mềm Nhiều kết quả (sản phNm) của các giai đoạn trước có thể sử dụng ngay ở những giai đoạn sau
Hơn nữa, để hiểu rõ về những vấn đề cần mô hình hoá thì ngoài những khái niệm
cơ sở của phương pháp luận thì cần phải hiểu rõ các tính chất, những đặc trưng của những hệ thống, phương pháp đó Với mục đích đó, chúng ta có thể tìm hiểu thêm một số kết quả nghiên cứu về những khả năng đặc tả và việc xử lý thông tin của các hệ thống, tập trung vào các hệ thống hướng đối tượng, nghiên cứu các hành vi, các tính chất đảm bảo tính nhất quán thông tin của mô hình hệ thống và những vấn đề chuyển đổi tương đương giữa các mô hình dữ liệu
1.2.3 Những khó khăn đối với các phương pháp phân tích và thiết kế
Trong bất kỳ một phương pháp phân tích và thiết kế nào người ta cũng gặp ba thách thức chính sau:
- Sự phức tạp của lĩnh vực bài toán và trách nhiệm của hệ thống: Lĩnh vực
của bài toán thường bao gồm những nghiệp vụ phức tạp và xa lạ đối với người phát triển
hệ thống, mặt khác trách nhiệm của hệ thống cũng hết sức đa dạng đòi hỏi phương pháp
mô hình hoá được dùng phải giúp cho người phát triển hệ thống nhanh chóng và dễ dàng chế ngự được sự phức tạp, nắm bắt được các tình huống và vấn đề
- Yêu cầu trao đổi giữa người với người: Trong quá trình khảo sát, phân tích và
thiết kế hệ thống có nhiều thành phần tham gia như người dùng hệ thống, các nhà quản
lý, các nhà phân tích và thiết kế, các nhân viên lập trình,… Họ làm ở những lĩnh vực khác nhau, do vậy khi mô tả và đề cập đến một vấn đề họ sử dụng các ngôn từ và công cụ khác nhau, điều đó dẫn đến hiểu lầm bản chất một vấn đề Để điều này không xảy ra thì một phương pháp phân tích và thiết kế phải dùng các công cụ, các khái niệm và các mô hình một cách khoa học, dễ hiểu để mọi thành phần tham gia vào dự án xây dựng hệ thống đều có thể hiểu được
- Đối đầu với sự thay đổi liên tục: Các bài toán quản lý thường xuyên thay đổi
do một số nguyên nhân như sự phát triển không ngừng của các tổ chức, sự thay đổi trong chính sách của nhà nước, hoặc do một số điều kiện thực tế không phù hợp với tình hình thực tiễn cần phải thay đổi các quy tắc quản lý, các mô hình quản lý,… Điều này xảy ra làm cho hệ thống thông tin quản lý mà chúng ta xây dựng sẽ không còn phù hợp với thực
tế sau một thời gian đưa vào sử dụng hoặc trong quá trình triển khai Do đó đòi hỏi các nhà phân tích và thiết kế luôn luôn lường trước khả năng xảy ra về thay đổi quản lý trong tương lai và phương pháp phân tích và thiết kế cần phải hỗ trợ các khái niệm và mô hình
có thể diễn tả các hệ thống mở một cách dễ dàng
Trang 301.2.4 Phương pháp được đề cập trong tài liệu
Tài liệu này được xây dựng từ những môn học phát triển hệ thống thông tin hoặc phân tích và thiết kế hệ thống thông tin dành cho sinh viên cao đẳng – Đại học, Sử dụng phương pháp hướng chức năng, hay là phân tích và thiết kế có cấu trúc chứ không đề cập tới phương pháp phân tích và thiết kế hướng đối tượng
- Phương pháp này là dễ hiểu, dễ thực hành, đồng thời vẫn chuyển tải được đến người đọc nhiều tư tưởng cơ bản của công việc phân tích và thiết kế, cho nên chúng là thích hợp đối với người mới nhập môn cho chuyên ngành liên quan đến công nghệ thông tin và hệ thống thông tin quản lý
- Các phương pháp theo hướng cấu trúc có bề dày ứng dụng trên nhiều dự án, nhiều quốc gia, và đến nay vẫn còn được tiếp tục vận dụng, đặc biệt là ở nước ta Một số phần mềm trợ giúp (CASE) nổi tiếng như Designer 2000 của ORACLE vẫn tiếp tục đi theo hướng này
1.3 Vòng đời phát triển hệ thống
HTTT được xây dựng là sản phNm của một loạt các hoạt động được gọi là phát triển hệ thống Quá trình phát triển một HTTT kể từ lúc nó sinh ra đến khi nó tàn lụi được gọi là vòng đời phát triển hệ thống Vòng đời phát triển các hệ thống là một phương
pháp lụân cho việc phát triển các HTTT Nó được đặc trưng bằng một số pha chủ yếu
phân biệt nhau của quá trình đó: phân tích, thiết kế và triển khai HTTT Tác giả của
nhiều cuốn sách hay nhiều tổ chức phát triển các HTTT thường sử dụng những mô hình vòng đời khác nhau và mỗi vòng đời có thể gồm từ ba đến hai chục pha khác nhau cho một phương pháp luận phát triển cụ thể
Một trong nhiều mô hình vòng đời đã sắp xếp các bước phát triển hệ thống theo
mô hình bậc thang với các mũi tên nối mỗi bước với bước sau nó Cách biểu diễn này được xem như tương ứng với mô hình thác nước Mô hình này sẽ được sử dụng để trình
bày về phương pháp luận chung - một quá trình phát triển một hệ thống với các pha: Khởi tạo và lập kế hoạch, phân tích, thiết kế, triển khai, vận hành và bảo trì HTTT: ở mỗi pha đều có cái vào và cái ra Chúng thể hiện mối quan trọng giữa các pha với nhau Ở cuối
mỗi pha cần đạt đến một cột mốc được đánh dấu bằng những tài liệu cần được tạo ra để
các bộ phận quản lý xem xét, đánh giá và phê duyệt Đó là một đặc trưng của quá trình quản lý sự phát triển
1.3.1 Khởi tạo và lập kế hoạch dự án
Việc hình thành dự án như một yêu cầu bắt buộc để có thể tiến hành những bước tiếp theo của quá trình phát triển: Không có dự án thì cũng không có việc xây dựng
HTTT Hai hoạt động chính trong khởi tạo và lập kế hoạch dự án là phát hiện ban đầu
chính thức về những vấn đề của hệ thống và các cơ hội của nó; trình bày rõ lý do vì sao
Trang 31tổ chức cần hay không cần phát triển HTTT Tiếp đến là xác định phạm vi cho hệ thống
dự kiến Một kế hoạch dự án phát triển HTTT được dự kiến về cơ bản được mô tả theo dòng đời phát triển hệ thống, đồng thời cũng đưa ra ước lượng thời gian và các nguồn lực cần thiết cho việc thực hiện nó Hệ thống dự kiến phải giải quyết được những vấn đề đặt
ra của tổ chức hay tận dụng được những cơ hội có thể trong tương lai mà tổ chức gặp, và cũng phải xác định chi phí phát triển hệ thống và lợi ích mà nó sẽ mang lại cho tổ chức
Hình 1.7 Mô hình hình thác nước của vòng đời phát triển hệ thống
Trong pha này cần xác định cái gì là cần thiết cho hệ thống mới hay hệ thống sẽ
được tăng cường Tại đây các nhu cầu HTTT tổng thể của tổ chức được xác định, nó thể hiện ra bằng các dịch vụ mà hệ thống dự kiến cần phải thực hiện Chúng được phân tích, thiết lập sự ưu tiên và sắp xếp lại rồi chuyển thành một kế hoạch để phát triển HTTT, trong đó bao gồm cả lịch trình phát triển hệ thống và các chi phí tương ứng Tất cả nội
dung trên đây thường được gọi là nghiên cứu hệ thống Sau khi nghiên cứu hệ thống phải
đưa ra một kế hoạch dự án cơ sở Kế hoạch dự án này cần được phân tích đảm bảo tính khả thi trên các mặt sau:
+ Khả thi kỹ thuật: Xem xét khả năng kỹ thuật hiện có (về thiết bị, về công nghệ
và khả năng làm chủ công nghệ) đủ đảm bảo thực hiện các giải pháp công nghệ thông tin được áp dụng để phát triển hệ thống
+ Khả thi kinh tế: Thể hiện trên các nội dung sau:
- Khả năng tài chính của tổ chức cho phép thực hiện dự án: bao gồm nguồn vốn và
số vốn có thể huy động trong thời hạn cho phép
- Lợi ích mà hệ thống được xây dựng mang lại, ít nhất là đủ bù đắp chi phí phải bỏ
ra xây dựng nó (chi phí đầu tư ban đầu)
- Những chi phí thường xuyên cho hệ thống hoạt động (chi phí vận hành) là chấp nhận được đối với tổ chức
+ Khả thi về thời gian: Dự án được phát triển trong thời gian cho phép, tiến trình thực hiện dự án được chỉ ra trong giới hạn đã cho
Khởi tạo và lập kế hoạch
Phân tích hệ thống thông tin
Thiết kế hệ thống thông tin
Triển khai hệ thống thông tin
Vận hành và bảo trì
Trang 32+ Khả thi pháp lý và hoạt động: Hệ thống có thể vận hành trôi chảy trong khuôn khổ của tổ chức và điều kiện quản lý mà tổ chức có và trong khuôn khổ của pháp lý hiện hành
Ngoài các phân tích trên người ta còn phân tích một số khả thi khác
Khi dự án được chấp nhận, thì đối tượng tổng quát của dự án như phạm vi của dự
án, kế hoạch triển khai dự án phải được vạch ra và thông qua để triển khai
1.3.2 Phân tích hệ thống
Phân tích hệ thống nhằm xác định nhu cầu thông tin của tổ chức Nó sẽ cung cấp những dữ lịêu cơ sở cho việc thiết kế HTTT sau này Trước đó cần tiến hành khảo sát hiện trạng của tổ chức thuộc phạm vi liên quan đến dự án Những dữ liệu thu được phục
vụ cho việc xây dựng mô hình quan niệm về hệ thống hiện thời: mô hình bao gồm mô hình dữ liệu và mô hình xử lý của hệ thống cùng các tài liệu bổ sung khác
Phân tích bao gồm một vài pha nhỏ:
- Trước hết xác định yêu cầu: Các nhà phân tích làm việc cùng với người sử
dụng để xác định cái gì người dùng chờ đợi từ hệ thống dự kiến
- Tiếp theo là nghiên cứu yêu cầu và cấu trúc nó phù hợp với mối quan hệ bên
trong, bên ngoài và những giới hạn đặt lên các dịch vụ cần thực hiện
- Thứ 3 là tìm giải pháp cho các thiết kế ban đấu để đạt được yêu cầu đặt ra, so
sánh để lựa chọn giải pháp thiết kế tốt nhất đáp ứng các yêu cầu với chi phí, nguồn lực, thời gian và kỹ thuật cho phép để tổ chức thông qua
1.3.3 Thiết kế hệ thống
Thiết kế là tìm ra các giải pháp công nghệ thông tin để đáp ứng các yêu cầu đặt ra
ở trên Đặc tả giải pháp cho các yêu cầu ở pha trước được chuyển thành đặc tả hệ thống logic rồi là đặc tả vật lý Từ các khía cạnh của hệ thống, thiết kế được xem xét bắt đầu từ màn hình tương tác, các cái vào và cái ra (các báo cáo) đến cơ sở dữ liệu và các tiến trình
xử lý chi tiết bên trong Pha thiết kế này gồm hai pha nhỏ: thiết kế logic và thiết kế vật lý
- Thiết kế logic Về mặt lý thuyết, thiết kế hệ thống logic không gắn với bất kỳ phần cứng và phần mềm của hệ thống nào Thiết kế logic tập trung vào các khía cạnh nghiệp vụ của hệ thống thực vì vậy một vài phương pháp luận vòng đời còn gọi pha này
là pha thiết kế nghiệp vụ Các đối tượng và quan hệ được mô tả ở đây là những khái niệm, các biểu tượng mà không phải các thực thể vật lý
- Thiết kế vật lý: Là quá trình chuyển mô hình logic trừu tượng thành bản thiết kế vật lý hay các đặc tả kỹ thuật Những phần khác nhau của hệ thống được gắn vào bằng những thao tác và thiết bị vật lý trên máy tính cần thiết để tiện lợi cho việc thu thập dữ liệu, xử lý và đưa ra thông tin cần thiết cho tổ chức
Trang 33Trong pha thiết kề vật lý cần phải quyết định lựa chọn ngôn ngữ lập trình, hệ cơ sở
dữ liệu, cấu trúc tập tin tổ chức dữ liệu, những phần cứng, hệ điều hành và môi trường mạng cần được xây dựng Sản phNm cuối cùng của pha thiết kế là đặc tả hệ thống vật lý ở dạng như nó tồn tại trên thực tế, sao cho các nhà lập trình và kỹ sư phần cứng có thể dễ dàng chuyển thành chương trình và cấu trúc hệ thống
1.3.4 Triển khai hệ thống
Trong pha này, đặc tả hệ thống được chuyển thành hệ thống vận hành được, sau
đó được kiểm tra và đưa vào sử dụng Bước triển khai bao gồm việc lập ra các chương trình, tiến hành kiểm thử, lắp đặt thiết bị, cài đặt chương trình và chuyển đổi hệ thống
a.Tạo lập các chương trình
Trước hết cần lựa chọn phần mềm (platfrorm: Hệ điều hành, hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình, phần mềm mạng Trong nhiều trường hợp, ngôn ngữ lập trình có thể chính là ngôn ngữ của hệ quản trị cơ sở dữ liệu hay của hệ ứng dụng được sử dụng) Sau đó chọn các phầm mềm đóng gói Cuối cùng chuyển các đặc tả thiết kế còn lại thành các phần mềm (các chương trình) cho máy tính Chương trình được tiến hành kiểm thử cho đến khi đạt yêu cầu đề ra Quá trình kiểm thử bao gồm kiểm thử các module chức năng (kiểm thử đơn vị), các hệ thống con (kiểm thử tích hợp), sự hoạt động của cả hệ thống (kiểm thử hệ thống) và nghiệm thu cuối cùng (kiểm thử chấp nhận)
b Cài đặt và chuyển đổi hệ thống
Quá trình chuyển đổi bao gồm việc cài đặt các chương trình trên hệ thống phần cứng đang tồn tại hay hệ thống phần cứng mới lắp đặt, chuyển đổi toàn bộ hoạt động của
tổ chức cũ sang hoạt động với hệ thống mới (bao gồm việc chuyển đổi dữ liệu, sắp xếp đội ngũ cán bộ trên hệ thống mới và đào tạo người sử dụng, khai thác hệ thống) ChuNn
bị các tài liệu chi tiết thuyết minh về việc khai thác và sử dụng hệ thống (cả về mặt kỹ thuật, về hệ thống và tại nơi làm việc của người sử dụng) Nó cần được hoàn tất trong thời gian chuyển đổi để phục vụ việc đào tạo và đảm bảo hoạt động hàng ngày (bảo trì) của hệ thống sau này
1.3.5 Vận hành và bảo trì
Khi hệ thống được lắp đặt và chuyển đổi toàn bộ, giai đoạn vận hành bắt đầu Trong thời gian này, người sử dụng và các chuyên viên kỹ thuật vận hành cần đánh giá xem hệ thống đáp ứng các mục tiêu đề ra ban đầu hay không, đề xuất những sửa đổi, cải tiến, bổ sung
Khi hệ thống đi vào hoạt động, đôi khi người dùng thường mong muốn hệ thống phải làm việc một cách hoàn hảo và các chức năng của hệ thống làm việc tốt hơn Mặt khác, tổ chức thường xuyên có những yêu cầu để đáp ứng những thay đổi nảy sinh Vì vậy, các nhà thiết kế và lập trình cần phải thực hiện những thay đổi hệ thống ở mức độ
Trang 34nhất định (không phải tất cả) để đáp ứng nhu cầu người sử dụng cũng như những đề nghị của tổ chức Những thay đổi này là cần thiết để làm cho hệ thống hoạt động hiệu quả
Bảo trì không phải là một pha tách biệt mà là sự lặp lại các pha của một vòng đời khác, đòi hỏi phải nghiên cứu và áp dụng những thay đổi cần thiết Tổng số thời gian và
sự nỗ lực dành cho bảo trì phụ thuộc rất lớn vào sự hoàn thiện của các pha trước thuộc vòng đời Khi chi phí bảo trì trở nên quá lớn, yêu cầu thay đổi của tổ chức là đáng kể, khả năng đáp ứng của hệ thống cho tổ chức và người dùng trở nên hạn chế, những vấn đề cho thấy đã đến lúc phải kết thúc hệ thống cũ và bắt đầu một vòng đời khác Thông thường,
sự phân biệt giữa việc bảo trì có qui mô lớn và sự phát triển một hệ thống mới là không
rõ ràng
1.4 Sự phát triển hệ thống
Như ta đã biết chu trình phát triển hệ thống là các giai đoạn xây dựng một hệ thống thông tin, giai đó đó bao gồm: Sự khởi đầu, phân tích, thiết kế, triển khai, cài đặt, bảo trì hệ thống và kết thúc Người ta gọi quá trình đó là vòng đời hay nếu chỉ nói đến triển khai và xây dựng, thì gọi là sự phát triển của hệ thống
Để xem xét sự phát triển hệ thống, có hai khía cạnh phải đề cập đến:
- Sự tiếp nối các thời kỳ trong phát triển hệ thống, còn gọi là chu trình phát triển của hệ thống
- Các phương tiện để nhận thức và diễn tả hệ thống, còn gọi là các mô hình
Dưới đây ta sẽ đề cập đến hai phương diện trên, trước khi xem xét đến các phương pháp phát triển hệ thống
1.4.1 Chu trình phát triển hệ thống
Có nhiều loại chu trình phát triển hệ thống trên thế giới hiện nay, sau đây xin giới thiệu năm chu trình phổ biến là chu trình thác nước, chu trình hình chữ V, chu trình tăng trưởng, chu trình hình xoắn ốc và chu trình lắp ráp từng thành phần
1.4.1.1 Chu trình thác nước
Đây là chu trình phát triển đầu tiên, được Winston W Royce1 đề xuất năm 1970,
để mô tả sự phát triển của hệ thống Đó chính là quá trình tiếp nối của năm giai đoạn phát triển hệ thống: Phân tích, thiết kế, mã hoá, kiểm định và nghiệm thu Mỗi giai đoạn chỉ
có thể bắt đầu khi giai đoạn trước đó đã hoàn tất Vì vậy chu trình phát triển này còn gọi
là chu trình tuyến tính, và nó được thể hiện trong sơ đồ sau:
phần mềm Lockheed ở Austin, Texas, và là một trong những người tiên phong trong việc phát triển phần mềm nửa sau thế kỷ 20, ông là người đầu tiên mô tả tiến trình phát triển phần mềm hình thác nước (Waterfall)
Trang 35Hình 1.8 Chu trình hình thác nước
Mô hình này được thiết lập theo cách tiếp cận hướng chức năng và phù hợp cho những dự án lớn, phức tạp Nhược điểm chính của chu trình phát triển thác nước là ở chỗ không có sự quay lui Sự quay lui là một nhu cầu rất tự nhiên trong quá trình phát triển phần mềm, vì nhiều khi thực hiện ở giai sau người ta mới phát hiện ra những thiếu sót của giai đoạn trước và do vậy cần phải quay lại giai đoạn đó để chỉnh sửa, bổ sung cho đầy đủ Ngoài ra, trong quá trình phát triển phần mềm theo chu trình thác nước, không có
sự tham gia trực tiếp của người dùng trong mỗi giai đoạn, mà chỉ tiếp xúc với hệ thống sau khi nó đã được
Nhược điểm của chu trình thác nước là ở chỗ không có sự quay lui Nhưng sự quay lui lại là một nhu cầu rất tự nhiên, vì nhiều khi có vào giai đoạn sau thì ta mới phát hiện được sự thiếu sót của giai đoạn trước đó Và cần được chỉnh sửa lại
Chính vì vậy mà cũng có nhiều phương án cải biên của chu trình thác nước, cho
phép sự quay lui Chẳng hạn chu trình phát triển hình chữ V, được AFCIQ (Association Française pour le Contrôle Industriel de la Qualité)1 đề nghị bao gồm cả các bước quay lui, và ngoài ra đặt tương ứng các giai đoạn kiểm nghiệm với các giai đoạn phân tích và thiết kê Giai đoạn mã hoá ở đáy hình chữ V Chúng ta xem xét kỹ mô hình chữ V sau
Thiết kế tổng thể Thiết kế chi tiết
Tích hợp Kiểm định đơn nguyên
Mã hoá
Trang 36Hình 1.9 Chu trình phát triển hình V
1.4.1.2 Chu trình tăng trưởng
Chu trình tăng trưởng do D R Graham đề xuất năm 1989, dựa trên các bước tăng trưởng dần dần, cho phép hoàn thành hệ thống từng mảnh một Mỗi bước tăng trưởng thực hiện một tiến trình tuyến tính để triển khai một phần có thể chuyển giao được của cả
hệ thống Quy trình này lặp lại nhiều lần cho tới khi có một phương án hoàn chỉnh của cả
hệ thống có thể chia cắt và chuyển giao theo từng phần công việc
Hình 1.10 Chu trình phát triển tăng trưởng
- Tiển trình lặp đi lặp lại một dãy các giai đoạn nhất định
- Qua mỗi vòng lặp, tạo ra một nguyên mẫu hoàn thiện dần
- Nhấn mạnh sự khắc phục các nguy cơ (Một nguy cơ bắt nguồn từ các sai sót trong sự đặc tả các nhu cầu)
Nguyên mẫu là phiên bản đầu tiên, được tạo lập một cách công nghiệp, của một tổ hợp (thiết bị, máy móc…), nhằm để thử nghiệm trước khi sản xuất hàng loạt
Một phần mềm nguyên mẫu (Prototype) trong tin học là một hệ thống
- Có khả năng làm việc được trên các dữ liệu thực, có nghĩa là nó đã vượt qua giai đoạn dự án trên giấy, và như thế nó có thể được đánh giá bởi người thiết kế hoặc người các người dùng
- Có thể được phát triển thêm để tiến tới hệ thống kết cục, hoặc có thể dùng làm
cơ sở cho việc thực hiện nó
- Được tạo lập nhanh và ít tốn kém
Tăng trưởng 1
Tăng trưởng n
………
Trang 37- Được dùng để kiểm chứng các giả định về các nhu cầu phải đáp ứng, về các lược đồ thiết kế hoặc về logic của các chương trình
Như vậy, việc tao ra các nguyên mẫu nhanh là có ích trên nhiều phương diện:
- Chính xác hoá các nhu cầu phải đáp ứng: Các nhu cầu của người dùng thường
không rõ ràng, vậy các nhà tin học làm bản mẫu sẽ trình bày cụ thể công việc cần phải làm, để cho người dùng thấy rõ xem đã đáp ứng được nhu cầu của mình chưa
- Phát hiện các việc thực hiện lệch lạc, các sai sót: Trong sơ đồ thiết kế, có thể
có những điểm tế nhị, người thiết kế không lương hết được mọi tình huống Thực tế làm bản nguyên mẫu có thể phát hiện các công việc bị sai lệch và các sai sót trong hệ thống
- Đánh giá được các hiệu năng của hệ thống: Hiệu năng của hệ thống liên quan
chặt chẽ tới sự thích ứng của ngôn ngữ lập trình, các nền (Platform) và các phần cứng như máy tính Nguyên mẫu phản ánh hiệu năng tương đối của chương trình và thông qua nguyên mẫu ta có thể phát hiện được những nguyên nhân cơ bản của sự chậm chạp từ bên trong chương trình, từ những khâu giao tiếp người / máy, v.v
Kỹ thuật làm nguyên mẫu ngày nay được thực hiện được khá hiệu quả là nhờ các
ngôn ngữ lập trình phi thủ tục, còn được gọi là ngôn ngữ thế hệ thứ tư, trong đó có
Với việc làm nguyên mẫu thì việc triển khai dự án khác biệt rất nhiều so với tiến trình tuyến tính Chu trình là ngắn hơn nhiều, song được lặp đi lặp lại nhiều lần Theo Jenkins, Milton và Naumann (Đại học Indiana City), có bốn giai đoạn cho một vòng lặp
và được thể hiện qua sơ đồ sau:
Hình 1.11 Chu trình xoắn ốc
Giai đoạn 1: Với vòng lặp đầu tiên thì giai đoạn này nhằm phát hiện các yêu cầu
cơ bản, rõ nét nhất thông qua các phương pháp thông thường như: khảo sát, phỏng vấn, xem xét tài liệu, v.v Không cần phải vét cạn các yêu cầu mà nhanh chóng chuyển sang giai đoạn sau Từ vòng lặp thứ hai, thì giai đoạn này tập trung xác định các mục tiêu của vòng lặp hiện tại, các phương án và các ràng buộc từ kết quả vòng lặp trước
Xác định các mục
tiêu, các phương án
và các ràng buộc
Đánh giá các phương án
Thiết kế và tạo lập một nguyên mẫu Thử nghiệm các
phương án
Trang 38Giai đoạn 2: Đánh giá các phương án cĩ thể, phát hiện ngay các nguy cơ tiềm Nn
và tìm cách giải quyết chúng Các nguy cơ, rủi ro cĩ thể xuất phát từ phía những cơng nghệ mới, những đối tác cạnh tranh, từ thị trường và khách hàng, từ phía ngân sách, tài chính, v.v., trên cơ sở đĩ đánh giá tính khả thi của dự án
Giai đoạn 3: Thiết kế và tạo lập nguyên mẫu, tập trung vào những điều cốt yếu
Giai đoạn 4: Thử nghiệm nguyên mẫu Trước hết giới thiệu nĩ cho một số người dùng chọn lọc, thu thập các phê phán, các gĩp ý của họ Tuỳ theo mức độ quan trọng, một số điều chỉnh được thực hiện ở những vịng tiếp sau
Các vịng lặp được tiếp tục cho đến khi xét thấy nguyên mẫu là tốt thì cĩ thể chuyển sang sản xuất thực sự
Một số người cho rằng cách làm vịng vo này sẽ làm kéo dài thời gian Song, những nghiên cứu nghiêm túc của Boëhm và Gray cho thấy thời gian cĩ thể rút xuống cịn khoảng 45% so với cách làm cũ
Nhưng, sự thành cơng của tiến trình lặp cĩ thể dẫn tới một vài hậu quả cần dè chừng Người dùng cĩ thể thoả mãn với những phương án đầu và muốn dừng ngay, mặc
dù khơng phải là khơng cĩ những việc đáng làm Việc làm tư liệu, vốn rất cần thiết cho
sự hoạt động và bảo trì hệ thống sau này, cũng dễ bị bỏ qua hoặc xem nhẹ
Hình 1.12 Quy trình phát triển hệ thống theo chu trình hình xoắn ốc
Tĩm lại, khuơn cảnh chung của kỹ nghệ phần mềm cĩ thể được mơ tả như sau: Các giai đoạn của quá trình phát triển phần mềm cĩ thể thực hiện theo những phương pháp khác nhau tuỳ thuộc vào khả năng của nhĩm thực hiện dự án Tuy nhiên, để cho thống nhất và hiệu quả thì tốt nhất là nên chọn một phương pháp, phương pháp hướng
Trang 39chức năng hay hướng đối tượng cho cả quá trình phát triển phần mềm Xu thế hiện nay là nên chọn phương pháp hướng đối tượng với sự hỗ trợ của nhiều công cụ hiện đại
Đánh giá và nhận xét
Mô hình xoắn ốc là một cách tiếp cận thực tế để phát triển các hệ thống phần mềm quy mô lớn Trong đó làm bản mẫu xem như một cơ chế làm giảm bớt rủi ro… Hiệu quả của nó là trông thấy được Quá trình lặp và đánh giá rủi ro ở mỗi bước là cơ chế tốt đảm bảo sự thành công của việc xây dựng HTTT (vì rủi ro ở mỗi bước là nhỏ, dễ nhận ra, dễ khắc phục và nếu xảy ra cũng không ảnh hưởng lớn đến phần đã xây dựng) Tuy nhiên, việc đánh giá đúng rủi ro cần có chuyên gia và vì thế chi phí cần thiết sẽ không thích hợp với dự án nhỏ Hơn thế nữa, sự thay đổi linh hoạt trong phát triển không dễ thực hiện khi
mà hợp đồng đã được ký kết và xác định
1.4.1.4 Chu trình lắp ráp các thành phần
Chu trình lắp ráp các thành phần dựa trên việc sử dụng lại các thành phần phần mềm Việc tạo lập các hệ thống được thực hiện bằng cách lắp ráp các phần có sẵn Như vậy điều quan trọng là cần phải xác định và thu gom các thành phần có khả năng sử dụng lại càng sớm càng tốt Các thành phần khác, tham gia vào hệ thống có thể là được điều chỉnh, thích ứng từ các thành phần có sẵn hoặc được xây dựng từ đầu
Theo Hooper, Chester và Kang thì tiến trình gồm 6 giai đoạn
- Nhận thức bài toán: Tìm hiểu các vấn đề được đặt ra và khả năng sử dụng lại
- Hình thành giải pháp: Đề xuất một số giải pháp trên hướng sử dụng các thành phần có sẵn
- Tìm kiếm các thành phần cơ bản: Tuyển chọn các thành phần thích hợp
- Điều chỉnh và thích ứng các thành phần: Điều chỉnh các thành phần làm cho nó thực sự thích ứng với giải pháp
Thích ứng và tích hợp các thành phần
Thử nghiệm kết
quả, tuyển chọn
thành phần mới
Trang 40Ta cũng có thể tổ chức tiến trình nó trên thành chu trình lặp, với bốn giai đoạn tương ứng với bốn giai đoạn như được thể hiện trong hình 1.13 ở trên, mỗi lần lặp tạo nên một mảnh của hệ thống
1.4.2 Mô hình hóa hệ thống
Các bước phát triển hệ thống như tìm hiểu nhu cầu, phân tích, thiết kế và lập trình
hệ thống tuy có khác nhau về nhiệm vụ và mục tiêu, song chúng cùng có những đặc điểm sau:
- Đều phải đối mặt với sự phức tạp của các bài toán ứng dụng
- Đều là quá trình nhận thức và diễn tả sự phức tạp thông qua các mô hình
Nói cách khác đều là quá trình thực hiện mô hình hoá để hiểu và xây dựng hệ thống
(i) Nguyên lý chế ngự sự phức tạp. Để tìm hiểu một thế giới vô cùng phức tạp, mọi
khoa học thực nghiệm đều phải vận dụng nguyên lý “Chia để trị” (Devide and Conquer)
và nguyên lý “Trừu tượng hoá” Trừu tượng hoá (hay còn gọi là trừu xuất) là nguyên lý
nhận thức, đòi hỏi phải bỏ qua những sắc thái (của một chủ đề) không liên quan tới chủ định hiện thời, để tập trung hoàn toàn vào những sắc thái liên quan đến chủ định đó (Từ điển Oxford)
Nói cách khác, trước một bài toán (một chủ đề), ta tạm quyên đi hay tạm lờ đi những chi tiết có tác dụng rất ít hoặc không có tác dụng đối với lời giải bài toán, nhờ đó hình thành được một sự diễn tả đơn giản hoá và dễ hiểu, cho phép chúng ta giải quyết được bài toán thực tế, đúng theo bản chất của nó
(ii) Mô hình (Model) là một dạng trừu tượng hoá của hệ thống thực
Nói cách khác, mô hình là hình ảnh thực tại của bài toán mà chúng ta đang xét, được diễn tả ở một mức độ trừu tượng hoá nào đó, theo một quan điểm và được thể hiện bởi một hình thức (bằng văn bản, bảng biểu, biểu đồ, đồ thị, công thức hay phương trình toán học, v.v.)
Ngày nay các phương pháp phân tích, thiết kế hệ thống đều có xu hướng sử dụng các mô hình được thể hiện dạng biểu đồ (diagrams) Đặc biệt phương pháp hướng đối tượng với UML, tất cả các khái niệm, các kết quả của các bước trong quá trình phát triển phần mềm đều có thể diễn tả một cách tường minh, trực quan bằng các biểu đồ theo những ký pháp thống nhất
(iii) Mục đích của mô hình hoá
Mô hình hóa: Có năm mục đích chính