nhập môn công nghệ phần mềm,nguyễn tấn trần minh khang ...
-
Upload
khangminh22 -
Category
Documents
-
view
2 -
download
0
Transcript of nhập môn công nghệ phần mềm,nguyễn tấn trần minh khang ...
i
MỤC LỤC
MỤC LỤC ............................................................................................... i
Chƣơng 1 GIỚI THIỆU VỀ CÔNG NGHỆ PHẨN MỀM ............. 1
1.1 SOFTWARE DEVELOPER ..................................................................... 5
1.2 SDLC - VÕNG ĐỜI PHÁT TRIỂN HỆ THỐNG................................... 11
1.3 HỌC TẬP TÍNH KHẢ THI: BƢỚC ĐẦU TIÊN ................................... 17
1.4 CÁC CÁCH THU THẬP THÔNG TIN.................................................. 19
1.5 SƠ ĐỒ HỆ THỐNG HAY MÔ HÌNH HỆ THỐNG ............................... 25
1.6 PHƢƠNG PHÁP LUẬN PHÁT TRIỂN ................................................. 32
1.7 THIẾT KẾ HỆ THỐNG .......................................................................... 37
1.8 PHƢƠNG PHÁP HƢỚNG ĐỐI TƢỢNG .............................................. 42
1.9 KIỂM TRA PHẦN MỀM ....................................................................... 50
1.10 STANDARD AND METRIC ............................................................... 55
1.11 THỦ TỤC .............................................................................................. 60
1.12 CÀI ĐẶT ............................................................................................... 66
1.13 TÀI LIỆU HÓA .................................................................................... 67
1.14 BẢO TRÌ ............................................................................................... 69
1.15 HUẤN LUYỆN ..................................................................................... 72
1.16 KẾT LUẬN ........................................................................................... 73
CuuDuongThanCong.com https://fb.com/tailieudientucntt
ii
Chƣơng 2 NGHIÊN CỨU VỀ TÍNH KHẢ THI VÀ PHÂN TÍCH
CHI PHÍ/LỢI NHUẬN ....................................................................... 77
2.1 NHỮNG THÀNH PHẦN TRONG NGHIÊN CỨU TÍNH KHẢ THI ... 80
2.1.1 Tinh khả thi về tai chinh ............................................................ 80
2.1.2 Tinh khả thi về mặt kỹ thuật ...................................................... 82
2.1.3 Tinh khả thi về tổ chức, điều hanh ............................................ 85
2.2 PHÂN TÍCH CHI PHÍ/LỢI NHUẬN ..................................................... 91
2.3 LẬP KẾ HOẠCH NGHIÊN CỨU TÍNH KHẢ THI .............................. 97
2.4 QUY TRÌNH NGHIÊN CỨU TÍNH KHẢ THI.................................... 100
2.4.1 Xác định tinh khả thi ............................................................... 102
2.4.2 Những đánh giá khác ............................................................... 103
2.4.3 Các công đoạn nghiên cứu tinh khả thi ................................... 106
2.5 KẾT LUẬN ........................................................................................... 108
Chƣơng 3 LÊN DỰ ÁN CHO KẾ HỌACH PHẦN MỀM .......... 111
3.1 TẠI SAO PHẢI LÊN KẾ HOẠCH CHO DỰ ÁN ................................ 113
3.2 AI LÊN KẾ HOẠCH CHO DỰ ÁN ..................................................... 116
3.3 ĐIỀU GÌ XẢY RA KHI LÊN KẾ HOẠCH CHO DỰ ÁN ................... 117
3.4 THE PROJECT PLAN UNWRAPPED ................................................ 121
3.4.1 Mục đich của phần mềm .......................................................... 121
3.4.2 Đánh giá phần mềm ................................................................. 123
3.4.3 Kỹ thuật phân rã ...................................................................... 128
3.4.4 Mô hình kinh nghiệm .............................................................. 129
CuuDuongThanCong.com https://fb.com/tailieudientucntt
iii
3.4.5 Quản lý rủi ro........................................................................... 130
3.4.6 Bảng thời gian: ........................................................................ 134
3.4.7 Tai nguyên dự án: .................................................................... 140
3.4.8 Cơ chế theo dõi va kiểm soát: ................................................. 144
3.5 CÓ ĐÁNG ĐỂ LÀM CÔNG VIỆC NÀY HAY KHÔNG? .................. 145
Chƣơng 4 THU THẬP YÊU CẦU ................................................ 148
4.1 STAKEHOLDER ANALYSIS ............................................................. 149
4.2 ELICITATION TECHNIQUES ............................................................ 154
4.2.1 Interviewing ............................................................................. 154
4.2.2 Questionnaires and Surveys..................................................... 169
4.2.3 Observation.............................................................................. 177
4.2.4 Participation ............................................................................. 180
4.2.5 Competitive Intelligence ......................................................... 183
4.2.6 Brainstorming .......................................................................... 186
4.2.7 Focus Groups ........................................................................... 186
4.2.8 Prototyping .............................................................................. 187
4.3 A CHECK LIST FOR REQUIREMENTS MANAGEMENT .............. 187
4.4 KẾT LUẬN ........................................................................................... 187
Chƣơng 5 THIẾT KẾ HỆ THỐNG THEO HƢỚNG NGƢỜI SỬ
DỤNG 189
CuuDuongThanCong.com https://fb.com/tailieudientucntt
iv
5.1 BÍ MẬT THƢƠNG MẠI ...................................................................... 191
5.2 VIỆC TAILOR HỆ THỐNG TỚI YÊU CẦU NGƢỜI DÙNG CUỐI . 193
5.3 KÊU GỌI SỰ HĂNG HÁI .................................................................... 196
5.4 PHƢƠNG PHÁP LUẬN ....................................................................... 200
5.5 PHÂN PHỐI DỮ LIỆU CHO CHỦ NHÂN HỢP PHÁP – NGƢỜI
DÙNG CUỐI .................................................................................................. 208
5.6 SỰ LỰA CHỌN CHO CÁC HỆ THỐNG ............................................ 212
5.7 KẾT LUẬN ........................................................................................... 218
Chƣơng 6 XEM XÉT QUYẾT ĐỊNH THUÊ NGOÀI ................ 219
6.1 BƢỚC 1: PHÂN TÍCH VÀ ĐÁNH GIÁ .............................................. 220
6.2 BƢỚC 2: THẨM ĐỊNH YÊU CẦU VÀ LỰA CHỌN ĐỐI TÁC ........ 221
6.3 BƢỚC 3: TRIỂN KHAI ........................................................................ 223
6.4 MỘT VÍ DỤ VỀ OUTSOURCE ........................................................... 225
6.4.1 Những vấn đề khi outsource .................................................... 227
6.4.2 Chi phí bao nhiêu? ................................................................... 236
6.4.3 Sử dụng nha cung cấp dịch vụ Internet ................................... 238
6.4.4 Tự xoay sở ............................................................................... 241
6.4.5 Giá nhân công .......................................................................... 243
6.4.6 Giá dựa trên những cái ma bạn muốn đặt vao site................... 244
6.5 CÓ NÊN THUÊ NGOÀI KHÔNG? ...................................................... 245
6.6 NHỮNG CÂU HỎI CHO CÁC CÔNG Ty OUTSOURCE TIỀM NĂNG
255
6.7 NHỮNG MÔ HÌNH THUÊ NGOÀI .................................................... 258
CuuDuongThanCong.com https://fb.com/tailieudientucntt
v
6.8 KẾT LUẬN ........................................................................................... 260
Chƣơng 7 LỰA CHỌN PHƢƠNG PHÁP LUẬN........................ 261
7.1 ĐÁNH GIÁ PHƢƠNG PHÁP LUẬN .................................................. 261
7.1.1 Phƣơng pháp luận có xác định những bƣớc cần thiết để phát
triển hệ thống không? .......................................................................... 261
7.1.2 Phƣơng pháp luận có đơn giản hóa quá trình phát triển hệ thống?
263
7.1.3 Phƣơng pháp luận có tạo ra những bƣớc tiến lớn trong phát triển
hệ thống? ............................................................................................. 264
7.1.4 Phƣơng pháp luận có thể tùy biến để tƣơng thich bới các yêu cầu
cụ thể của tổ chức hay không? ............................................................. 266
7.1.5 Phƣơng pháp luận có phải la ―trạng thái của nghệ thuật?‖ ...... 268
7.1.6 Phƣơng pháp luận có hoan thiện không?................................. 271
7.1.7 Phƣơng pháp luận có thể bị chia ra thanh các thanh phần nhỏ
không? 274
7.1.8 Phƣơng pháp luận có thể thich ứng với nhiều lĩnh vực, nganh
nghề? 274
7.1.9 Phƣơng pháp luận có sản sinh ra tai liệu ? .............................. 275
7.1.10 Phƣơng pháp luận có những phƣơng pháp riêng biệt cho mỗi
bƣớc trong từng giai đoạn của SDLC hay không ? ............................. 276
CuuDuongThanCong.com https://fb.com/tailieudientucntt
vi
7.1.11 Liệu các phƣơng pháp luận có cung cấp các phƣơng pháp kĩ
thuật ma mô tả lam cách nao để thực hiện các phƣơng pháp của nó ?
277
7.1.12 Các phƣơng pháp luận sẽ kết hợp chặt chẽ các tiêu chuẩn va
ngoai thực tiễn của tổ chức ? .............................................................. 279
7.1.13 Phƣơng pháp luận có xác định đƣợc từng vai trò của những
thanh viên khác nhau trong team của dự án hay không ? .................. 279
7.1.14 Liệu đồng nhất phƣơng pháp có cung cấp công cụ phù hợp cho
việc thi hanh từng phƣơng pháp? ........................................................ 281
7.1.15 Phƣơng pháp luận có thể thực hiện đƣợc không? .................. 282
7.1.16 Phƣơng pháp luận có thể đƣợc tìm thấy? .............................. 283
7.1.17 Phƣơng pháp luận có duy trì giao diện tiêu chuẩn công nghiệp?
285
7.1.18 Sự đao tạo thich hợp có phù hợp với phƣơng pháp luận ....... 286
7.1.19 Ngƣời quản lý giải thich rằng bộ công cụ, phƣơng pháp đƣợc
sử dụng trong tổ thức giống nhƣ trong tổ chức của bạn? .................... 287
7.2 QUYẾT ĐỊNH MỨC ĐIỂM PHƢƠNG PHÁP LUẬN ........................ 288
7.3 TÀI LIỆU THAM KHẢO ..................................................................... 288
Chƣơng 8 LỰA CHỌN VÀ KẾT HỢP THÔNG TIN ĐỂ QUẢN
LÝ TÀI NGUYÊN HIỆU QUẢ ........................................................ 289
8.1 QUẢN LÝ HIỆU QUẢ TÀI NGUYÊN THÔNG TIN ......................... 290
8.2 CÁCH SỬ DỤNG CHƢƠNG NÀY ..................................................... 295
CuuDuongThanCong.com https://fb.com/tailieudientucntt
vii
8.2.1 Đánh giá Repository Workbench ............................................ 297
8.2.2 Chuân bi Repository Workbench ............................................ 321
8.2.2.1 Những hanh đông cần lên kê hoach: .................................... 321
8.2.2.2 Những câu hoi đăt ra cho viêc đinh cơ những nỗ lực thu thâp
tai liệu: 323
8.2.2.3 Những câu hoi đăt ra liên quan đên vân đê ky thuât va thao tac:
327
8.2.2.4 Những câu hoi đăt ra về bảo mật .......................................... 329
8.2.2.5 Những câu hoi đăt ra liên quan đến dữ liệu trùng lắp va không
thống nhất ............................................................................................ 329
8.2.2.6 Những câu hoi yêu câu vê đô phức tap va phu thuôc lân nhau
331
8.2.3 Repository Metrics .................................................................. 332
8.2.3.1 Tinh liên quan ....................................................................... 333
8.2.3.2 Viêc sử dụng phổ biến các IS khác biệt ................................ 334
8.2.3.3 Độ tự đông hoa ..................................................................... 334
8.2.3.4 Độ bảo mật ........................................................................... 335
8.2.3.5 Metrics kho lƣu trữ ............................................................... 336
8.2.3.6 Tinh nhất quán ...................................................................... 336
8.2.3.7 Truy xuât trực quan .............................................................. 337
8.2.3.8 Mức đô cua sự phân tich tac đông ........................................ 337
8.2.3.9 Tinh kết hợp.......................................................................... 338
8.3 CHO ĐIỂM REPOSITORY WORKBENCH ....................................... 338
8.4 TÀI LIỆU THAM KHẢO ..................................................................... 339
CuuDuongThanCong.com https://fb.com/tailieudientucntt
viii
Chƣơng 9 STRUCTURED METHODOLOGY REVIEW ......... 341
9.1 RAPID APPLICATIONS DEVELOPMENT (RAD): .......................... 346
9.2 CASE TOOL ......................................................................................... 355
9.3 VARIETY OF STRUCTURED METHODOLOGIES ......................... 358
9.4 FINKELSTEIN INFORMATION ENGINEERING ............................. 360
9.5 EXTREME PROGRAMMING ............................................................. 367
Chƣơng 10 KHÁI NIỆM LẬP TRÌNH EXTREME ................... 371
10.1 NHỮNG LUẬT LỆ CỦA LẬP TRÌNH EXTREME .......................... 373
10.1.1 Vòng lặp ................................................................................ 380
10.1.2 Phát triển ................................................................................ 381
10.1.3 Thẻ CRC ................................................................................ 383
10.1.4 Hệ thống ẩn............................................................................ 384
10.1.5 Mã sơ hữu chung ................................................................... 385
10.1.6 Bộ Test .................................................................................. 386
10.1.7 Test chấp thuận ...................................................................... 386
10.1.8 Tốc độ dự án: ......................................................................... 387
10.1.9 Phiên bản nhỏ ........................................................................ 388
10.1.10 Bản thiết kế đơn giản ........................................................... 389
10.1.11 Tiêu chuẩn viết code ............................................................ 389
10.1.12 Refactoring .......................................................................... 389
10.1.13 Lập trình cặp đôi .................................................................. 390
CuuDuongThanCong.com https://fb.com/tailieudientucntt
ix
10.1.14 Continuos Intergration ......................................................... 390
10.1.15 40 giờ mỗi tuần .................................................................... 391
10.1.16 On-site customer .................................................................. 392
10.2 KẾT LUẬN ......................................................................................... 392
Chƣơng 11 KỶ THUẬT PHÁT TRIỂN TRƢỚC KHI TIẾN
HÀNH CÔNG VIỆC ......................................................................... 394
11.1 SAI SÓT TRONG HỆ THỐNG LÀ GÌ .............................................. 395
11.2 DEVELOPMENT BEFORE THE FACT ........................................... 402
11.3 THE TECHNOLOGY ......................................................................... 405
11.4 PRIMITIVE STRUCTURES (CẤU TRÖC MẪU) ............................ 412
11.5 DEFINED STRUCTURES ................................................................. 416
11.6 FMAPS, TMAP VÀ SỰ KẾT HỢP CỦA CHÖNG............................ 420
11.7 NHỮNG PHÉP TOÁN NGUYÊN THỦY THÔNG DỤNG .............. 423
11.8 XEM XÉT THỰC HIỆN ..................................................................... 432
11.9 HÕA HỢP VỚI HỆ THỐNG HƢỚNG ĐỐI TƢỢNG ....................... 434
Chƣơng 12 BẢN ĐẶC TẢ THIẾT KẾ ......................................... 443
12.1 QUY TRÌNH ....................................................................................... 444
12.2 CHI TIẾT BẢN THIẾT KẾ ................................................................ 446
12.3 THIẾT KẾ LOGIC VÀ VẬT LÝ ........................................................ 461
12.3.1 Phân tích logic va vật lý ........................................................ 461
12.3.2 Thiết kế logic ......................................................................... 466
CuuDuongThanCong.com https://fb.com/tailieudientucntt
x
12.3.3 Thiết kế vật lý ........................................................................ 469
12.4 SỰ ĐẶC TẢ CỦA CÁC HỆ THỐNG ................................................ 471
12.5 MỘT SỐ HƢỚNG DẪN CHO MỘT BẢN ĐẶC TẢ HỆ THỐNG ... 475
12.6 KẾT LUẬN ......................................................................................... 477
12.7 TÀI LIỆU THAM KHẢO: .................................................................. 480
Chƣơng 13 THIẾT KẾ HƢỚNG ĐỐI TƢỢNG .......................... 482
13.1 WHAT IS OO ? ................................................................................... 483
13.2 OO FROM THE BOTTOM UP .......................................................... 488
13.3 METHODOLOGIES ........................................................................... 494
13.3.1 OOAD Methodologies ........................................................... 494
13.3.2 Booch ..................................................................................... 494
13.3.3 Coad and Yourdon ................................................................ 495
13.3.4 Jacobson: Objectory and OOSE ............................................ 497
13.3.5 LBMS SEOO ......................................................................... 499
13.3.6 Phƣơng Pháp Rumbaugh OMT ............................................. 500
13.3.7 Shlaer và Mellor: ................................................................... 501
13.3.8 OOAD Simplied .................................................................... 502
Chƣơng 14 THIÊT KÊ GIAO DIÊN NGƢỜI DUNG ................. 507
14.1 NHỮNG NGUYÊN TẮC CƠ BẢN CỦA THIẾT KẾ GIAO DIỆN .. 509
14.2 QUÁ TRÌNH THIẾT KẾ GIAO DIỆN ............................................... 519
14.3 THIẾT KẾ NHẬP XUẤT HIỆU QUẢ ............................................... 523
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xi
14.3.1 Thiết kế nhập ......................................................................... 524
14.3.1.1 Giấy .................................................................................... 525
14.3.1.2 Mâu điên tử ......................................................................... 530
14.3.1.3 Những thiêt bi nhâp trực tiêp .............................................. 532
14.3.2 Thiêt kê xuất .......................................................................... 533
14.4 KIỂM THỬ TÍNH TIỆN DỤNG ........................................................ 534
14.5 KẾT LUẬN ......................................................................................... 535
14.6 TÀI LIỆU THAM KHẢO ................................................................... 537
Chƣơng 15 SOFTWARE RE-ENGINEERING ........................... 540
15.1 WHAT IS SOFTWARE RE-ENGINEERING? .................................. 542
15.2 WHY WE NEED SOFTWARE RE-ENGINEERING ........................ 542
15.3 SOFTWARE RE-ENGINEERING STRATEGIES ............................ 544
15.4 THE PROCESS OF RE-ENGINEERING .......................................... 548
15.4.1 Source Code Translation ....................................................... 548
15.4.2 Reverse Engineering .............................................................. 550
15.4.3 Program Structure Improvement ........................................... 554
15.4.4 Program Modularization ........................................................ 557
15.4.5 Data Re-Engineering ............................................................. 560
15.5 FORWARD ENGINEERING ............................................................. 565
Chƣơng 16 KIỂM THỬ PHẦN MỀM .......................................... 567
16.1 KIỂM THỬ PHẦN MỀM LÀ GÌ ? ..................................................... 568
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xii
16.2 CHIẾN LƢỢC KIỂM THỬ PHẦN MỀM .......................................... 576
16.3 TEST AUTOMATION ....................................................................... 582
16.4 NGUYÊN LÝ TEST AUTOMATION .............................................. 587
16.5 THỰC TẾ TIẾP CẬN TỰ ĐỘNG TESTING SFTWARE ................. 592
16.6 SỬ DỤNG CÔNG CỤ THỬ NGHIỆM TỰ ĐỘNG .......................... 594
16.7 KẾT LUẬN ......................................................................................... 598
Chƣơng 17 QUÁ TRÌNH THỰC HIỆN KIỂM ĐỊNH EDP ....... 602
17.1 QUÁ TRÌNH THỰC HIỆN KIỂM ĐỊNH EDP .................................. 603
17.2 TỔ CHỨC CỦA SỰ KIỂM ĐỊNH ..................................................... 605
17.3 SYSTEMIC AUDIT: ........................................................................... 612
17.3.1 Hệ thống kiểm toán ............................................................... 612
17.3.2 Thời gian đáp ứng .................................................................. 613
17.3.3 Liên kết hỏng ......................................................................... 615
17.3.4 Cơ sở dữ liệu kiểm toán ......................................................... 615
17.3.5 Mạng kiểm toán ..................................................................... 617
17.3.6 An ninh va chất lƣợng ........................................................... 618
17.4 BẢO MẬT VÀ CHẤT LƢỢNG BẢO MẬT ...................................... 619
17.4.1 Xem xét lại những kế hoạch bảo mật .................................... 620
17.4.2 Passwords .............................................................................. 621
17.4.3 Staff Background ................................................................... 622
17.4.4 Connectivity .......................................................................... 623
17.4.5 Cơ sở cần có của phần mềm .................................................. 624
17.4.6 Phát triển trong nha ............................................................... 625
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xiii
17.4.7 Testing ................................................................................... 635
17.4.8 Lập báo cáo............................................................................ 637
17.4.9 Sao lƣu ................................................................................... 637
17.5 KHOA HỌC NGHIÊN CỨU TÍNH TIỆN DỤNG ............................. 638
17.5.1 Điều hƣớng ............................................................................ 639
17.5.2 Tiện lợi .................................................................................. 641
17.6 DỊCH VỤ KHÁCH HÀNG ................................................................. 643
17.6.1 Acvessibility .......................................................................... 644
17.6.2 E-Commerce .......................................................................... 644
17.6.3 Sự riêng tƣ ............................................................................. 646
17.6.4 Tinh hợp pháp ........................................................................ 646
17.6.5 Bản quyền .............................................................................. 647
17.6.6 Cách sử dụng Web của nhân viên ......................................... 647
17.7 KẾT LUẬN ......................................................................................... 648
Chƣơng 18 QUẢN LÝ BẢO TRÌ PHẦN MỀM ........................... 650
18.1 QUÁ TRÌNH BẢO TRÌ: ..................................................................... 653
18.2 CÁC LOẠI BẢO TRÌ: ........................................................................ 656
18.2.1 Bảo trì hiệu chỉnh: ................................................................. 657
18.2.2 Bảo trì tƣơng thích: ................................................................ 658
18.2.3 Hoàn thiện bảo dƣơng: .......................................................... 658
18.2.4 Bảo trì dự phòng .................................................................... 659
18.3 CHI PHÍ BẢO TRÌ .............................................................................. 660
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xiv
18.4 MẪU BẢO TRÌ ................................................................................... 664
18.5 QUẢN LÝ BỘ PHẬN BẢO TRÌ ........................................................ 667
18.6 ĐÁNH GIÁ HIỆU QUẢ ..................................................................... 669
18.7 QUẢN LÝ YÊU CẦU BẢO TRÌ ........................................................ 671
18.8 KẾT LUẬN ......................................................................................... 674
18.9 TÀI LIỆU THAM KHẢO ................................................................... 676
Chƣơng 19 KHOA HỌC VỀ TÀI LIỆU HÓA ............................ 673
19.1 TÀI LIỆU HÓA LÀ GÌ? ..................................................................... 674
19.1.1 Tạo ra các văn bản phần mềm cơ bản .................................... 678
19.1.2 Sự công nhận tầm quan trọng của tai liệu ở mức ngƣời quản lý
679
19.1.3 Sự tồn tại của chinh sách hay tiêu chuẩn về tai liệu .............. 679
19.1.4 Giám sát thực hiện chinh sách hoặc tiêu chuẩn ..................... 680
19.1.5 Sự tồn tại của một quá trình định sẵn để tạo các tai liệu ....... 680
19.1.6 Phƣơng pháp để đảm bảo chất lƣợng của các tai liệu ............ 681
19.1.7 Đánh giá về tinh tiện dụng của các tai liệu ............................ 681
19.1.8 Định nghĩa về các thƣớc đo chất lƣợng va tinh tiện dụng của tai
liệu phần mềm ..................................................................................... 682
19.1.9 Tập hợp va phân tich các thƣớc đo chất lƣợng của tai liệu ... 682
19.1.10 Tập hợp va phân tich các thƣớc đo tinh tiện dụng của tai liệu
683
19.1.11 Quy trình phản hồi - cải tiến ................................................ 684
19.2 CÁC PHƢƠNG PHÁP VÀ TIÊU CHUẨN ........................................ 686
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xv
19.3 TẠO TÀI LIỆU MỘT CÁCH ĐÖNG ĐẮN ....................................... 691
19.3.1 Tất cả các tai liệu hƣớng dẫn đƣợc sản xuất trƣớc khi bắt đầu
phát triển mã nguồn ............................................................................. 692
19.3.2 Lƣu đồ chƣơng trình .............................................................. 693
19.3.3 Mô hình sử dụng hay mô hình nghiệp vụ .............................. 694
19.3.4 Thuật ngữ tham khảo ............................................................. 695
19.3.5 Từ điển dữ liệu ...................................................................... 695
19.3.6 Tai liệu về chƣơng trình / Thanh phần / Đối tƣợng ............... 700
19.3.7 Các tai liệu trình bay .............................................................. 701
19.3.8 Các trƣờng hợp kiểm tra (Phụ lục O) va kế hoạch kiểm tra .. 702
19.3.9 Tiêu chuẩn đo lƣờng .............................................................. 702
19.3.10 Các hƣớng dẫn hoạt động .................................................... 703
19.3.11 Tập tin trợ giúp ngƣời dùng cuối ......................................... 703
19.3.12 Tai liệu hƣớng dẫn ngƣời dùng ........................................... 704
19.4 BẢO TRÌ TÀI LIỆU ........................................................................... 706
19.5 KẾT LUẬN ......................................................................................... 709
19.6 TÀI LIỆU THAM KHẢO ................................................................... 710
Chƣơng 20 KHẢO SÁT VỀ NĂNG SUẤT VÀ CHẤT LƢỢNG713
20.1 KẾ HOẠCH CHO CHẤT LƢỢNG .................................................... 717
20.2 QUÁ TRÌNH ĐÁNH GIÁ .................................................................. 722
20.3 ĐỘ ĐO GỐC ....................................................................................... 730
20.4 CÁCH CỦA HP .................................................................................. 737
20.5 THE FUNCTION POINT ADVANTAGE ......................................... 741
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xvi
20.6 CÂN BẰNG CHẤT LƢỢNG ............................................................. 753
20.7 KẾT LUẬN ......................................................................................... 756
20.8 TÀI LIỆU THAM KHẢO ................................................................... 757
Chƣơng 21 PUTNAM’S SOFTWARE EQUATION AND SLIM
758
21.1 TỔNG QUAN ..................................................................................... 758
21.2 THỦ TỤC- VẤN ĐẾ- CHÍNH SÁCH ................................................ 760
21.3 TÀI LIỆU THAM KHẢO ................................................................... 765
Chƣơng 22 MÔ HÌNH COCOMO II ............................................ 766
22.1 MỞ ĐẦU ............................................................................................. 766
22.2 MÔ HÌNH THÀNH PHẦN ỨNG DỤNG .......................................... 767
22.3 MÔ HÌNH THIẾT KẾ BAN ĐẦU ...................................................... 771
22.4 MÔ HÌNH POST_ARCHITECTURE ................................................ 773
22.5 TÀI LIỆU THAM KHẢO ................................................................... 775
Chƣơng 23 MẪU ƢỚC TÍNH CHI PHÍ PUTNAM .................... 777
23.1 TỔNG QUAN ..................................................................................... 777
23.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH .................................................. 778
23.3 TÀI LIỆU THAM KHẢO ................................................................... 779
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xvii
Chƣơng 24 MALCOLM BALDRIGE QUALITY AWARD ...... 781
24.1 TỔNG QUAN ..................................................................................... 781
24.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 782
24.2.1 The award is built upon a number of key concepts: .............. 782
24.2.2 Examination categories/items ................................................ 784
Chƣơng 25 ZACHMAN’S FRAMEWORK ................................. 791
25.1 TỔNG QUAN ..................................................................................... 791
25.2 THỦ TỤC / VẤN ĐỀ / CHÍNH SÁCH .............................................. 792
25.3 TÀI LIỆU THAM KHẢO ................................................................... 797
Chƣơng 26 PHƢƠNG PHÁP LINKMAN CHO VIỆC KIỂM
SOÁT CHƢƠNG TRÌNH THÔNG QUA CÁC PHÉP ĐO ........... 798
26.1 TỔNG QUAN ..................................................................................... 798
26.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 800
Chƣơng 27 KELLNER’S NONTECHNOLOGICAL ISSUES IN
SOFTWARE ENGINEERING ........................................................ 800
27.1 TỔNG QUAN ..................................................................................... 800
27.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ............................................... 802
27.3 TÀI LIỆU THAM KHẢO ................................................................... 810
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xviii
27.4 CHUYÊN ĐỀ CHỌN LỌC ................................................................. 810
Chƣơng 28 MARTIN AND CAREY’S SURVEY OF SUCCESS
IN CONVERTING PROTOTYPES TO OPERATIONAL
SYSTEMS 811
28.1 TỔNG QUAN ..................................................................................... 811
28.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 815
Chƣơng 29 KHUYNH HƢỚNG CỦA PUTNAM TRONG SỰ ĐO
LƢỜNG, DỰ ĐOÁN VÀ KIỂM SOÁT ........................................... 823
29.1 TỒNG QUAN ..................................................................................... 823
29.2 THỦ TỤC / VẤN ĐỀ / CHÍNH SÁCH .............................................. 825
Chƣơng 30 KỸ THUẬT CỦA SPRAGUE CHO QUẢN TRỊ CẤU
HÌNH PHẦN MỀM TRONG KỸ NGHỆ PHẦN MỀM DỰA VÀO
ĐO LƢỜNG 831
30.1 TỔNG QUAN ..................................................................................... 831
30.2 THỦ TỤC / VẤN ĐỀ / CHÍNH SÁCH .............................................. 837
30.3 THỦ TỤC PHÁT TRIỂN MỘT QUY TRÌNH SCM .......................... 841
30.4 TÀI LIỆU THAM KHẢO ................................................................... 846
30.5 CHUYÊN ĐỀ CHỌN LỌC ................................................................. 846
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xix
Chƣơng 31 HỆ PHƢƠNG PHÁP LUẬN CỦA CORBIN VỀ
THIẾT LẬP MÔI TRƢỜNG PHÁT TRIỂN PHẦN MỀM .......... 847
31.1 TỔNG QUAN ..................................................................................... 847
31.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH .................................................. 848
Chƣơng 32 BÀY NGUYÊN TẮC CỦA CHẤT LƢỢNG ............ 847
32.1 TỔNG QUAN ..................................................................................... 847
32.2 THỦ TỤC/ VẤN ĐÊ/ CHÍNH SÁCH ................................................ 848
Chƣơng 33 THỐNG KÊ CỦA VỀ NĂNG SUẤT LÀM VIỆC
NHÓM 857
33.1 TỔNG QUAN ..................................................................................... 857
33.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH .................................................. 858
Chƣơng 34 QUAN ĐIỂM CỦA GOULD VỀ TÍNH TIỆN DỤNG
867
34.1 TỔNG QUAN ..................................................................................... 867
34.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH .................................................. 870
34.3 TÀI LIỆU THAM KHẢO ................................................................... 880
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xx
Chƣơng 35 NGUYÊN TẮC CHỈ ĐẠO CỦA PRESCOTT VỀ
VIỆC SỬ DỤNG PHƢƠNG PHÁP CÓ CẤU TRÖC .................... 881
35.1 TỔNG QUAN ..................................................................................... 881
35.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 883
Chƣơng 36 KEMAYEL’S CONTROLLABLE FACTORS IN
PROGRAMMER PRODUCTIVITY .............................................. 891
36.1 TỔNG QUAN ..................................................................................... 891
36.2 THỦ TỤC/VẤN ĐỀ/ CHÍNH SÁCH ................................................. 892
36.3 TÀI LIỆU THAM KHẢO ................................................................... 907
36.4 CHUYÊN ĐỀ CHỌN LỌC ................................................................. 908
Chƣơng 37 THE AT&T’S “ESTIMEETING’ PROCESS FOR
DEVELOPING ESTIMATES .......................................................... 908
37.1 TỔNG QUAN ..................................................................................... 908
37.2 ThỦ TỤC/CHÍNH SÁCH/VẤN ĐỀ ................................................... 912
Chƣơng 38 KHUNG BURN ĐỂ XÂY HỆ THỐNG ĐÁNG TIN
CẬY 921
38.1 TỔNG QUAN ..................................................................................... 921
38.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 923
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xxi
Chƣơng 39 PHƢƠNG PHÁP TIẾP CẬN ĐA DIỆN CỦA
AVISON 930
39.1 TỔNG QUAN ..................................................................................... 930
39.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 931
39.3 TÀI LIỆU THAM KHẢO ................................................................... 938
39.4 CHUYÊN ĐỀ CHỌN LỌC ................................................................. 939
Chƣơng 40 BYRNE’S REVERSE ENGINEERING TECHNIQUE
940
40.1 TỔNG QUAN ..................................................................................... 940
40.2 THỦ TỤC/ VẤN ĐẾ/ CHÍNH SÁCH ................................................ 943
Chƣơng 41 MÔ HINH TAI SỬ DỤNG CỦA PERIETO-DIAZ. 949
42.1 TỔNG QUAN ..................................................................................... 949
41.1 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 950
Chƣơng 42 NHẬN XÉT CỦA FARBEY VỀ CÁC THƢỚC ĐO
CHẤT LƢỢNG PHẦN MỀM TRONG GIAI ĐOẠN QUẢN LÝ
YÊU CẦU 962
42.1 TỔNG QUAN ..................................................................................... 962
42.2 THỦ TỤC/VẤN ĐỀ/ CHÍNH SÁCH ................................................. 964
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xxii
42.3 TÀI LIỆU THAM KHẢO ................................................................... 970
Chƣơng 43 NHỮNG XEM XÉT VỀ CHẤT LƢỢNG CỦA
REDMILL TRONG VIỆC QUẢN LÝ QUÁ TRÌNH PHÁT TRIỂN
PHẦN MỀM 970
43.1 TỔNG QUAN ..................................................................................... 970
43.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH .................................................. 971
43.3 TÀI LIỆU THAM KHẢO ................................................................... 981
43.4 CHUYÊN ĐỀ CHỌN LỌC ................................................................. 981
Chƣơng 44 ĐỘ ĐO CONTEL TRONG KHUNG HOÀN THIỆN
QUY TRÌNH ...................................................................................... 982
44.1 TỔNG QUAN ..................................................................................... 982
44.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH .................................................. 984
44.3 TÀI LIỆU THAM KHẢO ................................................................... 993
44.4 CHUYÊN ĐỀ CHỌN LỌC ................................................................. 993
Chƣơng 45 KYDD’S TECHNIQUE TO INDUCE
PRODUCTIVITY THROUGHT SHARED INFORMATION
TECHNOLOGY ................................................................................ 994
45.1 TỔNG QUAN ..................................................................................... 994
45.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ................................................ 995
CuuDuongThanCong.com https://fb.com/tailieudientucntt
xxiii
45.3 TÀI LIỆU THAM KHẢO ................................................................. 1000
45.4 CHUYÊN ĐỀ CHỌN LỌC ............................................................... 1000
Chƣơng 46 THƢỚC ĐO CHẤT LƢỢNG PHẦN MỀM
BELLCORE 1001
46.1 TỔNG QUAN ................................................................................... 1001
46.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH .............................................. 1003
46.3 TẢI LIỆU THAM KHẢO ................................................................. 1009
46.4 CHUYÊN ĐỀ CHỌN LỌC ............................................................... 1009
Chƣơng 47 GIÁ TRỊ THÔNG TIN CỦA KEYES .................... 1009
47.1 TỔNG QUAN ................................................................................... 1009
48.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH ............................................. 1010
48.3 TÀI LIỆU THAM KHẢO ................................................................ 1012
Chƣơng 48 PHƢƠNG PHÁP CỦA PFLEEGER ĐỂ LỰA CHỌN
CÔNG CỤ CASE DỰA TRÊN SỰ TRƢỞNG THÀNH CỦA QUÁ
TRÌNH 1013
48.1 TỔNG QUAN ................................................................................... 1013
48.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH .............................................. 1015
48.3 TÀI LIỆU THAM KHẢO ................................................................. 1020
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 1
CHƢƠNG 1 GIỚI THIỆU VỀ CÔNG NGHỆ
PHẨN MỀM
Người dịch:
1. Lê Quang Thảo
2. Huỳnh Thảo Hạnh Duy
3. Trịnh Quang Huy
You must start somewhere so I have chosen to start this book at the
beginning with a very brief introduction to software engineering. In this
chapter we are going to touch lightly on topics that we will cover in more
depth in later chapters. Reading this chapter will give you a sense of the
interconnectivity of the myriad of software engineering activities that we
talk about.
Bạn phải bắt đầu tại một nơi nao đó vì vậy bạn có thể chọn quyển
sách nay để bắt đầu với những giới thiệu ngắn gọn về công nghệ phần mềm.
Trong chƣơng nay chúng ta sẽ đi tổng quát hết các chƣơng, sau đó thì
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 2
chúng ta sẽ đi sâu hơn ở những chƣơng kế tiếp. Chƣơng nay sẽ cho bạn một
ý thức về sự nối liền của vô số hoạt động công nghệ phần mềm.
Computer systems come in all shapes and sizes. There are systems
that process e-mail and systems that process payroll. There are also systems
that monitor space missions and systems that monitor student grades. No
matter how diverse the functionality of these systems, they have several
things in common:
Những hệ thống máy tinh có rất nhiều hình dạng va kich thƣớc. Có
những hệ thống xử lý e-mail va những hệ thống xử lý tiền lƣơng nhân viên.
Có những hệ thống giám sát (công việc ngoai vũ trụ - space mission) và
những hệ thống giám sát kết quả học tập của sinh viên. Dù cho chức năng
của chúng có khác nhau đi nữa thì chúng vẫn có các điểm chung sau:
All systems have end users. It is for these end users that the system
has been created. They have a vested interest in seeing that the
system is correctly and efficiently doing what it is supposed to be
doing. You might say that these end users have a ―stake‖ in seeing
that the system is successful so sometimes they are referred to as
―stakeholder‖. There are different types of stakeholders. A good
systems analyst is careful to make sure that he does not leave out
stakeholders erroneously. This is indeed what happened when the
post office started developing the automated system that you now
see in use today at all post offices. This system was developed ―in a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 3
vacuum‖. What this means is that only higher level employees
were involved in system development. The clerks who actually
man the windows were left out of the process; when it came time
for this system to be deployed, the lack of involvement of this
critical set of stakeholders almost led to an employee mutiny.
Tất cả các hệ thống đều có ngƣời dùng cuối: một nha phân tich hệ
thống có khá nhiều quyết định phải đƣa ra. Anh ta phải quyết định
nền tảng để xây dựng hệ thống nay: 1) PC only; 2) mainframe
only; 3) Client/server … Anh ta còn phải quyết định có nên dùng
third-party software (các phần mềm danh cho các nhãn hiệu máy
tính có sẵn nhƣ Word, Excel …). Anh ta thậm chi còn phải quyết
định ngôn ngữ lập trình va loại cơ sở dữ liệu cần dùng.
All systems are written using programming languages. If the IT
(information technology) department is filled with COBOL
programmers, it might not be a wise decision to use Java. If Java is
mandatory, then the systems analyst needs to plan for this by
training existing staff or outsourcing the development effort to a
consulting firm. This information is contained within the
―requirements document‖, which, in this handbook we will call the
system requirements specification, or SRS
Tất cả các hệ thống đƣợc viết đều sử dụng những ngôn ngữ chƣơng
trình: nếu doanh nghiệp IT chỉ gồm những ngƣời viết chƣơng trình
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 4
(programmer) COBOL, nó có thể không phải la một quyết định
khôn ngoan nếu dùng Java. Nếu Java la bắt buộc, khi đó ngƣời
phân tich hệ thống cần có kế hoạch cho nó bằng cách huấn luyện
các nhân viên hoặc outsource sự cố gắng phát triển cho một hãng
cố vấn:D. Thông tin nay thể hiện bên trong ―tai liệu yêu cầu‖
(requirements document) ma trong cuốn sách nay chúng ta sẽ gọi la
―đặc tả các yêu cầu của hệ thống‖ (System Requirements
specification), hoặc SRS
All systems should be designed using a methodology and proper
documentory techniques. There are many developmental
methodologies. The two main generic categories are structured and
object-oriented. The tools and techniques surrounding these
methodologies are part and parcel of ―software engineering‖. A
properly developed system is carefully analyzed and then designed.
The first step of this process is the plan; the next step is the SRS,
and the third step is the design document. Finally implementation,
testing, and then deployment take place. These are some of the
main steps in the software development life Cycle or SDLC.
Tất cả các hệ thống nên đƣợc thiết kế bằng một phƣơng pháp luận
va những kỹ thuật tai liệu đúng chuẩn (proper documentory
techniques): Có nhiều phƣơng pháp luận phát triển. Hai phạm trù
giống loai (generic) chinh la cấu trúc (structured) va hƣớng đối
tƣợng (object-oriented). Những công cụ va kỹ thuật xung quanh
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 5
những phƣơng pháp luận nay la thanh phần va gói ―công nghệ
phần mềm‖. Một hệ thống đƣợc phát triển đúng đắn nghĩa la nó
đƣợc phân tich kỹ lƣơng, sau đó mới thiết kế. Bƣớc đầu tiên của
quá trình nay la lên kế hoạch, bƣớc tiếp theo la SRS, bƣớc thứ 3 la
tai liệu thiết kế. Cuối cùng la sự bổ sung, kiểm tra, va sau đó la
triển khai. Đây la vai bƣớc chinh trong vòng đời phát triển phần
mềm (software development life cycle) hay SDLC.
1.1 SOFTWARE DEVELOPER
I started out in this field as a programmer. In those days (several eons
ago) there were real boundaries between the different types of jobs one
could do. If you were a programmer you did not do analysis work and vice
versa. In fact, most analysts back then knew very little about programming.
Trƣớc đây, có những rao cản phân biệt các nghề nghiệp khác nhau.
Nếu bạn la một programmer, bạn không phải lam công việc phân tich va
ngƣợc lại. Trên thực tế, hầu hết những nha phân tich biết rất it về viết
chƣơng trình.
That has all changed but, typically, you still start out as a
programmer but then the sky‘s the limit. A programmer is a person who
knows one or more programming languages (e.g., Java, C++, etc.). His job
is to read a programming specification, which is usually written by the
systems analyst and then translate that specification into program code.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 6
Mọi chuyện đã thay đổi nhƣng, điển hình, bạn còn có thể bắt đầu
công việc nhƣ một developer tha hồ. Một developer la một ngƣời biết một
hoặc nhiều ngôn ngữ lập trình. Công việc của anh ta la đọc một đặc tả,
thƣờng đƣợc viết bởi những nha phân tich hệ thống va dịch đặc tả đó thanh
những đoạn code.
In most companies the programmer works within project teams that
are managed by a project leader who, in turn, is managed by a project
manager.Each project team has one or more programmers and probably one
or more systems analysts. The programmer works on the code and seldom,
if ever, works with the end users. The systems analysts, on the other hand,
work directly with the end users to develop requirements and specifications
for the system to be designed.
Trong hầu hết công ty, programmer lam việc trong những đội dự án
đƣợc quản lý bởi ngƣời lãnh đạo dự án (project leader), ngƣời nay lại đƣợc
quản lý bởi ngƣời quản lý dự án. Mỗi đội dự án có một hoặc nhiều
programmer va chắc chắn phải có một hoặc nhiều nha phân tich hệ thống.
Programmer lam việc trên code va hiếm khi, nếu có, lam việc trực tiếp với
ngƣời dùng cuối. Mặt khác, nha phân tich hệ thống lam việc trực tiếp với
ngƣời dùng cuối để phát triển các yêu cầu va đặc tả cho hệ thống để đƣợc
thiết kế.
A programmer can lack all the social graces because few ―outsiders‖
deal with him, but the systems analyst is on the front lines. He needs to be
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 7
articulate, friendly, and a good listener. The systems analyst must also have
the capability to pay a great deal of attention to detail and be creative in
coming up with techniques for uncovering hidden information. For
example, when developing the FOCUS system, I needed to uncover
hundreds of mathematical formulas that could be used to analyze the
financial forms. I also had to design dozens of screens that could be utilized
efficiently by the end users. Instead of designing the screens (this was pre
Internet days), I turned the end users loose with a word processing
programmer and asked them to list the information they wanted to see and
where they wanted to see it. This is called JAD, or joint application
development.
Một programmer có thể không có tất cả những kỹ năng giao tiếp xã
hội vì rất it những yếu tố bên ngoai tác động đến anh ta; nhƣng nhà phân
tich hệ thống lại gặp vấn đề nay. Anh ta cần có khả năng ăn nói lƣu loát,
thân thiện va la một ngƣời biết lắng nghe. Nah phân tich hệ thống còn phải
tỉ mỉ va sáng tạo trong việc nghĩ ra những kỹ thuật để lấy đƣợc những thông
tin đã đƣợc giấu. Vi dụ khi phát triển hệ thống FOCUS, tác giả cần khám
phá ra hang trăm công thức toán học ma có thể đã từng đƣợc dùng để phân
tich các mẫu đơn tai chinh. Tác giả còn phải thiết kế hang tá man hình ma
có thể đã đƣợc sử dụng hiệu quả bởi ngƣời dùng cuối. Thay vì thiết kế các
man hình (giai đoạn trƣớc Internet), tác giả đã tham khảo ý kiến của những
ngƣời dùng cuối những thông tin nao họ muốn thấy, va họ muốn chúng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 8
nằm ở đâu. Nó gọi la JAD, joint application development (phát triển ứng
dụng chung).
When I first starting working for the New York Stock Exchange, I
was responsible for building a computer system that processed a series of
financial forms (like your tax forms) that were required to be filled out by
the various member firms (e.g., Merrill Lynch) of the Exchange. These
forms contained hundreds of financial items.
Khi tác giả bắt đầu lam việc cho NY Stock Exchange, ông đã đƣợc
giao nhiệm vụ xây dựng hệ thống máy tinh để xử lý một dãy những mẫu
đơn tai chinh đƣợc yêu cầu điền vao bởi những hãng thanh viên khác nhau
của Exhange. Những mẫu đơn nay chứa hang trăm chi tiết tai chinh.
My job as an analyst was to work with the people in the regulatory
department who understood how to process these forms these were the end
users. Our job was a hard one; the financial forms were complex. The end
users were accountant types with vast experience in interpreting these
forms. The reason for looking at these forms at all was to determine
whether the firm (i.e., Merrill Lynch) was financially healthy — a very
important job.
Công việc của một nha phân tich nhƣ ông ta la lam việc với những
ngƣời trong phòng ban điều tiết (regulatory department)- những ngƣời hiểu
cách thức xử lý những mẫu đơn nay – họ chinh la ngƣời dùng cuối. Công
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 9
việc của họ rất cực nhọc, những mẫu đơn quá phức tạp. Những ngƣời dùng
cuối la những nhân viên kế toán với kinh nghiệm lâu năm trong việc phiên
dịch những mẫu đơn nay. Lý do cho việc nhìn vao những mẫu đơn nay la
để xác định một hãng có đang khỏe mạnh về tai chinh hay không- một công
việc vô cùng quan trọng.
As the systems analyst on the job I had to meet regularly with these
end users to try to ―pick their brains‖. We met several times a week to work
on the project. There was lots of yelling and screaming and tons of pizza. In
the end, however, we developed a document that was quite detailed in
describing everything that the system — called FOCUS — was supposed to
do. Once this document was complete it was turned over to the
programmers whose job it was to turn the document into a complete
working system.
Công việc của một nha phân tich hệ thống la phải gặp gơ thƣờng
xuyên với những ngƣời dùng cuối để học thông tin. Tác giả đã phải gặp
những ngƣời kế toán nay vai lần mỗi tuần để lam dự án. Đã có nhiều tiếng
la ó, kêu thét, va hang tấn bánh pizza. Tuy nhiên, cuối cùng, họ đã phát
triển đƣợc một tai liệu vô cùng chi tiết trong việc mô tả mọi thứ ma hệ
thống đó- tên là FOCUS- cần thực thi. Một khi tai liệu nay hoan tất, nó
đƣợc chuyển giao cho những programmer- ngƣời có nhiệm vụ chuyển
những tai liệu đó thanh một hệ thống hoạt động hoan chỉnh.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 10
As you can see from my description, I have left a few job titles out of
the picture because each organization is structured a bit differently. For the
most part, when one develops a system at least two departments are
involved. One is the end-user department (e.g., marketing, operations). The
end users have a ―need‖ for a system to be developed or modified. They
turn to the computer department, sometimes called IS (information
systems), MIS (management information systems), or IT (information
technology) to help them turn this need into a working system.
Nhƣ bạn có thể thấy từ mô tả của tác giả, tác giả đã bỏ một it tên
công việc khỏi bức tranh vì mỗi tổ chức đƣợc tổ chức kháu nhau. Phần lớn,
khi một ngƣời phát triển một hệ thống thì có it nhất 2 phòng ban trong đó.
Một la phòng ban của ngƣời dùng cuối (nhƣ tiếp thị). Những ngƣời dùng
cuối có một yêu cầu để hệ thống để phát triển va sửa đổi. Họ trở thanh
phòng ban máy tinh, thƣờng gọi la IS (information systems), MIS
(management information systems), hoặc IT (information technology) để
giúp họ chuyển yêu cầu đó thanh hệ thống hoạt động.
The end-user department is composed of experts who do a particular
task. Maybe they are accountants or maybe they are in marketing they still
are experts in what they do. They are managed, just like IS people, by
managers. We can refer to these managers as business managers just like
we refer to a computer manager as an IS manager. Although most systems
analysts work directly with those that report to the business manager, the
business manager still plays a critical role. We need to turn to him if we
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 11
need some information from the entire department or we need to have
something done that only the business manager can direct.
Phòng ban ngƣời dùng cuối bao gồm các chuyên gia lam những công
việc riêng biệt. Có thể họ la những nhân viên kế toán hoặc có thể họ lam
trong lĩnh vực marketing- họ vẫn la chuyên gia trong công việc họ lam. Họ
đƣợc quản lý, giống nhƣ những nhân viên IS, bởi những ngƣời quản lý.
Chúng ta có thể kể đến những nha quản lý nay nhƣ những ngƣời quản lý
kinh doanh nhƣ cách chúng ta mô tả những nha quản lý máy tinh nhƣ một
quản lý IS.
1.2 SDLC - VÕNG ĐỜI PHÁT TRIỂN HỆ THỐNG
The development of computer systems has many moving parts. Each
of these parts has a name — i.e., analysis, design, etc. We call the entirety
of these steps a systems development life cycle.
Sự phát triển của những hệ thống máy tinh có rất nhiều thanh phần
động. Mỗi thanh phần nay có một cái tên- phân tich, thiết kế … vân vân.
Chúng ta gọi toan bộ các bƣớc nay la một vòng đời phát triển hệ thống.
Why do we call this a life cycle? A system has a life of its own. It
starts out as an idea and progresses until this idea germinates and then is
born. Eventually, when the system ages and is obsolete, it is discarded or
―dies‖. So ―life cycle‖ is really an apt term.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 12
Tại sao lại gọi la vòng đời? Một hệ thống có một cuộc sống của riêng
nó. Nó bắt đầu nhƣ la một ý tƣởng va tiến triển cho đến khi ý tƣởng nay nảy
mầm va sau đó ra đời. Về sau, khi hệ thống ―gia đi‖va lỗi thời, nó bị loại bỏ
hoặc ―chết‖. Vì thế ―vòng đời‖ thật sự la một thuật ngữ thich hợp.
The idea phase of the SDLC is the point at which the end user,
systems analyst, and various managers meet for the first time. This is where
the scope and objectives of the system are fleshed out in a very high-level
document.
Mặt ý tƣởng của SDLC la điểm ma ở đó ngƣời dùng cuối, nha phân
tich hệ thống, va những nha quản lý khác nhau gặp nhau lần đầu tiên. Đây
la nơi ma mục đich của những hệ thống đƣợc bổ sung trong một tai liêu cấp
cao.
Next, a team composed of one or more systems analysts and end
users tries to determine whether the system is feasible. Systems can be
NOT feasible for many reasons: too expensive, technology not yet
available, not enough experience to create the system; these are just some
of the reasons why a system will not be undertaken.
Sau đó, một đội tạo sắp xếp hoặc nhiều nha phân tich hệ thống va
ngƣời dùng cuối cố gắng xác định một hệ thống có khả thi hay
không.Những hệ thống không thể khả thi vì một số lý do sau: giá thanh quá
cao, công nghệ chƣa phát triển tới, không đủ kinh nghiệm để xây dựng hệ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 13
thống; đó la một vai lý do giải thich vì sao một hệ thống sẽ không đƣợc xây
dựng.
Once the system is determined to be feasible, systems analysis is
initiated. This is the point when the analysts put on their detective hats and
try to ferret out all the rules and regulations of the system. What are the
inputs? What are the outputs? What kind of online screens will there be?
What kind of reports will be needed? Will paper forms be required? Will
any hook-ups to external files or companies be required? How shall this
information be processed? As you can see, much work needs to be done at
this point and many questions need to be answered. In the end, all of the
answers to these questions will be fully documented in a requirements
document.
Một khi hệ thống đƣợc xác định la khả thi, những bản phân tich hệ
thống sẽ khởi tạo. Đây la thời điểm khi ma nha phân tich đặt mũ thám tử
xuống va có gắng khám phá tất cả những quy luật va quy tắc của hệ thống.
Input va output những gì? Những loại man hình trực tuyến nao sẽ có?
Những loại báo cáo nao cần thiết? Những mẫu đơn có đƣợc yêu cầu không?
Có bất cứ sự móc nối nao tới những file bên ngoai hoặc công ty đƣợc yêu
cầu không? Thông tin sẽ đƣợc xử lý nhƣ thế nao? Nhƣ bạn thấy, nhiều công
việc cần đƣợc lam tại thời điểm nay va nhiều câu hỏi cần đƣợc trả lời. Cuối
cùng, tất cả những câu trả lời cho những câu hỏi đó sẽ đƣợc hoan toàn tài
liệu hóa thanh những tai liệu yêu cầu.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 14
Once all the unknowns are known and are fully documented, the
systems analyst can put flesh on the skeleton by creating high-level and
then detailed designs. This is usually called a specification and can be
hundreds of pages long. This document contains flowcharts, file and
database definitions, and detailed instructions for the writing of each
program
.Một khi tất cả những điều không biết đƣợc sáng tỏ va đƣợc tai liệu
hóa, nha phân tich hệ thống có thể thêm da thịt vao bằng cách tạo ra những
thiết kế cấp cao, sau đó la thiết kế chi tiết. Việc nay thƣờng đƣợc gọi la đặc
tả va có thể dai hang trăm trang giấy. Tai liệu nay chứa biểu đồ tiến trình,
tập tin va những định nghĩa cơ sở dữ liệu, va những lời chỉ dẫn cụ thể trong
việc viết mỗi chƣơng trình.
All along the way, the accuracy of all of these documents is checked
and verified by having the end users and analysts meet with each other. In
fact,most approaches to system development utilize the creation of a project
team consisting of end users and IS staff. This team meets regularly to work
on the project and verify its progress.
Ngay từ đầu, sự chinh xác của những tai liệu nay đã đƣợc kiểm tra
cùng lúc bởi những ngƣời dùng cuối va nha phân tich. Trên thực tế, hầu hết
đich đến sự phát triển hệ thống đều sử dụng sự sáng tạo của một nhóm dự
án gồm có ngƣời dùng cuối va IS staff. Nhóm nay thƣờng xuyên gặp gơ để
lam việc trên dự án va xác định tiến triển của dự án.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 15
Once a complete working specification is delivered to the
programmers,implementation can get underway. For the FOCUS system,
we turned the specification over to a team of about 20 programmers. The
systems analyst, project leader, and project manager were all responsible
for making sure that the implementation effort went smoothly.
Programmers coded code and then tested that code. When this first level
(unit testing) of testing was done, there were several other phases of testing
including systems testing, parallel testing, and integration testing. Many
companies have QA (quality assurance) departments that use automated
tools to test the veracity of systems to be implemented.
Một khi sự đặc tả công việc hoan tất đƣợc chuyển đến cho những
programmer, dự án bắt đầu tiến hanh. Cho hệ thống FOCUS, họ đã ban
giao tất cả các đặc tả cho một đội gồm 20 programmer. Nha phân tich hệ
thống, lãnh đạo dự án, va quản lý dự án có trách nhiệm trong việc đảm bảo
quá trình diễn ra suôn sẻ. Các programmer viết code, sau đó kiểm thử các
code nay. Khi cấp độ đầu tiên của việc kiểm tra (unit testing) hoan tất, sẽ
có vai công đoạn test khác bao gồm systems testing, parallel testing, va
integration testing. Nhiều công ty có những phòng ban kiểm tra chất lƣợng
dùng những công cụ để kiểm thử tinh chinh xác của hệ thống.
Once the system has been fully tested, it is turned over to production
(changeover). Usually, just prior to this, the end-user departments (not just
the team working on the project) are trained and manuals distributed. The
entire team is usually on call during the first few weeks of the system after
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 16
changeover because errors often crop up and it can take several weeks for
the system to stabilize.
Một khi hệ thống đã đƣợc kiểm thử hoan chỉnh, nó đƣợc chuyển giao
để trở thanh sản phẩm. Thông thƣờng, trƣớc đó, phòng ban ngƣời dùng
cuối (không chỉ đội lam việc trong project đó) đƣợc huấn luyện va đƣợc
phân bổ. Toan bộ đội thƣờng sẵn sang ứng cứu trong suốt những tuần đầu
tiên của hệ thống sau khi thay đổi hệ thống lam việc vì những lỗi thƣờng
xảy ra va tốn vai tuần cho hệ thống ổn định.
After the system is stabilized, it is evaluated for correctness. At this
point a list of things to correct as well as a ―wish list‖ of things that were
not included in the first phase of the system is created and prioritized. The
team, which consisted of technical and end-user staff, usually stays put and
works on the future versions of the system.
Sau khi hệ thống ổn định, nó đƣợc đánh giá về độ chinh xác. Tại thời
điểm nay, một danh sách những điều đúng cũng nhƣ la một ―danh sách mơ
ƣớc‖ không bao gồm trong công đoạn đầu tiên la … Đội gồm có đội ngũ
ngƣời dùng cuối va chuyên viên kỹ thuật thƣờng lam việc cho những phiên
bản trong tƣơng lai của hệ thống
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 17
1.3 HỌC TẬP TÍNH KHẢ THI: BƢỚC ĐẦU TIÊN
It never pays to jump into developing a system. Usually, it is a good
idea to conduct a feasibility study first. The easiest part of the feasibility
study is determining whether the system is technically feasible. Sometimes,
however, it might not be feasible because the company does not have the
technical expertise to do the job. A good systems analyst will go one step
further and see if it is feasible to outsource (i.e., let someone else do it) the
project to people who can do the job. Sometimes, the technology is just not
robust enough. For example, many years ago I wanted to deliver voice
recognition devices to the floor of the New York Stock Exchange. The
technology at that time was just too primitive so the entire project was
deemed not feasible.
Không bao giờ nhảy vao phát triển một hệ thống. Thông thƣờng,
hƣớng dẫn học tập tinh khả thi đầu tiên la một ý hay. Phần dễ nhất của học
tập tinh khả thi la xác định khi nao hệ thống khả thi về mặt kỹ thuật. Tuy
nhiên, thông thƣờng, nó có thể không khả thi vì công ty không có sự thanh
thạo kỹ thuật để lam việc. Một nha phân tich hệ thống giỏi sẽ đi từng bƣớc
va nhìn nó khả thi để giao project cho ngƣời có thể lam. Thỉnh thoảng, công
nghệ không đủ tinh vi. Vi dụ, nhiều năm trƣớc tác giả muốn đặt máy nhận
diện giọng nói tại tầng trệt của New York Stock Exchange. Công nghệ lúc
bấy giờ rất thô sơ, vì thế toan bộ dự án tƣởng rằng không khả thi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 18
Discovering that the project is feasible from a technical perspective
but would require vast organizational changes (e.g., creation of new end-
user departments) adds a layer of complexity to the problem. This, then,
would make the project organizationally not feasible.
Nhận ra rằng dự án khả thi với công nghệ trong tƣơng lai nhƣng lại
yêu cầu vô số thay đổi trong cơ quan (vd: sự sáng tạo của phòng ban ngƣời
dùng cuối mới) đã lam tăng thêm độ phức tạp cho vấn đề. Nó lam cho dự án
lại một lần nữa không khả thi.
Finally, the project just might cost too much money. To figure this
out will require you to perform a cost/benefit analysis (take out those
spreadsheets). To do this, you must figure out an estimated cost for
everything you wish to do, including cost of hardware, cost of software,
cost of new personnel, cost of training, etc. Then you need to calculate the
financial savings for creating the new system: reduce staff by one third;
save 5 hours a day. Sometimes the benefits are intangible; for example,
allowing us to compete with our major competitor.
Cuối cùng, dự án có thể sẽ lam tiêu tốn khá nhiều tiền. Để tinh toán
nó, yêu cầu chúng ta thực hiện một bản phân tich chi phi/lợi nhuận. Để thực
hiện điều nay, chúng ta phải tinh toán giá trị có thể đánh giá đƣợc cho mọi
thứ bạn muốn lam, bao gồm chi phi phần cứng, chi phi phần mềm, chi phi
cho nhân viên mới, chi phi huấn luyện.. Sau đó chúng ta cần phải tinh toán
số tiền tiết kiệm đƣợc khi xây dựng hệ thống mới: giảm số nhân viên đi một
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 19
phần 3, tiết kiệm đƣợc 5 giờ mỗi ngay. Thỉnh thoảng lợi nhuận rất mơ hồ;
vi dụ: để họ cạnh tranh với đối thủ lớn nhất của họ.
Once it has been determined that the project is feasible, a project
plan is created that plots out the course for the entire systems development
effort — i.e., budget, resources, schedule, etc. The next step, then, is to start
the actual analytical part of systems development. For that we need to
collect some information. (See Chapter 2 for more information on
feasibility studies.)
Một khi xác định đƣợc rằng dự án la khả thi, một kế hoạch dự án sẽ
đƣợc tạo ra những sơ đồ cho tất cả cố gắng của sự phát triển hệ thống- VD:
ngân quỹ, tai nguyên, thời khóa biểu … Bƣớc tiếp theo la thực sự bắt đầu
phần phân tich của sự phát triển hệ thống. Để lam đƣợc điều nay chúng ta
cần thu thập vai thông tin.
1.4 CÁC CÁCH THU THẬP THÔNG TIN
One of the first things you will do when starting a new project is to
gather information. Your job is to understand everything about the
department and proposed system you are automating. If you are merely
modifying an existing system, you are halfway there. In this case you will
review all of the system documentation and the system itself, as well as
interview the end users to ferret out the changed requirements.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 20
Việc đầu tiên ma bạn sẽ lam khi bắt đầu 1 dự án mới đó la thu thập
thông tin. Công việc của bạn la phải tìm hiểu tất cả mọi thứ về các bộ phận
va các hệ thống tự động hóa. Nếu bạn định hƣớng đƣợc một hệ thống đã có
trƣớc thì bạn đã đi đƣợc ½ chặng đƣờng. Trong trƣờng hợp nay bạn sẽ xem
lại tất cả những hệ thống va những tai liệu của nó cũng nhƣ các cuộc phỏng
vấn ngƣời dùng đƣa ra các yêu cầu thay đổi.
How can you make sense out of a department and its processes when
you do not know anything about it? One of the things you do is to act like a
detective and gather up every piece of documentation you can find. When I
built the FOCUS system, I scrounged around and managed to find policy
manuals and memos that got me part of the way toward understanding what
these people did for a living. Other sources of information include: reports
used for decision making; performance reports; records; data capture forms;
Websites; competitors‘ Web sites; archive data. Passive review is seldom
enough, however. The next step is to be a bit more active and direct.
Lam thế nao để bạn có thể hiểu đƣợc về chức năng của một bộ phận
va những qui trình của nó khi bạn không biết gì về nó? Một trong những
điều bạn lam la thu thập tất cả tai liệu bạn tìm thấy. Khi bạn xây dựng 1 hệ
thống chinh, bạn phải xoáy xung quanh nó va quản lý tất cả những chinh
sách, bộ nhớ hệ thống,nó giúp ta hiểu đƣợc những gì ma con ngƣời đã lam
cho cuộc sống. Những thông tin bao gồm nhƣ bản báo cáo về các quyết
định, hiệu suất, hồ sơ, các trang web, trang web của đối thủ cạnh tranh
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 21
mình, dữ liệu lƣu trữ. Không nên xem xét vấn đề một cách thụ động ma
phải chủ động va trực tiếp.
The first thing you can do is to interview end users. For our FOCUS
project, I had already created a project team consisting of tech people
and end users; however, I decided that it would be worthwhile to interview
a representative sampling of people working in different jobs that ―touched‖
the process to be automated.
Việc đầu tiên ma bạn có thể lam la phỏng vấn những ngƣời dùng
cuối. Để thực hiện dự án của mình, thì tôi đã lập ra 1 đội ngũ gồm có những
nhân viên va ngƣời dùng cuối, tuy nhiên tôi đã quyết định rằng thật quan
trọng khi mở một cuộc phỏng vấn những ngƣời đại diện cho những công
việc khác nhau.
You cannot interview someone without preparation. This consists
first of understanding all that you can about the job and person being inter
viewed and then preparing a set of questions for this person. However,
sometimes an interview is insufficient to meet your needs. Your subject
may not be able to articulate what he or she does. The next step, then, is to
observe the person at his job.
Bạn không thể phỏng vấn 1 ngƣời nao đó ma không có sự chuẩn bị.
Điều đầu tiên la bạn phải hiểu đƣợc tất cả về công việc va những ngƣời
đƣợc phỏng vấn, sau đó chuẩn bị những câu hỏi cho những ngƣời nay. Tuy
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 22
nhiên đôi khi cuộc phỏng vấn la không đáp ứng đủ những đòi hỏi của
bạn.Có thể những gì họ lam không an khớp với dự án của bạn. Vì vậy bƣóc
tiếp theo la quan sát những ngƣời đó trong công việc.
I‘ve done much work in the artificial intelligence arena where
observation is a large part of the systems analysis process. One of the case
histories people in the field often talk about is one concerning building a tax
expert system.
Tôi đã lam việc trong những công ty về tri tuệ nhân tạo la những nơi
mà sự quan sát la một phần lớn trong những tiến trình phân tich hệ thống.
Một trong những trƣờng hợp lịch sử ma ngƣời trong lĩnh nay thƣờng nói về
đó la một vấn đề liên quan đến chuyên gia xây dựng hệ thống thuế.
At one end of a large table sat a junior accountant. A large number of
tax books were piled in front of the junior accountant At the other end sat
some of the most senior tax accountants at the firm. Nothing was piled in
front of them. In the center of the table sat the systems analyst armed with a
video recorder. This person was armed with a script that contained a
problem and a set of questions. The task at hand was for the junior
accountant to work through the problem guided by the experts. The experts
had nothing to refer to but what was in their memories. Thus they were able
to assist the junior accountant to solve the problem while the video camera
recorded the entire process.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 23
Có một cái ban lớn. Một đầu ban la ngƣời kế toán cơ sở ngồi, một số
lƣợng lớn thuế sách đã đƣợc chồng chất trƣớc mặt ngƣời kế toán đó. Một
đầu ban kia la một số quan chức cao cấp kế toán thuế của công ty. Trƣớc
mặt họ thì không có gì. Ở trung tâm của ban la các nha phân tich hệ thống
trang bị một máy ghi hình. Ngƣời nay đã có những kế hoạch cho riêng
mình. Các công việc bằng tay thì ngƣời kế toán cơ sở phải lam thông qua sự
hƣớng dẫn của các chuyên gia. Các chuyên gia thì không có gì phải đề cấp
đến nhƣng kiến thức thì đã nằm trong đầu của họ. Vì vậy họ đã có thể hỗ
trợ ngƣời kế toán giải quyết vấn đề trong khi các máy video ghi lại toan bộ
quá trình.
Observation can only be done selectively — a few people at the
most. Another technique, which will let you survey a broad number of
people at one time, is the questionnaire. Building a questionnaire requires
some skill. There are generally two types of questions:
Quan sát chỉ có thể chọn lọc ra 1 số ngƣời trong toan bộ. Một
phƣơng pháp khác la khảo sát một số lƣợng lớn ngƣời trong một thời gian
bằng 1 bảng câu hỏi. Xây dựng bảng câu hỏi yêu cầu 1 vai kĩ năng. Có 2
loại câu hỏi tổng quát:
Open-ended:
1. What are the most frequent problems you have in buying books
from a book store?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 24
2. Of the problems listed above, what is the single most
troublesome?
Closed:
1. The tool is used as part of the program development cycle to
improve quality 1 2 3 4 5
(circle appropriate response, where 5 is the highest score)
Câu hỏi mở:
1. Những vấn đề nao bạn thƣờng gặp khi mua sách ở cửa hang
sách.
2. Trong những vấn đề ở trên bạn thấy cái nao la khó khăn nhất.
Đóng:
Công cụ nao đƣợc sử dụng nhƣ 1 phần của chu kỳ phát triển để nâng
cao chất lƣợng sản phẩm.
A good questionnaire will probably be a combination of both types
of questions (hybrid). It is also important to make sure that you format your
questionnaire for easy readability (lots of white space and even spacing),
put all the important questions first (in case the respondents do not finish
the survey), and vary the type of question so that participants do not simply
circle 5s or 1s all the way down the page.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 25
Một bảng câu hỏi tốt la sự kết hợp của 2 loại câu hỏi trên. Đó cũng la
quan trọng để đảm bảo định dạng bảng câu hỏi của bạn để ngƣời khác đọc
một cách dễ dang (rất nhiều khoảng trắng, thậm chi có cả dấu cách). Đặt tất
cả những câu hỏi quan trọng lên đầu tiên (đề phòng trong trƣờng hơp ngƣời
đƣợc khảo sát không hoan thanh xong) va thƣờng xuyên thay đổi các loại
câu hỏi.
1.5 SƠ ĐỒ HỆ THỐNG HAY MÔ HÌNH HỆ THỐNG
You can use a wide variety of techniques to describe your problem
and its solution diagrammatically as well as a wide variety of tools that can
assist you in drawing these diagrams. One of the diagrammatic techniques
is flowcharting and the tool of choice is Microsoft Visio, as shown in
Exhibit 1-1.
Bạn có thể dùng nhiều những kĩ thuật khác nhau để miêu tả những
vấn đề của bạn va nó có thể giúp bạn trong việc vẽ những biểu đồ.Một
trong những phần mềm dùng để vẽ biểu đồ đó la Microsoft Visio va nó
đƣợc thể hiện ở hình 1-1.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 26
Exhibit 1-1.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 27
One of the most practical of tools is the DFD, or data flow diagram,
as shown in Exhibit 1-2. DFDs are quite logical, clear, and helpful when
building systems — even Web-based systems. All inputs, outputs, and
processes are recorded in a hierarchical fashion. The first DFD (referred to
as DFD 0) is often the system from a high-level perspective. Child DFDs
get much more detailed. Exhibit 1-2 is a snippet of a real online test system
— a rather complicated system that lets people take tests online. This
particular DFD shows the data flow through the log-in process. The
rectangular boxes (i.e., D5) are the data stores. Notice that D5 is an online
cookie; D1, on the other hand, is a real database. It is a relational database
and this is one particular table. The databases and their tables are defined in
a data dictionary. The square box is the entity (i.e., test taker) and can be a
person, place, or thing; the other boxes are process boxes. Process 1.1 is the
process for Get Name. There will be a child DFD labeled 1.1 Get Name. 1.1
Get Name will also appear in a process dictionary that will contain a
detailed specification for how to program this procedure.
Một trong những công cụ thiết thực la DFD, hay la sơ đồ luồng dữ
liệu,biểu diễn trong hình 1-2. DFD hết sức logic, dễ hiểu, va tiện dụng khi
bạn xây dựng một hệ thống – dù la hệ thống đƣợc xây dựng dựa trên web.
Tất cả những đầu vao, đầu ra va các tiến trình đều đƣợc ghi lại theo thứ tự
rập khuôn. DFD cấp đầu tiên la cấp 0 thƣờng la hệ thống nhìn từ góc độ cao
nhất. Những DFD con thì sẽ chứa đƣợc nhiều thông tin chi tiết hơn. Hình 1-
2 la một đoạn nhỏ của hệ thống kiểm tra trực tuyến – nói đúng hơn la một
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 28
hệ thống phức tạp ma ngƣời ta cần phải kiểm tra trƣc tuyến. Mô hình DFD
riêng biệt nay biểu diễn những luồng dữ liệu thông qua việc đăng nhập tai
khoản. Hình chữ nhật (vi dụ nhƣ D5) sẽ chứa dữ liệu. Chú ý D5 la một
cookie trực tuyến, D1 la cơ sở dữ liệu thật. Nó la một cơ sở dữ liệu quan hệ
va ở đây la một cái ban riêng biệt. Hình vuông ở đây la những thực thể, có
thể la ngƣời, nơi hay la sự vật, còn những hình khác la những tiến trình.
Tiến trình 1.1 la tiến trình lấy tên ngƣời dùng. Tiến trình nay sẽ bao gồm
những đặc tả chi tiết nhất cho những chƣơng trình, thủ tục nay.
Other modeling tools include:
• Entity relationship diagram. An ERD is a database model that
describes the attributes of entities and the relationships among them. An
entity is a file (table). Today, ER models are often created graphically, and
software converts the graphical representations of the tables into the SQL
code required to create the data structures in the database as shown in
Exhibit 1-3.
• State transition diagram. An STD describes how a system behaves
as a result of external events. In Exhibit 1-4 we see the effects of a person
reporting a pothole.
• Data dictionary. The data dictionary is a very organized listing of
all data elements that pertain to the system. This listing contains some very
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 29
specific information as shown in Exhibit 1-5. It should be noted that there
are many variations in the formats of data dictionaries.
• Process specification. The PSPEC describes the ―what, when,
where, and how‖ of the program in technical terms. It describes just how
the process works and serves to connect the DFD to the data dictionary.
It uses pseudocode (sometimes called structured English or Program
Definition Language — PDL) to explain the requirements for programming
the process to the programmer. An example is shown in
Exhibit 1-6. Other ways of representing process logic are:
—A decision table
—A decision tree
—A mathematical formula
—Any combination of the above
• Class diagrams.Analysts working on an OO (object-oriented
system) will utilize OO tools and diagrammatic techniques. One of these is
a class diagram drawn using UML or unified modeling language. A class
diagram is shown in Exhibit 1-7.
Những công cụ mô hình khác gồm có:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 30
Mô hình quan hệ thực thể. ERD la một mô hình dữ liệu ma nó
miêu tả tất cả các thuộc tinh của thực thể va mối quan hệ giữa
chúng. Một thực thể la một bảng. Ngay nay mô hình ERD thƣờng
đƣợc tạo ra một cách sinh động va những phần mềm chuyển từ
những biểu đồ sang những dòng code SQL thì cần thiết phải tạo
một cấu trúc dữ liệu trong cơ sở dữ liệu hình 1-3
Biểu đồ chuyển tiếp trạng thái. Đó la STD.
Dữ liệu từ điển la một danh sách sắp xếp trật tự bao gồm tất cả
những thông tin thanh phần ma nó gắn liền với hệ thống. Danh
sách nay bao gồm một vai thông tin chi tiết, cụ thể nhƣ hình 1-
5.Nó nên đƣợc chú ý nhiều bởi vì luôn có nhiều sự biến đổi trong
dữ liệu từ điển
Tiến trình đặc tả. Đó la PSPEC miêu tả ―la gì, khi nao, ở đâu va
nhƣ thế nao‖ của chƣơng trình trong giới hạn kĩ thuật. Nó miêu tả
tiến trình lam việc va phục vụ cho sự kết nối DFD đến dữ liệu từ
điển.Nó giải mã (thỉnh thoảng ngƣời ta gọi la structured English
hay là Program Definition Language – PDL) để giải thich những
yêu cầu, tiến trình của chƣơng trình cho ngƣời lập trình. Vi dụ nhƣ
trong hình 1-6. Những cách khác để trình bay 1 tiến trình logic la:
— A decision table
— A decision tree
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 31
— A mathematical formula
— Any combination of the above
Những nha phân tich mô hình lớp lam việc trên các hệ thống
hƣớng đối tƣợng sẽ sử dụng công cụ hƣớng đối tƣợng va những
biểu đồ kĩ thuật. Một trong những cách đó la sử dụng UML hay la
mô hình ngôn ngữ hợp nhất. Một mô hình lớp đƣợc thể hiện ở hình
1-7
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 32
1.6 PHƢƠNG PHÁP LUẬN PHÁT TRIỂN
The Software Engineering Institute, which is part of Carnegie
Mellon, in Pittsburgh, Pennsylvania, is famous for a framework that
describes software process maturity. A summary of the five phases appears
in Exhibit 1-8. Read this while keeping in mind that most organizations,
sadly, are at stage 2 or 3.
Software Engineering Institute, một phần của Carnegie Mellon, rất
nổi tiếng về framework diễn tả quá trình tiến triển của phần mềm. Kết luận
cho 5 giai đoạn xuất hiện trong Exhibit 1-8. Đọc nó va phải nhớ rằng phần
lớn tổ chức nằm ở chặng 2 va 3.
Companies that have achieved a stage 2 process maturity or higher
make use of methodologies to ensure that the company achieves a
repeatable level of quality and productivity. Many methodologies are
available for use. Some of these are vendor driven — i.e., they are used in
conjunction with a software tool set. In general, methodologies can be
categorized as follows. It should be noted that a methodology can be used
in conjunction with another methodology:
Những công ty đạt đƣợc chặng 2 của quá trình tiến triển hoặc cao
hơn sử dụng phƣơng pháp luận để củng cố những thanh tựu, chất lƣợng va
năng suất của công ty. Có rất nhiều phƣơng pháp luận đang đƣợc sd va
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 33
đƣợc chia than những nhóm chinh sau. Phải nhớ la phƣơng pháp luận có thể
đƣợc sử dụng kết hợp với nhau
• System development life cycle (SDLC). This is a phased, structured
approach to systems development. The phases include requirements
feasibility, analysis, system design, coding, testing, implementation, and
testing. Please note that there are variations of these stated phases. Usually,
each phase is performed sequentially, although some potential for overlap
exists. This is the methodology used most often in industry.
System development life cycle (SDLC) Đây la cách tiếp cận về cấu
trúc va giai đoạn trong sự phát triển hệ thống. Những giai đoạn bao gồm
yêu cầu về tinh khả thi, sự phân tich, thiết kế hệ thống, cai đặt, kiểm tra. Có
rất nhiều giai đoạn, chúng co thể tuần tự mặc dù một số lại tiềm tang khả
năng chồng chéo lên nhau. Phƣơng pháp luận nay sd chủ yếu trong công
nghiệp
• Iterative (prototyping). Most of this approach is used to replace
several of the phases in the SDLC, in which the ―time to market‖ can be
months (sometimes years). During this time, requirements may change;
therefore the final deliverable might be quite outmoded. To prevent this
from happening, it is a good idea to try to compress the development cycle
to shorten this time to market and provide interim results to the end user.
The iterative model consists of three steps: 1) listen to the customer; 2)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 34
build or revise a mock-up; 3) enable customer to test drive the mock-up and
then return to step 1.
Iterative (prototyping) Phần lớn cách tiếp cận nay đƣợc sd đề thay
thế rất nhiều giai đoạn trong SDLC, khi ma thời gian tung ra sản phẩm có
thể la nhiều tháng (hay nhiều năm). Trong thời gian nay, những yêu cầu có
thể bị thay đổi dẫn đến sự lỗi thời của sản phẩm cuối. Vì vậy ta nên rút
ngắn quá trình phát triển để giảm thời gian tung ra thị trƣờng va đƣa ra
những kết quả tạm thời cho khách hang. Công việc đƣợc lặp đi lặp lại theo
3 bƣớc: 1) lắng nghe khách hang; 2) xây dựng hoặc duyệt lại mô hình 3)
cho khách hang kiểm tra vận hanh mô hình va quay về bƣớc 1
• Rapid application development (RAD). This is a form of the
iterative model. The key word here is ―rapid‖. Development teams try to get
a first pass of the system out to the end user within 60 to 90 days. To
accomplish this, the normal seven-step SDLC is compressed into the
following steps: business modeling; data modeling; process modeling;
application generation and testing and turnover. Note the term ―application
generation‖. RAD makes use of application generators, formerly called
CASE (computer assisted software engineering) tools.
Rapid application development (RAD) Đây la dạng mô hình lặp đi
lặp lại. Key word ở đây la ―rapid‖. Đội phát triển phần mềm sẽ cố gắng
hoan thiện hệ thống cho ngƣời dùng cuối trong vòng 60 – 90 ngay. Để đạt
đƣợc chuyện nay, 7 bƣớc thông thƣờng của SDLC đƣợc rút ngắn thanh: mô
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 35
hình hóa kinh doanh, mô hình hóa dữ liệu, mô hình hóa tiến trình,
application generation, kiểm tra va chuyển giao. Thuật ngữ ―application
generation‖ RAD sử dụng để chỉ application ganerators, còn đƣợc gọi la
CASE (computer assisted software engineering)
• Incremental model. The four main phases of software development
are analysis, design, coding, and testing. If we break a business problem
into chunks, or increments, then we can use an overlapping, phased
approach to software development. For example, we can start the analysis
of increment one in January, increment two in June, and increment three in
September. Just when increment three starts up, we are at the testing stage
of increment one, and coding stage of increment two.
Incremental model: 4 giai đoạn của phát triển phần mềm la phân tich,
thiết kế, cai đặt va kiểm tra. Ta có thể chia tiến trình thanh nhiều phân đoạn
hay increments va những phân đoạn nay có thể đƣợc hoạt động chồng lấp
lên nhau. Vi dụ ta bắt đầu phân tich increment 1 vao tháng 1, increment 2
vao tháng 6 va increment 3 vao tháng 9. Khi ma increment 3 bắt đầu hoạt
động thì chúng ta đang ở chặng kiểm tra của increment 1 va cai đặt của
increment 2.
• Joint application development (JAD). JAD is more of a technique
than a complete methodology. It can be utilized as part of any of the other
methodologies discussed here. The technique consists of one or more end
users who are then ―folded‖ into the software development team. Instead of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 36
an adversarial software-developer–end-user dynamic, the effect is to have
the continued, uninterrupted attention of the persons who will ultimately
use the system.
Joint application development (JAD). JAD giống 1 kĩ thuật hơn la
một phƣơng pháp luận hoan chỉnh. Nó có thể đƣợc sử dụng lam 1 phần
trong các phƣơng pháp đƣợc nói ở đây. Kĩ thuật bao gồm một hoặc nhiều
end-users trong đội phát triền phần mềm. Nhƣ vậy sẽ loại bỏ đƣợc mối
xung đột giữa end-user va software developer bằng sự chú ý không ngừng
của những ngƣời dùng cuối.
• Reverse engineering. This technique is used, first, to understand a
system from its code and, second, to generate documentation based on the
code and then make desired changes to the system. Competitive software
companies often try to reverse engineer their competitors‘ software.
Reverse engineering: Kĩ thuật nay đƣợc sử dụng để hiểu hệ thống từ
mã nguồn, sinh ra những chứng minh dựa trên code va tạo đƣợc những thay
đổi mong muốn trong hệ thống
• Re-engineering. Business goals change over time. Software must
change to be consistent with these goals. Re-engineering utilizes many of
the techniques already discussed in this chapter. Instead of building a
system from scratch, the goal of re-engineering is to retrofit an existing
system to new business functionality.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 37
Re-engineering. Mục tiêu kinh doanh thay đổi theo thời gian. Phần
mềm cũng phải thay đổi theo để phù hợp với những mục tiêu nay, Re-
engineering sử dụng rất nhiều kĩ thuật đƣợc đề cập trong chƣơng nay. Thay
vì xây dựng từ đầu, mục tiêu của Re-engineering la xây dựng từ những hệ
thống có sẵn
• Object-oriented. Object-oriented analysis (OOA), object-oriented
design (OOD), and object-oriented programming (OOP) are very different
from what we have already discussed. In fact, you will need to learn a new
vocabulary as well as new diagramming techniques.
Object-oriented. Object-oriented analysis (OOA), object-oriented
design (OOD), và object-oriented programming (OOP) rất khác nhau qua
những gì chúng ta vừa thảo luận. Các bạn cần biết thêm một số từ ngữ va
những diagramming techniques
1.7 THIẾT KẾ HỆ THỐNG
Most of the models we have discussed fall under the structured
rubric (except for the OO model). The requirements document, or SRS
(systems requirement specification), is written for a broad audience (see
Appendix G) and reflects this structured technique. Usually it is provided
not only to IT staff but also to end users. In this way, the end users are able
to review what they have asked for as well as the general architecture of the
system. Once approved, the system now must be designed. The system
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 38
specification, here called the SDS (systems design specification), contains a
very finite level of detail — enough so that programmers will be able to
code the entire system (See Appendices J and L for sample SDS and
OOSDS, respectively). This means that the SDS must contain:
Information on all processes
Information on all data
Information about the architecture
Hầu hết các hệ thống ma chúng ta đã thảo luận đều la những đoạn
cấu trúc (trừ mô hình OO). Những tai liệu cần thiết hay la SRS(yêu cầu đặc
tả hệ thống), đƣợc viết cho một số lƣợng lớn thinh giả va phản ánh kết cấu
kĩ thuật nay. Thông thƣờng nó cung cấp không chỉ cho nhân viên IT ma còn
cho ngƣời dùng. Theo cách nay thì ngƣời dùng có thể xem lại những gì ma
họ yêu cầu có tốt nhƣ trong cái kiến trúc của hệ thống hay không.Khi đã
đƣợc phê chuẩn xong thì hệ thống phải đƣợc thiết kế.Những đặc tả hệ thống
ở đây gọi la SDS (đặc tả thiết kế hệ thống), bao gồm một cấp độ rất chi tiết
đủ để ngƣời lập trình có thể lập trình ra toan bộ hệ thống. Điều nay có nghĩa
la SDS phải bao gồm:
Thông tin trên toan bộ quá trình
Thông tin trên toan bộ dữ liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 39
Thông tin về kiến trúc
You must start somewhere. That ―somewhere‖ is usually the very
highest level of a design. There are three logical ways to do this:
Abstraction. This permits you to concentrate at some level of
generalization without regard to irrelevant low-level details. This is
your highlevel or logical design.
Stepwise refinement. This is a successive decomposition or
refinement of the specifications. In other words, you move from the
high level to the detailed, from the logical to the physical.
Modularity. This means that you know a good design when you see
compartmentalization of data and function.
Bạn phải bắt đầu ở một vị tri nao đó. Vị tri đó thƣờng la mức độ cao
nhất của thiết kế. Có 3 con đƣờng logic để lam việc nay:
Abstraction. Điều nay cho phép bạn tập trung tại một vai mức độ
tổng quát ma không cần phải quan tâm đến các mức độ chi tiết.Đây
chinh la vị tri ma bạn cần tìm hay la thiết kế logic
Stepwise refinement. Đây la sự sang lọc những đặc tả hệ thống.
Trong những từ nay, bạn di chuyển từ cấp độ cao nhất đến chi tiết,
từ logic đến vật lý.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 40
Modularity. Điều nay có nghĩa la bạn phải biết một thiết kế một hệ
thống tốt khi bạn nhìn thấy những phần nhỏ dữ liệu va chức năng
của nó
Look again at the DFD in Exhibit 1-2; it was not the first in the
series. The very first DFD would have been DFD 0, which is equivalent to
the high level of detail that it is recommended you start from. Here you can
see the logical components of the system. Underneath the 0 level we start to
get more detailed and more physical. At these lower (or child) levels we
start specifying files and processes.
Nhìn lại mô hình DFD trong hình 1-2, nó không phải la cái đầu tiên.
Mô hình DFD đầu tiên la DFD 0, cái ma tƣơng đƣơng với cấp độ chi tiết
ma bạn phải bắt đầu. Ở đầy bạn có thể thầy những thanh phần logic của hệ
thống. Bên dƣới cấp độ 0 chúng ta bắt đầu lấy thêm thông tin chi tiết va
thêm thông tin vật lý. Tại những cấp độ nay bạn phải bắt đầu định rõ những
dữ liệu va tiến trình.
The design document that you create will rarely look the same from
one organization to another. Each has its own template and its own standard
diagramming tool (i.e., Visio versus SmartDraw) and its own diagramming
format (i.e., flowcharts versus UML (uniform modeling language) versus
DFDs).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 41
Những tai liệu thiết kế ma bạn tạo ra it khi giống từ một tổ chức
khác. Mỗi ngƣời đều có một khuôn mẫu va một chuẩn riêng của mình về
công cụ để vẽ biểu đồ (tức la Visio so với SmartDraw) va những định dạng
mô hình của riêng mình (nhƣ la flowchats so với UML so với DFD).
When the requirements document is high level, the specification is
much more detailed; it is, after all, a programming specification. For the
most part, the specification document for the testing system discussed
included: 1) a general description of the system; 2) its users; 3) its
constraints (i.e., must run on a PC); 4) the DFDs or other format; 5) the data
dictionary; 6) the process dictionary; 7) a chart showing the tasks that need
to be done (Gantt). The purpose of this specification (usually called a
―spec‖ by those in the field) is to give the programmers a manual from
which they can code. If it is a good spec the programmers should not need
to come back to you time after time to get additional information. Chapters
12 through 14 have more information on this subject.
Khi những tai liệu yêu cầu ở cấp cao thì những đặc tả của nó sẽ chi
tiết nhiều hơn va sau đó la đặc tả về cách lập trình. Trong hầu hết các thanh
phần thì tai liệu đặc tả cho kiểm tra hệ thống bao gồm: 1)Một cái miêu tả
tổng quát về hệ thống 2)Về ngƣời dùng 3)Sự rang buộc 4)mô hình DFD hay
la những định dạng khác 5)dữ liệu từ điển 6)từ điển quá trình 7)Một cái
biểu đồ biểu diễn những thao tác cần lam. Mục đich của việc đặc tả (thƣờng
gọi la ―spec‖) la đƣa cho những ngƣời lập trình một cái nhƣ la ―hƣớng dẫn
sử dụng‖ để họ có thể lập trình ra từ nó. Nếu la một đặc tả tốt thì những
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 42
ngƣời lập trình không cần phải tốn thời gian để tìm kiếm thêm thông
tin.Chƣơng 12 ->14 sẽ nói thêm thông tin về chủ đề nay.
1.8 PHƢƠNG PHÁP HƢỚNG ĐỐI TƢỢNG
Object-oriented systems development follows the same pattern as
structured systems development. First, you must analyze your system
(object-oriented analysis or OOA). Next, you design the system using
object-oriented design or OOD. Finally, you code the system using object-
oriented (OOP) programming techniques and languages (i.e., C++, Java).
OO techniques may have some similarity to traditional techniques but the
concept of OO is radically different from what most development people
are used to. This methodology revolves around the concept of an object,
which is a representation of any information that must be understood by the
software. Objects can be:
External entities: printer, user, sensor
Things: reports, displays
Occurrences or events: alarm, interrupt
Roles: manager, engineer, salesperson
Organizational unit: team, division
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 43
Places: manufacturing floor
Structures: employee record
Việc triển những hệ thống hƣớng đối tƣợng cũng tƣơng tự nhƣ triển
khai hệ thống cấu trúc. Trƣớc tiên, bạn phải phân tich hệ thống của bạn
(phân tich hƣớng đối tƣợng - OOA). Tiếp theo, bạn thiết kế hệ thống bằng
cách sử dụng quy trình thiết kế hƣớng đối tƣợng - OOD. Cuối cùng, bạn
code hệ thống bằng cách sử dụng kĩ thuật lập trình hƣớng đối tƣợng (OOP)
va ngôn ngữ lập trình hƣớng đối tƣợng (vi dụ, C + +, Java).
Kỹ thuật hƣớng đối tƣợng có thể có một số điểm giống với các kỹ thuật
truyền thống. Phƣơng pháp nay xoay quanh khái niệm về một đối tƣợng, la
một đại diện của bất kỳ thông tin nao ma phần mềm phải hiểu đƣợc. Đối
tƣợng có thể la:
Thực thể ngoại vi: máy in, ngƣời dùng, sensor
Những thứ nhƣ: bản báo cáo, trình bày
Sự kiện: báo thức (alarm), ngắt (interrupt)
Các vai trò: quản lý, kĩ sƣ, ngƣời bán hang
Đơn vị tổ chức: nhóm, phân chia (phân đoạn = division)
Địa điểm: san sản xuất (manufacturing floor)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 44
Các cấu trúc: thông tin nhân viên (employee record)
The easiest way to think of an object is just to say it is any person,
lace, or thing. One of the important features of OO is the reusability of its
objects. A well-coded object is often thought of as a ―black box‖. What this
means is that the programmer should be able to glue together several
objects to create a working system. He should not need to know too much
about any of these objects. Does anyone remember playing with Lego
blocks as a child? It was easy to create incredible things such as bridges and
building because each of the blocks was easily connected to all other
blocks. It is the same with objects (see encapsulation below).
Cách dễ nhất để nghĩ về một đối tƣợng la ta nói nó la ngƣời nao, nơi
nao hay thứ gì. Một trong những đặc trƣng của hƣớng đối tƣợng là tính tái
sử dụng các đối tƣợng của nó. Một đối tƣợng đƣợc code tốt thƣờng đƣợc
xem la 1 ―hộp đen‖. Nghĩa la lập trình viện sẽ gắn kết vai đối tƣợng với
nhau để tạo nên một hệ thống hoạt động đƣợc. Anh ta không cần biết quá
nhiều về những đối tƣợng nay. Các bạn còn nhớ trò chơi tạo hình từ những
bộ phần bằng nhựa? Ta có thể tạo nên những thứ không ngờ tới nhƣ ngôi
nga, cây cầu bằng cách kết nối một cách dễ dang các bộ phần rời rạc lại với
nhau. Các đối tƣợng cũng giống vậy (xem sự đóng gói dƣới đây –
encapsulation)
First some OO definitions:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 45
Class: in object technology, a user-defined data type that defines a
collection of objects that share the same characteristics. An object,
or class member, is one instance of the class. Concrete classes are
designed to be instantiated. Abstract classes are designed to pass on
characteristics through inheritance.
Object: a self-contained module of data and its associated
processing. Objects are the software building blocks of object
technology.
Polymorphism: meaning many shapes. In object technology, the
ability of a generalized request (message) to produce different
results based on the object that it is sent to.
Inheritance: in object technology, the ability of one class of objects
to inherit properties from a higher class.
Encapsulation: in object technology, making the data and
processing (methods) within the object private, which allows the
internal implementation of the object to be modified without
requiring any change to the application that uses it. This is also
known as information hiding.
Những khái niệm đầu tiên của hƣớng đối tƣợng:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 46
Lớp (Class): theo thuật ngữ chuyên môn của hƣớng đối tƣợng, 1
kiểu dữ liệu ngƣời dùng tự định nghĩa bao gồm một tập hợp các đối
tƣợng có những đặc điểm chung nao đó. Một đối tƣợng la một thể
hiện của lớp. Concrete class: lớp có thể thể hiện thanh đối tƣợng
đƣợc (instantiated – đối tƣợng hóa?). Abstract class: đƣợc thiết kế
cho việc kế thừa.
Đối tƣợng (Object): la một module tự chứa dữ liệu va những xử lý
liên quan của nó. Đối tƣợng la bộ phân để xây dựng phần mềm
trong công nghệ hƣớng đối tƣợng.
Đa hình (Polymorphism): nghĩa la có nhiều thể hiện. Trong kĩ thuật
hƣớng đối tƣợng, chình la khả năng tổng quát hóa để tạo ra những
kết quả khác nhau dựa trên một đối tƣợng.
Kế thừa (Inheritance): khả năng của 1 lớp có thể kế thừa lại các
thuộc tinh của một lớp cao hơn.
Đóng gói (Encapsulation): tạo ra thuộc tinh (data) va các phƣơng
thức (method) trong phạm vi private của lớp, do đó, khi có những
thay đổi bên trong (private) đối tƣợng thì ta không cần phải thay
đổi chƣơng trình ứng dụng dùng nó.
Take a look at Exhibit 1-9. Here we have a class, called automobile,
that has several common attributes. One is that this thing has a motor.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 47
Another attribute is the fact that an automobile (usually) has four wheels. In
an OO system you can create derived classes from the parent class. Notice
the nice, shiny red sportscar. This is the derived class called ―sports car‖. It
also has a motor and four wheels that it inherits from the parent class.
However, in this derived class we have some additional attributes: fast rpm
and sleek design. The sports car is the child of the parent class named
automobile. So we can say, ―Every convertible is an automobile but not
every automobile is a convertible‖.
Giả sử ta có lớp Xe hơi, vai thuộc tinh chung nhƣ: có 1 động cơ, có 4
bánh. Lớp Xe hơi thể thao thừa kế lớp Xe hơi. Lớp Xe hơi thể thao cũng có
1 động cơ va có 4 bánh – la những thuộc tinh kế thừa từ lớp xe hơi. Tuy
nhiên, nó còn có thêm vai thuộc tinh khác: thiết kế bóng đẹp hơn va vòng
quay số nhanh. Khi đó ta có thể nói: Xe hơi thể thao la xe hơi, nhƣng điều
ngƣợc lại thì không đúng.
To develop an OO application one must define classes. If you know
any thing about OO programming languages such as C++, all variables
within a program are defined as some ―type‖ of data. For example, in C and
C++, a number is defined as a type called ―integer‖. When we define a class
in a programming language, it is defined as a type of class as shown below:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 48
Muốn xây dựng khai 1 ứng dụng hƣớng đối tƣợng phải định nghĩa
các lớp. Trong các ngôn ngữ lập trình hƣớng đối tƣợng nhƣ C++, tất cả các
biến đều thuộc một kiểu dữ liệu nao đó, vi dụ nhƣ: số thực, số nguyên,
chuỗi…. Đó la những kiểu dữ liệu cơ bản. Việc ta tạo ra một lớp chinh là
đỉnh nghĩa một kiểu dữ liệu mới.
DayOfYear la lớp public, nghĩa la không có giới hạn nao khi sử
dụng. Va cũng hề không có lớp private. Lớp DayOfYear có 2 thuộc tinh la
month va day, va 1 phƣơng thức la output().
class DayOfYear
{
public:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 49
void output();
int month;
int day;
};
Designing OO systems requires the use of different modeling and
definitional techniques that take into account the idea of classes and objects.
Unified modeling language (UML) is an emerging standard for modeling
OO software. Exhibit 1-7 shows a sample class diagrammed using UML
and Appendix L contains a complete SDS for an OO system. Contained
within this SDS are numerous diagrams (models): 1) class diagrams, 2)
object models, 3) package diagrams that show how the classes are grouped
together, and 4) collaboration diagrams, which show how the classes
―collaborate‖ or work with each other. (See Chapter 13 for more on object-
oriented methodologies.)
Việc thiết kế một hệ thống hƣớng đối tƣợng yêu cầu các kĩ thuật mô
hình va kĩ thuật định nghĩa khác nhau: Unified modeling language (UML):
nổi lên nhƣ một chuẩn cho các phần mềm hƣớng đối tƣợng. Hình 1-7 cho
thấy 1 lớp đƣợc biễu diễn dạng biểu đồ bằng UML va Phụ lục L chứa 1
SDS hoan chỉnh cho 1 hệ thống hƣớng đối tƣợng. SDS bao gồm nhiều biểu
đồ nhƣ: 1)Biểu đồ biễu diễn class, 2) Biểu đồ biễu diễn object, 3) Biều đồ
biễu diễn sự đóng gói (package) – cho biết các lớp đƣợc nhóm lại với nhau
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 50
nhƣ thế nao, 4)Biểu đồ biễu diễn sự cộng tác (collaboration): cho biết cách
ma các lớp hợp tác va lam việc với nhau. (Xem thêm về phƣơng pháp
hƣớng đối tƣợng ở chƣơng 13).
1.9 KIỂM TRA PHẦN MỀM
When you tie many programs together you have a system. It is not
uncommon for a system to have thousands of lines of code, all of which
must be tested. The very first level of testing is at the programmer‘s desk.
Here he works with whatever tools he is using to make sure that everything
works.
Khi ta kết hợp nhiều chƣơng trình lại với nhau, ta đƣợc 1 hệ thống.
Không hiếm các hệ thống có hang ngan dòng code, tất cả chúng đều phải
đƣợc kiểm tra. Kiểm tra ở cấp độ đầu tiên la do lập trình viện thực hiện.
Ngƣời lập trình sử dụng bất kỳ công cụ nao để đảm bảo những gì mình viết
ra đều chạy đúng.
Many applications are built using a Microsoft product called Visual
Basic. Exhibit 1-10 shows what the debugger looks like. For those of you
who do not know the derivation of the term, debug means to take the
―bugs‖ out of a program. A bug is an error, but the term actually stems from
an incident with one of the first computers in the early 1950s. A real bug
crawled into the computer, which stopped working. Ever since, we use the
term debugging to describe the process of ridding a program of its problems
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 51
Vi dụ nhƣ ta dùng MS Visual Basic, hình 1-10 cho thấy chƣơng trình
chỉnh lỗi (debugger) của nó.
The debugger will run only if your code ―compiles and links‖ first.
When you compile a program it goes through a syntax checker that checks
for obvious errors (i.e., referencing a variable that does not exist).
Debugger chạy khi code đã đƣợc biên dịch va liên kết (compile and
link). Khi compile sẽ kiểm tra lỗi cú pháp va những lỗi dễ thấy (nhƣ dùng
biến ma chƣa khai báo).
When a group of programmers work together, their project manager
might think it a good idea that a ―walkthrough‖ be held. This is when the
team gets together and examines the code as a group to find flaws and
discuss better ways to do things. Usually this is not done. One reason is that
programmers do not like to do this; another reason is that it is very time
consuming.
Khi các lập trình viên lam việc với nhau, họ sẽ phân tich va thảo luận
để tìm ra giải pháp lập trình tốt hơn. Nhƣng thƣờng việc nay it xảy ra, một
la vì họ không thich, hai la tốn nhiều thời gian.
You can consider the testing the programmer does at his own desk
unit testing — meaning testing a unit of work (a program). When several
programs must interact together, another type of test that you might want to
perform is integrating testing. This test determines if the separate parts of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 52
the system work well together. For example, program 1 creates a file that
contains a student file and program 2 processes that student file. If program
1 makes a mistake and creates the student file incorrectly, then program 2
will not work.
Có thể xem việc kiểm tra của lập trình viên la ―kiểm tra đơn vị‖ (unit
testing) – kiểm tra từng đơn vị của công việc (hay của chƣơng trình). Khi
vai chƣơng trình kết hợp với nhau, một loại kiểm tra nữa đƣợc thực hiện la
―kiểm tra tich hợp‖ (integrating testing): để kiểm tra xem các phần riêng
biệt của hệ thống có chạy tốt khi kết hợp lại. Vi dụ: chƣơng trình 1 tạo ra
file có chƣa thông tin sinh viên, chƣơng trình 2 sẽ xử lý file đó. Nếu chƣơng
trình 1 tạo file bị sai format hay lỗi, thì chƣơng trình 2 sẽ không chạy đúng.
A system test tests the complete system — soup to nuts. All of the
inputs are checked, all of the outputs are checked, and everything in
between is checked. If there is an existing system, a parallel test is done.
―Parallel‖ is a good term for this because you must run both systems in
tandem and then check the results for similarities and differences.
―Kiểm tra hệ thống‖ (system test): kiểm tra hệ thống phần mềm cuối
cùng. Tất cả các bộ test đƣợc cho chạy thử, kết quả trung gian và outputs
sau cùng đều đƣợc kiểm tra. Nếu có một hệ thống tƣơng tự nhƣ vậy rồi, thì
sẽ tiến hanh ―kiểm tra song song‖ (parallel testing) để kiểm tra hệ thống
mới – cho chạy 2 hệ thống cùng lúc va kiểm tra sự khác/giống nhau ở kết
quả.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 53
Finally, acceptance testing is done. This means that you run a test
and the end user agrees or disagrees with the test and approves or
disapproves it.
Cuối cùng la ―acceptance testing‖: một bộ test sẽ đƣợc chạy va ngƣời
dung cuối sẽ đƣa ra ý kiến về kết quả, có thể lả chập nhận hoặc không chấp
nhận chẳng hạn.
In any case, testing is a lot of work that involves many people,
including end users and, usually, a quality assurance (QA) department. QA
people spend all of their time writing testing scripts (i.e., a list of things to
test for) and then running those scripts. If they find an error they send a
report to the programmer, who then fixes it. QA usually uses testing tools to
assist with these massive jobs. These tools assist with the creation of scripts
and then automatically run them. This is especially helpful when
conducting stress testing — testing to see how well the system works when
many people are using it at the same time.
Trong bất kỳ trƣờng hợp nao, việc kiểm tra phần mềm cũng bao gồm
rất nhiều công đoạn va cần nhiều ngƣời tham gia, bao gồm cả ngƣời dùng
cuối, thông thƣờng sẽ do bộ phận QA (Quality Assurance) đảm trách.
Ngƣời của bộ phận QA có công việc la: viết va cho chạy thử các đoạn
scripts kiễm tra phần mềm. Sau đó họ gửi phản hồi lại cho lập trình viên
trong trƣờng hợp có lỗi xảy ra. Với khối lƣợng công việc lớn, thông thƣờng
họ cần đến công cụ hỗ trợ cho việc kiểm tra (testing tool) – các công cụ nay
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 54
sẽ tạo ra scripts va tự chạy chúng. Testing tool đặc biết có ich khi tiến hanh
―kiểm tra khắc nghiệt‖ (stress testing) – kiểm tra hoạt động của hệ thống
khi hoạt động vƣợt công suất đã đƣợc chỉ định, chẳng hạn nhƣ hệ thống sẽ
ra sao nếu nhƣ có ngƣời ngƣời dùng sử dụng cùng một lúc.
Testing is usually not performed in a vacuum. An analyst or manager
prepares a test plan that details exactly what must be tested and by whom
(see Appendix A). The test plan contains the testing schedule as well as the
intricate details of what must be tested. These detailed plans are called ―test
cases‖ and form the basis for the test scripts used by the programmer or
QA staff member, usually in conjunction with a testing tool.
Ngƣời phân tich hoặc ngƣời quản lý sẽ lập một kế hoạch kiểm tra
(test plan) chi tiết: cụ thể những gì sẽ đƣợc kiểm tra va do ai đảm nhận
(Xem phụ lục A). Những kế hoạch chi tiết (detailed plans) đƣợc gọi la ―test
cases‖, sẽ cho biết các đoạn test scripts cơ bản ma programmer hay đội ngũ
QA sẽ dùng, thƣờng thì có kết hợp với testing tool.
A sample test case that could appear in a test plan appears in Exhibit
1-11. This would be turned into a script for use by the testers. For more
details of testing, see Chapter 16.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 55
1.10 STANDARD AND METRIC
When you build a house you must adhere to certain standards;
otherwise, the homeowner‘s lamp will not fit into the electrical outlet. The
size of the outlet is consistent with a standard used throughout the building
industry. Those who travel know that they must bring an adaptor because a
hair dryer brought from the United States into Italy will not fit into Italian
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 56
outlets. This is because many standards in America are different from the
standards in other countries.
Khi bạn xây 1 ngôi nha bạn phải dựa vao những tiêu chuẩn chắc
chắn; nếu không thì, cái đèn sẽ không vừa với ổ điện. Kich thƣớc của ổ điện
thì đƣợc thống nhất với 1 tiêu chuẩn sử dụng xuyên suốt quá trình công
nghiệp xây dựng. Những ngƣời du lịch biết rằng họ phải mang theo adaptor
bởi vì máy sấy tóc mang từ Mỹ sang Ý sẽ không vừa với ổ điện kiểu Ý. Đó
la bởi vì những tiêu chuẩn của Mỹ khác với những tiêu chuẩn ở các nƣớc
khác.
Standards are an important fact of life; without them we would be
living in chaos. This is especially true in the IT industry. The American
National Standards Institute, which is located in New York (www.ansi.org),
was founded in 1918 to coordinate the development of U.S. voluntary
national standards in the private and public sectors. It is the U.S. member
body to ISO and IEC. Information technology standards pertain to
programming languages, EDI, telecommunications and physical properties
of diskettes, cartridges, and magnetic tapes. The IEEE (Institute of
Electrical and Electronics Engineers — www.ieee.org) is another
membership organization that develops standards.
Tiêu chuẩn la một thanh phần quan trọng của cuộc sống, không có
nó, chúng ta sẽ sống trong sự hỗn loạn. Va nó đặc biệt đúng trong công
nghiệp IT. Viện tiêu chuẩn quốc gia Hoa Kì (American National Standards
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 57
Institute), đƣợc đặt tại New York (www.ansi.org), đƣợc thanh lập năm 1918
để phối hợp với việc phát triển của các tiêu chuẩn tự phát quốc gia Hoa Kỳ
trong khu vực công cộng va riêng tƣ. Đó la thanh viên quan trọng của ISO
va IEC. Tiêu chuẩn công nghệ thong tin gắn liền với ngôn ngữ lập trình,
EDI, viễn thông va tinh chất vật lý của đĩa mềm, đầu đĩa, va băng ghi âm.
IEEE (Institute of Electrical and Electronics Engineers — www.ieee.org) là
một tổ chức thanh viên khác phát triển tiêu chuẩn.
For example, IEEE 1284 is an IEEE standard for an enhanced
parallel port that is compatible with the Centronics port commonly used on
PCs. Instead of just data, it can send addresses, allowing individual
components in a multifunction device (printer, scanner, fax, etc.) to be
addressed independently. IEEE 1284 also defines the required cable type
that increases distance to 32 feet.
Vi dụ, IEEE 1284 la 1 tiêu chuẩn IEEE cho công kết nối song song
thich hợp với cổng Centronics thƣờng đƣợc sử dụng trên PC. Ngoai dữ liệu,
nó còn có thể gửi địa chỉ, cho phép những thanh phần riêng biệt trong một
thiết bị đa chức năng (máy in, scanner, fax,..) đƣợc gửi địa chỉ độc lập.
IEEE 1284 còn xác định đƣợc kiểu cáp cần thiết để tăng khoảng cách lên 32
feet
Your company might well adhere to ISO 9000 and 9001. As I
mentioned, ANSI is the U.S. member body to ISO. The International
Organization for Standardization is a Geneva-based organization that sets
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 58
international standards. ISO 9000 is a family of standards and guidelines for
quality in the manufacturing and service industries from the International
Standards Association; it defines the criteria for what should be measured.
ISO 9001 covers design and development, ISO 9002 covers production,
installation and service, and ISO 9003 covers final testing and inspection.
Công ty của bạn có thể dựa vao tiêu chuẩn ISO 9000 va 9001. Nhƣ
tôi đã đề cập, ANSI la thanh viên quan trọng của ISO. Tổ chức quốc tế về
tiêu chuẩn hóa la tổ chức Geneva ma đã thiết lập tiêu chuẩn quốc tế. ISO
9000 la một nhóm các tiêu chuẩn va hƣớng dẫn cho chất lƣợng trong việc
sản xuất va dịch vụ công nghiệp từ tổ chức tiêu chuẩn thế giới; nó xác đinh
tiêu chuẩn cho bất cái cái gì có thể tinh toán đƣợc. ISO 9001 gồm thiết kế
va phát triển, ISO 9002 gồm sản phẩm, lắp đặt va dịch vụ, va ISO 9003
gồm kiểm tra va xem xét.
If you live by the rule of standards you need to have a way to
measure whether or not those standards are adhered to. In our field, we use
metrics (measurements). The most prevalent metric used is lines of code,
which is the number of lines of code a programmer can program in an hour.
There are many more metrics. The second half of this handbook provides
details on a variety of metrics that are in use (or should be in use) today.
Appendix P is a software metrics capability evaluation guide that will be
useful prior to starting on a measurement program.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 59
Nếu bạn sống trong quy tắc của tiêu chuẩn, bạn cần phải có cách để
tính toán có hay không những tiêu chuẩn đƣợc dựa vao. Trong lĩnh vực của
chúng tôi, chúng tôi sử dụng metrics. Metric thƣờng đƣợc sử dụng nhất la
số dòng code, la số dòng ma ngƣời lập trình có thể lập trình trong 1 giờ. Có
rất nhiều metric khác nữa. Nửa sau của cuốn sách nay cung cấp chi tiết của
các loại metric khác đang đƣợc sử dụng(hoặc nên sử dụng) ngay nay.
Appendix P la 1 phần mềm hƣớng dẫn ƣớc lƣợng metric sẽ có ich trƣớc khi
bắt đầu trên 1 chƣơng trình đo lƣờng.
A controlled development and maintenance program is essential for
bringing down the cost associated with software development life cycle.
The control mechanism can be implemented by setting up specific goals nd
then selecting the right set of metrics for measurements against those goals.
Goals must be tangible and balanced or they will be too remote to be
considered achievable. Intermediate targets are needed for monitoring the
progress of the project and making sure that it is on the right track. Project
data collection and analysis should also be part of the control mechanism.
Sự kiểm soát phát triển va bảo trì chƣơng trình thì quan trọng trong
việc giảm chi phi có lien quan đến việc phát triển quá trình sản xuất phần
mềm. Bộ máy kiểm soát có thể đƣợc thi hanh bằng việc thiết lập những
mục tiêu cụ thể va sau đó lựa chọn tập hợp chinh xác các metric cần thiết
cho việc tinh toán cho những mục tiêu đó. Mục tiêu phải hữu hình va cân
bằng hoặc nó có thể hơi xa vời để có thể đạt đƣợc. Mục tiêu trƣớc mắt thì
cần thiết để kiểm soát sự phát triển của dụ án va khẳng định chắc chắn rằng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 60
nó đang đi đúng đƣờng. Thu thập va phân tich dữ liệu của dự án nên la một
phần của bộ máy kiểm soát
A four-step procedure (Linkman and Walker, 1991) is outlined for
establishing targets and means for assessment. The procedure is not focused
on any particular set of metrics; rather, it believes that metrics should be
selected on the basis of goals. This procedure is suitable for setting up goals
for the entire project‘s deliverables or for any partial product created in the
software life cycle. (More information on standards and metrics can be
found in Section II.)
Thủ tục 4 bƣớc (Linkman & Walker, 1991) đƣợc phác thảo để xác
định mục tiêu va phƣơng tiện đánh giá. Thủ tục nay không tập trung vao bất
cứ tập metric nao cụ thể; hơn thê, nó tin rằng metric sẽ đƣợc lựa chọn dựa
trên nền tảng mục tiêu. Thủ tục nay thich hợp cho việc thiết lập mục tiêu
cho dự án có thể phân phối hoặc cho bất cứ phần nao của sản phẩm đƣợc
tạo ra trong quá trình sản xuất phần mềm (nhiều thong tin của Standard va
Metric sẽ đƣợc tìm thấy ở Phần II)
1.11 THỦ TỤC
1. Define measurable goals. The project goals establishment process
is similar to the development process for project deliverables. Software
projects usually start with abstract problem concepts and the final project
deliverables are obtained by continuously partitioning and refining the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 61
problem into tangible and manageable pieces. Final quantified goals can be
transformed from initial intangible goals by following the same divide-and-
conquer method for software deliverables. Three sources of information are
helpful to establishing the targets:
- Historical data under the assumptions that data is available,
development environment is stable, and projects are similar in
terms of type, size, and complexity
- Synthetic data such as modeling results if models used are
calibrated to the specific development environment
- Expert opinions
Xác định mục tiêu khả thi. Quá trình xác định mục tiêu của dự án thì
giống với quá trình phát triển dự án đối với dự án có thể triển khai đƣợc.
Dự án phần mềm thƣờng bắt đầu với vấn đề trừu tƣợng va dự án có thể
triển khai cuối cùng đạt đƣợc từ việc phân nhóm va xác định vấn đề vao
những phần có thể quản lý va có thể xem xét. Mục tiêu chất lƣợng cuối
cùng có thể chuyển từ mục tiêu mơ hồ bằng cách thực hiện cùng phƣơng
pháp chia để trị nhƣ phần mềm triển khai 3 nguồn thông tin có ich cho việc
xác định mục tiêu
- Thông tin đã có từ trƣớc, dƣới giả thuyết rằng dữ liệu có sẵn, môi
trƣờng phát triển ổn định, va dự án thì giống nhau về dạng, kich
thƣớc, va độ phức tạp
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 62
- Dữ liệu tổng hợp nhƣ la kết quả theo dạng nếu dạng đó đƣợc lấy
chuẩn từ môi trƣờng phát triển đặc biệt.
- Ý kiến chuyên gia
2. Maintain balanced goals. The measurable goals are usually estab
lished on the basis of cost, schedule, effort, and quality. It is feasible to
achieve a single goal, but it is always a challenge to deliver a project with
the minimum staff and resource, on time, and within budget. It needs to be
kept in mind that trade-off is always involved and all issues should be
addressed to reach a set of balanced goals.
Giữ vững mục tiêu cân bằng. Mục tiêu khả thi thƣờng đƣợc xác định
dựa trên nền tảng chi phi, kế hoạch, sự cố gắng, va chất lƣợng. La khả thi
để đạt đƣợc 1 mục tiêu, nhƣng thƣờng la thách thức khi cung cấp cho 1 dự
an với nhân lực va tai nguyên nhỏ nhất, đúng giờ, va ngân sách có hạn. Cần
thiết luôn có trong đầu ý tƣởng rằng rủi ro luôn luôn tồn tại va mọi khó
khăn đều có thể giải quyết để đạt đƣợc những mục tiêu cân bằng
3. Set up intermediate goals. A project should never be measured
only at its end point. Checkpoints should be set up to provide confidence
that the project is running on course. The common practice involves setting
up quantifiable targets for each phase, measuring the actual values against
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 63
the targets, and establishing a plan to make corrections for any deviations.
Cost, schedule, effort, and quality should be broken down into phase or
activity for setting up intermediate targets. Measurements for cost and
effort can be divided into machine and human resources according to
software life-cycle phase so that expenditures can be monitored to ensure
the project is running within budget. Schedule should always be defined in
terms of milestones or check points to ensure intermediate products can be
evaluated and final product will be delivered on time. Quality of
intermediate products should always be measured to guarantee the final
deliverable will meet its target goal.
Thiết lập mục tiêu tức thời, 1 dự án không nên chỉ tinh toán đến điểm
kết thúc. Checkpoint nên đƣợc thiết lập để cung cấp sự tự tin rằng dự án
đang hoạt động đúng tiến độ. Thƣợng đƣợc ứng dụng trong việc xác định
mục tiêu có thể xác định cho từng phần, tinh toán những giá trị chống lại
mục tiêu, thiết lập kế hoạch để sửa chữa bất cứ sai sót nao. Chi phi, kế
hoạch, đầu tƣ, va chất lƣợng có thể bị chia nhỏ thanh từng phần hoặc hoạt
động cho việc thiết lập mục tiêu tức thời.
Tinh toán chi phi va đầu tƣ có thể chia nhỏ thanh máy móc va nguồn
nhân lục dựa vao quy trình phát triển phần mềm nên phi tổn có thể đƣợc
kiểm soát để chắc chắn rằng dự án đƣợc chạy trong nguồn kinh phi cho
phép, Kế hoạch nên luôn luôn đƣợc xác định theo milestones hoặc
checkpoint để chắc chắn sản phẩm tức thì có thể đƣợc định giá va sản phẩn
cuối cùng đƣợc cung cấp đúng hạn. Chất lƣợng sản phẩm tức thì nên luon
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 64
luôn đƣợc tinh toán để bảo đảm kết quả phân phối cuối cùng sẽ la mục tiêu
hƣớng tới.
4. Establish means of assessment. Two aspects are involved in this
activity:
- Data collection. Based on the project characteristics such as size,
complexity, level of control, etc., a decision should be made in
terms of whether a manual data collection process or an automated
data collection process should be used. If a nonautomated way is
applied, then the availability of the collection medium at the right
time should be emphasized.
- Data analysis. The following two types of analyses should be con
sidered:
Project analysis, a type of analysis consisting of checkpoint
analysis and continuous analysis (trend analysis), is
concerned with verifying that intermediate targets are met to
ensure that the project is on the right track.
Component analysis is a type of analysis that concentrates
on the finer level of details of the end product and is
concerned with identifying those components in the product
that may require special attention and action. The complete
process includes deciding on the set of measures to be
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 65
analyzed, identifying the components detected as anomalous
using measured data, finding out the root cause of the
anomalies, and taking actions to make correction.
Thiết lập phƣơng tiện đánh giá. 2 quan điểm bao ham trong việc nay:
- Thu thập dữ liệu. dựa vao tinh chất dự án nhƣ kich thƣớc, độ phức
tạp, mức độ kiểm soát,… quyết định nên đƣợc tạo ra dựa vao quá
trình thu thập thong tin tự đông hoặc bằng tay. Nếu quá trình ko tự
động đƣợc áp dụng, thì tinh hiệu lực của việc thu thập vao thời
gian chinh xác phải đƣợc quan trọng.
- Phân tich dữ liệu, 2 dạng phân tich nên quan tâm
Phân tich dựa theo dự án. Bao gồm phân tich checkpoint va
phân tich xu hƣớng, đƣợc quan tâm với việc thẩm tra rằng
mục tiêu trƣớc mắt đƣợc tạo ra để chắc chắn rằng dự án
đang đi đúng đƣờng.
Phân tich đối tƣợng la 1 dạng của phân rằng ma tập trung
vao cấp độ thấp hơn về chi tiết của sán phẩm cuối va quan
tâm đến việc xác định các đối tƣợng, thah phần trong sản
phẩm có thể cần những hanh động đặc biệt. Quá trình hoan
chỉnh bao gồm quyết định trên tập hợp nhũng tinh toán để
phân tich, xác định đối tƣợng đƣợc xác định bất thƣờng sử
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 66
dụng dữ liệu tinh toán, tìm ra nguyên nhân sâu xa của sự bất
thƣờng, va thực hiện việc sửa chữa.
1.12 CÀI ĐẶT
When you have a very small system you can just put it online
(direct). If your system is larger then there are several ways to approach
installing (implementing) the system. If you are going to replace an existing
system, then you can install the new system in a parallel mode. This means
that you run both systems at the same time for a period of time. Each day
the end users check the outputs and, when they feel comfortable, turn the
old system off.
Khi bạn có một hệ thống nhỏ bạn có thể cai đặt trực tiếp. Nếu hệ
thống của bạn lớn hơn thì có nhiều cách để có thể cai đặt hệ thống. Nếu bạn
muốn cố gắng để thay thế hệ thống cũ, thì bạn có thể cai đặt hệ thống theo
kiểu song song. Có nghĩa la bạn chạy một lúc hai hệ thống trong cùng một
thời gian. Đến lúc ma ngƣời dung có thể kiểm tra truy xuất, họ cảm thấy
thoải mái, thì có thể gơ bỏ hệ thống cũ.
Many companies run multiple servers with the same system running
on each server. One good way to install a system is to install it on a single
server first, see how it runs, and then install it on another server. This is
called a phased approach.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 67
Nhiều công ty chạy hệ thống nhiều máy chủ chung hệ thống chạy
trên từng máy chủ. Một cách tốt để cai đặt la cai đặt nó trên một máy chủ
trƣớc, kiểm tra xem nó chạy nhƣ thế nao, sau đó sẽ cai đặt trên những máy
chủ khác. Đó gọi la tiếp cận giai đoạn.
1.13 TÀI LIỆU HÓA
One day all of the programmers who wrote the original system will
leave. If documentation is not adequate then the new programmers will not
understand how to work on the system. I recently worked on a project
(Internet gambling for a foreign country) where the programmer did not
have any documentation at all. The system was written in C++ and ASP
and there were hundreds of programs. It was almost impossible to figure out
which program ran first. So, you really do need system documentation.
Một ngay tất cả các lập trình viên viết chƣơng trình ban đầu sẽ nghỉ
việc. Nếu tai liệu không đầy đủ thì những ngƣời lập trình mới sẽ không hiểu
đƣợc sẽ phải lam việc nhƣ thế nao trên hệ thống. Tôi thƣờng lam việc trên 1
dự án (Cá cƣợc qua mạng ở nƣớc ngoai) nơi ma các nha lập trình không
bao giờ tai liệu hóa. Hệ thống đƣợc viết trên C++ va ASP va hang trăm
chƣơng trình. Sẽ la không thể để nhận biết đƣợc chƣơng trình nao chạy
trƣớc. Nên, bạn thật sự cần hệ thống đƣợc tai liệu hóa.
It is also critical to have some documentation for the end users. You
have seen the manuals that come with software that runs on your PC. Look
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 68
at the manual that comes with Visio; you are the end user for this software.
So, if you write a system, you will need to write a manual for your end
users.
Cũng rất la quan trọng để có 1 số tai liệu cho ngƣời dung cuối. Bạn
đã đƣợc nhìn thấy cách phần mềm hoạt động trên PC. Thử nhìn trong
trƣờng hợp Visio; bạn la ngƣời dung cuối. Vậy, nếu bạn việt chƣơng trình,
ban sẽ cần phải viết hƣớng dẫn sử dụng cho ngƣời dung cuối.
Finally, you will need to train your end users to use the system.
When I worked for the New York Stock Exchange, we brought in a tool
that permitted our end users to use a fourth generation language (4GL) to
do their own queries against the system‘s database. We needed to train
these end users to use the 4GL productively. Instead of writing and teaching
a course ourselves, we hired an expert who did it for us (outsource). (See
Chapter 19 for more on documentation.)
Cuối cùng, bạn sẽ cần để huấn luyện cho ngƣời dùng cuối cách sử
dụng hệ thống. Khi tôi lam việc cho trung tâm giao dịch New York Stock,
chúng tôi mang đến 1 công cụ ma cho phép ngƣời dung cuối sử dụng 4 thế
hệ ngôn ngữ để lam truy vấn của họ với cơ sở dữ liệu hệ thống. Chúng tôi
đã huấn luyện họ cách sử dụng sản phẩm đó. Thay cho việc viết va dạy cho
họ, chúng tôi thuê 1 chuyên gia ngƣời đã viết chƣơng trình đó cho chúng
tôi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 69
1.14 BẢO TRÌ
Many, many years ago I worked with a project leader who wanted to
play with a new toy. At the time databases were just coming into vogue, so
the project leader decided to create a database for a new system. The
problem was that this particular system did not need this particular
database. The system was written but, as a result of the horrid choice of
databases, it never ran well. In fact, it ―bombed‖ out all the time.
Nhiều năm trƣớc tôi lam dự án với ngƣời leader muốn thử những trò
chơi mới. Vao thời gian cơ sở dữ lieu đang thịnh hanh, nên leader quyết
định tạo cơ sở dữ liệu cho hệ thống mới. Vấn đề la, hệ thống nay không cần
cơ sở dữ liệu. Hệ thống đƣợc viết, nhƣng, nhƣ la kết quả của việc chọn cơ
sở dữ liệu, nó không chạy. Thực tế, nó lam nổ tung mọi thứ.
After a year of problems, management decided that the system
needed to be fixed, and fix it we did. This is called corrective
maintenance— modifying an existing system so that it works correctly.
Maintenance is done for lots of reasons.
Sau 1 năm, ngƣời quản lý quyết định rằng hệ thống phải đƣợc sửa
chữa, va chúng tôi lam. Đó đƣợc gọi chinh xác la bảo trì – hiệu chỉnh 1 hệ
thống có sẵn để nó lam việc đúng. Việc bảo trì hoan thánh cho nhiều li do.
One reason we are all familiar with is because of security and
viruses. Systems people frequently make modifications to software because
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 70
of problems such as this. The casino gaming programmers mentioned
previously had to suspend programming new features into the system to
take care of the ―Code Red‖ worm. This is an example of preventative
maintenance. Most often the reason for maintenance is simply to improve
the system. If the casino end users decide to add a new game to the system
or a new data field is added to a database or a new report is required —
these are examples of maintenance for improvement purposes.
Một li do ma chúng tôi quen thuộc la bảo mật va virus. Ngƣời lam hệ
thống thƣờng xuyên cập nhật phần mêm vì những li do nhƣ vậy. Ngƣời lập
trình cho casino đề cập đến trƣớc đó phải hoãn lập trình ứng dụng mới vao
hệ thống để quan tâm đến con sâu Code Red. Đó la vi dụ về bảo trì an ninh.
Li do thƣờng xuyên của bảo trì đơn giản la phát triển hệ thống. Nếu nhƣ
ngƣời dung cuối trong casino quyết định them trò chơi mới vao hệ thống
hoặc dữ liệu mới đƣợc them vao trong cơ sở dữ liệu hoặc báo cáo mới la
cần thiết – đó la vi dụ bảo trì cho mục đich phát triển.
Some organizations have two types of programmers; one type
usually works on new software and the other is stuck with maintenance.
This is not often done anymore because maintenance programmers are
usually an unhappy lot and, therefore, their turnover rate is quite high.
Một số tổ chức có 2 loại lập trình viên, 1 thƣờng xuyên lam ra phần
mềm mới, va 1 chỉ lam bảo trì. Nó ko còn thong dụng nữa bởi vì nhân viên
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 71
bảo trì thƣờng la lá thăm ko may mắn va, do đó, tỉ lệ doanh thu của họ
thƣờng khá cao.
All systems need to be managed. You cannot make changes to a
system willy-nilly. The way you control what happens to a system is to
continue holding meetings with your end users and developing a prioritized
list of changes and additions that need to be made. Occasionally, a change
might come in from a person who is not on the end-user committee. To
handle these requests, system personnel usually make use of a standard
change request form. This form contains information such as desired
change, reason for change, screen shots of the existing screen that needs to
be changed, if applicable, and more, depending on the organization. Usually
these changes must be authorized by the end user‘s management before it is
sent to the computer department.
Mọi hệ thống cần đƣợc quản lý. Bạn không thể tạo sự thay đổi với hệ
thống dù la nhỏ nhất. Cách bạn kiểm soát những gì xảy ra cho hệ thống la
tiếp tục gặp gơ với ngƣời dung cuối va phát triển danh sách ƣu tiên cần thay
đổi, va những phần them vao cần thiết. Thỉnh thoảng, sự thay đổi có thể đến
từ những ngƣời không phải ngƣời dung cuối. Để giải quyết những yêu cầu
đó, ngƣời lam hệ thống thƣờng sử dụng mẫu yêu cầu thay đổi. Mẫu nay chứ
những thong tin nhƣ thay đổi nhu cầu, li do, hình minh họa, nếu có, va hơn
thế nữa, tùy theo tổ chức. thƣờng những thay đổi đó sẽ đƣợc xem xét bởi
ngƣời quản li ngƣời dung cuối trƣớc khi gửi cho computer department.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 72
Once the change request comes to the computer department, if it is
simple and there is some spare time, the modification is scheduled
immediately. Usually, however, it is added to a prioritized list of things to
do. When it reaches the top of the list, the same SDLC steps used during
development are used during maintenance. In other words, you need to
determine whether the modification is feasible, determine its cost, develop a
specification, etc. (Chapter 18 provides additonal discussion on
maintenance.)
Khi mẫu thay đổi đến với computer department, nếu đơn giản va có
nhiều thời gian, sự hiệu chỉnh sẽ diễn ra ngay lập tức. Thƣờng, tuy nhiên,
nó sẽ đƣợc them vao trong danh sách ƣu tiên những việc sẽ lam. Khi nó ở
đầu danh sách, các bƣớc SDLC sẽ đƣợc sử dụng để phát triển va bảo trì.
Mặt khác, bạn cần xác định khi nao hiệu chỉnh khả thi, xác định chi phi,
phần phát triển…
1.15 HUẤN LUYỆN
After the system is installed the end users will require some training.
The various ways to achieve this include in-house training to CAI
(computer assisted instruction). Once the end-users are trained they will
need some support on a day-to-day basis. First, as already discussed, they
will need a manual so they can look up answers to questions. Some systems
do not use paper manuals; instead, everything is embedded in a Help file. If
the manuals are insufficient then the company might want to do what most
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 73
companies are doing and fund and staff a Help Desk. Sometimes people in
end-user departments rely on a person within their department who has
become quite expert at using the system. This person is usually referred to
as the resident expert.
Sau khi hệ thống đƣợc cai đặt, ngƣời dùng cuối sẽ cần huấn luyện. 1
trong những cách la traning o nha với CAI. Khi ma ngƣời dung cƣới đƣợc
huấn luyện họ sẽ cần những hợ trợ. Thứ nhất, nhƣ đã thảo luận, họ sẽ cần
hƣớng dận nên họ có thể tìm kiểm câu trả lời cho câu hỏi. Một số hệ thống
sẽ không sử dụng giấy hƣớng dẫn, thay vao đó sẽ la tập tin hƣơng dẫn. Nếu
không thich hợp, công ty sẽ cần phải có 1 ban hƣớng dẫn. Thỉnh thoảng,
ngƣời dung cuối sẽ tin cậy vao 1 ngƣời trong bộ phận của họ ngƣời đã la
chuyên gia sử dụng hệ thống đó.
1.16 KẾT LUẬN
In this introductory chapter we have covered a broad array of
systems development issues and methodologies. We started our grand tour
by discussing the SDLC (systems development life cycle) that identifies the
different steps IT team members take when developing a computer system
using the traditional structured approach. These steps include, but are not
limited to, feasibility study, analysis, design, testing, and implementation. It
is very important that an IT team use a methodology to build a system.
Although systems can certainly be built without such a methodology, the
resulting systems are usually quite flawed and inefficient, and cost too much
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 74
money to build and maintain. One would not build a house without
blueprints; therefore, it makes sense that one should not build a computer
system without a blueprint for building it (the requirement document and
design specification).
Trong chƣơng giới thiệu, chúng ta đã sơ lƣợc qua chiều rộng của
phƣơng pháp va cách thức phát triển hệ thống. Ch1ung ta bắt đầu bằng
SDLC, xác định các bƣớc khác nhau của nhóm IT khi phát triển hệ thống
máy tínhsử dụng cấu trúc truyền thống. Các bƣớc bao gồm, nhƣng không
giới hạn, nghiên cứu khả thi, phân tich, thiết kế, kiểm tra, va thi hanh. Rất
quan trọng cho đội ngũ IT sử dụng phƣơng pháp để xây dựng hệ thống.
Mặc dù hệ thống có thể đƣợc xâu dựng ma không cần phƣơng pháp, hệ
thống cuối cùng thƣờng có lỗ hổng va không hiệu quả, va tiêu tốn rất nhiều
tiền để xây dựng va bảo trì. 1 ngƣời sẽ không xây 1 căn nha ma không có
kế hoạch; do đó, nó có ý nghĩa rằng một ngƣời không thể xây dựng 1 hệ
thống máy tinh ma không có kế hoạch cho việc xây dựng (tai liệu cần thiết
va thiết kế đặc biệt)
We have seen some of these ―building tools‖ in action in the form of
DFDs (data flow diagrams) and PSPECs (process specifications). There are
many other diagrammatic techniques such as State transition diagrams, E–R
diagrams (entity–relationship), and control flow diagrams. These tools are
used by the analyst to lay out exactly what the system is going to do, how
the system will interact with its data, how the databases will be laid out, and
how the system will interface with other systems.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 75
Chúng tôi nhìn thấy 1 vai công cụ xây dựng trong việc theo mẫu
DFDs va PSPECs. Có nhiều dạng biểu đồ kỹ thuật nhƣ biểu đồ State
transition, biểu đồ E-R, va nhiều biểu đồ kiểm soát. Các công cụ đó đƣợc sử
dụng để phân tich hệ thống thật sự đang lam những gì, hệ thống tƣơng tác
nhƣ thế nao với dữ liệu, cơ sở dữ liệu đƣợc đƣa ra nhƣ thế nao, va cách hệ
thống giao tiếp với bên ngoai với những hệ thống khác.
Of course, none of this is possible without first figuring out what the
end user wants and needs for his or her system. The process of determining
these requirements is usually called requirements elicitation and it is the
information uncovered in this process that the analyst uses to model the
system.
Dĩ nhiên, không cái gì la có thể ma không có việc hoạch định ra cái
ma ngƣời dung cuối muốn cho hệ thống của họ. Quá trình xác định các yêu
cầu thƣờng gọi la gợi ra yêu cầu va đó la thong tin không đƣợc nhắc đến
trong quá trình ma nha phân tich định hình hệ thống.
Once the system is deemed feasible and its requirements determined,
it is now time to physically design the system. This is when the analyst or
designer gets into the ―bits and bytes‖ of the system: exactly what functions
will be programmed, the logic of these functions, what data will be used,
what network architecture should be used, etc. In this step, an extremely
detailed design specification is created — so detailed that the programmers
have all the information they need to write their programs.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 1: Giới thiệu về công nghệ phần mềm 76
Khi hệ thống đƣợc xác định la khả thi la những yêu cầu đƣợc xác
định, bấy giờ la thời gian để thiết kế vật lý cho hệ thống. Đó la khi nha phân
tich hoặc nha thiết kế bắt đầu với bits va bytes của hệ thống; chinh xác chức
năng sẽ đƣợc lập trình, tinh logic của các chức năng, dữ liệu nao sẽ đƣợc sử
dụng, kiến trúc mạng nao sẽ đƣợc sử dụng, … Trong bƣớc nay, các chi tiết
cuối cùng thiết kế đặc biệt sẽ đƣợc tạo ra –chi tiết ma ngƣời lập trình muốn
có tất cả thong tin họ cần để viết chƣơng trình.
The system is then tested (unit testing by the programmer,
acceptance testing by the end users, system testing by the team, etc.). After
the system has been thoroughly tested, it is time to implement the system;
this is often called ―putting it into production‖ by those in the field. Just
prior to this, the IT team documents the system and trains the end users.
Hệ thống sẽ đƣợc kiểm tra sau đó (kiểm tra đon vị bởi ngƣời lập
trình, kiểm tra chấp nhận bởi ngƣời dung cuối, kiểm tra hệ thống bởi
team…) Sauk hi hệ thống vƣợt qua kiểm tra, la thời gian để thi hanh hệ
thống,; thƣờng gọi la đặt hệ thống vao sản phẩm.. Đặt độ ƣu tiên, IT tai liệu
hóa hệ thống va huấn luyện ngƣời dùng cuối.
Finally, the system is in production and it is time to support it (help
desk, training, etc.) and make changes (maintenance) as required.
Cuối cùng, hệ thống sẽ ở trong sản phẩn va đó la thời gian để cung
cấp cho hệ thống (help desk, training…) va thay đổi (bảo trì) nếu cần thiết.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 77
CHƢƠNG 2 NGHIÊN CỨU VỀ TÍNH KHẢ THI
VÀ PHÂN TÍCH CHI PHÍ/LỢI NHUẬN
Người dịch:
1. Trần Thanh Hải
2. Đặng Hoang Hải
3. Lê Văn Chân
4. Lê Anh Khoa
5. Dƣơng Tùng Sơn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 78
A feasibility study is a detailed assessment of the need, value, and
practicality of a proposed enterprise, such as systems development (Burch,
2000). Simply stated, it is used to prove that a project is either practical or
impractical. The ultimate deliverable is a report that discusses the feasibility
of a technical solution and provides evidence or the steering committee to
decide whether it is worth going on with any of the suggestions.
Nghiên cứu tinh khả thi la đánh giá chi tiết về nhu cầu , giá trị cua
môt hoat đông kinh doanh đƣơc đê xuât chăng han nhƣ phát triển một hê
thông. Nói đơn giản, nó sử dụng để chứng tỏ một dự án thực tế hay phi thực
tê. Mục tiêu cao nhất la môt bao cao ban vê tinh kha thi cua giai phap ky
thuât va cung câp băng chƣng cho ban chi đao để quyêt đinh dự án có nên
đƣợc phát triển hay không.
At the beginning of every project, it is often difficult to determine if
the project will be successful, if its cost will be reasonable with respect to
the requirements of building certain software, or if it will be profitable in
the long run.
Vơi môi dƣ an , tại thời điểm bắt đầu , ta thƣơng kho xac đinh dƣ an
có thanh công hay không?! Chi phi cua no có hơp ly đôi vơi nhƣng đoi hoi
khi xây dƣng môt phâm mêm hay no co thu vê lơi nhuân hay không?
In general, a feasibility study should include the following
information:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 79
Brief description of proposed system and characteristics
Brief description of the business need for the proposed system
A cost/benefit analysis
Estimates, schedules, and reports
Considerable research into the business and technical viability of the
proposed system is necessary in order to develop the feasibility study.
Thông thƣơng, nghiên cƣu tinh kha thi phải bao gôm nhƣng thông tin
sau:
Bản mô tả tóm tắt về hệ thống đƣợc đề xuất va đặc điểm
Bản mô tả tóm tắt của nhu cầu kinh doanh cho hệ thống đề xuất.
Phân tich chi phi/ lợi nhuân.
Đanh gia, lên kê hoạch va báo cáo.
Nghiên cứu nghiêm túc khả năng tai chinh va kỹ thuật của hệ thống
la cần thiết để phát triển việc nghiên cứu tinh khả thi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 80
2.1 NHỮNG THÀNH PHẦN TRONG NGHIÊN CỨU TÍNH KHẢ THI
There are actually three categories of feasibility
Thƣc tê, có 3 phần:
2.1.1 Tinh khả thi về tai chinh
A systems development project should be economically feasible and
provide good value to the organization. The benefits should outweigh the
costs of completing the project. The financial feasibility also includes the
time, budget, and staff resources used during all the stages of the project
through completion.
Môt dƣ an phat triên hê thông phải kha thi vê kinh tê va tạo ra lợi
nhuận cho tô chƣc. Lơi nhuân phải lớn hơn so vơi chi phi hoan thanh dƣ an.
Tinh khả thi về tai chinh cũng bao gồm thời gian , ngân quy va tai nguyên
con ngƣơi đƣơc sƣ dung trong tất cả các giai đoạn của dự án cho đên khi
hoàn thành.
A feasibility study will determine if the proposed budget is enough to
fund the project to completion. When finances are discussed, time must also
be a consideration. Saving time and user convenience has always been a
major concern when companies develop products. Companies want to make
sure that services rendered will be timely. No end user wants to wait for a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 81
long time to receive service or use a product, however good it is, if another
product is immediately available.
Việc nghiên cứu ở đây se xac đinh xem ngân quy đê xuât co đu đê hô
trơ hoan thanh dƣ an hay không . Ngoài ra, yếu tố thơi gian cung phai đƣơc
tinh đến. Tiêt kiêm thơi gian va sự tiên lơi cho ngƣơi dung luôn la môi quan
tâm chinh khi nhƣng công ty phat triên san phâm . Các công ty muốn đảm
bảo rằng các dịch vụ phải kịp thời. Không ai muôn đơi môt thơi gian dai rôi
mơi nhân một dich vu hay san phâm dù cho nó co tôt thê nao đi chăng nƣa.
Key risk issues include: 1) the length of the project‘s payback (the
shorter the payback, the lower the risk), 2) the length of the project‘s
development time (the shorter the development time, the less likely
objectives, users, and development personnel will change and,
consequently, the lower the risk), and 3) the smaller the differences people
make in cost, benefit, and life cycle estimates, the greater the confidence
that the expected return will be achieved.
Nhƣng vân đê rui ro chinh:
Thơi gian hoan vôn (thơi gian hoan vôn cang ngăn thi đô rui ro
cang thấp)
Lƣơng thơi gian phat triên cua dƣ an (thơi gian phat triên cua dƣ an
cang it, đô rui ro cang thâp)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 82
Sự khác biệt giữa dự tinh va thực tế cang it thì cơ hội thanh công
càng cao.
2.1.2 Tinh khả thi về mặt kỹ thuật
A computer system should be practical to develop and easy to
maintain. It is important that the necessary expertise is available to analyze,
design, code, install, operate, and maintain the system. Technical feasibility
addresses the possibility and desirability of a computer solution in the
problem area. Assessments can be made based on many factors — for
example, knowledge of current and emerging technical solutions,
availability of technical personnel on staff, working knowledge of technical
staff, capacity of the proposed system to meet requirements, and capacity of
the proposed system to meet performance requirements.
Một hệ thống máy tinh cần phải dễ phát triển va bảo trì. Điều quan
trọng la phải có các chuyên môn cần thiết để phân tich, thiết kế, lập trình,
cai đặt, vận hanh, va duy trì hệ thống. Tinh khả thi trong kỹ thuật nói đến
khả năng va yêu cầu của một giải pháp máy tinh trong lĩnh vực liên quan
đến vấn đề. Đánh giá có thể đƣợc thực hiện dựa trên nhiều yếu tố - vi dụ,
kiến thức sẵn có va giải pháp kỹ thuật đang phát triển, đội ngũ kỹ thuật,
kiến thức chuyên nghanh của đội ngũ kỹ thuật, khả năng đáp ứng nghiệp vụ
của hệ thống đƣợc đề xuất, va năng suất của hệ thống đƣợc đề xuất.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 83
Developing new technology will need to take into account the
current technology. Will today‘s technology be able to sustain what we plan
to develop? How realistic is the project? Do we have the now ledge and
tools needed to accomplish the job? Emerging technology is getting more
and more advanced with each passing day; somehow we need to know if
our objectives can be realized. It is not enough to note if the product in
development is technologically feasible, we also must make sure that it is at
par with or more advanced than technology in use today.
Phát triển các công nghệ mới cần phải xem xét công nghệ hiện hanh.
Công nghệ hiện nay có chấp nhận những gì chúng ta sắp phát triển hay
không? Tinh thực tế của dự án? Chúng ta có kiến thức va công cụ cần thiết
để thực hiện công việc hay không? Công nghệ ngay cang phát triển; chúng
ta cần phải biết mục tiêu của chúng ta có thể đƣợc thực hiện không. Cần lƣu
ý rằng nếu các sản phẩm đang phát triển la khả thi về công nghệ, chúng ta
cũng phải đảm bảo rằng nó ngang bằng hoặc cao hơn so với công nghệ hiện
tại.
Key risk issues:
Project staff skills and clarity of project design requirements —
technical risk is reduced where similar problems have been solved
or where the design requirements are understandable to all project
participants.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 84
Proven and accepted equipment and software — tried and tested
hardware and software components carry lower risk. Projects that
are novel or break new ground carry higher risk.
Project complexity — a project that requires a high degree of
technical skills and experience will be a higher-risk undertaking
than one that is not as sophisticated and can be handled by less
specialized people.
Nhƣng vân đê rui ro chinh:
Kỹ năng của nhân viên dự án va sự rõ rang của các yêu cầu thiết kế
dự án – các khó khăn về mặt kỹ thuật khi ma những vấn đề tƣơng
tự đã đƣợc giải quyết hoặc các nhân viên dự án đều hiểu những yêu
cầu về thiết kế.
Trang thiết bị va phần mềm đã đƣợc chấp nhận- thử nghiệm thì
mang rủi ro thấp hơn. Dự án không thực tế hoặc không có nền tảng
có nguy cơ cao hơn.
Mức độ phức tạp của dự án - một dự án đòi hỏi một mức độ cao về
kỹ năng va kinh nghiệm về mặt kỹ thuật sẽ có rủi ro cao hơn dự án
không quá phức tạp va có thể đƣợc xử lý bởi it ngƣời chuyên
ngành.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 85
2.1.3 Tinh khả thi về tổ chức, điều hanh
A systems development project should meet the needs and
expectations of the organization. It is important that the system be accepted
by the user and be operational. The following requirements should be taken
into consideration in determining if the system is operationally feasible:
staff resistance or receptiveness to change, management support for a new
system, nature or level of user involvement, direct and indirect impact of
new system on current work practices, anticipated performance and
outcome of the new system compared to the old system, and viability of
development and implementation schedule. The following issues should
also be addressed:
Does the organization for which the information system is to be
supplied have a history of acceptance of information technology or
haspast introduction led to conflict?
Will personnel within the organization be able to cope with
operating the new technology?
Is the organizational structure compatible with the proposed
informationsystem?
Một dự án phát triển hệ thống cần đáp ứng nhu cầu va sự mong đợi
của tổ chức. Điều quan trọng la hệ thống đƣợc chấp nhận bởi ngƣời sử dụng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 86
va đƣợc hoạt động. Các yêu cầu sau đây sẽ đƣợc đƣa vao xem xét trong
việc xác định hệ thống có khả thi để sử dụng hay không: tinh bảo thủ của
nhân viên, hỗ trợ quản lý cho một hệ thống mới, tinh chất hoặc mức độ
tham gia của ngƣời dùng, tác động trực tiếp va gián tiếp của hệ thống mới
vao thực tiễn công việc hiện tại, hiệu suất dự đoán va kết quả của các mới
hệ thống mới so với hệ thống cũ, va khả năng phát triển va tiến độ thực
hiện. Các vấn đề sau cũng cần đƣợc giải quyết:
Liệu các tổ chức ma hệ thống sẽ đƣợc cung cấp có một lịch sử
xung đột nao hay không?
Liệu nhân lực trong tổ chức có thể lam việc với công nghệ mới?
Cơ cấu tổ chức của tổ chức tƣơng thich với các hệ thống đƣợc đề
xuất?
Key risk issues:
User acceptance — the more strongly the users support the project,
the less risk of failure.
Changes to organizational policies and structure — the more a
project influences changes to relationships within an organization
or modifies existing policies, the greater the risk.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 87
Changes to method of operation, practices, and procedures — the
more a project necessitates major changes or modifications to
standard operating procedures in an organization, the greater the
likelihood of risk.
Nhƣng vân đê rui ro chinh:
Sự chấp nhận của ngƣời dùng –sự hỗ trợ của ngƣời sử dụng cho dự
án cang mạnh mẽ, rủi ro thất bại cang it.
Thay đổi chinh sách va cơ cấu tổ chức – dự án thay đổi mối quan
hệ trong tổ chức hoặc thay đổi chinh sách hiện tại cang nhiều, thì
nguy cơ cang nhiều.
Thay đổi phƣơng thức hoạt động, thực hanh, va các thủ tục - một
dự án thay đổi các hoạt động chinh hoặc sửa đổi thủ tục tiêu chuẩn
trong một tổ chức cang nhiều, khả năng rủi ro cang lớn.
Depending upon the scope of the software to be developed,
organization feasibility might require the following analyses, particularly if
the software being developed is a product that will be introduced to the
marketplace:
Competitive analysis refers to the study of the current trends and
different brand names available in today‘s market to enforce
competitive advantage in product development.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 88
New product development analysis is a key factor in feasibility
studies;it studies the need for and uniqueness of a product,
justifying further study, development, and subsequent launching.
Performance tracking analysis evaluates how well a product will
perform technically and financially in relation to its features and
requirements.
Tuỳ thuộc vao phạm vi của phần mềm đƣợc phát triển,tinh khả thi
cho một tổ chức có thể đòi hỏi những phân tich sau đây, đặc biệt la nếu
phần mềm đang đƣợc phát triển la một sản phẩm sẽ đƣợc giới thiệu với thị
trƣờng
Phân tich cạnh tranh đề cập đến việc nghiên cứu các xu hƣớng hiện
tại va các thƣơng hiệu khác nhau có sẵn trên thị trƣờng hiện nay để
thực thi lợi thế cạnh tranh trong phát triển sản phẩm.
Phân tich phát triển sản phẩm mới la yếu tố then chốt trong nghiên
cứu khả thi; nó nghiên cứu sự cần thiết va tinh độc đáo của một sản
phẩm, chứng minh thêm về các hoạt động nghiên cứu, phát triển,
va tung ra thị trƣờng.
Phân tich hiệu suất đánh giá một sản phẩm sẽ thực thi về mặt kỹ
thuật va tai chinh trong mối liên quan đến các tinh năng va các yêu
cầu của nó nhƣ thế nao.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 89
Competitive Analysis. How does your product or service measure
up to the competition? What is your market share? Is there room for
growth? Web sites can be visited, marketing literature reviewed, and
financial reports analyzed. Surveys can be developed to figure out the
competition and how the product will be needed. Surveys are an important
source of information on market needs and user expectations. In
competitive analysis, the market is evaluated as well
as the market standing value of existing products. Quantitative
research is also useful in anticipating market changes and foreseeing how
the competition will react.
Phân tich cạnh tranh. Lam thế nao để sản phẩm hoặc dịch vụ của
bạn cạnh tranh? Thị phần của bạn la gì? Có khoảng trống nao cho sự phát
triển? Các trang web có thể truy cập, đọc các văn bản tiếp thị va phân tich
báo cáo tai chinh. Các cuộc khảo sát có thể đƣợc phát triển để tìm ra tinh
cạnh tranh va lam thế nao sản phẩm sẽ đƣợc sử dụng. Những cuộc điều tra
la một nguồn thông tin quan trọng về nhu cầu thị trƣờng va kỳ vọng của
ngƣời dùng. Trong phân tich thị trƣờng cạnh tranh, thị trƣờng đƣợc đánh
giá nhƣ la giá trị thị trƣờng của sản phẩm hiện có. Định lƣợng nghiên cứu la
cũng hữu ich trong việc thay đổi thị trƣờng đã đƣợc dự đoán va dự báo
trƣớc những sự cạnh tranh.
New Product Development. The first goal in launching a new
product is to identify a need. What will the software offer that is not offered
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 90
right now in existing products? Are businesses, schools, or personal
consumers interested in such a product? A feasibility study will allow an
organization to find the right niche for products. The feasibility study also
helps evaluate the market for growth, cost, and longevity of the product.
This gives the company a chance to tweak a product before it is
manufactured and subsequently launched.
Phát triển sản phẩm mới. Mục tiêu đầu tiên khi tung ra thị trƣờng
một sản phẩm mới la xác định nhu cầu. Phần mềm cung cấp những gì ma
chƣa đƣợc trong các sản phẩm hiện hanh?Các doanh nghiệp, trƣờng học,
hoặc cá nhân ngƣời tiêu dùng sẽ quan tâm đến sản phẩm? Một nghiên cứu
khả thi sẽ cho phép một tổ chức tìm chỗ đứng cho sản phẩm. Các nghiên
cứu khả thi cũng giúp đánh giá sự tăng trƣởng, chi phi, va tuổi thọ của sản
phẩm. Điều nay tạo cho công ty một cơ hội để tinh chỉnh một sản phẩm
trƣớc khi nó đƣợc sản xuất va tung ra thị trƣờng.
Performance Tracking. There are many factors to consider when
evaluating the market share of a product. Profits and sales certainly reflect
customer acceptance, but true results can be known only when you evaluate
brand awareness as well as consumer attitudes and satisfaction. Equally
important to a healthy business are the people who make it happen. What is
the morale within your company? Are your employees performing at their
best? It is important to evaluate a company‘s internal and external behavior
vis-à-vis the prospective end users of the product. If it is internal, will
employees see the need to implement totally new software and thus relearn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 91
operations or will it hinder them from cooperating for fear that technology
might replace them?
Theo dõi hiệu suất. Có rất nhiều yếu tố cần xem xét khi đánh giá thị
phần của sản phẩm. Lợi nhuận va doanh thu chắc chắn phản ánh sự chấp
nhận của khách hang, nhƣng kết quả thật chỉ đƣợc biết đến khi bạn đánh giá
mức độ của thƣơng hiệu cũng nhƣ thái độ va sự hai lòng của ngƣời tiêu
dùng. Một điều cũng quan trọng đối với một doanh nghiệp lam ăn tốt la
những ngƣời lam việc. Tinh thần lam việc trong công ty của bạn la gì?
Nhân viên của bạn có thể hiện hết đƣợc khả năng của họ hay không? Điều
quan trọng để đánh giá nội bộ va ngoại giao của một công ty la ngƣời sử
dụng tƣơng lai của sản phẩm. Nếu đó la nội bộ, nhân viên có thấy đƣợc sự
cần thiết để học va sử dụng phần mềm hoan toan mới, hoặc nó sẽ cản trở họ
từ hợp tác vì quan ngại rằng công nghệ có thể thay thế họ?
2.2 PHÂN TÍCH CHI PHÍ/LỢI NHUẬN
One of the major deliverables of the feasibility study is the
cost/benefit analysis. In this document the organizational, financial, and
technical aspects of creating the software are put into a dollars and cents
format. Appendix D (sample cost/benefit analysis worksheets) provides a
good framework for this analysis.
Một trong những phần chinh của nghiên cứu tinh khả thi la phân tich
chi phi / lợi nhuận. Trong tai liệu nay những mặt tổ chức, tai chinh, va kỹ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 92
thuật của việc tạo ra các phần mềm đƣợc đƣa vao mô hình giữa đô la xu.
Phụ lục D (mẫu bảng phân tich chi phi/lợi nhuận) cung cấp một khuôn mẫu
tốt cho việc phân tich nay.
The purpose of this analysis is to determine whether the costs
exceed the benefits of the new or modified system. Costs associated with a
computer project can be categorized as follows:
Systems analysis and design
Purchase of hardware
Software costs
Training costs
Installation costs
Conversion and changeover costs
Redundancy costs
Operating costs, including people costs
Mục đich của phân tich nay la để xác định xem các chi phi có vƣợt
quá những lợi ich của hệ thống mới hoặc đƣợc sửa đổi hay không. Chi phi
liên quan với một dự án máy tinh có thể đƣợc phân loại nhƣ sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 93
Hệ thống phân tich va thiết kế
Mua phần cứng
Chi phí phần mềm
Chi phi đao tạo
Chi phi cai đặt
Chi phi chuyển đổi
Chi phi điều hanh, bao gồm cả chi phi nhân lực
Many specific costs are subcategorized within these categories; for
example: analyst calculations of total cost of project, alternatives to
purchasing hardware, staff needed to train users, maintenance costs for
hardware and software, costs of power and paper, and costs associated with
personnel to operate the new system. A more detailed list includes:
Equipment — disk drives, computers, telecommunications, tape
drives, printers, facsimiles, voice and data networks, terminals,
modems, data encryption devices, physical firewalls (leased or
purchased)
Software — application programs, operating systems, diagnostic
programs, utility programs, commercial off-the-shelf (COTS)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 94
software such as word processors and graphics programs, database
management software, communications software, server software
(leased or purchased)
Commercial services — teleprocessing, cell phones, voice mail,
online processing, Internet access, packet switching, data entry,
legal services
Support services — systems analysis and design, programming,
training, planning, project management, facilities management,
network support
Supplies — CDs, tapes, paper, pens, pencils, CD-ROMs, etc.
Personnel — salary and benefits for all staff involved, usually
calculated at a rate of 30 percent of the base salary
Nhiều chi phi cụ thể đƣợc phân nhóm trong các loại nay, vi dụ nhƣ:
các tinh toán của các nha phân tich về tổng chi phi của dự án, lựa chọn phần
cứng, nhân viên cần thiết để hƣớng dẫn ngƣời sử dụng, chi phi bảo trì phần
cứng va phần mềm, chi phi điện va giấy, va các chi phi liên quan đến nhân
sự để vận hanh hệ thống mới. Một danh sách chi tiết hơn bao gồm:
Trang thiết bị: ổ đĩa, máy tinh, viễn thông, băng ổ đĩa, máy in, fax,
mạng thoại va dữ liệu, thiết bị đầu cuối, modem, các thiết bị mã
hóa dữ liệu, tƣờng lửa vật lý (thuê hoặc mua).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 95
Phần mềm: chƣơng trình ứng dụng, hệ điều hanh, chƣơng trình
chẩn đoán, các chƣơng trình tiện ich, thƣơng mại off-the-shelf
(Cots) các phần mềm nhƣ bộ xử lý đồ họa từ va các chƣơng trình,
phần mềm quản lý cơ sở dữ liệu, truyền phần mềm, phần mềm máy
chủ (cho thuê hoặc mua).
Thương mại dịch vụ: điện thoại di động teleprocessing, thƣ thoại,
trực tuyến xử lý, truy cập Internet, chuyển mạch gói dữ liệu, nhập
dữ liệu, dịch vụ pháp lý.
Hỗ trợ các dịch vụ: phân tich hệ thống va thiết kế, lập trình, đao
tạo, quy hoạch, quản lý dự án, các cơ sở quản lý, hỗ trợ mạng.
Dụng cụ: đĩa CD, băng, giấy, bút mực, bút chì, đĩa CD-ROM, vv.
Nhân sự: tiền lƣơng va lợi ich cho tất cả các nhân viên tham gia,
thƣờng đƣợc tinh theo tỷ lệ 30% của lƣơng cơ bản.
It is important that the benefits outweigh the costs. Some of the
benefits cannot necessarily be measured, but nevertheless should be taken
into consideration. Some of those benefits are intangible such as savings in
labor costs, benefits due to faster processing, better decision making, better
customer service, and error reduction. It may be difficult to determine
benefits and costs in advance.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 96
Điều quan trọng la những lợi nhuận phải lớn hơn chi phi. Một số lợi
nhuận có thể không nhất thiết phải đƣợc tinh toán, nhƣng vẫn cần đƣợc cân
nhắc. Một số lợi nhuận khó đong đếm nhƣ la tiết kiệm chi phi lao động, lợi
ich do xử lý nhanh hơn, tốt hơn cho việc ra quyết định, dịch vụ khách hang
tốt hơn, va giảm lỗi. Có thể rất khó để xác định lợi nhuận va chi phi trƣớc.
Cost information can be obtained from:
Experiences from the past. Old documents and information will be
useful in getting some ideas about the cost of software, hardware,
and each service. Invoices for expenses for resources purchased for
prior projects are particularly useful.
Costs from the market. It is also important to get the price from the
current market for your software system.
Publishing. Business and trade publications and the Internet are
another source of price information as well as product
functionality.
Personal experience. End users and system staff might have
relevant information on costs and product feature sets.
Thông tin về chi phi có thể đƣợc biết từ:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 97
Kinh nghiệm: Tai liệu cũ va thông tin sẽ hữu ich trong việc một số
ý tƣởng về chi phi của phần mềm, phần cứng, va mỗi dịch vụ. Hoá
đơn chi phi tai nguyên cho các dự án trƣớc đặc biệt hữu dụng.
Giá cả thị trường cũng quan trọng để hệ thống phần mềm của bạn
có đƣợc mức giá từ thị trƣờng hiện tại.
Xuất bản: Các ấn bản về thƣơng mại về kinh doanh, Internet cũng
la một nguồn thông tin về giá cũng nhƣ các chức năng của sản
phẩm.
Kinh nghiệm cá nhân. Ngƣời sử dụng cuối cùng va nhân viên hệ
thống có thể có thông tin liên quan về chi phi va tinh năng sản
phẩm.
2.3 LẬP KẾ HOẠCH NGHIÊN CỨU TÍNH KHẢ THI
Creating a schedule for the feasibility study is very important in that
it puts into perspective the amount of time required, people involved,
potential consumers, and competition that will provide the relevant
information. Tasks include selecting a team, assigning appropriate tasks to
each team member, and estimating the amount of time required to finish
each task. Some of the scheduling tools that can be utilized are diagrams
showing relevant work scheduling in relation to the tasks required to finish
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 98
the feasibility study. Some of these use a table as shown below, a Gantt
chart (Exhibit 2-1), or a PERT diagram (Exhibit 2-2), which is represented
by a network of nodes and arrows that are evaluated to determine the
project‘s critical activities. Precedence of activities is important in
determining the length of the project when using a PERT diagram.
Tạo một lịch trình cho việc nghiên cứu khả thi la rất quan trọng, nó
liên quan đến lƣợng thời gian cần thiết, những ngƣời liên quan, khách hang
tiềm năng, va sự cạnh tranh. Công việc bao gồm lựa chọn một nhóm, giao
nhiệm vụ thich hợp cho mỗi thanh viên, va ƣớc tinh số lƣợng thời gian cần
thiết để hoan thanh mỗi nhiệm vụ. Những công cụ lập kế hoạch có thể đƣợc
sử dụng la biểu đồ, thể hiện các việc liên quan đến các nhiệm vụ cần thiết
để hoan thanh việc nghiên cứu tinh khả thi. Có thể sử dụng bảng nhƣ dƣới
đây, một biểu đồ Gantt (hình 2-1), hoặc một sơ đồ Pert (hình 2-2), đƣợc thể
hiện bởi một mạng của các nút va mũi tên ma đƣợc dùng để xác định các
hoạt động quan trọng của dự án. Độ ƣu tiên của các hoạt động la rất quan
trọng trong việc xác định số lƣợng công việc của dự án khi sử dụng một sơ
đồ Pert.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 99
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 100
2.4 QUY TRÌNH NGHIÊN CỨU TÍNH KHẢ THI
A feasibility study should follow a certain process. It should analyze
the proposed project and produce a written description, define and
document possible types of systems, and develop a statement of the
probable types of systems. The feasibility study should analyze the costs of
similar systems, produce a rough estimate of the system size, costs, and
schedules, and define the benefits of the system. It should produce an
estimate of the next stage of the life cycle. Analysis of the current system is
necessary in order to establish feasibility of a future technical system. This
will provide evidence for the functions that the new system will perform.
Finally, a report should be written containing suggestions, findings, and
necessary resources (Sauter, 2000)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 101
Một nghiên cứu khả thi nên thực hiện theo một quy trình nhất định.
Ta nên phân tich đề xuất dự án va lập ra một mô tả bằng văn bản, xác định
va tai liệu hóa các loại hệ thống có thể có, va chỉ ra các loại hình có thể xảy
ra của hệ thống. Các nghiên cứu khả thi nên phân tich chi phi hệ thống, ƣớc
tinh sơ bộ kich thƣớc của hệ thống, chi phi, va thời gian, va xác định các lợi
ich của hệ thống. Điều đó cho ra một ƣớc tinh của các giai đoạn tiếp theo
của chu kỳ. Phân tich hệ thống hiện có la cần thiết để thiết lập tinh khả thi
của một hệ thống kỹ thuật trong tƣơng lai. Điều nay sẽ cung cấp cơ sở cho
những chức năng ma hệ thống mới sẽ thực hiện. Cuối cùng, cần viết một
báo cáo bằng văn bản về các đề nghị, kết quả, va các nguồn lực cần thiết
(Sauter, 2000).
A feasibility report will be written and submitted to management
containing all relevant information, including financial expenses and
expected benefits as shown in Exhibit 2-3. Based on this report,
management will make its determination about the future of the project.
Much of the information will come from the analyst and the systems
investigation. The report should include information on the feasibility of the
project, the principal work areas for the project, any needs for specialist
staff that may be required at later dates, possible improvements or potential
savings, costs and benefits, as well as recommendation. Charts and
diagrams relative to the project, such as Gantt and Pert charts, should be
included in the feasibility report. Obviously, the project cannot proceed
until the feasibility report has been accepted.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 102
Một báo cáo khả thi sẽ đƣợc viết va nộp cho quản lý với tất cả các
thông tin liên quan, bao gồm chi phi tai chinh va lợi ich dự kiến nhƣ trong
hình 2-3. Căn cứ vao báo cáo nay, quản lý sẽ đƣa ra quyết định về tƣơng lai
của dự án. Phần lớn các thông tin sẽ đến từ các nha phân tich va điều tra các
hệ thống.Báo cáo phải bao gồm các thông tin về tinh khả thi của dự án, lĩnh
vực lam việc chinh cho dự án, các chi tiết cho các chuyên gia có thể sẽ cần
đến sau nay, cải tiến có thể có hoặc những khoảng tiết kiệm tiềm năng, chi
phi va các quyền lợi, cũng nhƣ khuyến nghị. Bảng xếp hạng va biểu đồ liên
quan đến các dự án, nhƣ bảng xếp hạng Gantt va Pert, nên đƣợc bao gồm
trong các báo cáo tinh khả thi. Rõ rang la, các dự án không thể tiến hanh
cho đến khi các báo cáo đã đƣợc chấp nhận.
2.4.1 Xác định tinh khả thi
A proposal may be regarded as feasible if it satisfies the three criteria
discussed at length earlier: financial, technical, and operational. Scheduling
and legal issues must also be considered (Burch, 2000). It is possible to
proceed with the project even if one or more of these criteria fail to be met.
For example, management may find that it is not possible to proceed with
the project at one point in time but that the project can commence at a later
date. Another option would be for management to make amendments to the
proposed agenda and agree to proceed upon those conditions. Conversely, a
project that may have been determined feasible may later be determined
infeasible due to changes in circumstances.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 103
Các đề xuất có thể đƣợc coi la khả thi nếu đáp ứng ba tiêu chi đã
đƣợc thảo luận ở trên: tai chinh, kỹ thuật, va hoạt động. Thời gian biểu va
các vấn đề pháp lý cũng phải đƣợc xem xét (Burch, 2000). Có thể tiến hanh
các dự án ngay cả khi một hoặc một số các tiêu chi nay không đƣợc đáp
ứng. Vi dụ, quản lý có thể thấy rằng không thể để tiến hanh các dự án tại
một thời điểm ma dự án có thể bắt đầu vao sau đó. Một lựa chọn khác để
quản lý việc sửa đổi vao chƣơng trình nghị sự đề xuất va đồng ý để tiến
hanh dựa trên các điều kiện. Một dự án đã đƣợc xác định có tinh khả thi sau
nay có thể không còn khả thi nữa do các điều kiện thay đổi.
2.4.2 Những đánh giá khác
When dealing with many kinds of projects, costs and benefits are
usually the main concerns. Other concerns, however, should be considered.
Project timeframes should also be addressed in the feasibility study;
realistic estimates should be made detailing staff resources and time
required to complete the different phases of the project. In dealing with the
project, it is also important to consider all legal or regulatory issues that
may occur throughout the feasibility or any stage of the project. It may be
wise to conduct a preliminary investigation of any obligations and
regulatory or legal issues prior to commencement of the initial project
stages.
Khi lam việc với nhiều loại dự án khác nhau, chi phi va lợi ich
thƣờng la những vấn đề chinh. Những vấn đề khác, tuy nhiên, cũng cần
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 104
đƣợc xem xét. Khung thời gian dự án cũng nên đƣợc để tâm trong các
nghiên cứu khả thi; những ƣớc lƣợng thực tế cần đƣợc thực hiện chi tiết dựa
vao các nguồn lực nhân viên va thời gian cần thiết để hoan thanh giai đoạn
khác nhau của dự án. Trong khi lam việc với dự án, cũng rất quan trọng để
xem xét tất cả các quy phạm pháp luật hoặc các vấn đề pháp lý có thể xảy
ra trong tất cả các giai đoạn của việc nghiên cứu tinh khả thi. Nó có thể
khôn ngoan để tiến hanh một cuộc điều tra sơ bộ của bất kỳ nghĩa vụ va các
vấn đề pháp lý hay pháp lý trƣớc khi bắt đầu ban đầu dự án giai đoạn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 105
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 106
2.4.3 Các công đoạn nghiên cứu tinh khả thi
Robinson (2002) has neatly summarized the stages of a feasibility
study(Exhibit 2-4):
1. Define project scope
2. Perform activity analysis
3. Perform needs analysis
4. Conduct conceptual modeling
5. Use case modeling
6. Identify nonfunctional requirements
7. Identify options
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 107
8. Select options
9. Plan acquisition strategy
10. Develop business case
11. Conduct package feasibility study
Robinson (2002) đã tóm tắt các giai đoạn của một nghiên cứu khả thi
(Exhibit 2-4):
1. Xác định phạm vi dự án
2. Thực hiện phân tich
3. Thực hiện phân tich nhu cầu
4. Mô hình hóa các khái niệm
5. Mô hình hóa các trƣờng hợp
6. Xác định các yêu cầu không có tinh ham
7. Xác định các tuỳ chọn
8. Chọn lựa chọn
9. Xác định chiến lƣợc để đạt đƣợc mục tiêu.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 108
10. Phát triển các trƣờng hợp kinh doanh
11. Tiến hành các gói nghiên cứu tính khả thi
2.5 KẾT LUẬN
The primary goal of the feasibility study is to evaluate the risks,
benefits, and potential of a proposed project. We also know that the study
should aid in producing a solid plan for the research stage and stages to
follow so that the project will be given careful consideration and be
properly funded. According to Burch (2000), a feasibility study will help
you make informed and transparent decisions at crucial points during the
developmental process to determine whether it is operationally,
economically, and technically realistic to proceed with a particular course
of action. It should provide a means of minimizing risks, clarifying issues
and expectations, and improving the decision making process and the stages
to follow.
Mục đich chinh của việc nghiên cứu tinh khả thi la đánh giá những
khó khăn, thuận lợi va tiềm năng của một dự án. Chúng ta cũng đã biết rằng
việc nghiên cứu nên hỗ trợ trong việc lập một kế hoạch vững chắc cho các
công đoạn nghiên cứu va các bƣớc để dự án đƣợc xem xét cẩn thận va đƣợc
tai trợ xứng đáng. Theo Burch (2000), một nghiên cứu tinh khả thi sẽ giúp
bạn có những dự báo va đƣa ra những quyết định minh bạch tại các thời
điểm quan trọng trong quá trình phát triển của dự án để xác định xem nó có
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 109
tinh thực tiễn trong thực tế hoạt động, kinh tế, va kỹ thuật với một tập các
thao tác hay không. Nó nên cung cấp một phƣơng tiện để giảm thiểu rủi ro,
làm rõ các vấn đề va sự mong đợi, va cải thiện việc ra quyết định xử lý va
các giai đoạn cần lam.
Tham khảo va đọc thêm:
1. Allen, G.W. (1998). The position of the feasibility study in project
management,(Online)Available:
http://www.dis.port.ac.uk/~allangw/papers/feas-stu.htm.
2. Anonymous. (1996). Feasibility study and initial assessment, (Online)
Available: http://cygnus.uwa.edu.au/~belle/ScafEng/feasibil.htm.
3. Burch, J. G. (2000). Designing and implementing record keeping
systems,(Online).Available:
http://www.records.nsw.gov.au/publicsector/DIRKS/exposure_draft/fea
sibility_analysis.htm.
4. Curtis, G., Hoffer, J., George, J., and Valacich, J. (2000). Introduction
to Business Systems Analysis, Pearson Custom Publishing, Boston, 17,
19, 23, 25–229.
5. Kendall, K.E. and Kendall, J.E. (1999). Systems Analysis and Design,
4th ed., Prentice Hall, New York, 54–68.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 110
6. Putnam, L. and Myers, W. (1997). How solved is the cost estimation
problem? IEEE Software,14(6), 105–107.
7. Pressman, R.S. (2001). Software Engineering: a PractitionerÕs
Approach, 5th ed., McGraw Hill,New York, 117–118.
8. Robinson, P. (2002). Lyonsdale systems. Feasibility study, (Online)
Available: http://members.iinet.net.au/~lonsdale/bm/bm21.htm.
9. Sauter, V. (2000). The feasibility study, (Online) Available:
http://www.umsl.edu/~sauter/analysis/deliverables.htm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 111
CHƢƠNG 3 LÊN DỰ ÁN CHO KẾ HỌACH
PHẦN MỀM
Người dịch:
1. Nguyễn Tƣờng Minh
2. Nguyễn Quang Anh
3. Nguyễn Minh Hùng
4. Nguyễn Tiến Vũ
5. Nguyễn Bá Huy
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 112
In the beginning there was just code and nothing but code. The art of
software engineering was just a blip on the horizon and project planning did
not even have a name. In the early days of software development, one
person could carry out the whole process of requirement collection,
analysis, designing, development, testing, and maintenance by himself. Of
course, he did not recognize these processes as independent steps with the
names I have used.
Trong những ngay đầu, nganh công nghệ phầm mềm chỉ tập trung
vao việc viết code, không tập trung vao các việc khác. Các vấn đề nhƣ lên
kế hoạch cho dự án đƣợc cho la vấn đề nhỏ va cũng chƣa đƣợc quan tâm
đúng mức. Lúc nay, một ngƣời có thể lo toan bộ các phần trong qui trình
phát triển phầm mềm nhƣ thu thập yêu cầu, phân tich, thiết kế, kiểm chứng,
va bảo trì. Dĩ nhiên la ngƣời nay chƣa nhận ra đƣợc sự độc lập giữa các
bƣớc với các tên gọi của từng bƣớc nhƣ chúng ta gọi ngay nay.
As computers became ubiquitous software engineering, the ―policies
and procedures‖ of developing computer systems became an important -
and organized — discipline. Project planning became an indispensable part
of software engineering.
Sự phát triển của máy tinh cá nhân giúp nganh công nghệ phầm mềm
ngay cang trở nên phổ biến. Các bƣớc trong việc phát triển một phầm mềm
dần đƣợc chuyên biệt hóa va đƣợc tổ chức chặt chẽ. Việc lên kế hoạch cho
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 113
dự án cũng trở thanh một bƣớc không thể thiếu trong qui trình phát triển
phần mềm.
The project plan is the roadmap that details all of the components of
a software engineering effort. It is a work product generated by the
planning tasks in a software engineering process that contains detailed
information about budgets, schedules, and processes. It necessarily
addresses a broad audience, including management, staff, and customers.
For this purpose it should be comprehensive but concise.
Kế hoạch của dự án la một ―bản đồ‖ hoạch định chi tiết mọi thanh
phần trong khi phát triển phần mềm. Nó bao gồm các thông tin chi tiết về
ngân quĩ, lịch trình va các bƣớc xử lý. Đồng thời việc lên kế hoạch cho dự
án cũng liên quan đến nhiều đối tƣợng nhƣ ngƣời quản lý, hội đồng va cả
khách hang. Do vậy việc lên kế hoạch phải đƣợc quan tâm đúng mức.
3.1 TẠI SAO PHẢI LÊN KẾ HOẠCH CHO DỰ ÁN
Projects often go awry. A China Airlines Airbus took off from Taipei
International Airport on April 26, 1994, and continued flying according to
its flight plan. While approaching Nagoya Airport for landing, the aircraft
crashed. On board were 271 persons: 256 passengers (including 2 infants)
and 15 crew members, of whom 264 persons (249 passengers including 2
infants and 15 crew members) were killed and 7 seriously injured. The
aircraft ignited and was destroyed.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 114
Các kế hoạch thƣờng đƣợc triển khai không nhƣ mong đợi. Một máy
bay Aibus của hãng hang không Trung Quốc hạ cánh xuống sân bay cuối tế
Đai Loan vao 26/4/1994. Sau đó nó lại tiếp tục bay theo lịch trình. Khi sắp
hạ cánh xuống sân bay Nagoia, máy bay bị rơi. Trên máy bay có 271 ngƣời
gồm 256 hanh khách (trong đó có 2 trẻ nhỏ) va 15 phi hanh đoan thì 264 đã
chết (gồm 249 hanh khách va 15 phi hanh đoan), 7 ngƣời bị thƣơng nặng.
Máy bay cũng bị phá hủy hoan toan.
While the aircraft was making an approach under manual control by
the flight officer, he inadvertently activated the GO lever, which caused the
FD (flight director) to GO AROUND mode and caused a thrust increase.
This made the aircraft deviate above its normal glide path, which, in turn
led to 48 SOFTWARE ENGINEERING HANDBOOK the chain of events
that ultimately caused the airplane to stall and then crash.
Nguyên nhân la khi máy bay sắp hạ cánh va đƣợc điều khiển bằng
tay bởi cơ trƣởng, anh ta vô tình tăng tốc cho máy bay, điều nay lam máy
bay bay chệch hƣớng khỏi đƣờng băng đƣợc định sẵn dấn đến việc máy bay
gặp tai nạn.
Computers are increasingly being introduced into safety-critical
systems and, as a consequence, have been involved in more than a few
accidents. Some of the most widely cited software-related accidents in
safetycritical systems have involved a computerized radiation therapy
machine called the Therac-25. Between June, 1985, and January, 1987, six
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 115
known accidents involved massive overdoses by the Therac-25 — with
resultant deaths and serious injuries. They have been described as the worst
series of radiation accidents in the 35-year history of medical accelerators.
Máy tinh đang đƣợc sử dụng trong nhiều hệ thống tự động đƣợc cho
la an toan. Tuy nhiên nó cũng ngay cang góp mặt nhiều trong các vụ tai nạn
ma nguyên nhân chinh la do sự hoạt động của hệ thống máy tinh bị sai sót.
Các sai sót này có thể tránh đƣợc bằng cách phát triển va kiểm chứng phần
mềm một cách kỹ lƣơng. Việc định hƣớng sản xuất một phần mềm có chất
lƣợng sẽ không thể thanh công nếu bỏ qua việc lên kế hoạch cho dự án.
Software disasters like these could have been avoided had the
software been designed and tested properly. Productivity and quality
oriented software design cannot be accomplished without adequate project
planning. A realistic project plan must be developed at the beginning of a
project. It must be monitored during the project and modified, if necessary.
Ultimately, a project plan is a vehicle and focal point that enables the
project manager to carry out all sorts of project management activities. It
provides a roadmap for a successful software project.
Việc lên kế hoạch cho dự án phải đƣợc lam đầu tiên khi triển khai dự
án. Nó cần đƣợc tuân thủ chặt chẽ va có thể sửa chữa nếu thấy cần thiết.
Các kế hoạch giúp cho ngƣời quản lý nắm đƣợc mọi mặt trong việc phát
triển dự án. Nó vẽ ra con đƣờng chinh xác để dự án đƣợc thanh công.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 116
3.2 AI LÊN KẾ HOẠCH CHO DỰ ÁN
The project manager or team leader normally writes the project plan,
although experienced consultants are often called in for this aspect of the
project. In truth, there are as many ways to write a project plan as there are
companies that write them. If the project is large, the proposed system
might be divided into subsystems — each with its own team. Each team
leader may need to write his own part of the project plan. The project
manager then compiles each subplan into a plan for the whole project.
Ngƣời quản lý hay lãnh đạo thƣờng la ngƣời lập kế hoạch cho dự án.
Các kinh nghiệm chuyên môn cũng giúp cho việc lên kế hoạch đƣợc hiệu
quả. Có nhiều cách để lên kế hoạch cho dự án. Thực tế thì có khá nhiều
cách để lên kế hoạch cho dự án, nếu dựa án đó lớn thì có thể chia nhỏ ra va
đƣợc giao cho từng nhóm riêng biệt, mỗi nhóm tự lên kế hoạch cho công
việc của mình. Ngƣời quản lý sau đó sẽ ghép từng dự án nhỏ riêng biệt lại
để thanh một dự án lớn.
Another alternative is to divide the project plan into discrete tasks
and parcel out the effort to team members. Appendix F contains a sample
project plan. As you can see from its table of contents, it is easily divisible.
Một cách khác la cũng có thể chi dựa án ra thanh các công việc rời
rạc va giao cho mỗi nhóm thực hiện một công việc nhất định.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 117
3.3 ĐIỀU GÌ XẢY RA KHI LÊN KẾ HOẠCH CHO DỰ ÁN
Pressman (2001) has defined the prototypical project plan. A student
implementation of this guideline can be found in Appendix F; the reader is
directed there for a concrete example of how a project plan is orchestrated.
Fressman (2001) định nghĩa một mẫu cho việc lên kế hoạch cho dự
án. Ngƣời đọc có thể tham khảo thêm trong phụ lục F.
The first section introduces the system and describes its purpose. The
project scope and objectives need to be defined here. This subsection
containsa formal statement of scope, description of major functions,
concerns on performance issues, and a list of management and technical
constraints.
Phần đầu tiên la giới thiệu về hệ thống va mô tả mục đich của nó.
Phạm vi của dự án cũng nên đƣợc định nghĩa ở đây. Phần nay mô tả một
cách hình thức phạm vi, các chức năng chinh, các khó khăn có thể gặp phải
va các việc quản lý va kỹ thuật liên quan.
The second section discusses project estimates and resources.
Historical data used for estimates needs to be specified, as do estimation 49
techniques. As a result of the estimation process, the estimates of effort,
cost, and duration need to be reported here. Resources are required to be
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 118
discussed in terms of people and minimal hardware and software
requirements.
Phần hai nói về việc ƣớc lƣơng dự án va các tai nguyên. Các dữ liệu
giúp cho việc ƣớc lƣợng cần phải đƣợc chỉ rõ. Các ƣớc lƣợng về giá thanh
cũng phải đƣợc liệt kê ở bƣớc nay. Các tai nguyên dùng cần dùng nhƣ con
ngƣời, các hệ thống phần cứng, phần mềm cũng cần đƣợc chỉ rõ.
The third section discusses risk management strategy. A risk table
needs to be created at first, followed by more detailed discussions on
risks to be managed. Based on that, a risk mitigation, monitoring, and
management (contingency) plan needs to be created for each risk that has
been addressed.
Phần ba nói về việc quản lý rủi ro. Một bảng quản lý rủi ro phải đƣợc
lập trƣớc tiên. Dựa vao bảng nay, chi tiết về các lỗi sẽ đƣợc quản lý nhƣ
việc phát hiện lỗi, cách thức sửa chữa … sẽ đƣợc quản lý.
The fourth section is an actual project schedule in terms of
deliverables and milestones. A project work breakdown structure, or WBS,
needs to be created, followed by a task network and a timeline chart (Gantt
chart). In addition, a resource table describes the demand for and
availability of resources by time windows. In a WBS the total task is broken
down into series of smaller tasks. The smaller tasks are chosen based on
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 119
size and scope to fit in the management structure of the project. Therefore,
efficient planning and execution are possible.
Phần thứ tƣ nói về việc lên lịch trình cho dự án. Các phần nhỏ của dự
án phải đƣợc mô tả kỹ cang, đồng thời thời gian để thực hiện từng phần
cũng phải đƣợc chỉ rõ. Trong từng phần của dự án, các công việc lớn sẽ
đƣợc chia ra thanh các việc nhỏ hơn. Các việc nhỏ nay đƣợc chọn dựa vao
kich cơ va phạm vi của cấu trúc dự án.
The fifth section discusses staff organization. Usually a project is
carried out by a group of people and therefore a team structure needs to be
defined and a management reporting relationship specified.
Phần thứ năm nói về việc tổ chức quản lý. Thông thƣờng thì dự án
đƣợc điều khiển bởi một nhóm ngƣời, do vậy số lƣợng, nhiệm vụ của từng
ngƣời đối với các phần trong dự án cũng cần đƣợc nêu rõ trong phần nay.
The sixth section lays out a picture on tracking and control
mechanisms.It can be divided into two subsections: quality assurance and
control and change management and control.
Phần sáu nói về cơ chế quản lý va điểu khiển. Nó thƣờng gồm 2
phần la quản lý việc đảm bảo chất lƣợng va quản lý các thay đổi.
At the end of the project plan, all supporting materials that do not fit
into the body of the document can be attached in the appendices section.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 120
Phần cuối cùng la các tai liệu đinh kèm cần thiết cho dự án.
Most project managers have a difficult time writing a project plan
because it is often required at project inception, which, unfortunately, is
when information is most scarce. The project manager must choose a
process model most appropriate for the project, and then define a
preliminary plan based on the set of common process framework activities.
The possible models include linear sequential model, prototyping model,
RAD model (Mantei, 1991), incremental model (McDermid and Rook,
1993), spiral model, etc. — many of which are described in other chapters
of this handbook. Afterward, process decomposition (partitioning) is carried
out, generating a complete plan reflecting the work tasks required to
populate the framework activities.
Hầu hết những ngƣời quản lý đều gặp khó khăn khi lên kế hoạch cho
dự án vì đây la công việc đầu tiên phải lam. Ma những thông tin cần thiết ở
bƣớc nay lại rất hạn chế. Ngƣời quản lý phải chọn một mẫu qui trình thich
hợp với dự án nhất sau đó đƣa ra các kế hoạch dựa vao các mẫu qui trình
nay. Các mô hình có thể tham khảo la mô hình chuỗi đƣờng thẳng, mô hình
mẫu, mô hình RAD (Mantei, 1991), mô hình tăng trƣởng ((McDermid and
Rook, 1993) …Tiếp sau đó la việc phân tich dự án, tich hợp các kế hoạch
với công việc chi tiết để hoan thanh dự án.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 121
3.4 THE PROJECT PLAN UNWRAPPED
3.4.1 Mục đich của phần mềm
Determination of software scope needs to be ascertained first. One
establishes software scope by answering questions about context,
information objectives, function, performance, and reliability. The context
usually includes hardware, existing software, users, and work procedures.
Normally a system specification developed by a system analyst supplies the
information necessary to bind the scope.
Xác định rõ mục đich của phần mềm la việc cần phải lam đầu tiên.
Một ngƣời sẽ thiết lập mục đich của phần mềm bằng cách trả lời những câu
hỏi về phạm vi (context), thông tin khách quan (information objectives),
chức năng (function), thi hanh (performance), va mức độ tin cậy
(reliability). Phạm vi thƣờng bao gồm phần cứng (hardware), các software
đã có, ngƣời dùng (user) va các thủ tục lam việc (work procedure).Thông
thƣờng đặc điểm kỹ thuật một hệ thống (system specification) đƣợc phát
triển bởi hệ thống phân tich sẽ cung cấp những thông tin cần thiết để kết nối
với mục đich.
Techniques like question and answer sessions and FAST (facilitated
application specification techniques) can be used to gather requirements
and establish project scope (Zahniser, 1990).
The following is a minimum that needs to be ascertained:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 122
Major functions are the customers‘ requirements as to what the
software should be able to do.
Performance issues are about speed, response time, and other
performance- related requirements. They can have serious impacts
on the requirement of effort and therefore should be clarified here.
Management and technical constraints should be listed as
foundation for the next section‘s estimation.
Các kỹ thuật nhƣ hỏi, trả lời va FAST (facilitated application
specification techniques) có thể dùng để thu thập yêu cầu va đƣa ra mục
đich phần mềm (Zahniser, 1990).
Ta phải xác định it nhất các yêu cầu sau:
Các chức năng chinh (major function) la những yêu cầu của ngƣời
dùng ma phần mềm cần phải thực hiện đƣợc.
Những vấn đề về thực thi (performance issue) nhƣ tốc độ, thời gian
đáp ứng (response time), va những yêu cầu liên quan đến thực thi
khác.Có thể có những tƣơng tác nghiêm trọng về mặt yêu cầu về
kết quả đạt đƣợc va vì vậy vấn đề nay cần đƣợc lam rõ ở đây.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 123
Quản lý va các kỹ thuật thúc ép (management & technique
constrains) cần đƣợc liệt kê để lam nền tảng cho sự đánh giá ở các
bƣớc sau.
3.4.2 Đánh giá phần mềm
Estimation is the one activity that lays a foundation for all other
project planning activities. However, a project manager should not be
overly manic in estimation. If an iterative process model is adopted, it is
possible to revisit and revise the estimates when customer requirements
change.
Đánh giá la công việc đặt nền tảng cho tất cả các họat động lên kế
họach phần mềm khác. Tuy nhiên, ngƣời quản lý phần mềm không nên quá
chú trọng vao việc đánh giá.Nếu gặp một hình quá trình đã có trƣớc đây, ta
có thể lấy lại khi yêu cầu của ngƣời dùng thay đổi.
Historical Data Used for Estimates. Historical data is key to a good
estimation.The availability of reliable historical software metrics from
previous projects assists the project planner in translating the product size
estimation into effort, time and cost estimations. Baseline productivity
metrics (e.g., LOC (lines of code) or FP (function points)) should be stored
by project domain for use in future estimation efforts.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 124
Những dữ liệu đã có dùng cho đánh giá: Những dữ liệu nay la chìa
khóa cho một đánh giá tốt. Sự có ich của những dữ liệu từ các project trƣớc
đây giúp cho ngƣời lập kế họach phần mềm trong việc chuyển đổi những
đánh giá về kich thƣớc phần mềm vao kết quả, thời gian va đánh giá chi
phi. Cách đánh giá chất lƣợng sản phẩm (LOC – Line of code hay FP-
function point,…) cần đƣợc lƣu trữ theo phạm vi project để sử dụng trong
việc đánh giá phần mềm sau nay.
Estimation Techniques. If similar projects have already been
completed, estimates can easily be based on that available data. Otherwise,
a decomposition technique or an empirical model can be used. There are
also software tools that automate the process using the two preceding
approaches. At least two estimation methods should be used, with the final
estimation a triangulation of the two. Even so, common sense and
experience should be the ultimate judge.
Các kỹ thuật đánh giá: Nếu một project tƣơng tự đã đƣợc hoan
thanh, việc đánh giá có thể dựa vao dữ liệu có sẵn một cách dễ dang.Ngƣợc
lại, ta có thể sử dụng kỹ thuật phân rã hay mô hình kinh nghiệm. Ta cũng
có sẵn những công cụ phần mềm dùng để đánh giá tự động sử dụng 2 cách
tiếp cận trƣớc (preceding approaches).Ít nhất hai phƣơng pháp đánh giá nên
đƣợc sử dụng với lần đánh giá cuối cùng bằng cả 2 phƣơng pháp nay.Va
những đánh giá cuối cùng luôn dựa trên cảm nhận va kinh nhgiệm của
ngƣời đánh giá.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 125
In the example provided in Appendix F two estimation
methodologies are used:
Process based where the system is decomposed into discrete tasks
such as analysis of the user interface and design of the user
interface with an estimated amount of time allocated to each. For
the online resource scheduling system the process-based estimate
was 7.5 person months.
LOC, or line of code, estimation is much harder to estimate
manually. A tool such as COCOMO (an abbreviation of cost
construction model) makes the effort much easier. A wealth of
information as well as a free version of the COCOMO automated
tool can be found on the CSE center for software engineering web
site (http://sunset.usc.edu/research/COCOMOII/index.html).
Trong vi dụ ở phụ lục F, 2 phƣơng pháp đánh giá đã đƣợc sử dụng:
Phân rã dự án thanh những phần riêng lẻ để đánh giá vi dụ nhƣ phân
tich giao diện ngƣời dùng va thiết kế giao diện ngƣời dùng với từng khỏang
đánh giá thời gian cho chúng.Với hệ thống kế họach nguồn trực tuyến thì
thòi gian đánh giá dựa trên quá trình la 7.5 person months.
Đánh giá theo LOC thì khó hơn cách đánh giá bằng tay.Sử dụng
công cụ COCOMO sẽ dễ dang hơn rất nhiều. Nhiều thông tin cũng nhƣ các
phiên bản miễn phi của công cụ tự động COCOMO có thể đƣợc tìm thấy ở
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 126
trung tâm CSE cho công nghệ phần mềm:
http://sunset.usc.edu/research/COCOMOII/index.html
COCOMO II is a model that allows one to estimate the cost, effort,
and schedule when planning a software developmental activity. It is based
on the original COCOMO model devised by Dr. Barry Boehm in 1981. The
COCOMO II model is actually derived from the following original
mathematical formula that is described in the second half of this book:
m = c1 * KLOCa*PROD[fi]
COCOMOII là công cụ cho phép ngƣời dùng đánh giá chi phi, công
sức, thời gian biểu khi lập kế họach phần mềm. Nó dựa trên phiên bản
COCOMO đƣợc phát triển bởi Dr. Barry Boehm năm 1981.Mô hình
COCOMOII thật ra đƣợc dẫn xúât từ công thức tóan học đƣợc diễn tả ở
phần sau sách:
m = c1 * KLOCa*PROD[fi]
COCOMO II permits the estimator to estimate a project cost in terms
of LOC or function points (FP). FP calculation is quite complex; a chapter
explaining function points can be found in this section.
COCOMOII cho phép ngƣời đánh giá đánh giá chi phi project bằng
LOC hay FP. Tinh tóan FP thì phức tạp. Một chƣơng vể FP sẽ đƣợc trình
bay trong cuốn sách nay.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 127
Exhibit 3-1 shows the COCOMO II tool set in action. Although a bit
cumbersome — the nonfree COCOMO tools are much more user friendly
— the free version is quite functional. In this real-world example, I used
COCOMO to estimate the cost of building an Internet gaming system using
the LOC option (see module size). If you look down at the bottom of the
screen shot, you will notice three estimates: optimistic, most likely and
pessimistic. The COCOMO tool set has many features. I would recommend
that you download this tool and try it out.
Hình 3.1 hiển thị cách COCOMOII lam việc.Mặc dù công cụ nay hơi
cồng kềnh, công cụ COCOMO lại thân thiện với ngƣời dùng hơn- phiên
bản miễn phi lại có nhiều chức năng hơn.Trong vi dụ về thế giới thực, tôi
sử dụng COCOMO để đánh giá chi phi một tòa nha, trung tâm hệ thống
Internet game sử dụng LOC.Nếu nhìn xuống cuối man hình, bạn sẽ thấy 3
đánh giá: optimistics, most likely va pessimistic.Công cụ COCOMO có rất
nhiều đặc trƣng. Tôi khuyên bạn nên tải công cụ nay về thử nghiệm.
Thus, the planner first needs to estimate the size of the product to be
built, and then translate the size estimate into human effort, calendar time,
and dollars.
Do đó, ngƣời lập kế họach trƣớc hết cần đánh giá kich thƣớc của dự
án sẽ thực hiện, sau đó chuyển kich thƣớc nay vao chi phi, công sức ngƣời
lam, thời gian biểu va tiền.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 128
3.4.3 Kỹ thuật phân rã
According to Putnam and Myers (1992), several approaches can be
used to handle the project sizing problem: ―fuzzy-logic‖ sizing, which uses
approximate reasoning technique as in the art of ―guestimating‖, function
point sizing, standard component sizing (i.e., modules, screens, reports,
etc.), and change sizing, which is used in estimating the size of an effort to
modify an existing system.
Theo Putnam va Myers (1992), có nhiều cách tiếp cận có thể đƣợc sử
dụng để tiếp cận phầm mềm: Logic mờ (fuzzy logic), phƣơng pháp sử dụng
các kỹ thuật xấp xỉ để dự đóan, function point sizing. Standard component
(modules, screens, reports…), va change sizing, phƣơng pháp đánh giá
công sức bỏ ra khi điều chỉnh một dự án có sẵn.
Problem-based estimation techniques include FP- and LOC-based
estimation, which we just discussed. Both require the project planner to
decompose the software into problem functions that can be estimated
individually. Then the project planner estimates LOC or FP (or other
estimation variable) for each function and applies the baseline productivity
metrics to derive the cost of or effort for the function. Finally, these
function estimates are combined to produce the overall estimate for the
whole project. Alternatively, a process-based estimation is commonly used.
Here the process is partitioned into a relatively small set of activities (i.e.,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 129
the large project is decomposed or segmented into more manageable tasks)
or tasks and the effort required to accomplish each is estimated.
Cách đánh giá dựa trên vần đề bao gồm FP va LOC. Hai phƣơng
pháp đều yêu cầu ngƣời đánh giá phải phân rã phần mềm thanh những chức
năng có thể đánh giá độc lập. Sau đó ngƣời đánh giá sẽ đánh giá LOC hay
FP (hoặc các biến đánh giá khác) cho từng chức năng va áp dụng mức đánh
giá chi phi va công sức cho từng chức năng.Cuối cùng những chức năng đã
đƣợc đánh giá nay sẽ kết hợp với nhau để cho ra đánh giá sản phẩm cuối
cùng. Cách đánh giá nay đƣợc sử dụng nhiều. Ở đây quá trình đƣợc chia
lam nhiều phần nhỏ (vi dụ nhƣ một dự án lớn đƣợc phân rã lam nhiều công
việc có thể quản lý đƣợc) hoặc la những công việc, công sức có thể đánh
giá đƣợc.
3.4.4 Mô hình kinh nghiệm
A variety of empirical models are available to calculate the effort
required based on the size estimation in FP or LOC. Other than COCOMO
(Boehm, 1981), the most widely used model is the software equation
(Putnam and Myers, 1992).
Có rất nhiều kiểu mô hình kinh nghiệm đƣợc dùng để đánh giá yêu
cầu công sức dựa trên LOC hay FP.Ngòai COCOMO (Boehm, 1981), mô
hình đƣợc sử dụng rộng rãi nhất la phần mềm Cân bằng dự án (Putnam va
Myers, 1992).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 130
Putnam‘s cost estimation model is a macro-estimation model. The
model recognizes the relationship between cost and the amount of time
available for the development effort. The Putnam model supports the
mythical man-month idea first put forth by Frederick Brooks that states that
people and time are not always interchangeable. The software equation is
explained in the second half of this book. The results of these estimation
techniques are estimates of effort, cost, and duration. They, in turn, are used
in other sections of the project plan.
Mô hình đánh giá chi phi của Putnam la mô hình đánh giá mức độ
tổng quát (macro-estimation model).Mô hình sẽ nhận diện mối quan hệ
giữa chi phi va thời lƣợng cần thiết cho việc phát triển công sức bỏ ra. Kết
quả của những đánh giá nay la sự đánh giá về chi phi, công sức, va thời
lƣợng. Nó đƣợc sử dụng trong những phần khác của kế họach dự án.
3.4.5 Quản lý rủi ro
A proactive risk strategy should always be adopted. It is better to
plan for possible risk than to need to react to it in a crisis. Software risks
include project risks, technical risks, and business risks; they can also be
categorized as known, predictable, or unpredictable risks. First, risks need
to be identified. One method is to create a risk item checklist. The sample
project plan in Appendix F lists the following risks:
• Customer will change or modify requirements
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 131
• Lack of sophistication of end users
• Users will not attend training
• Delivery deadline will be tightened
• End users resist system
• Server may not be able to handle larger number of users
simultaneously
• Technology will not meet expectations
• Larger number of users than planned
• Lack of training of end users
• Inexperienced project team
• System (security and firewall) will be hacked
Chiến lƣợc rủi ro ban đầu nên đƣợc chấp nhận. Việc lên kế hoạch
các rủi ro có khả năng xảy ra tốt hơn so với việc đối phó với khủng hoảng.
Rủi ro phần mềm bao gồm rủi ro dự án, rủi ro kĩ thuật, rủi ro kinh doanh.
Chúng có thể đƣợc phân loại dựa vao sự xác minh, dự đoán trƣớc va không
dự đoán. Đầu tiên rủi ro đƣợc nhận dạng. Mẫu rủi ro khi lên kế hoạch dự án
nằm trong bảng sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 132
Khách hang sẽ thay đổi yêu cầu.
Thiếu ngƣời dùng cuối tinh tế
Ngƣời dung sẽ ko tham gia huấn luyện
Hạn cuối phân phối siết chặt.
Ngƣời dung cuối chống lại hệ thống
Máy chủ không thể thao tác với số lƣợng lớn ngƣời dùng cuối
đồng thời.
Kĩ thuật sẽ không nhƣ mong đợi.
Số ngƣời dùng thực tế nhiều hơn trong kế hoạch
Đội lam dự án thiếu kinh nghiệm
Hệ thống (bảo mật va tƣờng lửa) sẽ bị tấn công.
Then risks need to be projected in two dimensions: likelihood and
consequences. This section can be a separate RMMM (risk, mitigation,
monitoring, and management) plan and used as part of the overall project
plan.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 133
Sau đó rủi ro đƣợc lên dự án thanh 2 phần: phần có thể thật va phần
hậu quả. Phần nay có thể chia thanh (rủi ro, sự lam nhẹ, giám sát, quản lý)
kế hoạch va sử dụng phần của tất cả dự án.
Risk Table: A risk table is a simple tool for risk projection. First,
based on the risk item checklist, list all risks in the first column of the table.
Then in the following columns fill in each risk‘s category, probability of
occurrence, and assessed impact. Afterward, sort the table by probability
and then by impact, study it, and define a cut-off line.
Bảng rủi ro: la 1 công cụ đơn giản cho việc quản lý rủi ro. Đầu tiên
dựa vao danh sách các rủi ro, liệt kê tất cả các rủi ro trƣớc cột đầu tiên của
bảng. Sau đó, các cột tiếp theo liệt kê từng loại rủi ro, khả năng xuất hiện,
tác động. Ngay sau đó, sắp xếp bảng nay bởi khả năng xuất hiện va sau đó
la tác động.
Discussion of Risks to Be Managed: All risks above the cut-off line
must be managed and discussed. Factors influencing their probability and
impact should be specified.
Thảo luận về các rủi ro đƣợc quản lý: Tất cả các rủi ro trên đƣờng
cắt ngang phải đƣợc quản lý va thảo luận. Các yếu tố tác động nên đƣợc chỉ
rỏ.
RMMM Plan for Each Risk: A risk mitigation plan is a tool that
can help in avoiding risks. Causes of the risks must be identified and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 134
mitigated. Risk monitoring activities take place as the project proceeds and
should be planned early. Risk management — i.e., the contingency plan —
is a list of activities that are put into action in the event a risk is realized. A
plan should be created well before that.
Lên kế hoạch cho các rủi ro: Kế hoạch giảm nhẹ rủi ro la 1 công cụ
giúp tránh đƣợc rủi ro. Nguyên nhân rủi ro phải đƣợc nhận ra va giảm nhẹ.
Giám sát các hoạt động rủi ro chiếm 1 vùng nhƣ la tiến trình của dự án va
nên đƣợc lên kế hoạch sớm. Quản lý rủi ro la 1 danh sách các hoạt động đặt
trong các sự kiến có thể phát sinh rủi ro. Kế hoạch nên đƣợc tổ chức tốt
trƣớc đó.
3.4.6 Bảng thời gian:
Before drafting a schedule several things need to be done. The
project manager needs to first decide the type of the project from four
choices: concept development, new application development, application
enhancement, and re-engineering projects. Then the project manager needs
to compute a task set selector value (Pressman, 2001) by: 1) grading the
project for a set of adaptation criteria including its size, requirements, and
constraints, 2) assigning weighting factors to each criterion, 3) multiplying
the grade by weighting factors and by the entry point multiplier for the type
of the project, and 4) computing the average of all results in the previous
step. Based on this average value, the project manager can choose the
degree of rigor required for the project from four options: casual,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 135
structured, strict, and quick reaction. Afterward, the task set can be decided
and distributed on the project time line based on the process model choice:
linear sequential, iterative, or evolutionary.
Trƣớc khi lam nháp thì vai việc cần đƣợc thực hiện trƣớc. Ngƣời
quản lý dự án cần quyết định trƣớc loại dự án từ 4 loại sau: phát triển khái
niệm, phát triển ứng dụng mới, nâng cấp ứng dụng va tái cơ cấu lại dự án.
Sau đó ngƣời quản lý dự án cần tinh toán các công việc 1) Phân loại dự án
cho các tiêu chuẩn thich nghi bao gồm, kich thƣớc, yêu cầu va rang buộc.
2) Phân công từng yếu tối đến các tiêu chuẩn 3) tăng thêm cấp bậc bởi các
yếu tố đặc biệt va bởi các mục cho từng loại dự án 4) tinh toan kết quả
trung bình trong bƣớc trƣớc đó. Dựa vao giá trị trung bình nay, ngƣời quản
lý dự án có thể chọn độ chinh xác đòi hỏi cho dự án từ 4 tùy chọn sau: ngẫu
nhiên, cấu trúc, nghiêm khắc, phản ứng nhanh. Sau đó các công việc thiết
lập có thể quyết định va đóng góp vao thời gian dự án dựa vao kiễu mẫu:
liên tiếp tuyến tinh, lặp lại, tiến hóa.
A sample from the schedule created for use in Appendix F appears in
Exhibit 3-2.
Hình 3.2 la vi dụ về tạo bảng thời gian sử dụng cho phụ lục F
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 136
Hình 3-2: mẫu bảng thời gian.
Project tasks, also known as project work breakdown structure
(WBS) are now defined as shown in Exhibit 3-3.
Công việc của dự án, đƣợc biết đến nhƣng cấu trúc công việc đƣợc
phân nhỏ đƣợc định nghĩa theo hình 3-3
Hình 3-3 Một vi dụ sử dụng Microsoft project để tạo mộ WBS
Lƣới công việc: Interdependencies among tasks are defined using a
task network as shown in Exhibit 3-5. A task network is also known as an
activity network because it shows all of the activities for the project — and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 137
each activity‘s dependencies. In Exhibit 3-5, task 1.1 must be completed
prior to initiation of task 1.2, and so on. A variety of automated tools
implementing program evaluation and review technique (PERT) and critical
path method (CPM) (Moder et al., 1983) can be used for project scheduling.
Sự phụ thuộc lẫn nhau giữa các công việc đƣợc định rõ theo hình 3-
5. Lƣới công việc đƣợc biết đến nhƣ mạng lƣới các hoạt động bởi vì nó chỉ
ra tất cả các hoạt động của dự án va mỗi hoạt động độc lập. Hình 3-5, công
việc 1.1 phải đƣợc hoan thanh trƣớc công việc 1.2 … Sự đa dạng các công
cụ tự động thi hanh đánh giá chƣơng trình va xem xét kĩ thuật (PERT), phê
bình phƣơng pháp (CPM) đƣợc dùng cho việc định thời gian dự án.
DuPont developed the CPM for use in chemical plants. The objective
is to determine the trade-off between project duration and the total project
cost, which is accomplished by identifying the critical path through activity
network. The critical path can help management to change the duration of
the project. In CPM, an activity time is assumed to be known or predictable.
Dupont phát triển CPM cho sử dụng nha máy hóa học. Mục tiêu xác
định rõ sự thỏa hiệp giữa thời gian kéo dai dự án va tổng chi phi dự án.
Đƣờng dẫn phê bình có thể giúp ngƣời quản lý dự án thay đổi thời gian kéo
dai dự án. Trong CPM, thời gian hoạt động có vẻ đƣợc biết hay có thể dự
đoán trƣớc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 138
Project evaluation and review technique was developed by the Navy
when the Polaris missile was designed. When accurate time estimates are
not available, PERT is an ideal tool for Project Planning since it uses
probability theory.
Đánh giá dự án va xem xét kĩ thuật đƣợc phát triển trong Hải Quân
khi tên lửa Polaris đƣợc thiết kế. Khi thời gian đánh giá chinh xác không có
thật, PERT la 1 công cụ lý tƣởng cho việc lên kế hoạch dự án kể từ khi
dùng lý thuyết.
Eventually CPM and PERT merged into a single technique. Events
are shown as nodes and activities are shown as arrows that connect events.
Arrows represent the effort required for achieving the next event; direction
specifies the order in which events must occur. There are two types of times
for each event. One is the ―earliest time‖, the earliest possible time at which
the event can be chieved. The other is the ―latest time‖, which is the latest
time the event can occur without delaying subsequent events and
completion of the project. For an event, the slack time can be obtained or
calculated by the difference between the latest and the earliest times.
Cuối cùng CPM va PERT đƣợc trộn vao 1 kĩ thuật. Các sự kiện đƣợc
chỉ ra các nút, hoạt động nhƣ những mũi tên kết nối sự kiện.Những mũi tên
nay đòi hỏi nổ lực cho đạt đƣợc sự kiện tiếp theo; trực tiếp chỉ rõ thứ tự các
sự việc xảy ra.Có 2 loại thời gian cho từng sự kiện. Một la thời gian sớm
nhất sự kiện đó có thể đạt đƣợc. Hai la thời gian trễ nhất sự kiện đó có thể
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 139
đạt đƣợc. Cho từng sự kiện, sự thiếu thời gian có thể đạt đƣợc va tinh toán
bởi sự khác nhau giữa thời gian sớm nhất va thời gian trễ nhất.
Biểu đồ thời gian: Usually the timeline chart is generated using
automated tools after inputting the task network or task outline and each
task‘s effort, duration, start date, and resource assignment. This chart is
visual and usually the most used part of a project plan. However, it is also
possible to create a viable Gantt chart using Microsoft Excel as shown in
Exhibit 3-6.
Thƣờng thì biểu đồ thời gian đƣợc tạo ra sử dụng công cụ tự động
sau khi nhập vao mạng lƣới công việc hay phát thảo công việc va sự nổ lực
của công việc, thời gian kéo dai, ngay bắt đầu, tai nguyên đƣợc phân công.
Biểu đồ nay thƣờng có thể xem va dùng vao 1 phần của kế hoạch dự án.
Tuy nhiên, nó có thể tạo ra biểu đồ Gantt bằng Excel nhƣ hình 3-6.
Bảng tài nguyên: This is another output generated by the automated
tool, with a focus on the workload for and utilization of the project
resources, particularly human resources. Once a proper project schedule is
developed, its tasks and milestones should be tracked and controlled as the
project proceeds.
Đây la sản phẩm tạo ra bởi công cụ tự động, tập trung vao lƣợng
công việc máy lam va tiện ich của tai nguyên dự án, đặc biệt la tai nguyên
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 140
con ngƣời. 1 dự án có thời gian biểu đƣợc phát triển, công việc của nó va
cột mốc nên đƣợc đánh dấu va quản lý theo tiến độ của dự án.
3.4.7 Tai nguyên dự án:
Estimation of resources required is an important component of
software planning. For each resource the planner needs to specify with
these characteristics: description, statement of availability, and time
window.
Ƣớc lƣợng tai nguyên yêu cầu la một thanh phần quan trọng của thiết
kế phần mềm,với mỗi tai nguyên thì ngƣời phát thảo cần phải chỉ rõ những
đặc điểm:
Mô tả
Trình bay các khả năng
Thời gian
Các loại tai nguyên:
People: the planner needs to specify the organizational position and
specialty of human resources required by the project. Only after estimating
the development effort can we define the number of people required.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 141
Con ngƣời: ngƣời thiết kế cần chỉ rõ vị tri tổ chức va nét đặc biệt của
nguồn nhân lực yêu cầu bởi dự án. Chỉ duy nhất sau khi ƣớc lƣợng ngƣời
phát triển phải nổ lực để chỉ rõ số lƣợng ngƣời đƣợc yêu cầu bởi dự án.
Hardware and software: hardware and software form the foundation
of the software engineering environment (Naur and Randall, 1969). The
project planner must determine its time window and verify its availability.
Reusable software components should also be specified, alternatives
evaluated, and acquisition made early.
Phần cứng va phần mềm: Phần cứng va phần mền la nền tảng của
của môi trƣờng kỹ nghệ phần mềm, Ngƣời thiết kế dự án phải xác định thời
gian thực va kiểm tra các khả năng có thể có. Những thanh phần có thể sử
dụng lại cũng đƣợc chỉ rõ, lựa chọn thay thế đƣợc đánh giá, va cần đƣợc
lam sớm.
Special resources: any other resources not covered in the previous
two sections should be listed here.
Những tai nguyên đặc biệt: la những tai nguyên khác với 2 phần đã
nêu trên va đƣợc nêu ra ở dƣới.
Staff organization: people are the critical factor in a software
development effort. In a typical software project, the players fall into five
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 142
categories: senior managers, project (technical) managers, practitioners,
customers, and end users. A good team leader should be able to motivate
other players, organize the process, and innovate or encourage people to be
creative.
Tổ chức nhân viên: con ngƣời la yếu tố chủ chốt trong nỗ lực phát
triển phần mềm. Trong một dự án phần mềm điển hình, Có 5 loại vai trò:
ngƣời quản lý cấp cao, ngƣời quản lý (kỹ thuật) dự án,các nhân viên thực
hiện, khách hang va ngƣời dùng cuối.Một ngƣời lãnh đạo nhóm tốt phải có
khả năng đốc thúc những ngƣời khác, tổ chức quy trình, va cải tiến hoặc
khuyến khich sáng tạo của con ngƣời.
Team structure (if applicable): a project manager should decide on
the organizational structure for the team. According to Mantei (1981), these
three generic team organizations exist: democratic decentralized (DD),
controlled decentralized (CD), and controlled centralized (CC). The factors
that influence the team structure decision include: difficulty of the problem,
size of the resultant programs, team lifetime, problem modularity, criticality
of the solution, rigidity of timeline, and communications required.
Generally speaking, a DD structure is best for difficult problems and a CC
or CD structure is best for very large projects.
Cấu trúc của nhóm: một ngƣời quản lý dự án nên quyết định cấu trúc
tổ chức của nhóm. Theo Mantei (1981), ba cách tổ chức nhóm còn tồn tại
là: dân chủ phân cấp (DD), kiểm soát phân cấp (CD), va kiểm soát tập trung
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 143
(CC). Những nhân tố ảnh hƣởng tới quyết định cấu trúc của một nhóm bao
gồm:
Độ khó của vấn đề
Kich thƣớc của kết quả chƣơng trình
Thời gian sống của nhóm
Vấn đề modun
Những giải pháp hóc búa
Thời gian cứng nhắc
Yêu cầu liên lạc
Nói chung, một cấu trúc DD (dân chủ phân cấp la khó nhất) va cấu
trúc CD hoặc CC la tốt nhất cho những dự án lớn
Management reporting: coordination and communication issues,
including management reporting relationships, should be addressed here.
Báo cáo quản lý: tổng hợp va truyền đạt các vấn đề bao gồm báo cáo
các mối quan hệ quản lý.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 144
3.4.8 Cơ chế theo dõi va kiểm soát:
This may be the last section, but not the least important. Errors and
changes are inevitable, and we need to plan ahead to stay prepared for when
they actually happen.
Phần nay có lẽ la phần cuối nhƣng không phải la phần it quan trọng
nhất, lỗi va những thay đổi la không thể tránh khỏi, chúng ta cần phải hoạch
định trƣớc để chuẩn bị đói phó khi nó thực sự xảy ra.
Quality assurance and control: software quality assurance activities
(SQA) happen at each step of the software process and are carried out by
software engineers and an SQA group. Software engineers assure quality by
applying rigorous technical methods and measures, and conducting formal
technical reviews and well-planned testing. SQA group assists software
engineers through a set of activities that address quality assurance planning,
oversight, record keeping, analysis, and reporting. We need to plan these
activities in this subsection.
Đảm bảo chất lƣợng va kiểm soát: Chất lƣợng phần mềm đảm bảo
(SQA) cho các hoạt động xảy ra trong mỗi bƣớc của tiến trình phần mềm,
va đƣợc tiến hanh bởi kỹ sƣ phần mềm va 1 nhóm SQA. Kỹ sƣ phần mềm
đảm bảo chất lƣợng bởi ứng dụng những công nghệ nghiêm khắc va bằng
việc đo lƣờng, tiến hanh những đánh giá về kỹ thuật va những kế họach
kiểm tra tốt. Nhóm SQA sẽ giúp cho kỹ sƣ phần mền xuyên suốt một bộ
các hoạt động đó la địa điểm phác thảo kế hoạch chất lƣợng tin cậy, giám
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 145
sát, giữ lại những bản ghi, phân tich va báo cáo. Chúng ta cần phải có kế
hoạch cho những hoạt động trong những phần nhỏ.
Change management and control: the later the changes happen in a
project, the higher the cost. Change control combines human procedures
and automated tools to provide a mechanism for the control of changes that,
if uncontrolled, can rapidly lead a large project to chaos. The change
control process begins with a change request, leads to a decision to make or
reject the request, and culminates with a controlled update of the software
configuration item to be changed. This part of the activities should be
planned here.
Thay đổi sự quản lý va kiểm soát: Sau những thay đổi trong một dự
án, các chi phi sẽ tăng cao hơn. Kiểm soát sự thay đổi kết hợp các thủ tục
của con ngƣời va các công cụ tự động để cung cấp 1 cơ chế kiểm soát cho
sự thay đổi.Nếu không kiểm soát, dự án rất nhanh chóng sẽ trở nên hỗn
độn. Sự thay đổi của quá trình kiểm soát bắt đầu từ sự thay đổi của 1 yêu
cầu, dẫn tới quyết định thực hiện hay từ chối một yêu cầu va lên tới cực
điểm với sự cập nhật kiểm soát của các mục cấu hình phần mềm sẽ đƣợc
thay đổi, phần hoạt động nay cần đƣợc quy hoạch ở đây.
3.5 CÓ ĐÁNG ĐỂ LÀM CÔNG VIỆC NÀY HAY KHÔNG?
Like any other software engineering task, project planning and
writing a detailed project plan take time and costs money. Therefore a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 146
natural question arises: is it worth it? The answer is yes. If you want a
system that is cost effective, does not go over budget, and actually works, a
project plan is mandatory.
Cũng giống nhƣ các kĩ thuật phần mềm khác, lập kế hoạch va mô tả
chi tiết kế hoạch đó la tốn thời gian va chi phi. Do đó nảy sinh một câu hỏi
thông thƣờng: có đáng hay không? Câu trả lời la có. Nếu bạn muốn một hệ
thống có hiệu quả về chi phi, không vƣợt quá chi phi giới hạn va thật sự
lam việc, lập kế hoạch cho dự án la bắt buộc.
More than a few people in this field use the ―roadmap‖ metaphor to
describe the role of a project plan; however, it is also a ―compass‖. Its
estimation and scheduling part may be like a rough roadmap (never precise
enough at the beginning of a project), but its risk management, organization
plan, tracking, and control part are definitely a compass. It guides the
project team in handling unpredictable risks or undesired events.
Một vai ngƣời trong lĩnh vực nay dùng phép ẩn dụ ―bản đồ chỉ
đƣờng‖ để mô tả vai trò của lập kế hoạch dự án; tuy nhiên, nó đồng thời
cũng la một ―la ban‖. Phần đánh giá va lập bảng thời gian có thể đƣợc vi
nhƣ một bản đồ chỉ đƣờng dạng thô (không chinh xác khi bắt đầu dự án),
nhƣng phần quản lý rủi ro, hay la kế hoạch tổ chức, theo dõi va kiểm soát
thì chinh xác la một la ban. Nó hƣớng dẫn đội lam dự án xử lý các rủi ro
không dự báo đƣợc hay la những sự kiện không mong muốn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 3: Lên kế hoạch cho dự án phần mềm 147
A good project plan benefits not only the project, but also the domain
as whole by its measures and metrics, which can be historical data for later
projects.
Một kế hoạch dự án tốt mang lại không chỉ cho bản thân dự án, ma
còn cho cả toan bộ công việc lam phần mềm bằng những thƣớc đo va độ đo
của nó, những thứ có thể dùng lam tƣ liệu lịch sử cho những quá trình sau.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 148
CHƢƠNG 4 THU THẬP YÊU CẦU
Người dịch:
1. Phạm Ngọc Vân Anh
2. Trần Ngọc Hiệu
3. Trần Duy Khang
4. Huỳnh Lâm Linh
5. Nguyễn Thị An Nhơn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 149
Without proper information it is difficult, if not impossible, to define
or start a systems development project. Information gathered in this process
is called requirements elicitation; it will enable the project manager or
analyst to create a blueprint of current systems and allow definition of
objectives, description of processes, and deployment of objectives for the
new system. In addition, if the systems analyst is careful, he can lay the
foundation of efficient and effective communications with stakeholders
that will lead to a higher likelihood of a successful project.
Chúng ta không thể thực hiện 1 dự án phần mềm nếu không có thông
tin chinh xác về nó . Do đó , trƣơc hêt ta cân phai biêt nhƣng yêu cân ma
phân mêm cân phai co . Những thông tin thu thập nay đƣợc gọi la
Requirements Elicitation. Nó sẽ cho phép ngƣời quản lý dự án hoặc nha
phân tich để tạo ra một kế hoạch chi tiết của các hệ thống hiện tại va cho
phép định nghĩa của mục tiêu, mô tả về quy trình, va triển khai các mục tiêu
cho các mới hệ thống.
4.1 STAKEHOLDER ANALYSIS
PHÂN TÍCH CÁC BÊN LIÊN QUAN
Stakeholders are the people needed to ensure the success of the
project, for example, daily users and their managers, as well as technical
support people. It is important to find all the stakeholder groups and
determine their interests and needs. The first step, then, in requirements
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 150
elicitation is stakeholder analysis in which you try to find answers to the
following questions:
Stakeholder la những ngƣời cần thiết để quyết định sự thanh công
của một dự án , họ la ngƣời sử dụng phần mềm , quản lý , nhân viên kỹ
thuật…Việc xac đinh cac bên liên quan va xac đinh ho mong muôn điêu gi
la rất cần thiết. Trong quá trình xác định các bên liên quan nay, bƣớc đầu
tiên cần trả lời các câu hỏi:
Who are the stakeholders?
What goals do they see for the system?
Why would they like to contribute?
What risks and costs do they see?
What kind of solutions and suppliers do they see?
Các bên liên quan la ai?
Họ mong đơi gì ở phần mềm?
Nhƣng vân đê, trơ ngai ma ho măc phai?
Họ có nhƣng giải pháp gì?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 151
Stakeholders could be:
The sponsor who pays for the development of the product
People who will be using the product on a daily basis
Managers of departments looking to increase work force efficiency
The company‘s customers (clients of the system), without whose
support there will be no business advantages
Business partners: suppliers, carriers, and banks that also need to
interact with the system
IT people and hotline staff in case the product is to be developed
within the company
IT people at the client‘s site
Các bên liên quan có thể la:
Ngƣơi tai trơ cho phân mêm
Ngƣơi sƣ dung phân mêm hăng ngay
Ngƣơi lanh đao (nhƣng ngƣơi nay mong muôn công viêc hiêu qua
hơn khi sử dụng phần mềm)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 152
Các khách hang của công ty sẽ sử dụng phần mềm.
Các bên công tac cua công ty se sƣ dung phân mêm : nha cung cấp,
ngân hang, vân chuyên.
Bô phân IT cua công ty se sƣ dung phân mêm.
Bô phân IT cua bên khach hang cua công ty se sƣ dung phân mêm.
Stakeholders should be carefully interviewed (Curtis et al., 2000) to:
Define financial constraints
Define the current and proposed information systems
Define current and proposed development process
Define current and proposed hardware assets and availability
Define current and proposed software assets and availability
Define current and future goals and objectives of the stakeholders
Các bên liên quan cần đƣợc phỏng vấn để xác định các vấn đề sau:
Măt tai chinh ma công ty có thể bỏ ra
Hệ thống thông tin hiện tại va sắp tới của công ty.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 153
Quá trình lam viêc hiên tai va nhƣng phat triên săp tơi cua công ty.
Hê thông phân mêm hiên tai va hê thông mong muôn săp tơi
Hê thông phân cƣng hiên tai va hê thông phân cƣng săp tơi.
Mục đich tƣơng lai của các bên liên quan la gì.
Information gathered from the financial constraints will allow
examination of realistic designs and eliminate unnecessary expenditures of
resources on unrealistic approaches. One must also know the current
information systems in place and hardware assets as well as the current
software assets available within the company. It is also critical that the
development team fully understand the current development methodologies
and tool sets that the company utilizes. The goals and objectives of the
information gathering process are to be able to accumulate enough
information to define all of these items as well as the goals of the
stakeholders.
Thông tin thu thập từ về khả năng tai chinh dùng để đƣa ra các thiết
kế phù hợp với khả năng thực tế va giảm bớt các tai nguyên va các mục tiêu
không cần thiết. Tất cả các thông tin trên đều rất cần thiết để cung cấp
thông tin đầy đủ cho việc thực hiện phần mềm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 154
4.2 ELICITATION TECHNIQUES
KĨ THUẬT THU THẬP THÔNG TIN
Various methods can be used to obtain the information necessary to
prepare a project plan. These methods include interviewing, questionnaires,
observation, participation, documentation, research, business intelligence
(BI), competitive intelligence (CI), reverse engineering, and benchmarking.
Có rất nhiều phƣơng pháp khác nhau để thu thập yêu cầu phần mềm:
phỏng vấn, bảng câu hỏi khảo sát, quan sát, tham gia, các tai liệu của công
ty, business intelligence(BI), competitive intelligence(CI), reverse
engineering, benchmarking.
4.2.1 Interviewing
The most common method of gathering information is by
interviewingpeople. Interviewing can serve two purposes at the same time.
The first is a fact-finding mission to discover what each person‘s goals and
objectives are with respect to the project; the second is to begin a
communications process that enables one to set realistic expectations for the
project.
Phƣơng pháp phổ biến nhất để thu thập yêu cầu là phỏng vấn. Phỏng
vấn có thể phục vụ đồng thời 2 mục đich: tìm ra mục đich trong phạm vi dự
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 155
án của con ngƣời nhanh chóng, bắt đầu quá trình giao tiếp để khơi gợi
những mong muốn thực tế cho dự án.
A wide variety of stakeholders can and should be interviewed.
Stakeholders are those with an interest in seeing this project successfully
completed — i.e., they have a ―stake‖ in the project. As discussed earlier,
stakeholders include employees, management, clients, and partners.
Cần phỏng vấn nhiều thanh phần khác nhau của các bên liên quan.
Các bên lien quan la những ngƣời mong muốn dự án hoan thanh thanh
công, vi dụ: nhân viên, quản lý, khách hang…
Employees: It is amazing to me that some analysts develop systems
without ever interviewing those whose jobs will be affected the most. This
occurred most notably at the U.S. Post Office when the clerical staff was
automated in the 1980s. So little information was shared about what the
new system was going to do that the clerks got the misimpression that they
were soon to be replaced.
Rất ngạc nhiên là một số nhà phân tích phát triển hệ thống mà không
phỏng vấn những ngƣời có công việc bị ảnh hƣờng nhiều nhất. Điển hình là
ở U.S Post Office khi bộ phận kế toán đƣợc tự động hóa vào những năm
1980. Rất ít thông tin về sự hoạt động trong tƣơng lai của hệ thống đƣợc
chia sẻ, do đó các kế toán viên cứ tƣởng rằng họ sắp bị thay thế.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 156
The number and type of employees that will need to be interviewed
will depend on the type of system being developed. Systems generally fall
into two categories: tactical and strategic. Tactical systems are usually
transactional- based systems such as check processing, student registration,
and medical billing where data volumes are high and staff members
accessing those systems are clerical. Strategic systems support the decision
making process and are utilized by middle and senior managers. It is
possible for a system to be a hybrid of both these system types. An example
of this would be a transactional back end that collects data for analysis by
managers at the front end.
Số lƣợng va các thanh phần nhân viên đƣợc phỏng vấn phụ thuộc
vao loại hệ thống phần mềm nay. Hệ thống nay đƣợc chia thanh 2 loại:
chiến thuật (tactical) va chiến lƣợc(strategic). Hệ thống chiến thuật la
những hệ thống thực hiện các công việc ―kinh doanh‖ (transactional-based
system) thông thƣờng nhƣ kiểm tra, đăng ký, báo giá. Hệ thống nay chứa
lƣợng dữ liệu lớn va ngƣời truy cập hệ thống nay chủ yếu la nhân viên văn
phòng. Hệ thống chiến lƣợc la hệ thống hỗ trợ va la công cụ của những
ngƣời quản lý cấp cao. Một hệ thống có thể có cả 2 tinh chất chiến thuật va
chiến lƣợc.
Interviews can have some major obstacles to overcome. The
interviewee may resist giving information out of fear, may relate his
perception of how things should be done rather than how they are really
done, or may have difficulty in expressing himself. On the other hand, the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 157
analyst‘s own mindset may also act as a filter. The interviewer sometimes
needs to set aside his own technical orientation and make a strong effort to
put himself in the position that the interviewee is in. This requires that the
analyst develop a certain amount of empathy.
Phỏng vấn nhân viên có thể có những trở ngại sau đây . Nhân viên
đƣợc phỏng vấn thƣờng e ngại khi cung cấp thông tin . Họ thƣờng nói ra
những gì nên xảy ra chứ không phải những gì xảy ra trong thực tế . (Phản
ánh quá trình lam việc không giống với thự c tê ho lam thƣơng ngay ). Khả
năng diễn đạt của nhân viên đƣợc phỏng vấn kém. Bên cạnh đó, ngƣời phân
tich có khi lại chọn lọc thông tin theo suy nghĩ chủ quan của họn. Do đó
ngƣời phỏng vấn cần đặt mình vao vị tri của ngƣời đƣợc phỏng vấn để hiểu
vấn đề những ngƣời nay đang gặp phải.
An interview outline should contain the following information:
Name of interviewee
Name of interviewer
Date and time
Objectives of interview — i.e., what areas you are going to explore
and what data you are going to collect
General observations
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 158
Unresolved issues and topics not covered
Agenda — i.e., introduction, questions, summary of major points,
closing
Các ghi chép lại khi phỏng vấn chứa nội dung sau:
Ngƣơi phong vân
Thơi gian phong vân
Nôi dung mục tiêu của cuộc phong vân
Các tai liệu cần thu thập.
Nhƣng quan sat
Các vấn đề nảy sinh trong khi lam việc của nhân viên
Các câu hỏi, tóm tắt, các nhận định của bản thân…
Recommended guidelines for handling the employee interview
process include:
Hƣớng dẫn thực hiện quá trình phỏng vấn nhân viên:
Determine the system type (tactical, strategic, hybrid).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 159
Xác định loại hệ thống
Make a list of departments affected by the new system.
Tạo danh sách các bộ phận lien quan
For each department, request or develop an organization chart that
shows the departmental breakdown along with the name,
extension, and list of responsibilities of each employee.
Với mỗi bộ phận, yêu cầu các bảng biểu, giấy tờ, hồ sơ với tên, list,
bảng trách nhiệm của từng nhân viên.
Meet with the department head to request recommendations and
then formulate a plan that details which employees are the best
interview prospects. The ―best‖ employees to interview are those:
1) who are very experienced (i.e., senior) in performing their job
functions; 2) who may have come from a competing company and,
thus, have a unique perspective; 3) who have had a variety of
positions within the department or company.
Gặp ban lãnh đạo đề lấy có đƣợc đề cử về danh sách nhân viên
tham gia phỏng vấn và lập kế hoạch tìm ra chi tiết nhân viên nào
đem lại hiệu quả phỏng vấn tốt nhất. Các tiêu chi đánh giá: ngƣời
có kinh nghiệm trong công việc của họ, ngƣời đến từ một công ty
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 160
cạnh tranh nên có những nhận thức khác biệt, ngƣời đã từng có
nhiều vị trí khác nhau trong bộ phận của công ty.
Plan to meet with employees from all units of the department. In
other words, if you are automating the marketing function and
interviewing the marketing department, you will want to meet with
employees from the marketing communications unit, marketing
research unit, public relations group, etc. In some cases, you may
find that interviewing several employees at a time is more effective
than dealing with a single employee because interviewing a group
of employees permits them to bounce ideas off each other.
Lập kế hoạch gặp gơ nhân viên từ tất cả các bộ phận. Nói cách
khác, nếu bạn thực hiện tự động hóa chức năng marketing va
phỏng vấn bộ phận marketing, bạn sẽ muốn gặp gơ nhân viên từ
các bộ phận nhỏ của bộ phận marketing nhƣ: marketing
communications, marketing research, public relations group,
….Trong một số trƣờng hợp, bạn sẽ thấy phỏng vấn một vài nhân
viên cùng một lúc hiệu quả hơn la phỏng vấn 1 ngƣời 1 lần vì
phỏng vấn nhóm sẽ giúp họ hiệu chỉnh thông tin cho nhau làm cho
thông tin chinh xác hơn.
If a departmental unit contains many employees, it is not optimum
to interview every one. It would be wrong to assume that the more
people in a department, the higher the number of interviewees
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 161
should be. Instead, sampling should be used. Sampling is used to:
1) contain costs; 2) improve effectiveness; 3) speed up the data-
gathering process; 4) reduce bias. Systems analysts often use a
random sample; however, calculating a sample size based on
population size and your desired confidence interval is more
accurate. Rather than provide a formula and instructions on how to
calculate sample size here, I direct the reader to the sample size
calculator located at http://www.surveysystem.com/sscalc.htm.
Nếu một bộ phận có nhiều nhân viên thì không thể phỏng vấn tất
cả các nhân viên. Sai lầm khi cho rằng nếu 1 bộ phận có nhiều
nhân viên thì nên phỏng vấn nhiều nhân viên. Thay vao đó nên sử
dụng các mẫu.Chọn ra các mẫu để: 1)chứa các chi phí, 2)cải thiện
hiệu quả, 3)tăng tốc quá trình tổng hợp dữ liệu, 4)giảm số lƣợng dữ
liệu không có giá trị. Ngƣời phân tích hệ thống thƣờng chọn các
mẫu ngẫu nhiên nhƣng chọn mẫu dựa vào tổng số lƣợng thực và
khoảng cách mà bạn mong muốn. Thay vì chỉ cho ngƣời đọc công
thức và cách tính thì tác giả chỉ rat rang web hỗ trợ thực hiện tính
toán độ lớn của mẫu http://www.surveysystem.com/sscalc.htm.
Carefully plan your interview sessions. Prepare your interview
questions in advance. Be familiar with any technical vocabulary
your interview subjects might use.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 162
Lập kế hoạch cẩn thận cho buổi phỏng vấn. Chuẩn bị câu hỏi kỹ
càng. Hiểu rõ về các từ ngữ kỹ thuật trong chủ đề phỏng vấn của
bạn.
No meeting should last longer than an hour. A half hour is
optimum.There is a point of diminishing returns with the interview
process. Your interviewees are busy and usually easily distracted.
Keep in mind that some of your interviewees may be doing this
against their will.
Thời gian phỏng vấn không nên quá 1 tiếng. Nửa tiếng là tốt nhất.
Có nhiều điểm có thể làm giảm chất lƣợng phỏng vấn. Ngƣời đƣợc
phỏng vấn rất bận va thƣờng dễ bị phân tâm. Nhớ rằng một số
ngƣời đƣợc phỏng vấn có thể lam nhƣ vậy để chống lại sự sẵn sàng
cho cuộc phỏng vấn.
Customers: If the new or modified system will be affecting
customers in any way, one should interview several customers to obtain
their impressions of the current process and what features would be
desirable. This information can be very enlightening. Often customers just
live with the frustrations and never mention them to anyone at the
company. Customers often have experiences with other vendors or
suppliers and can offer insight into the processes that other companies use
or that they have experienced.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 163
Nếu hệ thống phần mềm sẽ ảnh hƣởng tới quá trình lam việc giữa
công ty va khách hang của công ty thì cần phỏng vấn khách hang của công
ty. Các thông tin lấy từ khách hang la các thông tin về hệ thống hiện tại va
họ mong muốn gì ở hệ thống. Khách hang cũng có thể cung cấp thông tin
về hệ thống phần mềm ở các công ty khác hay cung cấp thông tin về các
nha cung cấp hay các nha phân phối của công ty.
Guidelines for interviewing customers include:
Work with the sales and marketing departments to select
knowledgeable and cooperative customers.
Prepare an adequate sample size as discussed in the prior section.
Carefully plan your interview sessions. Prepare your interview
questions in advance.
Hƣớng dẫn phỏng vấn khách hang:
Hỏi bộ phận bán hang hay marketing để tìm danh sách khách hang
phỏng vấn
Hỏi khách hang về các nhu cầu liên quan tới phần mềm, các vấn đề
găp phai khi lam viêc vơi công ty
Hỏi khách hang về các công ty khác ma họ đã giao dịch
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 164
Companies and Consultants: Another source of potentially
valuableinformation is other companies in the industry and consultants who
specialize in the areas that will change with the new processes. Consultants
can be easily located and paid for their expert advice, but it is wise to tread
slowly when working with other companies who are current or potential
competitors.
Guidelines for interviewing other companies include:
Work with senior management and marketing to create a list of
potential companies to interview. This list should contain the
names of trading partners, vendors (companies that your company
buys from), and competitors.
Attend industry trade shows to meet and mingle with competitor
employees and listen to speeches made by competitive companies.
Attend trade association meetings; sit on policy and standards
committees.
Các cố vấn la những nha chuyên môn trong lĩnh vực sẽ ứng dụng hệ
thống phần mềm. Các công ty khác la các công ty cạnh tranh của công ty.
Các nha cố vấn thì có thể dễ dang tiếp cận để lấy thông tin, mặc dù có thể
phải trả phi. Nhƣng các công ty khác thì không dễ dang nhƣ vậy.
Hƣớng dẫn phỏng vấn các công ty khác:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 165
Nhờ bộ phận quản lý va marketing của công ty cung cấp danh sách
các nha cung các, các công ty cạnh tranh…
Tham dƣ cac hôi nghi doanh nghiệp đê găp gơ các nhân viên của
các công ty va nghe các bai diễn thuyết của các công ty nay.
Supliers: Suppliers of the products you are considering are also an
important source of ideas for the problem you are facing. These suppliers
know a great deal about how their product has been used and how problems
have been overcome in different systems. They can also give you a long list
of features they provide.
Các nha phân phối sẽ cho biết sản phẩm của họ đƣợc tiêu thụ thế nao
va các vấn đề đƣợc giải quyết thế nao.
Types of question: When interviewing anyone it is important to be
aware of how to ask questions properly. Open-ended questions are best for
gaining the most information because they do not limit individuals to
predefined answers. Other benefits of using open-ended questions are that
it: puts the interviewee at ease, provides more detail, induces spontaneity,
and is far more interesting for the interviewee. Open-ended questions
require more than a yes or no answer (Yate, 1993). An example of an
openended question is ―What types of problems do you see on a daily basis
with the current process?‖ These questions allow individuals to elaborate on
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 166
the topics and potentially uncover the hidden problems at hand that might
not be discoverable with a question that requires a yes or no answer.
Khi phỏng vấn cần biết làm sao hỏi câu hỏi một cách đúng đắn. Câu
hỏi mở là câu hỏi tốt nhất để lấy hầu hết thông tin vì nó không giới hạn
trong các câu trả lời đƣợc định trƣớc. Một điểm có lợi khác là nó làm cho
ngƣời đƣợc phỏng vấn dễ dàng trả lời và cho nhiều chi tiết hơn, đƣợc thích
hơn. Câu hỏi mở yêu cầu ở ngƣời trả lời nhiều hơn la ―yes‖, ―no‖. Một câu
hỏi mở điển hình: ―Bạn thấy vấn đề gì trong công việc thƣờng ngày với quá
trình làm việc hiện tại‖. Những câu hỏi nhƣ vậy cho thấy nhiều thông tin
hơn la các câu hỏi ―yes‖, ―no‖ thông thƣờng.
Often one starts a systems development effort with the intention of
solving a problem that turns out to be a symptom of a larger problem. If the
examination of problems leads to the underlying issues, the resolution of
those issues will be more valuable to the company in the end. Many
symptoms are a result of the same problem, and a simple change can fix
many issues at once. One disadvantage of open-ended questions is that they
create lengthier interviews. Another is that it is easy for the interview to get
off track and it takes an interviewer with skill to maintain the interview in
an efficient manner (Yates, 1993).
Thông thƣờng việc phát triển hệ thống la để giải quyết các vấn đề mà
có thể là biểu hiện của các vấn đề lớn hơn vẫn còn tiềm ẩn. Nếu việc kiểm
tra vấn đề dẫn đến việc tìm ra đƣợc nguyên nhân cốt lõi, thì việc giải quyết
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 167
những vấn đề có giá trị hơn đối với công ty. Một bất lợi của câu hỏi mở là
kéo dài cuộc phỏng vấn hoặc ngƣời trả lời có thể dễ dàng bị lạc đề. Điều đó
đòi hỏi ngƣời phỏng vấn có kỹ năng hỏi.
Closed-ended questions are, by far, the most common questions in
interviewing. They are questions that have yes and no answers and are
utilized to elicit definitive responses.
Câu hoi đóng la loại câu hỏi phổ biến nhất trong phỏng vấn . Đó la
các câu hỏi có lựa chọn trả lời la: ―Có‖, ―Không‖ va đƣợc dùng để thu thập
các câu trả lời đã xác định.
Past-performance questions can be useful to determine past
experiences with similar problems (Yates, 1993). Often interviewees are
reluctant to discuss problems so questions about past-performance can
allow the person to discuss an issue with similar problems. An example of
how a past-performance question is used is, ―In your past job how did you
deal with these processes?‖
Câu hỏi về quá trình làm việc trong quá khứ để xác định kinh
nghiệm trong quá khứ về cùng một vấn đề có thể có ích. Hầu hết các ngƣời
trả lời không thích nói về các vấn đề nên việc hỏi về công việc trong quá
khứ làm cho họ dễ dàng nói về các vấn đề tƣơng tự. Câu hỏi ví dụ: Trong
quá khứ, bạn làm sao xử lý vấn đề này.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 168
Reflexive questions are appropriate for closing a conversation or
moving forward to a new topic (Yates, 1993). Reflexive questions are
created with a statement of confirmation and adding a phrase such as: Don‘t
you? Couldn‘t you? Wouldn‘t you?
Câu hỏi linh hoạt rất thích hợp để kết thúc buổi phỏng vấn hoặc
chuyển sang chủ đề khác. Loại nay thƣờng tạo bởi câu xác nhận lại và thêm
cụm từ nhƣ: ―Phải vậy không?‖, ―Bạn sẽ nhƣ vậy chứ?‖…
Mirror questions are a subtle form of probing and are useful in
obtaining additional detail on a subject. After the interviewee makes a
statement, pause and repeat the statement with an additional or leading
question: ―So, when this problem occurs, you simply move on to more
pressing issues?‖.
―Mirror question‖ là loại câu hỏi khéo để lấy thêm thông tin. Sauk hi
ngƣời trả lời trả lời xong, dừng lại và lặp lại câu đó với câu hỏi dẫn dắt
thêm ‖Khi vấn đề này xảy ra bạn giải quyết vấn đề quan trọng trƣớc?‖.
Often answers do not give the interviewer enough detail so one
follows the question with additional questions to prod the interviewee to
divulge more details on the subject. For example:
Can you give some more details on that?
What did you learn from that experience?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 169
Another, more subtle, prodding technique can be used by merely
sitting back and saying nothing. The silence will feel
uncomfortable causing the interviewee to expand on his or her last
statement.
Câu trả lời thƣờng không cung cấp cho ngƣời trả lời nhiều thông
tin nên có thể thêm các câu hỏi phia sau để lấy thêm thông tin. Ví
dụ:
Bạn có thể cho thêm thông tin về điều này không?
Bạn học đƣợc điều gì từ kinh nghiệm đó?
Một cách khác, khéo léo hơn, la tựa ngƣời ra phía sau và không nói
gì cả. Sự im lặng sẽ lam cho ngƣời trả lời khó chịu và sẽ mở rộng câu trả lời
của họ.
4.2.2 Questionnaires and Surveys
Bảng câu hỏi và khảo sát:
If large numbers of people need to be interviewed, one might start
with a questionnaire and then follow up with certain individuals that present
unusual ideas or issues in the questionnaires. Survey development and
implementation is composed of the following tasks, according to Creative
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 170
Research Systems, makers of a software solution for survey creation
(surveysolutions.com):
Nếu số lƣợng lớn những ngƣời cần đƣợc phỏng vấn, ngƣời ta có thể
bắt đầu với một bảng câu hỏi va sau đó theo dõi với các cá nhân nhất định
ma trình bay những ý kiến không bình thƣờng hoặc những vấn đề trong
bảng câu hỏi Sự phát triển va hoan thanh cuộc khảo sát bao gồm những
nhiệm vụ sau đây, theo những hệ thống Ngiên Cứu Sáng Tạo, các nha
hoạch định của một giải pháp phần mềm cho sự tạo ra cuộc khảo sát
(surveysolutions.com):
Establish the goals of the project — what you want to learn.
Determine your sample — whom you will interview.
Choose interviewing methodology — how you will interview.
Create your questionnaire — what you will ask.
Pretest the questionnaire, if practical — test the questions.
Conduct interviews and enter data — ask the questions.
Analyze the data — produce the reports.
Thiết lập các mục tiêu của dự án – những gì bạn muốn tìm hiểu.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 171
Xác định mẫu của bạn – những ngƣời ma bạn sẽ phỏng vấn.
Chọn phƣơng pháp phỏng vấn – bạn sẽ phỏng vấn nhƣ thế nao.
Tạo bảng câu hỏi của bạn – những gì bạn sẽ hỏi.
Kiểm tra lại bảng câu hỏi, nếu thực hiện – kiểm tra các câu hỏi
Tiến hanh các cuộc phỏng vấn va nhập dữ liệu – hỏi những câu
hỏi.
Phân tich dữ liệu – tạo báo cáo.
Similar to interviews, questionnaires may contain closed-end or
openended questions or a combination of the two.
Tƣơng tự nhƣ các cuộc phỏng vấn, bảng câu hỏi có thể có câu hỏi
đóng hay câu hỏi mở hoặc sự kết hợp của cả hai.
Appendix H contains a survey that was created for a Y2K software
product. This survey demonstrates the use of a hybrid questionnaire.
Although most of the questions are quite specific, and thus closed-ended,
there are at least two open-ended questions. Questions 6 and 8 under the
heading of ―management aspects‖ permit the respondent to reply to an
essay type of question.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 172
Phụ lục H bao gồm một cuộc khảo sát đã đƣợc tạo ra cho một sản
phẩm phần mềm Y2K. Khảo sát nay chứng tỏ ich lợi của bảng câu hỏi kết
hợp 2 loại câu hỏi nói trên. Mặc dù hầu hết các câu hỏi rất cụ thể va la câu
hỏi đóng, nhƣng có it nhất hai câu hỏi mở. Câu hỏi 6 va 8 ở dƣới tiêu đề
của ―Khia cạnh quản lý‖ cho phép ngƣời trả lời viết ra một đoạn dai chứa
rất nhiều thông tin va ý kiến nhƣ một bai tiểu luận về 1 chủ đề.
Survey creation is quite an art form. Guidelines for creation of a
survey include:
Provide an introduction to the survey. Explain why it is important
to
respond to it. Thank participants for their time and effort.
Put all important questions first because it is rare that all questions
will be responded to. Those filling out the survey often become
tired
of or bored with the process.
Use plenty of ―white space‖. Use an appropriate font (i.e., Arial)
and font size (i.e., at least 12), and do skip lines.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 173
Use nominal scales if you wish to classify things (i.e., What make
is your computer? 1 = Dell, 2 = Gateway, 3 = IBM).
Use ordinal scales to imply rank (i.e., How helpful was this class?
3 = not helpful at all, 2 = moderately helpful, 1 = very helpful).
Use interval scales when you want to perform some mathematical
calculations on the results; i.e.:
How helpful was this class?
Not useful at all Very useful
1 2 3 4 5
Hƣớng dẫn tạo ra một cuộc khảo sát bao gồm:
Cung cấp giới thiệu về cuộc khảo sát. Giải thich sự quan trọng của
việc trả lời bảng câu hỏi. Cảm ơn những ngƣời tham gia vì đã bỏ
thời gian va những cố gắng của họ để trả lời bảng câu hỏi
Đặt tất cả các câu hỏi quan trọng ở đầu vì rất hiếm khi ngƣời trả lời
sẽ trả lời hết tất cả các câu hỏi. Việc điền vao các ô trống có vẻ la
quá trình nhàm chán
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 174
Sử dụng nhiều ―không gian trắng‖. Sử dụng Font chữ thich hợp (vi
dụ, Arial) va font size (vi dụ, it nhất la 12), va bỏ dòng.
Sử dụng hệ thống danh nghĩa,nếu bạn mong muốn phân loại những
điều nay (Vi dụ: Máy tinh của bạn thuộc hãng gì? 1= Dell, 2 =
Gatway, 3 = IBM)
Sử dụng các phân loại về mức độ (Vi dụ: Lớp nay thì hữu ich nhƣ
thế nao? 3 = không hữu ich chút nao, 2 = hữu ich vừa phải, 1 = rất
hữu ich)
Trong từng mức độ có thể chia ra thanh các mức nhỏ hơn. Sử dụng
cách nay khi bạn muốn có số liệu tinh toán
Vi dụ: Lớp nay hữu ich nhƣ thế nao?
Không có ích chút nào Rất có ich
1 2 3 4 5
Tallying the responses will provide a ―score‖ that assists in making a
decision that requires the use of quantifiable information. When using
interval scales, keep in mind that not all questions will carry the same
weight. Hence, it is a good idea to use a weighted average formula during
calculation. To do this, assign a ―weight‖ or level of importance to each
question. For example, the preceding question might be assigned a weight
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 175
of 5 on a scale of 1 to 5, meaning that this is a very important question. On
the other hand, a question such as ―Was the training center comfortable‖
might carry a weight of only 3. The weighted average is calculate by
multiplying the weight by the score (w * s) to get the final score. Thus the
formula is
snew = w * s.
Việc tổng hợp lại các câu trả lời sẽ cung cấp một lợi ich la trợ giúp
trong việc đƣa ra quyết định, do đó thông tin thu thập để đƣa ra quyết định
cần phải la những thông tin có chất lƣợng.Khi sử dụng các phân loại về
mức độ trong các câu hỏi (nhƣ ở trên), hãy nhớ không phải tất cả mức độ ở
các câu hỏi có giá trị tƣơng đƣơng nhau. Vi dụ mức độ 3 ở một câu hỏi
quan trọng phải đƣợc tinh lớn hơn mức độ 3 ở một câu it quan trọng hơn.
Do đó,nó la ý tƣởng tốt để sử dụng trọng lƣợng trung bình trong công thức
tính toán. Để lam điều nay, chỉ định một ―trọng lƣợng‖ hoặc mức độ tầm
quan trọng của mỗi câu hỏi. Vi dụ, câu hỏi trƣớc có thể đƣợc chỉ định một
trọng lƣợng =5, có nghĩa la đây la một câu hỏi rất quan trọng. Mặt khác,
một câu hỏi chẳng hạn nhƣ "La trung tâm đao tạo thoải mái‖ có thể mang
một trọng lƣợng chỉ có 3. Các trung bình đƣợc tinh toán bằng cách nhân
trọng lƣợng của các điểm số (w * s) để có đƣợc những điểm số cuối cùng.
Vì vậy, công thức la:
snew = w * s. (w: trọng lƣợng, s: cấp độ)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 176
Several problems might result from a poorly constructed
questionnaire. Leniency is caused by respondents who grade
nonsubjectively — in other words, too easily. Central tendency occurs
when respondents rate everything as average. The halo effect occurs when
the respondent carries his good or bad impression from one question to the
next.
Một số vấn đề xảy ra la do hậu quả từ bảng câu hỏi đƣợc xây 0dựng
nghèo nan. Sự dễ dãi của ngƣời đƣợc hỏi cũng la một vấn đề. Họ không
phân loại các câu hỏi về mức độ quan trọng của nó ma xem các câu hỏi la
nhƣ nhau. Nhiều khi họ có ấn tƣợng tốt hay xấu về câu hỏi trƣớc va đem ấn
tƣợng nay gán vao câu hỏi sau.
Several methods can be used to deploy a survey successfully. The
easiest and most accurate is to gather all respondents in a conference room
and hand out the survey. For the most part, this is not realistic, so other
approaches would be more appropriate. E-mail and traditional mail are two
methodologies that work well, although you often must supply an incentive
(i.e., prize) to get respondents to fill out those surveys on a timely basis.
Web-based surveys (Internet and Intranet) are becoming increasingly
popular because they enable the inclusion of demos, audio, and video. For
example, a Web-based survey on what type of user interface is preferable
could have hyperlinks to demos or screen shots of the choices.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 177
Một số phƣơng pháp có thể đƣợc sử dụng để triển khai một cuộc
khảo sát thanh công. Đơn giản nhất va chinh xác nhất la phải tập trung tất
cả ngƣời trả lời trong một phòng họp va trao tay bảng khảo sát. Đối với
hầu hết các phần, điều nay la không thực tế, vì thế phƣơng pháp khác sẽ
thich hợp hơn. E-mail va thƣ truyền thống la hai phƣơng pháp luận lam việc
tốt, mặc dù bạn thƣờng phải cung cấp một sự khuyến khich (nghĩa la, giải
thƣởng) để lam cho ngƣời trả lời điền đầy vao những bảng khảo sát trong
một khoảng thời gian nhất định. Khảo sát dựa vao web (Internet va
Intranet) đang ngay cang trở nên phổ biến, vì họ cho phép sự bao gồm của
trình diễn, âm thanh, va video. Vi dụ, khảo sát dựa vao web về loại hình
giao diện ngƣời sử dụng nao đƣợc yêu thich có thể có các siêu liên kết đến
trình diễn hoặc ảnh chụp man hình của những lựa chọn.
Creative Research Systems summarizes the different approaches to
surveys in the table shown in Exhibit 4-1.
Hệ thống Nghiên Cứu Sáng Tạo (Creative Research System) tóm tắt
các phƣơng pháp tiếp cận khác nhau để khảo sát trong bảng hiển thị trong
bảng 4-1.
4.2.3 Observation
Sự quan sát
Observation is an important tool that can provide a wealth of
information. There are two forms of observation: silent and directed. In
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 178
silent observation, the analyst merely sits on the sidelines with pen and pad
and observes what is happening. If it is suitable, a tape recorder or video
recorder can record what is observed. However, this is not recommended if
the net result will be several hours of random footage.
Quan sát la 1 phƣơng pháp quan trọng để thu đƣợc số lƣợng lớn
thông tin. Có 2 hình thức của sự quan sát: Quan sát gián tiếp (Silence) và
quan sát trực tiếp (derected). Quan sát gián tiếp hay còn gọi la quan sát
trong im lặng: Có nghĩa la ngƣời quan sát chỉ đơn thuần ngồi ngoai những
gì đang diễn ra để quan sát va ghi chép lại với bút, tập giấy hay sữ dụng
băng, đĩa để lƣu lại những gì đã quan sát đƣợc. Tuy nhiên, điều nay la
không nên nếu những kết quả thu đƣợc lấy từ những kết quả quan sát không
có mục đich (ngẫu nhiên).
Silent observation is best used to capture the spontaneous nature of a
particular process or procedure. For example:
When customers will be interacting with staff
During group meetings
On the manufacturing floor
In the field
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 179
Quan sát gián tiếp la phƣơng pháp tốt nhất để ghi lại những hình ảnh
đƣợc thực hiện tự nhiên liên quan đến các quá trình hay thủ tục. Vi dụ:
Khi nhân viên đang lam việc với khách hang.
Trong quá trình họp.
Trên khu vực sản xuất.
Trong một số lĩnh vực khác.
Directed observation provides the analyst with a chance to
microcontrol a process or procedure so that it is broken down into its
observable parts. At one accounting firm a tax system was being developed.
The analysts requested that several senior tax accountants be coupled with a
junior staff member. The group was given a problem as well as all of the
manuals and materials needed. The junior accountant sat at one end of the
table with the pile of manuals and forms while the senior tax accountants
sat at the other end. A tough tax problem was posed. The senior tax
accountants were directed to think through the process and then direct the
junior member to follow through on their directions to solve this problem.
The catch was that the senior members could not walk over to the junior
person or touch any of the reference guides. This whole exercise had to be
verbal and use just their memories and expertise. The entire process was
videotaped. The net result was that the analyst had a complete record of
how to perform one of the critical functions of the new system.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 180
Quan sát trực tiếp:Cung cấp cho ngƣời quan sát cơ hội kiểm soát
từng chi tiết của các quá trình hay thủ tục, từ đó các quá trình đƣợc chia nhỏ
thanh từng phần để quan sát. Tại một công ty tinh toán hệ thống thuế đã
đƣợc phát triền, các nha phân tich một số yêu cầu kế toán cao cấp đi đôi với
một nhân viên cấp cơ sở. Nhóm nay đƣợc giao cho vấn đề cũng nhƣ tất cả
các thiết bị va vật chất họ cần. Nhân viên kế toán ngồi ở một bên của ban
với một chồng hƣớng dẫn va biểu mẫu trong khi những nhân viên kế toán
thuế cấp cao ngồi ở đầu bên kia ban. Một vấn đề khó khăn đƣợc đặt ra,
những nhân viên thuế cao hơn đƣợc hƣớng dẫn la suy nghĩ về các quá trình
thực hiện sau đó hƣớng dẫn lại cho các nhân viên thuế thấp hơn theo những
gì họ đã hƣớng dẫn để giải quyết vấn đề. Việc nắm bắt của các nhân viên
cấp thấp không phải la việc chỉ sơ qua của các nhân viên cấp cao hơn hay
chỉ dẫn qua tai liệu hƣớng dẫn ma toan bộ phải thực hiện bằng lời nói va
những kinh nghiệm va chuyên môn. Toan bộ quá trình đƣợc ghi lại. Kết quả
cuối cùng la các nha phân tich đã có một bản ghi đầy đủ để thực hiện những
đánh giá cho hệ thống mới.
4.2.4 Participation
Sự tham gia
The flip side of observation is participation. Actually becoming a
member of the staff and thereby learning exactly what it is that the staff
does, so that it might be automated, is an invaluable experience.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 181
Bên cạnh việc quan sát la việc tham gia. Thực sự trở thanh thanh
viên của đội ngũ nhân viên va qua đó học tập một cách chinh xác những gì
mà các nhân viên đó lam. Đó la những kinh nghiệm vô giá.
Documentation: It is logical to assume that a wide variety of
documentation will be available to the analyst. This includes, but is not
limited to, the following:
Tai liệu hóa: Một cách hợp lý để cho rằng các tai liệu hóa khác nhau
sẽ luôn luôn sẵn sang để phân tich. Bao gồm các loại sau đây:
Documentation from existing systems, including requirements and
design specifications, program documentation, user manuals, and
help files. (This also includes whatever ―wish‖ lists have been
developed for the existing system.)
Archival information
Policies and procedures manuals
Reports
Memos
Standards
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 182
Minutes from meetings
Government and other regulatory guidelines and regulations
Industry or association manuals, guidelines, and standards (e.g.,
accountants are guided not only by in-house ―rules and
regulations‖ but also by industry and other rules and regulations)
Tài liệu hóa những hệ thống đã tồn tại từ trƣớc bao gồm: các yêu
cầu, chi tiết thiết kế, tai liệu chƣơng trình, hƣớng dẫn sử dụng va
các hỗ trợ.
Thông tin thu thập đƣợc.
Các chính sách va các thủ tục hƣớng dẫn.
Báo cáo
Bản lƣu trữ, ghi nhớ.
Các chuẩn quy định
Thƣ điện tử
Chính quyền va các nguyên tắc va các quy định pháp lý khác
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 183
Các quy định chung của nganh công nghiệp hay các hƣớng dẫn về
tiêu chuẩn doanh nghiệp
4.2.5 Competitive Intelligence
Competitive intelligence (CI) is business intelligence that is limited
to competitors and how that information affects strategy, tactics, and
operations (Brock, 2000b). 4Sight partners (2000) define competitive
intelligence as ―a systematic and ethical program for gathering, analyzing,
and managing external information that can affect your company‘s plans,
decisions, and operations‖. 4Sight goes on to state that utilization of the
Internet as the method of gathering information on individuals and
companies has become widespread and automatic. CI enables management
to make informed decisions about everything from marketing, R & D, and
investing tactics to long-term business strategies (SCIP, 2002).
4Sight partners(2000) xác định CI la ‖Chƣơng trình có tinh hệ thống
va chuẩn mực để thu thập, phân tich, quản lý các thông tin bên ngoài mà
ảnh hƣởng tới các kế hoạch, quyết định hay sự hoạt động của công ty bạn‖.
4Sight cũng nhận định rằng Internet đang trở thanh công cụ tự động va
đƣợc sử dụng rộng rãi để thu thập thông tin từ các cá nhân va công ty. CI
hỗ trợ cho các vấn đề quản lý nhƣ: đƣa ra các quyết định về marketing,
R&D, va chiến thuật đầu tƣ tới các chiến lƣợc dai hạn của công ty.
CI data can be gathered from the following sources:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 184
Internet discussion groups (listservs) and news groups (Usenet).
Simple searches on the Internet can obtain expert discussions on
issues in listservs and Usenet (Graef, 2002). Often a quick form of
CI is to search these Internet postings for discussions of similar
issues. The level of detail contained in these discussions is
beneficial for things to do and also things that will not work
(Graef, 2002). This is one of the quickest and most cost-effective
methods of obtaining information about a project (Graef, 2002).
Former employees of your competitors often are invaluable in
providing information about your competitors‘ operations,
products, and plans.
Your competitors‘ Web sites usually contain marketing
information about products and services offered as well as press
releases, white papers, and even product demos. Product demos
enable the analyst and business manager to effectively ―reverse
engineer‖ the competitive product (i.e., see how it ticks).
If your competitor is a public company then its investor relations
Web page will contain a wealth of financial information such as
annual reports. An alternative source of financial filings can be
found at www.sec.gov. A company‘s 10Q (quarterly) and 10K
(annual) reports contain information on products, services,
products, budgets, etc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 185
Dữ liệu CI có thể thu thập từ các nguồn sau:
Các nhóm thảo luận(listservs) va các nhóm tin tức(Usenet) trên
Internet. Có thể tìm các thảo luận rất sâu sắc về các vấn đề của
listservs va Usenet một cách dễ dang. Các thảo luận nay có thể rất
có lợi cho việc xác định điều gì nên lam va điều không nên lam cho
doanh nghiệp. Đây la nơi rất có ich cho bạn để thu thập yêu cầu
phần mềm.
Các cựu nhân viên của các công ty cạnh tranh có thể không cung
cấp thông tin của công ty các công ty cạnh tranh nay nhƣng có thể
đƣa các thông tin lên CI.
Các trang web của các công ty cạnh tranh chứa các thông tin về
marketing về sản phẩm,…Demo của các sản phẩm cũng có thể
xuất hiện trên các trang web. Từ đó có thể các doanh nghiệp hay
các nha phân tich có thể ―copy‖ sản phầm cạnh tranh.
Nếu công ty cạnh tranh la công ty public thì các trang web về các
đầu tƣ có thể chứa thông tin về tai chinh của công ty đó. Một nơi
chứa thông tin tai chinh của các công ty la www.sec.gov.
Normally, it is the role of the business or marketing manger to
perform competitive intelligence. However, when this is obviously not
being done, a proactive systems analyst will take the lead.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 186
Việc tiến hanh CI la việc của các doanh nghiệp hay các quản lý
marketing. Nếu công việc nay không đƣợc thực hiện thì có thể tiến hanh
các phƣơng pháp khác thay thế.
4.2.6 Brainstorming
In a brainstorming session you gather together a group of people,
create a stimulating and focused atmosphere, and let people come up with
ideas without risk of being ridiculed. Even seemingly stupid ideas may turn
out to be ―golden‖.
Điều kiện trong một buổi họp Brainstorming, một nhóm ngƣời tập
họp lại, tạo ra không khi tập trung va khuyến khich mọi ngƣời suy nghĩ và
để mọi ngƣời theo đuổi nọi ý nghĩ ma không hề có sự chế nhạo. Đôi khi các
ý kiến ngu ngốc có thể biến thanh vang.
4.2.7 Focus Groups
Nhóm tập trung
Focus groups are derived from marketing. These are structured
sessions where a group of stakeholders are presented with a solution to a
problem and then are closely questioned on their views about that solution.
Phƣơng pháp nay bắt nguồn từ marketing. Đây la buổi họp để đƣa ra
các giải pháp để các bên liên quan cho ý kiến về các giải pháp đó.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 187
4.2.8 Prototyping
Mẫu thử
A prototype is a simplified version of part of the final system.
Developers experiment with the prototype to get an idea of how it would
work in real life and what its problems and plus points are.
Một Prototype la một phiên bản đơn giản của một phần của hệ thống
phần mềm cuối cùng. Đƣa Prototype vao chạy thử nghiệm để lấy ý kiến về
cách thức nó hoạt động trong thực tế va các vấn đề phát sinh.
4.3 A CHECK LIST FOR REQUIREMENTS MANAGEMENT
Bảng checklist cho quản lý yêu cầu
The requirements management checklist shown in Exhibit 4-2 is
used by the U.S. Department of the Navy.
Bảng nay đƣợc thể hiện ở Exhibit 4-2. bảng nay đƣợc US
Department of the Navy sử dụng
4.4 KẾT LUẬN
Information gathering is a very intensive process with many aspects.
The more information one has about a project from the start, the better
prepared one will be to complete the project. Successful project
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 4: Thu thập yêu cầu 188
management demands that enough information be known at the beginning
of a project to anticipate potential problems in the systems development life
cycle (Keogh, 2000). The role of a systems analyst in information gathering
is to gain knowledge and interpret it to the benefit of the project plan.
Anthony Smith said that turning information into knowledge is the creative
skill of our age (ASH, 2002).
Thu thập yêu cầu phần mềm la quá trình nhạy cảm với rất nhiều khia
cạnh. Thông tin yêu cầu cang chi tiết thì việc thực hiện dự án phần mềm sau
nay dễ dang hơn. Thông tin yêu cầu đƣợc thu thập đầy đủ ban đầu thì có thể
kiểm soát đƣợc các vấn đề phát sinh khi thực thi dự án phần mềm. Công
việc thu thập yêu cầu cần đƣợc đƣa vao kế hoạch thực hiện dự án.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 189
CHƢƠNG 5 THIẾT KẾ HỆ THỐNG THEO
HƢỚNG NGƢỜI SỬ DỤNG
Người dịch:
1. Dƣơng Hữu Thanh
2. Trần Xuân Tiến
3. Nguyễn Tấn
4. Trịnh Đắc Thắng
5. Lê Hoang Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 190
Developers of system software need to involve users in the design
process from the start. Until now, developers have kept the secrets of their
trade to themselves. At the same time, they have failed to take an interest in
the work of the business for which they are producing a tool. Users
frequently share in the development process only through beta tests of
products long after they have been designed. Users can frequently be a
constant source of data on work habits, loads, and performance
requirements. Developers can keep up with user needs the same way they
are required to keep up with changes in technology. Maintaining a good
relationship between the development and user communities ensures a
healthy development process.
Nha phát triển phần mềm hệ thống cần chú ý đến ngƣời dùng trong
quá trình thiết kế từ lúc bắt đầu. Cho đến bây giờ, các nha phát triển cứ giữ
bi mật thƣơng mại cho riêng mình. Trong lúc đó, họ lại thất bại trong việc
tạo thú vị cho công việc của doanh nghiệp, ma họ đã cung cấp công cụ.
Những ngƣời sử dụng thƣờng chia sẻ quan điểm dùng của mình đối với
phần mềm duy nhất thông qua bản beta ma sau đó chúng sẽ đƣợc thiết kế
lại. Ngƣời sử dụng thƣờng có thể cung cấp nguồn dữ liệu dồi dao về thói
quen lam việc, nạp dữ liệu va yêu cầu thực hiện của phần mềm nhƣ thế nao.
Liệu nha phát triển có thể theo kịp nhu cầu của ngƣời sử dụng cũng nhƣ đòi
hỏi theo kịp với những thay đổi trong kĩ thuật va việc duy trì mối quan hệ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 191
tốt giữa việc phát triển va cộng đồng ngƣời sử dụng đảm bảo một quá trình
phát triển tốt.
5.1 BÍ MẬT THƢƠNG MẠI
During the last few decades while automation of the business world
has proceeded at an ever-accelerating pace, the practitioners of the black art
of systems development have jealously guarded the secrets of their trade.
Members of today‘s computer cult, who talk among themselves in tongues
of Java, C++, and all things Internet, have forgotten the sounds of the
human language — so much so that it is often necessary to hire a translator
to explain the systems developer‘s work to the confused customer, the
actual user of the cult‘s handiwork.
Trong suốt một vai thập kỷ gần đây trong khi sự tự động hóa của thế
giới thƣơng mại tiến lên không ngừng, Các học viên black art của sự phát
triển hệ thống thì tranh nhau bảo vệ bi mật thƣơng mại riêng của họ. Những
thành viên của trƣờng phái máy tinh ngay nay, họ thƣờng nói với nhau bằng
ngôn ngữ Java, C++ va tất cả những ngôn ngữ mạng, ma quên đi ngôn ngữ
tự nhiên của con ngƣời, họ dùng quá nhiều ngôn ngữ máy tinh vì thế sẽ cần
phải thuê 1 ngƣời thông dịch để giải thich công việc của ngƣời phát triển hệ
thống cho những khách hang thắc mắc (ngƣời dùng thực tế của trƣờng phái
việc lam, những ngƣời lam việc).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 192
This translator would not be needed if companies would design their
systems with the user in mind. That means involving end users at the start
of the systems development process. To accomplish this, the technical staff
must take some time away from studying the nuts and bolts of new tools to
learn the tricks of the users‘ trades.
Thật ra thì ngƣời thông dịch nay sẽ trở nên không cần thiết nếu
những công ty lƣu ý đến ngƣời sử dụng khi thiết kế (thiết kế theo hƣớng
ngƣời sử dụng). Điều đó thì liên quan tới ngƣời sử dụng cuối cùng khi bắt
đầu của tiến trình phát triển hệ thống. Để thực hiện điều nay, các nhân viên
kĩ thuật phải mất một thời gian để nghiên cứu các nút thắt va mấu chốt của
công cụ mới, (công cụ ma họ lam cho ngƣời dùng cuối) va phải tìm hiểu,
học hỏi những thủ thuật, bi quyết trong kinh doanh của ngƣời dùng.
It also means that the end users need to be encouraged to get
involved in the entire systems development effort, from the specification
stage to actual application testing. Their involvement will help ensure that
the finished system meets their needs and, in turn, the information needs of
the corporation.
Điều đó cũng có nghĩa la ngƣời dùng cuối đƣợc khuyến khich trong
việc tham gia vao sự phát triển của toan bộ hệ thống, từ những giai đoạn
đặc điểm kĩ thuật đến việc thử nghiệm thực tế. Sự tham gia của họ sẽ giúp
đảm bảo rằng hệ thống sau khi hoan thanh đáp ứng nhu cầu của họ va hơn
nữa cũng đáp ứng nhu cầu thông tin của công ty.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 193
Today, under traditional systems analysis methods, the user is
frequently left out of the loop. During the standard requirements definition
phase, representatives from the user department are interviewed. Then a
work flow analysis may be performed to determine the relationships
between functions within that department. Finally, several months after the
requirements definition, some customer testing is conducted — testing that
unfortunately constitutes the sum total of user involvement. So it is not
surprising that a plethora of changes must be made after the user finally
reviews the test results.
Ngay nay, dựa vao phƣơng pháp phân tich hệ thống truyền thống,
ngƣời sử dùng thƣờng bi rơi ra khỏi vòng lặp nay. Trong giai đoạn xác định
yêu cầu chuẩn, đại diện từ những ngƣời sử dụng của một phòng đƣợc
phỏng vấn. Sau đó, việc phân tich đƣợc thực hiện để xác định mối quan hệ
giữa chức năng cần thiết trong phòng đó. Cuối cùng, vai tháng sau, sau khi
những yêu cầu đƣợc xác định xong, một số bai test khách hang hƣớng dẫn
cho khách hàng – việc test nay đại diện cho tổng số những ngƣời sử dụng.
Vì thế không ngạc nhiên khi xảy ra việc thừa của việc thay đổi phải đƣợc
lam sau khi ngƣời sử dụng đánh giá kết quả bài test.
5.2 VIỆC TAILOR HỆ THỐNG TỚI YÊU CẦU NGƢỜI DÙNG CUỐI
The systems staff can avoid this last-minute retrofit by building a
system tailored to specific end-user needs. To do that tailoring, the IT team
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 194
should apply the same quick-study principle used in keeping up with new
technology to learning end-user job functions. In fact, systems designers
should know these functions at least as well as a six-month employee who
is doing that work.
Các nhân viên hệ thống có thể tránh (sai lầm phút cuối cùng) (this
last-minute retrofit, retrofit trang bị thêm) bằng cách xây hệ thống tailored
để cụ thể yêu cầu của ngƣời sử dụng cuối. Để lam đƣợc điều đó, đội ngũ IT
cần áp dụng cùng việc nghiên cứu nhanh (học tập nhanh chóng) để theo kịp
với kĩ thuật mới trong việc tìm hiểu (học) những chức năng trong công việc
của ngƣời sử dụng cuối. Thực tế, những ngƣời thiết kế hệ thống phải cần
nên biết những chức năng nay it nhất la nhƣ một nhân viên đã lam việc đó
đƣợc 6 tháng.
The necessary knowledge, however, is not always easy to come by
because, all too often, systems gurus balk at attending user meetings. A big
price tag may be attached to such behavior, as the New York Stock
Exchange (NYSE) found out during my tenure there. During the mid-
1980s, a series of user meetings was held to determine the rules and
regulations of an important regulatory system that the Exchange wanted to
develop. The NYSE‘s IT group found these critical meetings boring and, as
a conse- quence, the finished system ended up incomplete; much money
had to be spent adding enhancement features.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 195
Tuy nhiên, những kiến thức cần thiết không phải luôn dễ dang đến va
cũng không thƣờng xuyên đến, bởi vì có chƣớng ngại trong việc tham gia
các cuộc họp của ngƣời dùng. Một cái giá lớn có thể gắn liền với hanh vi
nhƣ vậy, nhƣ NYSE đã tìm ra trong giai đoạn (nhiệm kỳ) ma tôi ở đó. Giữa
thập niên 1980, một loại các cuộc họp ngƣời sử dụng đƣợc tổ chức để xác
định luật va quy định của hệ thống điều chỉnh ma Exchange muốn phát
triển. Kết quả la Nhóm IT của NYSE đã phát hiện đƣợc những cuộc họp
nay, hệ thống đã hoan thanh kết thúc không đầy đủ, nhiều tiền phải bỏ ra để
thêm vao những tinh năng nâng cao.
A thorough immersion in the customer‘s culture also negates the
―we‖ versus ―them‖ attitude that exists between many end users and the
supporting IT staff. Top managers in the IT division at a major New York-
based Swiss Bank learned this lesson the hard way. The bank‘s foreign
exchange trading group was adamant about needing a foreign exchange
trading system. The head of the Swiss Bank‘s IT department disagreed, so
the trading group brought in an outside consultant who spoke their language
and care fully listened to what they had to say.
Việc nhúng hoan toan trong nền văn hóa của khách hang cũng phủ
nhận thái độ ―chúng tôi‖ so với ―họ‖, điều đó tồn tại giữa nhiều ngƣời sử
dụng cuối va các nhân viên IT hỗ trợ. Ngƣời quản lý cao nhất trong bộ phận
IT của cơ sở Swiss Bank chinh ở New York đã học đƣợc bai học nay một
cách khó khăn. Nhóm thƣơng mại đối ngoại của ngân hang thì cứng rắn
(quyết) về việc cần một hệ thống thƣơng mại đối ngoại. Ngƣời đứng đầu bộ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 196
phận IT của Swiss Bank không đồng ý, vì thế nhóm thƣơng mại đƣa một
nhà chuyên môn – ngƣời ma nói đƣợc những ngôn ngữ của họ va nghe một
cách cẩn thận những gì họ nói.
As a result, the consultant was able to develop a usable, mostly error
free system that the users proudly showed off to other departments at the
bank. At the next IT status meeting, users demanded to know why the IT
staff could not or would not deliver systems as fast and as good as the one
built by the foreign exchange group. Needless to say, the management of
Swiss Bank‘s IT group was soon replaced.
Kết quả la nha chuyên môn có thể phát triển va sử dụng, hầu hết lỗi
rảnh trong hệ thống la thứ ma ngƣời sử dụng tự hao với các phòng ban khác
trong ngân hang. Tại cuộc hợp tình trạng của IT kế tiếp, ngƣời dùng muốn
biết tại sao các nhân viên IT không thể va sẽ không cung cấp hệ thống càng
nhanh cang tốt nhƣ la đã xây bởi nhóm đối ngoại (ngoại hối ?). không cần
phải nói thêm, thế nao quản lý của nhóm IT Swiss Bank cũng bị thay thế.
5.3 KÊU GỌI SỰ HĂNG HÁI
Once you have a user-friendly IT staff, then you need to drum up
enthusiasm and interest among the user community so that it will want to be
involved every painful step of the way. ―Community‖ is the operative word
here because as many users as is feasible should be involved in the systems
development process. In today‘s systems world, however, the norm is to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 197
have only one user who serves as the liaison for the entire group and assists
the IT team as it develops specifications and tests the application.
Một khi bạn có một nhân viên IT thân thiệt với ngƣời dùng, thì bạn
cần phải kêu gọi sự nhiệt tình va thú vị trong cộng đồng ngƣời sử dụng để
ma họ sẽ chịu để tâm vao những bƣớc rắc rối của quá trình. ―cộng đồng‖ là
một từ thực tế ở đây, bởi vì cang nhiều ngƣời dùng tham gia thì cang khả
thi trong quá trình phát triển hệ thống. Tuy nhiên, trong những hệ thống thế
giới ngay nay, mức nay thì chỉ để cho 1 ngƣời dùng liên lạc phục vụ cho
toan nhóm va giúp đội IT khi phát triển kĩ thuật va kiểm tra các ứng dụng.
Can one person adequately represent an entire user group? The
answer is almost always no if you want a system worth its development
dollars. Although involving many users can cause giant headaches, if the
process is properly handled, the resulting system will be superior.
Một ngƣời có thể đại diện mọi mặt cho toan nhóm ngƣời sử dụng
không? Câu trả lời hầu nhƣ luôn la không, (nếu bạn muốn thì việc phát triển
hệ thống nay sẽ tốn nhiều đô la). Mặc dù liên quan đến nhiều ngƣời dùng có
thể gây ra khó khăn lớn, nếu quá trình đƣợc xử lý thủ công một cách thich
hợp, hệ thống kết quả sẽ khá hơn.
That was the experience I had at the NYSE when faced with the
challenging chore of devising a system for over 150 professional users
spread through five separate departments.Despite the fact that each of the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 198
five departments did the exact same job, the diversity of opinion among the
people in these units was nearly overwhelming. It took the great
organizational skills of a talented analyst to pull all the heterogeneous
information together into one cohesive specification. What resulted was far
more complex, but a much more accurate and usable system that covered
all the bases. To cover all those bases, the NYSE IT team formed a working
committee of users made up of one very verbal representative from each of
the five departments. For roughly three months prior to the start of the
specification stage, this working group would sometimes meet as often as
two or three times a week.The meetings were spent discussing actual use
cases upon which the system would be based. In this way, the users were
able to come up with all of the criteria that would ultimately be used in
developing the system. It was during this conceptual phase of system
definition that NYSE‘s IS staff and the departmental end users were able to
reach a meeting of the minds in terms of desired inputs and outputs.
Đó la kinh nghiệm tôi đã có tại NYSE khi phải đối mặt với thách
thức vặt vãnh hang ngay để nghĩ ra (sáng chế ra) một hệ thống cho hơn, 150
ngƣời dùng chuyên nghiệp thông qua 5 phòng ban riêng biệt. Mặc dù thực
tế mỗi cái trong 5 phòng ban lam những việc giống nhau, nhƣng sự đa dạng
về ý kiến giữa những ngƣời trong những phòng nay gần nhƣ áp đảo. Phải
mất kĩ năng tuyệt vời của nha phân tich tai năng để có thể kết những thông
tin không đồng nhất với nhau thanh một kỹ thuật liên kết. Điều nay thì cang
phức tạp hơn, nhƣng một hệ thống cang chinh xác va hữu dụng phải bao
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 199
ham toan bộ cơ sở nay. Để bao ham đƣợc tất cả các cơ sở nay, các nhóm IT
của NYSE phải hình thanh một ủy ban lam việc của ngƣời sử dụng, tạo
thanh đại diện (phát ngôn) từ mỗi phòng trong 5 phòng ban. Đối với khoảng
3 tháng, trƣớc khi bắt đầu giao đoạn kĩ thuật, nhóm lam việc ay đôi khi sẽ
gặp gơ thƣờng xuyên từ hai đến ba tuần một lần. Các cuộc họp danh thời
gian thảo luận về trƣờng hợp sử dụng thực tế ma hệ thống đặt cơ sở. Bằng
cách nay, ngƣời dùng đã có thể đến với tất cả các tiêu chi ma cuối cùng sẽ
đƣợc sử dụng trong việc phát triển hệ thống. Trong giai đoạn quan niệm về
định nghĩa hệ thống ma nhân viên IT của NYSE va những ngƣời sử dụng
cuối của các phòng ban có thể đi tới cuộc họp nhất tri trong việc giới hạn
mong muốn về đầu vao va đầu ra (giới hạn đầu vao va đầu ra nhƣ mong
muốn).
Determining the users‘ real information needs is indeed the stickiest
wicket of the entire specification process. If all you do is translate the paper
avalanche to the tube, then the ultimate system will not be much better than
the former manual one. In fact, many of these paperwork clone systems
actually decrease productivity.
Xác định các thông tin thực tế của nhu cầu ngƣời dùng thật la không
có lợi (stickiest wicket) cho toan bộ tiến trình kĩ thuật. Nếu tất cả những gì
bạn lam la dịch (chuyển) paper avalanche to the tube, sau đó hệ thống cuối
cùng sẽ không tốt hơn cái lam bằng tay (thủ công) trƣớc đây. Trong thực tế,
nhiều hệ thống paperwork nhân bản thật sự sẽ lam giảm năng suất.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 200
The key to pinpointing the users‘ actual information needs is not to
present more data, but to present less, but more meaningful or relevant,
data. To date, IT has applied the pitch-hit-and-run theory to most systems
development. Little, if any, consideration has been given to the differing
information requirements of the various decision-making levels within an
organization. As a result, you end up with fancy applications that spit out a
kludge of irrelevant information.
Chìa khóa để xác định nhu cầu thông tin thật sự của ngƣời sử dụng
thì không đƣa ra nhiều dữ liệu, nhƣng để đƣa ra it, nhƣng có ý nghĩa hơn
hoặc có liên quan, dữ liệu. Đến nay, IT đã áp dụng lý thuyết pitch-hit-and-
run cho hầu hết sự phát triển hệ thống. Việc xem xét đã cung cấp những yêu
cầu thông tin khác nhau của những mức quyết định khác nhau trong 1 tổ
chức. Kết quả la, bạn kết thúc với các ứng dụng ƣu thich ma lại nói ra
những thông tin không liên quan về 1 lời giải nhanh.
5.4 PHƢƠNG PHÁP LUẬN
To avoid that systems scenario and to present the optimum mix of
detailand composite data to users, the developer can follow several time-
tested methods. All of the methods recognize a relationship between the
type ofuser and the level of detail needed to do the job or make a decision.
Để tránh kịch bản hệ thống va hiện diện điều kiện tốt nhất la hổn hợp
của dữ liệu ghép va chi tiết cho những ngƣời dùng. Lập trình viên có thể
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 201
theo sau nhiều phƣơng thức đã đƣợc kiểm tra đúng đắn.Tất cá các phƣơng
thức công nhận mối quan hệ giữa loại ngƣời dùng va cấp độ chi tiết cần
thiết để lam công việc hay đƣa ra quyết định.
The three types of users — technical, tactical, and strategic — corre-
spond to the three levels of workers in today‘s typical corporation.
Thetechnical users are generally the paper pushers in the corporate
hierarchy. These employees —check processors and complaint takers, for
example— are the people who need to see all the data. They input and
review a wealth of data, normally in rote fashion.
3 loại ngƣời dùng – chuyên môn, chiến thuật va chiến lƣợc – tƣơng
xứng với ba cấp độ ngƣời lam việc trong các công ty tiêu biểu ngay
nay.Những ngƣời dùng chuyên môn thì nói chung la ngƣời đẩy giấy tờ vao
hệ thống cấp bậc thuộc tập đoan. Những nhân viên – kiểm tra bộ xử li máy
tinh va la ngƣời nhận những than phiền, chẳng hạn – la những ngƣời cần
thấy tất cả các dữ liệu. Họ nhập dữ liệu vao va kiểm tra tinh đa dang của dữ
liệu, thông thƣờng la cách nhớ vẹt.
At the opposite end of the spectrum are the senior managers, who use
information gathered at the lower rungs for strategic purposes. A whole
range of executive information and decision support systems is now avail-
able to help this corporate vanguard. These wares feature flashy colors on
touch screens notable for the scarcity of data displayed. The data is likely to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 202
show sales projections, profitability numbers, and comparisons with the
competition.
Ngƣợc lại với những ngƣời quản li có kinh nghiệm sử dụng tinh tức
tập hợp những cập bật thập hơn cho mục đich chiến lƣợc. Toan bộ những
tin tức va quyết định thực thi chống đở cho hệ thống thi có sẳn để giúp đở
nhũng tập đoan đi tiên phong. Nét đặc biệt những vật chế tạo nay la mau
sắc hao nhoáng, tiếp cận với man hình khan hiếm dữ liệu đƣợc trình bay.Dữ
liệu có thể để trình diễn để bán,lấy lợi nhuận, va so sánh với các đối thủ
cạnh tranh.
In the middle, between the strategic users and the technical users, are
the tactical users. These are the middle managers, the poor unfortunates
buried under the paper avalanche. It is these professionals who therefore
need the most careful balance of data.
Giữa ngƣời dùng chuyên môn va ngƣời dùng chiến lƣợc la ngƣời
dùng chiến thuật. Nhừng ngƣời nay giữa những ngƣời quản li..... Bởi vậy
những ngƣời chuyên nghiệp cần cân đối thật cẩn thận dữ liệu.
As always, users‘ needs dictate the data representation discipline
used.
Human resources or utility users, for example, are good candidates
for descriptive models in the form of rganization charts or floor plans. Mod-
eling is also a good mode for operations maagement students who want to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 203
apply game theory to problems that lack supporting information. On the
other hand, a normative representation of data is an apt choice for budget
personnel, who need the best answer to a given problem.
Mệnh lệnh cần thiết của ngƣời dùng những...... Tai nguyên tự nhiên
va những ngƣời dùng có ich, chẳng hạn, la những ứng viện tốt cho mô hình
mô tả hình thức bản đồ một tổ chức hay những kế hoạch nền tảng. Mô hình
nay cũng la một mô hih tốt cho những chức năng quản li nhƣng viên những
ngƣời muốn dụng ứng dụng lý thuyết game vao vấn đề thiếu tin tức phụ trợ.
Mặc khác, những đặc trƣng đƣợc tiêu chuẩn hoá của dữ liệu la lựa chọn dễ
cho những nhân viên ngân quỹ, những ngƣời cần câu trả lời tốt nhất cho
vấn đền đƣa ra.
Deciding on the type of information and how to present it to a
particular group of users is the job of IT personnel. Sometimes they get
carried away with their mission. At the NYSE, for example, the systems
staff realized they had gone too far when adisplay for a large customer
exceeded 91 screens of information. Going back to the drawing board, they
came up with a plan to make the 91-screen monster more manageable.
What they did was use graphics to tame the tangle of numbers displayed,
coupled with embedded expert systems that enabled users to navigate
quickly and more effectively through the data. In this filtering process, the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 204
systems developer sifts through the data, displaying only what is relevant at
any point in time.
Quyết định loại thông tin va trình bay nó thế nao cho một nhóm đặc
thù của ngƣời dùng la nghề nhân viên công nghệ thông tin. Thỉnh thoảng họ
bị cuốn theo vai trò của họ. Tại NYSE, chẳng hạn, ban hệ thống nhận ra
rằng họ đi quá xa khi trình bay cho một lƣợng khách hang lớn hơn 91 man
hình tin tức. Theo sau ban đồ hoạ, họ tới gần với kế hoạch lam 91 hình ảnh
quái vật có thể quản li tốt hơn. Những gì họ lam sử dụng đồ hoạ...Trong
tiến trình lọc, lập trình viên hệ thống chọn lọc dữ liệu, trình bay những gì
thich đáng ở một thời điểm nao đó.
One way to do the filtering is by using the monitoring method, which
serves up data to the user on an exception basis. This can take the form of
variance reporting, in which the system produces only exceptions based on
a programmatic review of the data. After reviewing credit card pay- ments,
a system can, for instance, display only those accounts where the payment
is overdue or below the minimum. The monitoring method can also be used
in programmed decision-making applications, in which case the system
makes all of the technical decisions and many of the tactical ones as well.
Một cách thức để lọc la sử dụng cách thức giám sát, phục vụ dữ liệu
cho ngƣời dùng trên vai ngoại lệ cơ bản. điều nay có thể la cách thức thuật
lại sự khác nhau, ma sản phẩm hệ thống chỉ ngoại lệ cơ bản xét duyệt
chƣơng trình dữ liệu. Sau khi xét duyệt tiền phải trả, hệ thống có thể, chẳng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 205
hạn, trình bay chỉ những tai khoản nay những nơi trả tiền quá chậm hoặc
dƣới mức tối thiểu. Cách thức giám sát cũng cố thể đƣợc dùng trong ứng
dụng lam chƣơng trình, trong trƣờng hơp nao hệ thống lam tất cả quyết
định chuyên môn va nhiều quyết định chiến thuật tốt.
American Express made the decision to go with a monitoring method
that simplified its complex credit authorization chores. An expert system,
aptly named Authorizer Assistant, helped Amex reduce the percentage of
bad credit authorizations. It also reduced the number of screens needed to
review customer data from a high of 12 to a manageable 2.
Sự tốc hanh ngƣời Mĩ đƣa ra những quyết định đi cùng những cách
thức giám sát đơn giản hoá sự phức tạp công việc nhỏ. Một hệ thống
chuyên nghiệp, tên ngƣời phụ tá uỷ quyền thich hợp, giúp Amex rút ngắn
phần trăm những thẻ uỷ quyền xấu. Nó cũng rút ngắn số các hình ảnh cẩn
thiết để xét duyệt những dữ liệu khách hang.
The advent of fourth generation languages (4GLs), which enabled
end users to access corporate databases with an easy-to-use query syntax,
has made interrogative methods of systems design more popular today.
Implicit in this approach is the understanding that on many occasions
users in complex decision-making environments cannot identify the infor-
mation they need to perform ad hoc analyses. In these cases, all of the data
elements must be resident in an accessible database. There must also be a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 206
tool that allows users to easily develop queries and variations on these
queries against the data.
Đế thế hệ ngôn ngữ thứ tƣ (4GLs), ngƣời dùng cuối có thể truy cập
dữ liệu công ty với cú pháp truy vấn dễ sử dụng, lam cho cách thức hỏi hệ
thống thiết kế phổ biến ngay nay. Ngầm định, gần đây hiểu đƣợc rằng có
nhiều cơ hội, những ngƣời dùng môi trƣờng đƣa ra quyết định phức tạp thì
không thể nhận ra tin tức họ cần thực hiện phân tich. Trong những trƣờng
hợp nay, tất cả các yếu tố dữ liệu cần một dữ liệu sử dụng đƣợc. Cần có
công cụ cho phép ngƣời dùng dễ dang phát triển truy vấn khác nhau trên
câu truy vấn nay dựa vao dữ liệu.
The ease-of-use factor provided by a 4GL came in very handy when
Bankers Trust in New York (now Deutsche Bank) opted to leave the retail
business. The data processing effort required to achieve this feat was
enormous. With the help of Focus, the 4GL product from Information
Builders in New York (www.ibi.com), the bank was able to ensure a
smooth transfer of accounts from Bankers to many other far-flung financial
institu- tions. Some accounts were spun off to a bank in Chicago and some
to Albany, New York, while a few high rollers were retained as privileged
Bankers Trust customers.
Yếu tố dễ sử dụng cung cấp bởi 4GL đƣợc xem la rất thuận tiện khi
Bankers Trust trong New York (giờ la Deutsche Bank) lựa chọn rời khởi
kinh doanh bán lẻ. Sự số gắng để gia công dữ liệu yêu cầu công sức không
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 207
lồ. Với sự giúp đở điều chỉnh, sản phẩm 4GL từ những nha xây dựng thông
tin trong New York (www.ibi.com), ngân hang đã có thể đảm bảo sự di
chuyển trôi trải của nhƣng tai khoản từ Bankers đến viện tai chinh rộng
khác.
Once users are certain about the correct way to handle the data, the
IT squad can then translate this information into the specification that spells
out how the system should run. In many IT shops, how a system should run
is a function of what is available in-house. This means that user require-
ments are forcibly fit into an existing tool set and — just like a bad shoe fit
— a bad system fit causes users great pain. Some of that pain was felt at the
Securities Industry Automation Corp. (SIAC), which originally cramped its
users by limiting tself to just one database product. SIAC began using
Total from Cincom Systems Inc., Cincinnati, back in 1977, when few
database tools were on the market. There was absolutely nothing wrong
with Total; what was wrong was the implicit order to use it for all systems.
Use it SIAC did — for everything!
Một vai tai khoản đƣợc quay quanh ngân hang Chicago va một vai
đến Albany, New York, trong khi một vai trục lăn cao đƣợc giữ lại nhƣ
những khách hang Bankers Trust có đặc quyền.Khi những ngƣời dùng chắc
chắn về cách chinh xác về xử li dữ liệu, tổ IT có thể phiên dịch thông tin
nay những chi tiết giải thich rõ rang hệ thống nên hoạt động nhƣ thế nao.
Trong nhiều cửa hang IT, một hệ thông nên chạy nhƣ một chức năng gốm
những gì có sẳn trong nha.. Điều nay có nghĩa la đòi hỏi ngƣời dùng phải
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 208
cân đối vao một thiết lập công cụ có sẳn va một hệ thống xấu la hình phạt
lớn với ngƣời dùng.
5.5 PHÂN PHỐI DỮ LIỆU CHO CHỦ NHÂN HỢP PHÁP – NGƢỜI
DÙNG CUỐI
Most IT shops today design superbly efficient systems — for batch
and transaction-based systems. Unfortunately, these systems are then jury-
rigged for the part of the system visible to the user. Such technology tink-
ering often leaves the user out on a limb.
Phần lớn các nha cung cấp phần mềm ngay nay thiết kế các
(superbly efficient systems) hệ thống hiệu quả cho các thao tác (batch) và
hệ thống kinh doanh cơ sở (transaction-based systems). Thật không may
các hệ thống nhƣ thế thƣờng không hoan thiện, tạm bợ (jury-rigged) một
phần của hệ thống đối với ngƣời dùng. Nhƣ công nghệ tink-ering thƣờng để
ngƣời dùng văng ra ngoai.
That is exactly where some end users at the NYSE found themselves
when a billing system using a hierarchical production database was defined
to a 4GL. The database, which was composed of numerous seg- ments of
data keyed by a brokerage firm number, ran very fast during over- night
update processing due to its efficient design, specifically labored over for
this purpose.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 209
Một điều chinh xác la ngƣời dùng cuối ở NYSE nhận thấy khi ma hệ
thống thanh toán sử dụng một sản phẩm database phân cấp (hierarchical
production database) đƣợc định nghĩa nhƣ la một 4GL. Các Database đó,
cái ma tich hợp trong nó nhiều phân đoạn (segment) của các dữ liệu khoá
của một số công ty mua giới xử lý rất nhanh trong các tiến trình nâng cấp
bất ngờ nhờ sự thiết kế hiệu quả của nó,va rõ rang thì phải tốn công sừ hơn
cho mục đich nay.
Meanwhile, some NYSE users were anticipating a new system with
the extra added attraction of ad hoc inquiry. By a happy coincidence — or
so it was originally thought —a 4GL had just been brought into the
Exchange for end-user computing. The hierarchically defined database was
dutifully defined to RAMIS; the users were trained and then let loose.
RAMIS came up empty.
Trong lúc ấy, một vai ngƣời dùng ở NYSE đang đề cập đến một hệ
thống mới với sự tich hợp của các yêu cầu đặc biệt. Bởi một sự trùng hợp
ngẫu nhiên hoặc la nó la một cách nghĩ mới mẻ - 4GL đã đƣợc mang đến sở
giao dịch (Exchange) cho ngƣời dùng sử dụng tinh toán. Cái database-đƣợc
định nghĩa phân cấp(hierarchically defined database) đƣợc định nghĩa một
cách nghiêm túc la RAMIS, các ngƣời dùng đƣợc huấn luyện va sau đó
đƣợc cho lam một cách tự do. RAMIS trở nên thiếu. (RAMIS came up
empty).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 210
The problem was that bane of logic, the JOIN. Although the internal
database was segmented into a logical structure for efficiencies, the data on
every brokerage house was dispersed throughout, making it difficult for he
users to get to it without understanding a bit more than they wanted to know
about information processing.
Cái nguyên nhân đến từ sự suy sụp về mặt logic – JOIN(phép kết
trong Đai số quan hệ). Mặc dù bên trong database đƣợc phân chia thanh các
cấu trúc logic để hiệu quả hơn, nhƣng các data từ các nha mua giới lại đƣợc
phân tán ra khắp nơi, điều đó lam cho nó khó sử dụng đối với những ngƣời
dùng không hiểu hơn la việc ma họ muốn biết thông tin.
There are as many ways of designing systems as there are people to
use them. Most systems are designed out of prejudice: John Doe, the
database administrator at the Widget Corp., is expert at Microsoft Access;
therefore, all systems at the company are designed using Microsoft Access.
Most corporate systems are designed around some sort of heavy-duty
database. There are several types of database architectures: hierarchical, as
in IBM IMS; networked, as in Computer Associates‘ IDMS, which has
lately mor- phed into a combination networked and relational database;
relational, as in Microsoft‘s SQL Server; and object oriented, as in
Objectivity‘s Objectiv- ity/DB. The proper choice depends upon many
factors, not the least of which should be ease of access by the user.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 211
Có nhiều cách để thiết kế hệ thống tuỳ thuộc vao những ngƣời sử
dụng chúng. Hầu hết các hệ thống đƣợc thiết kế theo sở thich: John Doe
nha quản trị database của Widget Corp ngƣời chuyên về Microsoft Access,
vì thế các hê thống tại công ty đƣợc thiết kết dựa trên Microsoft Access.
phần lớn các hệ thống chung đƣợc thiết kế cho phù hợp dựa vao một hệ cơ
sở dữ liệu quan trọng nao đó. Có nhiều kiến trúc database:
Cơ sở dữ liệu phân cấp (hierarchical) nhƣ IBM IMS
Cơ sở dữ liệu mạng lƣới (network) nhƣ IDMS của Computer
Associates, cái ma mới đây morphed into kết hợp giữa cơ sở dữ
liệu mạng va cơ sở dữ liệu quan hê.
Cơ sở dữ liệu quan hệ (relational) nhƣ SQL Server của Microsoft
Cơ sở dữ liệu hƣớng đối tƣợng Objectivity‘s Objectivity/DB.
Sự lựa chọn đúng đắn phải dựa vao nhiều yếu tố chứ không chỉ dựa
vao loại cơ sở dữ liệu nao dễ dang sử dụng cho ngƣời dùng.
Serious decisions must also be made regarding the system platform.
In a world of mainframes, PCs, minicomputers, advanced workstations,
Inter- net, and Intranets, the endless possibilities boggle the systems
developer‘s mind. Solutions run the gamut from pure mainframe to a cluster
of con- nected micros and minis to web-based distributed. In vogue today is
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 212
an any-to-any environment where a user with a smart workstation has easy
access to various mainframes, minis, or PCs across an Intranet.
Quyết định thực sự còn dựa trên nền tảng của hệ thống. Có rất nhiều
thanh phần mainframes, PCs, minicomputers, workstations, Internet, and
Intranets va rất nhiều khả năng xãy ra sẽ lam cho những ngƣời phát triển hệ
thống do dự. Những giải pháp có thể thay đổi để phù hợp cho những máy
mainframe hoặc đến hệ thống có kết nối của những máy micro va mini hoặc
hệ thống web-based. Cái xu thế của ngay nay la một môi trƣờng mọi với
mọi (any-to-any environment) nơi ma user với một workstation có thể dễ
dang liên kết với những máy mainframes, minis, hay PCs thông qua
internet.
5.6 SỰ LỰA CHỌN CHO CÁC HỆ THỐNG
Choosing hardware and software is truly the fun part of systems
design. Visits to vendors and trips to trade shows where you can play with
test equipment transport you into an IT Disneyland. But while you are out
there high-teching it up, at some point you had better come down to earth
and get the user involved. If not, your dream machine will turn into an
expen- sive nightmare. So, no matter what platform or program you pick,
the user variables in making your selection must be examined at every
technologi- cal turn. Among those user considerations are cost, ease of use,
access to corporate data, graphics requirements compatibility with current
environ- ment, and particular preferences.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 213
Việc lựa chọn phần cứng hay phần mềm cho hệ thống la một công
việc khá thú vị. Viếng thăm các đại lý, tham dự các cuộc triển lãm nơi ma
bạn có thể thử va test những thiết bị sẽ đƣa bạn diến vùng đất thú vị của tin
hoc. Tuy nhiên, sau khi nếm trải đủ những sự kì diệu đó thì bạn phải chú ý
đên quan điểm va khả năng chi tra của ngƣời sử dụng, nếu không thì hệ
thống của bạn sẽ chỉ la một giấc mơ xa sỉ. vì vậy thì dù bạn chọn nền tảng
hệ thống (platform) va ứng dụng thế nao thì những sự thay đổi của ngƣời
dùng luôn phải đƣợc nghiên cứu. những điều ngƣời dùng suy xét tới la giá
thanh, dễ dang trong sử dụng, khả năng kết hợp với dữ liệu, các yêu cầu về
mặt đồ hoạ sự tƣơng thich với môi trƣờng hay thậm chi la sở thich riêng.
Ease of use was the major criterion that caused some equipment the
NYSE was considering to be scuttled. Bar code readers for use in the field
were the equipment under investigation. The technial group at the
Exchange, who thought they had found the perfect solution, promptly
ordered sample equipment and found that it worked like a charm. How-
ever, in order for it to work properly, the credit-card size readers had to be
held at a certain angle. It was a good thing the users were consulted because
it turned out that they were not able to hold the devices at that precise angle.
Dễ sử dụng la một tiêu chuẩn chinh, la lý do ma một vai thiết bị
NYSE đƣợc đánh giá la không thanh công. Vi dụ về dụng cụ đọc mã vạch
chẳng hạn. Các kỹ thuật viên ở Exchange (sở giao dịch) đã nghĩ rằng ho tìm
ra môt phƣơng án tuyệt vời,va lập tức lam các thiết bị mẫu, họ nhận thấy
rang nó lam việc một cách hoan hảo. Tuy nhiên, mạc dù cho nó lam việc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 214
một cách hiệu quả thì miếng dán mã vạch cần phải dán ở một góc cố định.
Một điều bật ra la họ không thể vừa giữ cái máy vừa xoay sản phẩm để tìm
kiếm, điều đó có thể tránh đƣợc nếu tham khảo ý kiến của ngƣời sử dụng.
The lesson here is that just because you find it easy to use does not
mean the user will necessarily agree with you. Also, keep in mind that just
because it is state of the art and your technical staff adores it does not mean
the user will concur. It all adds up to input: the user needs to have a say in
the selection process.
Cái bai học rút ra o day la cho dù bạn thấy rang nó dễ dang để sử
dụng thì điều đó không có nghĩa la ngƣời dùng sẽ đồng ý với bạn. Vì vậy,
ngƣời sử dụng cần phải có tiếng nói trong quá trinh lựa chọn. (selection
process).
This lesson is particularly pertinent when it comes to developing the
specification for online screens and reports — the most visible part of any
system. What frequently happens is that the IS people gater information and
create a specification. After six to twelve months, they are ready to demo
the system they developed to the users. With so much time interven- ing,
the users have invariably changed their minds about or forgotten what they
want.
Bai học nay đặc biệt thich hợp khi nó dùng để phái triển những bảng
thông báo va gởi báo cao về qua mạng – cái ma bạn thƣờng thấy ở bất kì hệ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 215
thống nao. Chuyện đó thƣờng sãy ra va một nhóm ngƣời có trách nhiệm sẽ
thu thập thông tin va tạo ra những đặc điểm về kỹ thuật. sau 6 – 12 tháng họ
sãn sang để thử nghiệm hệ thống đó trên ngƣời dùng. với chừng đó thời
gian chen vào, ngƣời dùng sẽ thay đổi quan điểm hoặc quên đi họ muốn gì.
At Bankers Trust, when it was developing an equipment leasing
system, that time was not allowed to elapse without user feedback. Instead,
the bank decided to rapid-prototype (RAD) the system for users. During the
specification stage, a series of screens were put up on the system within a
matter of days. Users were given an ID into the system so they could play
with the prototype. They got the feel for the system and were able to voice
their opinions and objections immediately.
EX: ở Bankers Trust (ngân hàng trust), đang thiết kế một hệ thống,
khoảng thời gian thu thập ý kiến trôi qua ma bất chấp những ý kiến của
ngƣời dùng (feetback). Thay vao đó họ cho chạy thử phiên bản đầu tien cho
khách hang. Chỉ trong khoảng môt ngay, một lỗi nghiêm trong đã xuất hiên
với hệ thống. một số ngƣời dùng đã cho ID vao hệ thống nhƣng không thể
giao dịch đƣợc, va họ cho ý kiến bằng những lời la ó va sự giận dữ.
An even more daring user approach was taken by the NYSE. Certain
Exchange users were given an online editor and told to develop the screens
utilizing a JAD (joint application development) methodology. IT staffers
held their breath for many days, fearing the outcome of this experiment.
They need not have feared; users know what they want to see and how they
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 216
want to see it. Therefore, forget about textbook cases of good screen design
and give your users a paintbrush.
Một cách tiếp cận ngƣời dùng táo bạo đƣợc đƣa ra bởi NYSE. Cụ thể
những ngƣời dùng ở sở giao dịch Exchange sẽ đƣợc cung cấp một phần
mềm soạn thảo van bản online va nói cho các nha phát triển cái giao diện
ma họ muốn thấy để phái triển giao diện cho JAD (có thể hiểu la một
chƣơng trình quản lý dữ liệu cao hơn hệ phƣơng pháp luận). Cuộc thử
nghiệm nay khiến cho những nhân viên IT khá lo lắng. Nhƣng họ không
cần phải lo lắng, ngƣời dùng biết họ muốn thấy gì va thấy nó nhƣ thế nao.
Bởi vậy hãy bỏ qua những trƣờng hợp lý thuyết về một khung hình đƣợc
thiết kế tốt va trao cho ngƣời sử dụng một cây cọ.
Far more control is necessary in the system testing phase, however.
Users are notorious for their lax standards when they are involved in test-
ing. Therefore, the IT group must carefully oversee a test plan that covers
all facets of the system, using as many test cases and as many users as
possible.
Một giai đoạn cần thiết hơn đó la chạy thử nghiệm, tuy nhiên ngƣời
sử dụng thì nổi tiếng la dễ dãi khi họ vƣớng phải những thử nghiệm rắc rối.
vì vậy một nhóm IT phải có trách nhiệm giám sát kế hoạch thử nghiệm để
đảm bảo test đủ tất cả các khia cạnh của hệ thống va nhiều nhất những
trƣờng hợp có thể.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 217
In one company the systems squad exercised both caution and
control in testing a very large financial system that was distributed across a
group of seven users. The users were asked to compare test results with raw
data and to annotate screen printouts or reports as appropriate. Because the
users were given very specific tasks and very specific instructions (not the
usual ―take a look at the system and let me know if you see any- thing
wrong‖), the system was 99 percent debugged before it went into
production.
Trong một công ty, một hệ thống sử dụng môt nhóm ngƣời trong
việc thông báo va quản lý việc chạy thử nghiệm, ở các hệ thống tai chinh
lớn công việc đó thƣờng đƣơc giao cho một nhóm khoang 7 ngƣời. Những
ngƣời đó đƣợc yêu cầu so sánh kết qua thử nghiệm với dữ liệu thô va chú
giải những dữ liệu xuất ra từ mạn hình hay báo cáo thich hợp. Bởi vì ngƣời
dùng đã đƣợc trao những nhiệm vụ va hƣớng dẫn cụ thể (không phải la bình
thƣờng "hãy xem hệ thống va cho tôi biết nếu bạn thấy bất kỳ điều sai "), hệ
thống đã đƣợc 99 % debugged trƣớc khi nó đã đi vao sản xuất.
Once the system has been tested, it is time to go live. Ideally, the
users have been involved every step of the way in the design process, and
pains have been taken to keep all those who will ultimately use the system
informed of its progress.
Một khi hệ thống đã thử nghiệm xong sẽ đƣợc đƣa vao sử dụng. Thật
tốt khi những ngƣời sử dụng đã tham gia vao từng bƣớc của quá trình thiết
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 5: Thiết kế hệ thống theo hướng người sử dụng 218
kế, (pains have been taken to keep all those who will ultimately use the
system informed of its progress) va trả công cho những ngƣời dùng cuối
cùng khi thông báo về những tiến trình của hệ thống.
5.7 KẾT LUẬN
The points I have mentioned are all quite obvious, but they are
oftenoverlooked by harried IT staffs. This results in installed systems that
aredeemed successful by technicians but are dubbed flops by users. Thus,
todesign a system for all-around success, ―May the USER be with you‖.
Thực ra, những vấn đề đƣợc đề cập đến kể trên khá hiển nhiên,
nhƣng nó thƣờng bị bỏ sót bởi những tổ chức IT quá vội vang. Kết quả la
khi đã lắp đặt một hệ thống tƣởng rằng thanh công về mặt kỹ thuật thì thật
sự lại bị từ chối bởi ngƣời dùng. Do đó để thiết kế một hệ thống thanh công
về mọi mặt thì ―Hãy cùng lam viêc với Ngƣời Sử dụng nó‖.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 219
CHƢƠNG 6 XEM XÉT
QUYẾT ĐỊNH THUÊ NGOÀI
Người dịch:
1. Đam Quỳnh Giang
2. Lê Anh Dũng
3. Nguyễn Thanh Tòng
4. Lê Văn Huy
5. Nguyễn Hoang Việt
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 220
Outsourcing is a three-phased process:
Phase 1. Analysis and evaluation
Phase 2. Needs assessment and vendor selection
Phase 3. Implementation and management
Outsource la một quy trình 3 bƣớc:
Bƣớc 1: Phân tinh va đánh giá
Bƣớc 2: Thẩm định yêu cầu va lựa chọn đối tác
Bƣớc 3: Triển khai va quản li
6.1 BƢỚC 1: PHÂN TÍCH VÀ ĐÁNH GIÁ
In order to understand the services that need to be outsourced,
organizational goals need to be identified — particularly the core
competencies. Once the goals and core competencies are identified,
information related to these activities is gathered to compare the cost of
performing the functions in-house with the cost of outsourcing them. This
enables the company to answer nonfinancial questions such as ―How
critical are these functions and activities?‖ or ―What depends on these
activities?‖ or ―Will this activity become a ‗mission critical‘ activity?‖ This
will help organizations reach decisions about whether or not to outsource.
Long-term cost and investment implications, work morale, and support
should also be considered (see Appendix D for sample cost-benefit analysis
worksheets).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 221
Để hiểu những dịch vụ cần đƣợc outsource, những mục tiêu của công
ty phải đƣợc xác định – đặc biệt la những năng lực cốt lõi. Một khi những
năng lực cốt lõi đã đƣợc xác định, thông tin liên quan đến những hoạt động
nay đƣợc thu thập để so sánh chi phi khi tiến hanh tự lam (in-house) với chi
phi khi outsource. Việc nay giúp công ty trả lời những câu hỏi phi tai chinh,
nhƣ la ―Những chức năng va hoạt động nay mang tinh quyết định nhƣ thế
nào?‖ hay ―Cái gì phụ thuộc va những hoạt động nay‖ hay ―Những hoạt
động nay sẽ trở thanh những hoạt động mang tinh ‗cốt yếu‘ hay không?‖.
Việc nay giúp cho công ty có đƣợc những quyết định về việc có nên
outsource hay không. Những mối quan hệ mật thiết giữa chi phi dai hạn va
sự đầu tƣ, tinh thần lam việc, va sự ủng hộ cũng cần đƣợc xem xét (xem
Phụ lục D về bảng phân tich chi phi – năng suất)
6.2 BƢỚC 2: THẨM ĐỊNH YÊU CẦU VÀ LỰA CHỌN ĐỐI TÁC
The objective of this phase is to develop a detailed understanding of
the needs of the organization and the capabilities of possible solution
providers.
Mục tiêu của bƣớc nay la để triển khai một phân tich chi tiết về
những nhu cầu của công ty cũng nhƣ năng lực của những nha cung cấp giải
pháp.
In this phase a ―request for a proposal‖ (RFP) is developed and
delivered to applicable vendors. RFPs need to be structured in a manner to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 222
facilitate assessment and comparison of the various vendors. They should
contain the complete requirements, problem that needs to be resolved,
desires, etc. A clearly structured and documented RFP also helps vendors
understand and evaluate what a company is looking for and assists them
inassessing whether they can provide the required service.
Trong bƣớc nay, một lời ―mời thầu‖ (request for proposal – RFP)
đƣợc tạo ra va gửi đến những đối tác thich hợp. Bản RFP cần đƣợc cấu trúc
theo cách sao cho thuận tiện với việc thẩm định va so sánh những đối tác
khác nhau. Chúng cần phải trình bay đầy đủ các yêu cầu, vấn đề cần giải
quyết, mong muốn, v.v… Một bản RFP đƣợc cấu trúc va tai liệu hoá rõ
rang cũng giúp cho các đối tác hiểu va đánh giá đƣợc một công ty đang tìm
kiếm điều gì va giúp họ xem xét liệu họ có thể cung cấp đƣợc những dịch
vụ đề xuất hay không.
When evaluating the vendor proposals, the organization should look
not only at the technological capability of the vendor but also at factors
such as the vendor‘s financial stability, track record, and customer support
reputation. Contacting vendor‘s existing and previous clients would give
the organization a good idea about the vendor‘s abilities.
Khi đánh giá những đề xuất của đối tác, công ty nên không chỉ nhìn
vao năng lực kĩ thuật của đối tác đó ma còn phải nhìn vao những yếu tố
khác nhƣ sự ổn định về tai chinh của đối tác, thanh tich, cũng nhƣ khả năng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 223
hỗ trợ khách hang. Liên hệ với những khách hang hiện tại va trƣớc đây của
đối tác sẽ giúp công ty có một cái nhìn tốt hơn về khả năng của đối tác.
Once a vendor is selected, the organization needs to make sure that a
fair and reasonable contract, beneficial to the organization, is negotiated. It
is imperative to define service levels and the consequences of not meeting
them clearly. Both parties should make sure that they understand the
performance measurement criteria (see Appendix Q for a software metrics
capabilities guide).
Một khi đối tác đã đƣợc chọn, công ty cần bảo đảm rằng một bản
hợp đồng công bằng va hợp li, có lợi cho công ty đƣợc đem ra thƣơng
lƣợng. Vấn đề mấu chốt la phải định đƣợc cấp độ của dịch vụ va những hệ
quả từ việc không đáp ứng rõ rang những dịch vụ đó. Cả hai bên nên bảo
đảm rằng họ hiểu đƣợc những tiêu chi đánh giá hiệu suất công việc (xem
Phụ lục Q về hƣớng dẫn thƣớc đo năng lực phần mềm).
6.3 BƢỚC 3: TRIỂN KHAI
The final phase in the outsourcing decision process is the
implementation. During this phase a clear definition of the task needs to be
identified, so establishing a time frame would be very helpful. Mechanisms
need to be established to monitor and evaluate performance during the
vendor‘s developmental process. This is important even after
implementation to make sure that the outsourced tasks are being delivered
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 224
by the vendor as agreed upon. Ability to identify, communicate, and resolve
issues promptly and fairly will help the company achieve mutual benefits
and make a relationship successful.
Bƣớc cuối cùng trong quy trình xem xét quyết định outsource la việc
triển khai. Trong bƣớc nay, một bản định nghĩa rõ rang về những nhiệm vụ
cần đƣợc xác định, cho nên việc thiết lập một khung thời gian sẽ trở nên
hữu ich. Một cơ chế cũng cần đƣợc thiết lập để điều phối va đánh giá hiệu
suất trong quá trình lam việc của đối tác. Việc nay rất quan trọng, ngay cả
sau khi đã qua bƣớc triển khai để bảo đảm những nhiệm vụ outsource đang
đƣợc đối tác giao nộp lại nhƣ đã thoả thuận. Khả năng xác định, trao đổi, va
giải quyết vấn đề nhanh chóng va minh bạch sẽ giúp công ty đạt đƣợc
những lợi ich qua lại va lam cho quan hệ trở nên tốt đẹp.
Depending on the size of the outsourcing contract, the manager
responsible for the program‘s delivery and integration may be responsible
for all of the process, or only some. These are the horizontal and vertical
factors of outsourcing management. A manager of the horizontal process is
often involved in the decision to outsource, and is then responsible for
defining the work, selecting and engaging the vendor, and managing the
delivery and completion of the program. This manager normally handles all
day-today negotiations. With larger programs, particularly those on a global
scale, a decision is often made at senior levels to outsource. A negotiation
team is appointed to work through the complex agreements, usually under
strict confidentiality, until the agreement is finalized and announced. It is
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 225
then the role of the manager of the vertical component to implement and
manage the ongoing program. Part of this role is the interpretation of the
agreement and identification of areas not covered by the agreement.
Tuỳ vao quy mô hợp đồng outsource, ngƣời quản li chịu trách nhiệm
trong việc chuyển giao va tich hợp chƣơng trình có thể cũng chịu trách
nhiệm về toan bộ quy trình, chứ không chỉ một vai bƣớc. Đây la những yếu
tố dọc va ngang trong việc quản li outsource. Một ngƣời quản li quy trình
ngang thƣờng liên quan đến quyết định outsource, va sau đó chịu trách
nhiệm trong việc xác định công việc, lựa chọn va gặp gơ dối tác, cũng nhƣ
quản li việc chuyển giao va hoan thiện của chƣơng trình. Ngƣời quản li nay
thƣờng sẽ điều khiển tất cả những thoả thuận theo từng ngay. Với những
chƣơng trình lớn hơn, cá biệt la những chƣơng trình quy mô toan cầu, một
quyết định thƣờng đƣợc trình lên cấp cao để outsource. Một nhóm thƣơng
lƣợng sẽ đƣợc hẹn để lam việc xuyên suốt những bản thoả thuận phức tạp,
thông thƣờng la dƣới sự bi mật nghiêm ngặt, cho đến khi những thoả thuận
hoan thanh va đƣợc loan báo. Sau đó la vai trò của ngƣời quản li thanh phần
ngang, để triển khai va quản li chƣơng trình hiện tại. Một phần của nhiệm
vụ nay la việc diễn giải bản thoả thuận va xác định những phần không đƣợc
đề cập trong thoả thuận.
6.4 MỘT VÍ DỤ VỀ OUTSOURCE
In this chapter we will break down the outsourcing decision-making
process using an e-business system as an example. Since the Internet
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 226
opened for business just a short ten years ago and despite the boom–bust
cyclical nature of the market, few companies have not jumped into the
foray by building a corporate Internet presence. The Internet is the one
thing most companies have in common.
Trong chƣơng nay, chúng ta sẽ phân tich về quy trình đƣa quyết định
outsource sử dụng thƣơng mại điện tử (e-bussiness) nhƣ la một vi dụ. Từ
khi Internet đƣợc mở ra cho việc kinh doanh chỉ mới 10 năm trƣớc, va mặc
cho sự bùng nổ của thị trƣờng, một vai công ty vẫn không vội nhảy vao.
Internet la một trong những thứ ma hầu nhƣ mọi công ty đều có.
Visit Gateway.com and wander over to their accessory store
(http://www.gtwaccessories.com). Here you can buy everything from
digital cameras to software to printers. Sounds like quite an operation does
it not? The store might have the Gateway logo on it, but you will not find it
on any Gateway corporate computer. Where you will find it is at
Vcommerce.com — a company that is in the business of putting other
companies in the e-commerce business. According to Gateway, by
outsourcing the entire function, it is able to sell products and grow revenues
while focusing its attention on its core competencies.
Ghé thăm gateway.com va dạo quanh cửa hang bán linh kiện của họ
(http://www.gtaccessories.com). Ở đây bạn có thể mua mọi thứ, từ máy ảnh
kĩ thuật số đến phần mềm, cho đến máy in. Nghe giống nhƣ một chiến dịch
phải không? Cửa hang có thể có logo Gateway tren đó, nhƣng bạn sẽ không
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 227
thể tìm thấy bất kì một chiếc máy tinh nao của Gateway cả. Chỗ ma bạn có
thể tìm thấy nó la ở Vcommerce.com – một công ty chuyên lam nhiệm vụ
la đặt các công ty khác vao môi trƣờng thƣơng mại điện tử. Theo Gateway,
bằng cách outsource toan bộ chức năng nay, họ có thể bán đƣợc sản phẩm
va tăng doanh thu trong khi vẫn đặt sự quan tâm vao những năng lực chinh
yếu.
In other words, Gateway, no slouch in the computer expertise
department, has decided that even they do not have the expertise or desire
to run a sophisticated e-commerce site. Instead, they decided to give the
problem to someone else — someone with the expertise. What, then, does
this say about the rest of us?
Nói cách khác, Gateway, không hề vụng về chút nao trong lĩnh vực
chuyên môn máy tinh cả, đã quyết định rằng thậm chi họ còn không có khả
năng chuyên môn cũng nhƣ không muốn sẽ vận hanh một site thƣơng mại
điện tử rắc rối cả. Thay vao đó, họ quyết định đƣa vấn đề nay cho ngƣời
khác – một ngƣời có chuyên môn. Còn bạn, bạn nghĩ sao về vấn đề nay ?
6.4.1 Những vấn đề khi outsource
It is important to understand the ramifications of systems
development in the world of high-risk interconnected computers. In order to
make an ROI-enhancing decision, the CIO must gather much information
from a diversity of areas:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 228
Rất quan trọng khi hiểu đƣợc sự phân nhánh về sự phát triển hệ
thống trong thế giới đầy nguy cơ của các máy tinh đƣợc kết nối với nhau.
Để đƣa ra đƣợc quyết định lam tăng hiệu quả đầu tƣ (ROI-enhancing
decision), CIO buộc phải tập hợp thông tin từ nhiều lĩnh vực khách nhau:
Legal issues. It is amazing how many Web sites are without benefit
of legal counsel. This stems from the days when the Web had the
reputationof the ―Wild, Wild West‖. Today, the CIO must be
concerned about issues such as copyright infringement of images
and text, the use ofonline warranties, licensing, contracts, and
spamming.
Vấn đề luật pháp. Thật ngạc nhiên có bao nhiêu Web-sites không
cần đến lợi ich từ việc tƣ vấn luật. Chuyện nay bắt nguồn từ khi
Web còn có tiếng la ―Miền Tây, Miền Tây hoang dã‖. Ngay nay,
CIO phải xem xét về các vấn đề nhƣ la sự xâm phạm bản quyền về
hình ảnh va văn bản, việc sử dụng những sự bảo hanh, giấy phép,
hợp đồng, hay thƣ rác trực tuyến.
Regulatory issues. Right now purchases on the Web are not taxed
but expect that this reprieve will not last forever. Other taxation
issues to consider include the effect of telecommuting Web
developers on the jurisdictional exposure of the corporation. Of
course, we all know by now that online gambling is prohibited, but
what about lotteries and contests — even if you offer them as a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 229
promotional gimmick? Then consider First Amendment issues,
pornography issues — et cetera, et cetera, et cetera.
Vấn đề về quy định. Hiện giờ, mua bán trên Web không bị đánh
thuế, nhƣng việc trì hoãn nay không phải la mãi mãi. Những vẫn đề
thuế má khác để xem xét bao gồm cả những hiệu ứng từ việc liên
lạc viễn thông với những nha phát triển Web trong sự công khai
pháp lý của công ty. Tất nhiên, chúng ta đều biết la hiện giờ đánh
bạc trực tuyến bị cấm, nhƣng còn xổ số va các cuộc thi thì sao –
thậm chi nếu bạn chao mời họ nhƣ la mánh khoé khuyến mãi. Rồi
xem xét cả các vấn đề về tự do ngôn luận va vấn đề về thông tin
đồi trụy – vân vân và vân vân.
Security. Once you open your doors you will probably be letting
inmore than customers. Hackers, crackers, and other malevolent
creaturesof the night seem to spend all of their waking hours
figuring outnew ways to wreak havoc on unsuspecting
organizations. Top this offwith a veritable plague of new viruses,
concerns about fire, sloppydata entry, and attacks by internal
employees and security becomes afull-time job. Things you need to
understand are uses of firewalls, encryption,and authentication —
ultracomplex technologies not for thetechnologically faint of heart.
Even the most sophisticated of preventivemeasures will not ward
off all attacks. Think back to the massive denial of service attacks
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 230
on sites such as Yahoo and eTrade in February, 2000, and the
various klez viruses that plagued us in 2002.
Bảo mật. Khi bạn mở cửa ra, bạn có lẽ cho nhiều ngƣời vao chứ
không chỉ có khách hang. Hacker, cracker va những kẻ xấu bụng
khác dƣờng nhƣ danh toan bộ thời gian thức để tìm ra cách phá
hoại những công ty thiếu cảnh giác. Kết thúc bằng một đại dịch với
những thứ virus mới, dinh liu đến những dữ liệu lộn xộn, va sự tấn
công từ chinh nhân viên trong công ty. Va bảo mật trở thanh một
công việc toan thời gian. Những thứ bạn cần phải hiểu la việc sử
dụng tƣờng lửa, mã hoá va chứng thực – những công nghệ cực kì
phức tạp không danh cho những kẻ nhát gan. Ngay cả những giới
hạn ngăn chặn phức tạp nhất cũng không loại bỏ hết đƣợc mọi sự
tấn công. Hãy nhớ lại về loạt tấn công từ chối dịch vụ quy mô lớn
vao những site nhƣ Yahoo va eTrade vao tháng 2/2000, va vô số
loại virus klez tạo thanh dịch vao năm 2002.
Staffing issues. Do you have the staff to implement an e-business
initiative successfully? E-business is hard work; it is 24 × 7 × 52.
Also keepin mind that new bells and whistles are invented almost
daily. You will need to invest a substantial sum to keep your staff
trained so that they can take advantage of these new technologies.
Vấn đề nhân sự. Bạn có đƣợc đội ngũ nhân viên triển khai thƣơng
mại điện tử thanh công không? Thƣơng mại điện tử la một việc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 231
khó, đó la việc 24x7x52. Cũng nhớ thêm rằng những phát minh
đƣợc tạo ra gần nhƣ hằng ngay. Bạn sẽ cần phải đầu tƣ một số vốn
lớn để giữ cho nhân viên của bạn đƣợc huấn luyện nhằm tận dụng
đƣợc những lợi thế từ những công nghệ mới trên.
System usability. Long gone are the days when you could throw up
a Web site and expect kudos. With a plethora of tool sets such as
Macromedia Flash, Web conferencing, instant chat, etc., the stakes
for a usable Web site have gotten a lot higher — and much more
expensive. Given the size of many Web sites, ergonomics and
navigability issues must be explored. Would GM ever release a
new kind of car without some sort of driver-acceptance testing?
Tính khả dụng của hệ thống. Đã qua rồi cái ngay ma bạn chỉ cần
tung ra một Web-site va ngồi chờ vinh qua. Với đầy những bộ
công cụ dạng nhƣ Macromedia Flash, Hội thảo trực tuyến, tán gẫu,
v.v.., những nguyên tắc về tinh khả dụng của Web đã đƣợc nâng
cao hơn nhiều – va tốn kém hơn nhiều. Lấy một Web-site nao đó,
những vấn đề về tinh dễ sử dụng va định hƣớng tốt cần phải đƣợc
tìm hiểu. Có bao giờ GM (General Motors) lại sản xuất một loại xe
mới ma không qua thử nghiệm về sự chấp nhận của ngƣời mua?
System functionality. It was so much easier just five years ago to
throw up a Web site and have it considered novel. Today all things
novel probably have already been done so you will not be able to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 232
lure new web visitors to your site with the promise of the ―newest
and the greatest‖. Instead you must focus on your site‘s
functionality. For example, a small golf Web site named
swapgolf.com offers a wide variety of functions: a golf shopping
mall, ability to swap golf tee times, a bulletin board, and even golf
puzzles. Notice all the functionality is related to the golf theme.
CNBC.com, on the other hand, is a large site with many more
financial resources than swapgolf so it is no wonder that this site is
loaded with functionality. Note too that CNBC.com offers
themerelated functionality. Because CNBC is a financial news
service, Web site functionality includes financial-related services
such as MoneyTalk, Quote Box, and Markets. Also keep in mind
that a Web siteis a high maintenance project that needs to be fed
constantly.
Chức năng hệ thống. Cách đây chỉ mới 5 năm thôi, việc tung ra
một Web site đơn giản hơn nhiều, còn giờ đây nó chỉ có trong tiểu
thuyết. Ngay nay, mọi thứ trong tiểu thuyết đều đã đƣợc lam rồi,
cho nên bạn sẽ không thể dụ những ngƣời duyệt web mới ghé thăm
Web site của bạn với lời hứa hẹn về những thứ ―mới nhất va tuyệt
nhất‖. Thay vao đó bạn phải chú trọng vao chức năng của site. Vi
dụ, một Web site nhỏ về Golf tên la swapgolf.com cung cấp nhiều
chức năng: gian hang mua sắm golf, khả năng thay đổi điểm phát
bóng, bảng điểm, va ngay cả những câu đố về golf. Chú ý la tất cả
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 233
những chức năng nay đều liên quan đến chủ đề về golf.
CNBC.com, mặt khác, la một site lớn, với nhiều tai nguyên về tai
chinh hơn la swapgolf.com, nên chẳng có gì thắc mắc khi ma nó có
nhiều chức năng hơn. Cũng ghi chú thêm la CNBC.com cung cấp
những chức năng theo chủ đề. Vì CNBC la một dịch vụ tin tức tai
chinh, chức năng của Web site bao gồm cả các dịch vụ liên quan
đến tai chinh nhƣ la MoneyTalk, QuoteBox, va Markets. Nhớ luôn
la một Web site la một dự án cần bảo trì thƣờng xuyên với việc
cung cấp thông tin đều đặn.
System reliability. Perhaps the most irritating problem Web surfers
encounter is sites that have bad links, databases that decline to
work, and general overall system development sloppiness. It is
almost as if many sites were thrown online without any testing
whatsoever. Netslaves is a most intriguing Web site that takes
delight in shooting down what they consider to be myths and
outright lies about all things Internet. Self-professed Netslave
media assassin Steve Gilliard has this to say about the Net myth
that ―things move fast online and we have to stay ahead‖. He
explains, ―It takes time to develop a reliable business.The faster
you move, the more likely you are to screw up. It takes time, years,
to get things right, develop trust in key employees and stabilize.
Moving fast in many cases is an excuse for incompetence‖.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 234
Sự tin cậy của hệ thống. Có lẽ những thứ bực bội nhất ma Web gặp
phải la việc chứa những liên kết xấu, CSDL không chịu hoạt động,
va nói chung la sự lộn xộn trong việc phát triển hệ thống. Gần nhƣ
thể la nhiều sites đƣợc tung lên mạng ma không qua kiểm tra gì cả.
Netslaves la Web site hấp dẫn nhất đem đến sự thich thú bằng việc
loại bỏ những gì họ xem la hoang đƣờng hoặc những lời nói dối
trắng trợn về Internet. Ngƣời tự nhận la kẻ săn tin trên Netslave –
Steve Gilliard – phải nhận xét rằng ―mọi thứ thay đổi rất nhanh
trên môi trƣờng trực tuyến, va chúng tôi phải hƣớng ra phia trƣớc‖.
Anh ta giải thich, ―Phát triển một hệ thống kinh doanh tin cậy cần
thời gian. Bạn đi cang nhanh, bạn cang dễ bị rối. Cần có thời gian,
hang năm trời, để lam cho mọi thứ đi đúng cách, tạo dựng niềm tin
ở những nhân viên chủ chốt va lam ổn định. Phát triển quá nhanh
trong nhiều trƣờng hợp la một lời bao chữa cho sự thiếu trình độ.
System integration. Web-based systems should never operate in a
vacuum. Instead, they should be fully integrated into your current
corporate systems. For example, your marketing and sales systems
need information about who is visiting your site, what they are
looking at, and what they are buying. Only a solid integrative
infrastructure will accomplish this. Real synergy occurs when
internal and external systems are effectively linked together,
creating more efficient ways to market, sell, and process and
deliver orders. This translates to integrating a whole spate of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 235
disparate systems, including inventory, ordering, and invoicing,
along with supply-chain data from business partners — in other
words, the organization‘s ERP (enterprise resource planning)
resource.
Sự tích hợp hệ thống. Một hệ thống dựa trên nền web sẽ không
hoạt động riêng lẻ. Ma chúng sẽ đƣợc tich hợp đầy đủ vao hệ thống
hiện tại của công ty bạn. Vi dụ, bộ phận tiếp thị va bán hang của
công ty cần thông tin về những ai ghé thăm site, họ tìm những gì,
va mua những gì. Chỉ một số it những cơ sở hạ tầng có cấu trúc
thống nhất mới thực hiện đƣợc điều đó. Những vấn đề về phối hợp
công việc aka team-work (synergy) xảy ra khi các hệ thống trong
va ngoai đƣợc liên kết với nhau 1 cách hiệu quả, tạo ra nhiều hơn
các cách thức tiếp thị, bán va vận chuyển hang đến tay ngƣời dùng.
Điều nay diễn giải cho việc tich hợp một khối lƣợng lớn những hệ
thống khác biệt với nhau, bao gồm quản lý kho hang, đặt hang,
xuất hang, đi cùng với một dây chuyền cung cấp dữ liệu từ đối tác
kinh doanh, nói một cách khác, đây la 1 cách tổ chức tai nguyên
theo kiểu ERP.
Meaningful metrics. It really does not pay to spend $5 million to
build an e-commerce system if you will never know how it affects
the bottom line. Will it increase sales by 10 percent or boost
customer retention by 15 percent? Before you ever do the
technology planning for an e-business, you should decide just what
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 236
it is you are hoping to accomplish (i.e., your business strategy plan)
and then develop meaningful metrics to measure your progress.
Những độ đo có nghĩa. Nó thực sự không đáng để chi ra 5 triệu đô
la nhằm xây dựng một hệ thống thƣơng mại điện tử ma bạn không
biết chắc chắn nó sẽ có ảnh hƣởng đến sự phát triển của công ty.
Liệu nó có tăng doanh số bán hang lên 10% hay thu hút 15% lƣợng
khách đã sử dụng dịch vụ của công ty hay không ? Trƣớc khi lên
kế hoạch chi tiết kỹ thuật cho thƣơng mại điện tử, bạn cần phải xác
định mục tiêu bạn muốn đạt đƣợc la gì (nói cách khác, đó la dự
định chiến thuật cho kinh doanh của bạn) va tiếp đó la phát triển
những con số biết nói để đánh giá mức độ hoan thanh của bạn.
Costs. Even if you plan carefully, there will always be those hidden
and unexpected costs for hardware, software, communications, and
even new staff.
Giá cả. dù đã tinh toán chi li, sẽ luôn có những khoản giá mới va
không ngờ tới cho phần cứng, phần mềm, giao dịch, va có khi la cả
đội ngũ nhân viên mới.
6.4.2 Chi phí bao nhiêu?
Back in 1995, Tom Vassos, an instructor at the University of
Toronto, was part of an IBM team that created IBM‘s Web site. It had
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 237
10,000 documents spread across 30 Web servers around the world. Their
requirements included everything from translation into multiple languages,
downloadable documents, demonstration tools, contents of entire IBM
magazines and publications, graphics images, audio clips, and fulfillment
mechanisms for other deliverables such as CD Roms.
Vao năm 1995, Tom Vassos, giảng viên của trƣờng ĐH Toronto,
một thanh viên của đội sáng lập ra website của IBM. Nó gồm 10000 tai liệu
trải dai ở 30 server web khắp thế giới. Yêu cầu lúc bấy giờ của họ gồm mọi
thứ từ dịch đến đa ngôn ngữ, những tai liệu có thể tải đƣợc, những công cụ
thể hiện (demonstration tools), nội dung của tất cả các bai báo, tạp chi va
công bố của IBM, những hình ảnh, đoạn âm thanh, va đầy đủ các phƣơng
tiện cho việc vận chuyển nhƣ CD Roms.
The site cost several million dollars initially, with an IBM
commitment to spending several more to maintain and expand the site.
Trang web tiêu tốn của IBM khoảng vai triệu đô la, va một khoản
không nhỏ cho chi phi bảo trì va mở rộng website.
Some experts estimate that a large site should cost $6 million over
two years, a medium site $2 million, and $500,000 for a small site over two
years. These numbers include many costs for site and product promotion
and content upkeep.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 238
Các chuyên gia ƣớc tinh rằng một trang website lớn có thể tiêu tốn
khoảng 6 triệu đô la cho 2 năm, 2 triệu đô la, va 500 000 đô la tƣơng ứng
với website trung bình, va nhỏ trong vòng 2 năm. Các chi phi nay bao gồm
nhiều khoản cho trang web, các sản phẩm giới thiệu va nội dung cập nhật.
The Gartner Group surveyed 100 leading companies operating e-
commerce sites and found that the average firm had spent three-quarters of
a million dollars on the technology (i.e., hardware/software/peopleware)
alone. Add to that the cost of marketing that site and you may need a budget
as high as amazon.com, which now spends upward of $40 million per
quarter to market itself.
Tập đoan Gartner đã khảo sát 100 công ty tiến hanh thƣơng mại điện
tử hang đầu va nhận thấy gần nhƣ rằng một số lƣợng lớn các công ty đã bỏ
ra ¾ của một triệu đô la (750 ngan) chỉ cho kỹ thuật (nhƣ phần cứng/ phần
mềm/ nhân lực). Ngoai ra còn phải chi tiêu thêm cho tiếp thị, va bạn nên có
ngân quỹ cang cao cang tốt cho việc nay (cơ Amazon.com, chi cho việc tiếp
thị đã lên tới 40 triệu 250 ngan đô la).
6.4.3 Sử dụng nha cung cấp dịch vụ Internet
With the rise of Web-hosting companies, today the organization has
a wide variety of less expensive alternatives. For example, a small business
using a typical ISP such as VeriSign would pay about $376 per month for
monthly service, file storage and data transfer fees, and a shopping cart. An
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 239
even smaller business can get away with a bare-bones site for about $10 per
month at Schogini.com. In neither of these cases does Web design figure
into the equation. That is a separate cost.
Với sự phát triển của internet, ngay nay các tổ chức đã có nhiều hơn
những biện pháp thay thế it tốn kém hơn. Vi dụ, một công ty nhỏ dùng dịch
vụ cung cấp mạng điển hình nhƣ VeriSign chỉ tổn khoảng 376 đô la một
tháng cho tiền dịch vụ hang tháng, phi lƣu trữ dữ liệu, truyền tải dữ liệu va
mua sắm. Thậm chi một công ty nhỏ hơn vẫn có khả năng có một trang web
cơ bản với giá chỉ cơ 10 đô la một tháng tại Schogini.com. Ngoai ra còn
phải tốn khoản chi phi cho việc thiết kế trang web. Đó đƣợc tinh nhƣ một
khoản chi phi riêng biệt.
Web site design costs vary considerably among web design firms.
One company I have worked with charged $2,000 for a 10-page site and
$10,000 for a 25-page site. A high-end site for a mid-sized business I
worked with set the company back around $50,000. This got them about 50
pages and assorted add-ons such as user tracking, image maps, frames,
Shockwave or Quicktime animation, audio, database, shopping cart, SSL
(secure transaction server), creative illustrations, CGI, and database
programming. Hosting charges were separate. For a mid-sized business low
end costs about $100 to $160 a month, mid level $160 to $350 a month and
high end about $350 a month. Add $1,500 a month for a T-1
communications line.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 240
Giá của việc thiết kế trang web dao động khá xa tùy vao sự ổn định
của thiết kế của trang. Một công ty tác giả từng lam việc đƣa ra mức giá la
2000 đô la cho một site gồm 10 trang va 10 000 đô la cho một site gồm 24
trang. Một site cao cấp cho một doanh nghiệp cơ trung ma tác giả từng lam
việc có mức giá 50 000 đô la. Site gồm 50 trang va những phần phụ thêm
(add-ons) nhƣ đánh dấu ngƣời dùng (user tracking), bản đồ hình ảnh (image
maps), khung, Shockwave va QuickTime cho các file ảnh động, âm thanh,
dữ liệu, mua sắm, SSL, sự minh họa sáng tạo, CGI, va lập trình cho cơ sở
dữ liệu. Phi cho host đƣợc tinh riêng. Một công ty cơ trung dùng site yêu
cầu thấp tốn khoảng 100 tới 160 đô la một tháng, yêu cầu trung bình
khoảng 160 tới 350 đô la một tháng va yêu cầu cao cấp khoảng 350 đô la
một tháng. Hoặc 1500 đô la một tháng cho đƣờng dây giao tiếp T-1.
A good place to start doing comparative research is
www.thelist.com, which provides a list of virtually all of the ISPs in the
world and the services and price structures they offer. As mentioned, you
will find wide variation in prices.
Nơi tốt để có thể tra cứu về các nha cung cấp dịch vụ internet la
trang www.thelist.com, nơi cung cấp danh sách nhiều nha cung cáp dịch vụ
internet trên thế giới va dịch vụ cùng giá cả họ đề nghị. Nhƣ đã đề cập, bạn
có thể tìm thấy rất nhiều giá.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 241
6.4.4 Tự xoay sở
The other choice, one that only very large companies seem to take
today, is to roll your own. Rough estimates for a start-up configuration for a
small to mid-sized company are as follows:
Một cách khác ma các công ty rất lớn thƣờng lam, đó la tự xoay sở.
Một dự báo sơ cho việc tự thiết lập cai đặt cho một công ty cơ nhỏ đến
trung cần một số bƣớc sau:
Computer. Keep in mind that the IBM site described previously
had 30 Web servers. Just one of them can cost you between $5,000
and $25,000, which includes only the hardware. This is a one-time
cost though maintenance upgrades will need to be figured into the
equation.
Máy tính:Nên nhớ rằng trang của IBM cần đến 30 máy chủ. Mỗi
máy đã tốn của bạn từ 5000 tới 25000 đô la, đã có chi phi cho phần
cứng. Đây la chi phi cho một lần duy nhất mặc dù việc nâng cấp,
bảo trì vẫn sẽ tốn thêm vao tổng chi phi của bạn.
OS/server software. This can cost anywhere from $0 if you run a
free version of Linux to over $10,000. Usually either UNIX or
Windows/ NT/2000 is used, with Linux quickly gaining ground.
You may also need to buy multiple Web servers. First there is the
Web server that runs the actual Web site. Add an additional Web
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 242
server if you are running an e-commerce server. Add a third server
if you need to run something like RealAudio. Again, this is a one-
time cost requiring maintenance upgrades.
Hệ điều hành/ phần mềm máy chủ: Nó có thể miễn phi nếu bạn xai
phần mềm của Linux hoặc tốn khoảng 10 000 đô la. Dùng UNIX
hay Windows, bạn vẫn phải cần mua nhiều máy chủ web. Đầu tiên
la máy chủ để chạy web site thực sự. Một máy chủ để thực hiện tác
vụ của một máy chủ thƣơng mại điện tử. Va một máy chủ nữa nếu
bạn cần chạy một ứng dụng nhƣ RealAudio. Va tƣơng tự, chi phi
cho một lần, chƣa kể nâng cấp va bảo trì.
Modems. Modem pricing varies, depending upon how many you
need and their capabilities. Modems, in case you did not know, are
used for those people who might need to dial into your system.
This is a onetime cost.
Modem: có nhiều giá, tùy vao bạn cần gì, va tùy vao độ ổn định của
nó. Modem, nếu nhƣ bạn chƣa rõ, dùng để ngƣời khác truy cập vao
hệ thống của bạn. Chi phi cho modem tốn 1 lần.
Connectivity hardware. Hardware or software devices such as
routers and couplers will run you anywhere from $1000 to $5000+.
This is a one-time cost.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 243
Kết nối đường truyền: phần cứng hay phần mềm cho đƣờng truyền
nhƣ router va coupler sẽ tốn của bạn từ 1000 đến 5000 đô la. Chi
phi nay la một lần.
Communications. You cannot simply hook up your PC to a slow
modem and expect to be able to use that as your Web site.
Connecting your PC to the Net will require you to lease a high-
speed telephone line. A T-1 will cost you about $1500 a month. A
T-3, which has a higher speed, will cost you even more.
Phương thức giao tiếp: để kết nối máy tinh với Net tốt hơn, bạn sẽ
phải cần một đƣờng mạng thuê riêng T-1, khoảng 1500 đô la một
tháng, với T-3, chi phi sẽ còn cao hơn.
6.4.5 Giá nhân công
As is true for most labor costs, the price of labor is all across the
board. Staff salaries for technology experts are rather high, with an average
cost of about $60,000 a year for someone with several years of experience.
Tƣơng tự các nganh khác, giá nhân công trong lĩnh vực nay cũng có
nhiều loại. Với những nhân viên la chuyên gia kỹ thuật, giá sẽ tƣơng đối
cao, trung bình khoảng 60 000 đô la một năm với một ngƣời.
Hiring consultants will bring a variety of proposals to your doorstep.
Web page authors charge anywhere from $30 to $150 an hour with the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 244
higher-end price going to those that can build you a database or write you a
custom script using Perl or Java.
Thuê tƣ vấn viên có thể mang lại cho bạn nhiều cơ hội để vƣơn lên.
Các kỹ thuật viên thiết kế web có giá từ 30 đến 150 đô la một giờ hoặc mức
giá cao hơn cho những ngƣời có khả năng xây dựng cơ sở dữ liệu cho bạn
hoặc chuyển yêu cầu của bạn thanh đoạn mã Perl hay Java.
The Gartner Group has estimated that, through 2004, IT contractors
and other outside resources will be used to complete 50 percent of the e-
business work in large enterprises.
Theo số liệu của Gartner, vao năm 2004, các nha thầu IT va các
nguồn lực khác đƣợc sử dụng để hoan thanh 50% lƣợng công việc của
thƣơng mại điện tử trong nganh công nghiệp lớn.
6.4.6 Giá dựa trên những cái ma bạn muốn đặt vao site
Whether you outsource or not, figuring out what your Web site will
cost is a lengthy, complicated process. The first thing to do is to make a list
(see Exhibit 6-1) of exactly what you expect to put on this site, how often
you will update it, and the site‘s expected functionality.
Dù rằng bạn có muốn thuê ngoai hay không, tinh toán chi phi trang
web của bạn sẽ tốn bao nhiều tiền la công đoạn khá dai, va phức tạp. Đầu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 245
tiên la lập danh sách những gì bạn muốn ở trong trang web, bạn sẽ cập nhật
trang web định kỳ bao lâu, va các yêu cầu chức năng bạn muốn ở nó la gì.
Once this list is made, you can send out RFPs (requests for proposal)
to various Web-hosting companies to determine their cost structure to
develop your site. Your IT department should be given a chance to bid as
well.
Khi lập danh sách các yêu cầu xong, bạn có thể gửi nó (còn gọi la
RFPs, các yêu cầu cần thiết) cho các nha cung cấp web-hosting để xác định
mức giá khung khi thiết kế trang web của bạn. Hoặc phòng ban chuyên về
IT sẽ đƣợc cho 1 cơ hội để đƣa giá.
6.5 CÓ NÊN THUÊ NGOÀI KHÔNG?
Moving to an e-business model requires an enormous commitment.
Ask yourself whether you are up to it. Also ask yourself whether your
company is up to it.
Khi quyết định xây dựng hình thức thƣơng mại điện tử sẽ phải đối
mặt với nhiều loại hình phạm tội mới. Hãy tự hỏi mình bạn đã sẵn sang cho
điều đó chƣa. Va hãy tự hỏi công ty của bạn đã sẵn sang cho điều đó chƣa.
There are many good reasons to outsource as Gateway discovered
when it decided to outsource many of its own e-business functions.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 246
Deciding whether or not to outsource is a very individual decision based on
many corporate factors:
Có nhiều lý do để thuê ngoai nhƣ Gateway đã lam khi họ quyết định
thue ngoai khá nhiều các yêu cầu công việc thƣơng mại điện tử của công ty.
Quyết định có thuê ngoai hay không la một quyết định rất chủ quan dựa
trên nhiều yếu tố sau:
Danh mục chủ chốt
Feature
Giá của
công ty
bạn
IT Dept
Price
Giá đối thủ
cạnh tranh
thứ 1
Competitor
1 Price
Giá đối thủ
cạnh tranh
thứ 2.
Competitor
2 Price
Number of pages of text?
Số trang văn bản
a. Provide names and location of
this text.
Cung cấp tên va nơi lƣu trữ văn
bản
Number of images?
Số lƣợng ảnh?
a. Provide name and location of
each image file.
Tên va nơi lƣu trữ các file ảnh
b. Do any of these images need to
be altered?
Có ảnh nào cần chỉnh sửa hay
không?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 247
Danh mục chủ chốt
Feature
Giá của
công ty
bạn
IT Dept
Price
Giá đối thủ
cạnh tranh
thứ 1
Competitor
1 Price
Giá đối thủ
cạnh tranh
thứ 2.
Competitor
2 Price
Number of animations required?
Số lƣợng phim?
a. Provide name and location of
each.
Cung cấp tên va nơi lƣu trữ
b. If new ones must be designed,
provide design information
Có các đoạn phim nào cần thiết
kề mới, cung cấp thông tin thiết
kế
Number of documents you wish to
store on the Web?
Số lƣợng tai liệu cần lƣu trữ trên
Web?
a. PDFfiles (name and location of
each)
PDF file(Tên và vị trí)
b. Doc files (name and location of
each)
Doc file (Tên và vị trí)
c. Powerpoint files (name and
location of each)
Powerpoint (Tên và vị trí)
d. Wave or audio files (name and
location of each)
Wav hoặc audio files (Tên và vị
trí)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 248
Danh mục chủ chốt
Feature
Giá của
công ty
bạn
IT Dept
Price
Giá đối thủ
cạnh tranh
thứ 1
Competitor
1 Price
Giá đối thủ
cạnh tranh
thứ 2.
Competitor
2 Price
e. Avi or other video files (name
and location of each)
Avi file hoặc file video loại
khác (Tên và vị trí)
f. Other files - list
Các loại khác (danh sách)
Will you be using RealAudio or
video?
Bạn sẽ sử dụng RealAudio hay
video
a. Are media file already available
or do they need to be created or
digitalized?
Tập dữ liệu đa truyền thông của
bạn đã sẵng sàn hay cần đƣợc
tạo ra hoặc cần số hoá?
Will you require SSL connectivity?
This is secure server capability so
that people can do things like enter
private information online.
Bạn có yêu cầu kết nói SSL không?
Đây la máy chủ an ninh để ngƣời ta
có thể lam những việc nhƣ truy cập
trực tuyến vao thông tin cá nhân.
a. Do you require encryption?
Bạn có mã hoá thông tin
không?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 249
Danh mục chủ chốt
Feature
Giá của
công ty
bạn
IT Dept
Price
Giá đối thủ
cạnh tranh
thứ 1
Competitor
1 Price
Giá đối thủ
cạnh tranh
thứ 2.
Competitor
2 Price
b. Do you require digital
certificates?
Bạn có cần chứng thực số
không?
c. What level of security do you
need?
Cấp độ an toàn mà bạn cần có
là gì
How many e-mail account do you
need?
Bạn cần bao nhiêu tai khoản email?
a. Will you need e-mail routing?
Bạn cần biết đƣờng đi của
email hay không?
b. Will you need autoresponder?
Email sẽ tự động trả lời hay
không?
Will you need a shopping cart
service for online purchases?
Bạn sẽ cần một dịch vụ giỏ hang để
mua hàng trực tuyến?
a. Do you already have product
information for those products
you wish to sell, including
images and text information?
Provide file name and location
of each
Bạn đã có thông tin về sản
phẩm bán nhƣ hình ảnh, tài
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 250
Danh mục chủ chốt
Feature
Giá của
công ty
bạn
IT Dept
Price
Giá đối thủ
cạnh tranh
thứ 1
Competitor
1 Price
Giá đối thủ
cạnh tranh
thứ 2.
Competitor
2 Price
liệu?cung cấp tên files va địa
điểm.
Will you need a chat room?
Bạn sẽ cần phòng chat?
Will you need a bulletin board?
Bạn sẽ cẩn bản tin vắn tắt ?
Will you need a guestbook?
Bạn sẽ cần sổ góp ý?
Will you need feedback forms?
Bạn sẽ cần các mẫu phản hồi?
Will you need activity reports?
What periodicity?
Bạn sẽ cần bản báo cáo hoạt động?
chu kỳ ?
Will you need banner creation?
Bạn sẽ cần tạo ra biểu ngữ
To which other sites do you wish to
link?
Bạn muốn trang Web nao sẽ liên kết
với bạn
Do you need database lookup?
Bạn có cần tra cứu cơ sở dữ liệu ?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 251
Danh mục chủ chốt
Feature
Giá của
công ty
bạn
IT Dept
Price
Giá đối thủ
cạnh tranh
thứ 1
Competitor
1 Price
Giá đối thủ
cạnh tranh
thứ 2.
Competitor
2 Price
Do you need visistor registration
program?
Ngƣời truy cập đến Web có cấn
đăng ký?
Will yo outsource or do it
internally? If done internally, add
costs for:
Bạn thuê ngoai hay lam trong nội
bộ công ty? Nếu la trong nội bộ
công ty thì chi phí thêm là:
a. Hardware
Phần cứng
b. Servers
Máy chủ
c. Modems
d. Connectivity
Dịch vụ kết nối
e. T1
Will your company require Internet
fax?
Công ty bạn cần Internet fax?
Will the company require virtual
private networks (VPNs)?
Công ty bạn yêu cầu về VPNs?
(giữa các chi nhánh,với đối tác...)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 252
Here are some reasons why outsourcing might be a good idea for
your company.
Một số lý do cho thấy thuê ngoai la ý tƣởng tốt cho công ty của bạn:
Price. Rolling your own is often much more expensive than
outsourcing to a reputable service provider.
Giá cả: Nghiệp vụ hoặc dịch vụ do chinh công ty bạn lam thì sẽ có
chi phi cao hơn nếu sử dụng Outsourcing.
Expertise. Few companies have the level of expertise in-house that
building a sophisticated Web site requires.
Sự chuyên nghiệp:Nha cung cấp thì có đội ngũ nhân viên giỏi, rất
thanh thạo va chuyên nghiệp trong dịch vụ hoặc nghiệp vụ ma họ
cung cấp.
Obsolescence. Hardware and software turn obsolete within six
months and upgrades are often expensive. Outsourcing makes this
someone else‘s problem. For the outsourcer to stay in business, it
must stay at the most current release and use the most sophisticated
equipment. It does this so you do not need to.
Sự lỗi thời: Các nha cung cấp có chuyên gia giỏi trong lĩnh vực của
họ, do đó nắm bắt rất tốt sự phát triển trong dịch vụ. Phần cứng va
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 253
phần mền sẽ trễ nên lạc hậu quá 6 tháng.Việc cập nhật va nâng cấp
sẽ rất đắt. Ma Outsourcing sẽ lam những vấn đề nay.
Security. As mentioned earlier, encryption, virus protection, and all
of the other security paraphernalia such as site backup and disaster
recovery are quite expensive to perform on your own.
An toàn: các vấn đề nhƣ mã hoá, bảo vệ chống virus…Va tất cả
các dịch vụ khác nhƣ make up dữ liệu, phục hồi dữ liệu….sẽ do
các nha cung cấp dịch vụ đảm trách.
Complete solution. If you select a reputable hosting company with
lots of experience you benefit from this experience and its
expertise. It can provide you with everything from hosting to
design to maintenance, all in one place.
Giải pháp trọn gói: Nếu bạn chọn một công ty có uy tin va kinh
nghiệm thì bạn sẽ nhận đƣợc lợi ich từ các sự uy tin va kinh
nghiêm của công ty nay, bảo đảm chất lƣợng dịch vụ va các dịch
vụ kèm theo (nếu có). Đối với nha cung cấp dịch vụ wed thì nha
cung cấp có thể cung cấp cho bạn từ dịch vụ lƣu trữ cho đến thiết
kế web….
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 254
Scalability. It is likely that your site will grow in complexity and
functionality. A Web-hosting company will be able to scale up
without service interruptions.
Khả năng mở rộng: khi công ty của bạn phát triển thì các nghiệp vụ
va dịch đòi hỏi quy mô lớn hơn,các nha cung cấp outsourcing có
thể đáp ứng tốt điều nay. Do đó dịch vụ đó không bị gián đoạn. Vi
dụ: Web site của công ty bạn trở nên phức tạp va nhiều chức năng,
số lƣợng truy cập tăng lên thì nha lƣu trữ Web (Web-hosting) có
thể tăng qui mô web của bạn lên ma không lam các dịch wed của
bạn bị gián đoạn.
Of course, there are disadvantages to outsourcing as well:
Dĩ nhiên thuê ngoai cũng có những bất lợi:
Hidden charges. If you exceed your quotas (i.e., data transfer, disk
space) you will be charged an additional premium.
Chi phí ẩn: Nếu bạn sử dụng vƣợt quá tiêu chuẩn đã qui định trong
hợp đồng (dung lƣơng lƣu trữ…) thì bạn phải trả thêm tiền.
Their rules and not yours. The Web hosting company makes the
rules and not you. You will need to modify your own corporate
policy to accommodate the outsourcer.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 255
Hoạt đông theo nguyên tắc của họ: Các công ty Web-hosting sẽ
đƣa luật hoạt động chứ không phải la bạn. Do đó bạn cần phải chú
ý đến các chinh sách cung cấp dịch vụ của công ty tiến hanh hoạt
động thuê ngoai.
Timeliness. Say the Web hosting company runs an advertising blitz
to get new customers — and it works. Your request for
modifications might need to wait a while.
Phải lên lịch. Ngƣời ta nói các công ty Web-hosting chạy đua
quảng cáo để tìm khách hang mới. Tuy nhiên, những yêu cầu của
bạn sửa đổi Web của công ty của bạn có thể phải đợi.
Mergers and acquisitions. The Net world moves fast and is on an
acquisition binge. What happens if the company you are using is
acquired?
Liên kết kinh doanh và Sáp nhập: Mạng trên thế giới phát triển
nhanh va có những cuộc sáp nhập. Chuyện gì xảy ra nếu công ty
bạn sử dụng dịch vụ thuê ngoai của công ty bị mua lại.
6.6 NHỮNG CÂU HỎI CHO CÁC CÔNG TY OUTSOURCE TIỀM
NĂNG
A company cannot choose a hosting company out of a hat. Ask the
following questions:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 256
Một công ty không thể lựa chọn một công ty đặt máy chủ theo kiểu
bốc thăm may mắt đƣợc. Phải đặt các câu hỏi sau:
What capabilities do you offer and at what prices? Can you provide
us with everything on our list of requirements?
Với những yêu cầu đƣợc đặt ra thì chi la bao nhiêu? Có thể đáp
ứng đƣợc những yêu cầu trong danh sách chúng tôi đƣa ra hay
không?
What is your level of expertise? Demonstrate by showing a
portfolio of Web sites developed at different levels of
sophistication.
Sự chuyên nghiệp của công ty bạn ở mức nao? Hãy chứng minh
bằng cách cho chúng tôi xem danh sách các Web đã đƣợc phát
triển ở các mức độ phức tạp khác nhau.
How long have you been in business?
Bao lâu để sử dụng nó (Web) đƣợc trong kinh doanh.
What are your sales?
Doanh số bán hang của bạn ra sao?
Provide three references.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 257
Cung cấp cho chúng tôi 3 nha thầu khác để tham khảo.
How quickly do you respond to telephone and e-mail customer
service questions?
Trả lời các câu hỏi bằng điện thoại va email của khách hang nhanh
nhƣ thế nao.
What measures do you have in place to secure our data on your
servers?
Thƣớc đo độ an toan của dữ liệu trên máy chủ.
Are you 24x7?
Bạn lam việc 24x7 không ?
What type of disaster recovery services do you provide?
Loại thảm hoạ nao nao cần khôi phục hồi lại dịch vụ ma bạn cần
cung cấp.
How often do you upgrade your hardware and software?
Bao lâu một lần thì bạn nâng cấp phần mền va phần cứng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 258
If some of your staff are using dial-up lines to access your
outsourced servers, can they get online without busy signals? Can
staff members use local phone numbers to dial into the network?
Nếu một vai nhân viên bạn đang sử dụng đƣờng dial-up để truy cập
vao các máy chủ ngoai,thì họ có bị nghẽn mạng khi sử dụng trực
tuyến không? Các nhân viên thanh viên sử dụng số điên thoại địa
phƣơng có thể kết nối đến mạng hay không?
What are the speed and capacity of the hosting company‘s link to
the Internet? (This is called throughput.)
Tốc độ va dung lƣợng của công ty lƣu trữ Web hosting ra Internet.
6.7 NHỮNG MÔ HÌNH THUÊ NGOÀI
Outsourcing does not need to be an all or nothing proposition;
several models are available:
Thuê ngoai không nhất thiết phải la một lời khẳng định tất cả hoặc
không gì cả. Có một vai mô hình nhƣ sau:
In-house. If you are a large company with a significant existing
technology infrastructure with commensurate expertise, this
approach might be the most cost-beneficial to you. Of course, you
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 259
will not know whether this is the right approach unless you cost out
the other alternatives.
In-house: Nếu công ty của bạn la một công ty lớn có cơ sở hạ tầng
công nghệ với chuyên môn cao,thì mô hình nay có lợi về chi phi
nhất cho bạn. Tất nhiên, tất nhiên bạn sẽ không biết đây la mô hình
gần đúng trừ khi bạn phải đánh giá những sự lƣa chọn khác.
Full outsource. Turn over the entire spectrum of development to an
outsourcing company or combination of outsourcing companies
and consulting firms.
Full outsource: nó rất phổ biến,trên toan bộ sự phát của các công
ty Outsourcing, sự kết hơp giữa các công ty Outsourcing va công
ty tƣ vấn.
Partial outsource. Possible alternatives are hosting your own
servers but hiring a consultancy to program them; outsourcing your
server hosting but programming it in-house, and hosting your
servers but purchasing third-party software packages to run on
those servers.
Partial Outsource: Một sƣ lựa chọn khác la máy chủ lƣu trữ của
chinh công ty bạn nhƣng thuê tƣ vấn phần mền bên trong. Thuê
máy máy chủ nhƣng chƣơng trình chạy bên trong do công ty bạn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 6: Xem xét quyết định thuê ngoài 260
lam. Thuê máy chủ nhƣng gói phần mền chạy bên trong thuê bên
thứ ba lam.
6.8 KẾT LUẬN
Whether to outsource or not is a difficult decision and involves the
analysis of many variables. Ultimately the success — and bottom line — of
the organization rests on making the right decision.
Dù có quyết định thuê ngoai hay không thì đây cũng không phải la
một quyết định đơn giản va nó liên quan đến sự cân đo đong đếm kỹ lƣơng
nhiều thanh phần. Hãy dựa vao lợi ich của công ty, va khả năng thuê ngoai
đem lại cho công ty bạn để có quyết định đúng đắn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 261
CHƢƠNG 7 LỰA CHỌN PHƢƠNG PHÁP LUẬN
Người dịch:
1. Lê Quang Thảo
2. Huỳnh Thảo Hạnh
Duy
3. Trịnh Quang Huy
7.1 ĐÁNH GIÁ PHƢƠNG PHÁP LUẬN
7.1.1 Phƣơng pháp luận có xác định những bƣớc cần thiết để phát
triển hệ thống không?
Methodologies are necessarily very ―step‖ oriented. One cannot and
should not proceed to step two without adequately completing step one. A
person using a particular methodology should be provided with a clear
delineation of all steps as well as what initiates and terminates each of these
steps. A good methodology will define answers to the following questions:
Các phƣơng pháp luận cần đƣợc định hƣớng từng bƣớc một. Chúng
ta không thể va không nên đi đến bƣớc hai khi chƣa hoan thanh bƣớc một.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 262
Khi sử dụng một phƣơng pháp luận nhất định, cần đƣợc phát họa rõ rang tất
cả các bƣớc từ đầu đến cuối. Một phƣơng pháp luận tốt sẽ đƣa đƣợc câu trả
lời cho các câu hỏi sau:
What must be done?
How long will it take?
Why is the step done?
How should it be done?
What is produced?
Who will do it?
When should it be done?
Which tools are to be used?
Phải lam những gì
Làm trong bao lâu
Tại sao lại thực hiện bƣớc nay
Sản phẩm la gì
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 263
Ai la ngƣời thực hiện
Khi nào làm
Những công cụ nao sẽ đƣợc dùng
Đánh giá thuộc tinh nay:
7.1.2 Phƣơng pháp luận có đơn giản hóa quá trình phát triển hệ
thống?
Some methodologies are so complicated that they are impossible to
use. If it is not clear to the user of the methodology how to use that
particular methodology, the systems development effort will fail.
Vai phƣơng pháp luận phức tạp đến nỗi không sử dụng đƣợc. Nếu
ngƣời dùng không hiểu rõ đƣợc phƣơng pháp thì những cố gắng sẽ vô ich
Đánh giá thuộc tinh nay:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 264
7.1.3 Phƣơng pháp luận có tạo ra những bƣớc tiến lớn trong phát
triển hệ thống?
The Software Engineering Institute
(http://www.sei.cmu.edu/seihome.html) in Pittsburgh is the creator of the
well-known capability maturity model (CMM). The framework consists of
several levels of maturity that an IT department goes through on its way to
becoming completely optimized and productive:
Viện công nghệ phần mềm tại Pittsburgh la nơi sáng tạo ra mô hình
CMM (Capability Maturity Model). Nó bao gồm nhiều mức độ ma ngƣời
lập trình phải vƣợt qua để đạt hiệu quả cao:
Repeatable. Basic project management processes are established
to track cost, schedule, and functionality.
Defined. Management and engineering activities are documented,
standardized, and integrated into the organization.
Quantitatively managed. This level uses detailed measures.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 265
Optimizing. Continuous process improvement is enabled by
quantitative feedback and from testing innovative ideas and
technologies
Initial
Repeatable: những tiến trình quản lý dự án đƣợc thiết lập thanh
lịch trình, chi phi va những chức năng cụ thể
Defined: các hoạt động đƣợc tai liệu hóa, chuẩn hóa va đƣợc kết
hợp thanh những tổ chức
Quantitatively managed: Mức độ nay sử dụng những tinh toán chi
tiết
Optimizing: Sự phát triển không ngừng dựa trên những phản hồi về
số lƣợng va từ những ý tƣởng mới hay những kĩ thuật khác
Initial. This level is ad hoc and chaotic.
An often quoted statistic is that 80 percent of us are sitting on top of
level one. Use of a methodology implies that the organization is at level
three — defined. A methodology enables the organization to implement a
standardized procedure for the development of systems so that the process
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 266
of developing these systems is standardized and can be repeated easily by
one or more project teams.
Thông thƣờng 80% chúng ta chỉ dừng lại ở mức độ một. Sử dụng
một phuơng pháp ngụ ý rằng tổ chức phải đạt mức độ ba – defined. Một
phƣơng pháp luận sẽ cho phép tổ chức thực hiện thủ tục chuẩn hóa cho sự
phát triển của hệ thống, nhƣ vậy quá trình phát triển những hệ thống nay sẽ
đƣợc chuẩn hóa va lặp lại một cách dễ dang bởi một hoặc nhiều đội dự án
Đánh giá thuộc tinh nay:
7.1.4 Phƣơng pháp luận có thể tùy biến để tƣơng thich bới các yêu
cầu cụ thể của tổ chức hay không?
Every organization is unique in terms of its policies and procedures,
industry, and standards it applies to its practices. It makes sense, therefore,
that any methodology selected needs to be flexible so that it can
accommodate the way the organization works today — as well as the way
the organization will work tomorrow. The very best methodologies are
those that permit the organization full customization capabilities in terms
of:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 267
Mỗi tồ chức duy nhất trong từng giai đoạn của chinh sách va thủ tục,
công nghiệp va những tiêu chuẩn nó áp dụng. Nghĩa la, mỗi phƣơng pháp
luận cần có độ phức tạp nhất định để phù hợp với cách hoạt động của
những tổ chức hiện nay cũng nhƣ sau nay. Phƣơng pháp luận tốt nhất cho
phép tổ chức những khả năng tùy biến với những giới hạn nhƣ:
Can the names of methodology components be changed to those
the organization is more familiar with?
Can the descriptions of methodology components be changed?
Can new components be added and related to existing components?
Can component definitions (designs) be altered, extended, or
deleted?
Can new paths be defined to describe unique uses of the
methodology?
Can the underlying methods and deliverables be changed?
Có thể đổi tên những phƣơng pháp luận thanh phần để quen thuộc
với hệ thống hơn?
Sự diễn tả của những phƣơng pháp luận thanh phần có thể bị thay
đổi?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 268
Những thanh phần mới có thể đƣợc thêm vao va liên quan đến
những thanh phần cũ hay không?
Những định nghĩa (thiết kế) thanh phần có thể bị thay đổi, mở rộng
hoặc loại bỏ?
Những cách thức mới có thể đƣợc sử dụng để miêu tả những công
dụng riêng biệt của phƣơng pháp luận
Những cách thức quan trọng có thể bị thay đổi
Đánh giá thuộc tinh nay:
7.1.5 Phƣơng pháp luận có phải la “trạng thái của nghệ thuật?”
Each month brings new innovations to the IT industry. The Internet
has been with us for less than a decade. Flat file systems have morphed into
relational database systems that have morphed into object-oriented
databases. Because the tools and techniques of developing systems are
continually improving, it makes sense that the methodology chosen needs
to have the capability of interacting with these newer tools and techniques
— in case the methodology becomes as obsolete as the tools it thinks you
are using. Tools that your methodology should support include:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 269
Mỗi tháng lại có nhiều phát kiến mới trong lĩnh vực công nghệ thông
tin. Internet ra đời chƣa đầy một thập kỉ. Hệ thống tập tin chuyển dần sang
hệ thống cơ sở dữ liệu quan hệ, rồi lại chuyển sang sơ cở dữ liệu hƣớng đối
tƣợng.
Bởi vì công cụ va kĩ thuật để phát triển hệ thống vẫn không ngừng
đƣợc cải tiến, cho thấy rằng phƣơng pháp luận đƣợc chọn cần phải có khả
năng tƣơng tác với các công cụ va kĩ thuật mới nay – trong trƣờng hợp
phƣơng pháp luận va công cụ bạn đang dùng trở nên lỗi thời.
Những công cụ ma phƣơng pháp luận của bạn nên hỗ trợ:
Computer-assisted systems engineering (CASE), as well as visual
development tools such as Visual Basic, Visual C++, etc.
Data dictionaries, repositories, and data warehouses
Java and XML
Relational databases and object-oriented databases
Client-server
Cooperative and collaborative processing
Internet and Intranet
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 270
Accelerated and user-centered development such as JAD (joint
application development) and RAD (rapid application
development)
Integration (across business area, system data, and function
sharing)
Kĩ thuật hệ thống hỗ trợ máy tinh (Computer-assisted systems
engineering - CASE), cũng nhƣ các công cụ phát triển nhƣ: Visual
Basic, Visual C++, …
Từ điển dự liệu, kho lƣu trữ dữ liệu.
Java và XML
Cơ sở dữ liệu quan hệ va cơ sở dữ liệu hƣớng đối tƣợng.
Tƣơng tác máy khách-máy chủ
Quy trình cộng tác va hợp tác (cooperative and collaborative
processing)
Inernet và Intranet
Sự phát triển nhanh va tập trung vao ngƣời dùng (user-centered)
nhƣ: JAD (joint application development) and RAD (rapid
application development)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 271
Sự tich hợp (Integration) (khu vực kinh doanh, dữ liệu hệ thống, va
chia sẽ chức năng)
Đánh giá thuộc tinh nay:
7.1.6 Phƣơng pháp luận có hoan thiện không?
Most formal systems development activities are based around several
steps collectively known as the SDLC or systems development life cycle.
The SDLC consists of:
Hầu hết các hoạt động trong quá trình phát triển hệ thống đều dựa
trên các bƣớc của SDLC, bao gồm:
Planning. In this step we uncover the mission and goals of the
project and ascertain the resources required to implement the
system.
Feasibility. This step determines whether or not the project is
economically or technically feasible.
Analysis. In this step the business and technical requirements of
proposed systems are uncovered, modeled, and documented.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 272
Design. During this phase system high-level as well as low-level
architectures are crafted that are traceable back to the business
requirements uncovered in the analysis phase.
Implementation. In this phase programs are coded and tested.
Production. Once the programs have been written and tested, this
phase will oversee the introduction of the system into the business.
Maintenance. No system is ever complete. During the maintenance
phase, modifications are made to the system to fix errors and to
enhance the system per new requirements.
Lập kế hoạch (Planning). Ở bƣớc nay chúng ta sẽ khám phá ra
nhiệm vụ va các mục tiêu của đề án va xác định nguồn tai nguyên
cần thiết để cai đặt hệ thống.
Tinh khả thi (Feasibility). Bƣớc nay quyết định dự án có khả thi về
mặt chi phi hay kĩ thuật không.
Phân tich (Analysis). Ở bƣớc nay, yêu cầu kĩ thuật va yêu cầu
nghiệp vụ của hệ thống đƣợc vạch ra, mô hình hóa va tai liệu hóa.
Thiết kế (Design). Ở bƣớc nay, các kiến trúc cấp cao cũng nhƣ cấp
thấp đƣợc thiết kế sao cho có thể chuyển ngƣợc về yêu cầu nghiệp
vụ đã đề ra ở bƣớc phân tich.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 273
Cai đặt (Implementation). Các chƣơng trình đƣợc code va kiểm tra.
Đƣa ra sản phẩm (Production). Một khi các chƣơng trình đã đƣợc
viết va kiểm tra, bƣớc nay sẽ giám sát việc đƣa hệ thống vao thực
hiện các nghiệp vụ.
Bảo trì (Maintenance). Không có hệ thống nao la hoan thiện. Suốt
quá trình bảo trì, sẽ có những chỉnh sửa đối với hệ thống để sửa lỗi
va nâng cấp hệ thống theo nhƣng yêu cầu mới.
Some methodologies pertain only to the latter phases of the SDLC. A
preferred methodology will encompass the entire range of SDLC activities.
Một vai phƣơng pháp luận chỉ liên quan tới các bƣớc sau của SDLC.
Một phƣơng pháp đƣợc ƣa chuộng phải bao gồm toan bộ các bƣớc của
SDLC.
Hãy đánh giá thuộc tinh nay:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 274
7.1.7 Phƣơng pháp luận có thể bị chia ra thanh các thanh phần nhỏ
không?
Although the methodology should cover all phases of the SDLC, the
preferred methodology will be object oriented in nature. For example, it
should be possible to extract the piece of the methodology relevant to the
feasibility study easily.
Mặc dù phƣơng pháp luận nên bao gồm tất cả các bƣớc trong SDLC,
nhƣng một phƣơng pháp luận đƣợc ƣa chuộng hơn sẽ la hƣớng đối tƣợng
trong tự nhiên. Vi dụ, nó phải cho phép ta rút ra một phần của phƣơng pháp
luận sao cho tƣơng ứng với việc nghiên cứu tinh khả thi một cách dễ dang.
Đánh giá thuộc tinh nay:
7.1.8 Phƣơng pháp luận có thể thich ứng với nhiều lĩnh vực, nganh
nghề?
Organizations across industry boundaries exhibit different attributes.
A preferred methodology is adaptable to all industries, across all
boundaries.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 275
Các tổ chức thuộc nhiều lĩnh vực, nganh nghề khác nhau sẽ đƣa ra
các thuộc tinh khác nhau. Một phƣơng đƣợc ƣa chuộng cần phải thich ứng
với tất cả các lĩnh vực, nganh nghề.
Đánh giá thuộc tinh nay:
7.1.9 Phƣơng pháp luận có sản sinh ra tai liệu ?
A formal process necessitates the creation of deliverables at certain
predesignated milestones. For example, upon completion of the analysis
phase it is typical that a requirements specification be created. The
particular methodology will specify the format and timeliness of the
document.
Một qui trình chinh thức đòi hỏi phải có sự sáng tạo của việc phân
phối tại một thời điểm nao đó của việc thiết kế. Vi dụ sau khi hoan thanh
giai đoạn phân tich.Giai đoạn nay điển hình la 1 đặc tả yêu cầu đƣợc tạo
ra.Các phƣơng pháp cụ thể sẽ quyết định định dạng va nội dung của tai liệu
Đánh giá thuộc tinh nay:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 276
7.1.10 Phƣơng pháp luận có những phƣơng pháp riêng biệt cho mỗi
bƣớc trong từng giai đoạn của SDLC hay không ?
A formal methodology breaks down the systems development
process into phases (e.g., SDLC). Each phase, in turn, has its own unique
steps. A good methodology will supply methods that will instruct the
developer in applying that segment of the methodology to the particular
step in question. For example, a unique step of the analysis phase is to
interview end users. A good methodology will provide instructions on:
Phƣơng pháp luận chinh thức phân chia qui trình phát triển hệ thống
thanh từng giai đoạn.Mỗi giai đoạn lần lƣợt có các bƣớc riêng độc đáo của
nó.
Một phƣơng pháp luận tốt sẽ cung cấp các phƣơng pháp ma nó
hƣớng dẫn các nha phát triển trong việc ứng dụng phƣơng pháp phân đoạn
thanh các bƣớc cụ thể trong câu hỏi.Vi dụ bƣớc duy nhất của giai đoạn
phân tich la phỏng vấn ngƣời dùng cuối. Một phƣơng pháp luận tốt sẽ cung
cấp những hƣớng dẫn sau:
Who performs this task
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 277
How to perform this task
What tools to use to perform this task
What deliverable, if any, is required
Ngƣời nao thực hiện công việc nay.
Lam thế nao để thực hiện công việc nay
Công cụ nao đƣợc sử dụng để thực hiện công việc nay.
Chuyển giao cái gì, nếu có thì rất cần thiết.
Đánh giá thuộc tinh nay:
7.1.11 Liệu các phƣơng pháp luận có cung cấp các phƣơng pháp kĩ
thuật ma mô tả lam cách nao để thực hiện các phƣơng pháp
của nó ?
For a methodology to be usable it must detail the techniques of
performing the tasks outlined within it. For example, for the task ―interview
end users‖ techniques should include:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 278
Một phƣơng pháp luận đƣợc sử dụng thì nó phải chi tiết các phƣơng
pháp kĩ thuật để thực hiện các nhiệm vụ đƣợc vạch ra bên trong nó.Ví
dụ,đối với nhiệm vụ ―phỏng vấn ngƣời dùng cuối‖,các phƣơng pháp kĩ
thuật nên bao gồm:
How to select the end users
What sampling techniques to use
How to devise questionnaires and surveys
How to use a tape or video recorder effectively
Lam thế nao để chọn đƣợc ngƣời dùng cuối
Những cái mẫu kĩ thuật nao đƣợc sử dụng
Làm thế nao để nghĩ ra một bảng câu hỏi va khảo sát
Lam thế nao để sử dụng một băng ghi âm hoặc máy ghi hình có
hiệu quả
Đánh giá thuộc tinh nay:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 279
7.1.12 Các phƣơng pháp luận sẽ kết hợp chặt chẽ các tiêu chuẩn va
ngoai thực tiễn của tổ chức ?
All organizations are different. Each publishes its own set of policies
and procedures (i.e., naming conventions, tool usage guidelines, etc.),
which may or may not be consistent within the industry. A good
methodology enables the organization to maintain its unique set of
standards and practices.
Tất cả những tổ chức đều khác nhau.Mỗi tổ chức đều xuất bản,thiết
lập các chinh sách riêng của mình va các thủ tục (nhƣ đặt tên các hội
nghị,hƣớng dẫn cách sử dụng các tool hỗ trợ,…).Một phƣơng pháp luận tốt
cho phép các tổ chức để duy trì,thiết lập những tiêu chuẩn va thông lệ duy
nhất.
Đánh giá thuộc tinh nay:
7.1.13 Phƣơng pháp luận có xác định đƣợc từng vai trò của những
thanh viên khác nhau trong team của dự án hay không ?
A wide variety of people constitutes a typically project team.
Project manager — manages one or more projects.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 280
Project leader — manages a specific project.
Systems analyst — handles the analytical aspects of the system.
Designer — designs the systems (might be the same person as the
analyst).
Network administrator — is responsible for implementing the
network aspects of the system.
Database administrator — designs the database and file systems.
Web designer — handles the front end of any Internet or Intranet
systems.
An effective methodology links required skills with each method in
order to identify appropriate roles.
Có những vị tri sau đây trong team của dự án:
Project manager:quản lý một hay nhiều dự án.
Project leader: quản lý một dự án xác định nao đó.
Systems analyst: xử lý các khia cạnh, phân tich hệ thống
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 281
Designer: Thiết kế ra hệ thống (có thể công việc giống ngƣời phân
tích)
Network Administrator: Chịu trách nhiệm thi hanh mạng của hệ
thống
Database Administrator: thiết kế ra cơ sở dữ liệu va những file hệ
thống
Web Designer: thiết kế ra hệ thống web cho hệ thống.
Một phƣơng pháp luận hiệu quả la liên kết các kĩ năng cần thiết với
mỗi phƣơng pháp để ma xác định vai trò thich hợp.
Đánh giá thuộc tinh nay:
7.1.14 Liệu đồng nhất phƣơng pháp có cung cấp công cụ phù hợp cho
việc thi hanh từng phƣơng pháp?
A wide variety of tools on the market will automate many of the
tasks delineated in the methodology (i.e., survey generation, program code
generation, model building).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 282
It should be noted that many methodologies were developed by
software vendors for the express purpose of supporting a particular tool set.
In other words, the methodology was developed as a marketing vehicle for
the tool set.
Nhiều loại công cụ khác nhau trong chợ sẽ tự động hóa nhiều tác vụ
đƣợc mô tả trong phƣơng pháp luận. (vi dụ: khảo sát thế hệ, lập trình mã
thế hệ, xây dựng mẫu)
Nên ghi chú rằng nhiều phƣơng pháp luận đƣợc phát triển bằng
ngƣời bán phần mềm cho những mục tiêu rõ rang của việc cung cấp 1 nhóm
công cụ cụ thể. Mặt khác, phƣơng pháp luận đƣợc phát triển nhƣ la phƣơng
tiện tiếp thị cho nhóm công cụ đó.
Đánh giá thuộc tinh:
7.1.15 Phƣơng pháp luận có thể thực hiện đƣợc không?
A formal methodology must have a visible model. This model must
be able to be verified for correctness and completeness and modified as
needs dictate. Only methodologies that are coupled with automated tool sets
are capable of this.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 283
Một phƣơng pháp luận bình thƣờng phải có một mẫu rõ rang. Mẫu
đó phải có thể thực hiện cho việc chỉnh sửa va hoan thanh va hiệu chỉnh khi
mệnh lệnh cần thiết. Chỉ những phƣơng pháp luận đƣợc ghép với nhóm
công cụ tự động thich hợp với nó.
Đánh giá thuộc tinh:
7.1.16 Phƣơng pháp luận có thể đƣợc tìm thấy?
Methodology is the road map to the development of a system. As
discussed, the methodology contains information on how to approach each
phase in the SDLC along with techniques and tools for executing the
methods specified for that particular phase. From the perspective of the
systems developer, the methodology is a knowledge base that instructs him
or her on the ―how-tos‖ as well as the ―why tos‖ and ―when tos‖ of systems
development. It makes sense, therefore, that the system developer be
permitted to search through this methodology knowledge base to retrieve
specific information.
Phƣơng pháp luận la một bảng chỉ đƣờng cho việc phát triển hệ
thống. Nhƣ đã đề cập, phƣơng pháp luận chứa thong tin lam sao tiếp cận
từng mặt trong SDLC theo những kỹ thuật va công cụ cho việc thực thi
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 284
phƣơng pháp đặc biệt cho từng mặt cụ thể. Từ tầm nhìn của ngƣời phát
triển hệ thống, phƣơng pháp luận la nền tảng kiến thức ma hƣớng dẫn ngƣời
phát triển về những câu hỏi nhƣ thế nao hay tại sao va khi nao của việc phát
triển hệ thống. Điều đó tạo nên ý nghĩa ma ngƣời phát triển hệ thống đƣợc
phép tìm kiếm qua các phƣơng pháp luận nền tảng kiến thức để tìm lại đƣợc
thong tin đặc thù.
Because it is a knowledge base, the information contained there
should be navigable from multiple perspectives. The systems developer
should be able to forward chain through the knowledge base from top to
bottom, as well as backward chain upward from the lowest level to the
highest level of abstraction.
Bởi vì đó la kiến thức nền tảng, nên thong tin chứa đựng ở đó nên
điều khiển đƣợc từ những tầm nhìn lien kết khác nhau. Ngƣời phát triển hệ
thống nên có khả năng xúc tiến dây chuyền thong qua nền tảng kiến thức từ
trên xuống dƣới, cũng nhƣ xem xét từ dƣới lên trên từ cấp thấp nhất đến
cấp cao nhất của trừu tƣợng hóa.
The methodology knowledge base should exhibit all of the features
of an end-user-oriented, windows- or browser-based system, including
search, print, save, edit, view, and help.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 285
Nền tảng kiến thức phƣơng pháp luận nên nêu lên tất cả các điểm
đặc trƣng hƣớng tới ngƣời dung cuối, hệ thống dựa trên windows hoặc trình
duyệt, bao gồm tìm kiếm, in ấn, lƣu trữ, hiệu chỉnh, xem xét va giúp đơ.
Đánh giá phƣơng pháp nay:
7.1.17 Phƣơng pháp luận có duy trì giao diện tiêu chuẩn công nghiệp?
Although it is expected that the methodology chosen will be coupled
with one or more automated tools, a very strong possibility is that the
organization will already be using a wide variety of other tool sets that the
methodological tool set should be able to interface with. These interfaces
include:
Mặc dù đƣợc kỳ vọng rằng việc lựa chọn phƣơng pháp luận phù hợp
với 1 hoặc nhiều những công cụ tự động, 1 khả năng rất cao rằng tổ chức sẽ
sẵn sang sử dụng 1 nhóm những công cụ khác nhau ma những nhóm công
cụ theo phƣơng pháp đó nên có khả năng giao tiếp với chúng. Những giao
tiếp bao gồm:
Project management software
CASE and application development tool sets
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 286
Report writers
Desktop publishing and word processing software
Spreadsheets and databases
Phần mềm quản lý dự án
CASE va nhóm công cụ phát triển ứng dụng
Ngƣời viết báo cáo
Phần mềm in ấn va chữ viết
Bảng tinh va cơ sở dữ liệu
Đánh giá phƣơng pháp nay:
7.1.18 Sự đao tạo thich hợp có phù hợp với phƣơng pháp luận
Whether the training is vendor oriented, in-house oriented or
consultant/ training company oriented, it is imperative that staff be fully
trained on use of the methodology, as well as any tool sets, prior to use.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 287
Khi sự đao tạo la hƣớng đến ngƣời quản lý, hƣớng đến 1 nhóm hoặc
1 tổ chức/ đao tạo hƣớng đến công ty, rất cấp bách rằng nhân viên đƣợc
huấn luyện đầy đủ để sử dụng phƣơng pháp luận, nhƣ la bất cứ nhóm công
cụ nao, trƣớc khi sử dụng.
Đánh giá phƣơng pháp nay:
7.1.19 Ngƣời quản lý giải thich rằng bộ công cụ, phƣơng pháp đƣợc
sử dụng trong tổ thức giống nhƣ trong tổ chức của bạn?
Seeing the methodology and tool set, if applicable, in use at a
comparable organization is reassuring and demonstrates the full range of
the methodology‘s capabilities. Additionally, it demonstrates the
capabilities of the vendor in terms of training, implementation, and support.
Nhìn thấy phƣơng pháp luận va nhóm công cụ, nếu thich hợp, đƣợc
sử dụng tại 1 tổ chức so sánh thì lam yên long va chứng minh đầy đủ khả
năng của phƣơng pháp luận. Thêm vao đó, nó chứng minh năng lực.
Đánh giá phƣơng pháp nay:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 7: Lựa chọn phương pháp luận 288
7.2 QUYẾT ĐỊNH MỨC ĐIỂM PHƢƠNG PHÁP LUẬN
Our questionnaire contained 19 questions or attributes. With a top
score of 4 points for each question or attribute, the highest rating a
methodology can receive is 76 points. An adequate rating, a point score of
at least 2 per question, would be 36 points. Obviously, the higher the score
is, the better the methodology.
Bảng khảo sát của chúng tôi bao gồm 19 câu hỏi hay thuộc tinh. Với
điểm cao nhất la 4 cho từng câu hỏi hoặc thuộc tinh, đánh giá cao nhất 1
phƣơng pháp có thể nhận đƣợc 76 điểm. Đánh giá trung bình, đƣợc it nhất 2
điểm 1 câu, sẽ la 36 điểm. Có thể thấy đƣợc, điểm cang cao, phƣơng pháp
cang tốt.
7.3 TÀI LIỆU THAM KHẢO
Holcman, S. (1993). A systems methodology: a rating and evaluation
guide, in Software Engineering Productivity Handbook, Keyes, J., Ed.,
McGraw-Hill, New York.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 289
CHƢƠNG 8 LỰA CHỌN VÀ KẾT HỢP THÔNG
TIN ĐỂ QUẢN LÝ TÀI NGUYÊN HIỆU QUẢ
Người dịch:
1. Trần Thanh Hải
2. Đặng Hoang Hải
3. Lê Văn Chân
4. Lê Anh Khoa
5. Dƣơng Tùng Sơn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 290
8.1 QUẢN LÝ HIỆU QUẢ TÀI NGUYÊN THÔNG TIN
There are many roads to productivity. The one least traveled, but
perhaps most profitable, is the one where software tools are integrated in a
manner producing accessible and timely information.
Có nhiều con đƣờng để tăng năng suất. Con đƣờng ngắn nhất, nhƣng
có lẽ sinh lợi nhiều nhất, la khi các công cụ phần mềm đƣợc tich hợp với
nhau để cung cấp thông tin kịp thời va dễ tiếp cận.
The three keywords here are information, tools, and integration.
Information is really the most important asset a company owns. With
proper utilization, information becomes a potent competitive force. In
today‘s very global — and very competitive — economy, information may,
in fact, be the deciding factor in determining the color of the organization‘s
bottom-line.
Ba vấn đề quan trọng nhất ở đây la thông tin, công cụ, va sự kết hợp.
Thông tin thực sự la tai sản quan trọng nhất của một công ty. Với việc sử
dụng thich hợp, thông tin sẽ trở thanh một công cụ cạnh tranh rất mạnh.
Trong nền kinh tế toan cầu va cạnh tranh gay gắt hiện nay, trên thực tế
thông tin có thể la yếu tố quyết định trong việc xác định đặc trƣng của tổ
chức.
Understanding that information is a resource to be valued,
organizations have made a heavy investment in information technology.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 291
This investment, to the tune of billions of dollars, included development of
new systems as well as purchase of a variety of software tools.
Hiểu rõ điều đó nên các tổ chức đã đầu tƣ mạnh vao công nghệ thông
tin. Sự đầu tƣ hang tỷ đô la nay bao gồm việc phát triển hệ thống mới va
mua một loạt các công cụ phần mềm.
Software tools are decidedly two-flavored. On the one hand are the
end user-oriented tools, which include report writers and 4GLs; on the other
hand are tools that specifically target the development function. These tools
run the gamut from compilers to data administration tools to visual
development tools. Common among all of these tools has been the decided
lack of interconnectivity, or integration.
Các công cụ phần mềm có hai loại rõ rệt. Một mặt la những công cụ
hƣớng đến ngƣời sử dụng cuối, nhƣ ngƣời viết báo cáo va 4GLs; mặt khác
la các công cụ hƣớng đến chức năng phát triển, nhƣ trình biên dịch, các
công cụ quản lý dữ liệu va các công cụ trực quan. Thông thƣờng tất cả
những công cụ nay đều thiếu sự gắn kết.
Lack of integration is a subtle defect with a powerfully negative
impact on the productivity and competitiveness of an organization. It
translates to an inability to manage information in a consistent and
nonredundant fashion. Because software tools have seams, information
cannot flow easily from one tool to anther, forcing organizations to move
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 292
the information manually between tools — or worse, to create redundant
and conflicting information stores.
Thiếu sự gắn kết la một thiếu sót khó thấy va có tác động tiêu cực rất
lớn đối với năng suất va khả năng cạnh tranh của một tổ chức. Nó đƣợc
hiểu la sự thiếu khả năng quản lý thông tin một cách bền vững va tinh gọn.
Thông tin không thể lƣu chuyển dễ dang giữa những công cụ với nhau,
buộc các tổ chức phải di chuyển thông tin theo cách thủ công - hoặc tệ hơn,
tạo ra các kho lƣu trữ thông tin dƣ thừa va xung đột với nhau.
Recognizing the ramifications of these problems, the industry has
begun to move in the direction of development frameworks. The goal of
these frameworks is to provide a boundaryless environment to spur the free
flow of information through the use of standards and guidelines for
development of software tools.
Sau khi nhận ra những vấn đề nay, nganh công nghiệp phần mềm đã
bắt đầu chuyển hƣớng, phát triển các khuôn khổ phát triển (khung phát triển
– development framework). Mục tiêu la cung cấp một môi trƣờng không
ranh giới để thúc đẩy sự lƣu thông tự do của thông tin thông qua việc sử
dụng các tiêu chuẩn va nguyên tắc phát triển của các công cụ phần mềm.
Metadata repositories, the focus of this chapter, have historically
focused on application development and data warehousing. Recently this
mission has been extended to support component middleware frameworks
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 293
and business objects. In the near future, knowledge management and
enterprise information portal environments will be supported as well.
Kho chứa siêu dữ liệu (metadata repository), trọng tâm của chƣơng
nay, trong quá khứ thƣờng đƣợc xem la việc phát triển ứng dụng va lƣu trữ
dữ liệu. Gần đây, nhiệm vụ nay đã đƣợc mở rộng để hỗ trợ các framework
middleware thanh phần va các đối tƣợng kinh doanh. Trong tƣơng lai gần,
quản lý kiến thức va cổng thông tin thƣơng mại cũng sẽ đƣợc hỗ trợ.
A metadata repository, which I will call a repository workbench, has
three functions. It is a repository, it provides tools, and it forms the
―connecting glue‖ of the development framework — in other words,
integration.
Một kho lƣu trữ siêu dữ liệu, ma ở đây gọi la một Repository
Workbench, có ba chức năng. Nó la một kho lƣu trữ, nó cung cấp các công
cụ, va nó tạo keo "kết nối‖- nói cách khác, gắn kết.
A short and standard definition of a repository is ―an organized
reference to the data content of something. That something could be a
system, a database, or a collection of all the files, program databases, and
manual records maintained by a large organization‖. Although the
definition of tools should be self-evident, in this context it is not.
Một định nghĩa ngắn của "kho lƣu trữ‖ la "một sự tham chiếu có tổ
chức đến nội dung dữ liệu của một cái gì đó. Cái gì đó ở đây có thể la một
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 294
hệ thống, một cơ sở dữ liệu, hoặc một tập hợp tất cả các file, chƣơng trình,
va các bản ghi đƣợc duy trì bởi một tổ chức lớn". Mặc dù định nghĩa các
công cụ la hiển nhiên, nhƣng trong bối cảnh nay thì không.
Tools in a repository workbench environment encompass a broad
spectrum of functionality that goes beyond what is commonly available.
The last component of the repository workbench equation is integration;
this component meshes the repository and the repository-based tools into an
organization‘s environment. The net sum of the repository equation is the
ability to better leverage the skill set of a wide range of the organization‘s
staff — from data administrators to programmers to analysts and end users.
This leveraging of skill sets leads to a dramatic increase in productivity.
Công cụ trong Repository Workbench bao gồm một phạm vi rộng
lớn các chức năng đi xa hơn thông thƣờng. Thanh phần cuối cùng của
Repository Workbench la sự gắn kết; thanh phần nay giúp kho lƣu trữ va
các công cụ hoạt động ăn khớp trong môi trƣờng của một tổ chức. Chức
năng quan trọng của Repository Workbench la khả năng tận dụng tốt hơn
các kỹ năng của một loạt các nhân viên của tổ chức - từ nha quản trị dữ liệu
đến lập trình viên, các nha phân tich va ngƣời dùng cuối. Điều nay tận dụng
các bộ kỹ năng, dẫn đến tăng năng suất mạnh mẽ.
The remainder of this chapter assists the reader in three areas:
evaluating the benefits of a repository workbench solution, planning for its
implementation, and measuring it.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 295
Phần còn lại của chƣơng nay giúp ngƣời đọc trong ba lĩnh vực: đánh
giá những lợi ich của một giải pháp Repository Workbench, lập kế hoạch
cho việc cai đặt, va tinh điểm nó.
8.2 CÁCH SỬ DỤNG CHƢƠNG NÀY
In the first section — Evaluating the Repository Workbench — a
quantitative approach is taken to assist the reader in understanding the
features of a repository workbench and comparing these features across
competitive products. Twenty-three distinct criteria are divided into three
categories: repository, integration, and tools; each criterion is presented in
the form of a set of features. To quantify the assessment, each should be
rated in terms of its importance to the organization. A rating, or weight, of 1
to 3 should be used (1 = not important to the organization, 2 = required by
the organization, 3 = of high importance to the organization).
Trong phần đầu tiên - Đánh giá Repository Workbench - một cách
tiếp cận có tinh định hƣớng giúp ngƣời đọc hiểu các tinh năng của một sản
phẩm Repository Workbench va so sánh các tinh năng nay với các sản
phẩm cạnh tranh khác. 23 tiêu chuẩn khác nhau đƣợc chia thanh 3 loại: kho
lƣu trữ, sự kết hợp, va các công cụ; mỗi tiêu chuẩn đƣợc trình bay dƣới
hình thức một tập hợp các tinh năng. Để định lƣợng việc đánh giá, mỗi tinh
năng nên đƣợc đánh giá về tầm quan trọng cho tổ chức. Một thang điểm 1-3
nên đƣợc sử dụng (1 = không quan trọng cho tổ chức, 2 = cần thiết cho tổ
chức, 3 = có tầm quan trọng cao đối với tổ chức).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 296
Each of the features describing the criteria should next be rated
according to how well the vendor fulfills the requirement. A scale of 1
through 5 should be used: (1 = fails, 2 = weak, 3 = adequate, 4 = good, 5 =
excellent).
Mỗi tinh năng mô tả tiêu chuẩn kế tiếp cần đƣợc xếp hạng theo khả
năng đáp ứng các yêu cầu. Một thang điểm từ 1 đến 5 nên đƣợc sử dụng: (1
= thất bại, 2 = yếu, 3 = đầy đủ, 4 = tốt, 5 = xuất sắc).
After you finish rating all 23 criteria, your scores can be transferred
to the charts at the end of this chapter. These charts allow you to add up
repository scores and to make overall evaluations and comparisons.
Sau khi hoan thanh tất cả 23 tiêu chi đánh giá, điểm số sẽ đƣợc đƣa
vao các bảng xếp hạng ở cuối chƣơng nay. Những biểu đồ cho phép chúng
ta cộng thêm điểm va để thực hiện việc đánh giá va so sánh tổng thể.
In the second section — Preparing for the Repository Workbench —
a series of checklists is provided to assist the reader in deciding whether or
not a repository workbench solution is desirable and in developing a plan
for repository workbench implementation.
Trong phần thứ hai - Chuẩn bị Repository Workbench - một loạt các
bảng kiểm mục đƣợc cung cấp để trợ giúp ngƣời đọc trong việc xác định
định liệu giải pháp về kho lƣu trữ đó có đáng lam va phát triển một kế
hoạch cho việc cai đặt.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 297
In the third section — Repository Metrics — a series of
measurements is provided to assist the reader in determining how well the
repository is utilized.
Trong phần thứ ba - Repository Metrics - một loạt các phép đo đƣợc
cung cấp để trợ giúp ngƣời đọc trong việc xác định kho đƣợc sử dụng nhƣ
thế nao.
8.2.1 Đánh giá Repository Workbench
Selecting a repository workbench is not a simple process. Repository
workbench software is quite complex and the selection process mirrors this
complexity. Because a repository workbench offers a composite of
functionality, the evaluation team needs to review three discrete levels of
functionality: the repository component, the workbench component, and the
integrative component. What follows is a set of categories that will assist in
this process; each represents a different level of functionality that a product
of this type should have.
Lựa chọn một kho lƣu trữ không phải la một quá trình đơn giản.
Phần mềm kho lƣu trữ khá phức tạp va quá trình lựa chọn phản ánh sự phức
tạp nay. Bởi vì một kho lƣu trữ cung cấp một hỗn hợp của chức năng,
những ngƣời đánh giá cần xem xét ba cấp độ rời rạc của các chức năng:
thanh phần lƣu trữ, thanh phần công cụ, va các thanh phần kết hợp. Sau đó
tập hợp các hạng mục sẽ hỗ trợ cho quá trình nay; mỗi hạng mục đại diện
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 298
cho một cấp độ chức năng khác nhau ma một sản phẩm của loại hình nay
phải có.
The Repository workbench - Kho lƣu trữ
The repository is the heart of the repository workbench. It is much
more than a data dictionary or a data warehouse. It stores information about
objects — whether those objects are file definitions or process rules. The
sections below itemize the major attributes of a repository. An effective and
robust repository should meet the objects presented in this section:
Kho lƣu trữ la trung tâm của Repository workbench. Nó phức tạp
hơn la một từ điển hay một kho dữ liệu. Nó lƣu trữ thông tin về đối tƣợng -
cho dù những đối tƣợng nay la định nghĩa file hoặc các quy định trong quá
trình. Các phần dƣới đây liệt kê rõ từng thuộc tinh chinh của một kho lƣu
trữ. Một kho lƣu trữ hiệu quả va mạnh mẽ phải đáp ứng các đối tƣợng đƣợc
trình bay trong phần nay:
Initial Data Capture - Nhập dữ liệu ban đầu:
For the most part, objects required to be entered into the repository
already reside in catalogs, files, databases, and CASE encyclopedias, or as
part of a program (i.e., working storage as well as the procedure division).
Scanning enables an organization to populate the repository quickly
through the importation of objects from a pre-existing source. Among the
facilities that a robust repository product provides are:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 299
Hầu hết các đối tƣợng cần đƣợc nhập vao kho lƣu trữ đã nằm trong
các catalog, file, cơ sở dữ liệu, va bách khoa toan thƣ CASE, hay nhƣ một
phần của một chƣơng trình. Chức năng ―Scan‖ cho phép một tổ chức xác
định kich thƣớc kho lƣu trữ một cách nhanh chóng thông qua việc nhập các
đối tƣợng từ những nguồn có trƣớc. Trong số các ich lợi ma một kho lƣu
trữ mạnh mẽ cung cấp có:
Tracking - Theo dõi:
A repository should have the ability to keep detailed information
about objects. The repository defines an object as more than the traditional
data definition; an object may be a field, file, procedure, or system. Because
the repository maintains detailed information about objects, the
organization has an excellent opportunity to track the status of many of the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 300
formal processes that form the underpinnings of IT. A robust repository
should be able to:
Một kho lƣu trữ phải có khả năng lƣu giữ thông tin chi tiết về đối
tƣợng. Kho lƣu trữ định nghĩa ở mức đối tƣợng chứ không phải định nghĩa
dữ liệu truyền thống; một đối tƣợng có thể la một lĩnh vực, file, thủ tục,
hoặc hệ thống. Bởi vì kho lƣu trữ duy trì các thông tin chi tiết về đối tƣợng,
tổ chức có cơ hội tốt để theo dõi tình trạng của nhiều quá trình chinh thức
hình thanh nên nền tảng của công nghệ thông tin. Một kho lƣu trữ mạnh mẽ
có thể:
Source and Use - Nguồn va sử dụng:
All organizations are different in the policies, methods, and
procedures of their IT processes. The repository workbench must integrate
itself as well as act as an integrator of these policies, methods, and
procedures. The repository workbench must be flexible enough to:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 301
Các tổ chức khác nhau về chinh sách, phƣơng pháp, va thủ tục quy
trình công nghệ thông tin. Kho lƣu trữ phải kết hợp các chinh sách, phƣơng
pháp, thủ tục va phải đủ linh hoạt để:
User Access - Sự truy cập của ngƣời dùng:
Studies on productivity have shown that the user interface has the
greatest impact on the usability of the system. For the function of data
administration, a flexible user interface is mandatory if the organization is
to leverage the resources of skilled professionals. The repository workbench
product should offer the following features:
Các nghiên cứu về năng suất đã cho thấy rằng giao diện ngƣời dùng
có tác động lớn nhất về tinh khả dụng của hệ thống. Đối với các chức năng
quản lý dữ liệu, một giao diện ngƣời dùng linh hoạt la bắt buộc, nếu tổ chức
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 302
nay muốn tận dụng nguồn lực các chuyên gia lanh nghề. Kho lƣu trữ phải
cung cấp các tinh năng sau đây:
Dialog - Sự tƣơng tác:
A robust repository dialog should provide a simple, intuitive means
for maintaining and querying information assets, as well as accessing tools.
Features should include:
Một kho lƣu trữ mạnh mẽ phải cung cấp một phƣơng tiện đơn giản,
trực quan để bảo trì va truy vấn thông tin cũng nhƣ các công cụ để truy cập.
Các tinh năng bao gồm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 303
Extensibility - Khả năng mở rộng:
A robust repository workbench is not rigid; it should support growth.
This growth should not be limited merely to data definitions. In an object-
based environment a repository workbench should have the flexibility to
add new sources of information as well as new tools, reports, and
procedures. Each of these is defined as an object. Extensibility features
should include:
Một kho lƣu trữ mạnh mẽ không đƣợc cứng nhắc, nó phải hỗ trợ việc
mở rộng. Sự mở rộng nay không nên giới hạn cho các định nghĩa dữ liệu.
Trong một môi trƣờng đối tƣợng một kho lƣu trữ phải có sự linh hoạt khi
thêm các nguồn thông tin mới cũng nhƣ các công cụ, báo cáo va thủ tục
mới. Tất cả đƣợc định nghĩa la đối tƣợng mới. Khả năng mở rộng bao gồm
các tinh năng:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 304
Project Control - Kiểm soát dự án:
A repository workbench must provide facilities to automate the
enforcement of corporate and project standards and procedures, and to
control distribution of repository resources. Capabilities should include:
Một kho lƣu trữ phải cung cấp tiện ich để tự động áp dụng các tiêu
chuẩn va thủ tục, va để kiểm soát sự phân phối các nguồn tai nguyên. Các
tinh năng:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 305
Versioning:
The repository workbench must provide a comprehen sive set of
facilities for supporting, monitoring, and auditing the evolution of
repository definitions. This feature makes it possible to plan and implement
the maintenance procedures that become necessary as systems mature and
require modifications. A robust repository workbench provides the
following capabilities:
Kho lƣu trữ phải cung cấp các tiện ich toan diện để hỗ trợ, giám sát,
kiểm toán va sự tiến triển của các định nghĩa. Tinh năng nay giúp ta có thể
lên kế hoạch va thực hiện các thủ tục bảo dƣơng trở nên cần thiết khi hệ
thống phát triển va cần chỉnh sửa. Một kho lƣu trữ mạnh mẽ cung cấp các
khả năng sau đây:
Life Cycle Phase Management - Quản lý các giai đoạn của vòng đời
(life cycle):
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 306
Supporting an organization‘s methodologies is an essential role of a
repository. A robust repository workbench provides an organization-
extensible means for defining the various stages of object evolution. These
stages are referred to as life cycle phases. Transition rules define the
movement of an object from one phase to another. Relationships between
entities based upon their respective life cycle phases should be verified to
ensure proper migration results. Managing life cycle phases and object
migration is a vital function within a repository if it is to control and
participate in an organization‘s development and maintenance
methodology. Features should include:
Hỗ trợ các phƣơng pháp của tổ chức la một vai trò thiết yếu của một
kho lƣu trữ. Một kho lƣu trữ mạnh cung cấp một phƣơng thức để xác định
các giai đoạn khác nhau của sự tiến triển của đối tƣợng. Những giai đoạn
nay đƣợc gọi la life cycle phase. Quy tắc chuyển tiếp xác định sự chuyển
động của một đối tƣợng từ một giai đoạn nay đến giai đoạn khác. Mối quan
hệ giữa các thực thể dựa trên những giai đoạn trong life cycle của chúng
cần đƣợc kiểm tra để đảm bảo kết quả thich hợp. Quản lý giai đoạn vòng
đời va sự di chuyển của đối tƣợng la một chức năng quan trọng trong kho
lƣu trữ một nếu nó kiểm soát va tham gia vao sự phát triển va bảo trì của tổ
chức. Tinh năng bao gồm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 307
Integration - Thanh phần tich hợp
Architecture - Kiến trúc:
A repository workbench is a unique hybrid of repository, tools, and
an integrative vehicle. In order to support this threefold functionality, the
underlying architecture of a repository workbench product must provide
openness and an extensible framework. The organization must be able to
easily integrate into and expand upon the framework. The architectural
features of a robust architectural framework include:
Một Repository Workbench la một sự kết hợp độc đáo của kho lƣu
trữ, các công cụ, va phƣơng tiện kết hợp. Để hỗ trợ chức năng gấp ba, các
kiến trúc tiềm ẩn của nó phải cung cấp sự cởi mở va một nền tảng có thể
mở rộng. Tổ chức phải dễ dang tich hợp va mở rộng dựa trên các nền tảng
này. Các tính năng kiến trúc của một nền tảng kiến trúc mạnh mẽ bao gồm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 308
Standards - Tiêu chuẩn:
The basis of any open framework is the standards that it rests on. For
this framework to be fully integrative with an organization‘s environment,
the framework must conform to and support the standards and guidelines
that the industry has embraced. Additionally, the repository workbench
must provide the organization with the ability to support the standards that
it has developed as part of its policies and procedures. This might includes
where applicable:
Cơ sở của nền tảng mở la những tiêu chuẩn ma nó phụ thuộc vao. Để
đƣợc tich hợp đầy đủ vao môi trƣờng của tổ chức, nền tảng phải phù hợp va
hỗ trợ các tiêu chuẩn va nguyên tắc ma đƣợc nganh công nghiệp chấp nhận.
Ngoai ra, Repository Workbench phải cung cấp cho tổ chức khả năng hỗ
trợ những tiêu chuẩn ma nó đã phát triển nhƣ một phần của chinh sách va
thủ tục của nó. Điều nay có thể bao gồm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 309
Gateways - Cổng giao tiếp:
The basis of a repository product is information; however,
information is not confined to a single source. A repository product must
provide the organization with a series of gateways that allow the
organization to export and import information among these information
sources (e.g., application development tools, various databases, and files).
Because the organization is expected to have multiple requirements for
gateways, the most robust repository workbenches will generically define a
gateway bridge that provides a commonalty of approach across diverse
products. Features should include:
Cơ sở của một sản phẩm lƣu trữ la thông tin, tuy nhiên, thông tin la
không hạn chế với một nguồn duy nhất. Một sản phẩm phải cung cấp cho tổ
chức một loạt các cổng cho phép lƣu thông thông tin giữa các nguồn thông
tin (vi dụ, các công cụ phát triển ứng dụng, cơ sở dữ liệu khác nhau, va các
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 310
tập tin). Vì tổ chức có thể có nhiều yêu cầu cho các cổng, các Repository
Workbench mạnh nhất sẽ xác định một giao thức chuẩn cho các sản phẩm
khác nhau. Tinh năng bao gồm:
CASE bridge:
CASE (application development) tools require a very specific
gateway that allows CASE objects to be integrated into the repository with
the goal of permitting CASE users to have a more efficient way of
controlling, securing, reporting, and distributing specifications captured in
their workstations. A robust repository can be thought of as a clearinghouse
between workstations and CASE products. The repository workbench
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 311
should provide management tools that enable the organization to share data
resources. This includes:
Các công cụ phát triển ứng dụng yêu cầu một cửa ngõ rất cụ thể cho
phép các đối tƣợng CASE đƣợc tich hợp vao kho với mục tiêu để ngƣời
dùng CASE có một cách hiệu quả hơn trong việc kiểm soát, bảo vệ, báo
cáo, va phân phối thông tin thu thập đƣợc. Một kho mạnh mẽ có thể đƣợc
dùng nhƣ một clearing-house giữa các máy trạm va các sản phẩm CASE.
Repository Workbench nên cung cấp công cụ quản lý cho phép các tổ chức
để chia sẻ tai nguyên dữ liệu. Điều nay bao gồm:
Services - Dịch vụ:
A product is only as good as the service provided by the product
vendor. Toward this end, the following features should be evaluated:
Một sản phẩm tốt khi có các dịch vụ đi kèm. Các tinh năng đƣợc
đánh giá:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 312
Workbench Integration - Tich hợp các bộ công cụ:
The repository workbench creates a productive environment where
repository information is integrated with an extensible tool set. This
approach offers you the flexibility to incorporate your existing tools as well
as those you may consider in the future. Tool integration capabilities
include:
Repository Workbench tạo ra một môi trƣờng sản xuất nơi ma thông
tin đƣợc tich hợp với một bộ công cụ mở rộng. Cách tiếp cận nay cung cấp
cho bạn sự linh hoạt để kết hợp các công cụ hiện có của bạn cũng nhƣ
những công cụ trong tƣơng lai. Khả năng tich hợp công cụ bao gồm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 313
Tools - Các công cụ
Tool Integration - Tich hợp công cụ:
The ability to integrate tools to the workbench is only one side of the
coin. The other side is to have the facilities to develop in-house tools. A
tool development environment should possess the following capabilities:
Khả năng tich hợp các công cụ vao workbench chỉ la một mặt vấn
đề. Mặt khác la phải có tiện ich để phát triển các công cụ in-house. Một môi
trƣờng phát triển công cụ cần có các khả năng sau đây:
Groupware - Lam việc nhóm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 314
Productivity is greatly enhanced when a facility is provided for
project teams and users to communicate with each other. This is often
referred to as groupware. Within a repository environment, this can be
accomplished through the use of electronic mail. Features available should
include:
Năng suất đƣợc tăng cƣờng rất nhiều khi có các tiện ich giúp các
nhóm lam việc va ngƣời dùng giao tiếp với nhau. Trong một môi trƣờng
kho lƣu trữ, điều nay có thể đƣợc thực hiện thông qua việc sử dụng thƣ điện
tử. Tinh năng sẵn có bao gồm:
Reporting - Báo cáo:
Various levels of the organization require access to the repository for
reporting. On one level, the end users require access to find out the types of
information available within the organization. On another level, data
administration staff has a real need to control the transition of information
within the repository. Both levels of user access need to be supported.
Reporting features include:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 315
Ngƣời dung ở nhiều mức độ khác nhau của tổ chức cần quyền truy
cập vao kho lƣu trữ các báo cáo. Ở một cấp độ, các ngƣời dùng cuối cần
truy cập để tìm thông tin trong tổ chức. Ở cấp độ khác, các nhân viên quản
lý dữ liệu có nhu cầu kiểm soát quá trình chuyển đổi thông tin trong kho.
Cả hai cấp độ của ngƣời sử dụng truy cập cần phải đƣợc hỗ trợ. Báo cáo các
tính năng bao gồm:
Impact Analysis - Phân tich tác động:
In nonrepository systems, a large percentage of nonproductive time
is spent in determining the impact of change. Analysts and programmers
must manually review documentation and program source listings to
evaluate the extent of change necessary as well as the length of time
required to make those changes. This can be a lengthy process. A
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 316
repository-based system automates this process through the function of
impact analysis. Automatic impact analysis deconstructs the repository to
determine the level of change required. The impact analysis function should
include the following capabilities:
Trong các hệ thống không có kho lƣu trữ, một tỷ lệ lớn thời gian vô
ich la danh cho việc xác định tác động của sự thay đổi. Các nha phân tich
va lập trình phải tự xem xét lại danh sách nguồn tai liệu va chƣơng trình để
đánh giá mức độ cần thiết của sự thay đổi cũng nhƣ thời gian cần thiết để
thực hiện những thay đổi đó. Điều nay có thể la một quá trình mất thời gian.
Một hệ thống có kho lƣu trữ tự động hóa quá trình nay thông qua chức năng
phân tich tác động. Phân tich tác động tự động phân tich kho để xác định
mức độ cần thiết của sự thay đổi. Các chức năng phân tich tác động nên bao
gồm các khả năng sau đây:
Scripting:
Database administrative procedures are extraordinarily complex. The
complexity of many of these tasks implies that the staff member involved
must have the highest degree of skill and exercise the utmost level of care.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 317
Organizations that wish to leverage the skill set of the average user,
increase the speed at which a task may be completed, or deploy vast
functionality across differing layers of the organization require the means to
decrease the complexity level of the activity and thereby reduce the risk of
error. A repository-based scripting facility provides this functionality.
Capabilities should include:
Thủ tục cơ sở dữ liệu thƣờng phức tạp. Sự phức tạp của những công
việc nay ngụ ý rằng các nhân viên tham gia phải có kỹ năng rất cao va thực
hiện cẩn thận tối đa. Các tổ chức muốn tận dụng các kỹ năng của ngƣời
dùng bình thƣờng, tăng tốc độ một nhiệm vụ đƣợc hoan thanh, hoặc triển
khai các chức năng rộng lớn trên các lớp khác nhau của tổ chức cần có các
phƣơng tiện để giảm mức độ phức tạp của hoạt động nay va từ đó lam giảm
nguy cơ bị lỗi. Một tiện ich scripting dựa trên kho lƣu trữ cung cấp các
chức năng nay. Các khả năng bao gồm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 318
Forms - Biểu mẫu:
Forms provide the ability to establish external layout definitions that
present a modified view of the objects within the repository without altering
the object itself. Although the definitions of objects in the repository are not
altered, the user view can be modified to afford the greatest expediency in
utilization of the repository without needing to write code. Features should
include:
Các biểu mẫu cung cấp khả năng để thiết lập các biểu diễn bên ngoai
của đối tƣợng trong kho ma không thay đổi đối tƣợng. Mặc dù các định
nghĩa của các đối tƣợng trong kho không bị thay đổi, giao diện ngƣời dùng
có thể đƣợc sửa đổi để đủ khả năng sử dụng kho ma không cần viết code.
Tinh năng bao gồm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 319
Generation - Sự phát sinh:
The repository acts as the central clearinghouse for corporate
information resource management, so it must have the ability to act in
concert with definitions used by application development and end-user
tools. To enhance productivity, consistency, and security, the repository
workbench must have the ability to generate syntax. This includes the
ability to:
Kho lƣu trữ hoạt động nhƣ trung tâm đầu mối cho việc quản lý tai
nguyên thông tin, vì vậy nó phải có khả năng hanh động phối hợp với các
định nghĩa đƣợc sử dụng bởi việc phát triển ứng dụng va các công cụ ngƣời
dùng. Để nâng cao năng suất, nhất quán va bảo mật, Repository Workbench
phải có khả năng tạo ra cú pháp. Điều nay bao gồm khả năng:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 320
Managing Relational Tables - Quản lý các bảng quan hệ:
A repository workbench needs to be more than just a repository.
Facilities to manage the underlying database should be fully integrated into
the tool set. These tools should provide the ability to:
Một Repository Workbench cần phải tốt hơn một cái kho. Tiện ich
quản lý cơ sở dữ liệu nằm bên dƣới nên đƣợc tich hợp hoan toan vao bộ
công cụ. Những công cụ nay nên cung cấp khả năng để:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 321
8.2.2 Chuân bi Repository Workbench
Preparing for any software implementation requires careful planning
and control. In the case of a repository workbench, where information,
systems, and integration factors must be considered, even more care is
urged for a successful implementation. A series of checklists is provided for
this purpose.
Chuân bi cho viêc thi hanh cua bât cƣ phân mêm nao cung đoi
hỏi việc lên điều khiển va kế hoạch cẩn thận . Trong trƣơng hơp cua
Repository Workbench, thông tin, hê thông va nhƣng nhân tô kêt hơp phai
đƣơc xem xet , thâm chi sƣ cân thân la đông lƣc cho viêc thi han h thanh
công. Môt loat cac bang kiêm muc đƣơc cung câp cho muc đich nay.
8.2.2.1 Nhưng hanh đông cần lên kê hoach:
1. Standardize the names, definitions, and physical descriptions of
data elements used in all programs.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 322
2. Document which data is kept in which files or databases or
schemas.
3. Document which reports and screens are produced by which
programs jobs and systems.
4. Document which programs, jobs, and systems access and update
which data elements in which files or databases or schemas.
5. Document which modules and subprograms are included in which
programs.
6. Document processing schedules, file back-up and retention, and
responsibilities for program and jobstream maintenance.
1. Chuân hoa tên , đinh nghia va nhƣng mô ta tƣ nhiên cua nhƣng
phân tƣ dƣ liệu đƣơc sƣ dung trong tât ca cac chƣơng trinh.
2. Lên tai liêu cho nhƣng dƣ liêu đƣơc giƣ trong những tâp tin , cơ sơ
dƣ liêu hay gian đô nao.
3. Lên tai liêu nhƣng ban bao cao va screen đƣơc sinh ra bơi nhƣng
hê thông hay nhƣng công viêc cua chƣơng trinh nao.
4. Lên tai liêu nhƣng hê thông , công viêc, chƣơng trinh nao truy xuât
va cập nhận những phần tử dữ liệu nao , trong những tâp tin hay cơ
sơ dƣ liêu nao.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 323
5. Tai liệu những mô đun va những chƣơng trình con na đƣơc dùng
trong chƣơng trinh nao.
6. Tai liệu những mô đun xử lý, tâp tin sao lƣu va lƣu trƣ,va khả năng
đap ƣng cho viêc bao tri chƣơng trình va jobstream
8.2.2.2 Nhưng câu hoi đăt ra cho viêc đinh cơ nhưng nỗ lưc thu thâp tai
liêu:
1. How many systems are there?
2. What is the quality of system documentation?
3. If documentation is inadequate, can the required data be obtained
4. from the original developers or from users?
5. How many programs are in each system?
6. How good are the run books and program documentation?
7. Have these been kept up to date as changes have been made?
8. Are job control statements kept in a single file or library?
9. Are program source statements kept in a single file or library?
10. Is some type of source library maintenance system in use?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 324
11. Is library content really kept up to date?
12. How many FILEs, DATABASEs, and SCHEMAs are in each
system?
13. How many different record types are there?
14. How many different relational tables are there?
15. Are standard record descriptions used?
16. Are they kept in a central library?
17. Are data element names standardized?
18. Are the names meaningful?
19. Are good definitions available?
20. Is there documentation of coding structures?
21. How well are reports, display screens, and input transactions
documented?
22. Can the data content be obtained from user manuals?
23. If the information above is not readily available, how will it be
obtained? Who will compile it?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 325
24. Who will do the actual work of preparing repository input?
25. How will it be done?
26. Can part of the data be obtained by scanning source programs or
copy libraries?
27. Who will review edit lists and resolve naming discrepancies and
other problems?
1. Sô hê thông la bao nhiêu?
2. Chât lƣơng cua tai liêu hê thông la gi ?
3. Nêu tai liêu không thich hơp , có thể lấy dữ liệu đòi hỏi từ nha phải
triên gôc hay tƣ ngƣơi sƣ dung ?
4. Sô chƣơng trinh trong môi hê thông la bao nhiêu ?
5. Độ tốt của run books va tai liệu chƣơng trình nhƣ thế nao ?
6. Nhƣng cai nay đa đƣơc câp nhât khi co sƣ thay đôi xay ra chƣa ?
7. Nhƣng đê nghi điêu hiên công viêc co đƣơc giƣ trong nhƣng tâp
tin hay thƣ viên chƣa ?
8. Nhƣng đê nghi nguôn chƣơng trinh co đƣơc giƣ trong nhƣng tâp
tin đơn hay thƣ viên hay không ?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 326
9. Môt sô kiêu cua thƣ viên nguôn co đƣơc hê thông bao dƣơng khi
sƣ dung không ?
10. Môt dung cua thƣ viên co thât sƣ đƣơc câp nhât ?
11. Bao nhiêu tâp tinh, cơ sơ dƣ liêu va gian đô trong môi hê thông ?
12. Có bao nhiêu kiểu hồ sơ khác nhau ?
13. Có bao nhiêu bảng quan hệ khác nhau ?
14. Mô ta hô sơ chuân co đƣơc sƣ dung không ?
15. Chúng có đƣợc giữ trong thƣ viện trung tâm không ?
16. Tên cua nhƣng phân tƣ dƣ liêu co đƣơc chuân hoa không ?
17. Tên co mang y nghia không ?
18. Nhƣng đinh nghia tôt co gia tri không ?
19. Đo co phai la tai liêu cua nhƣng câu truc coding không ?
20. Nhƣng bao cao, man hình hiển thi va sƣ giao dich vao co đƣơc lên
tai liệu ?
21. Nôi dung dƣ liêu co đƣơc lây tƣ hƣơng dân sƣ dung không ?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 327
22. Nêu nhƣng thông tin trên không săn sang co hiêu lƣc , ta se lây no
nhƣ thê nao? Ai se dich no ?
23. Ai se lam nhƣng công viêc thât sƣ cua viêc chuân bi đâu vao kho
24. Nó sẽ đƣợc lam nhƣ thế nao ?
25. Môt phân cua dƣ liêu co thê đƣơc lây bơi viêc quet chƣơng trinh
nguôn hay nhƣng thƣ viên copy không ?
26. Ai se xem lai nhƣng danh sach liêt kê va giai quyêt lai nhƣng viêc
đăt tên sai va nhƣng vân đê khac ?
8.2.2.3 Nhưng câu hoi đăt ra liên quan đên vân đê ky thuât va thao tac:
1. Will the repository always be running? System initialization must
be amended to include this.
2. Will reports be produced automatically on some predetermined
schedule? Will they be triggered by specific events, such as the
implementation of a new system? Will they be on a run-on-request
basis? Who will initiate the jobs to produce the reports? How will
they be distributed? How will special requests be handled?
3. How will repository problems be reported and resolved?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 328
4. Will computer operations think of the repository as a production
system?
5. Will procedures for the turnover of new systems or system changes
incorporate steps that will ensure that the repository has been
correctly updated?
1. Liêu kho lƣu trƣ se luôn hoat đông không ? Khơi tao hê thông phai
đƣơc sƣa đôi đê bao ham luôn vân đê nay
2. Liêu nhƣng bao cao se đƣơc sinh ra tƣ đông trên môt lich đa đƣơc
xác định sẵn từ trƣớc ? Liêu chung co đƣơc ki ch hoat bơi cac sƣ
kiên cu thê, chăng han nhƣ sƣ thi hanh cua môt hê thông mơi? Liêu
chúng sẽ chạy khi có yêu cầu ? Ai se khơi tao nhƣng công viêc đê
sinh ra nhƣng ban bao cao ? Họ sẽ phân nhƣ thế nao ? Nhƣng truy
vân đƣơc biêt se đƣơc xƣ ly nhƣ thê nao?
3. Nhƣng vân đê lƣu trƣ se đƣơc bao cao va giai quyêt nhƣ thê nao?
4. Nhƣng thao tac may tinh se xem xet kho lƣu trƣ nhƣ la môt hê
thông san xuât không?
5. Liêu nhƣng thu tuc cho doanh thu hê thông mơi hay nhƣng sƣ thay
đôi hê thông se kêt hơp chăt che nhƣng bƣơc ma chăc chăn kho lƣu
trƣ đa đƣơc câp nhât chinh xac không?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 329
8.2.2.4 Nhưng câu hoi đăt ra về bảo mật
1. Who should be allowed to access what? Can project teams alter
data that they think of as their own?
2. Will passwords be controlled and changed from time to time? Will
they be changed when employees resign or are discharged?
3. Does repository software provide a mechanism to prevent access to
the repository via means other than the repository software?
1. Ai đƣợc phép truy cập cái gì? Liệu nhóm dự án có thể thay đổi
những dữ liệu ma họ cho la của mình không?
2. Mật khẩu có đƣợc kiểm soát va thay đổi liên tục theo thời gian
không? Liệu mật khẩu có thay đổi khi nhân viên từ chức hoặc bị sa
thải?
3. Liệu phần mềm kho lƣu trữ có cung cấp phƣơng thức để ngăn chặn
truy cập vao kho lƣu lữu bằng những cách ngoai cách sử dụng
phần mềm kho lƣu trữ?
8.2.2.5 Nhưng câu hoi đăt ra liên quan đến dữ liệu trùng lắp và không
thống nhất
1. Can you identify all occurrences of the same information?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 330
2. Can you determine which elements are calculated or derived and
how?
3. Will you know the original sources of all elements?
4. Will you know the uses of the elements?
5. Can the repository implementation help to determine whether there
are procedures or programs to ensure consistency?
6. Will the repository implementation provide for validation rules and
criteria?
7. Does it provide for data consistency and integrity rules?
8. What about procedures to ensure that such rules are entered in the
repository?
1. Bạn có thể xác định đƣợc mọi sự tồn tại khác nhau của cùng một
thông tin?
2. Bạn có thể xác định những thanh phần nao thì có thể đƣợc tinh
toán hoặc suy ra? Va bằng cách nao?
3. Liệu bạn có biết đƣợc nguồn gốc của tất cả các thanh phần?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 331
4. Liệu bạn có biết những mục đich sử dụng của tất cả các thanh
phần?
5. Liệu việc cai đặt kho lƣu trữ có giúp xác định những thủ tục hoặc
chƣơng trình đảm bảo tinh thống nhất?
6. Liêu sự cai đặt kho lƣu trƣ se cung câp cho nhƣng quy tăc xac nhân
hay nhƣng tiêu chi?
7. Liêu no co cung câp sƣ nhât quan dƣ liêu va cac quy tăc toan ven?
8. Cái gì của thủ tục đảm bảo những quy định nhƣ vậy đƣợc nhập vao
trong kho?
8.2.2.6 Nhưng câu hoi yêu câu vê đô phưc tap va phu thuôc lân nhau
1. Does the repository help us determine who actually uses the reports
or screens?
2. Does it help identify screens and reports that contain the same
information?
3. Does it help the user identify the tasks and procedures that require
use of the information contained in the reports and screens?
4. Will it help improve documentation?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 332
5. Will it decrease complexity by providing reusability?
1. Kho lƣu trƣ co giup chung ta xac đinh ai thât sƣ dung nhƣng bao
cáo hay screens?
2. Liệu nó giúp nhận ra screen va các báo cáo có chứa các thông tin
nhƣ thế?
3. Liệu nó co giúp ngƣời dùng xác định các nhiệm vụ va các thủ tục
ma đòi hỏi sử dụng các thông tin có trong các báo cáo và screens?
4. Liêu no se giup cai thiên tai liêu không ?
5. Liêu no se giam phƣc tap vơi viêc cung câp kha năng tai sƣ dung?
8.2.3 Repository Metrics
These criteria measure how well a repository or data dictionary
collects, maintains, and retrieves information about data. The objectives of
these measures are to offer users cost-effective means of retrieving relevant
information and reducing information overload. Five criteria are proposed
to evaluate data dictionaries and repositories: relevance, consistency,
common use among information systems, degree of automation, and degree
of security.
Nhƣng tiêu chi nay đo đô tôt cua một kho lƣu trƣ hay tƣ điên dƣ liêu
trong viêc sƣu tâp , duy tri va lây thông tin vê dƣ liêu… Muc đich cua viêc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 333
đo lƣơng nay la mang lai cho ngƣơi sƣ dung nhƣng phƣơng tiên hiêu qua
chi phi của việc lấy ra thông tin liên qua va giảm thông tin dƣ thừa . 5 tiêu
chi đƣợc soạn để đánh giá những từ điển dữ liệu va các kho lƣu trữ đó la: sƣ
xác đáng, tinh nhất quán, sƣ dung phô biên trong nhƣng hê thông thông tin ,
mƣc đô tƣ đông va mƣc đô bao mât.
DBA Objective Metrics: The following criteria measure how well
each commercial repository/repository product fulfills DBA objectives.
Nhƣng tiêu chuân sau đo nhƣng kho lƣu trƣ thƣơng mai thƣc hiên tôt
nhƣng muc tiêu cua DBA
8.2.3.1 Tính liên quan
This criterion measures the effectiveness of retrieving correct
information in response to a request. It is measured by two factors: recall
and precision.
Tiêu chuân nay đo tinh hiêu qua cua viêc lây thông tin chinh xác để
trả về khi có truy vấn. Nó đƣợc đo dựa trên 2 yêu tô: Độ thu hồi va độ chinh
xác
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 334
8.2.3.2 Viêc sư dung phô biên cac IS khac biêt
This criterion measures whether the product can be consistently
applied to standardize IS in different departments and operations within an
IS organization. Current trends toward integrating networks and
information systems to build integrated repository-network management
environments make it important that repositories handle multiple
environments. Deciding which repository to use as the central repository
may depend on its flexibility in handling a variety of software and
hardware. The common use criterion measures this flexibility:
Tiêu chuân nay đo sƣ kha năng mơ rông đê DBA co thê dê dang lƣu
trƣ va chuân hoa cac thao tac va linh vƣc khac biêt bên trong tô chƣc IS .
Các khuynh hƣớng hiện tại hƣớng về phia tich hợp những mạng va hiện
thông thông tin đê xây dƣng nhƣng môi trƣơng quan ly mang lƣu trƣ kêt
hơp. Quyêt đinh kho lƣu trƣ nao đê sƣ dung nhƣ kho lƣu t rƣ trung tâm co
thê phu thuôc vao kha năng linh hoat cua no trong viêc xƣ ly cac loai phân
cƣng va phân mêm. Tiêu chi sƣ dung phô biên đo kha năng linh hoat nay:
8.2.3.3 Độ tự động hóa
An active repository uses substantially less manpower than a passive
one. In response to an inquiry, an active repository can locate the elements
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 335
and find out who has access to them; it then directs the database
management system to obtain those data elements. On the other hand,
passive data dictionaries have no tie-ins to the operating system and require
the user to write programs to gain access to the elements. This criterion
measures the extent to which a product makes it easy for a DBA to
standardize and store elements.
Môt kho lƣu trƣ đang hoa t đông vê cơ ban sƣ dung it hơn 1 kho thu
đông. Đê đap ƣng môt yêu câu , kho đang hoat đông co thê đinh vi nhƣng
nhân tô va tim ra ai đa truy xuât tơi chung ; Sau đo no chi hê quan tri cơ sơ
dƣ liêu đê lây nhƣng phân tƣ dƣ liêu đo . Măt khac, Nhƣng tƣ điên dƣ liêu
thụ động không có tie-ins cho cac hoat đông hê thông va yêu câu ngƣơi
dùng để viết những chƣơng trình nhằm lấy việc truy cập đến những phần tử.
Tiêu chuân nay đo viêc mơ rông ma môt san phâm dê dang đƣơc DBA
chuân hoa va lƣu trƣ cac phân tƣ.
8.2.3.4 Độ bảo mật
Overall security depends on managing the access controls to various
data elements. Access control limits must be defined for each user and
violations acted upon.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 336
Tỉnh bảo mật tổng thể dự vao việc quản lý những điều khiển truy cập
đễ những phần tử dữ liệu khác nhau . Nhƣng giơi han điêu khiên truy câp
phải đƣợc định nghĩa cho mỗi ngƣời sử dụng va việc xử lý vi phạm theo
8.2.3.5 Metrics kho lưu trư
Nhƣng metric sau đo nhƣng thuôc tinh phu thêm cua kho lƣu trƣ:
8.2.3.6 Tính nhất quán
One of the objectives of a repository solution is to act as the single
source for all information flows. To measure how successful the repository
implementation is requires knowledge concerning the number of objects
stored in the repository versus the number of objects stored, simultaneously,
in different sources.
Môt trong nhƣng muc đich cua giai phap kho lƣu trƣ la hoat đông
nhƣ môt nguôn đơn cua tât ca nhƣng dong thông tin . Đê đanh gia Viêc thƣc
hiên kho lƣu trƣ thanh công nhƣ thê nao la môt đoi hoi kiên thƣc liên quan
đến số lƣợng của những đối tƣợng đƣợc lƣu trữ trong kho với số lƣợng
nhƣng đôi tƣợng đƣợc lƣu trữ đồng thời trong những nguồn khác
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 337
8.2.3.7 Truy xuât trực quan
One of the most important, but underrated, features of a repository
workbench is its user interface. The more intuitive the dialog is, the more
the repository workbench will be used. Frequency of use translates into
higher productivity; a low rating implies need for tuning or training.
Môt trong nhƣng tinh năng quan trong nhât cua kho lƣu trƣ nhƣng
đƣơc đanh gia thâp đo la giao diên sƣ dung cua no . Hôp thoai trƣơc quan
cang nhiều thì kho lƣu trữ cang đƣợc sử dụng nhiều . Sƣ thƣơng hay cua
viêc sƣ dung chuyên sang năng suât cao hơn ; môt đanh gia thâp ngu y cân
thiêt cho sƣ chuyên đôi hay đao tao:
8.2.3.8 Mưc đô cua sư phân tich tác động
This metric measures how well the impact analysis function is
utilized.
Metric nay đo chƣc năng phân tich tac đông đƣơc sƣ dung tôt nhƣ
thê nao
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 338
8.2.3.9 Tính kết hợp
This metric determines the progress of the tool integration effort.
Because a repository workbench enables complete tool integration, the level
of integration implies progress — or lack of it.
Metric nay xac đinh qua trinh sƣ đi lên cua nô lƣc kêt hơp công cu .
Bơi vi kho lƣu trƣ cho phep hoan thiêt kêt hơp công cu , mƣc đông cua sƣ
kêt hâp ngâm đinh trong qua trinh- hoăc thiêu no
8.3 CHO ĐIỂM REPOSITORY WORKBENCH
The chart in Exhibit 8.1 provides a means to conduct a quantitative
evaluation of several repository products. To use this chart, simply transfer
the scores from each of the rating scales under the 23 criteria. To transfer
the score, multiply the rating (1 through 5) by the weighting (1 through 3).
Biêu đô ơ hinh 8.1 cung câp phƣơng tiên đê thƣc hiên môt đanh gia
đinh lƣơng của một vai sản phẩm kho lƣu trữ . Đê sƣ dung biêu đô nay , đơi
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 339
giản chuyển điểm từ những tỉ lệ đã đinh giá của 23 tiêu chuân. Đê chuyên
điêm, nhân ti lê (1 -> 5) vơi trọng số (1->3)
8.4 TÀI LIỆU THAM KHẢO
Martin, J. (1989). Information Engineering, Book I: Introduction,
Prentice Hall, Englewood Cliffs, NJ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 8: Lựa chọn, kết hợp thông tin để quản lý tài nguyên hiệu quả 340
Martin, J. (1990). Information Engineering, Book II: Planning and
Analysis, Prentice Hall, Englewood Cliffs, NJ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 341
CHƢƠNG 9 STRUCTURED METHODOLOGY
REVIEW
Người dịch:
1. Nguyễn Tƣờng Minh
2. Nguyễn Quang Anh
3. Nguyễn Minh Hùng
4. Nguyễn Tiến Vũ
5. Nguyễn Bá Huy
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 342
A variety of methodologies is available to the systems analyst. Many
are proprietary methodologies utilized in conjunction with a software
application development tool set (CASE — computer assisted software
engineering).
The original and still frequently used systems development construct
dictates that systems are developed through a series of distinct stages. It is
necessary for each stage to be completed before going to the next. This is a
linear progression of system development, hence the name ―waterfall‖
method. Waterfall design methods are a one-way flow from the require-
ments process toward the working system (Coffee, 2001).Once a stage of
the project is complete, it is sent to the next stage with a ―deliverable‖,
which is evidence or documentation that the stage has been completed and
the project is ready for the next process. There are eight generally accepted
stages of a systems development life cycle tech-nique (see Exhibit 9-1):
Determination of scope and objectives — overall scope of the
project is agreed upon.
Systems investigation and feasibility study — a report on the
feasibility of a technical solution to the problem is prepared.
Systems analysis —a logical model of the existing system is built.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 343
System design — the analyst develops two or three alternative
designs.
Detailed design — detailed physical specifications are made so that
the system can be built.
Implementation — the system is physically created.
Changeover — the old system is replaced by the new system.
Evaluation and maintenance —hardware and software are
maintained.
A real benefit of this approach is the division of a lengthy project
into stages, which makes it more manageable. This is realized throughout
the project in terms of better project control and communication, and during
the working life of the system in terms of its meeting user
requirements and
the ease with which it can be modified to take into account changes
in
these requirements (Curtis, 2000). However, many in the field feel
that the traditional waterfall method is outdated. The problem is that the
waterfall models a one-way flow from requirements. You must be able to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 344
paddle upstream and take a different path if the one you first choose turns
out to be too long — to practice white-water kayaking, rather than just
going over the waterfall and hoping you will like where you land (Coffee,
2001). Today‘s business is fast paced and systems need to be developed as
quickly as possible to meet organiza- tional needs, with early delivery of
the easy portions of an application for on-the-job testing and comments
(Coffee, 1994).Fast-changing requirements and shorter lead times might
require theuse of different methodologies.
Sự đa dạng của phƣơng pháp phát triển phần mềm có giá trị cho việc
phân tich hệ thống. Nhiều tiện dụng của phƣơng pháp luận liên kết với tập
phát triển phần mềm ứng dụng (CASE – computer assisted software
engineering).
Nguồn gốc va sự thƣờng xuyên sử dụng việc xây dựng phát triển
hệ thống buộc hệ thống phải đƣợc phát triển qua các bƣớc khác nhau. Nó
cần thiết cho mỗi bƣớc đƣợc hoan thanh trƣớc khi tiếp tục. Đây la đƣờng
thẳng tiến triển của sự phát triển hệ thống, có tên phƣơng pháp ―thác nƣớc‖
(waterfall). Phƣơng pháp thiết kế thác nƣớc la 1 cách xuất phát từ tiến trình
yêu cầu đến hoạt động hệ thống.
Khi giai đoạn hoan tất dự án, nó đƣợc gửi đến bƣớc tiếp theo với
khả năng phân phối, la bằng chứng hay có tai liệu chứng tỏ rằng giai đoạn
đó đƣợc hoan thanh va dự án sẵn sang cho bƣớc tiếp theo. Có 8 bƣớc thông
thƣờng đƣợc chấp nhận trong vòng kỹ thuật phát triển của hệ thống.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 345
Xác định phạm vi va mục đich: phạm vi tổng quan của dự án đƣợc
duyệt ở trên.
Điều tra hệ thống va nghiên cứu tinh tiện lợi: báo cáo về tinh tiện
dụng của giải pháp kĩ thuật đến các vấn đề dc chuẩn bị trƣớc.
Phân tich hệ thống: mô hình luận lý của hệ thống đang tồn tại đƣợc
xây dựng.
Thiết kế hệ thống: nha phân tich phát triển 2 hay 3 thiết kế khác
nhau.
Chi tiết thiết kế: các chi tiết vật lý ghi rõ đƣợc lam để ma hệ thống
có thể đƣợc xây dựng.
Sự bổ sung: hệ thống đƣợc thiết lập vật lý.
Sự thay đổi: hệ thống cũ đƣợc thay thế bởi hệ thống mới.
Sự đánh giá va bảo trì: phần cứng va phần mềm đƣợc bảo trì.
Lợi ich thực từ việc tiếp cận nay la sự phân chia của dự án lớn thanh
nhiều giai đoạn, giúp tăng khả năng quản lý. Việc nay đƣợc nhận ra trong
việc tăng sự quản lý va liên lạc của dự án, suốt thời gian hoạt động của hệ
thống trong việc gặp yêu cầu của ngƣời dùng có thể bị thay đổi đƣa vao tài
khoản.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 346
Tuy nhiên, nhiều lĩnh vực cảm thấy rằng phƣơng pháp thác nƣớc
truyền thống nay đã lạc hậu. Vấn đề la mô hình thác nƣớc lƣu thông 1 chiều
từ những yêu cầu. Bạn phải có thể đi ngƣợc dòng thác va lấy con đƣờng
khác nếu con đƣờng đầu tiên bạn chọn quá dai. Vấn đề kinh doanh ngay
nay đi từng bƣớc nhanh va hệ thống cần đƣợc phát triển nhanh nhất có thể
để bắt kịp với nhu cầu tổ chức, với sự phân phối sớm của phần dễ của ứng
dụng cho kiểm tra va bình luận.
Sự thay đổi yêu cầu nhanh chóng va thời gian chỉ đạo ngắn hơn có
lẽ yêu cầu phải sử dụng các phƣơng pháp luận khác nhau.
9.1 RAPID APPLICATIONS DEVELOPMENT (RAD):
It is no longer adequate to take two or three years to build a system.
Morethan ever, businesses are in a race against time (Glen, 1993). Directly
opposed to the traditional and lengthy life cycle approach is rapid
applications development, or RAD for short. RAD is a loosely used term
(like many`other design terms) that describes any approach to a fast-
designed system.
RAD has been described as a set of tactics and techniques to
minimize development time — a radical departure from the traditional
waterfall method (Glen, 1993). Essentially, RAD uses time boxing to
control develop-ment time for each phase of the project. If a deadline is in
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 347
danger of being missed, lower-priority requirements are moved back to a
later time box or the next phase of an incremental delivery (Tudhope,
2000). RAD requires management to accept consensus management and
joint application design (JAD). Specialists with advanced technology
(SWAT teams) work closely with the users to define and refine
applications.
SWAT (also referred to by Glen as ―slaves without any time‖) is an
effec-tive tactic in many RAD projects in that small, multidisciplined IT
teams work with users directly. This fosters team building. SWAT members
are not confined to separate floors or buildings. This approach is different
than assembling many systems specialists with inch-wide and mile-deep
knowl-edge in specific areas to build applications in IT ghettos (Glen,
1993).
RAD has four phases, as shown in Exhibit 9-2 (Curtis et al., 2000):
1. Requirements planning — joint requirements planning (JRP),
estab-lishes high-level objectives
2. Applications development — JAD follows JRP, involves users in
work-shops
3. Systems construction — design specifications, used to develop
detailed and generate code
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 348
4. Cutover — users trained and the system tested
According to Tudhope (2000), the majority of developers who are
aware of RAD tend to select elements of the methodology rather than
following it strictly. Others use generally similar techniques without
identifying them as RAD.
Proponents of the RAD design methodology say that business needs
can change substantially during long development times, and meeting
current needs when the system comes into operation is a better aim than
meeting a ―long-frozen‖ specification (Tadhope, 2000). However, others
say you should never let developers write a line of code until the
specifications are approved by all parties. Prudent managers might therefore
follow the ―waterfall‖ model, in which requirements are completed and
flow down-stream to design (Coffee, 1994).
A variation of the RAD technique dictates that design technique is to
be deliberate in the systems foundation, but one should design some parts
ahead of time. The foundation is the data model, which should be designed
in partnership with the business side of the organization. A logical data or
object design process allows definition of how business is currently
conducted and plans for future changes. RAD is used for screens, reports,
business rules, and communications, but only after the database or object
model is in place. Involving users in the process that takes the longest
makes development time less of an issue; end users see the prototype in
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 349
days or hours once the foundation is laid (Boyer, 1995). Boyer
recommends that we build the walls of the application and roof as quickly
as possible, but to make sure the foundation is in place first.
Sẽ la không đủ nếu mất 2 hoặc 3 năm để xây dựng một hệ thống.
Hơn bao giờ hết, kinh doanh la một cuộc đua chống lại thời gian (Glen,
1993). Đối lập trực tiếp với cách tiếp cận truyền thống va dai hạn ―vòng
sống‖ (life cycle) la phát triển nhanh ứng dụng (RAD), đây la một thuật ngữ
sử dụng cho cho bất kì cách tiếp cận nao đến một hệ thống thiết kế nhanh.
RAD đƣợc mô tả nhƣ la một hệ thống các chiến thuật va kĩ thuật để giảm
thiểu tối đa thời gian phát triển sản phẩm – la một khác biệt cơ bản so với
mô hình thác nƣớc (Glen, 1993). Về cơ bản, RAD sử dụng hộp thời gian để
điều khiển thời gian phát triển triển cho mỗi giai đoạn của dự án. Nếu hạn
chót của một giai đoạn nao đó sắp sửa đến thì những yêu cầu với độ ƣu tiên
thấp hơn sẽ đƣợc dời đến hộp sau – thời điểm sau hoặc giai đoạn tiếp theo
của quá trình phân phối (Tudhope, 2000). RAD yêu cầu những ngƣời quản
lý phải tán thanh với việc đồng lòng trong quản lý va kế hoạch lam việc
cùng nhau (join application design – JAD). Đặc biệt với những công nghệ
mới, lam việc gần với ngƣời dùng (users) để xác định rõ va cải tiến ứng
dụng.
SWAT (slaves without any time) la một chiến thuật hiệu quả trong
nhiều dự án sử dụng cách tiếp cận RAD ma trong đó những nhóm IT nhỏ
lam việc trực tiếp với ngƣời dùng. Điều nay khuyến khich việc xây dựng
nhóm. Những thanh viên SWAT không lam việc cố định trong mỗi tòa nha
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 350
hay mỗi tầng riêng biệt. Cách tiếp cận nay khác với tập hợp nhiều chuyên
gia hệ thống với nhừng kiến thức rộng va sâu trong một lĩnh vực nao đó để
xây dựng những ứng dụng trong công nghệ thông tin.
RAD có 4 giai đoạn (hình 9-2):
1. Lập kế hoạch cho những yêu cầu: tham gia lập kế hoạch cho những
yêu cầu (JRP – joint requirements planning), thiết lập những đối
tƣợng cấp cao.
2. Phát triển ứng dụng: quá trình lam việc cùng nhau, liên quan đến
ngƣời dùng trong những cuộc hội thảo.
3. Xây dựng hệ thống: xác định thiết kế, đƣợc sử dụng để phát triển
mã chi tiết va tổng quát.
4. Huấn luyện ngƣời dùng va kiểm thử hệ thống.
Theo Tudhope (2000), phần lớn những ngƣời có kiến thức về RAD
có xu hƣớng lựa chọn những nhân tố của phƣơng pháp hơn la tuân thủ theo
nó một cách nghiêm ngặt. Số khác sử dụng những kĩ thuật chung tƣơng tự
ma không ý thức rằng chúng la RAD.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 351
Những ngƣời đề xuất tập các phƣơng pháp thiết kế RAD chỉ ra
rằng những yêu cầu thƣơng mại có thể thay đổi về căn bản trong thời đại
phát triển lâu dai, va xây dựng một hệ thống linh động thì tốt hơn la lập kế
hoạch‘cứng‘ để xây dựng hệ thống với những yêu cầu xác định sẵn. Tuy
nhiên, số khác lại cho rằng không nên để cho những ngƣời phát triển phần
mềm viết một dòng code nao cho đến khi đạt đƣợc sự nhất tri toan đội khi
xác định yêu cầu. Những ngƣời quản lý có kế hoạch do đó cũng có thể theo
mô hình thác nƣớc, trong đó những yêu cầu đƣợc hoan thanh trƣớc va sau
đó cứ tiếp tục theo luồng (thác nƣớc) để thiết kế các giai đoạn tiếp theo.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 352
Một mức độ biến đổi của kĩ thuật RAD nói rằng thiết kế kĩ thuật
phải đƣợc tiến hanh thận trọng trong những hệ thống nền tảng, nhƣng nên
thiết kế một vai phần trƣớc. Nền tảng la mô hình dữ liệu, cái ma nên đƣợc
thiết kế với sự cộng tác của các bộ phận khác trong tổ chức. Một dữ liệu
logic hoặc đối tƣợng của quá trình thiết kế cho phép định nghĩa cách ma
những nhiệm vụ hiện tại đƣợc thiết kế va lập kế hoạch cho những thay đổi
trong tƣơng lai. RDA đƣợc sử dụng cho hiển thị, báo cáo, những nguyên tắc
kinh doanh va giao tiếp, nhƣng chỉ sau khi cơ sở dữ liệu hay mô hình đối
tƣợng sẵn sang. Những quá trình liên quan đến ngƣời dùng phải đƣợc tập
trung nhiều thời gian nhất để giảm thiểu những vấn đề phát sinh về sau;
ngƣời dùng cuối phải xem xét nguyên mẫu một cách kĩ lƣơng một khi
những nền tảng đƣợc đặt vao (Boyer, 1995). Boyer khuyến cáo rằng chúng
ta nên đặt những nền móng vững chắc trƣớc, rồi xây dựng những bức tƣờng
va mái nhanh nhất có thể.
JOINT APPLICATION DESIGN (JAD)
In joint application design, analysts work with groups during the
devel-opment of the system; they integrate groups of technical and business
experts (Exhibit 9-3). These groups may include programmers, designers,
and project managers, as well as user reps, department management people,
and the controller or CIO. These JAD sessions are usually run by a trained
facilitator.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 353
The JAD process has four stages: framework presentation, project
scop-ing, preliminary definitions development, and detailed requirements
devel-opment (Dodson, 1994).
In the framework presentation stage the facilitator sets the tone for
the project, explaining the JAD approach. Usually this stage involves a core
team of business experts and will last between one half to a full day. Project
scoping involves the same group of people identifying project priorities
across department lines. This should take a total of 6 to 12 hours. The pre-
liminary definitions stage produces the context diagram; the entire core
team participates in this phase. The context diagram shows the system‘s
place in the flow of the organization‘s information, which should take about
one day. The detailed requirements stage should take five to ten days in
session; however, the detailed requirements can take weeks to develop.
Attending all of these sessions is the ―scribe‖ responsible for
document-ing all the information gathered during each meeting and
providing it to theteam as needed. This relieves other participants from
taking notes, which diverts their attention from the matters at hand.
Trong thiết kế ứng dụng chung, ngƣời phân tich lam việc với
nhóm trong suốt quá trình xây dựng của hệ thống. Họ kết hợp những nhóm
của kỹ thuật va kinh doanh. Những nhóm nay có thể bao gồm: lập trình
viên, ngƣời thiết kế, quản lý dự án cũng nhƣ ngƣời dùng thử sản phẩm, ban
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 354
quản lý nhân sự, va ngƣời kiểm soát hoăc CIO. Phần JAD nay thƣờng đƣợc
tiến hanh bởi một ngƣời tổ chức.
Quá trình JAD có 4 giai đoạn: đƣa ra khung, xem xét dự án, xác
định sơ bộ quá trình tiến hanh, va chi tiết yêu cầu phát triển
Trong giai đoạn khung đƣa ra, ngƣời tổ chức đặt một tiếng cho dự
án, giải thich JAD cần đạt, Thƣờng thì đây la giai đoạn dinh liu tới một
nhóm nồng cốt thông thạo kinh doanh,va sẽ mất giữa nữa ngay hay cả ngay.
Xem xét dự án sẽ liên quan đến một nhóm ngƣời xác định ƣu tiên của dự án
trong cùng những lĩnh vực. Điều nay mất tổng cộng khoảng từ 6 tới 12
giờ.Giai đoạn xác định sơ bộ tạo ra một biểu đồ khung cảnh, toan bộ nhóm
nòng cốt đều tham gia giai đoạn nay. Cái biểu đồ khung cảnh cho thấy vị tri
của hệ thống tuân theo sự tổ chức của thông tin,việc nay mất khoảng 1
ngày.Giai đoạn chi tiết yêu cầu mất khoảng 5 tới mƣời ngay trong phần
này.Tuy nhiên giai đoạn chi tiết yêu cầu có thể mất nhiều tuần để có thể
hoàn thành.
Sự có mặt của tất cả các phần nhƣ la một bản sao chép cho một văn
bản ma tất cả thông tin đều hội tụ lại trong mỗi cuộc họp va cung cấp nó tới
một nhóm đang cần.Điều nay lam an tâm những ngƣời khác tham gia từ
những ghi chú,điều nay chuyển hƣớng sự chú ý từ những vấn đề cần chú ý.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 355
9.2 CASE TOOL
The broadest definition of a CASE tool is any software tool that
provides automated assistance for software development, maintenance, or
project management activities (McMurtrey et al., 2000). CASE tools are not
end-user oriented; they are used by professionals for carrying out part of the
design and helping to speed the development process. They have been
trumpeted as the ―silver bullet‖ of applications development but have not
necessarily lived up to that name because they are not a ―fix-all‖ solution to
systems design. However, they are a feasible option for practitioners of
systems development.
Case tools assist in (Curtis et al., 2000):
Corporate planning of info systems — used to track relationships
between various components.
Creating specification requirements — information system is
analyzed into its data requirements.
Creating design specifications —tools are used to specify a design
for the system.
Code-generation tools — accept output of the design specification
and produce code for direct execution.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 356
Information repository — stores information on entities,
processes,data structures, business rules, source code, and project
management.
Development methodology — provides automated diagramming
facilities for data-flow diagrams.
The many benefits of CASE include increased productivity,
restructuring of poorly written code, decrease of application development
time, and aid in project management. However, with benefits there are
usually drawbacks, and CASE is no exception. Some of the drawbacks are a
reliance on structured methodologies, a lengthy learning curve, possible
user resistance, limited functions, and a required working knowledge of the
underly ing methodology.
Định nghĩa rộng nhất của CASE TOOL: Case Tool la bất ký một
công cụ phần mềm nao hỗ trợ sự giúp đơ tự động cho việc phát triển phầm
mềm, sự duy trì ổn định, hay bất kỳ họat động quản lý phần mềm nao
(McMurtrey et al.2000). Case tool không phải công cụ phần mềm hỗ trợ
ngƣời dùng cuối (end-user oriented) ma nó đƣợc sử dụng bởi những ngƣời
chuyên nghiệp để tiến hanh những phần của thiết kế va giúp tăng tốc độ quá
trình phát triển.
Nó đƣợc gọi la ―viên đạn bạc‖ (silver bullet) của sự phát triển ứng
dụng nhƣng thật sự ta không cần thiết đặt ra cách gọi nay bời vì nó không
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 357
đƣa ra cách giải quyết cho tất cả vấn đề trong thiết kế hệ thống. Tuy nhiên,
nó la lựa chọn feasible cho những ngƣời bắt đầu lam công việc phát triển hệ
thống.
CASE tool hỗ trợ trong việc:
Corporate planning of info systems – đƣợc sử dụng để tìm ra mối
quan hệ giữa các thanh phần khác nhau.
Tạo ra những yêu cầu cụ thể - hệ thống thông tin đƣợc phân tich
thanh những yêu cầu dữ liệu.
Tạo ra những thiết kế cụ thể (design specificaiton) – công cụ đƣợc
sử dụng để thiết kế giao diện cho hệ thống
Code –generation tool – chấp nhận output của thiết kế cụ thể va tạo
ra code cho việc thực thi trực tiếp.
Kho lƣu trữ thông tin – lƣu trữ thông tin dạng thực thể, tiến trình,
cấu trúc dữ liệu, luật kinh doanh (business rule), mã nguồn, va
quản lý dự án.
Phƣơng thức phát triển – cung cấp thiết bị đồ họa tự động cho data-
flow diagram.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 358
Những tiện ich của CASE tool nhƣ tăng chất lƣợng sản phẩm, cấu
trúc lại những đọan mã tồi, giảm thời gian phát triển dự án, va giúp đơ
trong việc quản lý dự án. Tuy nhiên, với những tiện ich nhƣ vậy vẫn tồn tại
những sự bất lợi. Một số sự bất lợi nhƣ la quá dựa vao phƣơng thức đƣợc
cấu trúc, chức năng bị hạn chế, yêu cầu kiến thức về phƣơng thức.
9.3 VARIETY OF STRUCTURED METHODOLOGIES
As mentioned, a wide variety of systems development methodologies
can be chosen from, some accompanied by CASE tools and some without
them. Most are based on the methodologies discussed previously. A list of
eferences to some of the most common structured methodologies follows:
1. Yourdon, E.E. and Constantine L.L. (1977). Structured Design:
Funda-mentals of a Discipline of Computer Program and System
Design, Your-don Press
2. DeMarco, T. (1979). Structured Analysis and Systems
Specification, Prentice Hall, Englewood Cliffs, NJ.
3. Gane, G. and Sarson, T. (1979). Structured Systems Analysis,
Prentice Hall, Englewood Cliffs, NJ.
4. Jackson, M. (1975). Principles of Program Design, Academic
Press, New York.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 359
5. Jackson, M. (1983). System Development, Prentice Hall,
Englewood Cliffs, NJ.
6. Martin, J. (1988). Information Engineering: Book 1 Introduction,
Book2 Planning and Analysis, Book 3 Design and Construction,
Prentice Hall, Englewood Cliffs, NJ.
James Martin worked with Clive Finkelstein in designing
information engineering. Interestingly, two models were actually derived
from this exercise. Martin‘s model is IT-driven while Finkelstein‘s model is
enter-prise, or business, driven. I find Finkelstein‘s the more useful of the
two and have included a brief summary here.
Nhƣ đã đƣợc nhắc đến, nhiều phƣơng thức phát triển hệ thống có thể
đƣợc lựa chọn từ những Case Tool đi kèm hoặc không. Hấu hết đều dựa
trên những phƣơng thức đã đƣợc ban đến ở trên.Sau đây la những phƣơng
thức thông dụng nhất:
Yourdon, E.E. and Constantine L.L. (1977). Structured Design:
Funda-mentals of a iscipline of Computer Program and System
Design, Yourdon Press
DeMarco, T. (1979). Structured Analysis and Systems
Specification, Prentice Hall, Englewood Cliffs, NJ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 360
Gane, G. and Sarson, T. (1979). Structured Systems Analysis,
Prentice Hall, Englewood Cliffs, NJ.
Jackson, M. (1975). Principles of Program Design, Academic
Press, New York.
Jackson, M. (1983). System Development, Prentice Hall,
Englewood Cliffs, NJ.
Martin, J. (1988). Information Engineering: Book 1 Introduction,
Book 2 Planning and Analysis, Book 3 Design and Construction,
Prentice Hall, Englewood Cliffs, NJ.
James Martin đã lam việc với Clive Finkelstein về công nghệ thiết kế
thông tin (designing information engineering). Cả hai mô hình đều đƣợc bắt
nguồn từ bai tập nay.Mô hình của Martin la IT-driven trong khi mô hình
của Finkelstein la enterprise, hoặc la bussiness, driven. Tôi thấy la mô hình
của Finkelstein hữu ich hơn nên đã tóm lƣợc vai dòng về nó sau đây.
9.4 FINKELSTEIN INFORMATION ENGINEERING
Clive Finkelstein‘s (1989) version of information engineering starts
with a business strategic planning exercise to identify important
information systems required by the business. Then it develops chosen
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 361
priority systems through successively detailed analysis and design, through
to imple-mentation.
Strategic planning consists of the following stages:
Stage 1. Identifying the current plan. Use any existing strategic or tac-
tical statements that may exist or a management questionnaire to gather
information about business strategy
Stage 2. Evaluation of current status consists of eight steps:
1. Analyze mission and purpose to identify major data subjects that
are represented in a high level mission model
2. Identify potential goals (critical success factors)
3. Define goals
4. Identify issues
5. Define strategies to deal with each issue
6. Identify current functions (e.g., personnel, finance, etc.)
7. Allocate strategies to functions
8. Define functional responsibility (a detailed functional specification
for each functional manager)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 362
Stage 3: Setting strategic direction consists of three steps:(1, 2) internal,
and external appraisal: analysis of business, and business envi-ronment
(3) strategic evaluation: create the strategic agenda; devise proactive
strategic options and select; define strategic statement: formal
documentation of strategic decisions, rational, assumptions,
conclusions and alternatives.
Once we complete the strategic plan we can proceed to the
development of more detailed data models and process models. These are
built up in three successive levels:
Strategic modeling: a high-level schematic data model, of interest to
senior managers. Steps involve:
1. Identifying data subjects
2. Identifying data entities from mission
3. Identifying preliminary functions
4. Identifying data entities from strategies
5. Identifying potential functions
6. Identifying strategic attributes
7. Defining purpose descriptions
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 363
Tactical modeling: the strategic model is refined into areas of more
detail to describe data of more interest to middle managers. Typically
approximately 20 of these tactical areas exist for any one strategic
model.
Operational modeling: any one tactical area may have typically three
operational systems that need to be developed. Operational modeling
develops the data and process models for a particular operational area
to a level of detail to enable implementation.
The final phase of the Finkelstein methodology is implementation.
Implementation is technology dependent and is carried out using
suitable DBMS, CASE, and other development tools. The major
techniques used are:
Business data modeling: a ―business oriented‖ version of data
modeling
Process modeling: modeling of processes acting on ―data‖,
especially generic, reusable processes such as: Verify, Add,
Read, Display, Change, Delete.
Dynamic performance monitoring: the use of a generic
approach to performance monitoring (a common requirement
for most systems).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 364
Phiên bản năm 1989 của Clive Finkelstein về kỹ thuật thông tin bắt
đầu với một kế hoạch cho việc xác định các thông tin quan trọng trong hệ
thống theo yêu cầu của doanh nghiệp. Sau đó nó phát triển các hệ thống
đƣợc lựa chọn ƣu tiên thông qua phân tích và thiết kế
Việc lập kế hoạch bao gồm các giai đoạn sau đây:
Giai đoạn 1: Xác định các kế hoạch hiện hanh. Sử dụng bất kỳ chiến
lƣợc hiện hanh hoặc chiến thuật phát biểu rằng có thể tồn tại hoặc một
bảng câu hỏi quản lý để thu thập thông tin về chiến lƣợc kinh doanh.
Giai đoạn 2. Đánh giá về tình trạng hiện tại bao gồm tám bƣớc sau:
1. Phân tich nhiệm vụ va mục đich để xác định các dữ liệu lớn
đối tƣợng đƣợc đại diện trong một mô hình nhiệm vụ cao cấp
2. Xác định mục tiêu tiềm năng (các yếu tố thanh công quan
trọng)
3. Xác định mục tiêu
4. Xác địn hcác vấn đề
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 365
5. Xác định các chiến lƣợc để đối phó với từng vấn đề
Xác định các chức năng hiện hanh (vi dụ, nhân sự, tài chính,
vv)
6. Phân bổchiến lƣợc chứcnăng
7. Xác định chức năng trách nhiệm (một chi tiết đặc tả chức năng
cho từng chức năng quản lý)
Giai đoạn 3. Thiết lập hƣớng chiến lƣợc bao gồm ba bƣớc sau: (1, 2)
đánh giá trong va ngoai: phân tich khả năng kinh doanh va môi trƣờng
kinh doanh (3) chiến lƣợc đánh giá: tạo ra các chƣơng trình nghị sự
chiến lƣợc, chủ động lựa chọn chiến lƣợc, xác định các chiến lƣợc:
chinh thức tai liệu hƣớng dẫn của các quyết định chiến lƣợc, giả định
hợp lý, kết luận va tìm lựa chọn thay thế.
Sau khi hoan thanh kế hoạch ta có thể tiến hanh phát triển dữ liệu
về chi tiết các mô hình va các mô hình quy trình. Đây la những xây dựng
trong ba cấp độ kế tiếp.Chiến lƣợc lam mẫu: một cấp cao schematic dữ liệu
mô hình, quan tâm đến cao cấp quản lý. Các bƣớc liên quan đến:
1. Xác định đối tƣợng dữ liệu
2. Xác định các thực thể dữ liệu từ các nhiệm vụ
3. Xác định sơ bộ chức năng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 366
4. Xác định các thực thể dữ liệu từ các chiến lƣợc
5. Xác định các chức năng tiềm năng
6. Xác định những thuộc tinh chiến lƣợc
7. Xác định các mô tả mục đich
Chiến thuật mô hình hóa: mô hình chiến lƣợc đƣợc tinh chế thanh
các khu vực của chi tiết hơn để mô tả dữ liệu quan tâm nhiều hơn nhằm
quản lý cấp trung. Điển hình la khoảng 20 chiến thuật của các khu vực nay
tồn tại cho bất kỳ một chiến lƣợc mô hình.
Mô hình hoạt động: bất kỳ một trong những khu vực có thể có chiến
thuật thƣờng la ba hệ thống hoạt động cần đƣợc phát triển. Mô hình hoạt
động phát triển các mô hình dữ liệu va quy trình cho một hoạt động cụ thể
khu vực với một mức chi tiết để cho phép thực hiện.
Giai đoạn cuối cùng của phƣơng pháp Finkelstein đƣợc thực hiện
công nghệ phụ thuộc va đƣợc thực hiện bằng cách sử dụng phù hợp DBMS,
Case, va các công cụ phát triển khác. Các kỹ thuật chinh đƣợc sử dụng la:
Kinh doanh mô hình hóa dữ liệu: một doanh nghiệp "theo định
hƣớng‖ phiên bản của dữ liệu mẫu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 367
Quy trình lập mô hình: mô hình hóa các quá trình diễn xuất trên
dữ liệu, đặc biệt la các quá trình sử dụng lại nhƣ: xác minh, thêm,
đọc, hiển thị, thay đổi, xóa.
Năng động, hiệu quả giám sát: việc sử dụng một phƣơng pháp tiếp
cận chung để thực hiện theo dõi (một yêu cầu chung cho hầu hết hệ
thống).
9.5 EXTREME PROGRAMMING
Extreme programming (XP) is a new programming methodology that
is getting fairly heavy notice these days. Kent Beck (1999) is one of its
main proponents and seems to have coined the term, so it seems reasonable
to treat his book as the defining standard of the field. XP is the application
a group of practices to software development projects:
The planning game: collaboration of business and programming
professionals to estimate the time for short tasks (called ―stories‖ in
XP)
Small releases: a ship cycle measured in weeks rather than years
Metaphor: ―a single overarching metaphor‖ to guide development
substitutes for a formal architectural specification
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 368
Simple design: no provision in the code for future changes or
flexibility
Testing: every piece of code exercised by unit tests when written,
and the full suite of tests when integrated
Refactoring: any piece of code subject to rewriting to make it
simpler
Pair programming: all production code jointly written by two
developers
Collective ownership: the right of any developer to change any
piece code on the project
Continuous integration: code integrated to the main line every few
hours
40-hour week: no overtime
On-site customer: a business person dedicated to the project
Coding standards: one standard per project
XP amounts to abandoning the traditional ―waterfall model‖ of
development entirely in favor of what has often been called ―cowboy
coding‖. Beck argues that it is no longer vastly more expensive to fix
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 369
problems in production than in planning; as a result, it is not necessary to
plan. Instead, let your programmers program, trust them to solve problems
as they come up, and plan and ship frequently so that you get feedback
from the customer on a regular basis.
Extreme Programming (XP) la một phƣơng pháp lập trình mới
đang rất đƣợc quan tâm. Kent Beck (1999) la ngƣời ủng hộ va dƣờng nhƣ
đã đặt ra thuật ngữ về lĩnh vực nay, điều nay cũng hơp lý khi coi cuốn sách
của ông nhƣ la tiêu chuẩn để đánh giá trong lĩnh vực nay. XP la áp dụng
một nhóm các thực hanh cho các dự án phát triển phần mềm:
Các kế hoạch trò chơi: sự hợp tác của doanh nghiệp va lập trình
chuyên nghiệp để ƣớc tinh thời gian cho công việc ngắn (gọi la
"câu chuyện‖ trong XP)
Phát hanh các phiên bản nhỏ
Metaphor: "một đơn bao quát ẩn dụ‖ để hƣớng dẫn thay thế phát
triển cho một đặc điểm kỹ thuật kiến trúc chinh thức.
Thiết kế đơn giản: không có điều khoản trong mã cho những thay
đổi trong tƣơng lai hay sự linh hoạt
Thử nghiệm: mỗi đoạn mã thực hiện bởi các xét nghiệm, va các bộ
đầy đủ các xét nghiệm khi tich hợp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 9: Structured Methodology Review 370
Refactoring: bất kỳ đoạn mã nao cũng thể viết lại để lam cho nó
đơn giản
Lập trình đôi: tất cả mã sản xuất chung đƣợc viết bởi hai nha phát
triển
Tập thể quyền sở hữu: quyền của các nha phát triển bất kỳ thay đổi
nao mảnh mã trên dự án
Liên tục hội nhập: mã tich hợp vao dòng chinh của mỗi vai giờ
40-hour tuần: không có thêm giờ
Trên trang web của khách hang: một ngƣời chịu trách nhiệm quản
lý cho dự án
Mã tiêu chuẩn: một tiêu chuẩn cho mỗi dự án
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 371
CHƢƠNG 10 KHÁI NIỆM LẬP TRÌNH
EXTREME
Người dịch:
1. Phạm Ngọc Vân Anh
2. Trần Ngọc Hiệu
3. Trần Duy Khang
4. Huỳnh Lâm Linh
5. Nguyễn Thị An Nhơn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 372
Extreme programming is a software methodology developed by Kent
Beck to help software developers to design and build a system more
efficiently and successfully. Extreme programming is a disciplined and
well-planned approach to software development. What makes this
programming so popular is that it is one of the first lightweight
methodologies. A lightweight methodology has only a few rules and
practices or ones that are easy to follow. Extreme programming does not
require any additional paperwork and programmers do not need to go
through tons of methods. It stresses customer satisfaction and can be used
when the customer is not certain of his requirements or when new
technology is to be introduced.
Lập trình Extreme la một hệ phƣơng pháp phầm mếm đƣợc phát
triển bởi Kent Beck nhằm giúp đơ những nha phát triển phần mềm thiết kế
va xây dựng một hệ thống có năng suất cao va thanh công hơn. Lập trình
Extreme la cách tiếp cận có kỷ luật va có kế hoạch của việc phát triển phan
mềm. Điều lam cho kiểu lập trình nay trở nên nổi tiếng la nó có một trong
những phƣơng pháp luận gọn nhẹ đầu tiên. Một phƣơng pháp luận gọn nhẹ
chỉ có một vai luật lệ để thực hiện hay vai điều dễ hiễu. Lập trình Extreme
không yêu cầu bất cứ việc thêm vao paperwork vao ngƣời viết chƣơng trình
không cần thiết phải sử dụng nhiều phƣơng pháp khác nhau. Nó nhấn mạnh
việc lam thỏa mãn khách hang va có thể đƣợc sử dung khi khách hàng
không chắc chắn những yêu cầu của mình hoặc khi kỹ thuật mới đƣợc giới
thiệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 373
10.1 NHỮNG LUẬT LỆ CỦA LẬP TRÌNH EXTREME
Extreme programming applies four rules in developing the software
project:
Communication. The programmer must communicate with the
customer and elicit his requirements, thus the emphasis on
customer satisfaction. The programmer also needs to communicate
with fellow workers, thus the emphasis on team work.
Simplicity. The design is maintained as simply as possible.
Feedback. The software is tested from its early stages, feedback is
obtained, and changes are made. This is a cyclical process.
Courage. The programmer can make changes even at the last
stages and implement new technologies as and when they are
introduced.
Lập trình Extreme áp dụng 4 điều lệ trong việc pháp triển đề án phần
mềm:
Sự liên lạc: ngƣời viết chƣơng trình phải liên lạc với khách hang va
thu thập những yêu cầu của khách, nó nhấn mạnh việc lam thỏa
mãn khách hàng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 374
Tinh đơn giản: bản thiết kế phải cang đơn giản cang tốt.
Thông tin phản hồi: phần mềm phải đƣợc kiểm tra từ nhƣng bƣớc
ban đầu, tiếp nhận thông tin phản hồi va thực hiện thay đổi. Đây la
một vòng sử lý tuần hoan.
Tinh dũng cảm: ngƣời viết chƣơng trình có thể phải thay đổi ở giai
đoạn cuối va thực thi kỹ thuật mới nhƣ khi chúng đƣợc giới thiệu.
Extreme programming is a process of project development, as shown
in Exhibit 10-1. Customer requirements are obtained in the form of user
stories; the programmer selects the user stories to be implemented first with
help from the customers. A plan is released that indicates how many user
stories can be implemented in a single iteration, thus starting iterative
development. The user stories are broken down into programming tasks and
assigned to programmers. The time required to complete these tasks is
estimated first; these initial estimates are referred to as uncertain estimates.
By using feedback, the programmer can adjust the estimates and make them
more certain.
Extreme lập trình la một quá trình phát triển dự án, nhƣ thể hiện
trong hình 10-1. Yêu cầu khách hang sau khi thu đƣợc ở dạng câu chuyện
ngƣời dùng; lập trình viên sẽ chọn những câu chuyện ngƣời dùng để triển
khai thực hiện với giúp đơ từ các khách hang. Đƣa ra kế hoạch chỉ ra những
câu chuyện nao của khách hang đƣợc đƣa vao cai đặt trong 1 đơn vị riêng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 375
rẻ, do đó bắt đầu phát triển các thanh phần riêng rẻ. Những câu chuyện của
ngƣời dùng đƣợc chia nhỏ thanh các công việc lập trình va phân công cho
các lập trình viên. Thời gian cần thiết để hoan thanh các nhiệm vụ nay đƣợc
ƣớc tinh đầu tiên; các ƣớc lƣợng ban đầu đƣợc gọi la các ƣớc tinh không
chắc chắn. Bằng cách sử dụng thông tin phản hồi, các lập trình viên có thể
điều chỉnh các ƣớc tinh nay va lam cho chúng cang chinh xác hơn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 376
Hình 10 – 1
Once these programming tasks have been implemented, they are sent
for acceptance testing. If these tasks produce an error or indicate a bug, they
are sent back to be recoded in the next iteration. Once the programming
tasks are approved by the customer, a small release of the tasks is made to
check functionality.
Một khi các công việc lập trình đã đƣợc cai đặt, chúng đƣợc gửi đi
để thử nghiệm(acceptance testing). Nếu những công việc xuất hiện sai số
hay thiếu sót kỹ thuật, chúng sẽ đƣợc đƣa trở lại để sửa chửa va vòng lặp
kiểm tra – sửa chửa đƣợc lặp lại. Một khi việc lập trình đƣợc sự chấp thuận
của khách hang, một thông cáo nhỏ của công việc la thực hiện kiểm tra
chức năng hoan tất.
The components of extreme programming include:
User stories. User stories are written by the customer and describe
the requirements of a system. The customer need not specify his
requirements using any particular format or technical language; he
merely writes these in his own words. Aside from describing what
the system must be, the user stories are used to calculate the time
estimates for release planning. At the time of the implementation of
the user stories the developer obtains detailed information from the
customer. The time estimate is usually in the form of ideal
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 377
development time — defined as how long it would take to
implement the story in code if there were no distractions, no other
assignments, and the programmer knew exactly what to do.
Typically, each story will get one to three weeks. The user stories
are also used to produce test scenarios for acceptance testing by the
customer as well as to verify that the user stories have been
implemented correctly.
Release planning. Release planning produces the release plan
followed during development of the system; it is also called the
―planning game‖. During release planning a meeting is set up with
the customers and the development team. During this meeting a set
of rules is set up by the customers and developers to which all
agree. A schedule is then prepared. A development team is selected
to calculate each user story in terms of ideal programming weeks,
which is how long it would take to implement that story if
absolutely nothing else needed to be done.
Các thanh phần của lập trình Extreme bao gồm:
Câu chuyện ngƣời dùng(User stories): Câu chuyện ngƣời dùng
đƣợc khách hang viết va mô tả các yêu cầu của một hệ thống. Các
khách hang không cần phải xác định các yêu cầu của mình bằng
cách sử dụng bất kỳ hình thức cụ thể hoặc ngôn ngữ kỹ thuật; họ
chỉ cần miêu tả theo khả năng ngôn ngữ riêng của mình. Ngoai mô
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 378
tả những gì hệ thống cần phải có, những câu chuyện ngƣời
dùng(User stories) đƣợc sử dụng để tinh toán ƣớc lƣợng thời gian
cho việc lập kế hoạch phát hanh. Vao thời điểm việc cai đặt các
câu chuyện ngƣời dùng(User stories), ngƣời phát triển phần mềm
lấy thông tin chi tiết từ khách hang. Ƣớc tinh thời gian nay thƣờng
ở dạng thời gian lý tƣởng – nghĩa la thời gian nay đƣợc tinh trong
trƣờng hợp không có trở ngại nao, không có sự thay đổi yêu cầu
của khách hang va ngƣời lập trình biết chinh xác những điều mình
cần lam. Thông thƣờng, đối với mỗi câu chuyện(User stories) sẽ
mất 1-3 tuần. Những câu chuyện ngƣời sử dụng(User stories) cũng
đƣợc sử dụng để sản xuất các bản tét để kiểm tra sự chấp nhận của
khách hang cũng nhƣ để xác minh rằng những câu chuyện ngƣời
(User stories) đƣợc triển khai chinh xác
Lập kế hoạch phát hanh: tiến hanh lập kế hoạch cho ra các bƣớc
tiếp theo trong quá trình phát triển của hệ thống, nó cũng đƣợc gọi
la "kế hoạch trò chơi‖ Trong quá trình lập kế hoạch tiến hanh một
cuộc họp đƣợc tham gia bởi các khách hang va đội ngũ phát triển.
Trong cuộc họp nay một số các quy tắc đƣợc tất cả đồng ý. Sau đó
chuẩn bị một lịch trình. Một nhóm phát triển đƣợc chọn để tinh
toán mỗi câu chuyện ngƣời sử dụng(User stories) đƣợc cai đặt
trong thời gian lý tƣởng la bao lâu.
Release planning is guided by four values:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 379
Scope — how much needs to be done?
Resources — how many people are available?
Time — when will the project or release be done?
Quality — how good and how well tested will the software be?
Việc lập kế hoạch dựa trên 4 tiêu chi sau:
Phạm vi – Có bao nhiêu việc phải lam?
Tài nguyên – Có bao nhiêu có thể lam?
Thời gian – Khi nao dự án đƣợc thực hiện va thực hiện trong bao
lâu?
Chất lƣợng – Nhƣ thế nao la đạt chất lƣợng tôt va lam thế nao để
có chất lƣợng tốt?
Candidate systems for XP are those that are reusable, testable, and
have good business values.
Các hệ thống dùng cho XP la những hệ thống có tinh tái sử dụng, dễ
kiểm tra va có giá trị kinh doanh tốt.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 380
10.1.1 Vòng lặp
At the beginning of every iteration, an iteration planning meeting is
held at which the user stories to be implemented during that iteration are
chosen; the customer selects the user stories. The selected stories are broken
down into discrete programming tasks during the planning session. The
programming tasks are specified in the programmer‘s language.
Vao đầu mỗi vòng lặp (iteration), một cuộc họp lập kế hoạch đƣợc
tổ chức để ban bạc những câu chuyện ngƣời dùng nao sẽ đƣợc thực hiện
trong vòng lặp nay, khách hang sẽ chọn User Stories. User Stories đƣợc
chọn sẽ đƣợc chia thanh các công việc lập trình riêng biệt trong bản kế
hoạch. Nhƣng yêu cầu nay đƣợc xác định bằng ngôn ngữ của ngƣời lập
trình.
The number of selected user stories or programming tasks increases
or decreases the project velocity. Each programming task is estimated based
on ideal programming days, which are the number of days it would take to
program a task if no distractions or interruptions occurred.
Số lƣợng User Stories đƣợc lựa chọn cai đặt lam tăng hoặc giảm tốc
độ dự án. Mỗi công việc lập trình đƣợc ƣớc tinh dựa vao thời gian lập trình
lý tƣởng – đó la thời gian thực hiện lập trình nếu không có phiền nhiễu hay
gián đoạn xảy ra.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 381
After these programming tasks have been developed, they are tested.
If bugs are found, the offending programming tasks are added back into the
release plan to be handled by the next iteration.
Sau khi các yêu cầu đã đƣợc lập trình chúng sẽ đƣợc kiểm tra. Nếu
tìm thấy lỗi, những yêu cầu nay sẽ đƣợc đƣa ra ban bạc xử lý lỗi ở vòng lặp
(iteration) tiếp theo.
During each iteration (see Exhibit 10-2), the plan is checked to detect
duplicate programming tasks. If such tasks are found, they are removed or
consolidated. If a single iteration has too much to do, several user stories
are dropped; if the iteration has too little to do, a few are added.
Trong mỗi vòng lặp (iteration) (xem hình 10-2), kế hoạch đƣợc kiểm
tra để phát hiện các công việc lập trình bị trùng lặp. Nếu công việc nhƣ vậy
đƣợc tìm thấy, chúng sẽ bị loại bỏ hoặc hợp nhất. Nếu một vòng lặp duy
nhất có quá nhiều việc phải lam, các câu chuyện một số ngƣời sử dụng đang
bị bỏ; nếu lặp có quá it để lam, một số it đƣợc thêm.
10.1.2 Phát triển
During the development phase, stand-up meetings are held every
morning to discuss the problems faced during the development effort, to
devise a solution to these problems, and, perhaps most importantly, to
promote focus. No individual programmer owns his or her code. Instead,
the code is collectively owned and collaboratively worked upon. The focus
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 382
of development is on small, manageable releases that can be thoroughly
tested.
Trong giai đoạn phát triển, các cuộc họp đƣợc tổ chức vao mỗi ngay
để thảo luận về các vấn đề phải đối mặt trong khi phát triển, để đƣa ra các
giải pháp cho những vấn đề nay, va quan trọng nhất, để thúc đẩy tập trung ý
tƣởng. Không có việc mỗi lập trình viên sở hữu code của họ. Thay vao đó
la sử dụng chung tập hợp code va lam lam việc cùng với nhau. Việc cai đặt
it đƣợc chú trọng, nhƣng sau đó bản release sẽ đƣợc test toan bộ.
Hình 10-2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 383
10.1.3 Thẻ CRC
CRC stands for class, responsibilities, and collaboration. CRC cards
(Exhibit 10-3) contain information about the class, responsibilities and
collaboration for designing the system as a team. CRC cards allow all the
members of the project team to contribute to the project which will provide
a number of good ideas which can then be incorporated in the design.
CRC la viết tắt của Class(lớp), Responsibilities (trách nhiệm),
Collaboration (hợp tác). Thẻ CRC (Hình 10-3) chứa thông tin về các lớp,
trách nhiệm va sự hợp tác để thiết kế hệ thống nhƣ la 1 đội. Thẻ CRC cho
phép tất cả các thanh viên của nhóm dự án có thể đóng góp ý tƣởng tốt cho
thiết kế của dự án.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 384
Hình 10-3
Each CRC card is used to represent an object. The class name of the
object can be written at the top of the CRC card; the responsibilities of the
class are written on the left side of the card and the collaborating classes are
written to the right of each responsibility. A CRC session consists of a
person simulating the system by speaking about the relationships between
the objects and the process. In this way, weaknesses and problems can be
easily discerned and the various design alternatives can be explored quickly
by simulating the proposed design.
Mỗi thẻ CRC đƣợc sử dụng để đại diện cho một đối tƣợng(object).
Tên lớp của đối tƣợng có thể đƣợc viết ở trên cùng của thẻ CRC; trách
nhiệm của lớp đƣợc viết ở phia bên trái của thẻ va các lớp cộng tác
(collaborating classes) đƣợc ghi vao bên phải của mỗi trách nhiệm. Một
CRC bao gồm giả lập hệ thống bằng cách nói về mối quan hệ giữa các đối
tƣợng (object) va quá trình (process). Bằng cách nay, những vấn đề yếu
kém có thể dễ dang đƣợc nhận thức va các thiết kế thay thế có thể đƣợc tìm
thấy một cách nhanh chóng bằng cách giả lập thiết kế đề xuất.
10.1.4 Hệ thống ẩn
Classes, objects, and methods coded by the programmer can be
reused. Instead of writing the code for a class, object, or method that
already exists, it is important to name the objects in a standardized manner
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 385
that enables other programmers to seek and reuse these objects. Thus, a
common system or common system description is used by all programmers.
Các lớp, đối tƣợng, va các phƣơng pháp đƣợc lập trình viên cai đặt
có thể đƣợc tái sử dụng. Thay cho việc code lại một lớp, đối tƣợng, hoặc
phƣơng pháp ma đã tồn tại, tên các đối tƣợng phải đƣơc tiêu chuẩn hóa để
lập trình viên viên khác tìm kiếm va sử dụng lại những các đối tƣợng. Vì
thế, một hệ thống chung hay các mô tả hệ thống chung đƣợc sử dụng bởi tất
cả các lập trình viên.
10.1.5 Mã sỡ hữu chung
Collective code ownership is a contribution of the programmers to
the project in the form of ideas to any segment of the project. Any
programmer can add or change code, fix bugs, or refactor — i.e., reuse the
code. The entire team is responsible for the system‘s architecture. Although
it is hard to believe that a whole team can have authority over the entire
project, it is actually possible. Each developer creates unit tests for his or
her code as the code is developed. Code is released into a source code
repository after being thoroughly tested.
Mã sở hữu chung la một sự đóng góp của các lập trình viên cho dự
án theo hình thức các ý tƣởng vao bất kỳ phân đoạn của dự án. Bất kỳ lập
trình viên có thể thêm hoặc thay đổi code, sửa chữa lỗi, hoặc tái sử dụng.
Rất khó để toan bộ đội ngũ có toan quyền trên toan bộ project, thực ra đó la
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 386
điều có thể. Mỗi nha phát triển tạo ra các bộ test cho các đơn vị mã của
mình khi cai đặt code. Code đƣợc thảy vao kho lƣu trữ source code sau khi
đƣợc test hoan toan.
10.1.6 Bộ Test
Unit tests are written by the programmer before he starts coding.
Writing the unit tests first gives the programmer a better understanding of
the requirements specified by the customer. In addition, writing unit tests
prior to coding helps programmers write the code more easily and faster.
Bộ Test đƣợc viết bởi các lập trình viên trƣớc khi anh ta bắt đầu viết
code. Việc viết các bộ test trƣớc khi tiến hanh cai đặt code lam cho lập trình
viên hiểu rõ hơn vầ yêu cầu của khách hang. Ngoai ra, viết bộ Test trƣớc
khi cai đặt code giúp lập trình viên viết code dễ dang hơn va nhanh hơn.
10.1.7 Test chấp thuận
Within the XP methodology, ―functional‖ tests have been renamed
―acceptance‖ tests to indicate that the system is accepted by the customer.
The customer specifies the test scenarios during specification of the user
stories; each story will have one or more acceptance tests. The acceptance
tests are the expectation of the customer for the system. These acceptance
tests are black box system tests, which enable the programmer to derive sets
of input conditions that will fully exercise all functional requirements for a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 387
program. The user reviews the results of the acceptance tests and
determines the priorities of the test failures. The team schedules time to fix
the failed test for every iteration.
Trong phƣơng pháp XP, ―functional ―tests đã đƣợc đổi tên thanh
―acceptance ―test để chỉ ra rằng hệ thống đƣợc chấp nhận bởi khách hang.
Khách hang chỉ định các bản thử nghiệm trong quá trình xác định User
stories; mỗi User stories có thể đƣợc một hoặc nhiều bài ―acceptance ―test.
Các bản ―acceptance ―test la những kỳ vọng của khách hang cho hệ thống.
Những ―acceptance ―test đƣợc thử nghiệm hộp đen(black box system test),
cho phép lập trình viên rút ra các trƣờng hợp đầu vao, những trƣờng hợp
nay sẽ kiểm tra đầy đủ tất cả các yêu cầu chức năng của chƣơng trình.
Ngƣời sử dụng đánh giá các kết quả của sự ―acceptance ―test va xác định
những lỗi nao la quan trọng. Nhóm phát triển lên lịch sửa chữa lỗi cho tất
tất cả các vòng lặp (iteration)
10.1.8 Tốc độ dự án:
The project velocity is used to measure how much work is being
completed on the project; it is obtained by adding up the estimates of user
stories completed during the iteration. Project velocity can also be obtained
by adding up the estimates for tasks during the iteration. If the project
velocity shows significant variations, a release planning meeting is
conducted and a new plan is released. Project velocity is a measure of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 388
accuracy. How accurately are we able to produce results on time? How well
are we able to make estimates?
Tốc độ dự án đƣợc sử dụng xác định bao nhiêu công việc của dự án
đã đƣợc hoan thanh, nó đƣợc tinh bằng cách cộng thêm vao ƣớc tinh hoan
thanh các User stories trong suốt vòng lặp. Tốc đọ dự án cũng có thể thu
đƣợc bằng cách cộng thêm vao các dự toán cho các công việc trong suốt
vòng lặp. Nếu tốc độ dự án cho thấy sự biến thiên đáng kể, cần tở chức
cuộc họp lập kế hoạch va đƣa ra một kế hoạch mới. Tốc độ dự án la thƣớc
đo chinh xác. Chúng ta có thể đƣa ra kết quả đúng hạn chinh xác đến mức
nao? Lam thế nao chúng ta có thể ƣớc lƣợng?
10.1.9 Phiên bản nhỏ
The development team releases small iterative versions of the system
to the customer. It is essential to get customer feedback on time instead of
waiting until the last moment, which results in making changes at the last
minute as well.
Các nhóm phát triển cung cấp phiên bản của 1 vòng lặp(iteration)
của cả hệ thống cho khách hang. Việc lấy thông tin phản hồi của khách
hang đúng lúc thay vì chờ cho đến thời điểm cuối la cần rất cần thiết, vì
cuối cùng việc thay đổi cũng phải đƣợc tiến hanh nhƣng thay đổi vao thời
điểm cuối la không hay.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 389
10.1.10 Bản thiết kế đơn giản
The design is kept as simple as possible. A complex design is hard to
understand when changes are to be made in the future.
Bản thiết kế phải cang đơn giản cang tôt. Một bản thiết kế cang phức
tạp sẽ tạo ra sự khó khăn cho các thay đổi trong tƣơng lai.
10.1.11 Tiêu chuẩn viết code
Programmers follow a specific set of standard rules in writing code.
This helps in communication among teams and enables a programmer to
understand the code written by any other programmer easily.
Lập trình viên theo một tập hợp các tiêu chuẩn viết mã cụ thể. Điều
nay giúp trong giao tiếp giữa các đội lập trình viên va cho phép một lập
trình viên có hiểu những mã đƣợc viết bởi bất kỳ lập trình viên khác một
cách dễ dang.
10.1.12 Refactoring
Refactoring is the art of removing any duplicate code — i.e., the
reuse of code that is already present. This helps in keeping the system
design simple. Refactoring also saves a lot of time and increases the quality
of the system.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 390
Refactoring la cách loại bỏ các mã trùng lặp, tái sử dụng mã đã có.
Điều nay giúp trong việc duy trì các hệ thống thiết kế đơn giản. Refactoring
cũng giúp tiết kiệm rất nhiều thời gian va lam tăng chất lƣợng của hệ thống.
10.1.13 Lập trình cặp đôi
Pair programming specifies that a pair of programmers work
collaboratively on a task. This helps assess the code as it is written. Pair
programming increases software quality and takes the same time to deliver
the system as a single programmer working on a single machine.
Pair programming xác định rằng một cặp lập trình viên lam việc
cộng tác vao việc nao đó. Điều nay giúp đánh giá các mã khi nó đƣợc viết.
Pair programming phần mềm lam tăng chất lƣợng va tốn cùng 1 thời gian
cung cấp hệ thống nhƣ khi một lập trình viên duy nhất lam việc trên một
máy tinh duy nhất.
10.1.14 Continuos Intergration
Coding is done by dividing big projects into small, manageable
programming tasks. After coding, the discrete programming tasks are
joined together; however, each of these tasks is tested individually for bugs.
During integration of the programming tasks, it is quite possible that new
bugs will arise. Therefore, after every integration, the integrated code is
retested for bugs.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 391
Việc viết code đƣợc thực hiện bằng cách chia dự án thanh các công
việc lập trình đƣợc quản lý. Sau khi viết code, các công việc riêng rẽ sẽ
đƣợc kết hợp với nhau, tuy nhiên, mỗi công việc nhỏ nay phải đƣợc Test
riêng rẽ để kiểm tra các lỗi. Trong quá trình kết hợp của các công việc, có
thể sẽ phát sinh lỗi mới. Vì vậy, sau khi hội nhập hang, mã tich hợp phải
đƣợc kiểm tra lỗi một lần nữa.
Changes may be made on the request of the customer. All the
changes made to the code are integrated at least daily. The tests are then run
before and after the changes. The code is not released if any bugs are found.
Thay đổi có thể đƣợc thực hiện theo yêu cầu của khách hang. Tất cả
những thay đổi cần đƣợc tich hợp vao code mỗi ngay. Các bộ test cần đƣợc
chạy trƣớc va sau khi thay đổi. Bản code nay không đƣợc phát hanh nếu tìm
thấy lỗi.
10.1.15 40 giờ mỗi tuần
Each programmer works for only 40 hours per week. This helps the
productivity of the project in the long term. No programmer is overloaded
with work and no overtime is allowed. Overtime usually exhausts the
programmer and chances are he or she will make mistakes.
Mỗi lập trình viên lam việc cho chỉ 40 giờ mỗi tuần. Điều nay có ich
cho năng suất của các dự án trong dai hạn. Lập trình viên không nên lam
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 392
việc quá thời gian va thêm giờ khi không cần thiết. Tăng ca thƣờng lam cho
các lập trình viên mệt mỏi dẫn va đến gây ra lỗi.
10.1.16 On-site customer
A single customer or a group of customers is available at all times
for the programmers. This helps in resolving the ambiguities that
developers encounter during development of the project, in setting
priorities, and in providing live scenarios.
Một khách hang đơn lẻ hoặc một nhóm khách hang cần sẵn sang cho
các buổi gặp mặt với lập trình viên. Điều nay giúp trong việc giải quyết
thắc mắc các nha phát triển gặp phải trong quá trình phát triển của dự án,
trong việc thiết lập các ƣu tiên, va trong việc cung cấp các bản thử nghiệm
10.2 KẾT LUẬN
Extreme programming can be stated as a fast and highly organized
process for development of a software system. XP emphasizes
communication, which is essential in order to encourage new ideas.
Because pair programming is stressed in this method, the fear of losing any
programmer in the middle of the project is substantially decreased.
Theoretically, XP reduces competition among programmers by insisting
that they all work as a single team.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 10:Khái niệm lập trình Extreme 393
Lập trình Extreme có thể đƣợc coi nhƣ la một quá trình nhanh va có
tổ chức để phát triển một hệ thống phần mềm. Lập trình EXTREME nhấn
mạnh việc giao tiếp, đó la điều cần thiết để khuyến khich những ý tƣởng
mới. Vì lập trình cặp đƣợc nhấn mạnh trong phƣơng pháp nay, sự lo sợ về
việc mất đi bất kỳ lập trình viên ở giữa của dự án sẽ đƣợc giảm đáng kể. Về
lý thuyết, Lập trình EXTREME lam giảm cạnh tranh giữa các lập trình
bằng cách nhấn mạnh rằng tất cả họ lam việc nhƣ một đội bóng duy nhất.
Extreme programming can be used where the requirements change
rapidly and the customer is not sure of those requirements. Feedback is
integral to this process; thus, the end product will be developed according
to customer requirements.
Extreme lập trình có thể đƣợc sử dụng, nơi các yêu cầu thay đổi
nhanh chóng va các khách hang không chắc chắn về những yêu cầu của họ.
Thông tin phản hồi la một phần của quá trình nay, vì thế, các sản phẩm cuối
cùng sẽ đƣợc phát triển theo yêu cầu của khách hang
Tham khảo va đọc thêm:
Beck, K. (1999). Extreme Programming Explained, Addison-
Wesley, Reading, MA.
http://www.extremeprogramming.org. Extreme programming: a
gentle introduction.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 394
CHƢƠNG 11 KỶ THUẬT PHÁT TRIỂN TRƢỚC
KHI TIẾN HÀNH CÔNG VIỆC
Người dịch:
6. Dƣơng Hữu Thanh
7. Trần Xuân Tiến
8. Nguyễn Tấn
9. Trịnh Đắc Thắng
10. Lê Hoang Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 395
11.1 SAI SÓT TRONG HỆ THỐNG LÀ GÌ
Today's traditional system engineering and software development
envi-ronments support their users in ―fixing wrong things‖ rather than in
―doing them the right way in the first place‖. Things happen too late, if at
all. Sys-tems are of diminished quality and an unthinkable amount of
dollars is wasted. This becomes apparent when analyzing the major
problems of sys-tem engineering and software Development.
Những môi trƣớng phát triển phần mềm va máy hệ thống truyền
thống ngay nay đều chống đở với ngƣời dùng của họ trong việc ―sửa chửa
nhửng sai lầm‖ hơn ―lam nó chạy đúng trong lần đầu tiên‖. Những thứ nay
xảy ra quá trể. Những hệ thống giảm bớt phẩm chất va tổng số tiền phải
lãng phi la một con số không thể nao tƣởng tƣợng nổi. Điều nay rất rõ rang
khi chúng ta phân tich những vấn đề chinh phấn mềm va sự phát triển phần
mềm
In defining requirements, developers rely on many different types of
mis-matched methods to capture aspects of even a single definition. In fact,
the universal modeling language (UML) resurrects and supports this very
practice. Among other things, data flow is defined using one method, state
transitions another, dynamics another, data types another, and structures
using still another method. Once these aspects of requirements are defined,
there is no way to integrate them. Designers are forced to think and design
this way because of limitations of technologies available to them.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 396
Trong những yêu cầu hạn chế về từ ngữ, những ngƣời phát triển
trông cậy vao nhiều loại khác nhau cách thức ghép đôi không tƣơng thich
để bắt diện mạo của định nghĩa riêng rẻ. Thực ra, mô hình UML phục hồi
va chống đở thực tiễn nay. Một thứ khác, luồng dữ liệu đƣợc định nghĩa sử
dụng một phƣơng thức, chuyển đổ trạng thái khác, động lực khácm loại dữ
liệu khác, va sử dụng những cấu trúc vẫn phƣơng thức khác nhau. Khi bề
ngoai của yêu cầu đƣợc định nghĩa, không có cách để kết hợp chúng nó lại.
Ngƣời thiết kế phải nổ lực suy nghĩ va thiết kế phƣơng cách nay bởi vì giới
hạn những kỷ thuật sẵn có của chúng nó.
This leads to further problems. Integration of object to object,
module to module, phase to phase, type of application to type of
application, or systems to software become even more of a challenge than
solving the problem at hand. This is compounded by a mismatch of
products used for design and development. Integration of all forms is left to
the devices of a myriad of developers well into the development process.
The resulting sys-tem is hard to understand, objects cannot be traced, and
there is little cor-respondence to the real world.
Sự tich hợp đối tƣợng với đối tƣợng, modun với mudun, giai đoạn
với giai đoạn, loại ứng dụng với loại ứng dụng, hoặc những hệ thông với
phần mềm trở nên nhiều thách thức hơn giải quyết vấn đề sắp tơi. Đây la sự
kết hợp bởi không tich hợp giữa các sản phẩm sử dụng thiết kế va phát
triển. Sự tich hợp tất cả forms cho ta cách của thức vô số những ngƣời phát
triển giỏi về tiến trình phát triển. Hệ thống cuối cùng khó ma hiểu, đối
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 397
tƣợng không thể nao tìm thấy dấu vết, va có it sự phù hợp trong thế giới
thực.
With these traditional methods, systems are actually encouraged by
informal (or semiformal) languages to be defined as ambiguous and incor-
rect. Interfaces are incompatible and errors propagate throughout devel-
opment. Once again the developers inherit the problem. The system and its
development are out of control.
Với những phƣơng thức truyền thống, những hệ thông thật sự đƣợc
khuyến khich những ngôn ngữ không nghi thức để đƣợc chỉ ra không rõ
rang vá không chinh xác. Những giao diện sản sinh ra những lỗi va sự
không thich hợp. Môt lần nữa những ngƣời phát triển thừa kế những vấn đề.
Hệ thông va sự phát triển hệ thống ra khỏi phạm vi quản lý
Requirements are defined to concentrate on the application needs of
the user, but they do not consider that the user changes his mind or that his
environment changes. Developers are forced to use a technology without an
open architecture. The result is ―locked in‖ designs, such as being locked
into a specific database schema or GUI; the user is forced to make resource
allocation a part of the application. Porting becomes a new devel-opment
for each new architecture, operating system, database, GUI envi-ronment,
language, or language configuration; critical functionality is avoided for
fear of the unknown and maintenance is both risky and the most expensive
part of the life cycle. When a system is targeted for a dis-tributed
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 398
environment, it is often defined and developed for a single proces-sor
environment and then redeveloped for a distributed environment —another
unnecessary development.
Những yêu cầu đƣợc chỉ rõ tập trung vao những ứng dụng cần thiết
cho ngƣời dùng, nhƣng chúng nó không xem xét việc ngƣời dùng có thay
đổi suỷ nghĩ hay môi trƣờng. Những ngƣời phát triển ra sức sử dụng những
kỹ thuật không có kiến trúc mở. Kết quả thiết kế bị khoá lại, chẳng hạn nhƣ
khoá mô hình dữ liệu hay giao diện đồ hoạ; ngƣời dùng ra sức lam tai
nguyên kết hợ các phần ừng dụng. Trở thanh sự phát triển mới cho mỗi kiến
trúc mới, hệ điều hạnh, cơ sở dữ liệu, một trƣờng giao diện ngƣời dùng,
ngôn ngữ, hay ngôn ngữ hình thức; chức năng bị phê bình thì đƣợc trách xa
lo âu thiếu kiến thức hay bao trì cả hai đều ạo hiểm va chi phi nặng nhất
tron vòng đời sống; khi một hệ thống đƣợc chỉ định cho môi trƣơng đƣợc
phân ổ theo một kiểu nao đó, nó thƣờng đƣợc định nghĩa va phát triển môi
trƣờng chế biến riêng va sau đó tái phát triển cho môi trƣờng phát triển theo
một mô hình nao đó – sự phát triển không cần thiết khác
Insufficient information about a system‘s run-time performance,
includ-ing that concerning the decisions to be made between algorithms or
archi-tectures, is incorporated into a system definition. This results in
design decisions that depend on analysis of outputs from exercising a
multitude of ad hoc implementations and associated testing scenarios. A
system is defined without considering how to separate it from its target
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 399
environ-ment. It is not known if a design is a good one until its
implementation has failed or succeeded.
Tin tức không hiệu quả về thực hiện thực thi của hệ thống, bao gồm
nhừng thứ liên quan những quyết định đƣợc lam giữa hệ thống va kiến
trúc, thì kết hợp chặt chẽ sự định nghĩa hệ thống. Những kết quả nay trong
quyết định thiết kế phụ thuộc vao việc phân tich đầu ra từ phân tich va vố
số cách thực hiện va kết hợp kiểm tra kịch bản. Một hệ thống đƣợc định
nghĩa không xem xét nhƣ thế náo để phân chia từ môi trƣờng mộc nhỏ,
không biết nếu thiết kế la tốt cho đến khi nao sự thực hiện gặp thất bại hoặc
thành công.
The focus for reuse is late into development during the coding phase.
Requirements definitions lack properties to help find, create, and inher-ently
make use of commonality. Modelers are forced to use informal and manual
methods to find ways to divide a system into components natural for reuse.
Why reuse something in today‘s changing market if it is not able to be
integrated, not portable or adaptable, and error prone? The result is little
incentive for reuse, and redundancy is a way of life. Again, errors propagate
accordingly.
Tập trung tái sử dụng phần mềm thì trễ việc phát triển trong suốt
thời ki coding. Những định nghĩa về các yêu cầu thiết thuộc tinh giúp đở
tìm kiếm, tạo ra, vốn đã sử dụng tƣơng đồng. Những ngƣời thiết kế mô hình
tập trung sử dụng những phƣơng thức thủ không hoặc không nghi thức để
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 400
tìm chia hệ thống thanh cấu thanh tự nhiên cho việc dùng lại. Tại sao dùng
lại một thức gì đó trong thị trƣờng thay đổi ngay nay nếu nhƣ nó không thể
hợp nhất, không dễ di động hay lắp vao va dễ xảy ra lỗi? kết quả la nó it
đƣợc khuyến khich cho việc dùng lại, va thửa cách thức cho sự sống của nó.
Một lần nữa la những lỗi đã đƣợc biết đến.
Automation is an inherently reusable process. If a solution does not
exist for reuse, it does not exist for automation. Systems are defined with
insufficient intelligence for automated tools to use them as input. Too often,
automated tools concentrate on supporting the manual process instead of
doing the real work.
Sự tự động hoá la tiến trình dùng lại. Nếu một cách giải quyết không
tồn tại việc dùng lại, nó không tồn tại sự tự động hoá, Hệ thống đƣợc định
nghĩa với sự thông minh kém hiệu quả cho những công cụ tự động sử dụng
nhƣ đầu vao. Quá bình thƣờng, những công cụ tự đông tập trung chông đở
tiến trình thủ công thay vì lam việc thực
Definitions supported by ―make work‖ automation are given to
develop-ers to turn into code manually. A process that could have been
mechanized once for reuse is performed manually over and over again.
When automa-tion attempts to do the real work, it is often incomplete
across application domains or even within a domain, resulting in
incomplete code such as skeleton or shell code. Manual processes are
needed to complete unfin-ished automations. An automation for one part of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 401
a system (e.g., the GUI) needs to be integrated manually with an
automation for another part of the system (e.g., communications
algorithms) or with the results of a manual process. The code generated is
often inefficient or hardwired to a particular architecture, language, or even
a particular version of a language. Most of the development process is
needlessly manual. Again, all these manual processes are creating new
errors each time.
Những định nghĩa tự đông lam việc đƣợc đƣa ra cho ngƣời phát triển
coding bằng tay. Một tiến trình có thể đƣợc cơ khi hoá cho việc dùng lại thì
các thể hiện thủ công hơn một lần. khi những nổ lực tự động hoá công việc
thực, nó thƣờng la không hoán thanh xuyến qua những miền ứng dụng
hoặc ngay cả trong miền đó. Kết quả coding không hoán thanh sự tự động
hoá hoan tất. Sự tự động hoá la một phần của hệ thống cần thiết để đƣợc
tich hợp thủ công với việc tự động hoá cho phẩn khác của hệ thống(.., thuật
toán truyền thông) hoặc với những kết quả tiến trình thủ công. Tạo ra code
thƣơng không hiệu quả cho những kiến trúc chung, ngôn ngữ, ngay cả
những phên bản khác nhau của ngôn ngữ. Hầu hết tiến trình phát triển thì
không cần thiết lam việc thủ công. Nhắc lại, tất cả tiến trình thủ công thì tạo
ra nhựng lỗi mời ở mổi thời điểm
A promising solution to these problems is DBTF. Whereas the
traditional approach is after the fact, or curative, the DBTF approach is
preventative.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 402
Giải quyết đầy triển vọng cho vấn đề nay la DBTF. Trong khi tiết
cận sau sự việc, hoặc chữa trị, DBTF tiếp cận bằng cách ngăn ngửa
11.2 DEVELOPMENT BEFORE THE FACT
With DBTF, each system is defined with properties that control its
own design and development. With this paradigm, a life cycle inherently
pro-duces reusable systems, realized in terms of automation. Unlike before,
an emphasis is placed on defining things the right way the first time.
Problems are prevented before they happen. Each system definition not
only models its application but also models its own life cycle.
Với DBTF, mỗi hệ thống định nghĩa những thuộc tinh để điều khiển
những thiết kế riêng của nó. Với hệ biến hoá nay, vòng đời sống vốn đã hệ
thống tai sử dụng., nhận ra đƣợc giới hạn sự tự đông hoá. Không giống
trƣớc, nhấn mạnh định nghĩa các thứ đúng lần đâu tiên. Nhựng vấn đế đƣợc
ngăng ngừa trƣớc khi nó xảy ra. Mỗ định nghĩa hệ thống không chỉ mô hình
ứng dụng của nó ma còn vòng đồi sống của riêng nó
From the very beginning, a system inherently integrates all of its
own objects (and all aspects of and about these objects) and the
combinations of functionality using these objects. It maximizes its own
reliability and flexibility to change and the unpredictable; capitalizes on its
own parallel-ism; supports its own run-time performance analysis and the
ability to understand the integrity of its own design; and maximizes the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 403
potential for its own reuse, automation, and evolution. The system is
developed with built-in quality and built-in productivity.
Từ khởi đầu, hệ thông tich hợp tất cả đối tƣợng riêng(va tất cả bề
ngoai về đối tƣợng nay) va kết nối các chức năng sử sụng các đối tƣợng
nay. Nó đƣợc tối ƣu hoá sự tin tƣơng va tinh mềm dèo của riếng nó để thay
đổi hay không dự đoán trƣớc, lợi dùng tinh song song của từng thanh viên,
chông đở sự phân tich thể hiện thƣc thi của nó va khả năng hiểu đƣơc sự
tich hợp của thiết kế riêng của nó va tối ƣu hoá tìm năng sử dụng lại, sự tự
động hoám va sự tiến hoá. Hệ thống thì phát triển gắn liến với chất lƣợng
và hiệu suất.
A curative means to obtain quality is to continue testing the system
until the errors are eliminated; a preventative (i.e., DBTF) means is to not
allow errors to creep in, in the first place. Whereas a curative means to
acceler-ate a particular design and development process is to add resources
such as people or processors, a preventative approach would find a more
effi-cient way to perform this process, such as capitalizing more on reuse or
eliminating parts of it altogether, yet still reaching the desired results.
Effective reuse is a preventative concept. Reusing something with no errors,
to obtain a desired functionality, avoids the errors of a newly devel-oped
system; time and money will not be wasted in developing that new system.
For successful reuse, a system must be worth reusing and must be reused
for each user requiring functionality equivalent to it. This means starting
from the beginning of a life cycle, not at the end, which is typically the case
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 404
with traditional methods. Then a system is reused for each new phase of
development. No matter what kind, every ten reuses save ten unnecessary
developments.
Phƣơng tiện chữa trị đạt đƣợc chất lƣợng sẽ tiếp tục kiểm thử hệ
thống cho đến khi lỗi bị khử; một phƣơng tiện ngăng ngừa sẽ không đƣợc
phéo xảy ra lỗi, ở chổ đầu tiên. Khi một phƣơng tiện trị thúc dục thực hiện
gấp thiết kế đặc biệt va tiến trình phát triển sẽ thêm tai nguyên chẳng hạn
ngƣời hay bộ xử lý máy tình. Việc ngăn ngừa sẽ la cách thực hiệu quả hơn
đê thực hiện tiến trình nay, giống nhƣ sử dụng lại hay loại trừ một phần nao
đó của tổng thể, tuy nhiên nó vẫn tiến tới những kết quả mong muốn. Việc
dùng lại nhiệu quả la một quan niệm ngăn ngừa. Một thứ nao đó dùng lại
thì không có lỗi, đạt đƣợc những chức năng mong muốn, tránh đƣợc những
lỗi hệ thông phát triển gần đây, thời gian va tiền bạc không lãn phi trong
việc phát triển hệ thống mới. Để việc dùng lại thanh công, một hệ thống cần
đáng giá trong việc dùng lại va cần đƣợc dùng lại cho mỗi chức năng yệu
cầu của ngƣời dùng tƣơng đƣơng với nó. Điều nay có nghĩa la bắt đầu từ
giai đoạn bắt đầu của vòng đời sông, không la cuối cùng, rõ rang đây la một
phƣơng thức truyền thống. Sau đó hệ thống đƣợc dùng lại cho mỗi thời kì
mới của phát triển, không có chuyện gì xảy ra, mỗi 10 lần dùng lại sẽ tiết
kiệm đƣợc 10 sự phát triển không cần thiết.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 405
11.3 THE TECHNOLOGY
The DBTF technology embodies and is based on a formal theory; it
has a formal systems language, a generic process, and an automation, all
based on the formal theory. Once understood, the characteristics of good
design can be reused by incorporating them into a language for defining any
sys-tem. The language is the key to DBTF. It has the capability to define
any aspect of any system (and any aspect about that system) and integrate it
with any other aspect. These aspects are directly related to the real world.
Kỹ thuật DBFT la một tiêu biểu va va căn bản cho lý thuyết chinh
qui, nó có ngôn ngữ hệ thống chinh qui, một tiến trình chung, va một tự
động hoá, tất cả la cơ bản cho lý thuyết chinh qui, Khi hiểu những đặc tinh
của thiết kế tốt có thể đƣợc dùng lại bởi hợp nhất chúng nó thanh ngôn ngữ
để chỉ rõ một vai hệ thống. Ngôn gnu74 la khoá của DBTF. Nó có khả năng
chỉ rõ một vai diện mạo bên ngoai của hệ thốn va tƣơng thich nó với diện
mạo ngoai của hệ thống khác. Những diện mạo ngoai nay la hƣớng dẫn có
liên quan thế giới thực
This same language can be used to define and integrate system
require-ments, specifications, design, and detailed design for functional,
resource, and resource allocation architectures throughout all levels and
layers of ―seamless‖ definition, including hardware, software, and
peopleware. It could be used to define missile or banking systems as well as
real-time, Internet, or database environments.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 406
Ngôn ngữ giống nhau có thể đƣợc dùng để chi ra va hoa nhập với
yêu cầu hệ thống, chi tiết kỹ thuật, thiết kế, va chi tiết thiết kế cho chức
năng, tai nguyên, va tại nguyên kết hợp kiến trúc thông qua tất cả cấp độ
tầng của ―liền một mảnh‖, bao gồm phần cƣng, phần mềm va ngƣời dùng.
Nó có thể đƣợc dùng chỉ ra hệ thống nghiêp vụ ngân hang giống nhƣ thời
gian thực, Internet, hoặc những môi trƣờng cơ sở dữ liệu
With this language, every object is a system-oriented object (SOO)
developed in terms of other SOOs. An SOO integrates all aspects of a sys-
tem including that which is function, object, and timing oriented. Every
system is an object; every object is a system. Instead of object-oriented
systems, DBTF has system-oriented objects and can be used to define sys-
tems with diverse degrees of fidelity and completeness. Such a languagecan
always be considered a design language because design is relative: one
person‘s design phase is another person‘s implementation phase.
Với ngôn ngữ nay, một đối tƣợng la một đó tƣợng hƣớng hệ thống
đƣợc phát trển trong nhóm SSOs khác nhau, một sự hoá nhập SOO tất cả bể
ngoai của một hệ thốngbao gồm ham, đối tƣợng, hƣớng thời gian. Mỗi hệ
thông la một đối tƣợng,, mỗi đối tƣợng la một hệ thống. Thay vì hệ thống
hƣớng đối tƣợng, DBTF có đối tƣợng hƣớng hệ thống có thể đƣợc dùng
định nghĩa hệ thống với độ thay đổi khác nhau độ tin va sự hoan thanh.
Giông nhƣ la ngôn ngữ có thể luôn luôn đƣợc xem xét một ngôn ngữ thiết
kế bởi vì thiết kế la một quan hệ: giai đoạn một ngƣời thiết kế la giai đoạn
thực thi của một ngƣời khác.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 407
This implementation-independent language has mechanisms to
define mechanisms for defining systems. Although the core language is
generic, the user ―language‖, a by-product of a development, can be
application specific because the language is semantics dependent but syntax
indepen-dent. Unlike formal languages that are not friendly and friendly
languages that are not formal, this language is formal and friendly.
Ngôn ngữ thi hanh độc lập có kỹ thuật để định nghĩa cơ chế để chỉ rõ
hệ thống. Mặc dù ngôn ngữ cốt la chúng, ngƣời dùng ―ngôn ngữ‖ có thể
ứng dụng tạo ra sự phát triển, có thễ ứng dụng rõ rang bởi vì ngôn ngử phụ
thuộc kịch bản nhƣng cú pháp không phụ thuộc. Không giống ngôn ngữ
chinh qui thì không thân thiệt va những ngon ngữ thân thiện thì không
chinh qui, Ngôn nhữ nay la chinh qui va thân thiện
The first step in building a DBTF system is to define a model
(without concern for resource allocation details such as how many
processes are needed) with the language. This process could be in any
phase of develop-ment, including problem analysis, operational scenarios,
and design. The model is automatically analyzed to ensure it was defined
properly. This includes static analysis for preventative properties and
dynamic analysis for user-intent properties.
Bƣớc đầu tiên xây dựng hệ thông 1DBTF la chỉ rõ mô hình (không
liênq aun những tai nguyên liên kết chi tiết chẳng han nhƣ bao nhiêu tiến
trình la cần thiết) với ngôn ngữ. Tiến trình có thể có một vai giai đoạn phát
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 408
triển, bao gồm phân tich vấn đề, kịch bản chức năng, va thiết kế. Mô hình
đƣợc phân tich một cách tự động để đảm bảo nó chỉ định một cách thich
hợp. Nó bao gồm những phân tich tĩnh cho những thuộc tinh ngăn ngừa va
phân tich động các thuộc tinh mục đich ngƣời dùng
A complete and fully production-ready and fully integrated software
implementation (and documentation) for any kind or size of application,
consistent with the model, is then automatically generated by the generic
generator for a selected target environment in the language of choice (e.g.,
C, Java, or XML) and the architecture of choice. If the selected
environment has already been configured, it is selected directly; if not, the
generator is configured for a new language and new architecture before it is
selected.
Để có một sản phẩm sẳn sang va đầy đủ hợp nhất sự thi hanh cho
một vai loại hoặc kich thƣớc ứng dụng, nhất quán các mô hình, va sau đó la
tự động tạo ra bởi ngƣời tạo chungcho một môi trƣờng mộc nhỏ trong ngôn
ngữ lựa chọn (C, Java, hay XML) va kiến trục sự lựa chọn. Nếu môi
trƣờng đƣợc lựa chọn sẳn sang cho đƣợc định hình, nó sẽ đƣợc lựa chọn
ngay lập tức, nếu không ngƣời tạo định hình cho một vai ngôn ngữ va kiến
trúc mới trƣớc khi lựa chọn
The resulting system can then be executed. If the desired system is
soft-ware, the system can now be tested for further user-intent errors. It
becomes operational after testing. Before the fact testing is inherently part
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 409
of every DBTF development step. Errors are prevented simply by construc-
tion with the language and because of that which is inherent or automated;
for example, since the generator automatically generates all the code, no
manual coding errors will be made. Target changes are made to the defini-
tion, not to the code. Target architecture changes are made to the configu-
ration of the generator environment, not to the code. If the real system is
hardware or peopleware, the generated software system can serve as a form
of simulation upon which the real system can be based.
Hệ thông kết quả sẽ đƣợc thực thị. Nếu hệ thống nhƣ mong muốn la
phần mềm, thì hệ thống bây giờ có thể đƣợc kiểm tra cho những lổi xảy ra
trong tƣơng lai, nò trở nên sẳn sang sau khi kiểm tra. Trƣớc khi kiểm tra
thật sự vốn đã la một phần của bƣớc phát triển DBTF. Lỗi đƣợc ngăn ngừa
đơn gian bởi cấu trúc với ngôn ngữ va bởi vì nó vốn ó va tự động, vi dụ, từ
khi ngƣời tạo tạo ra tất cả code, không có lỗi coding thủ công nao phát sinh.
Những kiến trúc nhỏ thay đồi lam hình dạng của môi trƣờng tạo ra, không
đƣợc code. Nếu hệ thống la phần cứng, hệ thống phần mềm tạo ra có thể
đƣợc phục vụ nhƣ một hình thức của mô phỏng trên hệ thống thực nền tảng
DBTF is a system-oriented object approach based upon a unique
con-cept of control. The foundations are based on a set of axioms and on
the assumption of the existence of a universal set of objects. Each axiom
defines a relation of immediate domination; the union of the relations
defined by the axioms is control. Among other things, the axioms establish
the relationships of an object for invocation, input and output, input and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 410
output access rights, error detection and recovery, and ordering during its
developmental and operational states.
DBTF là một đối tƣợng hƣớng hệ thống gần nến tảng trên quan niệm
điều khiển. Nền tang la căng ban thiết lập chân lý va giả định tình trạng của
tập hợp phố biến của đối tƣợng. Mỗi chân lý chỉ rõ mối quan hệ sự thống trị
ngay tức thì; sự kết hợp các quan hệ chỉ rõ chân lý thì điều khiển. Giữa
những thứ khác, thiết lập tiền đề mốt quan hệ của một đối tƣợng để dẫn
chứng, đầu vao va đầu ra, truy cập vao va ra, xoá hoặc phục hồi lỗi, va suốt
trạng thái phát triển va sẳn sang để dùng.
This approach is used throughout a life cycle, starting with require-
ments and continuing with systems engineering, specification, analysis,
design, implementation, testing, and maintenance. Its users include man-
agers, system engineers, software engineers, and test engineers, as well as
end users.
Sự gần lại đƣợc dùng thông qua chu trình sống, bắt đấu với những
yêu cầu va tiếp tục với máy hệ thống,, phân tich chỉ rõ, thiết kế, sự thi hanh,
kiểm thử, va bảo trì. Ngƣời dùng của nó bao gồm ngƣời quản lý, những kỷ
sƣ hệ thống, những kỷ sƣ phần mềm, va kỷ sƣ kiểm thử va ngƣời dùng cuối
In addition to experience with real-world systems, 001 takes its roots
in many other areas, including systems theory, formal methods, formal
linguis-tics, and object technologies. It would be natural to make
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 411
assumptions about what is possible and impossible based on its superficial
resemblance to other techniques such as traditional object technologies. It
helps, how-ever, to suspend any and all preconceived notions when first
introduced to it because it is a world unto itself — a completely new way to
think about systems and software.
Thêm vao từng trải với những hệ thống thế giới thực, 001 la gốc của
nó trong nhiều vùng khác nhau, bao gồm lý thuyết hệ thông, những phƣơng
thức chinh qui, ngôn ngữ chinh qui va những kỹ thuật đối tƣợng. Tuy nhiên
nó trợ giúp, để hoãn lại một vai va tất cả khái niệm nhận thức đƣợc khi đầu
tiên đƣợc giới thiệu với nó nó la một thề giới thực đén chinh nó, một cách
thức mới hoan thanh để suy nghĩ về hệ thống va phần mềm.
The DBTF approach had its beginnings in 1968 with the Apollo
space missions when research was performed for developing software for
manrated missions. This led to the finding that interface errors accounted
for approximately 75 percent of all errors found in the flight software
during final testing. These include data flow, and priority and timing errors
at the highest and lowest levels of a system to the finest grain detail. Each
error was placed into a category according to the means taken to prevent it
by the very way a system was defined. A theory was derived for defining a
sys-tem such that this entire class of interface errors would be eliminated.
DBTF gần có sự bắt đầu vao nămg 1968 với nhiệm vụ không gian
Apollo khi nghiên cứu đƣợc thực hiện phát triển phần mềm cho sứ mễnh
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 412
đƣợc bảo hiểm. Đây la chỉ dẫn để tìm lỗi giao diện đƣợc thống kê gần 75%
của tất cả lỗi đƣợc tìm thấy trong phần mềm va việc kiểm thử cuối cùng.
Bao gồm luống dữ liệu, ƣu tiên va lỗi thời gian ở cấp độ thấp nhất va cao
nhất của hệ thống. Mỗi lỗi đƣợc định vị một mục lục để ngăn ngừa nó bởi
hệ thống đƣợc chỉ rõ. Một lý thuyết đƣợc nhận từ định nghĩa hệ thống
giống nhƣ la toan bộ lớp của lỗi giao diện sẽ loại trứ.
11.4 PRIMITIVE STRUCTURES (CẤU TRÖC MẪU)
Tất cả Fmap va Tmap đƣợc định nghĩa về mặt 3 cấu trúc quản lý
gốc (three primitive control structures) la: một cấu trúc cha quản lý các cấu
trúc con của nó để có đƣợc một quan hệ phụ thuộc, quan hệ độc lập, quan
hệ quyết định (decision-making relationship). Môt tập hợp những luật (điều
khoản) điển hình đƣợc gắn kết với các cấu trúc mẫu. Nếu những luật đó
đƣợc tuân theo, những lỗi bề mặt sẽ đƣợc ―loại bỏ‖, trƣớc thực tế la phải
tránh những lỗi nay đầu tiên. Kết quả la những lỗi bề mặt (75 – 90 % những
lỗi thƣờng thấy khi kiểm tra theo các truyền thống) đƣợc loại trừ ở phƣơng
diện lý thuyết. Sữ dụng những cấu trúc mẫu cung cấp cho hệ thống một sự
định nghĩa rõ rang để tăng tinh chống chịu lỗi của nó.
Việc sử dụng những hệ thống mẫu đƣợc thể hiện ở ―sự định nghĩa
cách áp dụng FMap cho hệ thống ―hình 11-2. Ham đầu tiên nhân
FLATwood and ROUNDwood nhƣ tham số đầu vao va trả ra một table.
MakeATable là (hàm cha) đƣợc tách rời thanh ham con MakeParts va
Assemble bằng phép Join.. MakeParts nhận FLATwood va ROUNDwood
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 413
từ cha va tạo ra Top,Legs. Top,Legs đƣợc đƣa cho Assemble nhƣ tham số
đầu vao. Assemble đƣợc quản lý bởi cha của nó để phụ thuộc vao những
tham số đầu vao từ MakeParts. Assemble tạo ra Table va đua cho cha.
Nhƣ la một ham cha, MakeParts đƣợc tách ra thanh các ham nhỏ
hơn. MakeTop va Make Legs đƣợc điều chỉnh để độc lập với nhau với phép
Include của cấu trúc điều khiển gốc. MakeTops nhận vao một phần đầu vao
của cha va MakeLegs nhận vao phần con lai. MakeLegs cung cấp một phần
của output (Leg) cho ham cha, va MakeTop cung cấp phần con lai.
MakeTop điều khiển những ham con của nó la FinishSoftWood va
FinishHardWood với phép Or. Ở đây, cả 2 ham con đều nhận vao tham số
đầu vao giống nhau va có cung một kết quả trả về bởi vì chỉ có một trong 2
ham đƣợc thực hiện để cho ra kết quả. FinishSoftWood chạy nếu ham
―is:Soft,Wood‖ cho kết quả la Đúng,ngƣợc lại FinishHardWood sẽ chạy.
Chú ý rằng trong hệ thống các tham số đầu vao(input)(VD FLATwood) có
thể đƣợc tra (truy) xuống từ các ham cha đến các ham con va các kết quả
đầu ra (output) (VD Table) có thể đƣợc tra (truy) lên từ những ham con đến
hàm cha.
Ham MakeATable của Tmap,Table, không sử dụng những cấu trúc
mẫu gọi la cấu trúc type (type structures). La một khái niệm đƣợc thảo luận
ở phần sau.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 414
Hình 11-2 The Three Primitive Structures. Đƣợc sử dụng để tách rời
một Map.Phần FMap của hệ thống, MakeATable,đƣợc lam bằng cách sử
dụng JOIN, INCLUDE, and OR để quản lý những ham độc lập, phụ thuộc
va ham quyết định.
Mỗi type ở Tmap có thể đƣợc tách rời tách rời các phần của cấu trúc
gốc (primitive structures) thanh những type con nơi ma mối quan hệ giữa
các type rõ ràng. Ở hình 11-3 Table với vai trò la cha đƣợc tách thanh các
ham nhỏ hơn, Top va Legs, tại đó mối quan hệ giũa Top va Legs la on-1
and on-2. theo thứ tự, quan hệ giữa Table va legs la r-1 va quan hệ của
Table và Top là r-0. Chú ý rằng việc tạo ra một Table Top (dependen)dựa
vào Legs hình 11-3 a. Mặt khác, quan hệ độc lập(independen) tồn tại giữa
FrontLegs va BackLegs thể hiện ở bảng B. The Table (ý la bảng B) có thể
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 415
có FrontLegs hay BackLegs (bên phải), hoặc cả 2 cái (ỏ bên trái). Hình 11-
3.c Minh hoạ một cấu trúc quyết định(hay ham quyet dinh) (a decision
Structure) với các đối tƣợng không giống với các cấu trục phụ thuộc hay
không phụ thuộc, mô hình của OMap luôn khác với mô hình của TMap bởi
vì chỉ có một đối tƣợng đƣợc chọn để cung cấp cho các ham cha nhƣ vi dụ
trên.
Exhibit 11-3. A TMap(va cấu trúc Omaps tƣơng ứng) có thể tách the
Three Primitive Control Structures thanh những quan hệ rõ rang.
Điều đó nói lên, một hệ thống đã đƣợc định nghĩa theo những cấu
trúc đó ở các tinh chất(mặt bản chất), hổ trợ một môi trƣờng phân phối
thực. Mỗi hệ thống đƣợc cắt nhỏ, mỗi đối tƣợng có thể đƣợc truy vết (kiểm
tra) va cấu hình lại va có một thứ tự ƣu tiên duy nhất. Sự phụ thuộc va
không phụ thuộc có thể đƣợc phát hiện va sử dụng để quyết định xem viêc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 416
xử lý song song hay tuần tự la tốt hơn. Với những tinh chất đó, một hệ
thống đƣợc định nghĩa từ sớm để tăng tối đa khả năng chống chịu với sụ
thay đổi va lợi dụng khả năng sử lý song song của hệ thống.
11.5 DEFINED STRUCTURES
Tất cả các hệ thống có thể định nghĩa hoan toan chỉ dựa trên cấu trúc
mẫu nhƣng it cấu trúc mẫu có thể đƣợc tìm thấy từ các cấu trúc mẫu khác
va thúc đẩy quá trình định nghĩa va hiểu hệ thống. Các cấu trúc không mẫu
có thể đƣợc định nghĩa cho FMap va TMap điều nay có thể tạo ra sự không
đồng bộ, lam mất đi khả năng sử dụng trong thời gian thực. Một các tƣơng
tự, cấu trúc truy vấn va tìm kiếm (retrieval and query structures) có thể
đƣợc định nghĩa cho hệ thống quản lý cơ sở dữ liệu client-server.!
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 417
Hình 11-4 Sử dụng các cấu trúc đƣợc định nghĩa để định nghĩa các
cấu trúc không dùng để định nghĩa. CO-INCLUDE la một vi dụ của ở hệ
thống trên, cái đƣợc biến thanh một cấu trúc đƣợc định nghĩa
CoInclude la một vi dụ ở hệ thống trên, điều thƣờng thấy (hình 11-
4). Mô hình FMap của nó đã đƣợc định nghĩa với các cấu trúc mẫu. Bên
trong CoInclude, mọi giữ nguyên cho mỗi lần sử dụng trừ nút A va B của
ham con. Mẫu CoInclude có thể đƣợc định nghĩa từ nhƣ một cấu trúc không
chuẩn về nhiều cấu trúc mẫu bằng việc vân dụng các cấu trúc đã định nghĩa.
Ý tƣởng nay la một vi dụ những mẫu có thể tái sử dụng cho FMaps va
Tmaps.
Kèm với sự định nghĩa cấu trúc la sự định nghĩa về mặt cú pháp để
sử dụng (hình 11-4.b). hình 11-4.c cung cấp một cách dùng ẩn (một vi dụ)
(―hidden reuse‖) của toan bộ hệ thống nhƣ đƣợc định nghĩa, nhƣng chỉ trình
bay những yếu tố cơ bản một cách rõ rang (đó la ham A va B). Cấu trúc
Coinclude đƣợc sử dụng tƣơng tự nhƣ cấu trúc Include nhƣng với
Coinclude user đƣợc linh động hơn ở những chi tiết đƣợc sử dụng thƣờng
xuyên,những yêu cầu va những sự lựa chọn. Mỗi cấu trúc đƣợc định nghĩa
có những quy tắc (rules) gắn với nó để sử dụng cũng nhƣ ở các cấu trúc
quản lý mẫu. những quy tắc của các cấu trúc không mẫu (the nonprimitives)
thật ra cũng la sự thừa kế các quy tắc của cấu trúc mẫu (the primitives).
Async (hình 11-5) la một cấu trúc thời gian thực, chia sẽ, giao tiếp
với cách hoạt động đồng bộ hoặc không đồng bộ. Hệ thống Async đƣợc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 418
định nghĩa với các hám gốc nhƣ Or, Include, va cấu trúc ngƣời dùng định
nghĩa CoInclude. Nó không thể đƣợc phân rã sâu hơn vì những ham sâu
nhất của nói đã la những ham gốc (primitive function) ở những dạng đã
đƣợc định nghĩa (xem lại đặc điểm 2: Any và Clone1: Any under End: là
những thao tác cơ bản trên kiểu Eny) đệ quy (xem Async phia dƣới
DoMore), hoặc một vai ham cho những cấu trúc đã đƣợc định nghĩa (xem
A va B ở dƣới quá trình). Nếu một nốt la không rơi vao những dạng đó, nó
có thể đƣợc phân rã sâu hơn hoặc nó có thể đƣợc thay thế bằng các ham
trong thƣ viện (library) hoăc các ngoại ham ở từ môi trƣờng ngoai.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 419
Hình 11-5. Async la một cấu trúc đƣợc định nghĩa có thể dƣợc sử
dụng để định nghĩa một hệ thống chia sẻ (hệ thống song song) với cách hoạt
động đồng bộ hoặc không đồng bộ.
CoordinateTasks sử dụng Async nhƣ la một nơi để TurnAndPlan va
Move phụ thuộc lẫn nhau, sự giao tiếp, các thao tác đồng bộ va tuần tƣ. 2
robots ở hệ thống lam việc với nhau để thực hiện đƣợc tác vụ nay, tƣơng tự
nhƣ việc xây dựng một cái bảng (table). Đây la một giai đoạn của việc lập
kế hoạch robot, RB is coordinated với cái giai đoạn tiếp theo của RA.
Khả năng tái sử dụng có thể đƣợc dùng với một Mẫu TMap (TMap
model) bằng cách sử dụng những kiểu cấu trúc định nghĩa bởi ngƣời dùng,
các cấu trúc đó cung cấp cơi chế để định nghĩa một TMap bỏ qua các ràng
buộc đơn lẻ. Bảng TMap (hình 11-2) sử dụng một tập các cấu trúc định
nghĩa bởi ngƣời dùng. Table nhƣ dạng cha quản lý những dạng con Legs va
Top về mặt cấu trúc TupleOf,Legs cũng quản lý những con của nó Leg về
mặt OsetOf, Wood quản lý Hard va Soft ở OneOf. TupleOf la một bộ với
số lƣợng xác định những kiểu khác nhau có thể có của đối tƣợng. OSetOf la
một bộ với số lƣợng thay đổi những kiểu tƣơng tự nhau của đối tƣợng va
one of la một sự phân lớp những kiểu khác nhau của một đối tƣợng, từ đó
bất cứ đối tƣợng nao cũng có thể đƣợc sắp vao các class. Các cấu trúc phia
trên độc lập với TreeOf cái có thể đƣợc sử dụng để thiết kế nhiều dạng của
TMap. TreeOf la một tập các kiểu giống nhau của cac đối tƣợng có sắp thứ
tƣ, nó sử dụng hệ thống cây đánh chỉ mục. Với việc sử dụng các cơ chế nhƣ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 420
các cấu trúc đã đƣợc định nghĩa, một hệt thống có thể tăng cƣờng tối đa khả
năng của nó từ ban đâu cho việc tái sử dụng.
11.6 FMAPS, TMAP VÀ SỰ KẾT HỢP CỦA CHÖNG
Hình 11-6 thể hiện sự định nghĩa cho một hệ thống hoan chình cho
môt công ty với sự kết hợp của một tập các FMap va TMap. Tác vụ của
Công ty nay có thể đƣợc thiết lập thanh một bảng – với sự giúp đơ của
robot để hoan thanh các công việc- sử dụng những cấu trúc đã đƣợc định
nghĩa nhƣ ở trên. Bởi vì hệ thống trên đã đƣợc định nghĩa xong, nó sẵng
sang để phát triển, hoan thanh va kết hợp các thao tác lại thanh sản phẩm
cuối. FMap của hệ thống Is_FullTime_Employee đƣợc phận rã cho đến khi
đạt đƣợc những hảm gốc ở phần TMap, MfgCompany. (ở vi dụ
Emps=Moveto:Employees (MfgC) Nơi ma MfgC kiểu MfgCompany va
Emps thuộc kiểu Employees.). MfgCompany đƣơc phân rã cho đến khi
những lá của nó la các kiểu gốc hay la một kiểu đƣợc định nghĩa bởi TMap
khác.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 421
Hình 11-6 Một hệ thống hoan chỉnh la một sự kết hợp Fmaps Tmaps,
nơi FMap đƣợc phân rã đến những ham gốc trong các kiểu của TMaps.
TMaps đƣợc phân rã tới những kiểu gốc. Cụ thể những kiểu trừu tƣợng
những cấu trúc ngƣời dùng tự định nghĩava áp dụng vao trong các node lá
của FMap.
Trên hệ thông, Is_FullTime_Employee sử dụng các đối tƣợng định
nghĩa bởi TMap, MfgCompany, để kiểm tra xem một công nhân la lam việc
Fulltime hay part time. Đầu tiên, tạo đối tƣợng kiểu MfgCompany, MfgC,
một va một đối tƣợng kiểu Employees, Emps. Cấu trúc LocateUsing:Name
(một cấu trúc đã đƣợc định nghĩa) tìm một Employee dựa vao tên. Môt khi
tìm thấy, ta chuyển từ Emp đến PS. Thao tác YN=is:FullTime(PS) đƣợc sử
dụng để tìm ra từ PS ngƣời Emp la lam việc toan bộ thời gian hay không.
Nếu la có YN = true.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 422
Mỗi cấu trúc đam nhận một tập các quan hệ với cấu truc cha và con
của nó. Ở vi dụ trên: TMaps MfgCompany đƣợc phân rã thanh Departments
va Employees TupleOf. Departments đƣợc phân rã thanh Purchasing,
Production, va Marketing về mặt ManagementOf (a user-defined type
structure). Employee đƣợc phân rã về mât OsetOf. Một nhánh con của
Employee, PayScale đƣợc phận rã về mặt OneOf.
Các kiểu trừu tƣợng đƣợc phân rã với các cấu trúc tƣơng ứng ở
TMaps kế thừa (hay tái sử dụng) những thao tác cơ bản (primitive
operations) nên có cách hoạt đông giống nhau. VD: MfgCompany và
Employee cùng kế thừa những thao tác cơ bản của kiểu cấu trúc, TupleOf.
ở vi dụ, ta thấy ở FMap, cả 2 kiểu đều sử dụng các thao tác gốc MoveTo cái
đƣợc kế thừa từ TupleOf.
Mỗi cách sử dụng MoveTo la một vi dụ Child = MoveTo: la thao tác
con của cấu trúc kiểu TupleOf. Vd: Emps=MoveTo:Employees(MfgC) cho
phép tìm vị tri của một nhân viên ở trong đố tƣợng MfgCompany. Một kiểu
có thể la cấu trúc không gốc (Departments), cấu trúc gốc (e.g., FullTime),
một định nghĩa cái đƣợc định nghĩa ở những cây con khác (Employee). Khi
một nút lá chứa tên cũa một cấu trúc ở cây con khac, các đối tƣợng con
(child object) sẽ đƣợc thêm vao nơi đối tƣợng cha (parent object) điều kiển
hoặc một tham chiếu ra đối tƣợng ngoai (external object) sẽ đƣợc thêm vao
nơi của đối tƣợng con (đê có thể định hình mối quan hệ của một đối tƣợng
cha va đối tƣợng ngoai)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 423
11.7 NHỮNG PHÉP TOÁN NGUYÊN THỦY THÔNG DỤNG
The TMap provides universal primitive operations, which are used
for controlling objects and object states inherited by all types. They create,
destroy, copy, reference, move, access a value, detect and recover from
errors, and access the type of an object. They provide an easy way to
manipulate and think about different types of objects. With universal
primitive operations, building systems can be accomplished in a more
uniform manner. TMap and OMap are also available as types to facilitate
the ability of a system to understand itself better and manipulate all objects
the same way when it is beneficial to do so.
TMap cung cấp các phép toán nguyên thủy thông dụng, đƣợc sử
dụng cho việc kiểm soát các đối tƣợng va các trạng thái của đối tƣợng đƣợc
kế thừa bởi tất cả các loại (types). Chúng tạo, hủy, sao chép, tham chiếu, di
chuyển, truy cập một giá trị, phát hiện va truy cập các loại đối tƣợng. Với
các phép toán nguyên thủy phổ thông,việc xây dựng hệ thống có thể đƣợc
thực hiện một cách thống nhất hơn. TMap va OMap cũng sẵn sang nhƣ la
các loại (types) tạo điều kiện thuận lợi cho khả năng hệ thống tự hiểu tốt
hơn va thuận lợi hơn khi thao tác tất cả các đối tƣợng theo cùng một cách
TMap properties ensure the proper use of objects in an FMap. A
TMap has a corresponding set of control properties for controlling spatial
relationships between objects. One cannot, for example, put a leg on a table
where a leg already exists; conversely, one cannot remove a leg from the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 424
table where there is no leg. A reference to the state of an object cannot be
modified if there are other references to that state in the future; reject values
exist in all types, allowing the FMap user to recover from failures if they
are encountered.
Những tinh chất của TMap đảm bảo sử dụng đúng đối tƣợng trong
FMap. TMap có một bộ tƣơng ứng của các thuộc tinh điều khiển cho việc
kiểm soát các mối quan hệ không gian giữa các đối tƣợng. Vi dụ: một chân
của cái ban không thể đặt lên ban khi ma cái ban chỉ có một chân; ngƣợc
lại, ngƣời ta không thể gơ bỏ một chân của ban khi ma cái ban không có
chân. Sự tham chiếu đến trạng thái của một đối tƣợng không thể bị sửa đổi
nếu có sự tham chiếu khác đến trạng thái trong tƣơng lai; việc từ chối các
giá trị tồn tại trong tất cả các loại(types), cho phép ngƣời sử dụng FMap để
phục hồi từ lỗi nếu họ gặp phải.
The same types of definition mechanisms are used to define
RotateRotateArm, a hardware system (Exhibit 11-7), as were used to define
the preceding software system. Note that this system also includes the use
of primitives for numeric calculation. In this system, the rotation of the
robot arm is calculated to move from one position to another in a
manufacturing cell to transfer a part. The universal operation (an example
of another form of reusable with polymorphism), Replace, is used twice in
this example. Each use of a universal operation has function qualifiers that
select a unique TMap parent–child combination to be used during the
application of the function.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 425
Cùng loại của các định nghĩa kĩ thuật đƣợc sử dụng để định nghĩa
RotateRotateArm, một hệ thống phần cứng (hình 11-7), nhƣ đã đƣợc sử
dụng để định nghĩa hệ thống phần mềm trƣớc đó. Lƣu ý rằng hệ thống nay
cũng bao gồm việc sử dụng nguyên thủy để tinh số. Trong hệ thống nay,
luân chuyển của các cánh tay robot đƣợc tinh toán để chuyển từ một vị tri
tới một vị tri khác trong một tế bao đang đƣợc sản xuất để chuyển giao một
phần. Các phép tinh phổ thông (một vi dụ về một hình thức khác có thể tái
sử dụng với tinh đa hình), thay thế, đƣợc sử dụng 2 lần trong vi dụ nay. Mỗi
sử dụng của một phép tinh phổ thông có vòng loại chức năng ma chọn một
sự kết hợp TMap parent-child duy nhất đƣợc sử dụng trong việc áp dụng
các chức năng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 426
Exhibit 11-8 has a definition that takes further advantage of the
expressive power of a TMap with the option of using explicitly defined
relations. In this example, a stack of bearings is described. A bearing in the
stack may be under (with relation on-0) or on (with relation on-1) another
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 427
bearing object in the stack as defined by the DSetOf structured type. A
bearing object is decomposed into a Cap, a RetainerWith Balls, and a Base.
Object relationships at this level show that the Cap is above the
RetainerWithBalls, which is, in turn, above the Base. Further detail reveals
that a Retainer has (with the has-n relation) some number of
RetainerHoleWithBall objects. The set of RetainerHoleWithBall objects are
independent of each other, defined by the ISetOf structured type. This
structure allows for physically independent relations on the objects in the
set. Here, different portions of the Cap surface are independently related
(with the on-Balls relation) to each individual Ball object (with the on-Ball
relation).
Hình 11-8 có một định nghĩa cho thấy sự thuận lợi xa hơn nữa của
sức mạnh diễn đạt của một TMap với quyền lựa chọn sử dụng rõ rang các
mối quan hệ đã đƣợc định nghĩa. Trong vi dụ nay, một chồng các bearing
(góc, phƣơng vị, định hƣớng, có thể nghĩa la ổ trục) đƣợc mô tả. Một
bearing trong ngăn xếp có thể la dƣới (với mối quan hệ trên-0) hoặc trên
(với mối quan hệ trên-1) một đối tƣợng bearing trong ngăn xếp đƣợc định
nghĩa bởi các kiểu cấu trúc DSetOf. Một đối tƣợng bearing bị phân hủy
thanh một Cap – RetainerWithBalls - Base.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 428
Những mối quan hệ của đối tƣợng ở level nay cho thấy rằng Cap thì
ở trên RetainerWithBalls, ma la, lần lƣợt, phia trên Base. Thêm chi tiết cho
thấy rằng một Retainer có (với quan hệ n) một số đối tƣợng
RetainerHoleWithBall. Tập các đối tƣợng RetainerHoleWithBall la độc lập
của nhau, định nghĩa bởi các kiểu cấu trúc ISetOf. Cấu trúc nay cho phép
các mối quan hệ vật lý độc lập về các đối tƣợng trong bộ nay. Ở đây, các
phần khác nhau của bề mặt Cap độc lập quan hệ (với trên-quan hệ Ball) với
mỗi đối tƣợng Ball riêng lẻ (với trên-quan hệ Ball).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 429
As experience is gained with different types of applications, new
reusables emerge for general or specific use. For example, a set of reusables
has been derived to form a higher level set of mechanisms for defining
maps of interruptable, asynchronous, communicating, distributed
controllers. This is essentially a second-order control system (with rules
that parallel the primary control system of the primitive structures) defined
with the formal logic of user-defined structures that can be represented
using a graphical syntax (Exhibit 11-9).
Theo kinh nghiệm đã có đƣợc với các loại khác nhau của ứng dụng,
Resables mới xuất hiện (nổi lên) cho tổng thể hoặc việc sử dụng kĩ thuật. Vi
dụ, một bộ reusables đã đƣợc suy ra để tạo thanh một bộ kĩ thuật, cơ
chế(mechanisms) cấp cao hơn để xác định các bản đồ của interruptable,
không đồng bộ, giao tiếp, phân phối các bộ điều khiển. Điều nay về bản
chất la một hệ thống điều khiển lệnh thứ 2 (a second-order control system)
(với các quy tắc song song với hệ thống điều khiển chinh của các cấu trúc
nguyên thủy) đƣợc định nghĩa theo hình thức logic của cấu trúc xác định
ngƣời dùng, có thể đại diện cho cách sử dụng cú pháp đồ họa (Hình 11-9).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 430
In such a system, each distributed region is cooperatively working
with other distributed regions and each parent controller may interrupt the
children under its control. In this example, the robot controller may apply
an arm controller or a sensor controller. If the arm controller is activated,
the two grippers may concurrently use an Include to hold two ends of some
object. If the sensor controller is activated, a sensor unit uses a Join to sense
some image, followed by an image unit matcher. These reusables can also
be used to manage other types of processes such as those used to manage a
software development environment or a corporation.
Trong hệ thống nhƣ vậy, mỗi vùng đƣợc phân phối đang lam việc
hợp tác với các vùng khác phân phối va mỗi điều khiển parent có thể lam
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 431
gián đoạn children dƣới sự kiểm soát của nó. Trong vi dụ nay, bộ điều
khiển robot có thể áp dụng một bộ điều khiển cánh tay hoặc bộ điều khiển
cảm biến. Nếu bộ điều khiển cánh tay(cái arm controller) đƣợc kich hoạt,
hai grippers(chắc la tên 1 bộ phận nao đó của ngƣời máy) đồng thời có thể
sử dụng một Include (không biết danh từ la gì?) để giữ hai đầu của một số
đối tƣợng. Nếu bộ điều khiển cảm biến đƣợc kich hoạt, một đơn vị cảm
biến sử dụng một Join(hợp,nối) để tham gia vao một số hình ảnh, theo sau
la một đơn vị Matcher hình ảnh. Những reusables nay cũng có thể đƣợc sử
dụng để quản lý các loại khác của tiến trình giống nhƣ những cái đó đƣợc
sử dụng để quản lý một môi trƣờng phát triển phần mềm hoặc một tập đoan
The extent to which reuse is provided is a most powerful feature of
DBTF. Everything developed is a candidate — reusable (and inherently
integratable) within the same system, other systems, and these systems as
they evolve. Commonality is ensured simply by using the language. The
designer models the objects and their relationships and the functions and
their relationships; the language inherently integrates these aspects as well
as takes care of making those things that should be objects become objects.
In fact, FMaps are defined in terms of TMaps and use TMaps as reusables,
while TMaps are defined in terms of FMaps and use FMaps as reusables.
Mức độ sử dụng lại đƣợc cung cấp nhƣ la một tinh năng mạnh của
DBTF.Mọi thứ đƣợc phát triển một ứng cử viên - reusable (có thể sử dụng
lại) (va vốn có thể cấu thanh)(inherently integratable) trong cùng một hệ
thống, các hệ thống khác, va các hệ thống nay khi họ phát triển. Sự tƣơng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 432
đồng đƣợc đảm bảo chỉ đơn giản bằng cách sử dụng ngôn ngữ. Các nha
thiết kế các mô hình các đối tƣợng va mối quan hệ của chúng va các chức
năng va các mối quan hệ của chúng; ngôn ngữ vốn có thể cấu thanh các
khia cạnh nay cũng nhƣ bảo đảm lam những điều đó, thứ nên la đối tƣợng
trở thanh đối tƣợng. Trong thực tế, FMaps đƣợc định nghĩa trong điều
khoản của TMaps va TMaps sử dụng nhƣ la reusables, trong khi TMaps
đƣợc định nghĩa trong điều khoản của FMaps va FMaps sử dụng nhƣ la
reusables.
11.8 XEM XÉT THỰC HIỆN
When designing a system environment, it is important to understand
the performance constraints of the functional architecture and to have the
ability to change configurations rapidly. A system is flexible to changing
resource requirements if the functional architecture definition is separated
from its resource definitions.
Khi thiết kế môi trƣờng hệ thống, quan trọng la phải hiểu đƣợc
những thi hanh hạn chế của các kiến trúc chức năng va phải có khả năng
phải thay đổi cấu hình nhanh chóng. Một hệ thống phải linh động trong việc
thay đổi các yêu cầu về tai nguyên nếu việc định nghĩa kiến trúc chức năng
đƣợc tách ra các định nghĩa tai nguyên của nó.
To support such flexibility with the necessary built-in controls, with
DBTF the same language is used to define functional, resource, and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 433
allocation architectures. The meta-language properties of the language can
be used to define global and local constraints for FMaps and TMaps.
Constraints can be defined in terms of FMaps and TMaps. If we place a
constraint on the definition of a function (e.g., Where F takes between two
and five seconds), then this constraint influences all functions that use this
definition. Such a constraint is global with respect to the uses of F.
Để hỗ trợ tinh linh hoạt nhƣ vậy với sự cần thiết đƣợc xây dựng
trong sự điều khiển, với DBTF cùng một ngôn ngữ đƣợc sử dụng để xác
định chức năng, nguồn tai nguyên, va kiến trúc phân bổ. Những tinh chất
siêu ngôn ngữ của ngôn ngữ có thể đƣợc sử dụng để xác định những hạn
chế trên toan cục va cục bộ cho FMaps va TMaps. Những rang buộc có thể
đƣợc xác định trong điều khoản của FMaps va TMaps. Nếu chúng ta đặt ra
một sự rang buộc về định nghĩa của một chức năng(ham) (vi dụ, ở đâu F
mất từ hai đến năm giây), sau đó rang buộc nay ảnh hƣởng đến tất cả các
chức năng (ham) sử dụng định nghĩa nay. Đó la một hạn chế toan cục đối
với việc sử dụng của F
A global constraint of a definition may be further constrained by a
local constraint placed in the context of the definition using that definition;
e.g., when function G uses F, where F takes six seconds (not two to five
seconds). The validity of constraints and their interaction with other
constraints can be analyzed by static or dynamic means. The property of
being able to trace an object throughout a definition supports this type of
analysis and provides the ability to collect information on an object as it
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 434
transitions from function to function. As a result, one can determine the
direct and the indirect effects of functional interactions of constraints.
Một rang buộc toan cục của một định nghĩa có thể đƣợc thêm hạn
chế bởi một hạn chế của cục bộ, đặt trong bối cảnh của việc định nghĩa
bằng cách sử dụng định nghĩa đó; vi dụ, khi chức năng G sử dụng F, nơi ma
F mất sáu giây (không phải 2-5 giây). Thời hạn hiệu lực của các rang buộc
va sự tƣơng tác của chúng với những rang buộc khác có thể đƣợc phân tich
bằng phƣơng pháp tĩnh hoặc động. Các tinh chất (thuộc tinh) của việc có
thể truy dấu vết một đối tƣợng trong suốt một định nghĩa hỗ trợ các loại
phân tich nay va cung cấp khả năng thu thập thông tin trên một đối tƣợng
khi nó chuyển tiếp giữa các chức năng(các ham)(từ các chức năng đến chức
năng). Kết quả la, ngƣời ta có thể xác định những ảnh hƣởng trực tiếp va
gián tiếp của sự tƣơng tác chức năng(ham) của các rang buộc
11.9 HÕA HỢP VỚI HỆ THỐNG HƢỚNG ĐỐI TƢỢNG
A DBTF system is by nature an inherent integration of function
(including timing) and object orientation from the beginning, i.e., it is a
system-oriented object. The definition space is a set of real-world objects,
defined in terms of FMaps and TMaps.
Một hệ thống DBTF la do sự thống nhất bản chất vốn có của chức
năng (ham) (bao gồm cả thời gian) va sự định hƣớng đối tƣợng từ đầu,
nghĩa la, nó la một hệ thống theo hƣớng đối tƣợng. Không gian định nghĩa
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 435
la một tập các đối tƣợng trong thế giới thực, đƣợc xác định trong điều
khoản của FMaps va Tmaps
Objects, instantiations of TMaps, are realized in terms of OMaps. An
execution, which is an instantiation of an FMap, is realized in terms of an
EMap. Definitions are independent of a particular implementation — e.g.,
building block definitions with a focus on objects are independent of
particular object-oriented implementations. Properties of classical object-
oriented systems such as inheritance, encapsulation, polymorphism, and
persistence are supported with the use of generalized functions on OMaps
and TMaps.
Đối tƣợng, instantiation(sự thuyết minh(cai đặt)) của TMaps, đƣợc
thực hiện trong điều khoản của OMaps. Sự thực hiện, đó la một
instantiation của một FMap, đƣợc thực hiện trong điều khoản của một
EMap. Định nghĩa thì độc lập với một việc thi hanh cụ thể - vi dụ nhƣ, xây
dựng các định nghĩa block với một sự tập trung vao đối tƣợng thì độc lập
đối với sự thi hanh riêng của hƣớng đối tƣợng. Tinh chất kinh điển (cổ
điển) của hƣớng đối tƣợng nhƣ sự thừa kế, đóng gói, đa hình, va cứng
nhắc(bền bỉ,cố chấp) đƣợc cung cấp với việc sử dụng các chức năng tổng
quát về OMaps va TMaps.
The DBTF approach derives from the combination of steps taken to
solve the problems of the traditional ―after the fact‖ approach. Collective
experience strongly confirms that quality and productivity increase with the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 436
increased use of DBTF properties. A major factor is the inherent reuse in
these systems, culminating in ultimate reuse, which is either inherent or
automation itself.
Cách tiếp cận DBTF xuất phát từ sự kết hợp của các bƣớc thực hiện
để giải quyết những vấn đề của phƣơng pháp tiếp cận truyền thống "sau cơ
sở lập luận‖ (after the fact). Tập hợp kinh nghiệm vững chắc cho thấy rằng
chất lƣợng va tăng năng suất tăng lên với việc sử dụng tinh chất DBTF.
Một yếu tố chủ yếu la tái sử dụng cái vốn có trong các hệ thống nay, ma
đỉnh cao nhất la trong tái sử dụng cuối cùng, đó la hoặc cố hữu hoặc tự
động hóa của chinh nó.
From FMaps and TMaps, any kind of system can be automatically
developed, resulting in complete, integrated, and production-ready target
system code and documentation. This is accomplished by the 001 Tool
Suite, an automation of the technology. The tool suite also has a means to
observe the behavior of a system as it is evolved and executed in terms of
OMaps and EMaps.
If asked if there were a way to develop any kind of software with:
• Seamless integration, including systems to software
• Correctness by built-in language properties
• No interface errors
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 437
• Defect rates reduced by a factor of ten
• Guarantee of function integrity after implementation
• Complete traceability and evolvability (changing applications,
archi-tectures, and technologies)
• Full life cycle automation
• No manual coding
• Maximized reuse including that which is automated or inherent
• Minimum time and minimum effort
• A tool suite
Từ FMaps va TMaps, bất kỳ loại hệ thống có thể đƣợc tự động phát
triển, kết quả hoan thanh, tich hợp, va sản xuất-mã sẵn sang hệ thống đich
va tai liệu. Điều nay đƣợc hoan thanh bởi bộ công cụ 001 (001 Tool Suite),
sự tự động hóa của công nghệ. Các bộ công cụ nay cũng có một phƣơng
tiện để quan sát hanh vi của một hệ thống nhƣ la nó đƣợc phát triển va thực
hiện trong điều khoản của OMaps va EMaps.
Nếu đƣợc hỏi nếu có một cách thức để phát triển bất kỳ loại phần mềm với:
• Sự hợp nhất liền lạc, bao gồm hệ thống phần mềm
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 438
• Sự đúng đắn trong các tinh chất của ngôn ngữ đƣợc xây dựng
• Không có lỗi giao diện
• Thiếu số giảm gấp mƣời
• Bảo đảm tinh toan vẹn chức năng sau khi thực hiện
• Bổ sung dấu vết(nguồn gốc)va tiến hóa (khi thay đổi các ứng
dụng, kiến trúc, va công nghệ)
• Cuộc sống đầy đủ chu kỳ tự động hóa
• Không mã hóa (code) bằng tay
• Tối đa hóa việc tái sử dụng bao gồm rằng đó la tự động hoặc
không tách ra đƣợc (cố hữu)
• Tối thiểu thời gian va tối thiểu công sức (nỗ lực)
• Một công cụ bộ
— all defined and automatically generated by itself, most people
would say this is impossible, at least in the foreseeable future. This is not
impossible; in fact, it is possible today with the 001 systems design and
software development environment (Exhibit 11-10 contains a summary that
compares the traditional ―after the fact‖ environment with a DBTF
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 439
environment). Why can it do what it does? It is not magic. Simply put, it is
because this environment automates and is based on the Development
Before The Fact paradigm.
- Tất cả các quy định va tự động tạo ra bởi chinh nó, hầu hết mọi
ngƣời sẽ nói điều nay la không thể, it nhất la trong tƣơng lai gần. Điều nay
không phải la không thể trong thực tế, có thể hôm nay với thiết kế hệ thống
001 va môi trƣờng phát triển phần mềm (hình 11-10 có chứa một bản tóm
tắt so sánh truyền thống "sau khi thực tế‖ (―after the fact‖) môi trƣờng với
môi trƣờng DBTF). Tại sao nó có thể lam những gì nó lam? Nó không phải
la kỳ diệu. Một cách đơn giản, đó la vì môi trƣờng nay tự động hóa va đƣợc
phát triển dựa trên mẫu ―sự phát triển trƣớc thực tế‖ (Development Before
The Fact)
Traditional (After the Fact) DBTF (Before the Fact)
Integration ad hoc, if at all
~Mismatched methods, objects,
phases, products architectures,
applications, and environment
~System not integrated(thống
nhất,nhóm lại) with software
~Function oriented or object
Integration
~Seamless life cycle: methods,
objects, phases products,
architectures, applications, and
environment
~System integrated(thống nhất, hợp
nhất) with software
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 440
oriented
~GUI not integrated with
application
~Simulation not integrated with
software code
~System oriented objects:
integration of function, timing, and
object oriented
~GUI integrated with application
~Simulation integrated with
software code
Behavior uncertain until after
delivery
Correctness by built-in language
Interface errors abound and infiltrate
the system (over 75% of all errors)
~Most of those found are found
after implementation
~Some found manually
~Some found by dynamic runs
analysis
~Some never found
No interface errors
~All found before implementation
~All found by automatic and static
analysis
~Always found
Ambiguous requirements, Unambiguous requirements,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 441
pecifications, designs introduce
chaos, confusion and complexity
~Informal or semi-formal language
~Different phases, languages and
tools
~Different language for other
systems than for Software
specifications, designs remove
chaos, confusion, and complexity
~Formal, but friendly language
~All phases, same language and
tools
~Same language for software,
hardware and any other system
No guarantee of function integrity
after implementation
Guarantee of function integrity after
implementation
Đảm bảo tinh toan vẹn của công
thức
Inflexible: Systems not traceable or
evolvable
~Locked in bugs, requirements
products, architectures, etc.
~Painful transition from legacy
~Maintenance performed at code
Flexible: (linh động) Systems
traceable and evolvable
~Open architecture
~Smooth transition from legacy
~Maintenance performed at
specification level
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 442
level
Reuse not inherent
~Reuse is ad hoc
~Customization and reuse are
mutually exclusive
Inherent Reuse
~Every object a candidate for reuse
~Customization increases the reuse
pool
Automation supports manual
process instead of doing real work
~Mostly manual: documentation,
programming, test generation,
traceability, integration
~Limited, incomplete, fragmented,
disparate, and inefficient
Automation does real work
~Automatic programming,
documentation, test generation,
traceability, integration
~100% code automatically
generated for any kind of software
Product x not defined and developed
with itself
001 defined with and generated by
itself
~#1 in all evaluations
Dollars wasted, error prone systems
~High risk
Ultra-reliable systems with
unprecedented productivity in their
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 443
~Not cost effective
~Difficult to meet schedules
~Less of what you need and more of
what you don t need
development
~Low risk
~10 to 1, 20 to 1, 50 to 1 dollars sa
ved/dollars made
~Minimum time to complete
~No more, no less of what you need
Cách truyền thống DBTF
Sự phân tich ad hoc, nếu ở tất cả
~Phƣơng pháp ghép đôi, đối tƣợng,
giai đoạn, kiến trúc sản phẩm, ứng
dụng, va môi trƣờng
~Hệ thống không thống nhất với
phần mềm
~Hƣớng chức năng hay hƣớng đối
tƣợng
Sự phân tich
~Vòng sự sống: phƣơng pháp, đối
tƣợng, giai đoạn sản phẩm, kiến
trúc, những ứng dụng va môi trƣờng
~ Hệ thống thống nhất với phần
mềm
~Hệ thống hƣớng đối tƣợng: thống
nhất chức năng, thời gian, va hƣớng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 444
~GUI không thống nhất với ứng
dụng
~Sự mô phỏng thì không thống nhất
với code phần mềm
đối tƣợng
~GUI thống nhất với ứng dụng
~Sự mô phỏng thống nhất với code
phần mềm
Trạng thái không chắc chắn cho đến
khi phân phối
Việc sửa lỗi bằng ngôn ngữ xây
dựng
Lỗi giao diện Interface còn tồn tại
nhiều va xâm phạm đến hệ thống
(hơn 75% của tất cả các lỗi)
~Most of those found are found after
implementation (thực thi)
~Một số lỗi đƣợc tìm bằng tay
~một số tìm bằng cách phân tích
động
~Một số không bao giờ đƣợc tìm
thấy
Không có lỗi giao diện
~Tất cả đƣợc tìm thấy trƣớc khi thi
hành
~Tất cả đƣợc tìm thấy tự động va
phân tich tĩnh
~Luôn tìm đƣợc tất cả
Yêu cầu mơ hồ, không cụ thể, theo
hƣớng thiết kế hỗn loạn, rắc rối va
Yêu cầu không mơ hồ, cụ thể, thiết
kế specifications, rơ bỏ thiết kế hỗn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 445
phức tạp
~Ngôn ngữ không trang trọng, hoặc
bán trang trọng
~Các công cụ va ngôn ngữ khác
nhau ở các giai đoạn khác nhau
~Khác ngôn ngữ cho những hệ
thống khác nhau cho phần mềm
loạn, rắc rối va phức tạp
~Ngôn ngữ trang trọng, nhƣng thân
thiện
~Tất cả giai đoạn có cùng các ngôn
ngữ va công cụ
~Cùng ngôn ngữ cho phần mềm,
phần cứng va những hệ thống khác
Không đảm bảo tinh toan vẹn của
công thức
Đảm bảo tinh toan vẹn của công
thức
Không linh động: Các hệ thống
không thể truy vết va không thể tiến
hóa
~Bị khóa trong bugs, yêu cầu sản
phẩm, kiến trúc, etc.
~Khó chuyển đổi từ kế thừa
~Bảo trì ở mức độ code
Linh động: có thể truy vết va tiến
hóa
~Kiến trúc mở
~Chuyển đổi dễ từ kế thừa
~ Bảo trì ở mức độ kĩ thuật
Không dùng lại đƣợc Thửa hƣởng dùng lại
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 446
~Dùng lại ad hoc
~Chỉnh sửa va tái sử dụng thì riêng
biệt nhau
~Mỗi đối tƣợng đều có thể dùng lại
~Chỉnh sửa lam tăng tinh tái sử
dụng
Tự động hóa hỗ trợ quá trình bằng
tay thay vì lam công việc thực sự
~ Hầu hết lam bằng tay: tai liệu,
chƣơng trình, kiểm tra chung, kiểm
tra thế hệ, khả năng truy vết, sự phân
tích
~Hạn chế, không hoan chỉnh, không
đầy đủ, phân mãnh, Limited,
incomplete, fragmented, tạm nham,
va không hiệu quả
Sự động lam việc thật
~ Tự động ở chƣơng trình, tai liệu,
kiểm tra thế hệ, khả năng truy vết,
sự phân tich
~100% code tự động tạo ra cho
nhiều loại phần mềm
Sản phẩm x không đƣợc tự định
nghĩa va phát triển
001 đƣợc tự định nghĩa va tạo ra
~#1 trong sự ƣớc lƣợng
Lãng phi nhiều đô la, hệ thống nhiều
lỗi
~Rủi ro cao
Hệ thống tin cậy va năng suất sản
phẩm cao trong sự phát triển
~Rủi ro thấp
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 447
~Không hiệu quá
~Khó đáp ứng lịch trình
~Ít hơn cái bạn cần va nhiều hơn cái
bạn không cần
~10 - 1, 20 tới 1, 50 - 1 Đô la tiết
kiệm trên những đô la đƣợc lam ra
~Thời gian tổi thiếu để hoan thanh
~Không nhiều, không it hơn cái bạn
cần
Note:
001, 001 Tool Suite, DBTF, Development Before the Fact,
FunctionMap, FMap, TypeMap, TMap, ObjectMap, OMap, RoadMap,
RMap, ExecutionMap, EMap, RAT, System Oriented Object, SOO,
001AXES, are all trademarks of Hamilton Technologies, Inc.
Selected Bibliography (Nguồn tham khảo)
Hamilton, M. (1986). Zero-defect software: the elusive goal, IEEE
Spectrum, 23, 48–531986.
Hamilton, M. and Hackler, R. (1990). 001: a rapid development
approach for rapid prototyping based on a system that supports its own life
cycle, IEEE Proc.1st Int. Workshop Rapid Sys. Prototyping, Research
Triangle Park, NC, June 4, 1990.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 448
Hamilton, M. and Hackler, W.R. (in press). System Oriented
Objects: Development Before the Fact
Hamilton, M. and Hackler, W.R. (2000). Towards cost effective and
timely end-to-end testing, HTI, prepared for Army Research Laboratory,
Contract No. DAKF11-99-P-1236.
Hamilton, M. (1994). Inside Development Before the Fact, Electron.
Design, 31.
Hamilton, M. (1994). Development Before the Fact in action,
Electron. Design, (ESSoftware Engineering Tools Experiment-Final
Report, Vol. 1, Experiment Summary, Table 1, p. 9, Department of
Defense, Strategic Defense Initiative, Washington, D.C.)
Hornstein, R. and Hamilton, M. (in preparation). Realizing the
potential for COTS utilization: creating and assembling reusable
components right the first time, NASA, Washington, D.C., Hamilton
Technologies, Inc., Cambridge, MA.
Krut, Jr., B. (1993). Integrating 001 tool support in the feature-
oriented domain analysis methodology (CMU/SEI-93-TR-11, ESC-TR-93-
188), Pittsburgh, Software Engineering Institute, Carnegie Mellon
University.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 11: Kỷ thuật phát triển trước khi tiến hành công việc 449
Ouyang, M. and Golay, M.W. (1994). An integrated formal approach
for developing high quality software of safety-critical systems,
Massachusetts Institute of Technology, Cambridge, MA, Report No. MIT-
ANP-TR-035.
001 Tool Suite. Hamilton Technologies, Inc. Version 3.3.1 (1986-
2002) [www. htius.com]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 443
CHƢƠNG 12 BẢN ĐẶC TẢ THIẾT KẾ
Người dịch:
1. Đam Quỳnh Giang
2. Lê Anh Dũng
3. Nguyễn Thanh Tòng
4. Lê Văn Huy
5. Nguyễn Hoang Việt
The process of information systems development must pass through
a number of distinct phases in order to be successful. This process is
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 444
commonly known as the systems development life cycle (SDLC) and the
design specification is an essential and integral component of it. Design
specifications are blueprints showing what to build and how to build it.
Quy trình phát triển hệ thống thông tin phải qua một số bƣớc riêng
biệt để hoan thiện. Quá trình nay thƣờng đƣợc biết đến với tên Chu trình
phát triển hệ thống (System Development Life Cycle – SDLC) va bản đặc
tả thiết kế la một phần cần thiết va không thể thiếu trong đó. Bản đặc tả
thiết kế la những bản thiết kế cho biết phải lam cái gì va lam nhƣ thế nao.
12.1 QUY TRÌNH
By the time the systems designer comes to the design phase of the
system life cycle, he or she has a pretty clear understanding of what the new
system should do and why. This information is recorded in several
documents:
The feasibility study discusses the pros, cons, and costs of building
the system (see Appendix C).
The project plan provides preliminary information about the project,
its mission and goals, its schedule, and its cost estimate (see Appendix F).
The system requirements specification (SRS) contains detailed
information about the requirements of the system (see Appendix G).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 445
Khi ngƣời thiết kế hệ thống đi đến bƣớc thiết kế trong Chu trình phát
triển hệ thống, ông ta/ba ta có một hiểu biết khá rõ rang rằng hệ thống mới
phải lam gì va tại sao. Những thông tin nay đƣợc ghi lại trong một số tai
liệu:
Bản nghiên cứu tinh khả thi nói đến thuận lợi, bất lợi, chi phi để xây
dựng hệ thống (xem Phụ lục C).
Bản kế hoạch dự án cung cấp thông tin sơ bộ về dự án, nhiệm vụ va
mục tiêu của nó, thời gian biểu, chi phi dự kiến của nó (xem Phụ lục F)
Bản đặc tả yêu cầu hệ thống (System Requirements Specification –
SRS) chứa những thông tin chi tiết về yêu cầu hệ thống (xem Phụ lục G)
In spite of this detailed documentation, there may still be some
uncertainty regarding future capabilities of the new system due to the
different and changing perspectives of the end users and other stakeholders.
Different people will see different possibilities for the new system, which is
why a push to propose alternative solutions may take place. The designer
must then consider the different views, covering all structured
requirements, and transform them into several competing design strategies.
Only one design will eventually be pursued.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 446
Dù đã có những tai liệu chi tiết nay, vẫn có thể có vai điều không
chắc chắn về những khả năng tƣơng lai của hệ thống mới do những góc
nhìn khác nhau va thay đổi từ ngƣời dùng cuối va những bên liên quan.
Những ngƣời khác nhau sẽ nhìn thấy những triển vọng khác nhau cho hệ
thống mới, chinh la li do tại sao ngƣời ta cố gắng đƣa ra những giải pháp
khác nhau. Ngƣời thiết kế sau đó phải xem xét dƣới những góc nhìn khác
nhau, bao gồm mọi yêu cầu đã đƣợc cấu trúc hoá, va chuyển chúng thanh
một vai chiến lƣợc thiết kế có tinh cạnh tranh. Cuối cùng, chỉ một bản thiết
kế đƣợc chọn.
12.2 CHI TIẾT BẢN THIẾT KẾ
A variety of models were used in the analysis phase to help create a
high-level process model. These tools, which include data flow diagrams
(Exhibit 12-1), entity relationship diagrams (Exhibit 12-2), and state
transition diagrams (Exhibit 12-3), are invaluable in producing program
specifications as the move is made from logical models toward the physical
design of the system.
Nhiều mẫu khác nhau đƣợc dùng trong bƣớc phân tich để tạo ra một
mẫu cấp cao. Những công cụ nay, bao gồm những sơ đồ luồng dữ liệu (thể
hiện trong hình 12-2), va những sơ đồ chuyển đổi trạng thái (thể hiện trong
hình 12-3), đƣợc dùng để tạo ra các đặc tả kĩ thuật cho chƣơng trình khi
chuyển từ mẫu logic sang mẫu cai đặt trên hệ thống.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 447
Newcomers to the field often insist that analysis tools and
deliverables be different from the design phase tools and deliverables. More
commonly, many of the modeling tools and techniques used in the analysis
phase are also used during the design stage. In addition, there is definitely
an overlap between information contained within the SRS and information
contained within the SDS. For example, when developing structured
systems, analysts frequently use the DFD to describe the flow of
information throughout the system for the analysis phase — the logical
DFD. A more detailed set of DFDs is then created for the design phase —
the physical DFD. The same can be said for ERDs, STDs, data dictionaries,
and even process specifications.
Những ngƣời mới tiếp xúc với lĩnh vực nay thƣờng cho rằng những
công cụ phân tich va các thanh phần chuyển giao la khác với ở bƣớc thiết
kế. Thông thƣờng hơn, nhiều công cụ va kĩ thuật thiết kế mô hình đƣợc sử
dụng trong bƣớc phân tich cũng đƣợc dùng trong giai đoạn thiết kế. Thêm
vao đó, hẳn la có những phần giao nhau giữa thông tin chứa trong SRS va
thông tin của SDS. Vi dụ, khi phát triển một hệ thống có cấu trúc, các nha
phân tich thƣờng dùng sơ đồ luồng dữ liệu (Data Flow Diagram – DFD) để
mô tả luồng thông tin chuyển qua hệ thống trong bƣớc phân tich – gọi la sơ
đồ luồng dữ liệu logic. Một tập hợp các DFD chi tiết hơn sau đó đƣợc dùng
trong bƣớc thiết kế - bản DFD vật li. Cũng tƣơng tự nhƣ vậy đối với ERD,
STD, từ điển dữ liệu, thậm chi la các đặc tả của quy trình.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 448
Hình 12-2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 449
The DFD provides a good example of how a document created
originally during the analysis phase can be expanded during the design
phase. In the analysis phase a DFD is developed that shows a conceptual —
or context — view of the system as shown in Exhibit 12-4. The Level 0
diagram serves as a ―table of contents‖ for subsequent DFDs. Note that it
shows a generic ―0‖ process with attendant data flows.
Những bản DFD cung cấp một vi dụ rất tốt về cách một tai liệu đƣợc
tạo ra trong bƣớc phân tich, có thể đƣợc mở rộng nhƣ thế nao trong bƣớc
thiết kế. Trong bƣớc phân tich, một bản DFD đƣợc phát triển để thể hiện
một góc nhìn mang tinh khái niệm – hay la ngữ cảnh – của hệ thống nhƣ
trong hình 12-4. Sơ đồ cấp 0 đóng vai trò nhƣ la ―mục lục‖ của cho những
DFD sau. Chú ý rằng nó biểu diễn một quy trình có ―0‖ luồng dữ liệu kèm
theo.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 450
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 451
Hình 12-3
When drawing a DFD, a top–down approach is the most effective.
Steps include (Kendall, 2002):
Develop a list of typical business activities and use it to determine
external entities, data flows, processes, and data stores.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 452
Draw a context diagram that depicts external entities and data flows
to and from the system. The context diagram should be abstract — i.e., do
not show any detailed processes or data flows.
Khi vẽ một bản DFD, hƣớng tiếp cận từ trên xuống (top-down) là
hiệu quả nhất. Các bƣớc bao gồm (theo Kendall, 2002):
Phát triển 1 danh sách các hoạt động nghiệp vụ điển hình va dùng nó
để xác định các thực thể ngoai, luồng dữ liệu, các quy trình, va kho dữ liệu.
Vẽ ra một sơ đồ ngữ cảnh thể hiện các thực thể ngoai va luồng dữ
liệu từ hệ thống. Sơ đồ ngữ cảnh nên la trừu tƣợng – vi dụ, không thể hiện
những quy trình chi tiết hay luồng dữ liệu
Now draw diagram 0, which can be likened to a table of contents.
Diagram 0 is the next level of detail when using a top–down approach. As
we move down the hierarchy, we move from abstract and less detailed to
more detailed and more concrete.
Create a child diagram for each process depicted in diagram 0.
Check for any errors and make sure the labels assigned to processes
and data flows are logical and meaningful.
Now develop a physical data flow diagram from the logical data flow
diagram.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 453
Partition the physical data flow by separating the parts of the
diagram to facilitate programming and implementation.
Tiếp theo vẽ sơ đồ cấp 0, giống nhƣ một mục lục. Sơ đồ cấp 0 la cấp
chi tiết kế tiếp khi sử dụng cách tiếp cận từ trên xuống. Khi chúng ta dần
xuống cây thừa kế, chúng ta đi từ cấp trừu tƣợng, xuống cấp it chi tiết đến
nhiều chi tiết rồi cụ thể hơn.
Tạo một sơ đồ con cho mỗi quy trình đƣợc thể hiện trong sơ đồ cấp 0
Kiểm tra mọi lỗi va bảo đảm rằng các nhãn đƣợc gắn cho các quy
trình va luồng dữ liệu la logic va có nghĩa.
Phát triển luồng dữ liệu vật lý từ luồng dữ liệu logic.
Phân vùng luồng dữ liệu vật li bằng cách phân chia các phần của sơ
đồ để dễ lập trình va cai đặt.
In the design phase the designer analyzes the DFD and determines
how the data processes can be segregated into groups, each associated with
a type of process, as shown in Exhibit 12-5. Note that now far more detail is
specified.
Trong bƣớc thiết kế, ngƣời thiết kế phân tich bản DFD va xác định
cách các xử li dữ liệu đƣợc phân tách thanh các nhóm, mỗi nhóm gắn với
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 454
một kiểu xử li, nhƣ trong hình 12-5. Chú ý rằng giờ đây nhiều chi tiết cụ
thể hơn đƣợc thể hiện.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 455
Hình 12-4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 456
Hình 12-5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 457
Hình 12 – 6: Chi tiết tiến trình
Tiến trình #1
Tên: (Đăng nhập)
Số: 1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 458
Tên: Đăng nhập
Mô tả: Những ngƣời lấy bai kiểm tra đã đăng ký sẽ đăng nhập vao tai
khoản của họ với tên đăng nhập va tai khoản của họ thông qua tiến trình
nay. Họ không cần phải đăng ký một lần nữa. Một khi đã đăng nhập, họ có
thể truy cập vao chủ đề bai kiểm tra của mình va sau đó có thể lấy bai kiểm
tra.
Dữ liệu nhập: tên ngƣời dùng va mật khẩu từ ngƣời lấy bai kiểm tra,
tên ngƣời dùng va mật khẩu lấy từ bảng đăng ký.
Dữ liệu xuất: tên ngƣời dùng đến cookie
Kiểu tiến trình: kiểm tra thủ công
Logic tiến trình:
Lấy tên đăng nhập và mật khẩu từ người dùng
if đúng then
Cho phép người dùng lấy bài kiểm tra
else
thông báo lỗi
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 459
endif
Key functions of each group are determined and these functions are
then broken down (i.e., decomposed) in order to obtain cohesive modules.
Each module is then specified separately (i.e., the process specification or
PSPEC), as shown in Exhibit 12-6, to ensure that data collections are
recorded, and that data produced by the modules corresponds to the data
passed between processes in the data flow diagrams.
Những chức năng khóa của mỗi nhóm đƣợc xác định va sau đó đƣợc
chia nhỏ (vd: phân tích – decomposed) nhẳm đạt đƣợc những module liên
kết. Những module sau đó đƣợc ghi chú chi tiết một cách tách biệt (vd: chi
tiết kỹ thuật tiến trình hoặc PSPEC), nhƣ trong hình 12 – 6, để chắc rằng
những bộ dữ liệu thu thập đƣợc ghi lại, va những dữ liệu đó đƣợc sinh ra
bởi module tƣơng ứng với dữ liệu đƣợc truyền qua giữa các tiến trình trong
sơ đồ luồng dữ liệu.
DFDs are very flexible and are used during the analysis and design
phases. As discussed, you may draw logical or physical DFDs. The logical
set of DFDs diagrams how a business operates and details its business
activities. Logical DFDs show collections of data but not the detail of how
that data is stored or where it is stored. On the other hand, a physical set of
DFDs tries to diagram exactly how the system will or does operate.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 460
Physical DFDs show programs, databases, and other information necessary
for the implementation of a particular system.
Những sơ đồ luồng dữ liệu rất linh động va đƣợc sử dụng suốt giai
đoạn phân tich va thiết kế. Nhƣ đã ban, bạn có thể vẽ những sơ đồ luồng dữ
liệu logic hay vật lý. Tập logic của những sơ đồ luồng dữ liệu cho thấy
cộng việc đƣợc thực hiện nhƣ thế nao va chi tiết những hoạt động của công
việc đó. Tập logic nay cho thấy những bộ dữ liệu nhƣng không nói chi tiết
lam cách nao những dữ liệu nay đƣợc lƣu trữ va lƣu trữ ở đâu. Mặt khác,
tập vật lý của sơ đồ luồng dữ liệu cố gắng mô tả chinh xác hệ thống hoạt
động nhƣ thế nao. Tập vật lý nay cho thấy những chƣơng trình, cơ sở dữ
liệu, va những thông tin cần thiết khác cho sự triển khai của một hệ thống
đặc thù.
Designers must obtain a deep appreciation of the system and its
functions because the production of a modular structural chart is not a
mechanical task (Curtis et al., 2000).
Những ngƣời thiết kế phải đạt đƣợc sự đánh giá sâu về hệ thống va
những chức năng của nó vì sự tạo ra những biểu đồ cấu trúc module không
phải la công việc kỹ thuật (Curtis et al.,2000).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 461
12.3 THIẾT KẾ LOGIC VÀ VẬT LÝ
Design consists of two discrete steps: logical design and physical
design. To understand the components of each it is necessary to discuss
logical and physical analysis.
Thiết kế gồm có 2 bƣớc rời rạc: thiết kế logic va thiết kế vật lý. Để
hiểu về thanh phần của mỗi bƣớc cần phải nói về sự phân tich logic va vật
lý.
Phân tich logic va vật lý
12.3.1 Phân tich logic va vật lý
The physical analysis phase requires the systems analyst to
determine the specifics of the existing processes that the system will
automate, whether these processes are currently part of a technology system
or are completely manual. Physical analysis involves the process of
determining, in specific detail, exactly who does what and when he or she
does it in the process or problem being solved (Curtis et al., 2000). This
analysis shows what is really going on in the system, and helps the systems
analyst put some structure around the new system‘s requirements.
Công đoạn phân tich vật lý yêu cầu ngƣời phân tich hệ thống phải
xác định chi tiết những tiến trình hiện có của hệ thống sẽ đƣợc tự động hóa,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 462
cho dù những tiến trình nay la một phần công nghệ hay hoan toan thủ công.
Sự phân tich vật lý liên quan đến việc xác định, trong chi tiết kĩ thuật, một
cách chinh xác rằng ai lam cái gì va khi nao anh (cô) ta lam việc đó trong
tiến trình hoặc vấn đề đang đƣợc giải quyết (Curtis et all.,2000). Sự phân
tich nay cho thấy cái gì đang thực sự diễn ra trong hệ thống va giúp ngƣời
phân tich hệ thống đặt vai cấu trúc xung quanh những yêu cầu của hệ thống
mới.
Physical analysis occurs after the initial round of interviews with
stakeholders and end users. At this point in the process, the systems analyst
is likely to have an unwieldy batch of interview notes, details of
observations, questionnaire responses, and sundry documents (Curtis et al.,
2000). This information provides the basis for building a methodical
description of the existing manual system. Building this description is the
foundation of physical analysis. This work is considered physical analysis
because the ultimate result of this work is a very nuts-and-bolts description
of the actual (manual) steps and processes comprising the system, with little
to no logical abstraction.
Sự phân tich vật lý có ở giai đoạn đầu của việc phỏng vẫn những
stakeholder va ngƣời dùng cuối.Lúc nay, ngƣời phân tich hệ thống giống
nhƣ có một quyển ghi chú phỏng vấn không dễ dang, những quan sát chi
tiết, bản trả ời câu hỏi, va những tai liệu lặt vặt. Những thông tin nay la nền
tảng cho việc xây dựng một mô tả có phƣơng pháp của hệ thống thủ công
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 463
hiện tại. Xây dựng mô tả nay la cơ sở cho sự phân tich vật lý. Công việc
nay đƣợc xem nhƣ la phân tich vật lý bởi vì kết quả cuối cùng la một mô tả
rất chặt chẽ của những bƣớc (thủ công) thật sự va các tiến trình bao gồm
trong hệ thống, với một it hoặc không có sự trừu tƣợng logic nao.
A primary vehicle for accomplishing the physical analysis phase is
the manual system flowchart. This chart is very much like the process
flowcharts that many people are familiar with, with some minor changes.
The chart is structured in such a way that it is apparent which department,
organization, or person owns each task, as shown in Exhibit 12-7.
Phƣơng tiện chinh để hoan thanh giai đoạn phân tich vật lý la một
lƣu đồ hệ thống thủ công. Biểu đồ nay rất giống với những lƣu đồ ma nhiều
ngƣời quen thuộc, với một vai thay đổi nhỏ. Sơ đồ nay đƣợc cấu trúc theo
cái cách hiển nhiên ma công việc của những cơ quan, tổ chức, hoặc cá
nhân, đƣợc trình bay(Hình 12 – 7).
As you can see, this is a very detailed and physically oriented
diagram, showing the passage of documents and data through very specific
checkpoints. This provides the data presentation required in order to gain
the required level of understanding of the system as it exists, but you could
not develop a system from this picture; a logical diagram is required for
that.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 464
Nhƣ bạn có thể thấy, đây la một biểu đồ rất hƣớng chi tiết va vật lý,
cho thấy những đoạn của tai liệu va dữ liệu thông qua những checkpoint rất
chi tiết. Cái nay cung cấp sự trình bai dữ liệu để đạt đƣợc mức yêu cầu thấu
hiểu hệ thống nhƣ la nó đang tồn tại, nhƣng bạn không thể phát triển hệ
thống từ tấm hình nay, một sơ đồ logic la cần thiết cho chuyện đó.
The logical analysis phase is focused on abstracting the details
uncovered during physical analysis out to a level of logical representation,
which will allow them to be manipulated. Logical analysis produces the
ultimate result of the systems analysis process: the decomposition of the
functions of the system into their logical constituents and the production of
a logical model of the processes and data flows (Curtis et al., 2000).
Giai đoạn phân tich logic tập trung vao sự trừu tƣợng những chi tiết
không đƣợc bao gồm trong sự phân tich vật lý, cái ma sẽ cho phép chúng
đƣợc thao tác. Phân tich logic cho kết quả cuối cùng của tiến trình phân tich
hệ thống la: sự phân tách những chức năng thanh các thanh phần logic của
chúng va sự sản xuất một mẫu logic của những tiến trình va những luồn dữ
liệu (Curtis et al., 2000).
As the systems analyst and end user work through the flowcharts
produced from the physical analysis and the preliminary logical model
based upon it, the goal should be to jointly produce a detailed written
description of all activities within the end user‘s purview that fall within the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 465
scope of the system (Bloor and Butler, 1989). The systems analyst and the
end user must agree that this list is complete and precise. The entries in the
list should be mutually exclusive and the list must be comprehensively
exhaustive. Combined with the manual system flowcharts and logical
diagrams, this list will serve as basic system requirements. Ultimately a
detailed system requirements specification will be created (see Appendix
G). With these documents in hand, the design phase can begin.
Khi ngƣời phân tich va ngƣời dùng lam việc thông qua các lƣu đồ
đƣợc tạo ra từ phân tich vật lý va các mô hình logic sơ bộ dựa trên nó, mục
tiêu nên đƣợc để cùng nhau tạo ra một mô tả chi tiết bằng văn bản của tất cả
các hoạt động trong tầm hiểu biết của ngƣời dùng cuối ma rơi vao phạm vi
của hệ thống (Bloor and Butler, 1989). Các nha phân tich hệ thống va ngƣời
dùng cuối phải đồng ý rằng đây la danh sách đầy đủ va chinh xác. Các mục
trong danh sách cần riêng biệt va danh sách nay phải đƣợc đầy đủ một cách
toan diện. Kết hợp với hệ thống các lƣu đồ thủ công va sơ đồ logic, danh
sách nay sẽ phục vụ nhƣ la những yêu cầu hệ thống cơ bản. Cuối cùng một
hệ thống các yêu cầu đặc điểm kỹ thuật chi tiết sẽ đƣợc tạo ra. Với các tai
liệu nay trong tay, giai đoạn thiết kế có thể bắt đầu.
The analysis phase was broken down into two components: physical
analysis and logical analysis. The design phase is also broken down into
two components, although in the design phase logical design precedes
physical design.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 466
Giai đoạn phân tich đƣợc chia thanh hai phần: phân tich vật lý va
phân tich logic. Giai đoạn thiết kế cũng đƣợc chia thanh hai thanh phần,
mặc dù trong giai đoạn thiết kế, thiết kế logic đến trƣớc thiết kế vật lý.
12.3.2 Thiết kế logic
The logical analysis and logical design phases are very similar and
overlapping. Martin Butler and Robin Bloor stress that, in the logical phase,
we create a model of the application area that matches the events occurring
within the intended system. As these events are identified, each must be
examined to determine specific criteria for it (Bloor and Butler, 1989):
- What initiates the event?
- What is changed by the event?
- What subsequent events are triggered by the event?
- What error conditions can arise?
Các phân tich logic va giai đoạn thiết kế logic la rất giống nhau va
chồng chéo. Martin Butler va Robin Bloor nhấn mạnh rằng, trong giai đoạn
logic, chúng ta tạo ra một mô hình của các khu vực ứng dụng phù hợp với
những sự kiện xảy ra trong hệ thống định dùng. Khi những sự kiện nay
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 467
đƣợc xác định, mỗi cái phải đƣợc kiểm tra để xác định tiêu chi cụ thể cho
nó:
Cái gì khởi đầu sự kiện?
Cái gì được thay đổi bởi sự kiện này?
Những sự kiện tiếp theo được kích hoạt bởi sự kiện này?
Những điều kiện có thể phát sinh lỗi?
These descriptions are crucial inputs for the physical design phase
because they will allow us to derive the required objects and methods. It is
this process that is likely the most important aspect of systems design; all of
the blueprints for future code are based upon this logical model.
Những mô tả nay la yếu tố đầu vao quan trọng trong giai đoạn thiết
kế vật lý, vì chúng sẽ cho phép chúng ta lấy đƣợc các đối tƣợng va phƣơng
pháp đƣợc yêu cầu. Đó la quá trình ma có thể la khia cạnh quan trọng nhất
của thiết kế hệ thống; tất cả các kế hoạch chi tiết cho các qui tắc trong
tƣơng lai dựa trên mô hình logic nay.
The tools of the logical paradigm are somewhat different from those
of physical analysis discussed previously. Physical analysis tools, such as
manual system flowcharts, are very concerned with the specific steps and
decision points inherent in moving through the system. The logical analysis
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 468
and design tools are more focused on definition of individual components
of the system and the ways these components interact. The tools of choice
for the logical phase of the systems development process are the data-flow
diagram (DFD) and the entity-relationship diagram when using the
traditional, structured paradigm.
Các công cụ của các mô hình logic có hơi khác với phân tich vật lý
thảo luận trƣớc đó. Công cụ phân tich vật lý, chẳng hạn nhƣ lƣu đồ hệ
thống thủ công, rất có liên quan với các bƣớc cụ thể va điểm quyết định cố
hữu trong việc di chuyển thông qua hệ thống. Các phân tích logic và các
công cụ thiết kế đƣợc tập trung hơn vao xác định các thanh phần riêng lẻ
của hệ thống va những cách các thanh phần tƣơng tác. Các công cụ lựa
chọn cho các giai đoạn logic của quá trình phát triển hệ thống la sơ đồ
luồng dữ liệu (DFD) va lƣợc đồ quan hệ khi sử dụng các mô hình truyền
thống có cấu trúc.
At this stage of the process, with the logical design of the system
complete, all that remains to complete the design is to define the physical
design of the software.
Ở giai đoạn nay của quá trình, với thiết kế logic của hệ thống hoan
chỉnh, tất cả những gì còn lại để hoan tất việc thiết kế la xác định thiết kế
vật lý của phần mềm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 469
12.3.3 Thiết kế vật lý
The physical design is the blueprint for actual development of the
software and deployment of the system. The physical phase is concerned
with matching the logical model to the hardware and software at our
disposal. Thus, we are transforming a logical model into a workable model
that can be implemented (Bloor and Butler, 1989). Unlike the logical
phases that immediately precede this work, the physical design phase is
focused on specific implementation of the system. The logical design was
built on the requirements defined during the physical and logical analysis
phases. This fact allows the designer to build a physical design that
implements the logical design without worrying about meeting the
functional requirements of the end users; if the logical design is
implemented, these requirements will be fulfilled.
Thiết kế vật lý la bản vẽ chi tiết cho sự phát triển thực tế của các
phần mềm va triển khai hệ thống. Giai đoạn vật lý có liên quan với các mô
hình logic kết hợp với phần cứng va phần mềm lúc chúng ta xử lý. Vì vậy,
chúng ta đang chuyển đổi mô hình logic vao một mô hình hoan toan khả thi
có thể đƣợc triển khai thực hiện (Bloor va Butler, 1989). Không giống nhƣ
giai đoạn logic ma ngay lập tức đứng trƣớc công việc, giai đoạn thiết kế vật
lý la tập trung vao việc thực hiện cụ thể của hệ thống. Phần thiết kế logic
đƣợc xây dựng dựa trên những yêu cầu đƣợc hình thanh trong quá trình
phân tich vật lý va logic. Điều nay cho phép kỹ sƣ thiết kế có thể xây dựng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 470
một thiết kế vật lý có thể vận hanh thiết kế logic ma không phải quan tâm
về những yêu cầu chức năng từ phia ngƣời dùng cuối; một khi thiết kế logic
đƣợc cai đặt, những yêu cầu nay sẽ đƣợc đáp ứng một cách đầy đủ.
The physical design phase is also where some specific
implementation decisions must be made. Many, if not most, automated
systems today use third-party software for pieces of the solution. Database
software, Java application server software, and object messaging software
are some examples of the kinds of third-party components that are often
required. The logical design need not be concerned with the specific vendor
choice, only with a requirement for one, because the logical design is
intended to be abstracted away from the specific details of the
implementation. The physical design, however, must answer these
questions (Curtis et al., 2000). This fact illustrates the true distinction
between the logical and physical design phases: the logical design is
focused on what the system will do and the physical design is focused on
how the system will do it.
Phần thiết kế vật lý ngoai ra còn la nơi để tiến hanh cai đặt một số
việc cụ thể. Có nhiều, nếu không phải la hầu hết, các hệ thống tự động ngay
nay sử dụng phần mềm của công ty thứ ba để chi nhỏ các giải pháp. Phần
mềm cho cơ sở dữ liệu, phần mềm ứng dụng Java chạy trên máy chủ, va
phần mềm gửi tin nhắn cho ngƣời khác, la một số các vi dụ về các loại của
các phần mềm thanh phần của công ty thứ ba thƣờng đƣợc yêu cầu. Phần
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 471
thiết kế logic không cần phải bận tâm đến sự lựa chọn một nha cung cấp cụ
thể nao, chỉ cần có các yêu cầu cho nha cung cấp, vì phần thiết kế logic chỉ
nhằm trừu tƣợng hóa những chi tiết cụ thể của việc cai đặt. Mặc dù vậy,
thiết kế vật lý phải trả lời đƣợc cái câu hỏi sau (Curtis et al., 2000). Cái nay
cho thấy sự khác nhau cơ bản giữa thiết kế logic va thiết kế vật lý: thiết kế
logic tập trung cho biết hệ thống sẽ lam gì, trong khi thiết kế vật lý tập
trung cho biết hệ thống sẽ lam chuyện đó nhƣ thế nao.
12.4 SỰ ĐẶC TẢ CỦA CÁC HỆ THỐNG
The detailed design that has been achieved at this point in the
process results in a systems specification. No agreed-on standard format for
this specification exists and some insist that writing a design spec is more
of an art form than a scientific process. Most IT professionals have sought a
―cookie-cutter‖ explanation of how to write a good design spec, but one
simply does not exist. Curtis et al. (2000) give a good basic outline of what
a design specification should include:
An executive summary in order to provide a quick summary of the
major points in the specification
A description of the proposed system and its objectives (may also
include flow block diagrams and data flow diagrams may be used)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 472
A description of all programs to include module specifications and
structure charts, together with test data
A description of all input to include specimen source documents,
screen layouts, menu structures, and control procedures
A description of all output to include specimen output reports and
contents of listings.
A description of all data storage to include specification of file and
database structure
A detailed specification of controls operating over procedures within
the system
A specification of all hardware requirements and performance
characteristics to be satisfied
A specification of clerical procedures and responsibilities
surrounding the system
A detailed schedule for the implementation of the system
Cost estimates and constraints
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 473
Bản thiết kế chi tiết đã đạt đƣợc cho tới thời điểm nay la kết quả của
một đặc tả của các hệ thống. Không có một định dạng chuẩn nao đƣợc
thống nhất cho các đặc tả nay va một số ngƣời cho rằng việc viết một bản
đặc tả thiết kế thì giống với một nghệ thuật hơn la một quy trình khoa học.
Hầu hết những chuyên gia IT đều cố gắng tìm kiếm một lời giải chung
chung để lam thế nao viết một bản đặc tả thiết kế tốt, nhƣng hầu nhƣ không
thể tìm đƣợc lời giải đó. Curtis el al. (2000) đƣa ra một bản phác thảo tốt va
cơ bản về những gì cần có trong một bản đặc tả thiết kế:
Bản tóm tắt thực thi nhằm cho biết một cái nhìn chung về điểm mấu
chốt ma bản đặc tả muốn nhắm đến.
Bản mô tả sự vận hanh của hệ thống va các đối tƣợng của nó (có thể
dùng sơ đồ luồng dữ liệu (DFD) hoặc sơ đồ dòng khối (flow block
diagram)).
Liệt kê tất cả các chƣơng trình để bổ sung vao trong mô-đun các đặc
tả va các biểu đồ cấu trúc cùng với dữ liệu kiểm thử.
Chi tiết tất cả những dữ liệu đầu vao để bổ sung vao trong các tai liệu
mẫu, thiết kế man hình, cấu trúc thanh menu, va các phƣơng thức điều
khiển.
Chi tiết tất cả các dữ liệu đầu ra để bổ sung vao các mẫu dữ liệu ra để
báo cáo va lập danh sách.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 474
Chi tiết tất cả các dạng lƣu trữ dữ liệu nhằm bổ sung cho việc đặc tả
về tập tin va cấu trúc cơ sở dữ liệu.
Một bản đặc tả chi tiết của việc điều hanh quá trình chạy thông qua
các thủ tục, ham trong hệ thống.
Một bản đặc tả tất cả những yêu cầu về phần cứng va những yêu cầu
về xử lý phải đƣợc đáp ứng.
Một bản đặc tả các ham, thủ tục biên chép (ghi chép) va các trách
nhiệm liên quan đến hệ thống.
Một thời gian biểu chi tiết cho việc tiến hanh cai đặt của hệ thống.
Các chi phi ƣớc tinh va rang buộc.
Appleton (1997) states that the design specification should meet the
following criteria:
It should adequately serve as training material for new project
members so that they are able to understand what is said in design
meetings.
It should serve as ―objective evidence‖ that the designers are
following through on their commitment to implement the functionality
described in the requirements spec.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 475
It needs to be as detailed as possible, while at the same time not
imposing too much of a burden on the designers.
Appleton (1997) chỉ ra rằng một bản đặc tả thiết kế nên thỏa mãn các
tiêu chuẩn sau đây:
Nó nên đƣợc trang bị một cách đầy đủ nhƣ một công cụ hƣớng dẫn
cho những ngƣời thanh viên mới của dự án, nhƣ vậy họ có thể hiểu đƣợc
những gì đƣợc ghi trong bản thiết kế.
Nó nên đƣợc trang bị nhƣ một ―bằng chứng về mục tiêu‖ cho những
nha thiết kế theo đó tiến hanh cai đặt để tuân thủ theo những yêu cầu chức
năng đã đƣợc đề ra.
Nó cang chi tiết cang tốt, khi cùng một thời điểm không lam cho
ngƣời thiết kế thêm gánh nặng phải cáng đáng.
12.5 MỘT SỐ HƢỚNG DẪN CHO MỘT BẢN ĐẶC TẢ HỆ THỐNG
Appendix J is a complete SDS for a working student-created system:
Section 1 provides an overview of the system, its mission and goals,
and any other supporting documentation deemed necessary by the support
team. Much of this can be copied from the SRS (Appendix G), project plan
(Appendix F), and feasibility study (Appendix C).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 476
Phụ lục J la một bản SDS hoan chỉnh cho một hệ thống do sinh viên
tạo ra có thể chạy đƣợc:
Phần 1 cung cấp một cái nhìn tổng quát về hệ thống, nhiệm vụ va
mục tiêu, va bất cứ tai liệu hỗ trợ có thể sẽ cần thiết đƣợc cung cấp từ các
đội hỗ trợ. Hầu hết những cái nay có thể đƣợc chép từ SRS (Phụ lục G), lên
kế hoạch cho dự án (Phụ lục F), va nghiên cứu tinh khả thi (Phụ lục C).
Section 2 provides a list of design considerations that includes:
assumptions, dependencies, frequency of use, database requirements,
memory, and hardware and software constraints, as well as a description of
the system environment — i.e., user interfaces, software interfaces, and
communications interfaces. Section 2 also discusses policies and
procedures, design methodology, and system risks.
Phần 2 cung cấp danh sách của những sự xem xét thiết kế, bao gồm:
sự giả định, sự phụ thuộc, tần số sử dụng, yêu cầu cơ sở dữ liệu, bộ nhớ, va
phần cứng, cùng rang buộc phần mềm, cùng với bản mô tả về môi trƣờng
hệ thống – vi dụ, giao diện ngƣời dùng, giao diện phần mềm, va giao diện
tƣơng tác. Phần 2 ngoai ra còn đề cập về chinh sách va các thủ tục (ham),
các phƣơng pháp thiết kế, va nguy cơ hệ thống.
Section 3 specifies the architecture of the system. (Appendix I)
Phần 3 đặc tả về cấu trúc của hệ thống(Phụ lục I).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 477
Section 4 provides a high-level design spec of the system. A detailed
set of DFDs can be found in this section.
Phần 4 cung cấp một bản đặc tả thiết kế của hệ thống ở cấp độ cao
hơn. Một tập hợp những sơ đồ luồng dữ liệu chi tiết (DFD) đƣợc cung cấp
trong phần nay.
Section 5, the low-level design, provides a complete set of PSPECs
as well as a data dictionary (Appendix K).
Phần 5, thiết kế ở mức thấp, cung cấp một tập hợp đầy đủ của
PSEPC cũng nhƣ từ điển dữ liệu (Phụ lục K).
Section 6 is reserved for a list of business-use cases as well as a
series of screen shots showing the design of the user interface. (Appendix
E).
Phần 6 dùng dự trữ cho một danh sách của các trƣờng hợp dùng
trong kinh doanh va những đoạn chụp man hình cho việc thiết kế giao diện
ngƣời dùng (Phụ lục E).
12.6 KẾT LUẬN
Davis (2002) makes an important point when he states that without a
complete, unambiguous design specification document, one could be setting
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 478
oneself up for ―costly‖ rewrites. Therefore it is important to recognize that
the systems specification is used as (Curtis et al., 2000):
The exit criterion from the stage of detailed design prior to the stage
of implementation.
A source documentation from which programs are written and
hardware ―tenders‖ are brought about.
A historical reference of the system for future users and developers
A comparative document during the assessment phase once the
system is being used
Davis (2002) chỉ ra một điểm quan trọng rằng nếu không có một bản
tai liệu đặc tả thiết kế đầy đủ, rõ rang, một ngƣời có thể tự thiết lập ra
những bản viết khác nhau. Do đó việc nhận ra rằng đặc tả hệ thống nhƣ
(Curtis et al., 2000) la quan trọng:
Những tiêu chuẩn để kết thúc một phần của bản thiết kế chi tiết trƣớc
khi chuyển sang phần cai đặt.
Tai liệu nguồn để chƣơng tình có thể đƣợc cai đặt va phần cứng có
khả năng tƣơng thich.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 479
Những thảo khảo về trƣớc đây của hệ thống nhằm xác định những
ngƣời dùng va nha phát triển tƣơng lai.
Một tai liệu tƣơng đối trong quá trình đánh giá một pha từ khi hệ
thống đã đƣợc sử dụng.
An analyst who refers to the basic outline of design specification that
considers everything from goals and objectives, to subsystems description,
to potential project issues, should be able to develop a spec document that is
understood by developers and at least somewhat by customers. These
specifications should also help in avoiding errors and expensive rewrites.
Một nha phân tich, ngƣời luôn muốn tham khảo bản phác thảo cơ
bản của bản đặc tả thiết kế, luôn nhìn nhận mọi thứ từ mục tiêu, đich, cho
tới mô tả các hệ thống con, những vấn đề tiềm tang của dự án, ngƣời có khả
năng phát triển tai liệu đặc tả - cái đƣợc các nha phát triển hiểu rõ va it nhất
la một số loại khách hang. Những đặc tả nay ngoai ra có thể giúp tránh
đƣợc những lỗi va chi phi viết lại tốn kém.
A functional design specification is like a pyramid. The top reflects a
broad overview that describes the wide spectrum of the system and its
components. At each level below the overview, one has an overview of
each of the primary components and as much detail as one‘s developers
require (Davis, 2002).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 480
Một bản đặc tả thiết kế các yêu cầu giống nhƣ một cái kim tự tháp.
Cái đỉnh tƣơng ứng nhƣ một cái nhìn rộng, chung, mô tả một cách bao trùm
về hệ thống va các thanh phần của nó. Mỗi cấp phia dƣới của cái nhìn
chung đó, có một tầm nhìn khái quát của mỗi thanh phần chinh va can chi
tiết hơn nữa nếu nha phát triển cần đến (Davis, 2002).
12.7 TÀI LIỆU THAM KHẢO:
Bloor, R. and Butler, M. (1989a). Object orientation…let‘s get
physical, DEC User, December, 42.
Curtis, G., Hoffer, J.A., George, J.F., and Valacich, J. (2000).
Introduction to Business Systems Analysis, Pearson Custom Publishing,
Boston.
Davis, J. (2002). Design specifications: how much detail is enough?
Available:
http://builder.com.com/article.jhtml?id = 0120020206jed03.htm&src
= search:.
Harrington, J.L. (1998). Relational Database Design Clearly
Explained, Morgan Kaufmann, San Diego.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 12: Bản đặc tả thiết kế 481
Kendall, K.E. and Kendall, J.E. (2002). Systems Analysis and
Design, Prentice Hall, New York.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 482
CHƢƠNG 13 THIẾT KẾ HƢỚNG ĐỐI TƢỢNG
Người dịch:
4. Lê Quang Thảo
5. Huỳnh Thảo Hạnh
Duy
6. Trịnh Quang Huy
Current code is a liability, not an asset. The challenge is to develop
new code that is truly an asset. This challenge was issued by Vaughan
Merlyn, one of the luminaries of our industry. It is one that bottom-line-
conscious software engineering managers are now taking seriously. To
meet this challenge, developers will need to do more than just tweak some
code and liven up user interfaces. They will need to dramatically alter the
way in which they code.
Code hiện tại la một khó khăn va không đƣợc xem nhƣ tai sản.Thách
thức đƣợc đặt ra la phát triển code mới để no thật sự trở thanh tai sản.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 483
Thách thức nay đã đƣợc đƣa ra bởi Vaughan Merlyn, một trong những
doanh nhân của nền công nghiệp chúng ta. Đây quả la một vấn đề quan
trong đối với những ngƣời quản lý phần mềm. Còn các developer cần phải
lam nhiều hơn nữa để phát triển code của mình. Họ cần có sự đột biến so
với con đƣờng lập trình hiện tại.
13.1 WHAT IS OO ?
Object orientation (OO), which views the abstractions manipulated
by computer software as counterparts to real-world objects, has promised
developers a brave new world. Object-oriented development emerged as the
dominant software development methodology of the 1990s. Not
surprisingly, many organizations are jumping on the OO bandwagon.
Hƣớng đối tƣợng la một cách nhìn nhận sự trừu tƣợng những phần
mềm máy tinh nhƣ một phần của thế giới thực,đây cũng la xu hƣớng của
các developers hiện tại.Sự phát triển của hƣớng đối tƣợng nổi lên nhƣ la
một phƣơng pháp phát triển phần mềm nổi trội trong những năm
1990.Không có gì bất ngờ khi nhiều tổ chức đã chuyển sang mô hình hƣớng
đối tƣợng nay.
The concept of an object is the fundamental building block on which
the object-oriented paradigm rests. Four pivotal concepts are behind object
orientation: encapsulation, message passing, dynamic binding, and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 484
inheritance. To the extent that a tool or language incorporates these
concepts,it becomes qualified as an object-oriented tool kit.
Đối tƣợng trong OO(Object-Oriented) chinh la những khối căn bản
nền tảng đã đƣợc xây dựng sẵn trong mô hình OO.Có 4 khái niệm để miêu
tả đối tƣợng nay:có tinh đóng gói, thông tin ngắn gọn, liên kết linh hoạt,
va kế thừa. Trong phạm vi một công cụ hay một ngôn ngữ nao đó có tich
hợp các khái niệm thì nó sẽ trở thanh một bộ công cụ của OO.
We can explain these concepts using a simple letter as an analogy.
Suppose a user wrote an e-mail letter to a colleague in another department.
The letter is an object that has many properties in common with
other letters: it contains information and has associated procedures that
allow the user to manipulate it (read, write, and send). These properties,
when grouped together, constitute the concept of the letter object. This
process of combining data and functions all in one object is encapsulation.
Chúng ta có thể giải thich những khái niệm nay sử dụng 1 lá thƣ đơn
giản nhƣ la một sự tƣơng đồng.Giả sử rằng 1 ngƣời viết 1 lá thƣ cho 1
ngƣời đồng nghiệp ở bộ phần khác.Một lá thƣ la 1 đối tƣợng có nhiều thuộc
tinh thông thƣờng nhƣ những lá thƣ khác, nó bao gồm thông tin va những
cái thủ tục bắt buộc cho phép ngƣời dung thao tác nó (nhƣ đọc, viết,
gửi).Những thuộc tinh nay khi đƣợc gom nhóm lại nó sẽ cấu thanh khái
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 485
niệm của đối tƣợng ở đây la lá thƣ. Tiến trình của sự kết hợp dữ liệu va tất
cả các chức năng trong một đối tƣợng đƣợc gọi la tinh đóng gói
Now suppose the e-mail system only allows users to write letters in
English, but the company just hired an employee who speaks only
Japanese. The company now needs the facility to create and manipulate
Japanese letters. This is done by putting letter objects in discrete
categories,referred to as classes.
Bây giờ giả sử lá thƣ hệ thống chỉ cho phép ngƣời dùng viết những
ki tự bằng tiếng Anh nhƣng công ty vừa mới thuê những nhân viên chỉ biết
nói tiếng Nhật.Vì thể công ty đang cần những khả năng đọc va thao tác
trên những lá thƣ tiếng Nhật.Điều nay sẽ đƣợc giải quyết bằng cách đƣa ra
những đối tƣợng lá thƣ trong những phạm trù khác nhau có liên quan đến
các lớp.
A class is a collection of objects that share the same functionality
and characteristics (procedures and data). In this example, two classes are
created: an English letter class and a Japanese letter class. Both classes have
many functions and characteristics in common. By identifying those things
held in common we can create a super or parent class. Thus, the English
letter and the Japanese letter become subclasses with each pinpointing how
it differs from its parent and siblings.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 486
Một lớp la một tập hợp các đối tƣợng chia sẻ những chức năng va
đặc điểm giống nhau (các thủ tục va dữ liệu của lá thƣ).Trong lớp nay có 2
lớp đƣợc tạo ra: lớp lá thƣ ghi bằng tiếng Anh va lớp lá thƣ ghi bằng tiếng
Nhật.Cả 2 lớp đều có nhiều chức năng va thuộc tinh thông thƣờng.Để nhận
biết ra những thuộc tinh thông thƣờng nay chúng ta cần tạo ra lớp cha. Vì
vậy những lớp lá thƣ tiếng Anh, lá thƣ Nhật Bản đã trở thanh những
subclasses.
The English and Japanese letter subclasses inherit the functionality
of ―reading, writing, and sending‖ from the parent object. However, the
Japanese subclass is different in that it has the extra characteristic of
translating text into the Japanese language, and the English subclass is
different in that it translates into English. This is the meat behind the OO
concept of inheritance.
Nhũng lớp nay sẽ kế thừa các chức năng của lớp cha nhƣ đọc,viết,
gửi từ lớp cha.Tuy nhiên lớp lá thƣ tiếng Anh cũng có những phƣơng thức
khác nhƣ dịch sang tiếng Anh, tƣơng tƣ lớp lá thƣ Nhật Bản cũng
vậy.Chúng ta sẽ gặp lại khái niệm kế thừa ở phần sau.
The letter object permits the user to request certain tasks or services,
such as ―read a letter‖, ―write a letter‖, or ―send a letter‖. This is commonly
called ―sending a message to an object‖— or to use OO parlance, message
passing.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 487
Đối tƣợng lá thƣ cho phép ngƣời dùng yêu cầu những thao tác va
dịch vụ nao đó nhƣ đọc thu, viết thƣ, gửi thƣ.Điều nay thông thƣờng gọi la
―sending a message to an object‖ hay sử dụng thông điệp ngắn gọn
(message passing)
Sending a message is not quite the same as issuing a function call, a
process familiar to most developers. Different objects can respond to the
same message in different ways. For example, as just discussed, the ―read‖
message is handled one way by the English object and another way by the
Japanese object. In fact, the OO term ―polymorphism‖ is used to describe
the ability to send general-purpose messages to objects that will then handle
them appropriately. The objects handle the specific details.
Gửi 1 thông điệp không nhƣ la cung cấp 1 chức năng đƣợc gọi,1 tiến
trình quen thuộc với các developers.Sự khác biệt của những đối tƣợng có
thể đƣợc đáp ứng bằng những thông điệp giống nhau thông qua nhiều cách
khác nhau. Vi dụ nhƣ thảo luận‖, đọc ‖message bằng tiếng Anh hoặc tiếng
Nhật.Sự thật mẫu hƣớng đối tƣợng đƣợc miêu tả những khả năng để gửi
những thông điệp tổng quát mong muốn đến đối tƣợng ma sau đó ngƣời ta
có thể vận dụng nó một cách chinh xác.Những đối tƣợng sử dụng những
đặc tả chi tiết
In sending these messages, the user never needs to specify the type
of object with which he or she is dealing. OO systems utilize what is known
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 488
as dynamic binding to determine the object type at run time when the code
is executed.
Trong việc gửi những thông điệp nay,ngƣời dùng không bao giờ cần
đến đặc tả loại đối tƣợng.Hệ thống hƣớng đối tƣợng tận dụng những gì biết
đƣợc nhƣ la sự nối kết chặt chẽ để xác định loại đối tƣợng đang chạy khi
ma mã lệnh đƣợc thực thi.
The benefits of OO can be summed up as: quality, productivity,
predict ability, and control of complexity.
Tóm lại những lợi ich của hƣớng đối tƣợng (OO):chất lƣợng, hiệu
quả,dự đoán trƣớc đƣợc va có thể quản lý đƣợc sự phức tạp.
13.2 OO FROM THE BOTTOM UP
If we build object-oriented systems, we need tools that support the
building of these applications. Developers building today‘s applications are
essentially using the traditional, structured process methodologies
developed by experts like Ed Yourdon, Tom DeMarco, and Chris Gane and
TrishSarson, as well as the data modeling methodology pioneered by Peter
Chen.
Nếu chúng ta xây dựng hệ thống hƣớng đối tƣợng, chúng ta cần
những công cụ ma nó có thể hỗ trợ để xây dựng các ứng dụng nay. Các
developer xây dựng ứng dụng ngay nay đều cần thiết sử dụng những
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 489
phƣơng pháp cấu trúc truyền thống đƣợc phát triển bởi các chuyên gia nhƣ
là Ed Yourdon, Tom DeMarco, and Chris Gane and Trish Sarson tốt nhƣ la
mô hình dữ liệu mẫu đƣợc khám phá bởi Peter Chen
Currently, information engineering techniques pivot around data and
itsrelationships as documented in data-flow diagrams (Exhibit 13-1) and
entity-relationship diagrams (Exhibit 13-2). Structured analysis is not based
on objects, however.
Hiện tại thì những thông tin kĩ thuật công nghệ đều xoay quanh 1
trục dữ liệu va mối quan hệ đó đƣợc biểu diễn trong sơ đồ luồng dữ liệu
hình 13-1 va mô hình quan hệ thực thể kết hợp đƣợc thê hiện đƣợc biểu
hiện ở sơ đồ 13-2. Cấu trúc phân tich không dựa trên những đối tƣợng,tuy
nhiên
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 490
Interestingly, not everything using objects is object oriented.
Professor Paul Wegner of Brown University has defined three levels of
object orientation for this purpose. The first level is object based. Object-
based languages, tools, and methodologies support the concept of the object
and use of messages to communicate between objects. The second level is
what is known as class based, which supports the concepts of
objects,messaging, and classes. The third level is object oriented, which
supports the definition that this chapter has already supplied.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 491
Thật la thú vị la mọi việc đều không muốn sử dụng đối tƣợng trong
hƣớng đối tƣợng.Giảng viện Paul Wegner của trƣờng đại học Brown đã
định nghĩa 3 mức cho thiết kế hƣớng đối tƣợng vì mục đich nay.Mức thứ
nhất đó la đối tƣợng căn bản. Đối tƣợng căn bản ở đây đó chinh la những
ngôn ngữ,công cụ va những phƣơng pháp hỗ trơ cho những đối tƣợng va sử
dụng những thông điệp để liên lạc giữa những đối tƣợng. Mức thứ 2 đƣợc
biết đến nhƣ la những lớp căn bản ma nó hỗ trợ các khái niệm về đối
tƣợng,thông điệp, lớp. Mức thứ 3 la hƣớng đối tƣợng,nó sẽ hỗ trợ cho
những định nghĩa ma chƣơng nay sẽ cung cấp đầy đủ
There are three levels of object orientation utilized in systems
development. Object-oriented analysis (OOA) coincides with traditional
analysis but utilizes OO techniques. Object-oriented design (OOD) is th
design phase of the OO methodology and OOP (object-oriented
programming) is the programming phase. The reader is urged to review the
definitions at the end of this chapter for a better feel for the vocabulary of
this methodology.
Có 3 lớp của sự hƣớng đối tƣợng đƣợc dùng trong sự phát triển hệ
thống.Phân tich hƣớng đối tƣợng trùng với cách phân tich truyền thống
nhƣng có dùng công nghệ hƣớng đối tƣợng.Thiết kế hƣớng đối tƣợng la
một giai đoạn của phƣơng pháp hƣớng đối tƣợng va lập trình hƣớng đối
tƣợng (OOP) la giai đoạn lập trình. Ngƣời đọc có thể xem lại những định
nghĩa nay ở cuối chƣơng để có thể cảm thấy hiểu rõ hơn về những từ vựng
trong phƣơng pháp nay.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 492
OO seems to have penetrated the organization in a bottom–up
manner.Though the benefits of OO have been touted for at least a decade, it
was only when OO languages became widely available that these methods
began to be widely adopted. A big part of this can be attributed to the
introduction of the Internet and Java programming language, which is OO.
The introduction of ―visual‖ program development environments for C++
(Exhibit 13-3) and Visual Basic.Net was also a contributing factor.
Hƣớng đối tƣợng dƣờng nhƣ đi vao tổ chức theo cách từ dƣới lên.
Mặc dù lợi ich của HĐT đã đƣợc giới thiệu đến cả 1 thập kỉ nay, nhƣng chỉ
khi ngôn ngữ HĐT phổ biến rộng rãi thì phƣơng pháp HĐT mới bắt đầu
đƣợc sử dụng nhiều. Công lớn la nhờ việc giới thiệu Internet va ngôn ngữ
lập trình Java – ngôn ngữ HĐT. Kế đến la môi trƣờng phát triển Visual
Studio C++ (hình 13-3) va Visual Basic của Microsoft. Mạng Internet cũng
la 1 nhân tố quan trọng..Hình 13-2, Hình 13-3
Classes are actually the building block of OO systems. Classes are
built to be reusable and are often thought of as ―black boxes‖. The
programmer should have only the details he or she needs to get the class to
work. Classes can be stored in a class library. If enough classes are
available to the programmer, the task of programming becomes less
burdensome and the code is of a much higher quality because classes and
objects available in a class library have been thoroughly tested.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 493
Lớp (class) la nền tảng của hệ thống HĐT. Lớp đƣợc xây dựng va tái
sử dụng va thƣờng đƣợc coi la ―hộp đen‖ (black box). Lập trình viên nên
biết các chi tiết cần thiết để lam cho một Lớp hoạt động. Lớp có thể đƣợc
lƣu trong thƣ viện lớp. Nếu có đủ lớp trong thƣ viện thì việc lập trình sẽ bớt
đi gánh nặng va code viết ra cũng sẽ chất lƣợng hơn vì các lớp va các đối
tƣợng trong thƣ viện đều đã đƣợc kiểm tra kĩ cang.
The best way to explain the inner workings of classes is to show you
a very simple program. In the C++ program displayed in Exhibit 13-4, we
create a class named DayOfYear. Class DayOfYear encapsulates data (the
integers month and day) and function (the function called output). If you
read through the program (//denotes comments), you will immediately see
the flexibility and power of classes and objects. As you can see, classes are
the heart of an OO system. It makes sense, then, that OOA and OOD
revolve around identification and specification of classes.
Cách tốt nhất để giải thich những công việc bên trong của một lớp la
viết ra một chƣơng trình đơn giản. Trong chƣơng trình C++ ở hình 13-4,
chúng ta tạo ra một lớp có tên DayOfYear. Lớp DayOfYear đóng gói dữ
liệu (các số nguyên tháng va ngay) va ham (ham output). Nếu bạn đọc qua
chƣơng trình, bạn sẽ nhanh chóng thấy đƣợc tinh chất linh hoạt va sức
mạnh của lớp va đối tƣợng. Nhƣ bạn có thể thấy, lớp la trái tim của hệ
thống HĐT. Ta thấy rằng OOA (phân tich HĐT) va OOD (thiết kế HĐT)
xoay quanh các vần đề về sự nhận dạng va sự đặc tả của lớp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 494
13.3 METHODOLOGIES
13.3.1 OOAD Methodologies
Object-oriented analysis and design (OOAD) benefits from a variety
of competing but similar methodologies. The major OO methodologies are
described by Gora (1996):
Phân tich va thiết kế HĐT đem lại lợi ich từ nhiều phƣơng pháp cạnh
tranh nhƣng giống nhau. Phƣơng pháp HĐT chủ yếu đƣợc mô tả bởi Gora
(1996)
13.3.2 Booch
Grady Booch‘s approach to OOAD (Object-Oriented Design with
Applications, Benjamin/Cummings, 1994) is one of the most popular and is
supported by a variety of reasonably priced tools ranging from Visio to
Rational Rose.
Hƣớng tiếp cận của Grady Booch đối với OOAD la một trong những
hƣớng phổ biến nhất va đƣợc hỗ trợ bởi rất nhiều công cụ với giá cả hợp lý
từ Visio đến Rational Rose
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 495
13.3.3 Coad and Yourdon
Coad and Yourdon published two of the first books on OOAD
(Object-Oriented Analysis and Object-Oriented Design, Prentice-Hall, New
York, 1990 and 1991, respectively). Their methodology focuses on analysis
of business problems. Analysis proceeds in five stages, called SOSAS:
Subjects: these are similar to the levels or layers in data-flow diagrams.
Objects: object classes are specified in this stage.
Structures: there are two types: classification structures and
composition structures. Classification structures correspond to the
inheritance relationship between classes. Composition structures define
the other types of relationships between classes. Methodologies deal
with these structures.
Attributes: these are handled similarly to attributes in relational
analysis.
Services: what other methodologies call methods or operations is
identified.
In design, these activities are refined into four components:
Problem domain component: classes that deal with the problem
domain; for example, customer classes and order classes
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 496
Human interaction component: user-interface classes such as window
classes
Task management component: system-management classes such as
error classes and security classes
Data management component: database access method classes and the
like
Coad va Yourdon đã xuất bản 2 trong những cuốn sách đầu tiên viết
về OOAD (2 cuốn Object-Ori-ented Analysis và Object-Oriented Design,
Prentice-Hall, New York, xuất bản năm 1990 va 1991). Phƣơng pháp của
họ tập trung vao phân tich các vần đề nghiệp vụ
Quá trình phân tich gồm 5 giai đoạn, gọi la SOSAS:
Subjects: xác định những chủ đề tƣơng ứng với cấp độ (level) hay tầng
(layer) trong biểu đồ dòng dữ liệu (data-flow diagram).
Objects: các lớp đối tƣợng đƣợc xác định trong giai đoạn nay.
Structures: có 2 loại: cấu trúc phân lớp (classification) va cấu trúc phức
hợp (composition). Cấu trúc phân lớp tƣơng ứng với quan hệ kế thừa
giữa các lớp. Cấu trúc phức hợp định nghĩa các quan hệ khác giữa các
lớp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 497
Attributes: các thuộc tinh sẽ đƣợc quản lý giống nhƣ trong phân tich
qua hệ.
Services: xác định cái ma các phƣơng pháp khác gọi la phƣơng thức
(method).
Thiết kế gồm 4 phần:
Problem domain component: thiết kế các lớp giải quyết các phạm vi
vấn đề (problem domain), vì dụ, lớp customer (khách hang) va lớp
order (đặt hang).
Human interaction component: thiết kế lớp giao diện ngƣời dùng nhƣ la
lớp window.
Task management component: thiết kế lớp quản lý hệ thống nhƣ lớp
quản lý lỗi hay bảo mật.
Data management component: thiết kế lớp truy xuất cơ sở dữ liệu.
13.3.4 Jacobson: Objectory and OOSE
Jacobson‘s full OOAD methodology, Objectory, is proprietary. His
object-oriented software engineering (OOSE) is a simplified version of
Objectory (Object-Oriented Systems Engineering, Addison-Wesley,
Reading, MA, 1992).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 498
Trong phƣơng pháp của Jacobson, tinh đối tƣợng (Objectory) la độc
quyền. Kĩ thuật phần mềm HĐT của ông cũng la một phiên bản đơn giản
hóa của Objectory.
The major distinguishing feature in Jacobson is the use case. A use-
case definition consists of a diagram and a description of the interaction
between the actor and a system. An actor may be an end user or some other
object in the system.
Đặc trƣng phân biệt của phƣơng pháp của Jacobson la use case. Một
định nghĩa use case bao gồm 1 biểu đồ va một sự mô tả quá trình tƣơng tác
của tác nhân (actor) va hệ thống. Một tác nhân có thế la ngƣời dùng cuối
hay đối tƣợng nao đó trong hệ thống.
According to Jacobson, a use case is any description of a single way
to use a system or application, or any class of top-level usage scenarios, that
captures how actors use their black-box applications. A use case is any
behaviorally related sequence of transactions that a single actor performs in
a dialog with a system in order to provide some measurable value to the
actor.
Theo Jacobson, một use cae la một sự mô tả bất kỳ về một cách sử
dụng hệ thống hoặc ứng dụng, hoặc lớp bất kỳ nằm ở kịch bản sử dụng
thuộc tầng cao trong hệ thống, cho biết cách ma tác nhân sử dụng ứng dụng.
Một use cae la một chuỗi các giao tác ma mỗi tác nhân sẽ thực hiện.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 499
Use cases are used to document user requirements in terms of user
dialogs with a system. They appear first in the requirements model and are
then used to generate a domain object model with objects drawn from the
entities of the business, as mentioned in the use cases. This is then
converted into an analysis model by classifying the domain objects into
three types: interface objects, entity objects, and control objects.
Use case đƣợc dùng để tai liệu hóa yêu cầu của ngƣời dùng. Chúng
xuất hiện đầu tiền trong mô hình các yêu cầu va sau đó đƣợc dùng để tạo ra
các mô hình đối tƣợng đƣợc vẽ từ tập thực thể của nghiệp vụ, nhƣ đã đƣợc
đề cập trong các use case. Mô hình nay sau đó lại đƣợc chuyển thanh mô
hình phân tich bằng cách phân loại các đối tƣợng thanh 3 loại: đối tƣợng
giao diện, đối tƣợng thực thể, va đối tƣởng điều khiển.
13.3.5 LBMS SEOO
Systems engineering OO (SEOO) is a proprietary methodology and
tool kit from the U.K.-based company LBMS. The four major components
of the SEOO methodology are:
• Work-breakdown structures and techniques
• An object modeling methodology
• GUI design techniques
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 500
• Relational database linkages to provide ER modeling and 4GL-specific
features
Systems engineering Object-Oriented (SEOO) la một phƣơng pháp
độc quyền va bộ công cụ của công ty LBMS. Bốn phần chinh của phƣơng
pháp SEOO là:
• Work-breakdown structures and techniques
• An object modeling methodology: Phƣơng pháp mô hình đối tƣợng.
• GUI design techniques: Kĩ thuật thiết kế giao diện đồ họa.
• Relational database linkages to provide ER modeling and 4GL-specific
features: sự kết hợp với cơ sở dữ liệu quan hệ để cung cấp mô hình ER
va các đặc trƣng 4GL-specific.
13.3.6 Phƣơng Pháp Rumbaugh OMT
James Rumbaugh‘s methodology is described in his book Object-
Oriented Modeling and Design (Prentice-Hall, New York, 1991).
Rumbaugh starts by assuming that a requirements specification exists.
Analysis consists of building three separate models:
• The object model (OM): definition of classes, together with attributes
and methods; the notation is similar to that of ER modeling with
methods (operations) added
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 501
• The dynamic model (DM): state transition diagrams (STDs) for each
class, as well as global event-flow diagrams
• The functional model (FM): diagrams very similar to data-flow
diagrams
Phƣơng pháp luận của James Rumbaugh đƣợc mô tả trong cuốn sách
Object-Ori-ented Modeling and Design (Prentice-Hall, New York, 1991).
James Rumbaugh mở đầu bằng cách cho rằng các chi tiết yêu cầu la phải
có. Phân tich bao gồm xây dựng 3 hình thức riêng biệt:
Mô hình đối tƣợng (Object Model – OM): những định nghĩa của lớp,
thuộc tinh va phƣơng thức; các ki hiệu cũng giống nhƣ của mô hình ER với
những phƣơng thức thêm vao
Mô hình động (Dynamic Model – DM): đồ thị chuyển đổi trạng thái
(State Transition Diagrams – STDs) cho từng lớp cũng nhƣ các đồ thị dòng
sự kiện toan cục
Mô hình chức năng (Function Model – FM): đồ thị rất giống với dồ
thị dòng dữ liệu
13.3.7 Shlaer và Mellor:
Shlaer and Mellor‘s work is one of the earliest examples of OO
methodology. (See Shlaer and Mellor‘s books, Object-Oriented Systems
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 502
Analysis: Modeling the World in Data and Object Lifecycles: Modeling the
World in States, Prentice-Hall, New York, 1988 and 1992, respectively.)
The Shlaer and Mellor methodology starts with an information
model that describes objects, attributes, and relationships. Next, a state
model documents the states of objects and the transitions between them.
Finally, a data-flow diagram shows the process model.
Những tìm hiểu của Shlaer and Mellor la một trong những vi dụ
nguyên thủy của phƣơng pháp hƣớng đối tƣợng. Phƣơng pháp luận của
Shlaer and Mellor bắt đầu với những mô hình thông tin mô tả đối tƣợng,
thuộc tinh, các mối quan hệ. sau đó, mô hình trạng thái ghi nhận những
trạng thái của đối tƣợng va sự chuyển đổi giữa chúng. Cuối cùng biểu đồ
dòng dữ liệu cho thấy mô hình tiến trình
13.3.8 OOAD Simplied
Organizations that have purchased an OO software tool generally
adhere to the OOAD methodology that the tool encompasses (i.e.,
Objectory, LBMS, etc.). Other organizations, however, are free to mix and
match the ―best of breed‖ components of a wide variety of OOAD
methodologies.This section explains one such simplified approach.
1. Create the system boundary diagram. The first step in the analysis and
design is the creation of a system boundary diagram. This diagrams the
domain model and its relationship with external systems or users, as
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 503
shown in Exhibit 13-5. The model structure diagram depicts the
relationship of the domain objects.
2. Develop an actor list of external systems and users (Exhibit 13-6).The
actor list shows each actor and his or her role in the domain model.
Gather information about these actors.
3. Create use cases and scenarios. Use cases are a user-centered analysis
technique to capture requirements from a user‘s point of view;they
describe the possible sequences of interactions among the systems with
one or more actors. Use cases illustrate high-level abstract functions
without writing code. Scenarios capture the exceptions, nonstandard
responses, and problems from the normal use case flow. Exhibit 13-7
shows a sample use case diagram and Appendix E shows a set of use
case diagrams with associated scenarios.
4. Generate CRC cards, which are note cards that contain the domain
model‘s classes, their responsibilities, and collaborators (Exhibit 13-8).
The nouns used in the uses cases become the potential classes in the
CRC cards. The verbs are the class‘s responsibilities; the collaborators
help the classes do their jobs.
5. Draw a collaboration graph depicting the collaborations (i.e.,
relationships between objects) uncovered during the CRC process
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 504
(Exhibit 13-9) and event traces to represent how events cause flow
from one object to another (Exhibit 13-10).
6. Create a system class diagram from the information derived in the
preceding exercises. Exhibit 13-11 shows a class diagram depicted in
terms of a system‘s subsystems. In the case of an OO system we use
the term package, which is a collection of classes. Subsequent diagrams
will depict each class as shown in this highest level class diagram
(Exhibit 13-12).
Những tổ chức mua các công cụ phần mềm hƣớng đối tƣợng thƣờng
bám vao phƣơng pháp OOAD đƣợc bao gồm trong công cụ đó. Phần nay sẽ
diễn tả cách đơn giản hóa cách tiếp cận đó.
Tạo ra biểu đồ đƣờng biên hệ thống (System Boundary Diagram).
Bƣớc đầu tiên trong phân tich va thiết kế la việc tạo nên biểu đồ biên hệ
thống. Biểu đồ nay mô tả mô hình miền va mối quan hệ với các hệ thống
bên ngoai hay ngƣời dùng. Biểu đồ cấu trúc mô hình mô tả quan hệ giữa
các đối tƣợng trong miền.
Phát triển danh sách actor của các hệ thống bên ngoai va ngƣời dùng.
Danh sách nay cho biết vai trò của từng actor trong mô hình miền. Thu thập
thông tin về những actor nay.
Tạo ra các use cases va các kịch bản (scenarios). Use cases la kĩ
thuật phân tich lấy ngƣời dùng lam trung tâm để đƣa ra các yêu cầu từ góc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 505
nhìn của ngƣời dùng; chúng mô tả những chuỗi tƣơng tác giữa các hệ thống
với một hay nhiều actors. Use cases minh họa chức năng trừu tƣợng ở mức
cao ma không lập trình. Kịch bản nắm bắt những phản hồi ngoại lệ, không
đúng chuẩn va những vấn đề trong dòng sự kiện thông thƣờng
Tạo ra các thẻ CRC (CRC cards), la những thẻ bao gồm các lớp mô
hình miền, trách nhiệm va các cộng tác viên (collaborators). Các danh từ sử
dụng trong use cases tiềm tang khả năng trở thanh những lớp trong thẻ
CRC. Động từ la những trách nhiệm của các lớp; còn collaborators giúp cho
các lớp lam công việc của mình.
Vẽ biểu đồ cộng tác mô tả những sự liên kết (vi du: các mối quan hệ
giữa các đối tƣợng) đƣợc sinh ra trong quá trình CRC hoạt động va dòng sự
kiện để đại diện cho các sự kiện tạo thanh dòng từ đối tƣợng nay sang đối
tƣợng khác.
Tạo ra biểu đồ lớp hệ thống từ những thông tin lấy đƣợc từ các hoạt
động trƣớc. Với trƣờng hợp hệ thống hƣớng đối tƣợng, ta sử dụng thuật ngữ
package, một bộ các lớp (classes). Những đồ thị con sẽ mô tả những lớp
đƣợc vẽ trong đồ thị gốc
Từ điển dữ liệu la một bộ các chi tiết tiến trình có thể tạo ra toan bộ
dữ liệu va các tiến trinh đƣợc định danh trong tất cả thiết kế man hình.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 13: Thiết kế hướng đối tượng 506
Sử dụng phƣơng pháp hƣớng đối tƣợng la một quá trình lặp đi lặp
lại; các bƣớc đƣợc miêu tả va minh họa ở trên có thể đƣợc thay đổi va tiến
hóa.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 507
CHƢƠNG 14 THIÊT KÊ GIAO DIÊN NGƢƠI
DÙNG
Người dịch:
1. Trần Thanh Hải
2. Đặng Hoang Hải
3. Lê Văn Chân
4. Lê Anh Khoa
5. Dƣơng Tùng Sơn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 508
Like many aspects of software engineering, in order to be effective,
user interface design needs to be analyzed, planned, and implemented in a
detailed and organized manner. With the demand for enhanced functionality
and implementation of increasingly complex systems, the pressure to
produce user interfaces that satisfy all user requirements becomes a great
challenge. Without guiding principles and a fundamental plan of attack,
developers are doomed to failure. Fortunately, as computer systems have
grown more complex, facilities for creating user interfaces quickly and
more efficiently have also come on stream. However, tools alone do not
make for a good user interface design.
Cũng nhƣ những khia cạnh khác trong công nghệ phần mềm, để hiệu
quả, thiêt kê giao diên ngƣơi dung cân đƣơc phân tich , lên kê hoach , va
đƣơc cai đặt một cách chi tiêt va co tô chƣc . Vơi nhu câu vê tinh năng nâng
cao va sƣ phát triển cac hê thông nga y cang phƣc tap , áp lực tạo ra những
giao diên ngƣơi dung thoa man tât ca nhƣng đoi hoi cua ngƣơi sƣ dung la
môt thƣ thach lơn . Môt khi thiêu hƣơng dân vê nhƣng nguyên tăc cơ ban
hay kê hoach nên tang , ngƣơi phat tri ển sẽ thất bại . Nhƣng may măn thay ,
khi cac hê thông may tinh phat triên phƣc tap hơn thi sƣ tiên nghi trong viêc
thiêt kê giao diên ngƣơi dung cung đƣơc trở nên nhanh va hiêu qua hơn .
Tuy nhiên chỉ dùng công cu thì thể không t ạo ra một thiết kế giao diện
ngƣơi dung tôt.
User interfaces have matured rapidly over the last decade. The
increasing speed and power of the PC and the growth of the Internet have
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 509
fueled the development of larger and more complex applications requiring
easier and more intuitive user interfaces. As application developers deliver
more sophisticated and robust applications, users expect and demand better
and more intuitive user interfaces to accompany those applications.
Competition among application developers is fierce and a product‘s user
interface plays a key role in adoption and acceptance by its user
community.
Giao diên ngƣơi dung phat triên nhanh chong trong thâp ky qua .
Viêc may tinh ngay cang tăng tôc tôc đô va sƣ phat triê n manh cua Internet
la dẫn tới sự phát triển những ứng dụng lớn va phực tạp hơn , nhƣng lại đoi
hỏi giao diện ngƣời dùng dễ dang va trực quan hơn . Môt khi nha phat triên
ứng dụng đƣa ra những sản phẩm tinh vi va công phu thì ngƣơi sƣ dung ho
cang mong chờ sản phẩm đó tốt hơn va giao diện trực quan hơn . Sự canh
tranh giƣa cac nha phat triên ƣng dung rât khắc nghiệt va giao diên ngƣơi
dùng của sản phẩm đóng vai trò chinh trong việc cộng đồng ng ƣời sử dụng
có lựa chọn va chấp nhận sản phẩm hay không.
14.1 NHỮNG NGUYÊN TẮC CƠ BẢN CỦA THIẾT KẾ GIAO DIỆN
No discussion of user interface design would be complete without
reference to the underlying principles that guide good user interface design.
Volumes have been written on the subject. The following are pointers to a
few of the lists of user interface design principles from various sources:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 510
Design Basics, from the Internet, http://www-
3.ibm.com/ibm/easy/eou_ext.nsf/Publish/6 (IBM).
Practical Real World Design, First Principles, from the Internet,
http://www.asktog.com/basics/firstPrinciples.html (Tognazzini,).
Principles of Good GUI Design, from the Internet,
http://axp16.ii.e.,org.mx/Monitor/v01n03/ar_ihc2.htm (Hobart,).
Muôn thiêt kê giao diên ngƣơi dung tôt chăc chăn phai co tai liêu
tham khao hƣơng dân tôt vê cac nguyên tăc thiêt kê cơ ban . Đã có rất nhiều
tai liệu nói về điều nay. Dƣới đây la môt sô nguôn tham khao:
Design Basics, from the Internet, http://www-
3.ibm.com/ibm/easy/eou_ext.nsf/Publish/6 (IBM).
Practical Real World Design, First Principles, from the
Internet,http://www.asktog.com/basics/firstPrinciples.html
(Tognazzini,).
Principles of Good GUI Design, from the
Internet,http://axp16.ii.e.org.mx/Monitor/v01n03/ar_ihc2.htm (Hobart).
The perspectives are somewhat different, but all espouse the same
basic principles, reiterated here for emphasis:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 511
Quan điêm thi co chut gi đo hơi khac nhau , nhƣng tât ca đêu tuân
theo cac nguyên tăc cơ ban dƣới đây:
Put the user in control. The user is obviously the most important
player in this game and should be able to customize the interface to suit his
or her preferences or needs. Whenever possible, account for the user‘s skill
level; categories such as novice, occasional user, and frequent user make a
good starting point. One example of this is a Macintosh word processing
product. A set of five options enables the user to set the desired level of
experience ranging from ―novice‖ to ―power user‖. Choosing a level results
in filtering menus for only those options required by a user of the selected
experience. A user gaining more experience at a specific level can move to
the next level when ready.
Chú trọng đến ngƣơi sƣ dung: Rõ rang ngƣời sử dụng đóng vai trò
quan trong nhât va nên đƣợc lựa chon giao diên phu hơp vơi sơ thich , nhu
câu cua ho . Bât cƣ khi nao co thê , hãy chú ý đến kha năng cua ngƣơi dung :
ngƣơi mơi hoc , ngƣơi sƣ dung không thƣơng xuyên va ngƣơi sƣ dung
nhiêu. Môt vi du vê san phâm xƣ ly văn bản cua Macintosh : môt tâp hợp
gồm năm tuy chon cho phep ngƣơi sƣ dung chọn mƣc mong muôn để lam
việc, tƣ ―ngƣơi mơi băt đâu ‖ cho đên ―ngƣơi thanh thao‖ . Lựa chọn một
mức dẫn tới việc ứng dụng chỉ hiện thị những danh mục phù hợp với mức
đó. Ngƣơi dung khi đã đạt đƣợc nhiêu kinh nghiêm hơn ơ môt mƣc cu thê
môt co thê chuyên sang mƣc tiêp theo.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 512
Be direct. The user should be allowed to work with the information
presented by the application directly. When a user performs an action, the
result of the action should be immediately apparent.
Trƣc tiêp: Nên cho phep ngƣơi dung trƣc tiêp lam viêc vơi thông tin
hiên thi trên ƣng dung . Khi ngƣơi dung thƣc hiên môt hanh đông , kêt qua
của nó phải rõ rang.
Use appropriate metaphors. Whenever possible use metaphors that
are familiar to the user. Metaphors help to make the user more comfortable
when using the software and provides for a more intuitive interface. For
example, a checkbook is a suitable metaphor for an application that
manages a user‘s bank account.
Sƣ dung tinh đôi sanh thich hơp: Sƣ dung tinh đôi sanh quen thuôc
vơi ngƣơi sƣ dung bât cƣ khi nao co thê . Tinh đối sánh giúp cho con ngƣời
ta thoai mai hơn khi sƣ dung phân mêm va no cung câp giao diên trƣc quan
hơn. Vi dụ nhƣ hình dáng một cuốn sổ ghi séc la một hì nh anh đôi sanh
thich hợp cho ứng dụng quản lý tai khoản ngân hang của ngƣời dùng.
Make the interface consistent. Consistency in design makes it
easier for the user to apply skills learned on one task to another task. Users
should not need to spend time trying to remember differences in behavior
among objects. Many Windows applications, for example, have the same
basic pattern for menus; File and Edit are always the first two menus on the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 513
left and Help is typically the last menu on the right, as indicated in Exhibit
14-1.
Tạo giao diện nhất quán : Tinh nhất quán trong thiết kế lam cho
ngƣơi dung áp dung nhƣng ky năng đa hoc tƣ công viêc nay sang công viêc
khác dễ dang hơn. Ngƣơi dung không cân danh thơi gian đê nhơ nhƣng cac
thao tác khac nhau trên cac đôi tƣơng khác nhau . Nhiêu ƣng dung windows
có cùng một kiểu menu cơ bản : File va Edit la 2 menu đâu tiên bên trai va
Help la cai cuôi bên phai. Xem hinh minh hoa 14-1.
Regular users of Windows applications expect these menus in this
order; therefore, it does not make sense to break this paradigm.
Nhƣng ngƣơi dung thông thƣơng đêu mong đơi cac trât tƣ menus
nay thanh ra đừng nên phá vơ nó.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 514
Provide shortcuts. For novice users, shortcuts may not be all that
important, but as the user gains experience with the interface, inevitably he
will look for faster and more efficient ways of getting the job done.
Cung câp phim tăt : Vơi nhƣng ngƣơi mơi băt đâu , phim tắt không
phải la tât ca nhƣng gi quan trong , nhƣng với ngƣơi dung co kinh nghiêm ,
họ sẽ cần nhƣng cach nhanh hơn va hiêu qua hơn đê hoan thanh công viêc.
Shortcuts play a key role here and are greatly appreciated by power
users. I know one technical writer who works in Microsoft Word with the
toolbar and menu bar hidden, doing all formatting work with only shortcuts.
Quite amazing!
Phim tắt đóng vai trò quan trọng va đƣợc những ngƣời dùng chuyên
nghiệp đanh gia cao . Tôi biết một nha văn lam việc bằng Microsoft Word
với thanh công cụ va thanh trình đơn ẩn, tất cả các thao tác chỉ thông qua
các phim tắt. Khá tuyệt vời!
Be forgiving. The user should be allowed to change his mind and
reverse a previously performed action. If circumstances make it impossible
to reverse the result of an action, provide an indication to the user up front,
indicating that the action about to take place cannot be reversed. It is also
important to make error recovery as easy as possible.
Khoan dung: Nên cho phep ngƣơi dung thay đôi suy nghi cua ho va
quay lai hanh đông trƣơc cua ho . Trong trƣơng hơp không thê khắc phục
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 515
đƣợc kêt qua một khi đã hanh đông thi hiên thi thông bao cho ho răng hanh
đông ho sắp lam sẽ không đảo ngƣợc đƣợc . Khôi phục sau lỗi cần cang dễ
cang tốt.
Provide feedback. It is important that the user know what task is
being performed. We all know how frustrating it can be when a program
freezes the system while it is performing a task with no visual indication
that the task is being performed or completed. Visual queues should be used
to provide user interaction and feedback appropriate to the task performed.
Cung câp thông tin phan hôi : Điêu quan trong la ngƣơi sƣ dung
biêt viêc gi đang đƣơc thƣc hiên. Tât ca chung ta biêt thê nao la bƣc bôi khi
môt chƣơng trinh lam đứng hệ thông trong khi ban thân no đang thƣc hiên
công viêc , không co 1 chỉ thị trực quan nao cho biết công việc đang đƣợc
thƣc hiên hay hoan thanh . Nên sƣ du ng nhƣng hang đơi trƣc quan đê cung
câp sƣ tƣơng tac ngƣơi dung va phan hôi thich hơp vơi nhiêm vu thƣc hiên.
Make the interface aesthetically pleasing. An important aspect of
the user interface is its visual appearance. Visual elements on the screen
compete for the user‘s attention. It is not a simple task to get the right
balance so that the user‘s attention is focused on the right elements at the
right time. Often it is necessary to acquire the services of a graphics
designer to get the right result. A professionally designed, aesthetically
pleasing application is more likely to gain acceptance among users than one
that lacks this characteristic.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 516
Giao diên phai co tinh thâm my : Môt khia canh quan trong cua
giao diên ngƣơi dung la hinh thƣc cua no . Nhƣng yêu tô trƣc quan trên man
hình thu hút sự chú ý cho ngƣời dùng. Không phai đơn gian đê co đƣơc môt
sƣ cân băng chinh xac đê sƣ chu y cua ngƣơi dung tâp trung vao nhƣng yêu
tô chinh vao đung thơi điêm . Thƣơng thi cân phải thuê môt nha thiêt kê đô
họa để có đƣợc một kết quả chinh xác . Môt ƣng dung đƣợc thiêt kê chuyên
nghiêp, mang tinh thâm my thi co nhiêu kha năng danh đƣơc sƣ châp thuân
tƣ phia ngƣơi dung hơn nhƣng ƣng dung thiêu đi đăc tinh nay.
Be as simple as possible. This may sound simple, but from the
developer‘s perspective simplifying the user interface typically involves
quite a bit of work. In a complex application or product, try to develop a
user interface that exposes only information necessary for the user to get the
task done.
Đơn gian nhât co thê: Điêu nay nghe co ve đơn gian, nhƣng tƣ quan
điêm cua nha phat triên đê đơn gian hoa giao diên ngƣơi dung thi no thông
thƣơng bao gôm kha nhiêu công viêc . Trong môt ƣng dung hay san phâm
phƣc tap, hãy cố gắng phát triển giao diện chỉ thể hiện những thô ng tin ma
ngƣơi dung cân đê hoan thanh công viêc.
Provide help. A help system is vital. Many different types of help
systems are available. Embedded help is totally integrated within the
application; it provides help instructions for every screen that is part of the
user interface. Online help, typically accessible by choosing an item from
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 517
the help menu, is a set of topics about the product; a table of contents,
index, and search mechanism are typically provided so that the user can
browse or search for a topic of interest. Context-sensitive help provides
information about the current context; for example, when a specific dialog
is displayed, the user can press F1 to get information about that dialog.
Tooltip help displays hints; for example, when the cursor hovers over a
toolbar button, help text is displayed as shown in Exhibit 14-2.
Cung câp trơ giup : Môt hê thông trơ giup la rât quan trong . Có
nhiêu loai trơ giup khac nhau . Trơ giup nhung hoan toan đƣơc tinh hơp bên
trong ƣng dung, nó cung cấp những chỉ dẫn giúp đơ cho mỗi phần của giao
diên ngƣơi dung. Hô trơ trƣc tuyên, thông thƣơng co thê truy câp băng cach
chọn mục ở menu trợ giúp , la tập chủ đề về sản phẩm , bảng các nội dung ,
chỉ mục, va cơ chế tìm kiếm thƣờng đƣợc cung cấp để ngƣời dùng có thể
duyêt hay tim kiêm chu đê quan tâm. Hô trơ ngƣ canh cung câp thông tin vê
tình huống hiện tại ; vi dụ khi một hộp thoại hiển thị lên , ngƣơi dung co thê
bâm F1 để xem thông tin về hộp thoại đó. Tooltip giúp hiển thị gợi ý, chăng
hạn khi đƣa con trỏ chuột hiển thị trên một nút thanh công cụ thì văn bản
trơ giup hiên thi nhƣ hinh 14–2.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 518
Two industry standards that provide excellent information on user
nterface design principles are The Windows Interface Guidelines for
Software Design and Macintosh Human Interface Guidelines. Two websites
that provide some excellent examples of good and bad user interface design
are the Interface Hall of Fame, http://www.iarchitect.com/mfame.htm and
the Interface Hall of Shame, http://www.iarchitect.com/mshame.htm. See
the reference list at the end of this chapter for more details about these
sources.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 519
Hai tiêu chuân công nghiêp cung câp thông t in chuân vê nhƣng
nguyên tăc trong thiêt kê giao diên ngƣơi dung la The Windows Interface
Guidelines for Software Design va Macintosh Human Interface Guidelines.
Hai trang web cung câp nhƣng vi du chuân vê thiêt kê giao diên ngƣơi dung
hay va dở la Interface Hall of Fame, va Interface Hall of Shame. Xem danh
sách tai liệu tham khảo ở cuối chƣơng để biết thêm chi tiết.
14.2 QUÁ TRÌNH THIẾT KẾ GIAO DIỆN
Principles are good, but how and when do we apply them? One of
the most popular user interface design methodologies is one that mimics the
overall software development process. This process consists of four phases;
each phase is repeated during each iteration of the cycle. A summary of the
design process is shown graphically in Exhibit 14-3 and each of its phases
is described briefly below:
Nguyên tăc la tôt nhƣng khi nao chung ta ap dung chung va ap dung
chúng nhƣ ra sao ? Môt trong nhƣng phƣơng phap thiêt kê giao diên ngƣơi
dùng phổ biến nhất la bắt chƣớc qu á trình phát triển phần mềm tổng thể .
Quá trình nay bao gồm bốn giai đoạn , môi giai đoan đƣơc lăp lại qua môi
chu ky. Môt ban tom tăt cua qua trinh thiêt kê đƣơc thê hiên đô hoa ơ hinh
14 – 3 va mỗi giai đoạn của nó đƣơc diên giai văn tăt nhƣ sau:
Analysis. This phase involves collection of information about the
user and the tasks that he or she will want to perform using the application.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 520
An excellent, highly rated book on this subject is User and Task Analysis
for Interface Design (Hackos and Redish, 1998). This book clearly
separates analysis from design and provides guidelines and techniques for
eliciting task information from prospective users.
Phân tích: Giai đoạn nay bao gồm việc thu thập thông tin về ngƣời
sử dụng va các công viêc ma ngƣời đó sẽ muốn thực hiện bằng các ứng
dụng. Cuôn sach đƣơc đanh gia cao vê chu đê nay la User and Task
Analysis for Interface Design (Hackos and Redish , 1998). Nó tách biệt rõ
rang việc phân tich từ thiết kê va cung câp cac phƣơng châm va kỹ thuât thu
thâp thông tin công viêc tƣ ngƣơi dung tiêm năng.
Design. Once the analysis has been completed and all tasks have
been identified, the process of identifying the required objects and the
actions to be performed can begin. User scenarios play a key role in this
phase. From the scenario narrative, the designer can extract the objects
(typically nouns) and the actions (typically verbs) to build a list of required
elements. One book that addresses many of the issues that the developer
faces during the design phase is User Interface Design for Programmers
(Spolsky, 2000).
Thiêt kê: Môt khi hoan thanh bƣơc phân tich va tât ca cac công viêc
đa đƣơc xac đinh , quá trình xác định đối tƣợn g va nhƣng hanh đông cần
đƣơc thƣc hiên co thê băt đâu. Kịch bản ngƣời dùng đóng vai trò quan trọng
trong giai đoan nay. Tƣ kich ban, ngƣơi thiêt kê co thê lây nhƣng đôi tƣơng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 521
(thƣơng la danh tƣ ) va hanh động (thƣơng la động từ ) để xây dựng danh
sách các yếu tố đƣợc yêu cầu . Môt cuôn sach đê câp đên nhiêu vân đê ma
môt ngƣơi thiêt kê đôi măt trong suôt giai đoan thiêt kê la : User Interface
Design for programmers (Spolsky, 2000).
Implementation. In the implementation phase, a prototype is
produced. This is typically achieved using one of the many fourth-
generation languages or programming development environments (Visual
Basic, Visual C++, Visual J++, Java, etc.) that allow the rapid development
of user interfaces using predefined libraries of components such as
Windows, Menus, Buttons, Drop-Down list controls, Tree controls, etc.
Thưc thi: Môt mâu thƣ nghiêm đƣơc tao ra trong giai đoan thƣc thi .
Mâu nay thƣờng đƣợc tạo băng ca ch sƣ dung môt trong cac ngôn ngƣ thê
hê thƣ tƣ hoăc nhƣng môi trƣơng phat triên lâp trinh nhƣ (Visual Basic ,
Visual C, Visual J, Java, v.v.), chúng cho phép phát triển nhanh chóng của
giao diên ngƣơi dung băng cach sƣ dung thƣ viên đa đƣơc đinh nghia trƣơc
nhƣ cửa sổ, thực đơn, nút bấm, Drop-Down, danh sách, cây,…
Test. When the prototype is complete, the developer can take the
software to the customer for user interface evaluation. Users can test drive
the software and make suggestions for improvements, which become part
of the analysis phase. Then the cycle can begin again to refine the process
further. Pamela Savage compares three different evaluation techniques: 1)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 522
expert reviews, 2) user reviews, and 3) interactive usability testing, with the
conclusion that all three play a role in the evaluation process.
Kiêm tra : Khi cac mâu thƣ nghiêm hoan tât , nha phát triển có thể
đƣa phân mêm cho khach hang đê đanh gia giao diên ngƣơi dung. Ngƣơi sƣ
dụng có thể chạy thử phần mềm va đề xuất một số vấn đề cải thiện – môt
phân cua giai đoan phân tich. Sau đo, chu ky co thê băt đâu lai đê tinh chinh
nhƣng qua trinh xa hơn . Pamela Savage so sanh ba ky thuât đanh gia khac
nhau: 1. Chuyên gia đanh gia, 2. Ngƣơi dung đanh gia, 3. Kiêm tra tinh tiện
dụng trong tƣơng tac , vơi kêt luân tât ca ba ky thuât đong môt vai tro trong
quá trình đánh giá.
One aspect of good user interface design not immediately apparent
from the four phases of the design cycle described here is that the design
involves input from many different disciplines in addition to software
development. These disciplines include visual designers, writers, human
factors experts, and, of course, the user. A well-balanced team of people
providing input from different perspectives is critical to the success of the
user interface.
Môt khia canh cua thiêt kê giao diên ngƣơi dung tôt không đƣợc nêu
rõ trong bôn giai đoan cua chu ky thiêt kê diên ta ơ trên la thiêt kê bao gôm
đâu tƣ vao nhiêu nganh kiên thƣc khac nhau bên canh phat triên phân mêm .
Các nganh nay gồm ngƣời thiết kế trực quan , nhƣng ngƣơi viêt , nhƣng
chuyên gia vê con ngƣơi va tât nhiên nƣa l a ngƣời sử dụng . Môt đôi ngu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 523
đung mƣc cung câp đâu vao vơi nhƣng quan điêm khac nhau la rât quan
trọng cho sự thanh công giao diện ngƣời dùng.
14.3 THIẾT KẾ NHẬP XUẤT HIỆU QUẢ
Some systems analysts believe that designing input and output is the
most important task in designing a system because it is the part the end user
actually sees. Even though some people might disagree with this point of
view, poorly designed input and output may cause an otherwise well
designed and solidly implemented system to fail. When systems analysts
design input and output, there are three aspects of concern: (1) the input and
output data (data flow) between software components, (2) the design of
input and output between the software and other nonhuman producers and
consumers of information, (3) the interaction between the user and the
computer.
Môt sô nha phân tich tin răng thiêt kê nhập xuất la nhiêm vu quan
trọng nhất trong thiết kế hệ thống vì nó la phần ngƣời sử dụng cuối thực sự
thấy. Măc du môt sô ngƣơi không đông y vơi quan điêm nay , thiêt kê nhập
xuất kem co thê khiến cả một hệ thống đƣợc thiết kế va cai đặt cẩn thận bị
thất bại. Khi nha phân tich hê thông thiêt kê nhập xuất, có ba điểm cần quan
tâm: 1. Dữ liệu nhập xuất (luông dƣ liêu) giƣa cac thanh phân phân mêm. 2.
Thiết kế nhập xuất giữa phần mềm va các đối tƣợng nhập xuất thông tin
không phải la con ngƣời 3. Tƣơng tac giƣa ngƣơi dung va may tinh.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 524
14.3.1 Thiết kế nhập
A key factor for developing the design input is the customer‘s
requirements. This includes, but is not limited to: end-user expectations,
patterns of end-user usage, security, and performance. The customer should
not be the only consideration, however. All factors relevant to the design of
the system should be considered, including management requirements,
interface requirements, and other related processing requirements.
Yêu tô chinh đê phat triên đâu vao thiêt kê la yêu câu cua khach
hang, bao gôm (nhƣng không giơi han trong): sƣ mong chơ cua ngƣơi dung
cuôi, các cách sử dụng của ngƣời dùng cuối , bảo mật , va hiệu suất . Tuy
nhiên, không nên chi xem xet tƣ phia măt khach hang . Tât ca nhƣng yêu tô
liên quan đên viêc thiêt kê đ ầu vao của hệ thống đều phải đƣợc xem xét ,
gôm co cac yêu câu quan ly , yêu câu giao diên, va những yêu cầu xử lý liên
quan khac.
A variety of media and methods is used to capture and input data so
that it can be used properly, including: (1) paper forms combined with data
entry screens, (2) electronic forms, and (3) direct entry devices.
Sƣ phong phu cua đa phƣơng tiên va cac phƣơng phap đƣơc sƣ dung
để thu thập va nhập dữ liệu để nó có thể đƣợc sử dụng hợp lý , gôm co: 1.
Các dạng dữ liệu giấy kết hợp với các man hình nhập liệu . 2. Dạng điện tử.
3. Thiêt bi nhập trƣc tiêp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 525
14.3.1.1 Giấy
Even though the usage of computers is very common, it would be
surprising to find a system that did not have at least one input or output
paper form. Paper forms carry data physically. In every business or
organization there are manual transactions that might require the use of
manual forms, such as order forms, sales transactions, and surveys. The
data captured on these forms, therefore, must be entered into the system for
processing. Guidelines for designing a paper form include:
Măc dâu viêc sƣ dung may tinh la rât phô biên, nhƣng nêu tim ra môt
hê thông ma không co it nhât môt mâu giây tơ đâ u vao hay đâu ra nao thi la
điêu đang ngac nhiên . Biểu mẫu lƣu trữ dữ liệu một cách vật chất . Trong
nhƣng doanh nghiêp hay tô chƣc , có những giao dịch thủ công đòi hỏi sử
dụng những hình thức thủ công chẳng hạn nhƣ mẫu đơn đặt hang, giao dich
bán hang va các bản khảo sát . Dƣ liêu đƣơc lây thông qua cac dang nay vi
vây phai đƣơc nhâp vao hê thông đê xƣ ly . Nguyên tăc thiêt kê biểu mâu
giây bao gôm:
Select proper paper. Papers of different colors, grades, and weight
might be used to print a form. When we select a paper for our form, we
need to consider some factors, for example: how long the company will
keep it, how to fill in the form (handwritten or printed), how it will be
handled (gently, roughly), and if the paper is easy and convenient to use.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 526
Chọn đúng giấy : Giây có mau khac nhau , loại giấy, va trọng lƣợng
có thể đƣợc sử dụng để in ra mẫu . Khi chung ta chon dang giây đê lam
mâu, chúng ta cần xem xét một số yếu t ố. Vi dụ: Thơi gian công ty giƣ no ,
điên vao mâu băng cach nao (viêt tay hay in ), sử dụng nó thế nao (nhẹ
nhàng, mạnh bạo), va giấy có dễ va tiện để dùng hay không.
The size of paper should be appropriate. The most popular size is 8.5
by 11 inches. If you require a smaller form, try to use half of this standard
size: 8.5 by 5.5. For card forms, the standards start with 8 by 10 inches. It is
best not to use nonstandard sizes because those sizes often have problems in
handling and filing and usually increase the cost of devices and papers.
Kich thƣớc giấy phải thich hợp: Cơ phô biên nhât la 8.5x11inch. Nêu
bạn muốn mẫu nhỏ hơn , cô găng sƣ dung môt nửa cua cơ chuân nay
(8.5x5.5). Đối với hình thức thẻ , cơ chuân la 8x10. Tôt nhât la đƣng sƣ
dụng kich cơ không chuẩn vì chúng thƣờng đụng các vấn đề về xử lý , điên
thông tin va thƣơng lam tăng chi phi cua thiêt bi va giây tơ.
Forms should be easy to fill out. To make forms easy to fill out, the
following techniques are used: (1) Put simple instructions or examples on
the form to assist users. (2) Form flow should be designed to follow a
logical sequence (left to right, top to bottom) (See Exhibit 14-4). (3) Group-
related data should be in the same section. (4) Each section and field should
have a caption that tells the user what to put there. (5) Use proper space to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 527
make the form clearer. (6) Using lines and boxes can also help. (7) Have
alternative selections capability (i.e., use of a check box).
Mâu nên dê điên : Đê tao nhƣng mâu dê điên , sƣ dung ky thuât : 1.
Đặt chỉ dẫn thông tin hoặc những vi dụ đơn giản trên mẫu để hỗ trợ ngƣời
sƣ dung . 2. Nên thiêt kê dong mâu theo logic (trái sang phải , trên xuông
dƣơi) (xem hinh 14–4). 3. Nhƣng nhom dƣ liêu liên quan nên thuôc cung
môt muc. 4. Môi muc va linh vƣc phai co chu thich chi cho ngƣơi dung nên
viêt gi vao đo . 5. Bô tri không gian thich hơp đê lam cho mâu ro rang hơn .
6. Cũng co thê sƣ dung dong va cac hôp vuông . 7. Cho phép có những lƣa
chọn khác nhau (vi dụ nhƣ sử dụng check box).
Design to meet the purpose of a form. A systems analyst should
design different forms to better reflect different process requirements even
if several forms are similar to each other.
Thiêt kê đê đap ƣng cac muc đich cua mâu : Môt nha phân tich hê
thông nên thiêt kê nhƣng mâu khac nhau đê phan anh tôt hơn nhƣng yêu
câu xƣ ly khac ngay cả khi môt vai dang la tƣơng tƣ nhau.
Make the form attractive. An attractive form can encourage the user
to complete it. A form should be designed to look neat and the input fields
should be logically ordered. Aesthetic forms or usage of different fonts
within the same form can help make it attractive.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 528
Tạo mẫu lôi cuốn : Mâu lôi cuôn co thê tao cơ hôi cho ngƣơi ngƣơi
sƣ dung hoan thanh no . Nên thiêt kê mâu nhin gon va cac trƣơng đâu vao
cân co thƣ tƣ logic . Các hình thức thẫm mỹ hay cá c phông chƣ khac nhau
trên cung môt mâu cung gop phân lam cho no thu hut, lôi cuôn hơn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 529
Design evaluation. After a form prototype has been created, we must
give it to the user and check to see if it meets the user‘s requirements. The
user can provide some suggestions and the designer can make modifications
according to the suggestions. The evaluation cycle (see Exhibit 14-5)
repeats until users are satisfied with the form.
Đanh gia thiêt kê : Sau khi tao ra môt mâu thƣ nghiêm mâu , ta phai
đƣa no cho ngƣơi dung đê kiêm tra liêu no co đap ƣng yêu câu cua ngƣơi sƣ
dụng hay không. Ngƣơi dung co thê đƣa ra môt sô đê xuât va ngƣơi thiêt kê
có thể hiệu chỉnh theo hƣớng của đề xuất đó . Chu trinh đanh giá (xem hinh
14 – 5) lăp đi lăp lai cho đên khi ngƣơi sƣ dung thoa man mâu đo.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 530
14.3.1.2 Mâu điên tư
When we talk about electronic forms systems (see Exhibit 14-6), we
turn our attention from paper to screens. Designers must design electronic
forms to reflect the organization of the data source. When it is used by
people (customer, clerk, etc.), it must be designed with all the captions, data
entry fields, and instructions arranged in a logical manner that can help
users completing the forms. The designing guideline for the paper form can
also apply to screen form because both have the same components.
Khi chung ta noi vê hê thông mâu điên tƣ (xem hinh 14-6). Ta
chuyên sƣ chu y tƣ giây sang man hinh . Nhƣng nha thiêt kê phai thiê t kê
nhƣng mâu điên tƣ đê phan anh viêc tô chƣc cua nguôn dƣ liêu . Khi ngƣơi
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 531
ta sƣ dung no (khách hang, thƣ ky, …), nó phải đƣợc thiết kế với tất cả các
chú thich , nhƣng trƣơng nhâp liêu , va những chỉ dẫn đƣợc sắ p xêp hơp ly
để có thể giúp ngƣời sử dụng hoan thanh mẫu . Các phƣơng châm thiết kế
mâu giây co thê cung đƣơc ap dung vao dang điên tƣ bơi vi ca hai cung co
nhƣng thanh phân tƣơng tƣ nhau.
Electronic forms have many advantages over paper that make use of
this automated capability much more efficient: (1) the ability to process
calculations; (2) the ability to retrieve data and populate the electronic form
to reduce the number of fields that the user must fill in; (3) ability to
validate each field automatically; (4) the ability to coordinate processes
between tasks; (5) the ability to provide immediate help.
Nhiêu lơi thê cua mâu điên tƣ so vơi giây ma lam cho cach sƣ dung
khả năng tự động nay có nhiều hiệ n qua hơn đo la : 1. Khả năng xử lý các
tinh toán. 2. Khả năng truy xuất dữ liệu va bổ sung dữ liệu để hạn chế thông
tin ngƣời dùng phải nhập . 3. Khả năng kiểm tra tinh hợp của dữ liệu nhập .
4. Khả năng tự động phối hợp giữa những quy trình công việc. 5. Khả năng
cung câp trơ giup ngay lâp tƣc.
In most situations, electronic forms can replace all paper forms and
substantially reduce the cost of a system. Factors that affect the cost
include: (1) printers might run out of paper, causing the system to pause; (2)
electronic forms can prevent many data entry errors and the end user from
using the wrong form; (3) electronic forms can be easily modified to meet
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 532
new business requirements; (4) electronic form databases efficiently
manage the many forms in use in an organization.
Trong hâu hêt trƣơng hơp , các mẫu điện tử có thể thay thế tất cả các
mâu giây va giam đang kê chi phi cua môt hê thông . Nhƣng nhân tô anh
hƣơng đên chi phi bao gôm: 1. Máy in hết giây - nguyên nhân hê thông tam
dƣng, 2. Các mẫu điện tử có thể ngăn ngừa một số lỗi nhập liệu do ngƣời
dùng cuối điền sai. 3. Hình thức điện tử có thể đƣợc sửa đổi dễ dang để đáp
ứng những yêu cầu kinh doanh mới . 4. Cơ sơ dƣ liêu các mẫu điên tƣ quan
lý hiệu quả nhiều dạng đƣợc sƣ dung trong cac tô chƣc.
14.3.1.3 Nhưng thiêt bi nhâp trưc tiêp
When using electronic forms, the keyboard is the most common
input device. However, there are some instances where data is not input by
a user or a keyboard is not practical. Other data entry devices include:
• Scanner or optical character reader (OCR)
• Point-of-sale (POS) device
• Automatic teller machines (ATMs)
• Mouse
• Voice recognition
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 533
Khi sƣ dung hinh thƣc điên tƣ , ban phim la thiết bị nhập phổ biến
nhât. Tuy nhiên co môt sô trƣơng hơp thƣc tê dƣ liêu không đƣơc nhâp
băng ban phim. Môt sô thiêt bi nhâp liêu trƣc tiêp khac bao gôm:
• Máy quét hoặc máy đọc ki tự quang học
• Thiêt bi POS (Point-of-sale (POS) device)
• Máy ATM (Automatic teller machines (ATMs))
• Chuôt (Mouse)
• Nhân dang tiêng noi (Voice recognition)
14.3.2 Thiêt kê xuất
Output can be produced in a variety of ways: printing, screen, audio,
microform, CD ROM, or electronic output. Each technology has different
speed and cost, and affects the end user differently. When we choose an
output technology, the following should be considered: (1) the purpose of
the output; (2) the person who needs the information; (3) the reason the
output is needed; (4) the way the output will be used; (5) what specific
information will be included; (6) how the output will be viewed, i.e.,
printed on paper, stored on secondary storage such as tape, CD, tape, etc.,
or viewed on the screen; (7) how often the output is to be updated; (8) any
security issues.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 534
Dữ liệu xuất co thê đƣơc tao băng nhiêu cach cach khac nhau : máy
in, man hình, âm thanh, dạng thu nhỏ (microform), CD hoăc la cac đâu ra
điên tƣ . Môi công nghê co tôc đô va ch i phi khac nhau va co anh hƣơng
khác nhau đến ngƣời dùng cuối . Khi chung ta lƣa chon công nghê đâu ra ,
xem xet nhƣng điêu sau : 1. Mục đich của dữ liệu xuất , 2. Ngƣơi cân thông
tin. 3. Lý do cần thiết của dữ liệu xuất . 4. Cách dữ liệu xuất đƣơc sƣ dung .
5. Bao gôm nhƣng thông tin cu thê gi . 6. Dữ liệu xuất đƣơc xem nhƣ thê
nao, vi dụ nhƣ đƣợc in ra giấy , đƣơc lƣu trong bô nhơ ngoai nhƣ băng tƣ ,
CD… hay đƣơc xem trên man hinh . 7. Độ cập nhật thƣờng xuyên của dữ
liệu xuất. 8. Bât cƣ nhƣng vân đê bao mât nao.
14.4 KIỂM THỬ TÍNH TIỆN DỤNG
A user interface design can benefit greatly from usability testing.
Although this testing involves quite a lot of up-front investment, the results
are worth the investment, especially for commercial applications that have
potentially a wide audience. Usability testing involves observing users as
they use the application to perform their required tasks. The tests are
generally administered by human factors specialists and are usually
performed in a special work area where the specialists are separated from
the users by a one-way mirror that enables the specialists to observer users
as the tasks are performed. Users typically describe what they want to do
and how they are going about it using the software. The specialists study
these patterns and use the data to improve the user interface. This technique
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 535
is a very effective means of detecting misunderstood or misinterpreted areas
of the user interface. These areas can be redesigned and the tests can be
performed again to check for improvement.
Thiêt kê giao diên ngƣơi dung co thê thu lơi rât nhiêu tƣ viêc kiêm
tra tinh tiện dung . Măc du viêc kiêm tra nay bao gôm kha nhiêu đầu tƣ ban
đầu nhƣng kêt qua lại xứng đáng với gia tri đâu tƣ , đăc biêt la với cac ƣng
dụng thƣơng mại có khách hang tiền năng lớn . Kiêm thử tinh tiện dụng liên
quan đên viêc quan sat ngƣơi sƣ dung khi ho sƣ dung ƣng dung đê thƣc
hiên cac nhiêm vu đƣơ c yêu câu . Quá trình kiểm tra thƣờng đƣợc theo dõi
bơi nhƣng chuyên gia về con ngƣời va đƣợc thực hiện trong một khu vực
lam việc đặc biệt . Ở đó những chuyên gia đƣơc tach biêt tƣ nhƣng ngƣơi
dùng bằng một tấm gƣơng 1 chiều, cho phep ho quan sat ngƣơi dung khi
công viêc đƣơc thƣc hiên . Ngƣơi dung thƣơng diên giai nhƣng gi ho muôn
lam va định lam nhƣ thế nao khi sử dụng phần mềm. Các chuyên gia nghiên
cƣu nhƣng mô hinh nay va sƣ dung dƣ liêu đê cải thiện giao diện ngƣời
dùng. Kỹ thuật nay la một phƣơng tiện rất hiện quả để phát hiện những chỗ
chƣa hiêu hay bi hiêu lâm cua giao diên ngƣời dung . Nhƣng chô nay co thê
đƣơc thiêt kê lai va viêc kiêm tra co thê thƣc hiên lai đê thây sƣ cai thiên.
14.5 KẾT LUẬN
Providing a good user interface is a critical skill for application
developers today. Good user interface design does not happen automatically
despite the myriad of tools available to help developers create them.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 536
Ngay nay cung cấp một giao diện ngƣời dùng tốt la một kỹ năng
quan trong cua ngƣơi phat triên ƣng dung . Thiêt kê giao diên ngƣơi dung
tôt không tự nhiên ma có, dẫu cho có rât nhiêu cac công cu co săn co thê hô
trơ ngƣơi phat triển.
A good portion of this chapter has been devoted to stressing the
design principles; this is not an accident. The developer must learn and
apply basic principles and follow the tried and true process that leads to
quality user interface designs. The formula already exists; it merely needs
to be applied. The developer must always keep the users‘ interests in mind,
especially in cases of conflict between satisfying a user requirement and
taking an easier implementation route. The user interface should strive to
delight and help the user get the job done faster and more efficiently.
Developers must gain as much experience as possible when working with
and being exposed to good user interface designs.
Môt phân lớn cua chƣơng nay đƣơc d anh để nhấn mạnh các nguyên
tăc trong thiêt kê. Điêu nay không phai la tinh cơ. Ngƣơi phat triên phai hoc
va áp dụng các nguyên tắc cơ bản va các quy trình theo đúng nguyên tắc để
tạo ra những thiết kế giao diện ngƣời d ùng có chất lƣợng . Công thƣc thi đa
có, chỉ đơn thuần áp dụng thôi . Ngƣơi phat triên luôn phai giƣ nhƣng môi
quan tâm cua ngƣơi dung trong tâm tri , đăc biêt la trong trƣơng hơp xung
đôt giƣa thoa man yêu câu ngƣơi sƣ dung va việc dễ dang hơn trong quy
trình thực hiện. Giao diên ngƣơi dung nên cô găng thoa man va giup ngƣơi
sƣ dung thƣc hiên công viêc nhanh va hiêu qua hơn . Ngƣơi phat triên phai
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 537
cố thu thập cang nhiêu kinh nghiêm cang tôt khi tiêp xuc va lam viêc vơi
các thiết kế giao diện ngƣời dùng tốt.
The user interface is a key component when it comes to the
acceptance of an application or product. It can mean the difference between
adoption and obscurity.
Giao diên ngƣơ i dung la thanh phân chinh để sản phẩm đƣợc chấp
nhận. Nó tạo nên sự khác biệt giữa việc chấp nhận va không chấp nhận.
14.6 TÀI LIỆU THAM KHẢO
Hackos, J. and Redish, J. (1998) User and Task Analysis for
Interface Design, John Wiley & Sons, New York.
Hobart, J. Principles of good GUI design, from the Internet,
http://axp16.ii.e.,org.mx/Monitor/v01n03/ar_ihc2.htm.
IBM. Design basics, from the Internet,
http://www3.ibm.com/ibm/easy/eou_ext.nsf/
Publish/6.Isys Information Architects. Interface hall of fame, from
the Internet http://www.iarchitect.com/mfame.htm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 538
Isys Information Architects. Interface hall of shame, from the
Internet http://www.iarchitect.com/mshame.htm.
Macintosh Human Interface Guidelines. (1993) Addison-Wesley,
Reading, MA.
Savage, Pamela. AT&T Bell Laboratories, User interface evaluation
in an iterative design process: a comparison of three techniques, from the
internet,
http://www.acm.org/sigchi/chi96/proceedings/shortpap/Savage/sp_txt.html.
Spolsky, J. (2000) User interface design for programmers, from the
Internet,
http://www.joelonsoftware.com/uibook/chapters/fog0000000065.html.
The Windows Interface Guidelines for Software Design. (1995)
Microsoft Press, Redmond, WA.
Tognazzini, B. Practical real world design, first principles, from the
Internet, http://www.asktog.com/basics/firstPrinciples.html.
Two additional general sources of information that are worth a
mention even though they are not explicitly referenced in this chapter are:
Sumit, GUI design links, from the Internet, http://www.sum-
it.nl/enguilin.html.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 14:Thiết kế giao diện người dùng 539
Wilson, C. User interface design bibliography, from the Internet,
http://world.std.com/~uieweb/biblio.htm.
Other Sources:
Blum, B.I. (1992) Software Engineering: a Holistic View, Oxford
University Press, Inc., New York.
Burch, J.G. (1992) System Analysis, Design, and Implementation,
Boyd & Fraser Publishing Company, Boston.
Kendall, K.E. and Kendall, J.E. (2001) System Analysis and Design,
5th ed., Prentice Hall, Inc.,
Upper Saddle River, NJ.Pressman, R.S. (2001) Software
Engineering: a Practitioner‘s Approach, 5th ed., McGraw-Hill Companies,
Inc., New York.
Shaw, M. and Garlan, D. (1996) Software Architecture: Perspectives
on an Emerging Discipline, Prentice Hall, Inc., Upper Saddle River, NJ.
www.sxu.edu/~rogers/bu433/index.html: System design: input,
output, user interface.
www.webster.edu/~crawfodj/2810/pdf/2810ch07.pdf, User interface,
input, and output design.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 540
CHƢƠNG 15 SOFTWARE RE-ENGINEERING
Người dịch:
1. Nguyễn Tƣờng Minh
2. Nguyễn Quang Anh
3. Nguyễn Minh Hùng
4. Nguyễn Tiến Vũ
5. Nguyễn Bá Huy
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 541
Organizations spend much money building software applications
customized according to their business rules. In other words, software is the
realization of business rules. When business rules change, software must
also change. Software change is very important because organizations are
now completely dependent upon their software and have invested millions
of dollars in these systems. Therefore, organizations must invest in system
change to maintain the value of these systems. Software re-engineering is a
strategy for software change. It rebuilds existing legacy systems that have
become expensive to maintain or architecturally obsolete.
Các tổ chức tốn nhiều tiền để xây dựng phần mềm ứng dụng theo các
yêu cầu nghiệp vụ. Hay nói cách khác, phần mềm la sự hiện thực hóa các
quy định nghiệp vụ. Khi các quy định nghiệp vụ thay đổi, phần mềm cũng
phải thay đổi. Sự thay đổi phần mềm la rất quan trọng bởi vì các tổ chức
ngay nay hoan toan phụ thuộc vao phần mềm va họ đã đầu tƣ hang triệu đô
la vao những hệ thống đó. Vì thế ma, các tổ chức phải đầu tƣ vao sự thay
đổi hệ thống để bảo trì chất lƣợng hệ thống. Tái cơ cấu lại phần mềm la
chiến lƣợc cho sự thay đổi phần mềm. Nó xây dựng lại kế thừa hệ thống có
sẵn, cái ma trở nên đắt để bảo trì kiến trúc lỗi thời
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 542
15.1 WHAT IS SOFTWARE RE-ENGINEERING?
Software re-engineering is (usually) concerned with reimplementing
legacy systems to make them more maintainable. Re-engineering may
involve redocumenting the system, organizing and restructuring the system,
translating the system to a more modern programming language, or
modifying and updating the structure and values of the system‘s data. The
functionality of the software is not changed and, normally, the system
architecture also remains the same. Re-engineering improves the system
structure, creates new system documentation, and makes it easier to
understand.
Tái cơ cấu phần mềm thƣờng đề cập đến sự thực hiện lại hệ thống có
sẵn để lam cho nó có thể duy trì lâu hơn.Sự cơ cấu lại có lẽ gắn liền với sự
lấy lại các tai liệu của hệ thống, tổ chức va cấu trúc lại hệ thống, chuyển đổi
hệ thống đến 1 ngôn ngữ hiện đại hơn, hay thay đổi va cập nhật lại hệ thống
va giá trị dữ liệu hệ thống. Các chức năng của phần mềm không bị thay đổi
va thƣờng thì kiến trúc của phần mềm vẫn đƣợc giữ nguyên. Sự tái cơ cấu
cải tiến cấu trúc hệ thống, tạo ra tập văn bản hệ thống mới (tập văn bản nay
ghi các công việc đã hoan thanh), va lam nó dễ hiểu
15.2 WHY WE NEED SOFTWARE RE-ENGINEERING
Computer software is the product that software engineers design and
build. Once software is put into use, new requirements emerge and existing
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 543
requirements change as the business rules change. Parts of software may
need to be modified to correct errors or improve its performance.
Phần mềm máy tinh la sản phầm dc kĩ sƣ phần mềm thiết kế va xây
dựng. Khi phần mềm dc đƣa vao sử dụng, những yêu cầu mới nổi lên va
yêu cầu phần mềm tồn tại dc thay đổi để phù hợp với ngữ cảnh. 1 phần của
phần mềm có lẽ cần đƣợc thay đổi để chữa các lỗi hay cải tiến sự thực thi.
As time goes on, software gets old and frequently breaks down. As
the software is modified, it becomes more and more complicated and
difficult to maintain. The level of difficulty of maintainability is directly
proportionate to the cost of maintaining the system.
Theo dòng thời gian, phần mềm trở nên lỗi thời va thƣờng bỏ đi. Khi
phần mềm đƣợc thay đổi, nó trở thanh ngay cang phức tạp hơn va khó bảo
trì. Mức độ khó bảo trì cân xứng với chi phi bảo trì hệ thống.
We are consequently faced with a dilemma. If we continue to use the
system and make changes as required, our costs will inevitably increase. If
we decide to replace the system with a new system, costs will be incurred
and the new system might not be as good as the old system.
Vì vậy, chúng ta đối mặt với tình trạng khó xử. Nếu chúng ta tiếp tục
sử dụng hệ thống va tạo sự thay đổi nhƣ yêu cầu, chi phi của chúng ta
không thể tránh khỏi tăng lên. Nếu chúng ta quyết định thay thế hệ thống
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 544
với 1 hệ thống mới, giá thanh sẽ phải gánh chịu va hệ thống mới có lẽ sẽ
không tốt bằng hệ thống cũ.
Software engineering techniques extend the lifetime of legacy
systems and reduce the costs of keeping these systems in use. We can create
a product with added functionality, better performance and reliability, and
improved maintainability by means of rebuilding the legacy system. Re-
engineering may involve some structural modifications but does not usually
involve major architectural change.
Kĩ thuật phần mềm mở rộng thời gian tồn tại của tai sản hệ thống va
giảm chi phi đƣa hệ thống vao hoạt động. Chúng ta có thể tạo ra sản phầm
va thêm các chức năng, thực thi tốt hơn va tin cậy hơn, cải tiến sự có thể
duy trì bằng cách xây dựng lại hệ thống kế thừa. Sự tái cơ cấu có lẽ kéo
theo vao sự thay đổi cấu trúc, nhƣng thƣờng thì không lam thay đổi kiến
trúc chính
15.3 SOFTWARE RE-ENGINEERING STRATEGIES
A major problem for organizations is implementing and managing
change to their legacy systems so that these systems continue to support the
organization‘s business operations. There are a number of different
strategies for software change:
• Software maintenance
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 545
• Architectural transformation — e.g., migration to servers or to Intranets
• Software re-engineering
Vấn đề chinh cho các tổ chức la sự thay đổi việc thực thi va quản lý
đến hệ thống kế thừa để ma những hệ thống nay tiếp tục giúp cho tổ chức
kinh doanh hoạt động. Có 1 số chiến lƣợc khác nhau của sự thay đổi hệ
thống:
• Bảo trì hệ thống.
• Sự chuyển đối kiến trúc. Vd: chuyển server hay mạng nội bộ.
• Tái cơ cấu phần mềm.
Software maintenance is the general process of changing a system
after it has been delivered; this strategy does not normally involve major
architectural changes to the system. The following are three types of
software maintenance:
Maintenance to repair software faults:
• Coding errors are very cheap to correct.
• Design errors are more expensive because this may involve rewriting
several program components.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 546
• Requirement errors are most expensive to repair due to the extensive
system redesign that may be necessary.
• Maintenance to adapt the software to a different operating environment
• Maintenance to add to or modify the system‘s functionality External
and internal factors, such as changing markets, changing laws,
management changes, and structural reorganization, mean that
businesses undergo continual change. These changes generate new or
modified software requirements, so all useful software systems
inevitably change as the business changes.
Sự bảo trì phần mềm la 1 quá trình chung của sự thay đổi hệ thống
sau khi nó dc phân phối ; chiến lƣợc nay không liên quan đến sự thay đổi
kiến trúc hệ thống. Sau đây la 3 loại bảo trì hệ thống:
• Bảo trì va sửa chữa lỗi phần mềm:
• Sữa lỗi coding rất it tốn chi phi.
• Lỗi thiết kế tốn chi phi hơn vì nó dẫn đến đến việc viết lại vai thanh
phần hệ thống.
• Lỗi yêu cầu tốn nhiều chi phi sửa chữa nhất, bởi vì thiết kế lại hệ thống
mở rộng la việc cần thiết.
• Bảo trì để thich nghi hệ thống với môi trƣờng khác.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 547
• Bảo trì để thêm hay sữa đổi các chức năng hệ thống. Các yêu tối bên
ngoai va bên trong, nhƣ la sự thay đổi thị trƣờng, thay đổi luật, thay đổi
việc quản lý va tổ chức lại cấu trúc, nghĩa la việc kinh doanh phải trỉa
qua sự thay đổi liên tục, vì thế tất cả các phần mềm hệ thống không thể
tránh đƣợc thay đổi khi việc kinh doanh thay đổi.
Approximately 20 percent of all maintenance efforts are spent fixing
mistakes. The remaining 80 percent is spent adapting existing systems to
changes in their external environment, making enhancements requested by
users, and re-engineering an application for future use (Pressman, 2001).
After software has been corrected, adapted, and enhanced many
times, it usually becomes unstable. The more maintainence on the software,
the more frequently unexpected and serious side effects may occur.
Although the system still works, its maintenance costs increase and its
value decreases
Gần 20% của tất cả các nổ lực bảo trì la dùng để sữa lỗi. 80% còn lại
dùng để thich nghi hệ thống với sự thay đổi môi trƣờng bên ngoai, lam tốt
các yêu cầu bởi ngƣời sử dụng va tái cơ cấu ứng dụng cho việc sử dụng
trong tƣơng lai.
Sau khi phần mềm đƣợc sữa lỗi, thich ứng, va cải tiến nhiều lần, nó
thƣờng trở nên không ổn định. Cang bảo trì hệ thống, những tác động
không lƣờng trƣớc va các khia cạnh nghiêm trọng có lẽ xảy ra. Mặc dù hệ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 548
thống vẫn hoạt động, bảo trì nó lam tăng chi phi va giá trì của nó giảm
xuống.
15.4 THE PROCESS OF RE-ENGINEERING
The main activities in a typical re-engineering process are:
Hoạt động chinh của quá trình cơ cấu la:
15.4.1 Source Code Translation
The simplest form of software re-engineering is program translation
where source code in one programming language is automatically
trans¬lated to source code in another language (i.e., COBOL to Java). The
struc¬ture and organization of the program are unchanged but have higher
qual¬ity than the original program. One reason for this is that the target
language may be an updated version of the original language or may be a
translation to a completely different language. Source-level translation may
be neces¬sary for the following reasons:
• Hardware platform update: the organization may wish to change its
standard hardware platform, but compilers for the original language
may not be available on the new hardware.
• Organizational policy changes: an organization may want to
standard¬ize on a particular language to minimize its support software
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 549
costs. Maintaining many versions of old compilers can be very
expensive.
• Lack of software support: the suppliers of the language compiler may
have gone out of business or may discontinue support for their product.
• Developers want to make the system easier to understand, test, and
maintain: Some legacy systems have solid program architecture;
how¬ever, individual modules were coded in a way that makes them
diffi¬cult to understand, test, and maintain. In this situation, the code
can be restructured (Pressman, 2001).
Hình thức đơn giản nhất của việc tái cơ cấu phần mềm la việc thông
dịch chƣơng trình, tự động chuyển mã nguồn từ 1 ngôn ngữ lập trình sang 1
ngôn ngữ lập trình khác. Cấu trúc va tổ chức của chƣơng trình không bị
thay đổi nhƣng có chất lƣợng cao hơn chƣơng trình ban đầu. 1 li do la ngôn
ngữ đich có lẽ đƣợc cập nhật phiên bản của ngôn ngữ ban đầu hay có lẽ
đƣợc chuyển đổi hoan toan sang ngôn ngữ khác. Mức độ chuyển đổi mã
nguồn có lẽ cần thiết vì những lý do sau:
• Cập nhật nền phần cứng: tổ chức có lẽ muốn thay đổi chuẩn phần cứng,
nhƣng trình biên dịch cho ngôn ngữ ban đầu có lẽ không thich hợp trên
phần cứng mới.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 550
• Thay đổi chinh sách tổ chức: 1 tổ chức muốn tiêu chuẩn hóa trên 1
ngôn ngữ cụ thể để giảm chi phi hổ trợ của phần mềm. Việc bảo trì
nhiều phiên bản của trình biên dịch cũ có thể rất đắt.
• Thiếu sự hỗ trợ của phần mềm: sự hổ trợ của ngôn ngữ biên dịch có lẽ
từ bỏ hay có lẽ không tiếp tục hổ trợ cho sản phẩm của họ.
• Ngƣời phát triển ứng dụng muốn lam cho hệ thống dễ hiểu, dễ kiểm tra
va dễ bảo trì. Vai hệ thống thừa kế có kiến trúc vững chắc, tuy nhiên,
cá nhân các mô đun đƣợc cai đặt theo cách để lam nó khó hiểu, khó
kiểm tra va bảo trì. Trong tình huống nay, việc cai đặt có thể đƣợc cấu
trúc lại.
15.4.2 Reverse Engineering
Reverse engineering is the process of analyzing software with the
objec¬tive of recovering its design and specification. The software source
code is usually available as input to the reverse engineering process.
Reverse engi¬neering is different from re-engineering. Its purpose is to
derive the design or specification of a system from its source code, while
the objective of re-engineering is to produce a new, more maintainable
system. Of course, reverse engineering to develop a better understanding of
a system is often part of the re-engineering process.
Thiết kế đối chiếu la quá trình phân tich phần mềm với mục đich
khám phá thiết kế va chi tiết kĩ thuật của nó. Mã nguồn phần mềm thƣờng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 551
sẵn có để lam dữ liệu đầu vao cho quá trình thiết kế đối chiếu. Thiết kế đối
chiếu khác với sự tái cơ cấu. Mục đich của nó la đạt đƣợc thiết kế hay chi
tiết kĩ thuật của hệ thống từ mã nguồn của nó, trong khi mục đich của việc
tái cơ cấu la để sản xuất ra hệ thống mới, có thể duy trì dc lâu hơn. Dĩ
nhiên, thiết kế đối chiếu lam hiểu về hế thống tốt hơn va nó la 1 phần của
quá trình tái cơ cấu.
Reverse engineering can be used during software re-engineering to
recover the original program design to help developers understand a
pro¬gram before reorganizing its structure. However, re-engineering need
not always follow reverse engineering:
• The design and specification of an existing system may be reverse
en¬gineered so that they can serve as input to the requirements
specifica¬tion for that program‘s replacement.
• Alternatively, the design and specification may be reverse engineered
so that they are available to help program maintenance. With this
ad¬ditional information, it may not be necessary to re-engineer the
sys¬tem source code.
Thiết kế đối chiếu có thể sử dụng suốt quá trình tái cơ cấu phần mềm
để phục hồi lại thiết kế chƣơng trình ban đầu, giúp ngƣời phát triển phần
mềm hiểu chƣơng trình trƣớc khi tổ chức lại cấu trúc của nó. Tuy nhiên,
việc tái cơ cấu thƣờng thì không cần theo thiết kế đối chiếu:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 552
• Thiết kế va chi tiết kĩ thuật của hệ thống đang tồn tại có lẽ đƣợc thiết kế
đối chiếu để ma nó có thể phục vụ nhƣ la dữ liệu đầu vao của yêu cầu
chi tiết kĩ thuật cho sự thay thế chƣơng trình.
• Nhƣ 1 sự lựa chọn, bản thiết kế va chi tiết kĩ thuật có lẽ đƣợc thiết kế
đối chiếu để ma nó sẵn sang giúp bảo trì chƣơng trình. Với những
thông tin thêm vao, nó có lẽ không cần thiết để tái cơ cấu lại mã nguồn
hệ thống.
The reverse engineering process is illustrated in Exhibit 15-1. The
pro¬cess starts with an analysis phase, during which the system is analyzed
using automated tools to discover its structure. In itself, this is not enough
to recreate the system design. Engineers then work with the system source
code and its structural model, adding information that they have collected
by understanding the system. This information is maintained as a directed
graph linked to the program source code.
Quá trình thiết kế đối chiếu đƣợc minh họa trong hình trên 15.1.
Quá trình bắt đầu với giai đoạn phân tich, suốt quá trình nya, hệ thống đƣợc
phân tich sử dụng công cụ tự động để khám phá cấu trúc của nó.Tự nó la
chƣa đủ để tạo lại thiết kế hệ thống. Ngƣời kĩ sƣ sau đó lam viết với mã
nguồn hệ thống va mô hình cấu trúc, thông tin bổ sung dc chọn lựa với sự
hiểu về hệ thống. Thông tin nay đƣợc bảo trì nhƣ la 1 biểu đồ có hƣớng đến
mã nguồn chƣơng trình.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 553
Information store browsers are used to compare the graph structure
and the code and to annotate the graph with extra information. Documents
of various types, such as program and data structure diagrams and
trace¬ability matrices, can be generated from the directed graph.
Traceability matrices show where entities in the system are defined and
referenced.
Trình duyệt chƣơng trình lƣu trữ đƣợc dùng để so sánh cấu trúc đồ
thị va mã rồi chú thich với những thông tin thêm. Đa dạng các loại tai liệu,
nhƣ biểu đồ cấu trúc chƣơng trình va dữ liệu va khả năng tìm vết của nhiều
ma trận, có thể đƣợc tạo ra từ đồ thị có hƣớng. Ma trận tìm vết đƣa ra nơi
thực thể trong hệ thống đƣợc định nghĩa va tham khảo.
Tools for program understanding may be used to support the reverse
engineering process. These usually present different system views and
allow easy navigation through the source code. For example, they allow
users to select a data definition, and then move through the code to where
that data item is used. Examples of such program browsers are discussed by
Cleveland (1989), Oman and Cook (1990), and Ning et al. (1994).
Công cụ cho việc tìm hiểu chƣơng trình có lẽ đƣợc sử dụng để hỗ trợ
quá trình thiết kế đối chiếu. Nó thƣờng thể hiện cách nhìn hệ thống khác
nhau va cho phép dễ dang định vị vị tri của mã nguồn. Vi dụ, nó cho phép
ngƣời sử dụng chọn định nghĩa dữ liệu va sau đó chuyển đến mã nơi ma
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 554
mục dữ liệu đƣợc dùng. Vi dụ của những trình duyệt đƣợc thảo luận bởi
Cleveland (1989), Oman & Cook (1990) và Ning et al (1994).
After the system design documentation has been generated, further
information may be added to the information store to help recreate the
sys¬tem specification. This usually involves further manual annotation of
the system structure. The specification cannot be deduced automatically
from the system model.
Sau khi tai liệu thiết kế hệ thống đƣợc tạo ra, những thông tin mở
rộng có thể dc thêm vao thông tin lƣu trữ để giúp tạo lại chi tiết kĩ thuật hệ
thống. Nó thƣờng liên quan đến những chú thich hƣớng dẫn của cấu trúc hệ
thống. Chi tiết kĩ thuật không thể đƣợc suy luận tự động từ mô hình hệ
thống.
15.4.3 Program Structure Improvement
The need to optimize memory use and the lack of understanding of
soft¬ware engineering by many programmers have meant that many legacy
sys¬tems are not well structured. Their control structure is tangled with
many unconditional branches and unintuitive control logic. This structure
may also have been degraded by regular maintenance. Changes to the
program may have made some code unreachable, but this can only be
discovered after extensive analysis. Maintenance programmers often dare
not remove code in case it may be accessed indirectly.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 555
Sự cần thiết của việc tối ƣu hóa bộ nhớ va sự thiếu hiểu biết về kỹ
thuật lập trình cũng có thể lam cho cấu trúc của chƣơng trình không rõ
rang. Các lệnh điều kiện có thể vô nghĩa hay có các đoạn code không bao
giờ dùng tới. Cấu trúc nay có thể cũng có thể bị xuống cấp va cần bảo
dƣơng thƣờng xuyên. Thay đổi để chƣơng trình có thể đã đƣợc thực hiện
một số mã không thể truy cập, nhƣng điều nay chỉ có thể đƣợc phát hiện
sau khi phân tich. Các lập trình viên thƣờng không dám bỏ mã trong trƣờng
hợp nó có thể đƣợc truy cập gián tiếp.
Typically, programs develop complex logic structure as they are
modi¬fied during maintenance. New conditions and associated actions are
added without changing the existing control structure. In the short term, this
is a quicker and less risky solution because it reduces the chances of
introduc¬ing faults into the system. In the long term, however, it leads to
incompre¬hensible code. Complex code structures can also arise when
programmers try to avoid duplicating code. Along with unstructured
control, complex conditions can also be simplified as part of the program
restructuring pro¬cess. For instance,
Thông thƣờng, các chƣơng trình phát triển kết cấu logic phức tạp vì
chúng đã đƣợc sửa đổi trong quá trình bảo dƣơng. Trong ngắn hạn, đây la
một giải pháp nhanh va it rủi vì nó lam giảm lỗi của hệ thống . Tuy vậy, về
lâu dài, nó dẫn đến không thê hiêu đƣợc code . Cấu trúc mã phức cũng có
thể phát sinh khi lập trình cố gắng tránh nhân đôi mã. Cùng với điều khiển
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 556
có cấu trúc, phức tạp điều kiện cũng có thể đơn giản nhƣ la một phần của
quá trình chuyển dịch cơ cấu chƣơng trình. Vi dụ:
Complex condition:
If not (a > b and (c < d or not (e > f)))…
Simplified condition:
If a < = b and (c > = d or e > f)… This is how a conditional statement
including ―not‖ logic may be made more understandable.
1 câu lệnh phức tạp:
if (a> b và (c <d hay không (e> f)))...
Đƣợc đơn giản hóa thanh:
if a <= b va (c> = d hoặc e> f)...
Đây la cách bao gồm một câu lệnh có điều kiện "không‖ logic để câu
lệnh dễ hiểu hơn.
If the program is data driven, with components tightly coupled
through shared data structures, restructuring the code may not lead to a
significant improvement in understandability. Program modularization may
also be necessary. If the program is written in a nonstandard language
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 557
dialect, standard restructuring tools may not work properly and significant
manual intervention may be required.
In some cases, it may not be cost-effective to restructure all of the
pro¬grams in a system. Some may be of better quality than others and some
may not be subject to frequent change. Arthur (1988) suggests that data
should be collected to help identify those programs that could benefit most
from restructuring: The metrics, such as failure rate, percentage of source
code changed per year, component complexity, and the degree to which
programs or components meet current standards, can be used to identify the
candidates for restructuring.
Nếu chƣơng trình sử dụng nhiều dữ liệu hƣớng đich, kết chặt chẽ với
các thanh phần thông qua cấu trúc dữ liệu đƣợc chia sẻ, tái cấu trúc mã
không có thể dẫn đến một ý nghĩa cải thiện tinh dễ hiểu. Mô-đun hóa
chƣơng trình cũng có thể cần thiết. Nếu chƣơng trình đƣợc viết bằng một
ngôn ngữ khác chuẩn, công cụ chuyển dịch cơ cấu tiêu chuẩn có thể không
hoạt động đúng.
15.4.4 Program Modularization
Program modularization is the process of reorganizing a program so
that related program parts are collected together and considered as a sin¬gle
module. Once this has been done, it becomes easier to remove
redun¬dancies in these related components, to optimize their interactions,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 558
and to simplify their interface with the rest of the program. A number of
types of module may be created during the program modularization
process.
Mô-đun hóa chƣơng trình la một quá trình sắp xếp lại chƣơng trình 1
cách hợp lý. Một khi điều nay đã đƣợc thực hiện, chƣơng trình trở nên dễ
dang hơn trong việc loại bỏ dƣ thừa trong các thanh phần liên quan, để tối
ƣu hóa các tƣơng tác, va để đơn giản hóa giao diện của họ với phần còn lại
của chƣơng trình. Một số loại module có thể đƣợc tạo ra trong quá trình
mô-đun chƣơng trình
• Data abstractions. In order to save memory space, many legacy
sys¬tems depend on use of shared tables and common data areas. The
in-formation stored in these areas is globally accessible and may be
used by different parts of the system in different ways. It is expensive
mak¬ing changes to these global data areas due to the costs of
analyzing change impacts across all uses of the data. To reduce the
costs of changes to these shared data areas, the program modularization
pro¬cess may focus on the identification of data abstractions. Data
ab¬stractions or abstract data types collect data and associated
processing and are resilient to change.
• Hardware modules. These are related to data abstractions and gather all
of the functions used to control a particular hardware device.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 559
• Functional modules. For instance, all of the functions concerned with
input and input validation may be incorporated in a single module. This
type of modularization should be considered where it is imprac¬tical to
recover program data abstractions.
• Process support modules. All of the functions and specific data items
re¬quired to support a particular business process are grouped here.
• Module dữ liệu. Để tiết kiệm không gian bộ nhớ, hệ thống có nhiều dữ
liệu phụ thuộc vao việc sử dụng các bảng dữ liệu đƣợc chia sẻ va phổ
biến các khu vực. Các thông tin đƣợc lƣu giữ trong các khu vực nay la
trên toan cầu có thể truy cập va có thể đƣợc sử dụng bởi các phần khác
nhau của hệ thống theo những cách khác nhau. Nó la đắt tiền lam thay
đổi đối với các khu vực nay dữ liệu toan cầu do chi phi phân tich thay
đổi tác động trên tất cả sử dụng các dữ liệu.
• Module phần cứng: Đây la những liên quan đến phần cứng va thu thập
dữ liệu. Tất cả các chức năng đƣợc sử dụng để điều khiển một thiết bị
phần cứng cụ thể.
• Module chức năng: Tất cả các chức năng có liên quan đƣợc tich hợp
vao trong một module đơn lẻ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 560
15.4.5 Data Re-Engineering
Until now, most of our discussion on software evolution has focused
on the problems of program modification. However, in many cases,
associated problems of storage, organization, and format of the data
processed by leg¬acy programs may need to evolve to reflect changes to the
software. The process of analyzing and reorganizing the data structures and,
sometimes, the data values in a system to make it more understandable is
called data re-engineering.
Cho đến nay, hầu hết các việc thảo luận tập trung vao phần mềm sửa
đổi các vấn đề của chƣơng trình. Tuy nhiên, trong nhiều trƣờng hợp, liên
kết vấn đề dung lƣợng lƣu trữ, tổ chức, va định dạng của dữ liệu trong
chƣơng trình cũng cần đƣợc chú ý.
In principle, data re-engineering should not be necessary if the
function¬ality of a system is unchanged. In practice, however, there are a
number of reasons why you may need to modify the data as well as the
programs in a legacy system:
Về nguyên tắc, tái tổ chức dữ liệu không cần thiết nếu các chức năng
của một hệ thống không thay đổi. Trong thực tế, tuy nhiên, có một số lý do
tại sao bạn có thể cần phải sửa đổi dữ liệu cũng nhƣ các chƣơng trình trong
một hệ thống:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 561
• Data degradation. Over time, the quality of data tends to decline.
Change to the data incurs errors, redundant values may have been
created, and changes to the external environment may not be reflect¬ed
in the data. This is unavoidable because the lifetime of data is often
very long.
• Inherent limits built into the program. Programs are now often
re¬quired to process much more data than was originally envisioned by
their developers. Data re-engineering may be required to remove these
limitations.
• Architectural evolution. If a centralized system is migrated to a
distrib¬uted architecture, it is essential that the core of that architecture
be a data management system that can be accessed from remote clients.
This may require a large data re-engineering effort to move data from a
mainframe to a server-based database management system. The move
to a distributed program architecture may also be initiated when an
organization decides to move from file-based data manage¬ment to a
database management system.
• Dữ liệu bị suy thoái. Theo thời gian, chất lƣợng của dữ liệu có xu
hƣớng suy giảm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 562
• Dữ liệu có tinh tiến hóa. Nếu có hệ thống tập trung đến một phân bố
kiến trúc nao đó thì dữ liệu trong kiến trúc đó có thể tiến hóa khiến cho
chƣơng trình cũ không đáp ứng đƣợc
• …
Because data architecture has a strong influence on program
architec¬ture and the algorithms that populate it, changes to the data will
invariably result in architectural or code-level changes. Rickets (1993)
mentions some of the problems with data that can arise in legacy systems
made up of several cooperating programs:
Các vấn đề cần giải quyết trong việc tổ chức lại dữ liệu la:
• Data naming problems. Name may be cryptic and difficult to
under¬stand. Different names may be given to the same logical entity
in dif¬ferent programs in the system. The same name may be used in
different programs to mean different things.
• Đặt tên cho biến: Tên có thể rất khó hiểu. Các tên khác nhau có thể
đƣợc trao cho các tổ chức hợp lý khác nhau trong cùng một các chƣơng
trình trong hệ thống. Cùng tên có thể đƣợc sử dụng trong các chƣơng
trình khác nhau để có nghĩa la những nghĩa khác nhau.
• Field length problems. When field lengths in records are explicitly
as¬signed in the program, the same item may be assigned different
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 563
lengths in different programs or the field length may be too short to
represent current data.
• Record organization problems. Records representing the same entity
may be organized differently in different programs.
• Hard-coded literals. Absolute values, such as tax rates, are included
di¬rectly in the program rather than referenced using some symbolic
name.
• Lack of a data dictionary.
• Inconsistent data definitions. Data values may also be stored in an
in¬consistent way. After the data definitions have been re-engineered,
the data values must also be converted to conform to the new structure.
• Chiều dai của các biến. Khi độ dai các biến trong chƣơng trình không
đáp ứng đƣợc thực tế thì cũng cần thay đổi.
• Hard-coded literals. Giá trị tuyệt đối, chẳng hạn nhƣ mức thuế, đƣợc
bao gồm trực tiếp trong chƣơng trình thay vì sử dụng một số tham
chiếu tƣợng trƣng tên.
• Thiếu một dữ liệu từ điển.
• Không phù hợp dữ liệu đƣợc định nghĩa. Giá trị liệu cũng có thể đƣợc
lƣu trữ trong một không phù hợp cách. Sau khi định nghĩa dữ liệu đã
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 564
đƣợc tái thiết kế, các dữ liệu giá trị cũng phải đƣợc chuyển đổi để phù
hợp với cấu trúc mới.
Exhibit 15-2 illustrates the process of data re-engineering, assuming
that data values converted. The change summary tables hold details of all
the changes to be made. They are therefore used at all stages of the data re-
engineering process.
In Stage 1 of this process, the data definitions in the program are
modi¬fied to improve understandability; the data is not affected by these
modifi¬cations. It is possible to automate this process to some extent using
pat¬tern matching systems such as Awk (Aho et al., 1988) to find and
replace definitions or to develop XML descriptions of the data (St Laurent
and Cerami, 1999) and use these to drive data conversion tools. However,
some manual work is almost always necessary to complete the process. The
data re-engineering process may stop at this stage if the goal is simply to
improve the understandability of the data structure definitions in a
pro¬gram. If, however, there are data value problems as discussed earlier,
Stage 2 of the process may then be entered.
If an organization decides to continue to Stage 2 of the process, it is
then committed to Stage 3, data conversion, which is usually a very
expensive process. Programs must be written that embed knowledge of the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 565
old and the new organization. These process the old data and output the
converted information.
15.5 FORWARD ENGINEERING
The major distinction between re-engineering and new software
development is the starting point for the development. For system re-
engineering, the old system acts as a specification for the new system.
Chikofsky and Cross (1990) call conventional development forward
engineering (Exhibit 15-3) to distinguish it from software re-engineering
(Exhibit 15-4). Forward engineering starts with a system specification and
involves the design and implementation of a new system; re-engineering
starts with an existing system and transformation of the old system.
Sự khác biệt lớn giữa re-engineering 1 phần mềm va phát triển phần
mềm mới la điểm khởi đầu của quá trình phát triển. Đối với hệ thống tái kỹ
thuật, hệ thống hanh vi cũ nhƣ la một đặc điểm kỹ thuật cho hệ thống mới.
Chikofsky và Cross (1990) gọi sự phát triển quy ƣớc mong kỹ thuật để phân
biệt với software re-engineering. Forward engineering bắt đầu với một hệ
thống va đặc điểm kỹ thuật liên quan đến các thiết kế va thực hiện một hệ
thống mới; software re-engineering bắt đầu với một hệ thống hiện có va
chuyển đổi của hệ thống cũ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 15: Software Re-Engineering 566
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 567
CHƢƠNG 16 KIỂM THỬ PHẦN MỀM
Testing is a critical component of software development. Its goal is
to uncover and correct errors found in software. Because software is
complex, it is reasonable to presume that software testing is a labor- and
resource-intensive process. Automated software testing helps to improve
testers‘ productivity and reduce resources that may be required. By its very
nature, automated software testing increases test coverage levels, speeds up
test turnaround time, and cuts costs of testing. Unfortunately, due to a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 568
variety of reasons, not all test automation projects will achieve these returns
on investment. In this chapter, a practical approach to automated software
testing is discussed.
Software Testing la một thanh phần quan trọng của sự phát triển
phần mềm. Mục tiêu của nó la để phát hiện va sửa chữa các lỗi tìm thấy
trong phần mềm. Bởi vì phần mềm rất phức tạp thật hợp lý để ch rằng
Software Testing la một quá trình cần nhiều nguồn lực la động và tài
nguyên. Phần mềm tự động thử nghiệm sẽ giúp cải thiện năng suất testing
va giảm nguồn tai nguyên có thể sẽ đƣợc yêu cầu. Bởi bản chất của nó,
phần mềm tự động kiểm tra thử nghiệm lam tăng độ phủ của bộ test, tăng
tốc thời gian quay vòng thử nghiệm, va cắt giảm chi phi của thử nghiệm.
Thật không may, vì nhiều lý do, không phải tất cả các dự án thử nghiệm tự
động hóa na cũng đƣợc đầu tƣ. Trong chƣơng nay, một cách tiếp cận thực
tế để kiểm tra phần mềm tự động đƣợc thảo luận
16.1 KIỂM THỬ PHẦN MỀM LÀ GÌ ?
A critical component in the process of software development is
software testing. The classic software life cycle model suggests a
systematic, sequential approach to software development that progresses
through software requirements analysis, design, code generation, and
testing. That is, once source code has been generated, program testing
begins with the goal of finding differences between the expected behavior
specified by system models and the observed behavior of the system.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 569
Một thanh phần quan trọng trong quá trình phát triển phần mềm la
Software Testing. Các chu trình sống của các mô hình phần mềm cổ điển
gợi ý 1 phƣơng pháp phát triển phần mềm một cách có hệ thống va có trình
tự la phân tich các yêu cầu phần mềm, thiết kế, viết code, va test. Đó la, khi
mã nguồn đã viết xong, chƣơng trình bắt đầu đƣợc thử nghiệm với mục tiêu
la tìm ra sự khác biệt giữa các kết quả mong muốn va kết quả ma chƣơng
trình trả về.
The process of creating error-free software applications requires
technical sophistication in the analysis, design, and implementation of that
software and proper test planning, as well as robust automated testing tools.
When planning and executing tests, software testers must consider the
software and the function it performs, the inputs and how they can be
combined, and the environment in which the software will eventually
operate.
Quá trình tạo ra ứng dụng phát sinh lỗi phần mềm đòi hỏi kỹ thuật
phức tạp trong phân tich, thiết kế, thực hiện phần mềm va lập kế hoạch
kiểm tra thich hợp, cũng nhƣ kiểm nghiệm với các công cụ kiểm lỗi tự động
mạnh. Khi lập kế hoạch va thực hiện các thử nghiệm, ngƣời Test lỗi
Software phải xem xét các chƣơng trình va các ham ma nó thực thi, các yếu
tố đầu vao va lam thế nao chúng liên kết với nhau thế nao, đồng thời môi
trƣờng ma phần mềm cuối cùng sẽ hoạt động.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 570
During early stages of the testing process, the programmer usually
performs all tests. This stage of testing is referred to as unit testing. Here
the programmer usually works with the debugger that accompanies his or
her compiler. For example Visual Basic, as shown in Exhibit 16-1, enables
the programmer to ―step through‖ a program‘s (or object‘s) logic, one line
of code at a time, viewing the value of any and all variables as the program
proceeds.
Trong giai đoạn đầu của quá trình Software Testing, lập trình viên
thƣờng thực hiện tất cả các bộ test. Giai đoạn thử nghiệm nay đƣợc gọi la
kiểm tra đơn vị (unit testing). Ở đây các lập trình viên test bằng cách debug.
Vi dụ nhƣ Visual Basic, nhƣ thể hiện trong hình 16-1, cho phép lập trình
viên "đi qua‖ logic của chƣơng trình, một dòng mã tại một thời điểm, xem
bất kỳ va tất cả các biến nhƣ la kết quả của chƣơng trình.
A particular program is usually made up of many modules. An OO
system is composed of many objects. Programmers usually architect their
programs in a top–down modular fashion. Integration testing proves that
the module interfaces are working properly. For example, in Exhibit 16-2, a
programmer conducting integration testing would ensure that Module2
(process module) correctly interfaces with its subordinate, Module2.1
(calculate process).
Một chƣơng trình đặc biệt thƣờng đƣợc tạo thanh từ nhiều module.
Một hệ thống Hƣớng Đối Tƣợng la hỗn hợp của nhiều đối tƣợng. Thƣờng la
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 571
lập trình viên thiết kế chƣơng trình của họ theo mô hình từ trên xuống dƣới
(top-down). Test Tich hợp (integration testing) chứng minh rằng các giao
diện module đang lam việc đúng cách. Vi dụ, tại hình 16-2, một lập trình
viên tiến hanh thử nghiệm kết hợp giửa các module để đảm bảo rằng
module2 có cách giao tiếp đúng với cấp dƣới của mình
Hình 16-1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 572
If module2.1 had not yet been written, it would have been referred to
as a stub. Integration testing could still be performed if the programmer
inserted two or three lines of code in the stub, which would act to prove that
it is well integrated to module2.
Nếu module2.1 vẫn chƣa đƣợc viết, nó có thể đã đƣợc gọi la một
đoạn không hoan chỉnh. Test kết hợp vẫn có thể đƣợc thực hiện nếu các lập
trình viên đƣa vao hai hoặc ba dòng mã trong đoạn nay, ma sẽ hanh động
để chứng minh rằng nó cũng tich hợp tốt vao module2.
On occasion, a programmer will code all the subordinate modules
first and leave the higher-order modules for last. This is known as bottom–
up programming. In this case module2 would be empty except for a few
lines of code to prove that it is integrating correctly with module2.1, etc. In
this case, module 2 would be referred to as a driver.
Một lập trình sẽ code tất cả các mô-đun cấp thấp trƣớc va sau đó tới
các module có trật tự cao hơn. Điều nay đƣợc gọi la lập trình từ dƣới lên
(bottom-up). Trong trƣờng hợp nay module2 sẽ la trống rỗng, ngoại trừ một
vai dòng mã để chứng minh rằng nó đƣợc tich hợp một cách chinh xác với
module2.1, Trong trƣờng hợp nay, module 2 sẽ đƣợc gọi la một trình điều
khiển.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 573
Hình 16-2
Where integration testing is performed on the discrete programs or
objects with a master program, system testing refers to testing the interfaces
between programs within a system. Because a system can be composed of
hundreds of programs, this is a vast undertaking.
Trong trƣờng hợp Test Tich hợp (integration testing) đƣợc thực hiện
trên các chƣơng trình riêng biệt hoặc các đối tƣợng với một chƣơng trình
tổng thể, hệ thống thử nghiệm chỉ dùng để kiểm tra các giao diện giữa các
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 574
chƣơng trình trong vòng một hệ thống. Bởi vì một hệ thống có thể đƣợc tạo
thanh từ hang trăm chƣơng trình, đây la một cam kết rộng lớn.
It is quite possible that the system being developed is a replacement
for an existing system. In this case, parallel testing is performed. The goal
here is to compare outputs generated by each of the systems (old versus
new) and determine why there are differences, if any.
Có thể cho rằng hệ thống đang đƣợc phát triển để thay thế cho một
hệ thống hiện có. Trong trƣờng hợp nay, thử nghiệm song song(parallel
testing) đƣợc thực hiện. Mục tiêu ở đây la để so sánh kết quả đầu ra đƣợc
tạo ra bởi mỗi hệ thống (cũ so với mới) va xác định lý do tại sao có sự khác
biệt, nếu có.
Parallel testing requires end users to be part of the testing team. If the
end user determines that the system is working correctly, we can see that
the customer has ―accepted‖ the system. This, then, is a form of customer
acceptance testing.
Song song kiểm tra(parallel testing) yêu cầu ngƣời dùng cuối cũng la
một phần của đội thử nghiệm. Nếu ngƣời dùng xác nhận rằng hệ thống
đang hoạt động tốt, chúng ta có thể thấy rằng các khách hang đã "chấp
nhận‖ hệ thống. Điều nay la một hình thức kiểm tra sự chấp nhận của khách
hàng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 575
As the testing progresses, testing specialists may become involved
(see Appendix P for a sample QA handover document). Within the
vernacular of IT, staff dedicated to performing testing are referred to as
quality assurance engineers and reside within the quality assurance
department. QA testers must have a good understanding of the program
being tested as well as the programming language that the program was
coded in. In addition, the QA engineer must be methodical and be able to
grasp complex logic. Generally speaking, technical people with these
attributes are hard to come by and even harder to keep because most of
them aspire to become programmers.
Khi tiến trình thử nghiệm, các chuyên gia testing có thể tham gia.
Trong nganh CNTT, đội ngũ nhân viên chuyên dụng thực hiện các thử
nghiệm đƣợc gọi la kỹ sƣ đảm bảo chất lƣợng va nằm trong bộ phận bảo
đảm chất lƣợng. Ngƣời test QA(quality assurance) thử phải có một sự hiểu
biết tốt về chƣơng trình đang đƣợc thử nghiệm cũng nhƣ các ngôn ngữ lập
trình ma chƣơng trình đã đƣợc code. Ngoai ra, các kỹ sƣ QA phải có
phƣơng pháp va có thể nắm bắt logic phức tạp.
Even simple software can present testers with obstacles. Couple this
complexity with the difficulty in attracting and keeping QA staff and you
have the main reason that many organizations now automate parts of the
testing process.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 576
Ngay cả phần mềm đơn giản có thể đem lại cho tester những trở
ngại. Những phức tạp nay với những khó khăn trong việc thu hút va giữ
nhân viên bảo đảm chất lƣợng la lý do chinh để nhiều tổ chức bây giờ tự
động hoá quá trình thử nghiệm.
16.2 CHIẾN LƢỢC KIỂM THỬ PHẦN MỀM
Software testing is one critical element of software quality assurance
(SQA) that aims at determining the quality of the system and its related
models. In such a process, a software system will be executed to determine
whether it matches its specification and executes in its intended
environment. To be more precise, the testing process focuses on the logical
internals of the software, ensuring that all statements have been tested, and
on the functional externals by conducting tests to uncover errors and ensure
that defined input will produce actual results that agree with required
results.
Software Testing la một trong những yếu tố quan trọng bả đảm chất
lƣợng phần mềm (SQA) nhằm mục tiêu xác định chất lƣợng của hệ thống
và các mô hình liên quan của nó. Trong quy trình nhƣ vậy, một hệ thống
phần mềm sẽ đƣợc thực thi để xác định xem nó phù hợp với đặc điểm kỹ
thuật va thực hiện trong môi trƣờng dự định của nó. Để đƣợc chinh xác
hơn, quá trình kiểm tra tập trung va đặc tinh logic của phần mềm (đảm bả
rằng tất cả các trƣờng hợp đã đƣợc thử), va trên chức năng bên ngoai
(functinal external) bằng cách tiến hanh các xét nghiệm để phát hiện sai sót
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 577
va đảm bả rằng các đầu va đƣợc xác định sẽ ch ra kết quả thực tế va đúng
với kết quả yêu cầu.
To ensure that the testing process is complete and thorough it is
necessary to create a test plan (Appendix O). A thorough test plan consists
of the following:
1. Revision history
2. System introduction
2.1. Goals and objectives
2.2. Statement of scope
2.3. Major constraints
3. Test plan
3.1. System description
3.2. Testing strategy
3.3. Testing resources
3.4. Testing metrics
3.5. Testing artifacts
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 578
3.6. Testing schedule
4. Test procedures
4.1. Class testing
4.2. Integration testing
5. Appendix 1: class testing test cases
5.1. Application controller subsystem
5.2. User management subsystem
5.3. Resource management subsystem
5.4. Order subsystem
5.5. Accounting subsystem
5.6. Customer relationship management subsystem
5.7. Persistence subsystem
6. Appendix 2: integration testing test cases
6.1. Customer registration
6.2. Reallocate resources
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 579
6.3. Search for service provider and initiate order
6.4. Place order
6.5. Pay for service
7. Appendix: project schedule
Để đảm bảô rằng quá trình thử nghiệm la hoan chỉnh va triệt để, cần
phải tạo ra một kế hoạch thử nghiệm (Phụ lục). Một kế hoạch kiểm tra toan
diện ba gồm sau đây:
1.Revision history
2.System intrduction
2.1.Goals and objectives
2.2.Statement f scope
2.3.Major constraints
3.Test plan
3.1.System description
3.2.Testing strategy
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 580
3.3.Testing resources
3.4.Testing metrics
3.5.Testing artifacts
3.6.Testing schedule
4.Test procedures
4.1.Class testing
4.2.Integration testing
5.Appendix 1: class testing test cases
5.1.Applicatin cntroller subsystem
5.2.User management subsystem
5.3.Resource management subsystem
5.4.Order subsystem
5.5.Accunting subsystem
5.6.Customer relationship management subsystem
5.7.Persistence subsystem
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 581
6.Appendix 2: integration testing test cases
6.1.Customer registration
6.2.Reallcate resources
6.3.Search for service provider and initiate order
6.4.Place order
6.5.Pay for service
7.Appendix: project schedule
A sample test plan, created by my students for an OO dog grooming
system, can be found in Appendix O. Although all components of this test
plan are important, you will note that the plan is really focused around three
things:
1. The test cases
2. Metrics that will determine whether there has been testing success
or failure
3. The schedule
Kế hoạch test vi dụ trong Appendix tập trung va 4 điểm chinh sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 582
1. Test case
2. Ma trận xác định test na đúng, test na sai.
3. Lịch trình.
16.3 TEST AUTOMATION
The usual practice in software development is that the software is
written as quickly as possible and, once the application is done, it is tested
and debugged. However, this is a costly and ineffective way because the
software testing process is difficult, time consuming, and resource
intensive. With manual test strategies, this can be even more complicated
and cumbersome. A better alternative is to perform unit testing independent
of the rest of the code. During unit testing, developers compare the object
design model with each object and subsystem. Errors detected at the unit
level are much easier to fix; we only need to debug the code in that small
unit. Unit testing is widely recognized as one of the most effective ways to
ensure application quality; however, it is a laborious and tedious task. The
workload for unit testing is tremendous, so to perform unit testing manually
is practically impossible and hence the need for automatic unit testing.
Another good reason to automate unit testing is that, when performing
manual unit testing, we run the risk of making mistakes (Aivazis, 2000).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 583
Trong việc phát triển phần mềm thông thƣờng thì code đƣợc viết
nhanh nhất có thể trong một lần va khi ứng dụng đƣợc thực hiện, nó đƣợc
kiểm nghiệm va debugged. Tuy nhiên, đây la một cách tốn kém va không
hiệu quả vì kiểm nghiệm trong quá trình thử nghiệm phần mềm la khó
khăn, tốn thời gian va cần nhiều nguồn lực. Test tay trong trƣờng hợp nay
rất phức tạp. Phƣơng pháp thay thế la: thể hiện các unit test đôc lập với
code còn lại. Trong quá trình kiểm tra đơn vị(testing unit), các nha phát
triển so sánh các mô hình thiết kế đối tƣợng với từng đối tƣợng va hệ thống
phụ. Lỗi tại cấp đơn vị đƣợc phát hiện va sửa chữa dễ dang hơn vì chỉ cần
sửa lỗi mã trong những đơn vị nhỏ. Testing unit đƣợc công nhận la một
trong những cách hiệu quả nhất để đảm bả chất lƣợng ứng dụng, tuy nhiên,
nó la một công việc tẻ nhạt va đòi hỏi siêng năng. Các đơn vị khối lƣợng
công việc để thử nghiệm rất lớn, do đó Testing unit không thể đƣợc thực
hiện bằng tay ma phải có một chƣơng trình kiểm tra tự động. Chƣơng trình
nay trả ra các lỗi có thể có trong code(Aivazis, 2000).
Besides saving time and preventing human errors, automatic unit
testing helps facilitate integration testing. After unit testing has removed
errors in each subsystem, combinations of subsystems are integrated into
larger subsystems and tested. When tests do not reveal new errors,
additional subsystems are added to the group, and another iteration of
integration testing is performed. The re-execution of a subset of tests that
have already been conducted is regression testing. It ensures that no errors
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 584
are introduced as a result of adding new modules or modification in the
software (Kolawa, 2001).
Bên cạnh việc tiết kiệm thời gian va ngăn ngừa lỗi con ngƣời mắc
phải, Testing unit autmation tạo thuận lợi cho test Tich hợp (integration
testing). Sau khi kiểm tra đơn vị(Testing unit) lại bỏ các lỗi ở từng module,
các module đƣợc tich hợp lại thanh hệ thống lớn hơn va đƣợc test. Khi thử
nghiệm không phát sinh lỗi mới, modul đƣợc kết hợp thanh nhóm, va lặp
lại với các module khác tạo thanh các bai kiểm tra hồi quy. Cuối cùng sau
khi kết hợp tất cả các module thì tái thực hiện một lần nửa. Nó đảm bả rằng
không có lỗi đƣợc phát sinh khi thêm mô-đun mới hặc sửa đổi trong các
phần mềm (Klawa, 2001).
As integration testing proceeds, the number of regression tests can
grow very large. Therefore, it is inefficient and impractical to re-execute
every test manually once a change has occurred. The use of automated
capture and playback tools may prove useful in this case. They enable the
software engineer to capture test cases and results for subsequent playback
and comparison.
Khi tiến hanh integration testing, số lƣợng các bai kiểm tra hồi qui có
thể phát triển rất lớn. D đó, nó sẽ không hiệu quả va không thực tế để tái
thực hiện kiểm tra bằng tay mỗi khi một sự thay đổi đã xảy ra. Việc sử
dụng công cụ bắt tự động va phát lại(capture and playback) rất hữu ich
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 585
trong trƣờng hợp nay. Chúng ch phép các kỹ sƣ phần mềm nắm bắt các
trƣờng hợp kiểm tra va kết quả cho phát lại sau đó va so sánh.
Test automation can improve testers‘ productivity; they can apply
one of several types of testing tools and techniques at various points of code
integration. Some examples of automatic testing tools in the market
include:
• C++Test for automatic C/C++ unit testing by ParaSoft
• Cantata++ for dynamic testing of C++ by IPL
• WinRunner for unit and system tests by Mercury Interactive
Kiểm tra tự động hóa(Test autmation) có thể cải thiện năng suất bằng
cách áp dụng một trong một số lại hình của công cụ kiểm tra va kỹ thuật tại
các điểm khác nhau của hội nhập mã. Một số vi dụ về các công cụ kiểm tra
tự động trên thị trƣờng ba gồm:
• C + + Kiểm tra ch tự động C / C + +, đơn vị kiểm nghiệm của ParaSoft
• Cantata + + để thử nghiệm của C + + bằng IPL
• WinRunner ch các đơn vị va thử nghiệm hệ thống của Mercury
Interactive
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 586
WinRunner is probably one of the more popular tools in use today
because it automates much of the painful process of testing. Used in
conjunction with a series of test cases (see Appendix O, Section 5), a big
chunk of the manual processes that constitute the bulk of testing can be
automated. The WinRunner product actually records a particular business
process by recording the keystrokes a user makes (e.g., emulates user
actions of placing an order). The QA person can then directly edit the test
script that WinRunner generates and add checkpoints and other validation
criteria.
WinRunner có lẽ la một trong những công cụ phổ biến đƣợc sử dụng
ngay nay vì nó tự động hóa nhiều quá trình thử nghiệm. Sử dụng kết hợp
với một lạt các trƣờng hợp thử nghiệm (xem Phụ lục, mục 5), Các sản phẩm
WinRunner thực sự ghi lại thanh một quá trình cụ thể bằng cách ghi âm các
tổ hợp phim của ngƣời sử dụng (vi dụ, mô phỏng những hanh động của
ngƣời dùng đặt hang). Ngƣời QA có thể trực tiếp sửa kịch bản thử nghiệm
ma WinRunner tạo ra va thêm trạm kiểm sát va tiêu chi xác nhận khác.
When done correctly with appropriate testing tools and strategies,
automating software testing provides worthwhile benefits such as
repeatability and significant time saving. This is true especially when the
system moves into system test. Higher quality is also a result because less
time is spent in tracking down test environmental variables and in rewriting
poorly written test cases (Raynor, 1999).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 587
Khi lam đúng với công cụ kiểm tra va các chiến lƣợc thich hợp, phần
mềm tự động há thử nghiệm (Test autmation) cung cấp những lợi ich đáng
giá nhƣ tiết kiệm thời gian đáng kể. Điều nay đặc biệt đúng khi hệ thống di
chuyển va thử nghiệm hệ thống. Chất lƣợng cao cũng la một kết quả, vì
không thời gian kiểm tra các kết quả va viết lại các test case nhàm
chán(Raynr, 1999).
16.4 NGUYÊN LÝ TEST AUTOMATION
Test automation can be applied at unit testing, one or more layers of
integration testing, and system testing (which is another form of
integration). Tests should be executed soon after the code is written, before
too much code integration has occurred, so that bugs will not be carried
forward. When strategizing for test automation, consider automating these
tests as early as possible, as well as later in the testing cycle (Zallar, 2002).
Kiểm tra tự động (Test autmatin) có thể đƣợc ứng dụng va unit
Testing, integration testing, va thử nghiệm hệ thống (la một hình thức hội
nhập). Các thử nghiệm nên đƣợc thực hiện ngay sau khi mã đƣợc viết,
trƣớc khi việc kết hợp mã xảy ra, d đó, lỗi sẽ không đƣợc lan truyền. Khi
lập chiến lƣợc cho việc tự động kiểm tra, cần xem xét việc tự động há các
xét nghiệm nay cang sớm cang tốt, cũng nhƣ sau nay trong chu trình thử
nghiệm (Zallar, 2002).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 588
Pettichord (2001) describes several principles that testers should
adhere to in order to succeed with test automation. These principles include:
• Taking testing seriously
• Being careful who you choose to perform these tests
• Choosing what parts of the testing process to automate
• Being able to build maintainable and reliable test scripts
• Using error recovery
Pettichrd (2001) mô tả một số nguyên tắc ma ngƣời tester nên tuân
theo để thanh công với bai kiểm tra tự động hóa. Những nguyên tắc nay ba
gồm
• Kiểm tra nghiêm túc
• Cẩn thận khi Chọn ngƣời thực hiện những thử nghiệm nay
• Chọn những phần nao của quá trình thử nghiệm để tự động hóa
• Có thể xây dựng các kịch bản thử nghiệm duy trì va đáng tin cậy
• Sử dụng phục hồi lỗi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 589
Testers need to realize that test automation is a software
development activity and so needs to adhere to standard software
development practices. That is, test automation systems need to be tested
and subjected to frequent review and improvement to make sure that they
are indeed addressing the testing needs of the organization.
Cần phải nhận ra rằng kiểm định tự động la một trong những hạt
động phát triển phần mềm va vì vậy cần phải tuân theo tiêu chuẩn thực tiễn
phát triển phần mềm. Đó la, kiểm tra hệ thống tự động hóa cần phải đƣợc
kiểm tra va xem xét thƣờng xuyên va cải thiện để chắc chắn rằng chúng
đang thực sự chỉ ra đƣợc những nhu cầu testing của tổ chức.
Because automating test scripts is part of the testing effort, good
judgment is required in selecting appropriate tests to automate. Not
everything can or should be automated. For example, overly complex tests
are not worth automating; manual testing is still necessary in this case.
Bởi vì các kịch bản thử nghiệm tự động háo la một phần của nỗ lực
thử nghiệm, sự điều chỉnh tốt la cần thiết trong việc lựa chọn các test thich
hợp để tự động há. Không phải tất cả mọi thứ có thể hoặc nên đƣợc tự
động. Vi dụ, các test quá phức tạp không đáng tự động hoá; test tay vẫn
còn cần thiết trong trƣờng hợp nay.
Zambelich (2002) provides a guideline to make automated testing
cost effective. He says that automated testing is expensive and does not
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 590
replace the need for manual testing or enable you to ―down-size‖ your
testing department. Automated testing is an addition to your testing process.
Some pundits claim that it can take between three to ten times as long (or
longer) to develop, verify, and document an automated test case than to
create and execute a manual test case. Zambelich indicates that this is
especially true if you elect to use the ―record/playback‖ feature (contained
in most test tools) as your primary automated testing methodology. In fact,
Zambelich says that record/playback is the least cost-effective method of
automating test cases. Automated testing can be made to be cost-effective,
according to Zambelich, if some common sense is applied to the process:
• Choose a test tool that best fits the testing requirements of your
organization or company. An automated testing handbook is available
from the Software Testing Institute
(http://www.softwaretestinginstitute.com).
• Understand that it does not make sense to automate everything. Overly
complex tests are often more trouble to automate than they are worth.
Concentrate on automating the majority of your tests, which are
probably fairly straightforward. Leave the overly complex tests for
manual testing.
• Only automate tests that will be repeated; one-time tests are not worth
automating.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 591
Zambelich (2002) cung cấp một phƣơng châm để thực hiện tự động
thử nghiệm hiệu quả chi phi. Ông nói rằng thử nghiệm tự động la tốn kém
va không lại bỏ đƣợc sự cần thiết phải kiểm tra tay hặc ch phép bạn "dwn-
size‖ bộ phận testing của bạn. Tự động thử nghiệm la một bổ sung ch quá
trình thử nghiệm của bạn. Một số học giả cho rằng thời gian để phát triển,
xác minh, va tai liệu một trƣờng hợp kiểm tra tự động có thể tốn gấp 3-10
lần thời gian kiểm tra bằng tay. Zambelich chỉ ra rằng điều nay đặc biệt
đúng nếu bạn chọn để phƣơng pháp ―ghi / phát lại‖ la phƣơng pháp tự động
kiểm tra chinh của bạn. Trong thực tế, nói rằng Zambelich ghi / phát lại la
phƣơng pháp it -hiệu quả nhất của phƣơng pháp tự động hoá kiểm tra. Kiểm
tra tự động có thể đem lại hiệu quả, the Zambelich, nếu theo các điều sau:
• Chọn một công cụ thử nghiệm phù hợp nhất các yêu cầu thử nghiệm
của tổ chức hặc công ty của bạn. Một cuốn cẩm nang kiểm tra tự động
có sẵn từ các Viện Kiểm thử phần mềm
(http://www.sftwaretestinginstitute.cm).
• Hiểu rằng nó không thể tự động hoá mọi thứ. Xét nghiệm quá phức tạp
thƣờng gặp nhiều rắc rối để tự động hoá hơn la đem lại hiệu quả. Tập
trung va tự động hoá phần lớn các thử nghiệm đơn giản của bạn. Để lại
các bai kiểm tra quá phức tạp để kiểm tra bằng tay.
• Chỉ tự động hoá các xét nghiệm sẽ đƣợc lặp đi lặp lại; thử nghiệm
không lặp la không đáng tự động hoá.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 592
16.5 THỰC TẾ TIẾP CẬN TỰ ĐỘNG TESTING SFTWARE
Isenberg (1994) explains requirements for success in automated
software testing. In order to succeed, the following four interrelated
components must work together and support one another.
• Automated testing system — it must be flexible and easy to update.
• Testing infrastructure — this includes a good bug tracking system,
standard test case format, baseline test data, and comprehensive test
plans.
• Software testing life cycle — it defines a set of phases outlining what
test activities to perform and when to conduct them. These phases are
planning, analysis, design, construction, testing (initial test cycles, bug
fixes, and retesting), final testing and implementation, and
postimplementation.
• Corporate support — automation cannot succeed without the
corporation‘s commitment to adopting and supporting repeatable
processes.
Isenberg (1994) giải thich các yêu cầu ch sự thanh công trong việc
kiểm tra phần mềm tự động. Để thanh công, bốn thanh phần sau phải lam
việc cùng nhau va hỗ trợ lẫn nhau.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 593
• Hệ thống kiểm tra tự động – ba gồm hệ thống tìm lỗi tốt, định dạng test
case tốt, dự liệu test, kế hạch kiểm lỗi tốt.
• Kiểm tra chu kỳ Phần mềm – xác định một tập hợp các bƣớc việc kiểm
lỗi thực hiện va khi na thực hiện, ba gồm lập kế hạch, phân tich, thiết
kế, tiến hanh, sửa lỗi, cai đặt lần cuối.
• Cơ sở hạ tầng testing -cuộc sống nó định nghĩa một tập hợp các giai
đoạn phác thoả những gì để thực hiện các hạt động kiểm tra va khi tiến
hanh chúng. Những giai đoạn đang có kế hoạch, phân tich, thiết kế, xây
dựng, thử nghiệm (các chu trình thử nghiệm ban đầu, sửa lỗi, va
retesting), thử nghiệm cuối cùng va thực hiện, va postimplementation.
• Hỗ trợ của danh nghiệp – việc kiểm lỗi tựu động không thể thanh công
ma không có cam kết của Tổng công ty để áp dụng va hỗ trợ quá trình
lặp lại.
Automated testing systems should have the ability to adjust and
respond to unexpected changes to the software under test, which means that
the testing systems will stay useful over time. Some of the practical features
of automated software testing systems suggested by Isenberg are:
• Run all day and night in unattended mode
• Continue running even if a test case fails
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 594
• Write out meaningful logs
• Keep test environment up to date
• Track tests that pass, as well as tests that fail
Hệ thống tự động thử nghiệm nên có khả năng điều chỉnh va phản
ứng với những thay đổi bất ngờ của phần mềm đƣợc thử nghiệm, có nghĩa
la các hệ thống kiểm nghiệm hữu ich sẽ ở lại qua thời gian. Một số tinh
năng thiết thực của các hệ thống kiểm tra tự động phần mềm đƣợc đề xuất
bởi Isenberg là:
• Khởi động cả ngay va đêm trong chế độ không giám sát
• Tiếp tục chạy ngay cả khi một trƣờng hợp thử nghiệm không thanh
công
• Viết ra các bản ghi có ý nghĩa
• Môi trƣờng test giống môi trƣờng thực tế.
• The dõi các xét nghiệm đúng, cũng nhƣ các bai kiểm tra ma sai
16.6 SỬ DỤNG CÔNG CỤ THỬ NGHIỆM TỰ ĐỘNG
When automated testing tools are introduced, test engineers may
need to face some difficulties. Project management should be used to plan
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 595
the implementation of testing tools. Without proper management and
selection of the right tool for the job, automated test implementation will
fail (Hendrickson, 1998). Dustin (1999) has accumulated a list of
―automated testing lessons learned‖ from his experiences with real projects
and test engineer feedback. Some are presented here:
• The various tools used throughout the development life cycle do not
• integrate easily if they are from different vendors.
• Automated testing tools can speed up the testing effort; however, it
• should be introduced early in the testing life cycle in order to gain
benefits.
• Duplicate information that is kept in multiple repositories is difficult to
maintain. As a matter of fact, in many instances the implementation of
more tools can result in less productivity.
• The automated testing tool drives the testing effort. Often when a new
tool is used for the first time, more time is spent on installation,
training, initial test case development, and automating test scripts than
on actual testing.
• It is not necessary for everyone on the testing staff to spend his or her
time automating scripts.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 596
• Sometimes elaborate test scripts are developed through overuse of the
testing tool‘s programming language, which duplicates the
development effort. That is, too much time is spent on automating
scripts without much additional value gained. Therefore, it is important
to conduct an automation analysis and to determine the best approach
to automation by estimating the highest return.
• Automated test script creation is cumbersome. It does not happen
automatically.
• Tool training needs to be initiated early in the project so that test
engineers have the knowledge to use the tool.
• Testers often resist new tools. When introducing a new tool to the
testing program, mentors and advocates of the tool are very important.
• There are expectations of early payback. When a new tool is introduced
to a project, project members anticipate that the tool will narrow the
testing scope right away. In reality, it is the opposite — i.e.,
• initially the tool will increase the testing scope.
Khi công cụ kiểm tra tự động đƣợc giới thiệu, kỹ sƣ kiểm tra có thể
phải đối mặt với một số khó khăn. Quản lý dự án nên lam quen với việc lên
kế hạch thực hiện các công cụ kiểm tra. Nếu không có quản lý phù hợp va
lựa chọn công cụ thich hợp ch công việc, việc kiểm tra tự động sẽ không
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 597
thanh (Hendricksn, 1998). Dustin (1999) đã tich lũy đƣợc một danh sách
các "kinh nghiệm testing‖ từ kinh nghiệm của mình với các dự án thực tế va
phản hồi của kỹ sƣ kiểm tra. Một số đƣợc trình bay ở đây:
• Các công cụ khác nhau đƣợc sử dụng trong suốt chu kỳ phát triển phần
mềm không tich hợp một cách dễ dang nếu chúng đƣợc từ nha cung
cấp khác nhau.
• Tự động công cụ kiểm tra có thể tăng tốc độ kiểm tra, tuy nhiên, cần
sớm đƣợc giới thiệu trong chu trình sống thử nghiệm để đạt đƣợc lợi
ích.
• Bản sa các thông tin ma đƣợc giữ trong kh nhiều la khó khăn để duy trì.
Nhƣ một vấn đề của thực tế, trong nhiều trƣờng hợp thực hiện nhiều
công cụ có thể dẫn đến năng suất thấp hơn.
• Các công cụ kiểm tra tự động điều khiển nỗ lực thử nghiệm. Thông
thƣờng khi một công cụ mới đƣợc sử dụng ch lần đầu tiên, cần danh
nhiều thời gian cho việc cai đặt, đao tạo, trƣờng hợp thử nghiệm ban
đầu phát triển, va tự động hoá các kịch bản thử nghiệm hơn về việc
kiểm tra thực tế.
• Không cần thiết cho tất cả mọi ngƣời trên các nhân viên kiểm nghiệm
để danh thời gian của mình tự động hoá các script
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 598
• Đôi khi xây dựng kịch bản thử nghiệm đƣợc phát triển vƣợt quá khả
năng của công cụ thử nghiệm, dẫn đến tốn chi phi hơn gấp nhiều lần.
Vì vậy, điều quan trọng để tiến hanh phân tich tự động hóa va xác định
phƣơng pháp tốt nhất để tự động hóa theo ƣớc tinh lợi nhuận cao nhất.
• Tự động tạo ra kịch bản thử nghiệm la rƣờm ra. Nó không xảy ra tự
động.
• Đa tạ sử dụng Công cụ cần phải đƣợc bắt đầu sớm trong dự án để kỹ sƣ
thử nghiệm có kiến thức để sử dụng công cụ.
• Testers thƣờng chống lại các công cụ mới. Khi giới thiệu một công cụ
mới để các chƣơng trình thử nghiệm, cố vấn va ủng hộ của công cụ nay
la rất quan trọng.
• Có những mong đợi của hoan vốn sớm. Khi một công cụ mới đƣợc giới
thiệu đến một dự án, các thanh viên dự án dự đán rằng công cụ sẽ thu
hẹp phạm vi kiểm tra ngay lập tức. Trong thực tế, nó la ngƣợc lại – tức
la, bƣớc đầu công cụ sẽ tăng phạm vi kiểm tra.
16.7 KẾT LUẬN
Test engineers can enjoy productivity increases as a testing task
becomes automated and a thorough test plan is implemented. Creating a
good and comprehensive automated test system requires an additional
investment of time and consideration, but it is cost effective in the long run.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 599
More tests can be executed while the amount of tedious work on
construction and validation of test cases is reduced.
Kỹ sƣ kiểm tra có thể thich việc tăng năng suất khi test tự. Tạo ra
một hệ thống kiểm tra tự động tốt va toan diện đòi hỏi phải đầu tƣ thêm thời
gian va xem xét, nhƣng nó la chi phi có hiệu quả về lâu dai. Nhiều xét
nghiệm đƣợc chạy trong khi số lƣợng công việc tẻ nhạt trong việc kiểm lỗi
đƣợc giảm xuống.
Automated software testing is by no means a complete substitute for
manual testing. In other words, manual testing cannot be totally eliminated;
it should always precede automated testing. In this way, the time and effort
saved by using of automated testing can now be focused on more important
testing areas.
Phần mềm tự động thử nghiệm la do không có nghĩa la thay thế
hoan tan để thử nghiệm các hƣớng dẫn sử dụng. Nói cách khác, kiểm tra tay
không thể đƣợc lại bỏ hoan tan, nó luôn luôn phải đứng trƣớc thử nghiệm tự
động. Bằng cách nay, ta có thể danh thời gian nhiều hơn cho các mảng
testing quan trọng hơn.
Tham khảo va đọc thêm:
Aivazis, M., (2000). Automatic unit testing, Computer, 33, back
cover.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 600
Dustin, E. (1999) Lessons in test automation, STQE Mag., and from
the World Wide Web: http://www.stickyminds.com/pop_print.asp?ObjectId
= 1802&ObjectType = ARTCO, October, 41.
Hendrickson, E. (1998). The difference between test automation
failure and success, Quality Tree Software, retrieved from
http://www.qualitytree.com/feature/dbtasaf.pdf.
Isenberg, H.M. (1994) The practical organization of automated
software testing, Multi-Level Verification Conference 95, December 1994,
retrieved from http://www.automated-testing.com/PATfinal.htm.
Kolawa, A., (2001). Regression testing at the unit level? Computer,
34, back cover.
Pettichord, B. (2001). Success with test automation, retrieved from
http://www.io.com/~wazmo/succpap.htm.
Raynor, D.A. (1999). Automated software testing, retrieved from
http://www.trainersdirect.com/resources/articles/ProjectManagement/Auto
matedSoftwareTestingRaynor.html.
Zallar, K. (2002). Automated software testing — a perspective,
retrieved from http://www.testingstuff.com/autotest.html.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 16: Kiểm thử phần mềm 601
Zambelich, K. (2002). Totally data-driven automated testing,
retrieved from http://www.sqatest.com/w_paper1.html.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 602
CHƢƠNG 17 QUÁ TRÌNH THỰC HIỆN KIỂM
ĐỊNH EDP
Người dịch:
11. Dƣơng Hữu Thanh
12. Trần Xuân Tiến
13. Nguyễn Tấn
14. Trịnh Đắc Thắng
15. Lê Hoang Vũ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 603
17.1 QUÁ TRÌNH THỰC HIỆN KIỂM ĐỊNH EDP
For as long as there have been computer departments there have been
EDP (electronic data processing) auditors. These were and are the people
who make sure a system does what it is supposed to do. In this chapter we
discuss a methodology for EDP auditing using a Web-based system as an
example.
Chuyên viên kiểm định xử lý dữ liệu điện tử(EDP auditors):la những
ngƣời bảo đảm hệ thống chạy đúng nhƣ những gì nó đƣợc yêu cầu. Nội
dung chƣơng: Phƣơng pháp kiểm định EDP sử dụng hệ thống chạy trên nền
web(Web-based system) lam vi dụ
In the ―Wild West‖ days of the Internet, companies were ―plopping‖
systems online faster than you could say ―dot-com crash and burn‖. Now
that those heady days appear to be over, smart organizations are beginning
to think of their Web-based systems in the same terms as they do their more
conventional systems.
Trong những ngay sơ khai của internet,những công ty hay bị ―rơi
khỏi‖ mạng còn nhanh hơn la bạn có thể nói ―.Com‖ cháy va sụp đổ. Tuy
nhiên,những ngay đó đã qua đi,va ngay nay,các công ty luôn chú trọng vao
hệ thống chạy trên nền web(Web-based systems) của họ ngang tầm với
những gì ma họ xây dựng cho các tiện ich khác
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 604
In their quest toward increasing market share while lowering costs,
these organizations are finally delving into the intricacies of the Web-based
system to scrutinize such things as response time/availability, accessibility,
ergonomics, logistics, customer service, and security and privacy.
Các công ty nay ngay cang chú trọng vao việc tăng thị phần va giảm
đi chi phi.Với mục đich đó họ chú trọng vao Web-based system để ra soát
những thứ nhƣ thời gian phản ứng, thời gian sẵn có, khả năng kết nối, hậu
cần, dịch vụ khách hang, an ninh va sự riêng tƣ.
This chapter provides the IT manager with a series of checklists that
can be used to audit the Web-based system and easily modified to audit
conventional systems. Audits should be done regularly, with the results
used to fine-tune the system. Ultimately, think of these checklists as a set
ofissues that can be considered ―food for thought‖.
Chƣơng nay cung cấp cho những ngƣời quản lý hệ thống(IT
manager) một loạt các bảng kiểm mục có thể đƣợc sử dụng để kiểm toán
các hệ thống dựa trên web (Web-based system)va dễ dang sửa đổi để kiểm
toán các hệ thống theo quy ƣớc.Việc kiểm định phải diễn ra thƣờng xuyên
để đƣa ra các kết quả dùng để tinh chỉnh hệ thống va các bảng kiểm định
đƣợc xem nhƣ la 1 loạt các vấn đề đƣợc đƣa ra để giải quyết, va nó đƣợc
gọi la ―food for thought‖
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 605
17.2 TỔ CHỨC CỦA SỰ KIỂM ĐỊNH
It is recommended that you hire an external consulting firm to
perform this critical effort; however, your EDP audit department, with
adequate training, would be a sufficient alternative. The reason why I much
prefer an external auditor is that ―neutral third parties‖ are usually more
objective because they are not stakeholders and are not friendly with
stakeholders. There is nothing like an unbiased opinion.
Chúng tôi đề nghị bạn thuê một công ty tƣ vấn bên ngoai để thực
hiện các công việc quan trọng. Tuy nhiên, EDP bộ phận, kiểm toán của bạn
với đao tạo phù hợp, sẽ la một thay thế đầy đủ. Lý do tại sao tôi rất thich
kiểm toán viên bên ngoai vì họ la "bên thứ ba trung lập‖ thƣờng đáp ứng
đƣợc nhiều mục tiêu bởi vì họ không phải la các bên liên quan va không
quen biết với các bên liên quan. Họ sẽ không có ý kiến thiên vị bên nào.
At a minimum, the auditor should obtain the following
documentation:
1 ngƣời kiểm toán viên phải xây dựng đƣợc 3 tai liệu sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 606
A diagram of the application system.A Web-based system is not
unlike any other computer system. It has processes (e.g., process credit
card) and entities (e.g., airline ticket) and shows the flow of data between
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 607
the entities via the processes. Exhibit 17-1 shows an excerpt from a typical
data-flow diagram.
Sơ đồ của hệ thống ứng dụng (A diagram of the application system).
Một Web-based system không phải la không giống nhƣ bất kỳ hệ thống
máy tinh khác.Nó có các quy trình (vi dụ, quá trình thẻ tin dụng) va các tổ
chức (vi dụ, hãng hang không vé) va cho ta thấy dòng chảy của dữ liệu giữa
các thực thể thông qua các quá trình.Hỉnh 17-1 cho thấy một đoạn trich từ
một luồng dữ liệu sơ đồ điển hình.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 608
• A network diagram. Most modern computer systems are developed
using one of several traditional network architectures (i.e., two-tier, three-
tier, etc.). Add EDI or Internet connectivity and you have quite a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 609
sophisticated environment. The auditor will need a roadmap to this
environment to be able to determine any connectivity issues. Exhibit 17-2
demonstrates what a simple network diagram should look like.
Sơ đồ mạng(A network diagram): nó la lộ trình để các kiểm định
viên có thể xác định bất cứ vấn đề nao trên môi trƣờng mạng
• Staff hierarchy diagram. A complete list, preferably a diagram that
shows direct reports, along with phone numbers and e-mail addresses is
required. A good starting point is shown in Exhibit 17-3.
Sơ đồ phân cấp đội ngũ nhân sự(Staff hierarchy diagram): Một danh
sách đầy đủ các nhân viên, báo cáo, đi cùng với yêu cầu về số điện thoại va
địa chỉ e-mail
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 610
One would think that a modern organization would have these three
items readily available. Think again. In my own experience, few of the
organizations that I audit possess all three of these required items. Few
possess even two.
Chúng ta nghĩ rằng một tổ chức hiện đại sẽ có cả ba tai liệu. Hãy
nghĩ lại. Theo kinh nghiệm của riêng tôi, các công ty ma tôi kiểm toán. Ít có
tổ chức nao có hết cho dù la 2 tai liệu.
If these are not available to the auditor, my recommendation is to
start the audit effort with a series of brainstorming sessions in which at least
the two diagrams are created. Even if diagrams are available, one or more
brainstorming sessions are still advisable. This provides the auditors a
―walk through‖ where system and network architects can be questioned
directly and invariably speeds up the audit process.
Nếu những không có sẵn để kiểm toán viên, đề nghị của tôi la để bắt
đầu kiểm toán với một loạt các buổi ―BrainStorm‖, trong đó it nhất la hai
biểu đồ đƣợc tạo ra. Thậm chi nếu sơ đồ có sẵn, vẫn nên tổ chức một hoặc
nhiều phiên họp ―BrainStorm‖. Việc nay cung cấp cho các kiểm toán viên
―walk through‖ hệ thống va mạng lƣới các kiến trúc va tăng tốc quá trình
kiểm toán.
Once the preliminary step has been completed (i.e., understanding
the system), the auditor can proceed through his or her paces in a logical
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 611
and methodical manner. The following sections, presented as a series of
checklists, represent areas of the audit that can be performed in any order.
Một khi bƣớc sơ bộ đã đƣợc hoan thanh, các kiểm toán viên có thể
tiến hanh thông qua một cách hợp lý. Những phần sau, biết tới nhƣ la một
loạt các kiểm tra, danh sách, đại diện cho các lĩnh vực của kiểm toán có thể
đƣợc thực hiện theo thứ tự bất kỳ.
The checklist is actually a series of questions or areas to be studied.
The responses to these questions form the data collected for input to the
final audit report. This report will contain problems found and issues
overlooked, as well as recommendations for improvement. For example, the
auditor might find that the company has done inadequate security testing.
The recommendation here might be to bring in a ―white hat‖ to perform
penetration as well as intrusion testing. Alternatively, the audit might
uncover a deficiency in fulfillment processes the company follows to ship
products to the customer. Again, the audit report will make
recommendations for improvement.
Danh sách kiểm tra(checklist) thật ra la một loạt các câu hỏi hoặc các
khu vực đƣợc nghiên cứu. Những câu hỏi dạng dữ liệu thu thập cho vao báo
cáo kiểm toán cuối cùng. Báo cáo nay sẽ chứa những vấn đề, xem xét, cũng
nhƣ các khuyến nghị để cải thiện. Vi dụ, các kiểm toán viên có thể thấy
rằng công ty đã thực hiện kiểm tra an ninh không đủ. Các khuyến nghị ở
đây có thể la để mang lại một ―white hat‖ để thâm nhập cũng nhƣ kiểm tra
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 612
sự xâm nhập. Ngoai ra, các kiểm toán có thể phát hiện ra sự thiếu hụt trong
quá trình thực hiện để giao sản phẩm cho khách hang. Một lần nữa, báo cáo
kiểm toán sẽ đƣa ra các đề nghị để cải thiện.
17.3 SYSTEMIC AUDIT:
17.3.1 Hệ thống kiểm toán
It is surprising that many companies spend millions of dollars on
advertising budgets to draw more ―eyeballs‖ to their sites but never factor
in whether or not the projected additional load can be supported by the
current system configuration. A systemic audit looks at such things as
response time, network architecture, and linkages.
Thật ngạc nhiên khi nhiều công ty chi tiêu hang triệu đô la vao ngân
sách quảng cáo để thu hút thêm mọi ngƣời đến các trang web của họ lại it
khi quan tâm đến yếu tố về các thanh phần có thể gắn thêm hỗ trợ bởi cấu
hình hệ thống hiệntại.Một hệ thống kiểm toán sẽ nhìn vao những yếu tố trên
nhƣ thời gian đáp ứng, kiến trúc mạng va mối liên kết.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 613
17.3.2 Thời gian đáp ứng
Measurables in this section include actual response time versus
projected response time. In spite of advances in supplying high-bandwidth
connections to consumers, the vast majority of PCs are connected to the
Web with little more than a 56-Kb modem and good intentions. This means
that sites that are highly graphical or use add-ons such as Macromedia Flash
will appear slow to download
Một Measurables trong phần nay bao gồm thời gian phản ứng thực tế
so với dự kiếnthời gian đáp ứng. Mặc dù có tiến bộ trong việc cung cấp
băng thôngkết nối cao đến ngƣời tiêu dùng, đại đa số các máy tinh đƣợc kết
nối vớiWeb với it hơn 56-modem Kb. Điều nay có nghĩamà các trang web
đƣợc đánh giá cao đồ họahoặc sử dụng tiện ich nhƣ MacromediaFlash sẽ tải
về rất chậm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 614
Given the wide variety of modem types, auditors should test the
response time of the site using different scenarios such as:
• Using a DSL or cable modem connection
• Using a 56-Kb connection
• Using a 28-Kb connection
• At random times during the day, particularly 9 a.m (start of work day)
and 4 p.m. (kids home from school
Web sites such as netmechanic.com, a subscription service, can
assist in this endeavor by checking for slow response time directly from
their Web sites.)
Do sự đa dạng các loại modem, kiểm toán viên nên kiểm trathời gian
đáp ứng của trang web bằng cách sử dụng các cách khác nhau nhƣ:
• Sử dụng một DSL hoặc kết nối modem cáp
• Dùng 56-Kb kết nối
• Dùng 28-Kb kết nối
• Tại lần ngẫu nhiên trong ngay, đặc biệt la 09:00 (bắt đầu ngay lam
việc) va 04:00 (giờ ra về)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 615
Những trang web nhƣ netmechanic.com, một dịch vụ thuê bao, có
thể hỗ trợtrong nỗ lực nay bằng cách kiểm tra cho thời gian phản ứng chậm
trực tiếp từ website của họ.
17.3.3 Liên kết hỏng
One of the top five irritants that Web surfers report is clicking on a
linkand getting a ―nonexistent page‖ error message. This often results
fromsystem maintenance where Web programmers move the actual page
butneglect to modify the link to that page. Unfortunately, this is a
frequentoccurrence. One of a number of tools, including netmechanic.com,
canassist in tracking down these broken links.
Một trong những năm đầu, các trang web thƣờng báo la liên kết đã
hỏng hoặc ―không tồn tại trang". Điều nay thƣờng la kết quả từ hệ thống
bảo trì, nơi các trang web di chuyển nhƣng ngƣời ta lại bỏ bê sửa đổi các
liên kết tới trang đó. Thật không may, đây la một việc thƣờng xuyên xảy
ra. Một trong một số công cụ, bao gồm cả netmechanic.com, có thểhỗ trợ
cho việc theo dõi xuống những liên kết nay bị hỏng.
17.3.4 Cơ sở dữ liệu kiểm toán
Originally the Web was a simple place consisting mostly of text;
nary adatabase was in sight. Today, the Web is filled to the brim with
databases.The addition of databases makes the audit process even more
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 616
complex.Because programming code is used to query, and perhaps even
calculate,against thatdatabase, it is imperative that random checks be
performed inan effort to pinpoint database query and calculation
errors.Essentially, auditing database access is similar to traditional IT
(information technology)QA (quality assurance) process. One or more
scriptsmust be written that will take that database through its paces. For
example,if a database program calculates insurance rates based on a zip
code, thenthat calculation should be duplicated manually or in a different
parallelautomated fashion to ensure that the result is correct. The same can
besaid for information that visitors to the site enter via a form. Is the
informationentered the same as that sent to the database?
Ban đầu trang Web la một nơi đơn giản, chủ yếu la văn bản; load
mộtcơ sở dữ liệu đã đƣợc chọn. Hôm nay, trên Web la đến kết nối trực tiếp
với cơ sở dữ liệu cang nhanh hơn.Việc bổ sung cơ sở dữ liệu lam cho quá
trình kiểm toán phức tạp hơn.
Bởi vì mã lập trình đƣợc sử dụng để truy vấn, va thậm chi tinh
toán,đối với cơ sở dữ liệu đó, Vì vậy bắt buộc ta phải kiểm tra ngẫu nhiên
đƣợc thực hiện tạimột thời điểm để xác định các lỗi truy vấn cơ sở dữ liệu
va tinh toán.Về cơbản, kiểm toán, truy cập cơ sở dữ liệu tƣơng tự nhƣ thông
tintruyền thốngnhằm bảo đảm chấtlƣợng của quá trình. Một hoặc nhiều
kịch bảnphải đƣợc viết ra để cơ sở dữ liệu đƣợc test thông qua nó. Ví
dụ,nếu một chƣơng trình cơ sở dữ liệu tinh toán mức giá bảo hiểm dựa trên
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 617
một mã vùng, sau đóma tinh toán nên đƣợc lặp lại bằng tay hoặc một cách
khác a phải lam song song nhau.Thông tin thu đƣợcđể đảm bảo rằng kết
quả hoạt động la có tốt hay hông. Cũng có thể đƣợcnói cho các thông tin
ma khách truy cập vao trang web nhập thông qua một biểu mẫu để chúng ta
test lỗi.
17.3.5 Mạng kiểm toán
The network, including node servers, should be tested to see if it is
effectively configured to provide optimum response. It is not uncommon to
find the Web development group separated from the traditional IT develop-
ment group. This means that one frequently finds network configurations
designed inappropriately for the task at hand. For example, a site attracting
tens of thousands of hits a day would do well to run a multitude of Web
servers rather than just one.
Most organizations use one or more ISPs (Internet service providers)
to host their sites. The auditor should carefully gauge the level of service
provided by these ISPs as well.
Mạng nay sẽ kiểm tra cả máy chủ để xem nócó cấu hình hiệu quả tối
ƣu để cung cấp đáp ứng những nhu cầu đặt ra hay không. Điều không phải
la không phổ biến, đặc biệt trong các nhóm phát triển web tách ra từ
cácCNTT truyền thống phát triển. Vi dụ, một trang web thu húthang chục
ngan hits một ngay thƣờng sẽ có vô số webmáy chủ thay vì chỉ một.Hầu hết
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 618
các tổ chức sử dụng một hoặc nhiều ISP (nha cung cấp dịch vụ Internet)
đểlƣu trữ các trang web của họ. Các kiểm toán viên nên cẩn thận đo mức độ
dịch vụ cung cấp bởi các ISP nao la tốt nhất.
17.3.6 An ninh va chất lƣợng
No one topic is discussed more in the press than Internet security.
From ―love bug‖ viruses to wily hackers breaking into Western Union,
security is an important component of the audit.
It is worthwhile to keep in mind that the auditor is not a security
auditor, nor should he be. His role is to conduct a top level assessment of
the security of the Internet- or Intranet-based system and, if warranted,
recommend the services of a security firm well versed in penetration and
intrusion testing. The entire issue of security is wrapped up within the more
comprehensive issue of quality. This section will address both issues.
Không có một chủ đề đƣợc thảo luận trên báo chi nhiều hơn so với
bảo mật Internet. Từ sự kiện virus "I LOVE YOU‖ để tin tặc đột nhập vao
gian trá Western Union, an ninh la một thanh phần quan trọng của kiểm
toán này.
Chú ý rằng rằng các kiểm toán viên không phải la một kiểm toán
viên an ninh. Vai trò của kiểm toán viên chỉ la để tiến hanh đánh giá xác
định đƣợc cấp cao nhất của bảo mật của Internet hoặc Intranet dựa trên hệ
thống, va nếu cần thiết sẽ đề nghị các dịch vụ của một công ty bảo mật để
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 619
kiểm tra.Toan bộ các vấn đề an ninh la sẽ nói lên phạm vi toan diện hơnvấn
đề chất lƣợng.
17.4 BẢO MẬT VÀ CHẤT LƢỢNG BẢO MẬT
It is worthwhile to keep in mind that the auditor is not a security
auditor, nor should he be. His role is to conduct a top level assessment of
the security of the Internet- or Intranet-based system and, if warranted,
recommend the services of a security firm well versed in penetration and
intrusion testing. The entire issue of security is wrapped up within the more
comprehensive issue of quality. This section will address both issues.
Không có chủ đề nao thảo luận nhấn mạnh nhiều bảo mật mạng
(Internet security). Từ virus ―love bug‖ đến những hackers bẻ khóa Wester
Union, bảo mật (security) la thanh phần quan trọng của việc kiểm tra
(important component of the audit.)
Thật tốt khi biết rằng ngƣời kiểm tra (auditor) không phải la ngƣời
kiểmtra bảo mật (security auditor). Nếu đƣơc quyền thì vai trò của anh ta
chỉ la quản lý 1 mức độ đánh giá nhất định về bảo mật (security) của
internet hoặc Intranet-based system va phó thác vao những dịch vụ bảo mật
tốt trong việc ngăn chặn va xâm nhập(security firm well). Toan bộ kết quả
của bảo mật thì đƣợc bao ham trong kết quả của chất lƣợng. Phần nay sẽ
mang vị tri của 2 kết quả
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 620
17.4.1 Xem xét lại những kế hoạch bảo mật
All organizations must possess a security plan in writing. If they do
not have this then they are severely deficient. The plan, at a minimum,
should address:
Mọi tổ chức phải có một kế hoạch bảo mật bằng văn bản(in writing).
Nếu chúng không có điều nay thì. Kế hoạch, ở một mức tối thiểu, nên có:
• Authentication. Is the person who he says he is.
• Chứng thực: La ngƣời ma có thể chứng minh đc ngƣời đó la ai ?
• Authorization. What users have what privileges; in other words, ―who
can do what?‖
• Sự ủy quyền.Ngƣời dùng có thể lam gì, nói cách khác la Ai có thể lam
gì?
• Information integrity. Can the end user maliciously modify the
information?
• Toan vẹn thông tin, Ngƣời dùng cuối có thể chỉnh sửa nguy hại đến
thông tin ?
• Detection. Once a problem is identified, how is it handled?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 621
• Nhận ra đc vấn đề. 1 vấn đề đƣợc tìm thấy, nhƣng lam thế nao để điều
khiển nó
17.4.2 Passwords
Passwords are the first shield of protection against malicious attacks
upon your eBusiness. Questions to ask in this section include:
Mật khẩu la lá chắn bảo vệ đầu tiên chống lại sự tấn công các ý vao
doanh nghiệp điện tử của bạn (eBusiness). Những câu hỏi đặt ra trong phần
nay bao gồm:
• Is anonymous login permitted? Under what conditions?
• Có cho phép 1 anonymous login vao không? Dƣới điều kiện la gì ?
• Is a password scanner periodically used to determine if passwords can
be hacked? Examples of this sort of utility include L0phtcrack.com for
NT and www.users.dircon.co.uk/~crypto for UNIX.
• máy quét password đƣợc dùng định kì để xác định sẽ thế nao nếu
những password bị hack
• How often are passwords changed?
• Passwords thƣờng xuyên thế nao?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 622
• How often are administrative accounts used to log on to systems?
Passwords are hard to remember. This means that, in order to gain
entrance to systems quickly, administrative and programming systems
people often create easy-to-remember passwords such as ―admin‖.
These are the first passwords that hackers try to gain entrance into a
system.
• Tai khoảng admin thƣờng log on vao hệ thống bao nhiu lần? Passwords
thì khó nhớ.Điều nay có nghĩa la, để vao đc hệ thống nhanh chống,
admin va ngƣời hệ thống chƣơng trình thƣờng tạo password dễ nhớ nhƣ
―admin‖. Đây cũng la password đầu tiên ma hacker thƣờng thử để vao
hệ thống
17.4.3 Staff Background
Administrative network staff must have a security background as
well as a technical background. Those wishing to train their staffs would do
well to look into the security skills certification program provided by
www.sans.org.
Đội ngũ admin mạng phải có nền tản bảo mật va kĩ thuật tốt. Đội ngũ
admin mạng phải có nền tản bảo mật va kĩ thuật tốt. Việc đó muốn đao tạo
đội của họ sẽ lam tốt để tìm đc bằng chƣơng trình kĩ năng bảo mật đc
provided by www.sans.org.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 623
17.4.4 Connectivity
Today‘s organization may have many external connections (i.e.,
partners, EDI, etc.), each of which the auditor should examine:
Việc tổ chức ngay nay có lẽ phải có nhiều kết nối từ bên ngoai (vd,
partners, EDI..), mỗi cái kết nối, Auditor nên xem xét:
• The data passed between organizations: is what the company sent
received correctly?
• Dữ liệu truyền giữa những tổ chức: cái ma công ty truyền va nhận có
đúng hay ko ?
• The security of the connection: how is the data transmitted? Is it
required to be secure? Is encryption used?
• Bảo mật của kết nối: bằng cách nay dữ liệu đc truyền đi, nó có đòi đỏi
đc bảo đảm ko ? Việc mã hóa có thƣờng dùng ko ?
• If encryption is indeed used, it must be determined whether an
appropriate algorithm is deployed.
• •Nếu sự mã hóa thật sự đc dùng, nó phải dùng thuật toán thich hợp nao
cho hiệu quả?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 624
17.4.5 Cơ sở cần có của phần mềm
All organizations invest in and then use a great deal of third-party
software. As publicized by the press, much of this software — particularly
browsers and e-mail packages, but word processing packages as well —
contain security holes that, left unpatched, put the organization at risk.
Therefore, for each software package used (for Net purposes):
Tất cả những tổ chức đầu tƣ vao xây dựng phần mềm va sau đó dùng
phần mềm của bên thứ 3. Khi đƣa ra công khai điểm nay, thì có nhiều phần
mềm nhƣ vậy – đặc biệt la những gói của trình duyệt va email, cũng nhƣ la
những gói word processing – chứa lỗ hổng bảo mật, chƣa đc vá, ƣớc chừng
la sẽ đc đƣa va sử dụng. Vì thế, mỗi gói phần mềm đc dùng cần (cho mục
đich mạng (Net)):
• Check for publicized security holes.
• Kiểm tra va công khai lỗ hổng bảo mật
• Check for availability of software patches. Always upgrade to the latest
version of software and apply the latest patches.
• Kiểm tra những phần mềm vá còn hiệu lực, luôn nâng cấp phần mềm
mới nhất va sử dụng bản vá mới nhất.
• Check to see if patches have been successfully applied.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 625
• Kiểm tra để thấy rằng việc vá có thanh công ko ?
• Check security software for security holes. Security software, such as a
firewall, can contain security holes just like any other type of software.
Check for updates.
• Kiểm tra phần mềm bảo bạo để tìm lỗi bảo mật. Phần mềm bảo mật
nhƣ la firewall có thể chứa lỗ hỏng bảo mật giống nhƣ những loại phần
mềm khác.Kiểm tra va update.
17.4.6 Phát triển trong nha
The vast majority of Web-based software is written by in-house
programming staff. When writing for the Web it is important to ensure that
your own staff does not leave gaping holes through which malicious
outsiders can gain entrance. There are a variety of programming
―loopholes‖ that open the door wide to hackers:
Phần lớn phần mềm dựa trên nền web (Web-based) đc biết bởi đội
ngũ chƣơng trình trong nha(viết tại nha ?) (in-house programming staff).
Khi viết cho Web, quan trọng la phải đảm bảo rằng đội ngũ của bạn ko để
lại những lổ hỏng (ma nhửng mối nguy hiểm bên ngoai có thể vao). Có 1 số
chƣơng trình loopholes khác nhau, có thể mở rộng cửa cho hackers:
• In programming parlance, a ―GET‖ sends data from the browser
(client) to the server. For example, look at the query string below:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 626
• Trong cách nói của lập trình, 1 ―GET‖ la gởi dữ liệu từ browser(client)
tới server. Vi dụ nhƣ, nhìn câu truy vấn dƣới đây:
http://www.site.com/process_card.asp?cardnumber = 123456789
All HTTP (hypertext transport protocol) requests get logged as
straight text into the server log as shown below:
Tất cả giao thức HTTP đòi hỏi phải ghi lại đoạn text thẳng vào
server, ghi nhƣ dƣới đây
2000–09–15 00:12:30 — W3SVC1 GET/process_card.asp
cardnumber = 123456789 200 0 623 360 570
80 HTTP/1.1 Mozilla/4.0+(compatible;+5.01;+Windows+NT)
Not only is the credit card number clearly visible in the log, but it
might also be stored in the browser‘s history file, thus exposing this
sensitive information to someone else using the same machine later.
Security organizations recommend utilization of the POST method rather
than the GET method for this reason.
Không chỉ la có số của thẻ tin dụng đc ghi rõ rang, ma nó còn chứa
tên file history của browser, vì vậy sẽ đƣa ra những thông tin nhạy cảm cho
1 số ngƣời khác dùng chung máy sau đó. Những tổ chức bảo mật khuyên la
nên dùng phƣơng pháp POST hơn la phƣơng pháp GET vì lý do này
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 627
Are the programmers using ―hidden‖ fields to pass sensitive
information? An example of this is relying on hidden form fields used with
shopping carts. The hidden fields are sometimes used to send the item price
when the customer submits the form. It is rather easy for a malicious user to
save the Web page to his own PC, change the hidden field to reflect any
price he wants, and then submit it.
Những lập trình viên thƣờng dùng thuộc tinh hidden để che dấu
những thông tin nhạy cảm nay. 1 vi dụ về việc tin cậy va thuộc tinh hidden
khi dùng với shopping carts.Thuộc tinh hidden thỉnh thoảng đc dùng để gởi
1 item price khi khách hang đồng ý form.Điều nay rát dễ cho những ngƣời
dùng có ý xuấ khi lƣu Web page vao PC của anh ta, thay đổi thuộc tinh ẩn
va chỉnh những giá ma anh ta muốn, sau đó đồng ý nó.
One way to combat the problem discussed in the previous item is to
use a hash methodology. A hash is a function that processes a variable-
length input and produces a fixed-length output. Because it is difficult to
reverse the process, the sensitive data transmitted in this matter is secured.
The auditor is required to assess the utilization of this methodology given
any problems he might find in assessing the previous item.
Phƣơng pháp chống lại vấn đề nay đã đc thảo luận trong nhiều điểm
trƣớc, la dùng phƣơng pháp hash. 1 hash la 1 chức năng thực thi chiều dai
giá trị biến input va đƣa ra 1 output có chiều dai cố định. Bởi vì khó có thể
đảo ngƣợc tiến trình, nên dữ liệu nhạy cảm đc chuyển đổi bằng cách nay sẽ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 628
đc an toan. Auditor đc đòi hỏi phải đánh giá việc ứng dụng phƣơng pháp
nay cho những vấn đề anh ta tìm đc trong việc đánh giá những item trƣớc
Is sensitive data stored in ASP or JSP pages? Microsoft‘s Internet
information server (IIS) contains a number of security flaws that, under
certain circumstances, allows the source of an ASP or JSP page to be
displayed rather than executed. In other words, the source code is visible to
anyone browsing that particular Web site. If sensitive data, such as
passwords, is stored in the code then they will be displayed as well. The
rule here is not to hardcode any security credentials into the page.
Dữ liệu nhạy cảm đc chứa trong trang ASP hay JSP phải ko?
Microsoft‘s Internet information server (IIS) chứa 1 số bảo mật sai sót về
điều đó, dƣới những tình huống nao, cũng cho phép source của 1 trang ASP
hay JSP đc hiển thị hơn la thực thi.Nói cách khác, source code thì có thể
trông thấy bởi những ngƣời dùng duyệt 1 phần của Web site. Nếu dữ liệu
nhay cảm, nhƣ la password, thì đc lƣu trong code sau đó chúng cũng sẽ đc
hiển thị. Quy luật ở đây la không nên code cứng cho mọi khả năng bảo mật
vào trong trang web (page)
Are application-specific accounts with rights identified early in the
development cycle? There are two types of security. One is referred to as
―declarative‖ and takes place when access control is set from outside the
application program. ―Programmatic‖ security occurs when the program
checks the rights of the person accessing the system. When developing code
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 629
for the Web, it is imperative that the rights issue be addressed early in the
development cycle. Questions to ask include:
Sự ứng dụng các tai khoản riêng biệt với các quyền đƣợc xác định
trƣớc trong chu kỳ phát triển phải ko? Có hai loại hình bảo mật. Một la
đƣợc gọi la "declarative‖ va xảy ra khi kiểm soát truy cập đƣợc thiết lập từ
bên ngoai các chƣơng trình ứng dụng.(―Programmatic‖) Bảo mật "Có hệ
thống‖ xảy ra khi các chƣơng trình kiểm tra các quyền của ngƣời truy cập
vao hệ thống. Khi phát triển code cho Web, nó la bắt buộc rằng các vấn đề
quyền đƣợc giải quyết trƣớc trong chu kỳ phát triển. Các câu hỏi yêu cầu
bao gồm:
- How many groups will be accessing the data?
- Có bao nhiu nhóm sẽ đc truy cập vao dữ liệu ?
- Will each group have the same rights?
- Mỗi nhóm sẽ có quyền giống nhau ko ?
- Will you need to distinguish between different users within a group?
- Bạn có cần phải phân biệt giữa ngƣời dùng va nhóm ko ?
- Will some pages permit anonymous access while others enforce
authentication?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 630
- Một số trang cho phép truy cập dƣới dạng nặc danh(anonymous) trong
khi một số trang thì đòi hỏi phải chứng thực ?
How are you dealing with cross-site scripting? When sites accept
userprovided data (e.g., registration information, bulletin boards), which is
then used to build dynamic pages (i.e., pages created on the spur of the
moment), the potential for security problems is increased 100- fold. No
longer is the Web content created entirely by the Web designers; some of it
now comes from other users. The risk comes from the existence of a
number of ways in which text can be entered to simulate code. This code
can then be executed as any other code written by the Web designers —
except that it was written by a malicious user instead. Javascript and html
can be manipulated to contain malicious code, which can perform a number
of activities such as redirecting users to other sites, modifying cookies, etc.
More information on this topic can be obtained from CERT‘s Website at
http://www.cert.org/advisories/CA-2000–02.html and
http://www.cert.org/tech_tips/ malicious_code_mitigation.html.
Lam thế nao bạn giao dịch với cross-site scripting? Khi các trang
web chấp nhận ngƣời sử dụng cung cấp dữ liệu (vi dụ, thông tin đăng ký,
các bản tin), ma sau đó sẽ đƣợc sử dụng để xây dựng các trang động (vi dụ,
các trang tạo ra chỉ trên thời điểm nay), tiềm năng cho các vấn đề an ninh
đƣợc tăng 100 lần. Không chỉ còn la nội dung của trang web đƣợc tạo ra do
các nhà thiết kế web, một phần của nó bây giờ đến từ những ngƣời dùng
khác. Nguy cơ đến từ việc tồn tại của một số cách ma trong đó các đoạn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 631
text có thể đƣợc nhập để mô phỏng mã.Mã nay sau đó có thể đƣợc thực thi
nhƣ các mã khác giống các đoạn text của các nha thiết kế web – chỉ khác la
nó đƣợc viết bởi một ngƣời sử dụng độc hại để thay thế. Javascript va html
có thể đƣợc chế tác để chứa mã độc, có thể thực hiện một số hoạt động nhƣ
chuyển hƣớng ngƣời dùng đến trang web khác, sửa đổi các cookie, vv
thông tin thêm về chủ đề nay có thể đƣợc lấy từ Website CERT tại
http://www.cert.org/advisories/CA-2000–02.html and
http://www.cert.org/tech_tips/malicious_code_mitigation.html.
Have you checked Wizard-generated or sample code? Often
programmers ―reuse‖ sample code they find on the Web or make use of
generated code from Web development tools. Often the sample or
generated code contains hardcoded credentials to access databases,
directories, etc. The auditor will want to make sure that this is not the case
in the code being audited.
Bạn đã kiểm tra việc phát sinhWizard code hoặc code mẫu? Thƣờng
thì các lập trình viên "tái sử dụng‖ code mẫu ma họ tìm thấy trên Web hoặc
dùng công cụ tạo code ra từ công cụ phát triển Web. Thƣờng thì các code
mẫu hoặc tạo ra chứa hard coded để truy cập vao cơ sở dữ liệu, thƣ mục, vv
Các auditor (kiểm toán viên) muốn đảm bảo rằng đây không phải la trƣờng
hợp trong các mã đƣợc đc kiểm tra (đã đc ghi rồi).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 632
Are code reviews performed? Nothing is worse than the lone
programmer. Many of the problems discussed in the previous sections can
be negated if the code that all programmers write is subject to a peer
review. Code reviews, a mainstay of traditional quality-oriented
programming methodology, are rarely done in today‘s fast-paced Internet
environment. This is one of the reasons why so many security breakins
occur.
Code Review có đƣợc lam không ?Không gì tệ hơn một ngƣời lập
trình đơn độc. Nhiều vấn đề ở phần trƣớc có thể đƣợc giải quyết nếu tất cả
các ngƣời lập trình cùng ngồi lại va viết vao cái một cái peer review. Code
reviews la cơ sở để định hƣớng chất lƣợng của một programming
methodology, hiếm khi đƣợc hoan thanh ở thời buổi internet nhanh chóng
ngay nay. Đây la lý do tại sao nhiều breakins bảo mật sãy ra.
It is necessary to conduct a Web server review. In order to run
programs on the Web, many organizations use the CGI (common gateway
interface) to enable programs (i.e., scripts) to run on their servers. CGI is
not only a gateway for your programming code (i.e., via data collections
forms) but also a gateway for hackers to gain access to your systems.
Vulnerable CGI programs present an attractive target to intruders because
they are easy to locate and usually operate with the privileges and power of
the Web server software. The replacement of Janet Reno‘s picture with that
of Hitler on the Department of Justice Web site is an example of this sort of
CGI hole. The following questions must be asked of developers using CGI:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 633
Kiểm soát một Web Server Review(bản báo cáo của webserver) la
cần thiết. Để chạy những chƣơng trình ở giao diện web, nhiều tổ chức sử
dụng CGI (Cổng kết nối giao diện) để cho phép những chƣơng trình nhƣ la
Script … có thể chạy trên server của họ. CGI không chỉ la một cổng giao
tiếp để lập trình (VD: via data collections forms) nó còn la môt cổng vao
cho hacker tiếp cận hệ thống của bạn. Yếu điểm của CGI la nó la một mục
tiêu hấp dẫn cho những ngƣời khách không mời bởi vì nó dễ dang để tiếp
cận va thƣờng hoạt động với quyền ƣu tiên cao ở các phần mêm trên máy
chủ (server). Các câu hỏi sau thƣờng đƣợc hỏi bởi những nha phát triển sử
dụng CGI:
- Are CGI interpreters located in bin directories? This should not be the
case because you are providing the hacker with all the capabilities he
needs to insert malicious code and then run it directly from your server.
- Thông dịch CGI có đƣợc đặt ở thƣ mục bin hay không?: Nó không nên
vì bạn sẽ cung cấp cho các hacker khả năng chèn các mã nguồn độc hại
vao va sau đó chạy trực tiếp từ máy bạn.
- Is CGI support configured when not needed?
- CGI có cung cấp những cấu hình khi không cần hay không ?
- Are you using remote procedure calls (RPC)? These calls allow
programs on one computer to execute programs on a second computer.
Much evidence indicates that the majority of distributed denial of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 634
service attacks launched during 1999 and early 2000 were executed by
systems that had RPC vulnerabilities. It is recommended, wherever
possible, to turn off or remove these services on machines directly
accessible from the Internet. If this is not possible, then at least ensure
that the latest patches to the software are installed; these mitigate some
of the known security holes.
- Bạn có sử dụng các remote procedure call (RPC) Lời gọi proceduce từ
xa không? Những lời gọi proceduce từ xa cho phép một chƣơng trình
từ môt máy chạy nhữ chƣơng trình ở máy tinh thứ 2. Nhiều bằng cớ chỉ
ra rằng đa số các cuộc tấn công DDoS vao khoảng 1999 đến đầu 2000
đƣợc thực hiện trên các hệ thống có RPC yếu. Ngƣời ta khuyến cáo
rằng nên tắt hoặc xoá những tiện ich có thể truy cập trực tiếp từ internet
trên máy tinh ở bất cứ nơi nao có thể. Nếu không thể, thì hãy chắc rang
luôn cập nhật bản vá patches mới nhất cho chƣơng trình để giảm nhẹ lỗ
hổng bảo mật.
- Is IIS used? This is the software used on most Web sites deployed on
Windows NT and Windows 2000 servers. Programming flaws in IIS
remote data services (RDS) are used by hackers to run remote
commands with administrator privileges. Microsoft‘s Web site
discusses methodologies to use to combat these flaws.
- Có sử dụng IIS không ?phần mềm nay đƣợc triển khai ở nhiều trang
Web ở Windows NT va Windows 2000 servers. Điểm yếu của IIS la
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 635
RDS (Remote data Services) Dịch vụ dữ liệu từ xa có thể đƣợc sử dụng
bởi các hacker để thực thi các câu lệnh với quyền Administrator. Web
của Microsoft đang thảo luận về cách thức chống lại các thiếu sót nay.
17.4.7 Testing
Pre-PC testing was a slow and meticulous process. Today‘s faster
pace means that inadequate testing is performed by most organizations. In
addition, many organizations forego security testing entirely. In this section
of the audit, we determine whether adequate security is performed.
Pre-PC testing luôn la một tiến trình chậm chạp va kĩ cang. Với
nhịp sống ngay nay, những testing nhanh (không đủ) thƣờng đƣợc thực hiện
bởi các công ti. Thêm vao đó, nhiều công ti bỏ qua việc kiểm tra các việc
testing bảo mật. Trong phần nay, chúng tôi định nghĩa một bảo mật (test
bảo mật) đầy đủ đƣợc thực hiên.
Has penetration testing been done? This testing is used to assess the
type and extent of security-related vulnerabilities in systems and networks,
test network security perimeters, and empirically verify the resistance of
applications to misuse and exploitation. It is possible that system
administrators are sophisticated enough to be able to utilize the tool sets
available to scan the systems for vulnerabilities; however, a whole host of
―white hat‖ hacker security consulting firms have sprung up over the past
several years and these people are recommended.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 636
Việc penetration testing đã hoan thanh ? Việc testing đƣợc sử dụng
để đánh giá loại va phạm vi của việc bảo mật liên quan đến hệ thống, kiểm
tra bảo mật mạng vòng ngoai va xác định đƣợc sức đề kháng của các ứng
dụng với những sự khai thác sai (hacker khai thác). Các ngƣời quản trị có
thể đủ tinh tế để sử dụng các phần mềm quét các lỗ hổng hệ thống.
Has intrusion testing been done? Many software tools are available
on the market today that ―monitor‖ systems and report on possible
intrusions. These are referred to as intrusion detection systems (IDS). In
this section of the audit, we determine whether an IDS is used and, if so,
how effectively.
Việc đã intrusion testing (kiểm tra sự xâm nhập) hoan thanh ?
Nhiều software đƣợc bán ngay nay nhƣ nhữ hệ thống giám sát va báo cáo
thì có thể bị xâm nhập. Có xem bởi intrusion detection systems (IDS) Hệ
thống giám sát sự xâm nhập. ở chƣơng về sự kiểm tra chúng ta sẽ xem xét
khi nao một IDS đƣơc sử dụng hiệu quả.
Is there a QA (quality assurance) function? Although QA
departments have been a traditional part of the IT function for decades,
many newer pure-play Internet companies seem to ignore this function. In
this section, the auditor will determine if the QA function is present; if it is,
then it will be reviewed.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 637
Có Tồn tại QA (quality assurance) function chức năng ổn định hay
không ?Mặc dù sự ổn định la một lĩnh vƣc truyền thống trong chức năng
của CNTT trong nhiều thập niên, Nhiều công ti Internet mới có vẻ nhƣ bỏ
qua chức năng nay. Trong chƣơng nay, ngƣời kiểm tra sẽ định nghĩa chức
năng ổn định có tồn tại không ?va sẽ đƣợc thể hiện nhƣ thế nao ?
17.4.8 Lập báo cáo
Logging of all logins, attempted intrusions, etc. must be maintained
for a reasonable period of time. In this section, the auditor will determine if
these logs are maintained and, if so, for how long.
Việc ghi lại tất cả sự đăng nhập, thử xâm phạm phải đƣợc duy trì
trong một thời gian hợp lý.ở chƣơng nay, auditor ngƣời kiểm toán sẽ xác
định có ghi lại điều đó không ? nếu có thì sẽ duy trì trong bao lâu ?
17.4.9 Sao lƣu
In the event of failure it is usual that the last backup be used to
restore the system. In this section, the auditor will determine the frequency
of backups and whether this schedule is reasonable.
Nếu xuất hiện lỗi, dễ thấy la bản sao lƣu gần nhất của hệ thống sẽ
đƣợc sử dụng. Ở chƣơng nay auditor Ngƣời kiểm toán sẽ xác định cái chu
kì của viêc sau lƣu một cách hợp lý.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 638
17.5 KHOA HỌC NGHIÊN CỨU TÍNH TIỆN DỤNG
At this stage the auditor becomes involved in more abstract issues. In
the last section on security, we could be very specific about what a system
requires. In the section on ergonomics we need to be more subjective.
Ở tầng nay auditor Ngƣời kiểm toán sẽ bị vƣớng vao nhiều những
khái niệm trừu tƣợng. Ở chƣơng cuối, phan security ta sẽ đƣợc chỉ ra về
những điều ma một hê thống cần. Ở chƣơng nay, chúng ta cần suy nghĩ môt
cách chủ quan.
To achieve this end will require the auditor to meet with the system
developers and with the end users. At times, these end users will be current
or potential customers of the system; therefore, it might be necessary to
develop surveys and perform focus groups. The goal here is nothing less
than determining a ―thumbs up‖ or ―thumbs down‖ on the Web-based
system vis-à-vis other Web-based systems.
Để hoan tất cần phải có sự trao đổi giữa ngƣời kiểm tra, ngƣời lam
phần mêm va ngƣời dùng cuối. Những ngƣời dung cuối la khách hang tiềm
năng của hệ thống vì thế cần có một Sự khảo sát va trình diễn cho từng
nhóm ngƣời dung, mục đinh la để chỉ ra ―thumbs up‖ or ―thumbs down‖
của giao diện Web.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 639
17.5.1 Điều hƣớng
Navigation means determination of whether or not the site makes
sense in terms of browsing it.
Điều hƣớng nghĩa la xác định có hay không trong một trang web để
lam dễ hiểu khi xem nó.
• How easy is it to find something on this site? If looking for a specific
product, how many pages does one need to surf through to find it?
• Lam cách nao để tìm đƣợc một thứ ở trang web ? Bao nhiêu trang cần
phải lƣớt qua để tìm đƣợc nó ?
• Is there a search engine? If so, review for correctness and
completeness. Many sites do not have search engines (in this instance
we are talking about a search engine to search the site only, rather than
the Internet). If the Web site exhibits depth (i.e., many pages), it
becomes rather difficult to navigate around it. If a search engine is
available, the auditor must check to see if what is being searched for
can be correctly found.
• Có một công cụ tìm kiếm nao không ?nếu có hãy xem xét về tinh đúng
đắn va đầy đủ. Rất nhiều trang web không có công cụ tìm kiếm (của
bản thân chinh trang web đó) Nếu cấu trúc một web side sâu (nhiều
pages) nó trở nên rất khó khăn để tìm ra một thứ. Nếu tồn tại công cụ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 640
tìm kiếm, Ngƣời kiểm tra cần phải kiểm tra xem cái đƣợc tìm có thể
đƣợc tìm thấy không ?
• Is there a site map? If so, review for correctness and completeness.
While not required and not often found, site maps are one of the most
useful of site navigation tools. If available, the auditor will determine
correctness of this tool.
• Có tồn tại môt bản đồ trang web ? Nếu có thì nhƣ thế nao la đúng đắn
va hoan thiên ?Thƣờng thi luôn cần nhƣng it đƣợc tìm thấy ở các trang
web.Nó la một công cụ điều hƣớng hữu hiệu.
• Are back and forward (or other) buttons provided? What tools are
provided to the end user for moving backward and forward within the
site? Are the browser‘s back and forward buttons the only navigation
tools — or did the Web designers provide fully functional toolbars? If
so, do these toolbars work on all pages? We have found that, of those
firms audited, 10 percent of the pages pointed to by the toolbars cannot
be found.
• Có Tồn tại các công cụ để quay lui hay tiến tới ?công cụ đó cung cấp
cho user tiến va lui ở trong môt trang web. Chỉ thiết kế các nút back và
forward hay cả một thanh công cụ với đầy đủ chức năng ? nếu có,
thanh công cụ đó có lam việc trên tất cả các page ? Chúng ta nhân ra
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 641
răng chỉ khoảng 10 % các trang trỏ bởi các thanh công cụ không thể
đƣợc tìm thấy.
• Are frames used? If so, do toolbars and other navigation tools still
work?
• Có sử dụng Frames không ?nếu có thanh công cụ va các sự chuyển
hƣơng khác còn lam việc ?
17.5.2 Tiện lợi
In the end it comes down to one question really: ―How usable is the
Web site?‖ In this section we ask:
• How easy is it to use this site? Although the auditor might have an
opinion that might well be valid, here we resort to surveys and focus
groups to determine the answer.
• How useful is this site?
• Trang web đó sử dụng dễ dang ra sao ?mặc dù ngƣời kiểm toán có các
ý kiến có giá trị, nhƣng cái cách thức ở đây la lam một khảo sát từng
nhóm ngƣời dùng để tìm ra câu tra lời.
• Trang web cung cấp cho ngƣời dung những ich lợi gì ?
Nội dung:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 642
In this section we assess the value of the information contained
within the site compared to competitive sites.
Ở phần nay chúng ta tiếp cận những thông tin có giá trị trong một
website va so sánh sự cạnh tranh giữa các trang web.
• Is content updated regularly?
• Có phải cập nhật các nội dung một cách thƣờng xuyên ?
• Is content relevant?
• Các nội dung có thich đáng ?
• Do visitors consider content worthwhile?
• Các khách hang có cảm thấy thú vị ?
• How does content compare with competitors‘?
• Lam cách nao để Nội dung cạnh tranh đƣợc với đối thủ ?
The auditor will use survey techniques to determine the answer to
this question.
Ngƣời kiểm tra sẽ sử dụng các khảo sát để tìm ra câu trả lời.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 643
17.6 DỊCH VỤ KHÁCH HÀNG
The Web is a doorway to the company‘s business; however, it is just
one part of the business. Tangential services must be audited as well.
Customer service is one of the biggest problem areas for Net firms. There
have been many well-publicized instances of shoddy customer service. It is
in the company‘s best interests, therefore, to assess customer service within
the firm vis-a-vis its Web presence.
The Web is a doorway(con đƣờng) to the company‘s business;
however, it is just onepart of the business. Tangential services must be
audited as well. Customerservice is one of the biggest problem areas for
Net firms. There have beenmany well-publicized instances(trƣờng hợp) of
shoddy (chất lƣợng kém) customer service. It is in thecompany‘s best
interests, therefore, to assess(đanh giá) customer service within thefirm vis-
a-vis its Web presence.
Web la một cách kinh doanh của các công ty. Tuy nhiên, nó chỉ la
một phần của kinh doanh. Những dịch vụ lộn xộn cũng cũng cần đƣợc kiểm
soát. Dịch vụ khách hang la một trong những vấn đề lớn nhất của các hãng
Internet. Có nhiều trƣờng hợp công khai vễ những dịch vụ khách hang kém
chất lƣợng. Vì vậy, nó la sự thich thú nhất của các công ty để đánh giá đƣợc
dịch vụ khách hang trong các hãng Web có quan hệ với nhau
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 644
17.6.1 Acvessibility
How easy is it for your customers to reach you?
• Review e-mail response. How long does it take you to respond to a
customer e-mail?
• Review telephone response. How long does a customer wait on hold
before a person answers his or her query?
Những khách hang của bạn đến với bạn dễ thế nao ?
• Xem xét lại những câu trả lời từ email. Mất bao lâu để bạn trả lời email
cho khách hàng
• Xem xét lại những cuộc trả lời từ điện thoại. Khách hang phải chờ bao
lâu trƣớc khi một ngƣời trả lời những thắc mắc của khách hang
17.6.2 E-Commerce
If your site doubles as an e-commerce site (i.e., you sell goods or
services from your site), you need to assess the quality of this customer
experience.
• Check shopping experience. Using a ―mystery shopper‖ approach, the
auditor will endeavor to make routine purchases using the Web site.
Determine:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 645
- Is the shopping cart correct (i.e., are the goods you purchased in the
shopping cart?
- Does the e-commerce software calculate taxes properly?
- Does the e-commerce software calculate shipping charges
properly?
Nếu site của bạn gấp đôi site thƣơng mại (bạn bán hang hoá hay dịch
vụ từ site của bạn), bạn cần đánh giá chất lƣợng của khách hang
• Kiểm tra kinh nghiệm mua sắm,. Sử dụng gần nhƣ la một ―Khách hang
tiềm năng‖ . Kiểm toán viên sẽ cố gắng mua bán hang ngay trên site
này
• Check the fulfillment experience:
- Is a confirmation e-mail sent to the purchaser?
- Is the return policy carefully explained?
- How quickly does the company refund money on returns?
• Kiểm tra kinh nghiệm thực hiện
- Xác nhận email gửi cho ngƣời bán
- Trả lại nhửng chinh sách giải thich một cách cẩn thận
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 646
- Công ty hoan trả tiền nhanh nhƣ thế nao
17.6.3 Sự riêng tƣ
At a minimum, the auditor must review the company‘s privacy
policy statement. He or she should then review the data flow to determine if
the privacy policy is adhered to.
Ở mức tối thiểu,, kiểm toán viên cần xem xét lại những chinh sách
riêng của công ty. Họ nên xét duyệt lại luồng dữ liệu để quyết định nếu
chinh sách riêng đƣợc gia nhập vao
17.6.4 Tinh hợp pháp
The digital age makes it easy to perform illegal and potentially
litigious acts. From a corporate perspective, this can be anything from a
Web designer illegally copying a copyrighted piece of art to employees
downloading pornography.
Thời đại kỷ thuật số kiến ta dễ dang trái luật va có khả năng dẫn đến
hanh vi kiện tụng. Từ viễn cảnh tập thể, điều nay có thể la một thứ gì đó từ
ngƣời thiết kế Web một cách bất hợp lý sao chép mẫu bản quyền nghệ thuật
để các nhân viên tải những hình ảnh khiểu dâm
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 647
17.6.5 Bản quyền
Check the content ownership of text on your site. It is quite easy to
copy text from one site to another. Ensure that your copy is completely
original or that you have the correct permissions to reprint the data. In the
same way, check image ownership.
Kiểm tra nội quyên quyền sở hữu văn bản trên site của bạn. Nó hoan
toan dễ dang để copy một đoạn text từ một web khác. Đảm bảo rằng bản
copy của bạn hoan toan có nguồn gốc hoặc bạn phải xin phép để in lại dữ
liệu. Tƣơng tự, cần kiểm tra quyền sở hữu những hình ảnh
17.6.6 Cách sử dụng Web của nhân viên
In a number of court cases employees have claimed harassment
when other employees within the organization downloaded and e-mailed
pornography. The company is responsible for the actions of its employees;
therefore, it is highly recommended that the company:
Nhiều trƣờng hợp ra toa đòi quấy rầy khi những nhân viên khác
trong tổ chức tải hoặc gửi thƣ điện tử khiêu dâm công ty có trách nhiệm cho
những hanh động của những nhân viên của họ
• Create a policy memo detailing what can and cannot be done on the
Internet (include e-mail). Make sure all employees sign and return this
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 648
memo. Use tools such as those on surfcontrol.com to monitor employee
Net usage.
• Tạo những chinh sách bảng ghi nhớ chi tiết những gì có thể hoạc không
thể lam trên Internet (bao gồm email).Phải chắc chắn rằng những nhân
viên ki va trả về bang ghi nhớ nay. Sử dụng những công cụ nhƣ
surfcontrol.com để giám sát nhân viên sử dụng Net
• Determine whether any e-mail monitoring software is used and
determine its effectiveness.
• Quyết định vai phần mềm giám sát việc gửi mail va quyết định tinh
hiệu quả của nó
17.7 KẾT LUẬN
Auditing IT systems is an important activity. It is surprising, then,
that so few companies take the time and effort to perform this necessary
activity. EDP auditing not only pinpoints potentially troublesome technical
areas but it can also serve as reinforcement for stakeholder support by
identifying human factor issues as well.
Kiểm toán những hệ thống công nghệ thông tin la một hoạt động
quan trọng. Một vai công ty đã mất thời gian va sức lực để thực hiện hoạt
động cần thiết nay. kiểm toán EDP không chỉ xác định một vai vấn đề tiềm
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 17: Quá trình thực hiện kiểm định EDP 649
tang trong phạm vi kỹ thuật nhƣng nó cũng có thể phục vụ tăng cƣờng cho
stakeholder chống đở bằng cách chỉ ra những tác nhân phát hanh
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 650
CHƢƠNG 18 QUẢN LÝ BẢO TRÌ PHẦN MỀM
Người dịch:
1. Đam Quỳnh Giang
2. Lê Anh Dũng
3. Nguyễn Thanh Tòng
4. Lê Văn Huy
5. Nguyễn Hoang Việt
Maintenance is often called the enigma of software. Enormous
amounts of dollars are spent on it but little management attention is given to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 651
it. Software maintenance presents a real conundrum — hardware
deteriorates because of lack of maintenance, whereas software often
deteriorates because of the presence of maintenance.
Bảo trì thƣờng đƣợc gọi la bi mật của phần mềm. Một lƣợng lớn đô
la bỏ ra cho nó, nhƣng sự quan tâm đến quản lý bảo trì thì rất it. Bảo trì
phần mềm đƣa ra một câu hỏi khó thực sự – Phần cứng bị hƣ hỏng do thiếu
bảo trì, ngƣợc lại phần mềm thƣờng bị hƣ hỏng vì sự hiện diện của bảo trì.
Maintenance is also the most expensive component of the software
life cycle, as shown in Exhibit 18-1. IT departments spend from 75 to 80
percent of their budget (Guimaraes, 1983) and time on the maintenance
process of system development. In addition, the cost of fixing an error rises
dramatically as the software progresses through the life cycle. This amply
demonstrates that maintenance costs more than any other phase and also
that maintenance costs (per fixing the error) are enormous.
Bảo trì la giai đoạn tốn chi phi nhất trong chu trình phát triển hệ
thống phần mềm (SDLC). (xem hình 18 -1). Bộ phận IT tốn 75 – 80 %
ngân sách (theo Guimaraes,1983) va thời gian cho qui trình bảo trì trong sự
phát triển hệ thống. Ngoai ra, chi phi sửa còn lỗi tăng nhanh trong khi phần
mềm phát triển xuyên suốt của chu kỳ sống. Chứng minh đầy đủ cho điều
nay la chi phi bảo trì cao hơn bất kỳ chi phi của các giai đoạn khác(trong
SDLC). Chi phi bảo trì nay (trên mỗi lỗi sai) còn rất lớn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 652
Hình 18.1: Chi phí của việc bảo trì
Once a new system is implemented, the real work begins for most IT
departments. As users utilize the system, errors are discovered, and changes
are requested. As systems have become more widely used within critical
departments of the organization, the maintenance process has taken on a
more important role. The management of systems maintenance has become
perhaps the most critical phase of systems development.
Khi một hệ thống mới đƣợc thực thi, các công việc thực sự bắt đầu
cho hầu hết các phòng ban IT. Ngƣời dùng sử dụng các hệ thống, lỗi sai
đƣợc phát hiện, va sự thay đổi đƣợc yêu cầu. Khi hệ thống đã trở nên rộng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 653
rãi hơn, đƣợc sử dụng trong các bộ phân quan trọng của tồ chức, thì tiến
trình bảo trì có vai trò quan trọng hơn nữa. Sự quản lý bảo trì phần mềm có
lẽ trở thanh giai đoạn quan trọng nhất của sự phát triển hệ thống phần mềm.
18.1 QUÁ TRÌNH BẢO TRÌ:
As the new system is implemented and users begin to work with it,
errors occur or changes are needed. Just as in the development of a new
system, maintenance requires that steps be taken carefully in making
changes or fixing errors. In the event of an error, this can be even more
critical. Each step of the maintenance process is similar to steps in the
systems development life cycle (Curtis et al., 2000) as seen in Exhibit 18-2.
This is a logical extension of the development process because changes
made to the system can affect the whole system and need to be controlled
carefully.
Khi hệ thống đƣợc hiện thực va ngƣời dùng bắt đầu lam việc với nó,
những lỗi xảy ra hoặc sự thay đổi la cần thiết. Cũng nhƣ trong việc phát
triển mới hệ thống, bảo trì đòi hỏi các bƣớc tiến hanh một cách cẩn thận
trong thay đổi hoặc sửa lỗi. Trong trƣờng hợp bị lỗi, điều nay có thể quan
trọng hơn. Mỗi bƣớc trong quá trình bảo trì cũng giống nhƣ những bƣớc
trong trong chu trình phát triền của hệ thống(SDLC). Đây la một sự mở
rộng logic của qui trình phát triển bởi vì sự thay đổi lam cho hệ thống có
thể ảnh hƣởng toan bộ hệ thống va cần phải điều chỉnh một cách thật cẩn
thận.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 654
The first step in the process is to obtain a maintenance request from a
user. Many organizations use a system service request form (see
Appendices A and B) that spells out the problem or need. Once the request
has been received, the requests can be transformed into changes that can
then be used to make design changes. After the changes are designed and
tested, the changes can be implemented.
Bƣớc đầu tiên trong quá trình nay la có một yêu cầu bảo trì từ ngƣời
dùng. Nhiều tổ chức sử dụng hình thức hệ thống yêu cầu dịch vụ (xem Phụ
lục A va B) ma cho phép tìm ra các vấn đề hoặc yêu cầu cần. Một lời yêu
cầu đƣợc nhận, sau đó nó có thể đƣợc sử dụng để thiết kế cho sự thay đổi
của hệ thống. Sự thay đổi nay đƣợc thiết kế va kiểm thử, sự thay đổi có thể
đƣợc hiện thực vao trong hệ thống.
Hình 18.2: So sánh vòng đời bảo trì với vòng đời phát triển hệ thống.
Exhibit 18-3 is an overview of system maintenance. Both the
customer and maintainer are interacting with his or her own documentation,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 655
i.e., user manual and maintainer manual. The customer poses questions,
problems, and suggestions to the maintainer who, in turn, gives the
answers, which are filtered through a change control process and back into
the system.
Hình 18-3 la sơ đồ tổng quan về sự bảo trì hệ thống. Cả khách hang
va ngƣời bảo trì thì tác động lẫn nhau với tai liệu riêng của họ….tai liệu
hƣớng dẫn sử dụng va tai liệu hƣớng dẫn bảo trì. Khách hang đƣa ra những
câu hỏi, vấn đề va những đề xuất cho ngƣời bảo trì. Lần lƣợt, ngƣời bảo trì
đƣa ra các câu trả lời. Nó sẽ đƣợc lọc ra bởi quá trình kiểm soát sự thay đổi
va quay trở lại hệ thống.
Hình 18.2: Tổng quan về bảo trì hệ thống
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 656
18.2 CÁC LOẠI BẢO TRÌ:
Categorizing the types of maintenance required is helpful in
organizing and prioritizing the requests of users. Software maintenance is
more than fixing mistakes. Maintenance activities can be broken down into
four subactivities.
• Corrective maintenance
• Adaptive maintenance
• Perfective maintenance or enhancement
• Preventive maintenance or reengineering
Phân loại các loại hình bảo trì theo yêu cầu la hữu ich trong việc tổ
chức va ƣu tiên các yêu cầu của ngƣời sử dụng. Công việc bảo trì phần
mềm đòi hỏi nhiều yêu cầu hơn việc sửa chữa những sai sót. Hoạt động bảo
trì có thể đƣợc chia thanh bốn loại sau:
• Bảo trì hiệu chỉnh.
• Bbảo trì tƣơng thich.
• Bảo trì hoàn thành hoặc nâng cao.
• Bảo trì dự phòng hoặc tái cấu trúc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 657
18.2.1 Bảo trì hiệu chỉnh:
Corrective maintenance involves fixing bugs or errors in the system
as they are discovered. This maintenance is the type most users are familiar
with because these problems are the most irritating to users. These usually
receive top priority because they can paralyze the organization if not
identified and fixed. Corrective maintenance consumes approximately 17
percent of the maintainer‘s time (Lientz and Swanson, 1978). Major skills
required for corrective maintenance are:
• Good diagnostic skills
• Good testing skills
• Good documentation skills
Hiệu chỉnh liên quan đến việc bảo trì sửa chữa lỗi hay lỗi trong hệ
thống khi chúng đƣợc phát hiện. Loại bảo trì nay la loại hầu hết ngƣời đều
dùng quen thuộc vì những vấn đề nay hầu hết la những vấn đề gây khó chịu
cho ngƣời dùng. Những vấn đề thƣờng nhận đƣợc ƣu tiên hang đầu bởi vì
nó có thể gây tê liệt các hệ thống, nếu nó không xác định va sửa lỗi. Hiệu
chỉnh bảo trì chiếm khoảng 17% thời gian của các nha bảo trì (theo Lientz
va Swanson, 1978). Kỹ năng chuyên nganh cần thiết để bảo trì hiệu chỉnh
là:
• Kỹ năng chẩn đoán.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 658
• Kỹ năng kiểm tra.
• Kỹ năng dẫn chứng bằng tƣ liệu.
18.2.2 Bảo trì tƣơng thich:
Adaptive software maintenance is performed to make a computer
program usable in a changed environment. For example, if the computer on
which the software runs is going to use a new operating system, the system
requires some adaptive tweaking. Adaptive maintenance is typically part of
a new release of the code or part of a larger development effort.
Approximately 18 percent of software maintenance is adaptive (Lientz and
Swanson, 1978).
Bảo trì tƣơng thich phần mềm đƣợc thực hiện để lam cho một
chƣơng trình máy tinh có thể sử dụng trong một môi trƣờng thay đổi. Vi dụ,
phần mêm chạy trên một máy tinh vừa thay đổi một hệ điều hanh mới, hệ
thống đòi hỏi một số điều chỉnh thich ứng. Bảo trì tƣơng thich thƣờng la
một phần phát hanh mới của mã nguồn hoặc một phần của nỗ lực phát triển
lớn hơn. Bảo trì tƣơng thich chiếm khoảng 18% thời gian của các nha bảo
trì (theo Lientz và Swanson, 1978).
18.2.3 Hoan thiện bảo dƣỡng:
This is the act of improving the software‘s functionality as a result of
end-user requests to improve product effectiveness. This includes
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 659
• Adding additional functionality
• Making the product run faster
• Improving maintainability
This is the biggest maintenance time consumer. Approximately 60
percent of software maintenance is spent on perfective maintenance (Lientz
and Swanson, 1978).
Đây la hanh động của việc cải thiện chức năng của phần mềm nhƣ la
kết quả của yêu cầu của ngƣời dùng cuối để cải thiện hiệu quả sản phẩm.
Điều nay bao gồm:
• Thêm bổ sung chức năng.
• Làm cho sản phẩm chạy nhanh hơn.
• Nâng cao khả năng bảo trì.
Đây la loại bảo trì chiểm thời gian lớn nhất. Khoảng 60% bảo trì
phần mềm la chi cho bảo trì hoan thanh (Lientz va Swanson, 1978).
18.2.4 Bảo trì dự phòng
This refers to performing ―premaintenance‖ in order to prevent
system problems; it is different from corrective maintenance, which is
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 660
performed to correct an existing problem. This is like maintaining a car in
which you change the oil and air filter, not in response to some problem but
to prevent a problem from occurring in the first place.
Điều nay nói đến thực hiện ―tiền bảo trì‖ để ngăn chặn hệ thống gặp
vấn đề; việc nay khác với việc bảo trì sửa sai - đƣợc thực hiện để sửa một
vấn đề đang tồn tại. Điều nay cũng giống nhƣ việc duy trì một chiếc xe
trong đó bạn thay đổi dầu va lọc không khi, không để giải quyết một số vấn
đề ma để ngăn chặn một vấn đề có thể xảy ra.
18.3 CHI PHÍ BẢO TRÌ
As computers and their systems become more widely used, the need
for maintenance grows. As these same systems age, maintenance becomes
more critical and time consuming. Since the early 1980s, it is estimated that
maintenance costs have skyrocketed from 40 percent of the IT budget to 75
to 80 percent (Exhibit 18-1). The reason for these increases stems from
once newly designed systems aging. This shift from development to
maintenance is a natural occurrence as organizations avoid the high cost of
new systems and struggle to maintain their current systems.
Khi máy tinh va hệ thống của họ cang trở nên đƣợc sử dụng rộng rãi,
sự cần thiết của việc bảo trì ra đời. bảo trì trở thanh một công việc tối quan
trọng va tốn thời gian. Kể từ đầu những năm 1980, ƣớc tinh chi phi bảo trì
đã tăng vọt từ 40 phần trăm của ngân sách cho CNTT lên 75 đến 80%
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 661
(Hình 18-1). Sự thay đổi từ sự phát triển để bảo trì la một sự xuất hiện tự
nhiên bởi vì các tổ chức muốn tránh chi phi cao cho một hệ thống mới va sự
gắn sức để duy trì các hệ thống hiện tại của họ.
Many factors affect the cost in time and money expended on system
maintenance. One of the most costly is design defects. The more defects in
a system, the more time is spent identifying and fixing them. If a system has
been designed and tested properly, most defects should have been
eliminated, but in the case of poor design or limited testing, defects can
cause system downtimes that cost the organization in lost efficiency and
perhaps sales.
Nhiều yếu tố ảnh hƣởng đến sự tiêu tốn thời gian va tiền bạc tiêu
dùng bảo trì vao việc bảo trì. Một trong những yếu tố gây tốn kém nhất la
những khiếm khuyết trong thiết kế. Cang nhiều khiếm khuyết trong một hệ
thống,cang nhiều thời gian danh để xác định va sửa chữa chúng. Nếu có hệ
thống đã đƣợc thiết kế va thử nghiệm chinh xác, hầu hết các khuyết tật cần
phải đƣợc loại bỏ, nhƣng trong trƣờng hợp thiết kế nghèo nan hoặc thử
nghiệm hạn chế, khuyết tật có thể gây chết hệ thống va lam hệ thống giảm
hiệu quả va có thể ảnh hƣởng việc buôn bán.
The number of users can also affect the cost of system maintenance.
The more users, the more time will be spent on changes to the system. More
importantly, the more platforms the system is installed on, the higher the
cost of maintenance. If a single system needs a change, then the time it
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 662
takes to change the system is limited, but if that system resides on platforms
across the country, e.g., in many branch offices of corporations, then the
cost is increased significantly.
Số lƣợng ngƣời sử dụng cũng có thể ảnh hƣởng đến chi phi bảo trì hệ
thống. Nhiều ngƣời sử dụng hơn, nhiều thời gian hơn sẽ đƣợc chi tiêu vao
những thay đổi cho hệ thống. Quan trọng hơn, hệ thống đƣợc cai đặt trên
cang nhiều nền,chi phi bảo trì cang cao. Nếu một hệ thống đơn cần có một
sự thay đổi, thì thời gian cần phải thay đổi hệ thống thì đƣợc giới hạn,
nhƣng nếu hệ thống nằm trên nền tảng trên khắp đất nƣớc, vi dụ nhƣ, trong
nhiều văn phòng chi nhánh của các tập đoan, thì chi phi đƣợc tăng lên đáng
kể.
The quality of the documentation can also affect the overall cost of
maintenance. Poor documentation can result in many lost hours searching
for an answer that should have been explained in the documentation (Lientz
and Swanson, 1981). The documentation is a type of road map to the
system; when the map is well defined, finding your way through the system
and understanding it become much easier.
Chất lƣợng của các tai liệu hƣớng dẫn cũng có thể ảnh hƣởng đến chi
phi tổng thể của bảo trì. Tai liệu nghèo nan có thể dẫn đến mất nhiều giờ
tìm kiếm cho một câu trả lời, những điều nay cần phải đƣợc giải thich trong
tai liệu hƣớng dẫn (Lientz va Swanson, 1981). Tai liệu nay la một loại bản
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 663
đồ đƣờng hệ thống; khi bản đồ nay cũng xác định tốt, việc tìm cách xuyên
qua va hiểu đƣợc hệ thống sẽ dễ dang hơn.
The quality of the people and their skill level can also cost an IT
department many wasted hours. An inexperienced or overloaded
programmer can increase the cost of maintenance in two ways. First he or
she can waste hours learning on the job at the IT department‘s expense.
Second, a programmer overwhelmed with projects, may skip steps in the
maintenance process and, in turn, make mistakes that cost time and money
to fix.
Trình độ va kỹ năng của nhân viên bảo trì cũng có thể lam cho một
bộ phận CNTT lãng phi nhiều giờ. Một lập trình viên thiếu kinh nghiệm
hoặc quá tải có thể lam tăng chi phi bảo trì theo hai cách. Đầu tiên ngƣời đó
có thể lãng phi giờ vao việc học công việc tại bộ phận phi tổn. Thứ hai, một
lập trình viên choáng ngợp với các dự án, có thể bỏ qua bƣớc trong bảo trì
xử lý va, đến lƣợt nó, tạo ra những sai lầm lam tiểu tốn thời gian va tiền bạc
để sửa chữa.
The tools available to maintenance personnel can save many hours of
work. Using automation tools such as CASE tools, debuggers, and others
can help the programmer pinpoint problems faster or make changes more
easily.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 664
Việc có sẵn công cụ cho nhân viên bảo trì có thể tiết kiệm giờ công
việc. Sử dụng công cụ tự động hóa nhƣ TOOL - CASE, Debugger, và
những công cụ khác có thể giúp các lập trình viên xác định các vấn đề
nhanh hơn hoặc thay đổi dễ dang hơn.
The structure of the software can also contribute to maintenance
costs (Gibson, 1989). If software is built in a rational and easy-to-follow
manner, making changes will be much easier and thus much faster, saving
time and resources. Software maintenance costs can be reduced
significantly if the software architecture is well defined and clearly
documented, and creates an environment that promotes design consistency
through the use of guidelines and design patterns (Hulse et al., 1989).
Cấu trúc của phần mềm cũng có thể đóng góp vao chi phi bảo trì
(Gibson, 1989). Nếu phần mềm đƣợc xây dựng hợp lý va theo cách thức,
thực hiện thay đổi sẽ dễ dang hơn nhiều va do đó nhanh hơn, tiết kiệm thời
gian va tai nguyên. Chi phi bảo trì phần mềm có thể đƣợc giảm đáng kể nếu
kiến trúc phần mềm cũng đƣợc định nghĩa rõ rang va tai liệu hoá, va tạo ra
một môi trƣờng khuyến khich thiết kế thống nhất thông qua việc sử dụng
hƣớng dẫn va các mẫu thiết kế (Hulse et al., 1989).
18.4 MẪU BẢO TRÌ
Harrison and Cook have developed a new model of software
maintenance based upon an objective decision rule, which determines
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 665
whether a given software module can be effectively modified or if it should
be rewritten. Their take is that completely rewriting a module can be
expensive. However, it can be even more expensive if the module‘s
structure has been severely degraded over successive maintenance
activities. A module that is likely to experience significant maintenance
activity is called ―change prone‖. Their paper suggests that early
identification of change-prone modules through the use of change measures
across release cycles can be an effective technique in efficiently allocating
maintenance resources.
Harrison va Cook đã phát triển một mô hình mới của bảo trì phần
mềm dựa trên một nguyên tắc, quyết định khách quan, ma xác định liệu một
mô-đun phần mềm có thể đƣợc sửa đổi có còn hiệu quả hoặc nếu nó cần
đƣợc viết lại. viết lại hoan toan một mô-đun rất tốn chi phi.Tuy nhiên,có thể
tốn chi phi hơn nữa nếu nhƣ cấu trúc của modun bị xuống cấp trầm trọng
đối với hoạt động bảo trì liên tục. Một module có có khả năng trải qua đƣợc
hoạt động bảo trì mang tinh quan trọng thì đƣợc gọi la modun ―hƣớng thay
đổi‖ (change prone).
In maintenance requests for nonchange-prone modules, the process
flow is as follows:
Analyze code and identify change →
Implement change and update documentatio →
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 666
Apply metric analysis →
Compare with baseline →
Check to see if it exceeds the threshold →
If yes, then declare module to be ―change prone;‖ otherwise, declare
module to be non-change prone.
Trong các yêu cầu bảo trì cho mô-đun‖ không hƣớng thay đổi‖
(non_change prone) tiến trình dòng chảy nhƣ sau:
Phân tích mã và nhận dạng thay đổi →
Thực hiện thay đổi và cập nhật các tài liệu hƣớng dẫn→
Áp dụng số liệu phân tích →
So sánh với baseline →
Kiểm tra xem nếu nó vƣợt quá ngƣơng →
Nếu có, tuyên bố mô-đun đã la modun "hƣớng thay đổi‖ nếu không,
module la modun ―không hƣớng thay đổi‖
The process for maintenance requests for a change-prone module is
as follows:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 667
Identify the highest level artifact affected by the request→
Regenerate artifact →
Identify artifacts that can be reused →
Iterate through ―development‖ →
Declare module to be non-change prone.
Quá trình bảo trì cho modun ―hƣớng thay đổi‖ nhƣ sau:
Xác định các artifact(những thứ) cấp cao nhất bị ảnh hƣởng bởi các
yêu cầu →
Tái sinh artifact →
Xác định các artifact có thể đƣợc tái sử dụng →
Lam thông qua quá trình "phát triển" →
Tuyên bố mô-đun la modun ―không hƣớng thay đổi‖.
18.5 QUẢN LÝ BỘ PHẬN BẢO TRÌ
As systems age and demand increases for maintenance personnel,
there has been a loud debate over just who should be doing the maintaining.
Should it be the original developers? Or should it be a separate maintenance
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 668
department? Many have argued that the people who developed the system
should maintain it because they will best understand the system and be
better able to change it (Swanson, 1990). This logic is correct but difficult
to fulfill because developers want to keep building new systems and
consider maintenance a less desirable function. IT professionals view
maintenance as fixing someone else‘s mistakes. One solution to this
problem that has been tried recently involves rotating the IT personnel from
development to maintenance and back to allow everyone to share in the
desirable as well as undesirable functions of the department.
Khi hệ thống có thời kì va tăng nhu cầu về tổ chức bảo trì, đã từng có
một cuộc tranh luận lớn hơn giữa những ngƣời cần đƣợc lam việc duy trì.
Nó có nên đƣợc la các nha phát triển đầu tiên? Hoặc nó phải la một bộ phận
bảo trì riêng biệt? Nhiều ngƣời đã lập luận rằng những ngƣời phát triển hệ
thống nên duy trì nó, vì họ sẽ hiểu tốt nhất hệ thống va có thể thay đổi nó
tốt hơn (Swanson, 1990). Lập luận nay la đúng, nhƣng khó khăn để thực
hiện bởi vì các nha phát triển muốn tiếp tục xây dựng các hệ thống mới va
xem xét việc duy trì một chức năng it mong muốn hơn. Chuyên gia CNTT
xem việc bảo trì la sửa chữa những sai lầm của ngƣời khác. Một trong
những giải pháp cho vấn đề nay đã đƣợc thử gần đây liên quan đến việc
quay bộ phận CNTT từ phát triển sang bảo trì va quay trở lại để cho phép
mọi ngƣời chia sẻ những chức năng mong muốn cũng nhƣ không mong
muốn của bộ phận nay.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 669
18.6 ĐÁNH GIÁ HIỆU QUẢ
An important part of managing maintenance is to understand and
measure the effectiveness of the maintenance process. As a system is
implemented, service requests may be quite high as bugs are worked out
and needs for change are discovered. If the maintenance process is
operating properly an immediate decrease in failures should be seen
(Exhibit 18-4). Good management of maintenance should include recording
failures over time and analyzing these for effectiveness. If a decrease is not
noticed, the problem should be identified and resolved.
Một phần quan trọng của việc quản lý bảo trì la để hiểu va đánh giá
hiệu quả của quá trình bảo dƣơng. Nhƣ một hệ thống đƣợc triển khai thực
hiện, các yêu cầu dịch vụ có thể có khá nhiều lỗi phát sinh va có các nhu
cầu cho sự thay đổi. Nếu quá trình bảo dƣơng vận hanh đúng la một sự
giảm sai sót phải đƣợc thể hiện ngay (Hình 18-4). Quản lý bảo trì tốt nên
bao gồm ghi nhận lại các sai sót theo thời gian va phân tich chúng vì tinh
hiệu quả. Nếu sự giảm sai sót không đƣợc nhận thấy, vấn đề cần đƣợc xác
định va giải quyết lại.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 670
Sai sót
Sự triển khaiHì
nh 18-4 Phân phối chuẩn các sai sót theo sự triên khai
Another measure of success of the maintenance process is the time
between failures. The longer the time between failures, the more time can
be spent on improving the system and not just fixing the existing system
(Lientz, 1983). Failures will happen, but more costly is the time fixing even
the simplest failure.
Thƣớc đo sự thanh công của quá trình bảo dƣơng la thời gian giữa
các sai sót. Thời gian giữa sai sót cang dai, cang có nhiều thời gian hơn cho
việc cải thiện hệ thống va không chỉ sửa chữa hệ thống hiện có (Lientz,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 671
1983). Sai sót sẽ xảy ra, nhƣng tốn kém hơn la thời gian sửa chữa, ngay cả
sai sót đơn giản nhất.
Recording the type of failure is important to understanding how the
failure happened and can assist in avoiding failures in the future. As this
information is recorded and maintained as a permanent record of the
system, solutions can be developed that fix the root cause for a variety of
failures.
Ghi nhận lại các kiểu sai sót rất quan trọng để hiểu nguyên nhân sai
sót xảy ra va có thể trợ giúp trong việc tránh sai sót trong tƣơng lai. Theo
thông tin nay đƣợc ghi chép va lƣu giữ nhƣ một ghi nhận thƣờng trực của
hệ thống, các giải pháp có thể đƣợc phát triển ma sửa chữa đƣợc nguyên
nhân chủ chốt cho một loạt các sai sót.
18.7 QUẢN LÝ YÊU CẦU BẢO TRÌ
As problems arise or the need for change is discovered, the flow of
these requests must be handled in a methodical way. Because all requests
are not equal and they arrive at the project manager‘s desk at various times,
a system has been developed by most IT departments. This system provides
a logical path for the approval of requests and prioritizes and organizes
those approved. The project manager has the job of categorizing the
requests and passing them on to the ―priority board‖ that decides if the
request is within the business model and what, if any, priority to give the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 672
change. As decisions are made by the board, they are passed back to the
project manager for action. The project manager then reports the decision to
the user and acts on the change based on the priority given.
Vì những vấn đề phát sinh hoặc sự cần thiết phải thay đổi đƣợc phát
hiện, dòng chảy của những yêu cầu nay phải đƣợc xử lý một cách có
phƣơng pháp. Bởi vì tất cả yêu cầu không giống nhau va chúng tìm đến ban
lam ngƣời quản lý dự án vao các thời điểm khác nhau, một hệ thống đã
đƣợc phát triển bởi hầu hết các bộ phận CNTT. Hệ thống nay cung cấp một
con đƣờng hợp lý cho việc phê duyệt yêu cầu va các ƣu tiên va các tổ chức
phê duyệt. Ngƣời quản lý dự án có công việc phân loại yêu cầu va đƣa
chúng vào các ―bảng ƣu tiên‖ ma quyết định nếu yêu cầu có trong mô hình
kinh doanh va những gì, nếu có, ƣu tiên cho việc thay đổi. Theo quyết định
đƣợc thực hiện bởi dƣa trên bảng nay, chúng đƣợc truyền lại cho ngƣời
quản lý dự án để hanh động. Ngƣời quản lý dự án sau đó báo cáo quyết
định đến ngƣời dùng va hanh động trên sự thay đổi dựa trên những ƣu tiên.
The type and severity of change help decide what priority it is given.
If the change is important enough, it may be placed at the top of the queue
for immediate action. If several changes occur in a single module a batch
change may be requested. A batch change involves making changes to a
whole module at once to avoid working on the same module several times.
This also allows users to view the changes as a single update that may
change the use of a module through screen changes or functionality.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 673
Các loại hình va mức độ nghiêm trọng của sự thay đổi giúp quyết
định mức độ ƣu tiên. Nếu sự thay đổi đủ quan trọng, nó có thể đƣợc đặt ở
đầu hang đợi để hanh động ngay lập tức. Nếu một vai thay đổi xảy ra trong
một mô-đun đơn, sự thay đổi hang loạt có thể đƣợc yêu cầu. Một loạt thay
đổi bao gồm việc lam thay đổi đối với toan bộ mô-đun một lúc để tránh lam
việc trên cùng một vai mô-đun lần. Điều nay cũng cho phép ngƣời dùng
xem những thay đổi nhƣ la một cập nhật duy nhất ma có thể thay đổi việc
sử dụng một mô-đun thông qua man hình thay đổi hoặc chức năng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 674
Bảng Ưu tiên
Quyết định
Nộp yêu cầu
Yêu cầu thay đổi
Người
dùng
Thứ tự thay đổiSắp ưu tiên và
phân loại
Người quản lý Dự án
Lập trình viên
Hình 18-5 Sơ đồ thay đổi yêu cầu
The queue of changes is a valuable tool in controlling work that
needs to be done. Items high in the queue receive the immediate attention
they deserve; those of lesser importance may never be acted on due to a
change in needs or a new system that solves the problem.
Hang đợi thay đổi la một công cụ có giá trị trong việc kiểm soát công
việc cần phải lam. Những mục đầu hang đợi nhận đƣợc sự chú ý chúng
xứng đáng ngay lập tức, những mục có tầm quan trọng thấp hơn có thể
không bao giờ đƣợc hoạt động do một sự thay đổi trong nhu cầu hoặc một
hệ thống mới giải quyết đƣợc vấn đề.
18.8 KẾT LUẬN
Managing system maintenance requires that steps be taken similar to
the development of new systems. System maintenance is in many ways an
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 675
extension of the system development life cycle and involves similar steps to
ensure that the system is properly maintained. As a new system is
implemented, system maintenance is required to fix the inevitable errors
and track them for future use. As a system ages and changes are requested,
system maintenance has the job of categorizing, prioritizing, and
implementing changes to the system. As these changes are made, the
system librarian has the very important job of controlling the integrity of
the system. The proper management of system maintenance is vital to the
continued success of the system. A well managed systems maintenance
department can save time and money by providing an error-free system that
meets the needs of the users it serves.
Quản lý việc bảo trì hệ thống yêu cầu các bƣớc tƣơng tự nhƣ sự phát
triển của hệ thống mới. Hệ thống bảo trì trong nhiều cách la một phần mở
rộng của vòng đời phát triển hệ thống va liên quan đến các bƣớc tƣơng tự
để bảo đảm rằng hệ thống đƣợc duy trì đúng cách. Khi một hệ thống mới
đƣợc thực hiện, bảo trì hệ thống la cần thiết để sửa chữa sai sót không thể
tránh khỏi va theo dõi chúng trong những sử dụng ở tƣơng lai. Khi một hệ
thống có thời kì va những thay đổi đƣợc yêu cầu, bảo trì hệ thống có nhiệm
vụ phân loại, ƣu tiên, va thực hiện các thay đổi cho hệ thống. Khi những
thay đổi nay đƣợc thực hiện, thủ thƣ hệ thống có công việc rất quan trọng
của việc kiểm soát sự toan vẹn của hệ thống. Sự quản lý thich hợp bảo trì hệ
thống la rất quan trọng cho sự thanh công liên tục của hệ thống. Một hệ
thống bảo trì đƣợc quản lý tốt có thể tiết kiệm thời gian va tiền bạc bằng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 676
cách cung cấp một hệ thống không có lỗi, đáp ứng nhu cầu của ngƣời sử
dụng nó phục vụ.
18.9 TÀI LIỆU THAM KHẢO
Curtis, G., Hoffer, J., George, J., and Valacich, S. (2000).
Introduction to Business Systems Analysis, Pearson Custom Publishing,
Boston.
Gibson, V. and Senn, J. (1989). System Structure and Software
Maintenance Performance, ACM Press, New York.
Guimaraes, T. (1983). Managing Application Program Maintenance
Expenditures, ACM Press, New York.
Harrison, W. and Cook, C. Insights on improving the maintenance
process through software measurement.
http://www.cs.pdx.edu/~warren/Papers/CSM.htm.
Hulse, C., Edgerton, S., Ubnoske, M., and Vazquez, L. (1999).
Reducing Maintenance Costs through the Application of Modern Software
Architecture Principles, ACM Press, New York.
Lientz, B. (1983). Issues in Software Maintenance, ACM Press, New
York.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 18: Quản lý bảo trì phần mềm 677
Lientz, B.P. and Swanson, E.B. (1978). Characteristics of application
software maintenance, Commn. ACM, 21, 466–481.
Lientz, B.P. and Swanson, B. (1981). Problems in Application
Software Maintenance, ACM Press, New York.
Swanson, E. (1990). Departmentalization in Software Development
and Maintenance, ACM Press, New York.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 673
CHƢƠNG 19 KHOA HỌC VỀ TÀI LIỆU HÓA
Người dịch:
1. Trần Thanh Hải
2. Đặng Hoang Hải
3. Lê Văn Chân
4. Lê Anh Khoa
5. Dƣơng Tùng Sơn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 674
The one thing that software developers hate to do is to document
their programs and their systems. Therefore, it is understandable that
software documentation is the one of the most neglected areas in
information technology. However, documentation is one of the most
important components of systems development. Without adequate
documentation, the system can be neither utilized efficiently nor maintained
properly.
Tai liệu hóa các chƣơng trình va hệ thống la điều ma các nha phát
triển phần mềm không thich lam.Vì vậy, tai liệu hóa phần mềm la một trong
những phần bị xao lãng nhất trong công nghệ thông tin. Tuy nhiên, tai liệu
hóa la một trong những thanh phần quan trọng nhất cho việc phát triển các
hệ thống. Nếu không có tai liệu hƣớng dẫn đầy đủ, hệ thống có thể không
đƣợc tối ƣu hiệu quả hay duy trì đúng cách.
19.1 TÀI LIỆU HÓA LÀ GÌ?
According to Ambler (2002), a document is any artifact external to
source code whose purpose is to convey information in a persistent manner;
documentation includes documents and comments in source code. A model
is an abstraction that describes one or more aspects of a problem or a
potential solution.
Theo Ambler (2002), tai liệu (document) la những thứ khác với mã
nguồn đƣợc dùng để diễn đạt thông tin theo một cách thống nhất; hệ thống
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 675
tai liệu (documentation) bao gồm các tai liệu va chú thich trong mã nguồn.
Mô hình la cách biểu diễn trừu tƣợng một hoặc nhiều khia cạnh của một
vấn đề hoặc giải pháp tiềm năng.
All professionals in the field agree that documentation promotes
software quality. There are numerous, well-documented reasons for this.
David Tufflye, a consultant who specializes in producing high-quality
documentation to a predefined standard, says that consistent, accurate
project documentation is known to be a major factor contributing to
information systems quality. He goes on to say that document production,
version control, and filing are often not performed, contributing to a higher
number of software defects that impact the real and perceived quality of the
software, as well as leading to time and expense spent on rework and higher
maintenance costs (Tufflye, 2002).
Tất cả chuyên gia đều đồng ý rằng tai liệu hóa lam tăng chất lƣợng
phần mềm. Có nhiều lý do để giải thich việc nay. David Tufflye, một nha tƣ
vấn chuyên về sản xuất hệ thống tai liệu chất lƣợng cao theo một tiêu chuẩn
đƣợc xác định sẵn, nói rằng, tai liệu dự án chinh xác va phù hợp đƣợc xem
la một nhân tố chinh đóng góp cho chất lƣợng hệ thống thông tin. Ông cũng
nói rằng tai liệu hóa, kiểm soát phiên bản, va lập các hồ sơ thông tin thƣờng
không đƣợc thực hiện. Điều nay gây ra một lƣợng lớn các khuyết tật phần
mềm va dẫn đến thời gian va chi phi cho việc lam lại va bảo dƣơng cao lên
(Tufflye, 2002).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 676
Marcello Alfredo Visconti proposes a software system
documentation process maturity model that is consistent with — and runs in
conjunction with — the Software Engineering Institute‘s (SEI) software
process and capability maturity model. He argues that one of the major
goals of software engineering is to produce the best possible working
software along with the best possible supporting documentation.
Marcello Alfredo Visconti đề xuất một mô hình quy trình phát triển
tai liệu của hệ thống phần mềm phù hợp va đi cùng với mô hình quy trình
phát triển phần mềm của Viện Kỹ thuật ứng dụng (SEI). Ông lập luận rằng
một trong những mục tiêu chinh của công nghệ phần mềm la sản xuất các
phần mềm tốt nhất cùng với các tai liệu hỗ trợ tốt nhất có thể.
Decades‘ worth of empirical data shows that software documentation
processes and products are key components of software quality. These
studies show that poor-quality, out-of-date, or missing documentation is a
major cause of errors in future software development and maintenance
(Visconti, 1993). For example, the majority of defects discovered during
integration testing are design and requirements defects, e.g., defects in
documentation that were introduced before any code was written.
Qua nhiều thập niên, thực nghiệm cho thấy các sản phẩm va các quy
trình lam tai liệu hƣớng dẫn phần mềm la chìa khóa cho chất lƣợng phần
mềm. Những nghiên cứu cho thấy rằng tai liệu chất lƣợng kém, lạc hậu,
hoặc thiếu sót la một nguyên nhân chinh gây ra sai sót trong phát triển va
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 677
bảo dƣơng phần mềm trong tƣơng lai (Visconti, 1993). Vi dụ, phần lớn
khuyết tật đƣợc phát hiện trong thời gian thử nghiệm tich hợp la những sai
sót về thiết kế va yêu cầu, chẳng hạn nhƣ những khiếm khuyết trong hệ
thống tai liệu đƣa ra trƣớc khi mã nguồn đƣợc viết.
Visconti‘s four-level documentation maturity model provides the
basis for an assessment of an organization‘s current documentation process
and identifies key practices and challenges to improve the process. The
fourlevel enhanced model appears in Exhibit 19-1.
Mô hình 4 cấp về quy trình phát triển tai liệu của Visconti cung cấp
cơ sở cho việc đánh giá quá trình lam tai liệu hiện thời của một tổ chức
cũng nhƣ xác định công việc va thách thức chinh để cải thiện quá trình. Mô
hình 4 cấp đã cải tiến đƣợc trình bay ở Hình 19-1.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 678
Key practices as defined by Cook and Visconti (2000) are:
Công việc chinh đƣợc định nghĩa bởi Cook va Visconti (2000) la:
19.1.1 Tạo ra các văn bản phần mềm cơ bản
- Consistent creation of basic software development documents
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 679
- Consistent creation of basic software quality documents
- Tạo ra các tai liệu cơ bản về phát triển phần mềm phù hợp
- Tạo ra các tai liệu cơ bản về chất lƣợng phần mềm phù hợp
19.1.2 Sự công nhận tầm quan trọng của tai liệu ở mức ngƣời quản lý
- Documentation generally recognized as important
- Tai liệu nói chung đƣợc xem la quan trọng
19.1.3 Sự tồn tại của chinh sách hay tiêu chuẩn về tai liệu
- Written statement or policy about importance of documentation
- Written statement or policy indicating what documents must be created
for each development phase
- Written statement or policy describing the contents of documents that
must be created for each development phase
- Văn bản hoặc chinh sách về tầm quan trọng của tai liệu
- Văn bản hoặc chinh sách chỉ ra rằng tai liệu phải đƣợc tạo ra cho mỗi
giai đoạn phát triển
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 680
- Văn bản hoặc chinh sách mô tả nội dung của các tai liệu phải đƣợc tạo
ra cho mỗi giai đoạn phát triển
19.1.4 Giám sát thực hiện chinh sách hoặc tiêu chuẩn
- Use of a mechanism, such as a check-off list, to verify that required
documentation is done
- Monitor adherence to documentation policy or standards
- Sử dụng một cơ chế, chẳng hạn nhƣ một danh sách đánh dấu, để kiểm
tra tai liệu đƣợc yêu cầu đã đƣợc thực hiện hay chƣa
- Giám sát sự tuân thủ các chinh sách về tai liệu hƣớng dẫn hoặc tiêu
chuẩn
19.1.5 Sự tồn tại của một quá trình định sẵn để tạo các tai liệu
- Written statement to prescribe process for creation of documents
- Mechanism to monitor adherence to prescribed process
- Adequate time to carry out the prescribed process
- Training material or classes about the prescribed process
- Văn bản quy định quá trình tạo ra các tai liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 681
- Cơ chế để giám sát sự tuân thủ các quy trình theo quy định
- Thời gian thoả đáng để thực hiện quá trình theo quy định
- Tai liệu hƣớng dẫn hoặc các lớp học về quá trình theo quy định
19.1.6 Phƣơng pháp để đảm bảo chất lƣợng của các tai liệu
- Mechanism to monitor quality of documentation
- Mechanism to update documentation
- Documentation is traceable to previous documents
- Cơ chế giám sát chất lƣợng của các tai liệu
- Cơ chế để cập nhật tai liệu
- Tai liệu có thể truy ngƣợc về những tai liệu trƣớc đó
19.1.7 Đánh giá về tinh tiện dụng của các tai liệu
- Person or group perception of usability of documents created
- Mechanism to obtain user feedback about usability of created
documentation
- Quan điểm của cá nhân hoặc tập thể về các tai liệu đƣợc tạo ra
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 682
- Cơ chế để có đƣợc thông tin phản hồi từ ngƣời dùng về tinh tiện dụng
của tai liệu
19.1.8 Định nghĩa về các thƣớc đo chất lƣợng va tinh tiện dụng của tai
liệu phần mềm
- Definition of measures of documentation quality
- Definition of measures of documentation usability
- Định nghĩa về cách đo chất lƣợng tai liệu
- Định nghĩa về cách đo tinh tiện dụng của tai liệu
19.1.9 Tập hợp va phân tich các thƣớc đo chất lƣợng của tai liệu
- Collection of measures about quality of documentation
- Analysis of documentation quality measures
- Recording of documentation error data
- Tracking of documentation errors and problem reports to solutions
- Analysis of documentation error data and root causes
- Generation of recommendations based on analysis of quality
measurements and error data
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 683
- Tập hợp các cách đo về chất lƣợng của các tai liệu
- Phân tích các cách đo chất lƣợng tai liệu
- Ghi nhận dữ liệu lỗi trong tai liệu
- Theo dõi các lỗi va báo cáo vấn đề để tìm giải pháp
- Phân tich các lỗi va nguyên nhân
- Đƣa ra các khuyến nghị dựa trên phân tich chất lƣợng thƣớc đo va dữ
liệu lỗi
19.1.10 Tập hợp va phân tich các thƣớc đo tinh tiện dụng của tai liệu
- Collection of measures about usability of documentation
- Analysis of documentation usability measurement
- Generation of recommendations based on analysis of usability
measurements
- Generation of documentation usage profile
- Tập hợp của các cách đo về tinh tiện dụng của các tai liệu
- Phân tich cách đo tinh tiện dụng của tai liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 684
- Đƣa ra các khuyến nghị dựa trên phân tich sự đánh giá tinh tiện dụng
- Đƣa ra các hồ sơ hƣớng dẫn sử dụng tai liệu
19.1.11 Quy trình phản hồi - cải tiến
- Mechanism to feedback improvements to documentation process
- Mechanism to incorporate feedback on quality of documentation
- Mechanism to incorporate feedback on usability of documentation
- Cơ chế cải tiến quá trình lam tai liệu dựa vao phản hồi
- Cơ chế để kết hợp phản hồi về chất lƣợng của các tai liệu
- Cơ chế để kết hợp phản hồi về tinh tiện dụng của các tai liệu
An assessment procedure was developed to determine where an
organization‘s documentation process stands relative to the model. This
enables mapping from an organization‘s past performance to a
documentation maturity level and ultimately generates a documentation
process profile. The profile indicates key practices for that level and
identifies areas of improvement and challenges to move to the next higher
level.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 685
Một quy trình đánh giá đã đƣợc phát triển để xác định xem quá trình
lam tai liệu của một tổ chức liên hệ đến mô hình ở điểm nao. Điều nay cho
xác định mức độ phát triển va sử dụng tai liệu của một tổ chức dựa vao
năng suất của tổ chức đó, va cuối cùng la tạo ra một hồ sơ về quy trình xử
lý tai liệu. Các hồ sơ chỉ ra công việc chinh ở mức độ đó va xác định các
lĩnh vực cần cải tiến va thách thức để đạt tới mức độ cao hơn.
Application of the model has a definite financial benefit. The
software documentation maturity model and assessment procedure have
been used to assess a number of software organizations and projects; a
cost/benefit analysis of achieving documentation maturity levels has been
performed using COCOMO that yielded an estimated return on investment
of about 6:1 when moving from the least mature level to the next.
According to Visconti, these results support the main claim of this research:
software organizations that are at a higher documentation process maturity
level also produce higher-quality software, resulting in reduced software
testing and maintenance effort (Visconti, 1993).
Áp dụng mô hình đem lại lợi ich nhất định về tai chinh. Mô hình quy
trình phát triển tai liệu phần mềm va thủ tục đánh giá đã đƣợc sử dụng để
đánh giá một số tổ chức va các dự án phần mềm; một phân tich chi phi/lợi
ich để đạt đƣợc 1 cấp độ đã đƣợc thực hiện, sử dụng COCOMO, cho thấy
tỉ lệ lợi nhuận thu về trên vốn đầu tƣ ƣớc tinh khoảng 06:01 khi di chuyển
từ cấp độ thấp nhất đến cấp độ kế tiếp. Theo Visconti, những kết quả nay
chứng tỏ các khẳng định của nghiên cứu nay: các tổ chức phần mềm đang ở
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 686
cấp độ cao hơn trong quy trình lam tai liệu cũng sản xuất phần mềm chất
lƣợng cao, dẫn đến giảm công việc thử nghiệm phần mềm va bảo trì
(Visconti, 1993).
19.2 CÁC PHƢƠNG PHÁP VÀ TIÊU CHUẨN
The many approaches to producing documentation are practically
unique to each organization. Although the majority of software
documentation is produced manually — i.e., done with word processing
programs or with tools such as Microsoft Visio, some systems are designed
to ease the process and will produce ―automatic‖ documentation. Some of
the automatic documentation capabilities are a subset of systems of a wider
range of capabilities; this is the case with many computer-assisted software
engineering (CASE) tools. These products are designed to support
development efforts throughout the software development life cycle
(SDLC), with documentation just one small part.
Các phƣơng pháp tiếp cận để tạo ra tai liệu la duy nhất cho mỗi tổ
chức. Mặc dù phần lớn các tai liệu phần mềm đƣợc sản xuất thủ công - tức
la, thực hiện với các chƣơng trình xử lý văn bản hoặc với các công cụ nhƣ
Microsoft Visio, một số hệ thống đƣợc thiết kế để lam dễ dang quá trình
sản xuất va "tự động‖ tạo ra tai liệu. Một số trong những tinh năng lam tai
liệu tự động chỉ la một phần trong một hệ thống các tinh năng rộng hơn,
đây la trƣờng hợp các công cụ phần mềm hỗ trợ máy tinh (CASE). Những
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 687
sản phẩm nay đƣợc thiết kế để hỗ trợ quy trình phát triển phần mềm
(SDLC), va tai liệu hƣớng dẫn chỉ một phần nhỏ.
An example of one such tool is Hamilton Technologies 001 which is
discussed at length in this handbook. 001 is a CASE tool (now usually
called application development tool in lieu of the term CASE) that
surrounds itself with an intriguing methodology called ―development before
the fact‖ (DBTF). The premise behind 001 and DBTF is that developing
systems in a quality manner begets quality and error-reduced systems. One
of the intriguing features of the 001 tool set is that it not only generates
programming source code from maps (i.e., models) of a business problem,
but also generates the documentation for the system.
Một vi dụ của một trong những công cụ nhƣ vậy la Hamilton
Technologies 001 (đƣợc đề cập rất nhiều trong cuốn sổ tay nay). 001 la một
công cụ CASE (bây giờ thƣờng đƣợc gọi la công cụ phát triển ứng dụng
thay cho thuật ngữ CASE) sử dụng một phƣơng pháp hấp dẫn đƣợc gọi la
"phát triển trƣớc thực tế‖ (DBTF). Những tiền đề phia sau 001 va DBTF la
phát triển hệ thống một cách chất lƣợng sinh ra những sản phẩm chất lƣợng
va it lỗi hơn. Một trong những tinh năng hấp dẫn của các công cụ thiết lập
001 la nó không chỉ tạo ra mã nguồn từ bản đồ (tức la các mô hình) của một
vấn đề kinh doanh, ma còn tạo ra những tai liệu cho hệ thống.
On one end of the documentation spectrum, many companies utilize
no tools other than a word processor and a drawing tool to extract
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 688
documentation from their reluctant programmers. On the other end,
forward-thinking companies make significant investments in their software
development departments by outfitting them with tool suites such as 001.
The vast majority of organizations lie somewhere between these two
extremes.
Ở một thái cực, nhiều công ty chỉ sử dụng một bộ soạn thảo văn bản
va một công cụ vẽ để lấy tai liệu từ các lập trình viên miễn cƣơng của họ.
Ngƣợc lại ở một thái cực khác, nhiều công ty biết tinh xa đã đầu tƣ đáng kể
cho các bộ phận phát triển phần mềm của họ bằng cách trang bị cho họ với
bộ công cụ nhƣ 001. Đa số các tổ chức nằm đâu đó giữa hai thái cực nay.
The world of client/server has afforded the developer with new
opportunities and decisions to make in terms of which tool set to use. When
Microsoft Office was first introduced, it was utilized mostly for word
processing. Today, Microsoft Access, the database component of the MS
Office product set, has become a significant player in corporations with a
requirement for a robust but less complex database than that of the
powerhouse computers that run their back offices (i.e., Sybase, Oracle,
Microsoft SQL Server).
Thế giới của máy con/máy chủ (client/server) đã cho các nha phát
triển những cơ hội va quyết định mới để xác định những công cụ để sử
dụng. Khi Microsoft Office lần đầu tiên đƣợc giới thiệu, nó đã đƣợc sử
dụng chủ yếu cho xử lý văn bản. Ngay nay, Microsoft Access, thanh phần
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 689
cơ sở dữ liệu của MS Office, đã trở thanh một thứ quan trọng trong các
công ty với yêu cầu của một cơ sở dữ liệu mạnh mẽ nhƣng đơn giản hơn
Sybase, Oracle, Microsoft SQL Server.
Microsoft Access enables the automated production of several kinds
of documents related to the datasets implemented with the program. The
documents describe schemas, queries, and entity relationship diagrams
(ERDs) as shown in Exhibit 19-2.
Microsoft Access cho phép sản xuất tự động của nhiều loại tai liệu
liên quan đến các tập dữ liệu đƣợc triển khai thực hiện với chƣơng trình.
Các tai liệu mô tả lƣợc đồ, truy vấn, va sơ đồ quan hệ thực thể (ERDs) nhƣ
thể hiện trong Hình 19-2.
Some products are dedicated to producing documentation. One such
product is Doc-o-Matic by toolsfactory.com. It is designed to work with the
Borland Delphi software development environment. The product works
with Delphi‘s internal structures, which may consist of: Author, Bugs,
Conditions, Examples, Exceptions, History, Ignore, Internal, Notes,
Parameters, Remarks, Return Value, See Also, Todo, and Version (Leahey,
2002). Doc-o-Matic has been compared to a gigantic parsing routine. As
software systems grow in size and sophistication, it becomes harder for
humans to understand them and anticipate their behavior, says Charles
Robert Wallace in his dissertation, ―Formal Specification of Software Using
Abstract State Machines‖. This method essentially enables walk-through
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 690
before code is written. Wallace argues that normal specification techniques
aim to foster understanding and increase reliability by providing a
mathematical foundation to software documentation (Wallace, 2000). His
technique calls for layering information onto a model through a series of
refinements.
Một số sản phẩm chuyên về sản xuất tai liệu. Một trong số đó la
Doc-o-Matic của toolsfactory.com. Nó đƣợc thiết kế để lam việc với môi
trƣờng phát triển phần mềm Borland Delphi. Sản phẩm nay tƣơng thich với
cấu trúc bên trong của Delphi, có thể bao gồm: Author, Bugs, Conditions,
Examples, Exceptions, History, Ignore, Internal, Notes, Parameters,
Remarks, Return Value, See Also, Todo, và Version (Leahey, 2002). Doc-o
-Matic đã đƣợc so sánh với một quy trình phân tich khổng lồ. Khi hệ thống
phần mềm ngay cang lớn va phức tạp, con ngƣời cang khó nắm bắt va dự
đoán các hanh vi của hệ thống, nhƣ Charles Robert Wallace đã nói trong
luận án của mình, "Formal Specification of Software Using Abstract State
Machines". Phƣơng pháp nay về cơ bản cho phép diễn tập trƣớc khi mã
đƣợc viết. Wallace cho rằng kỹ thuật đặc tả bình thƣờng nhắm tới mục đich
tăng cƣờng sự hiểu biết va độ tin cậy bằng cách cung cấp một nền tảng toán
học cho tai liệu phần mềm (Wallace, 2000). Các kỹ thuật của ông yêu cầu
phân lớp thông tin vao một mô hình thông qua một loạt các sang lọc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 691
19.3 TẠO TÀI LIỆU MỘT CÁCH ĐÖNG ĐẮN
At present, many organizations are practicing a ―hit or miss― form of
software documentation. These are usually the companies that follow no or
few policies and procedures and loosely follow standards. Good software
development is standards based; thus, documentations must also be
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 692
standards based. At minimum, software documentation should consist of
the following:
Hiện nay, nhiều tổ chức đang thi hanh một cách tai liệu hóa phần
mềm trúng hoặc trật. Đây thƣờng la những công ty ma không lam theo hoặc
chỉ theo vai chinh sách va thủ tục va hầu nhƣ không theo tiêu chuẩn. Phát
triển tốt phần mềm phải dựa trên các tiêu chuẩn; do đó, tai liệu cũng phải
đƣợc dựa trên các tiêu chuẩn. Tai liệu phần mềm tối thiểu phải bao gồm
những điều sau đây:
19.3.1 Tất cả các tai liệu hƣớng dẫn đƣợc sản xuất trƣớc khi bắt đầu
phát triển mã nguồn
Most projects go through a systems development life cycle, which
often starts with a feasibility study, goes on to create a project plan, and
then enters into the requirements analysis and system design phases. Each
of these phases produces one or more deliverables, schedules, and artifacts
(examples of these can be found in the appendices to this handbook). In
sum, the beginnings of your system documentation effort should include the
feasibility study, project plan, requirements specification, and design
specification, where available.
Hầu hết các dự án đi qua một chu kỳ phát triển hệ thống, ma thƣờng
bắt đầu với một nghiên cứu tinh khả thi, tiếp tục la tạo ra một kế hoạch cho
dự án, va sau đó phân tich yêu cầu va các giai đoạn phân tich thiết kế hệ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 693
thống. Mỗi giai đoạn sản xuất một hay nhiều sự chuyển giao, lịch trình, va
hiện vật (vi dụ trong số nay có thể đƣợc tìm thấy trong phụ lục). Tóm lại,
việc tai liệu hóa nên bắt đầu ngay từ trong các nghiên cứu tinh khả thi, kế
hoạch dự án, xác định yêu cầu va thiết kế.
19.3.2 Lƣu đồ chƣơng trình
Programmers usually, although not always, initiate their
programming assignment by drawing one or more flowcharts that diagram
the nuts and bolts of the actual program. Systems analysts can utilize
diagrammatic tools such as data flow diagrams (DFD) or UML-based
(unified modeling language) class diagrams (Exhibits 19-3 and 19-4) to
depict the entire system from a physical design level; however, the
programmer is often required to utilize flowcharts (Exhibit 19-5) to depict
the flow of a particular component of the DFD or UML class diagram.
Ngƣời lập trình thông thƣờng, mặc dù không phải luôn luôn, bắt đầu
công việc lập trình bằng cách vẽ một hoặc nhiều lƣu đồ có sơ đồ các nút va
chốt của chƣơng trình thực tế. Các nha phân tich hệ thống có thể sử dụng
các công cụ nhƣ sơ đồ luồng dữ liệu (DFD) hoặc dựa trên sơ đồ lớp theo
UML (ngôn ngữ mô hình hóa chuẩn) (Hình 19-3 và 19-4) để miêu tả toan
bộ hệ thống từ một mức độ thiết kế vật lý. Tuy nhiên, các lập trình viên
thƣờng đƣợc yêu cầu để sử dụng lƣu đồ (Hình 19-5) để miêu tả dòng chảy
của một thanh phần đặc biệt của các sơ đồ lớp UML va DFD.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 694
19.3.3 Mô hình sử dụng hay mô hình nghiệp vụ
The first bullet point recommends including in your documentation
all documentation created during the analysis and design component of the
systems development effort. Use cases may or may not be a part of these
documents — although they should be. Use cases, an example of which is
shown in Exhibit 19-6, provide a series of end-user procedures that make
use of the system in question. For example, in a system that handles student
registration, typical use cases might include student log in, student
registering for the first time, and a student request for financial aid. Use
cases are valuable in all phases of systems development: 1) during systems
analysis, use cases enable the analyst to understand what the end user wants
out of the new system; 2) during programming, use cases assist the
programmer to understand the logic flow of the system; and 3) during
testing, use cases can form the basis of the preliminary test scripts.
Điểm đầu tiên trong phần nay đã đề nghị đƣa vao hệ thống tai liệu
của bạn tất cả các tai liệu đƣợc tạo ra trong quá trình phân tich va thiết kế
thanh phần hệ thống. Các mô hình sử dụng có thể hoặc không cần la một
phần của các tai liệu nay - mặc dù nên có. Vi dụ, trong một hệ thống xử lý
việc đăng ký sinh viên, mô hình sử dụng tiêu biểu có thể bao gồm đăng
nhập, sinh viên đăng ký lần đầu, va sinh viên yêu cầu hỗ trợ tai chinh. Các
mô hình sử dụng có giá trị trong tất cả các giai đoạn phát triển hệ thống: 1)
trong phân tich hệ thống, mô hình sử dụng cho phép các nha phân tich hiểu
những gì ma ngƣời dùng muốn từ hệ thống mới; 2) trong quá trình lập trình,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 695
các trƣờng mô hình sử dụng giúp các lập trình viên hiểu những luồng logic
của hệ thống; va 3) trong thử nghiệm, trƣờng hợp sử dụng có thể hình thanh
cơ sở của các script kiểm tra sơ bộ.
19.3.4 Thuật ngữ tham khảo
Every organization is unique in that it has its own vocabulary.
Systems people are also unique in that they often use a lingo
incomprehensible to most end users. A ―dictionary‖ of terms used is
beneficial in clearing up any misunderstandings.
Mọi tổ chức đều sử dụng những thuật ngữ của riêng mình . Những
ngƣời lam hệ thống thƣờng sử dụng một ngôn ngữ ngƣời dùng cuối không
thê hiêu. Một từ điển những từ ngữ nhƣ thế đƣợc sử dụng sẽ có lợi trong
việc sẽ có tác dụng loại bỏ các hiểu lầm.
19.3.5 Từ điển dữ liệu
Although a data dictionary (DD) is usually included in system design
specification (SDS), if it is not, it should be included here. An excerpt of a
DD can be seen in Exhibit 19-7 and in Appendix K. A data dictionary is
―terms of reference‖ for the data used in the system. It describes database,
tables, records, fields, and all attributes such as length and type (i.e.,
alphabetic, numeric). The DD also should describe all edit criteria such as
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 696
the fact that social security numbers must be numeric and must contain nine
characters.
Một từ điển dữ liệu (DD) thƣờng đƣợc bao gồm trong đặc điểm kỹ
thuật trong thiết kế hệ thống (SDS), nếu nó không có thì cần đƣợc đƣa vao
đây. Một trich đoạn của một DD có thể đƣợc nhìn thấy trong Hình 19-7 tại
Phụ lục K. Một từ điển dữ liệu la tập những thuật ngữ cho các dữ liệu đƣợc
sử dụng trong hệ thống. Nó mô tả cơ sở dữ liệu, bảng biểu, bản ghi, trƣờng
dữ liệu, va tất cả các thuộc tinh nhƣ chiều dai va kiểu (tức la chữ, số). Các
DD cũng nên miêu tả tất cả các sửa các tiêu chi dữ liệu hợp lệ, vi dụ nhƣ số
CMND phải gồm 9 chữ số.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 697
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 698
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 699
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 700
19.3.6 Tai liệu về chƣơng trình / Thanh phần / Đối tƣợng
Aside from flowcharts, unless the programmer is using an automated
CASE tool that generates documentation, the programmer should provide
the following documentation: 1) control sheet (see Appendix N); 2)
comments within the program (Exhibit 19-8); 3) textual description of what
the program is doing, including pseudocode, as shown in Exhibit 19-8.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 701
Ngoài lƣu đồ, trừ khi lập trình viên đang sử dụng một công cụ tự
động tạo ra tai liệu, lập trình viên nên cung cấp các tai liệu sau đây: 1) bảng
điều khiển (xem Phụ lục N); 2) chú thich trong chƣơng trình (19-8); 3) văn
bản mô tả chƣơng trình lam gì, bao gồm cả mã giả, nhƣ thể hiện trong
Exhibit 19-8.
19.3.7 Các tai liệu trình bay
It is likely that, at some point, the system team will be asked to make
a presentation about the system. All presentation paraphernalia such as
slides, notes, etc. should be included in the system documentation.
Có lẽ rằng, tại một số điểm, đội ngũ hệ thống sẽ đƣợc yêu cầu thực
hiện một bai trình bay về hệ thống. Tất cả các tai liệu trình bay nhƣ slide,
ghi chú, vv nên đƣợc bao gồm trong tai liệu hệ thống.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 702
19.3.8 Các trƣờng hợp kiểm tra (Phụ lục O) va kế hoạch kiểm tra
Although use cases form the basis of the initial set of test cases, they
are a small subset of test cases. An entire chapter has been dedicated to
software testing, so we will not prolog the discussion here. Suffice it to say
that any and all test cases used in conjunction with the system — along with
the results of those test cases — should be included in the system
documentation.
Mặc dù các mô hình sử dụng tạo ra cơ sở của các thiết lập ban đầu
của các trƣờng hợp kiểm tra, chúng chỉ la một tập hợp nhỏ các trƣờng hợp
thử nghiệm. Toan bộ 1 chƣơng đã danh cho việc thử nghiệm phần mềm, vì
vậy chúng tôi sẽ không thảo luận tại đây. Nhƣ thế đủ để thấy rằng bất kỳ va
tất cả các trƣờng hợp kiểm tra - cùng với các kết quả - nên đƣợc bao gồm
trong các tai liệu của hệ thống.
19.3.9 Tiêu chuẩn đo lƣờng
It is sad to say that most organizations do not measure the
effectiveness of their programmers. Those that do should add this
information to the system documentation. This includes a listing of all
metrics (formula) used and the results of those measurements. (This
handbook contains many chapters on metrics.) At a minimum, the weekly
status reports and management reports generated from toolsets such as
Microsoft Project should be included in the system documentation.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 703
Rất tiếc khi phải nói rằng, hầu hết các tổ chức không đánh giá hiệu
quả của các lập trình viên của họ. Những ngƣời lam việc nay nên thêm
thông tin nay tai liệu hệ thống, bao gồm một danh sách của tất cả số liệu
(công thức) đƣợc sử dụng va kết quả của những phép đo. (Cuốn cẩm nang
nay có chứa nhiều chƣơng về số liệu). Ở mức tối thiểu, các báo cáo tình
trạng hang tuần va báo cáo quản lý phát sinh từ các công cụ nhƣ Microsoft
Project nên đƣợc bao gồm trong tai liệu hệ thống.
19.3.10 Các hƣớng dẫn hoạt động
Once the system is implemented, aside from the end users that the
system was developed for, some computer support operations personnel
may be required to support this system in some way. Precise instructions
for these support personnel are mandatory and must be included in the
documentation for the system.
Một khi hệ thống đƣợc thực hiện, ngoai ngƣời dùng cuối của hệ
thống, một số nhân viên hỗ trợ hoạt động có thể đƣợc yêu cầu để hỗ trợ hệ
thống nay theo một số cách. Hƣớng dẫn chinh xác cho các nhân viên hỗ trợ
la bắt buộc va phải đƣợc bao gồm trong các tai liệu cho hệ thống.
19.3.11 Tập tin trợ giúp ngƣời dùng cuối
Most systems are built using a client/server metaphor that is quite
interactive. Most systems, therefore, provide end users with online help. A
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 704
copy of each help file should be saved as documentation. Most corporate
systems are Windows-based; hence, a Windows-style format in creating
help files (Exhibit 19-9) has become the de facto standard. Microsoft Help
Workshop is often used to assist in developing these.hlp files, which are
compiled from RTF (rich text format) files.
Hầu hết các hệ thống đƣợc xây dựng bằng cách sử dụng mô hình
máy con/máy chủ khá tƣơng tác. Hầu hết các hệ thống, do đó, cung cấp cho
ngƣời dùng cuối với sự giúp đơ trực tuyến. Một bản sao của từng tập tin
giúp đơ nên đƣợc lƣu dƣới dạng tai liệu. Hầu hết các hệ thống doanh nghiệp
dựa trên Windows, vì vậy, một định dạng kiểu Windows trong việc tạo ra
các tập tin trợ giúp (Hình 19-9) đã trở thanh tiêu chuẩn ngầm. Microsoft
Help Workshop thƣờng đƣợc sử dụng để hỗ trợ trong việc phát triển tập
tin.hlp, đƣợc biên dịch từ tập tin RTF.
19.3.12 Tai liệu hƣớng dẫn ngƣời dùng
Aside from the built-in help file, a user manual should be included in
what is provided to the end user. Increasingly, this user manual is supplied
right on the CD rather than on paper. There are two different types of end-
user manuals. One is more of an encyclopedia that explains the terms and
workings of the system when the end user has a specific question. The
second type is more of a tutorial.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 705
Ngoai việc tập tin giúp đơ, một hƣớng dẫn sử dụng nên đƣợc bao
gồm trong những gì đƣợc cung cấp cho ngƣời dùng cuối. Ngay cang nhiều
hƣớng dẫn sử dụng nay đƣợc cung cấp ngay trên đĩa CD hơn la trên giấy.
Có hai loại khác nhau của hƣớng dẫn sử dụng. Một la bách khoa toan thƣ
giải thich các thuật ngữ va hoạt của hệ thống khi ngƣời dùng cuối có một
câu hỏi cụ thể. Loại thứ hai thì la hƣớng dẫn từng bƣớc.
User tutorials are easy to develop; it is important to approach the task
step by step, going through all the motions of using the software exactly as
a user would. Simply record every button you push and key you press. As
seen in Exhibit 19-10, a table format works well documenting the use of the
SecureCRT program, which is a product of New Mexico-based Van Dyke
Software. Another advantage is that the user documentation development
process serves double duty as a functional test. As the analyst or tech writer
is developing the tutorial, he or she might just uncover some bugs.
Hƣớng dẫn ngƣời sử dụng rất dễ phát triển. Điều quan trọng la tiếp
cận nhiệm vụ từng bƣớc, duyệt qua tất cả các thao tác sử dụng phần mềm
chinh xác nhƣ cách ngƣời dùng cuối lam. Chỉ cần ghi lại mỗi nút hay phim
ma bạn nhấn. Nhƣ thấy trong Hình 19-10, một định dạng bảng tạo ra tai
liệu rất tốt sử dụng SecureCRT, một sản phẩm của New Mexico-based Van
Dyke Software. Lợi thế nữa la quá trình phát triển tai liệu hƣớng dẫn ngƣời
sử dụng phục vụ cả nhiệm vụ thử nghiệm chức năng. Khi các nha phân tich
xây dựng tai liệu hƣớng dẫn sử dụng, họ có thể phát hiện ra một số lỗi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 706
19.4 BẢO TRÌ TÀI LIỆU
In his discussion of system documentation for the article ―Tools and
Evidence‖, Scott Ambler (2002) suggests that modeling and documentation
are effective, when employed with sense and restraint, and enhance system
functionality. He makes a case that there is a need for restraint and that
models should be discarded once they have fulfilled their purpose. As a
project progresses, models are superseded by other artifacts such as other
models, source code, or test cases that represent the information more
effectively. Ambler takes a fresh approach — it is important to know what
to keep, but it is also important to know what to throw away.
Trong cuộc thảo luận của mình về hệ thống tai liệu cho bai viết
"Công cụ va chứng cứ‖, Scott Ambler (2002) cho thấy rằng mô hình hóa va
tai liệu hóa có hiệu quả khi lam việc với sự hợp lý va các rang buộc, va tăng
cƣờng chức năng hệ thống. Ông thực hiện một trƣờng hợp cần phải có rang
buộc va các mô hình cần đƣợc loại bỏ một khi đã hoan thanh nhiệm vụ. Khi
một dự án tiến hanh, các mô hình đƣợc thay thế bằng hiện vật khác nhƣ các
mô hình khác, mã nguồn, hoặc các trƣờng hợp kiểm tra ma biểu diễn thông
tin hiệu quả hơn. Ambler dùng một cách tiếp cận mới - điều quan trọng la
biết giữ những gì, nhƣng cũng rất quan trọng để biết những gì cần vứt đi.
Documentation is particularly critical for maintenance work. Code
can be mysterious to maintenance programmers who must maintain the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 707
system for years after the original system was written and the original
programmers have moved on to other jobs (Graham et al., 2000).
Tai liệu đặc biệt quan trọng cho công tác bảo trì. Các dòng code có
thể rất khó hiểu đối với các lập trình viên bảo trì, những ngƣời phải duy trì
hệ thống nhiều năm sau khi hệ thống gốc đã đƣợc viết va các lập trình viên
ban đầu đã chuyển sang công việc khác (Graham et al, 2000.).
Documentation is becoming more important. Ravi Shankar Kalakota
(1996) wrote about organizing practices in his 1996 dissertation,
―Organizing for Electronic Commerce‖. Organizing is crucial, he says, and
the problem of organizing has three distinct dimensions:
Tai liệu ngay cang trở nên quan trọng. Ravi Shankar Kalakota (1996)
đã viết về quản lý công việc trong luận án 1996 của mình, "Quản lý cho
thƣơng mại điện tử". Quản lý la rất quan trọng, ông nói, va vấn đề quản lý
có ba chiều khác nhau:
• Organizing large amounts of data and digital documents
• Organizing business processes and workflows
• Organizing computing and processing
• Quản lý một lƣợng lớn dữ liệu va tai liệu kỹ thuật số
• Quản lý các quy trình va dòng chảy nghiệp vụ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 708
• Quản lý tinh toán va xử lý
Kalakota offers resolution for each of these challenges, but for our
purposes, I will limit discussion to the specific issues.
Distributed documents must be organized such that users and
programs are able to locate, track, and use online documents. The growth of
networking brings with it a corresponding increase in the number of
documents to be organized. Current document organization techniques are
derived from techniques used in file systems and are not sufficient for
organizing the large number of heterogeneous documents that are becoming
available for various purposes.
Kalakota cung cấp giải pháp cho mỗi thách thức, nhƣng vì mục đich
của chúng ta, tôi sẽ hạn chế thảo luận các chi tiết cụ thể.
Tai liệu đƣợc phân phối phải đƣợc tổ chức sao cho ngƣời sử dụng
va các chƣơng trình có thể xác định vị tri, theo dõi, va sử dụng tai liệu trực
tuyến. Sự phát triển của mạng mang đến một sự gia tăng tƣơng ứng số tai
liệu cần quản lý. Kỹ thuật quản lý tai liệu hiện nay xuất phát từ các kỹ thuật
đƣợc sử dụng trong các hệ thống tập tin va không đủ để tổ chức số lƣợng
lớn các tai liệu không đồng nhất đang trở nên ngay cang nhiều va cho các
mục đich khác nhau.
Second, Kalakota believes that new computing forms must be
developed to process, filter, and customize online documents. He asserts
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 709
that the traditional notion of client/server computing is not sufficient to deal
with the complexity and needs of electronic commerce. Third, workflows
need to be structured to take advantage of online documents. Workflows
often dictate organization structure but are difficult to study because they
are essentially complex patterns of interaction between agents (Kalakota,
1996). We can easily characterize the variable properties of sequential
actions, but not real-time patterns for tasks occurring in parallel.
Thứ hai, Kalakota tin rằng các hình thức tinh toán mới phải đƣợc
phát triển để xử lý, lọc, va tuỳ chỉnh các văn bản trực tuyến. Ông khẳng
định rằng mô hình truyền thống client/server la không đủ để đối phó với sự
phức tạp va nhu cầu của thƣơng mại điện tử. Thứ ba, luồng công việc cần
phải đƣợc cấu trúc để tận dụng các tai liệu trực tuyến. Luồng công việc
thƣờng áp đặt cấu trúc tổ chức nhƣng lại khó nghiên cứu vì chúng la mô
hình phức tạp của sự tƣơng tác giữa các tác nhân (Kalakota, 1996). Chúng
ta có thể dễ dang xác định các thuộc tinh của các hanh động tuần tự, nhƣng
không thể lam trên các mẫu thời gian thực cho công việc diễn ra song song.
19.5 KẾT LUẬN
Documentation is an often neglected but very necessary component
of the software development life cycle (SDLC). Numerous approaches and
methods are available to software development teams to assist with the task.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 710
Most important are a commitment to documenting software, setting
standards for the organization, and making them stick, that is, adhering to
the standards.
Tai liệu la một thanh phần thƣờng bị quên lãng nhƣng rất cần thiết
cho quy trình phát triến của phần mềm (SDLC). Có nhiều phƣơng pháp va
cách tiếp cận khác nhau để hỗ trợ các đội phát triển phần mềm thực hiện
nhiệm vụ nay. Quan trọng nhất la lựa chọn phần mềm lam tai liệu, thiết lập
tiêu chuẩn cho tổ chức, va gắn kết chúng lại, nghĩa la, tôn trọng các tiêu
chuẩn.
19.6 TÀI LIỆU THAM KHẢO
Ambler, S.W. (2002). Tools and evidence. Software development.
Online.Available:
http://www.sdmagazine.com/documents/s=7134/sdm0205i/0205i.htm.
Applied Information Science International. (1996). Entity
relationship diagram. [Online]. Available:
http://www.aisintl.com/case/olais/pb96/er_model.htm.
Cook, C.R. and Visconti, M. (2000). Software system documentation
process maturity model. http://www.cs.orst.edu/~cook/doc/Model.htm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 711
Graham, C., Hoffer, J.A., George, J.F., and Valacich, J.S. (2000).
Introduction to Business Systems Analysis. Pearson Custom Publishing,
Boston.
Kalakota, R.S. (1996). Organizing for electronic commerce. DAI-A.
57/02. (From University of Phoenix Online Collection. [ProQuest Digital
Dissertations]. Publication number: AAT 9617262. Available:
http://www.apollolibrary.com:2118/dissertations/fullcit/9617262.)
Leahey, R. (2002). Doc-O-Matic 1.0: generates docs in WinHelp,
RTF, HTML or HTML Help. Delphi Informant. Online. Available:
http://www.delphizine.com/productreviews/2001/07/di200107rl_p/di20010
7rl_p.asp.
Tufflye, D. (2002). How to write, version and file software
development documentation. Online. Available:
http://tuffley.hispeed.com/tcs20006.htm.
Visconti, M.A. (1993). Software system documentation process
maturity model. DAI-B. 55/03. (From University of Phoenix Online
Collection. [ProQuest Digital Dissertations]. Publication number: AAT
9422184. Available:
http://www.apollolibrary.com:2118/dissertations/fullcit/9422184.)
Wallace, C.R. (2000). Formal specification of software using
abstract state machines. DAI-B. 61/02. (From University of Phoenix Online
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 19: Khoa học về tài liệu hóa 712
Collection. [ProQuest Digital Dissertations]. IBSN: 0–599–63514–2.
Available:
http://www.apollolibrary.com:2118/dissertations/fullcit/9959880.)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 713
CHƢƠNG 20 KHẢO SÁT VỀ NĂNG SUẤT VÀ
CHẤT LƢỢNG
Người dịch:
1. Nguyễn Tƣờng Minh
2. Nguyễn Quang Anh
3. Nguyễn Minh Hùng
4. Nguyễn Tiến Vũ
5. Nguyễn Bá Huy
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 714
Who among us does not remember the soulful tale of Alice? In her
journey through Wonderland she comes upon the Queen of Hearts who, at
one point in the fantasy, makes sport of the game of chess with live chess
pieces, including our very own Alice. The Queen makes Alice run fast, but
Alice finds that she is merely running in place…running so very fast just
tocatch up.
Không ai trong chúng ta không nhớ đến câu chuyện về Alice? Trong
chuyến đi về Xứ Sở Thần Tiên, cô ấy đã gặp Nữ Hoang Tim, at one point in
fantasy, tạo ra trò chơi với các quân cờ sống, trong đó có cả Alice. Nữ
Hoang bắt Alice chạy thật nhanh nhƣng Alice nhận ra rằng cô ấy chỉ đơn
thuần đang chạy … chạy rất nhanh để đuổi kịp.
Have productivity and quality risen? Or, like Alice, are more and
more firms merely running in place — too tired from continual day to day
operational battles or too shell-shocked from retrenching to support the new
paradigms of client/server architectures, object orientation, and Intranetsto
pay heed to TQM (total quality management)?
Có phải chất lƣợng va năng suất đang tăng nhanh? Hay chỉ nhƣ
Alice, ngay cang nhiều các hãng đang chạy đua – quá mệt mỏi với những
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 715
tranh đua ngay nối tiếp ngay hoặc la quá shell-shocked from cắt bớt để hỗ
trợ cho một kiến trúc client/server tiến hóa, hƣớng đối tƣợng,..
Many years ago, sometime in the 1920s, some social scientists were
studying the productivity of workers at a Western Electric plant in
Hawthorne, Illinois. They discovered that when they turned up the lighting,
productivity went up. They also found that when they turned down the
lighting, productivity went up again. What these social scientists found was
that when the Hawthorne workers realized that people were paying
attention to them, they started to do better work. This became known as the
―Hawthorne effect‖.
Nhiều năm về trƣớc, vao khoãng những năm 1920, một số những
nha khoa học xã hội nghiên cứu về năng suất của ong thợ ở Western
Electric Plant ở Illinois. Họ nhận thấy rằng khi tăng tia chớp thì năng suất
tăng. Họ cũng nhận thấy rằng khi giảm tia chớp, năng suất lại tăng lần
nữa.Những nha khoa học nay nhận ra rằng những con ong Hawthrone khi
chúng nhận thấy có nhiều ngƣời quan sát thì năng suất lam việc của chúng
tăng lên. Đây trở thanh hiện tƣợng Hawthorne.
Even though the jury is still out on the effects of quality programs on
the process of information technology, there is no doubt that the industry is
extremely interested in its potential. According to some industry statistics,
less than 5 percent of IT organizations are doing this sort of thing.
Eventhough TQM is strongly rooted in many industries as a whole, for
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 716
example, the 60 to 70 percent of those in manufacturing who have some
sort of quality program in place, IT tends to be a black hole.
Mặc dù vẫn chƣa có những nhận xét về chất lƣợng chƣơng trình
trong quá trình công nghệ thông tin nhƣng không có nghi ngờ nao nữa về
việc nền công nghiệp đang rất hứng thú với khả năng của nó.Dựa theo một
số những thống kê của nganh công nghiệp, không quá 5% các tổ chức tin
học đang lam việc nay.Mặc dù TQM đang bắt rễ trong nhiều nganh công
nghiệp, vi dụ nhƣ 60-70% những nganh công nghiệp chế tạo, nơi có những
chƣơng trình chất lƣợng tại chỗ, IT có xu hƣớng la ―lỗ đen‖.
However, interest in the concept is increasing. One should start off
the process by understanding a single principle — that change is painful
and lengthy. In fact, to effectuate any kind of change you need something
like a ten-year plan. Ten years is a long time, however, and management‘s
patience is short. So how can you motivate change over that time period?
Tuy nhiên sự hứng thú trong suy nghĩ đang gia tăng.Chúng ta nên bắt
đẩu quá trình bằng cách hiểu những vấn đề cơ bản nhất –sự thay đổi này
rất cực khổ va mất nhiều thời gian.Trong thực tế, nếu muốn tạo nên sự thay
đổi bạn nên có những thứ nhƣ ―kế hoạch 10 năm‖. 10 năm la khoảng thời
gian dai, tuy nhiên sự kiên nhẫn lại rất it. Vậy bạn tìm nguồn động lực nhƣ
thế nao suốt khoảng thởi gian đó?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 717
20.1 KẾ HOẠCH CHO CHẤT LƢỢNG
The secret is to make management extremely dissatisfied with the
status quo; to do that, you need to look at the cost of the status quo. One
way of accomplishing this is to examine the cost of poor quality.
Bi mật của việc nay la lam cho việc quản lý không thể chấp nhận
tình trạng hiện có. Để lam đƣợc điều nay bạn phải xem xét chi phi của tình
trạng hiện tại.Một cách để lam đƣợc việc nay đó la kiểm tra chi phi của chất
lƣợng thấp.
By answering questions such as ―what are we spending on detecting
defects?‖ and ―what are we spending on repairing defects?‖ the IT
organization can begin to accumulate the statistics it needs to make the push
for change. The data need not be hard to track; in most cases it is already
available through project management systems that track walkthroughs,
reviews, defect rates, etc. About 40 to 50 percent of the IT budget is
spenton fixing defects due to poor quality. With statistics like this, it should
be rather easy to motivate massive change.
Bằng cách trả lời các câu hỏi ―Chúng ta chi trả cái gì để tìm ra thiếu
sót?‖ và ―Chúng ta chi trả cái gì để sữa chữa thiếu sót?‖, các tổ chức tin học
co thể bắt đầu tich lũy các thống kê cần thiết để tạo động lực cho sự thay
đổi.Dữ liệu phải khó để lần dấu vết.Trong nhiều trƣờng hợp, nó phải có sẵn
trong hệ thống quản lý dự án: mức thiếu sót, bản review,…40-50% chi phí
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 718
đƣợc chi trả cho việc sữa chữa các thiếu sót bởi vỉ chất lƣợng kém.Với
thống kê nhƣ thế nay, nó sẽ dễ dang hơn cho việc tạo động lực để thay đổi.
Techniques to introduce TQM programs to the ―black hole‖ of IT
vary from company to company, but some commonalities are shown below:
• Conduct a customer satisfaction survey.
• Get management sponsorship to fix what the surveys found wrong.
• Top management needs to make a visible and personal commitment to
any quality program.
• Customers as well as suppliers need to be involved.
• Define the processes.
• Come up with ways to improve the process.
• Determine metrics to measure the improvement of the process.
Các kỹ thuật để giới thiệu TQM với ―lỗ đen‖ của IT đa dạng với các
công ty, những cách phổ biến:
• Khảo sát ý kiến ngƣời dùng
• Sữa chữa những vần đề tìm thấy từ khảo sát
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 719
• Khách Hang va Nha Cung Cấp phải cùng tham gia
• Định nghĩa rõ các quá trình.
• Đƣa ra đƣợc cách thức để cải thiện quá trình
• Đƣa ra các luật để đánh giá
In the 1990s Coopers & Lybrand, now PriceWaterhouseCoopers
after a merger, had a substantial TQM federal practice. This group focused
on taking appropriate elements of TQM and applying them to software
delivery organizations. The end result was the development of a specific
methodology for doing that. This methodology provided a framework for
managing continuous improvement for software delivery.
Năm 1990, Cooper va Lybrand tập trung lấy những yếu tố quan
trọng của TQM va áp dụng nó vao các tổ chức sản xuất phần mềm.Kết quả
cuối cùng la sự phát triển một phƣơng pháp mới. Phƣơng pháp nay cung
cấp khung quản lý sự cải thiện liên tục cho sản xuất phần mềm.
This group had first-hand experience of the endemic behaviors in
most of us attracted to this business that are contrary to the quality tenets of
TQM. One of these is the ―code or die‖ syndrome. The greater the deadline
pressures, the more we focus on ―I got to code right now‖. This is a quality
problem because it speaks to the fact that we are generally product oriented
and when the pressure is on we fundamentally have no faith in the process.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 720
However, TQM says if you want to improve the quality of the product, you
focus on improving the process. So this is a behavior that gets us into
trouble every time. In order to combat behaviors that seem to sabotage the
drive toward quality, Coopers & Lybrand modified their four-phase TQM
methodology to suit the tenets of software engineering.
Nhóm nay có kinh nghiệm về cách cƣ xử đặc trƣng của chúng ta khi
kết dinh với công việc cái ma liên quan đến xu hƣớng chấ lƣợng của
TQM.Một trong số đó la ―code or die‖.Áp lực deadline cang lớn, chúng ta
cang tập trung vao việc ―Chúng ta phải code ngay bây giờ‖.Đó la về vấn đề
chất lƣợng bởi vì nó nói đến việc một cách tổng quát, chúng ta la những sản
phẩm hƣớng đối tƣợng. Khi áp lực đến gần, một cách không chủ ý chúng ta
không có niềm tin vao quá trình thực hiện.Tuy nhiên, TQM nói rằng nếu
muốn cải thiện chất lƣợng sản phẩm thì phải tập trung vao cải thiện quá
trình lam.Vì vậy cách ứng xử nay thƣờng xuyên đƣa chúng ta vao những
tình huống rắc rối. Cooper với Lybrand đã đƣa ra phƣơng pháp 4-câu TQM
phù hợp với công nghệ phần mềm
The centerpiece of the assessment phase of the Coopers & Lybrand
methodology is development of metrics by which the quality baseline is
assessed and by which improvements over time can be measured. There is
no specific list of metrics; the choice of metrics depends upon the client
because quality is different things for different people. What you think are
key quality issues should drive what you are trying to measure. In order to
determine the appropriate metrics for any particular client, Coopers
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 721
consultants utilized a method first developed by NASA and then put into
the public domain. Called goal–question–metric (GQM), it is a disciplined
technique used to refine from key quality issues their individual
components and, ultimately, the metrics that might be derived from them.
Assesment la sự phát triển các luật ma bằng các luật nay những chất
lƣợng căn bản đƣợc tiếp cận va sự cải tiến về thời gian đƣợc đo đạc.Không
có những luật cụ thể, sự lựa chọn luật tùy thuộc vao client bởi vì chất lƣợng
tùy thuộc vao quan điểm của mỗi ngƣời.Những cái gì ma bạn nghĩ la yêu
cầu chất lƣợng chinh có thể định hƣớng cách bạn đánh giá.Để đƣa ra đƣợc
cách đánh giá cho bất kỳ client nao, Cooper va Lybrand đã lấy phƣơng
pháp đƣợc phát triển bởi NASA đƣa vao sữ dụng gọi la GQM(Goal
Question Metric). Phƣơng pháp nay đƣa ra các yêu cầu chất lƣợng khóa và
những yêu cầu chất lƣợng dẫn xuất từ đó.
The second phase of the Coopers methodology, planning, is based
on what we see today, our vision, or where we want to take ourselves. Here
we look at the highest priority quality issues and think about what we want
to do to build ourselves in that direction. The ―plan‖ developed is actually a
short list of things to do over the next six months. This is actually a list of
―low-hanging fruit‖— the list must contain the greatest near-term opportu
nities to increase quality.
Planning dựa trên những thứ chúng ta thấy ngay nay hoặc la nơi
chúng ta muốn đến.Ở đây chúng ta xem xét vấn đề chất lƣợng có độ ƣu tiên
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 722
cao nhất va nghĩ xem chúng ta sẽ thực hiện theo hƣớng đó thế nao. ‖Kế
hoạch‖sẽ la danh sách những công việc sẽ lam trong vòng 6 tháng tới.Danh
sách phải có cơ hội gần có thể cải thiện chất lƣợng.
The third phase, process improvement, is actually a phase of
experimentation. It is here that the low-hanging fruit can be picked, and if
determined not to have any nutritive value to the process, tossed quickly
aside. Finally, in the fourth phase of the Coopers TQM methodology,
integration, the best things from these experiments are built into the
organization.
Progress improvement thực chất nói về kinh nghiệm. Ở đây những
―low-hanging fruit‖ đƣợc chọn va nếu đã quyết định không chọn những
thực phẩm dinh dƣơng thi hãy nhanh chóng đế nó sang một bên.
Intergration chọn lựa những thứ tốt nhất từ kinh nghiệm để xây dựng
vao tổ chức
20.2 QUÁ TRÌNH ĐÁNH GIÁ
Organizations that apply measure productivity and quality do so for
the same reasons. Software is becoming more complex and user demands
and expectations are increasing. The need to develop better software, faster,
translates to a need to quantify the project‘s progress and the system‘s
attributes.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 723
Những tổ chức áp dụng sự đánh giá về chất lƣợng va năng suất đều
có cùng mục đich.Phần mềm ngay cang trở nên phức tạp, yêu cầu ngƣời
dùng ngày càng cao. Nhu cầu phát triển phần mềm nhanh chóng hơn, tốt
hơn chuyển thanh nhu cầu định lƣợng lại thời gian thực hiện phần mềm va
các thuộc tinh hệ thống.
A variety of productivity and quality metrics are available; choosing
the most appropriate one can be as tricky as picking winning lottery
numbers:
• Lines of code
• Pages of documentation
• Number and size of texts
• Function count
• Variable count
• Number of modules
• Depth of nesting
• Count of changes required
• Count of discovered defects
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 724
• Count of changed lines of code
• Time to design, code, test
• Defect discovery rate by phase of development
• Cost to develop
• Number of external interfaces
• Number of tools used and why
• Reusability percentage
• Variance of schedule
• Staff years of experience with team
• Staff years of experience with language
• Staff years of experience with software tools
• MIPs per person
• Support to development personnel ratio
• Nonproject to project time ratio
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 725
Có nhiều tiêu chi đánh giá, chọn ra tiêu chi thich hợp nhất cũng
giống nhƣ chọn ra ngƣời thắng cuộc trong cuộc thi bốc thăm:
• Những dòng code
• Những trang tai liệu
• Kich thƣớc dữ liệu text
• Số Function
• Số Biến
• Số lƣợng Modules
• Độ sâu của Nesting
• Số lƣợng thay đổi yêu cầu
• Số lƣợng sai sót tìm thấy
• Số lƣợng dòng code thay đổi
• Thời gian thiết kế, code, kiểm tra
• Mức độ sai sót tìm thấy
• Chi phi phát triển
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 726
• Số lƣợng giao diện
• Số lƣợng tool sử dụng va tại sao
• Khả năng tái sử dụng
• Kinh nghiệm về nhóm củ nhân viên
• Kinh nghiệm về ngôn ngữ của nhân viên
• Kinh nghiệm về sử dụng các công cụ phần mềm
• MIPs per person
Measuring does have its detractors. Many ―artists‖ still refuse to be
measured. Ironically, measuring often produces the unusual effect of
increasing productivity only in the areas that are measured.
Sự đánh giá có thể có những bất lợi. Có rất nhiều ‖nghệ sĩ‖ tránh bị
phê bình. Sự đánh giá thƣờng tạo ra năng suất chỉ trong phạm vi đƣợc đánh
giá.
In most situations, the term ―metric‖ is used in conjunction with the
pro gramming process only. However, programming is the smallest part of
the systems development life cycle. For an effective measurement program,
each component of the cycle must include its own measures — or a mea
sure must be used that encompasses the entire spectrum of development.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 727
Trong nhiều trƣờng hợp, thuật ngữ‖tiêu chi‖ chỉ đƣợc sữ dụng nhƣ
sự kết nối quá trình lập trình..Tuy nhiên lập trình chì la một phần nhỏ trong
vòng đời phát triển hệ thống.Để có chƣơng trình đánh giá chinh xác,mỗi
thanh phần phải có những đánh giá của riêng nó.
The software development process is one of the most complex
processes a human can perform; it includes numerous formidable tasks.
Although variations abound in the number of executable steps in a life
cycle, most IT organizations perform the same functionality.
Quá trình phát triển phần mềm la một trong những quá trình phức tạp
nhất ma con ngƣời có thể thực hiện đƣợc.Nó bao gồm nhiều công việc ghê
gớm.Mặc dù có rất nhiều cách để phát triển trong vòng lặp phát triển, đa số
các tổ chức đều thực hiện nhƣ nhau.
Metrics must consider several esoteric items, such as user
involvement, which is positively correlated with productivity increases.
Human factors must also be taken into account, such as the square footage
allocated per programmer. Capers Jones, a prominent researcher in this
field, has shown that a full 78 square feet of floor space increases
programmer productivity more than any application development tool.
Design, programming, and quality factors must also be weighed.
Các tiêu chi có rất nhiều thanh phần riêng tƣ, vi dụ nhƣ sự tham gia
của ngƣời dùng cái ma liên kết chặt chẽ đến việc lam tăng năng suất.Yếu tố
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 728
con ngƣời cũng đƣợc xem xét đến. Thiết kế, lập trình va nhân tố chất lƣợng
cũng đƣợc xem xét đến.
Quality measurements are frequently overlooked in the race to imple
ment on or before deadline. However, no matter what the time pressure,
certain measures undertaken seriously can enhance the quality of output of
any software investment. The following matrix has proven useful when
filled out by end users:
Đánh giá về chất lƣợng luôn để mắt đến đến quá trình trƣớc khi gặp
deadline.Tuy nhiên, dù áp lực có nhiều nhƣ thế nao, sự đánh giá đúng đắn luôn
ảnh hƣởng đến chất lƣợng đầu ra của bất kỳ sự đầu tƣ phần mềm nao.. Những
câu hỏi sau tỏ ra hiệu quả khi đƣợc ngƣời dùng đánh giá:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 729
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 730
Measurement of quality is often thought of as a manufacturing
process. Computer companies that manufacture hardware and software
usually apply metrics to the manufacture of both. Digital Equipment,
acquired by Compaq, which itself was acquired by HP in 2002, was famous
for its software quality controls. DEC ran upward of 22,000 quality checks
on the VAX Cobol compiler (Compaq recently retired the VAX computer
in favor of its Alpha server (http://www.compaq.com/alphaserver/vax/).
With 22,000 tests, it was impossible to test the compiler thoroughly, so
DEC wrote VaxScan, which looked at many micro-oriented measures such
as rate of change and how much the program was tested. It also measured
the introduction of new errors.
Sự đánh giá về chất lƣợng thƣờng đƣợc cho la quá trình công nghiệp.
Những công ty máy tinh sản xuất phần mềm va phần cứng thƣờng áp dụng
tiêu chi để đánh giá cả hai.
20.3 ĐỘ ĐO GỐC
Those who measure most often use a simple source-lines-of-code
(SLOC) metric. With this metric, however, there is room for variation. In
their 1986 book, Software Engineering Metrics and Models, published by
the Benjamin/Cummings Publishing Company, Conte, Dunsmore, and Shen
proposed this definition of SLOC:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 731
A line of code is any line of program text that is not a comment or
blank line, regardless of the number of statements or fragments of
statements on that line. This specifically includes all lines containing
program headers, declarations and executable and nonexecutable
statements. The SLOC metric is often further redefined into distinguishing
the number of noncomment source lines of code (NCSLOC) from the lines
of code containing comment statements (CSLOC).
Những ngƣời đánh giá thƣờng sử dụng nhiều nhất la SLOC(source-
line-of-code).Với hệ thống nay, tuy nhiên, có chỗ cho sự đa dạng.Trong
cuốn sách năm 1986, ―Software Engineering Metrics and Models” xuất bản
bởi Benjamin/Cummings Publishing Company, Conte, Dunsmore, and
Shen đã định nghĩa SLOC: ―Line of code la những dòng chƣơng trình
không phải la dòng ghi chú hoặc để trống. Bao gồm tất cả các dòng header,
giải thich, những câu biên dịch va không biên dịch đƣợc‖. Đƣợc định nghĩa
va chia lam 2 loại NCSLOC(noncomment source line of code) va CSLOC
(comment source line of code).
Along with SLOC measurements, the weekly time sheet provides
other gross statistics often used for productivity measurement. The total
number of labor hours expended, divided by the total number of NCSLOC,
provides an overall statistic that can be used to compare productivity
fromproject to project.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 732
Bên cạnh SLOC, những bảng thời gian tuần cung cấp những thống
kê cần thiết cho sự đánh giá.Tổng thời lƣợng lam việc chia cho tồng số
NCSLOC, cung cấp thống kê có thể sử dụng để so sánh năng suất dự án nay
vớ dự án khác.
One problem with the SLOC measurement is that it does not take
into account the complexity of the code being developed or maintained.
Lines of code and man-months hide some very important things. For
example, the SLOC measurement for a name and address file update
program mightbe 600 lines of code per day. On the other hand, the output
for software that tracks satellites might be in the range of 40 to 50 lines of
code per day. To look at this output on a purely gross statistical level, one
would con clude that the name and address project was more productive
and efficient than the satellite project. This conclusion would be wrong.
Starting from this base, two researchers at the Massachusetts
Institute of Technology‘s Center for Information Systems Research in
Cambridge, Massachusetts, examined this complexity issue. Chris F.
Kemerer and Geoffrey K. Gill studied the software development projects
undertaken by an aerospace defense contracting firm from 1984 to 1989.
The Kemerer and Gill team began their research by reviewing the
original measure for complexity as developed by Thomas McCabe, now
president of McCabe & Associates, a Columbia, Maryland, consulting
group, inhis article, ―A Complexity Measure‖. McCabe proposed that a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 733
valid measurement of complexity would be the number of possible paths in
a software module. In 1978, W.J. Hansen in his article, ―Measurement of
Program Complexity by the Pair‖, interpreted McCabe‘s mathematical
formula into four simple rules that would produce a numerical measure of
complexity (i.e., the higher the number, the more complex):
• Add 1 for every IF, case, or other alternate execution construct.
• Add 1 for every iterative DO, DOWHILE, or other repetitive construct.
• Add 2 less than the number of logical alternatives in a case.
• Add 1 for each AND or OR in an IF statement.
Một vấn đề với cách đánh giá SLOC la nó không đƣa vao tai khoản
sự phức tạp của những dòng code đƣợc phát triển hay duy trì. Những dòng
code và man-months che giấu những điều rất quan trọng. Vi dụ, cách đo
đạc SLOC cho chƣơng trình cập nhật tên va địa chỉ có thể có 600 dòng
code 1 ngay. Mặt khác, đầu ra của phần mềm lƣu vết vệ tinh có thể trong
khoảng 40-50 dòng code 1 ngay. Xem xét đầu ra nay ở mức độ thống kế
chéo thuần túy, 1 ngƣời có thể kết luận rằng đối tƣợng tên va địa chỉ hiệu
quả hơn dự án về vệ tinh.Nhận định nay có thể sai. Bắt đầu từ điều nay, 2
nha nghiên cứu ở học viện the Massachusetts Institute of Technology‘s
Center for Information Systems Research in Cambridge,Massachusetts đã
nghiên cứu về vấn đề phức tạp nay.. Chris F. Kemerer and Geoffrey nghiên
cứu về dự an phát triển phẩn mềm từ năm 1984 đến 1989. Nhóm bắt đầu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 734
nghiên cứu bằng cách xem xét lại những đánh giá nguyên mẫu cho sự phức
tạp đƣợc phát triển bởi ThoMas McCabe, hiện nay la chủ tịch của McCabe
& Associates, a Columbia, Maryland trong bài báo ―A Complexity
Measure‖. McCabe nhận định rằng một sự đánh giá chinh xác về độ phức
tạp la số lƣợng những con đƣờng có thể dùng trong module phần mềm.
Năm 1978 W.J. Hansen trong bai báo, ―Measurement of Program
Complexity by the Pair‖, đã diễn tả lại công thức phức tạp của ông
bằng 4 quy luật.
• Cộng 1 cho mỗi IF,CASE,hoặc những cấu trúc thực thi thây thế khác.
• Cộng 1 cho mỗi lần lập DO, DOWHILE, hoạc những cấu trúc lập khác
• Cộng 2 it số lƣợng thây thế logic trông mỗi case.
• Cộng 1 cho mỗi AND hoặc OR trong 1 câu lệnh IF.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 735
Hewlett Packard TQC Metrics
Chuẩn đo Đich đến
Thời gian hoan vốn Thời gian cho tới khi chi phi
phát triển đƣợc bù đắp bởi lợi nhuận
Thời gian đến thị trƣờng Các biện pháp đáp ứng va khả
năng cạnh tranh thời gian dự án phát
triển cho tới khi bán ra thị trƣờng
Tiến độ tye lệ Các biện pháp chinh xác của
lịch trình,lên kế hoạch cho thời gian
phát triển thực tế
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 736
Post-release defect density Các biện pháp hiệu quả của
quá trình thử nghiệm,tổng số khiếm
khuyết trong báo cáo 12 tháng đầu
tiên sau khi sản phẩm phát hanh
Tỷ lệ doanh thu Các biện pháp tinh thần,tỷ lệ
phần trăm nhân viên còn lại
Đao tạo Các biện pháp đầu tƣ,phát
triển sự nghiệp,số giờ trong một năm
The results of the Kemerer and Gill study showed that increased
software complexity leads to reduced productivity. They recommended
using more experienced staff and reducing complexity of the individual
software module. To reduce complexity, they suggest establishing a
complexity measure that could be in use as the code is written and then
adhering to this preset standard.
Kết quả của Kemerer and Gill nghiên cứu cho thấy sự tăng lên của
sự phƣớc tạp phần mềm dẫn tới khả năng sản xuất giảm,Họ đề nghị sử dụng
đội ngũ nhân viên giau kinh nghiệm hơn,giảm tinh phƣớc tạp của các đơn
vị đo phần mềm riêng.Để giảm phƣớc tạp,họ đề nghị thiết lập một biện
pháp phƣớc tạp có thể sử dụng nhƣ la mã va sau đó tuân thủ cái chuẩn đã
đƣợc đặt trƣớc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 737
20.4 CÁCH CỦA HP
Quality and productivity have been an explicit part of Cupertino,
Califor nia-based, Hewlett Packard‘s (HP) corporate objectives. To help
develop and utilize company-wide metrics, HP created the software metrics
council. Today, dozens of productivity and quality managers within HP
perform a variety of functions, from training to communicating the best
software engineering practices to establishing productivity and quality
metrics.
HP đã tiếp nhận phƣơng pháp gọi la ―kiểm soát toan bộ chất lƣợng‖
(TQC – total quality control), một nguyên tắc cơ bản của phƣơng pháp nay
la tất cả các hoạt động của công ty có thể đƣợc nghiên cứu kĩ lƣơng trong
những lĩnh vực liên quan. Các chuẩn có thể đƣợc gán cho mỗi quá trình để
đánh giá tinh hiệu quả.
HP has adopted a methodology called total quality control (TQC). A
fun damental principle of TQC is that all company activities can be
scrutinized in terms of the processes involved; metrics can be assigned to
each process to evaluate effectiveness. HP has developed numerous
measurements, as shown in Exhibit 20-1.
The TQC approach places software quality and productivity
assessment high on the list of software development tasks. When projects
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 738
are first defined, along with understanding and evaluating the process to be
automated, the team defines the metrics to be used to measure the process.
Cách tiếp cận TQC đặt chất lƣợng phần mềm va đánh giá năng suất
cao nhất trong những tác vụ của việc phát triển phần mềm. Khi những dự
án lần đầu tiên đƣợc phát triển, cùng với việc hiểu va đánh giá quá trình
một cách tự động, toan đội phát triển phải đề ra những tiêu chuẩn để đánh
giá cả quá trình.
When HP decided to revolve the future of the company around
Riscbased architecture in the 1990s, software reliability was deemed
critical. The development of the systems software was the largest
development effort in HP‘s history, and the first that required multiple
divisions to produce software that would be combined into a single
software system.
Khi HP quyết định xác định tƣơng lai của công ty vao kiến trúc Risc
vao những năm 1990, độ tin cậy của phần mềm đƣợc cho la điều kiện tiên
quyết. Sự phát triển của những hệ thống phần mềm la những nỗ lức lớn
nhất trong lịch sử HP, va điều đầu tiên yêu cầu sự phân chia phức tạp để
sản xuất phần mềm đó la sự kết hợp vao trong một hệ thống phần mềm
(???)
Charles A. Krueger, a professor at the University of Wisconsin in
Madison, has pointed out the productivity paradox of budget versus getting
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 739
to market: is it more important to stay within the targeted confines of
money allocated, or to get the product out on time? He quotes a McKinsey
& Co. study indicating that going over budget by 50 percent and getting a
product out on time reduces profits by only 4 percent. Staying on budget
and getting to market five months late reduces profits to a third. Krueger
insists that productivity is really a measure of how successfully you achieve
your results.
Charles A. Krueger, giáo sƣ đại học Wisconsin ở Madison đã chỉ ra
sự nghịch lý: việc phân phối ngân quỹ có quan trọng hơn việc phát hanh sản
phẩm ra đúng thời gian hay không? Nghiên cứu đã chỉ ra rằng chi tiêu vƣợt
ngân quỹ 50% va phát hanh sản phẩm trễ chỉ giảm lợi nhuận 4%. Giữ đúng
ngân quỹ va phát hanh sản phẩm trễ 5 tháng thì lợi nhuận giảm đi 1/3.
Krueger quả quyết rằng năng suất thực sự la 1 thƣớc đo độ thanh công đối
với sản phẩm của bạn.
Hewlett-Packard came to the same conclusion as Krueger, so the
com pany insisted on reliable software and delivery on time. HP established
the systems software certification program to ensure measurable, consistent,
high-quality software through defining metrics, setting goals, collecting and
analyzing data, and certifying products for release. This program developed
four metrics for the Risc project:
Hewlett-Packard có cùng kết luận với Krueger, vì vậy công ty khẳng
định trên việc phần mềm đáng tin cậy va phát hanh đúng thời điểm. HP
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 740
thực thi chƣơng trình chứng nhận hệ thống phần mềm để đảm bảo cho một
hệ thống phù hợp va có chất lƣợng cao thông qua việc định nghĩa các
chuẩn, đặt ra mục tiêu, thu thập va phân tich dữ liệu, chứng nhận sản phẩm
để phát hanh. Chƣơng trình nay phát triển 4 chuẩn cho dự án Risc:
• Breadth Ñ measures the testing coverage of user-accessible and internal
functionality of the product.
• Depth Ñ measures the proportion of instructions or blocks of
instructions executed during testing.
• Reliability Ñ measures the stability and robustness of a product and its
ability to recover gracefully from error conditions.
• Defect density Ñ measures the quantity and severity of reported defects
and a product‘s readiness.
• Rộng: dự tinh việc kiểm tra mức độ bao phủ của những ngƣời dùng có
thể sử dụng đƣợc va các chức năng bên trong của sản phẩm.
• Sâu: dự tinh những phần chỉ dẫn hoặc những khối chỉ dẫn đƣợc thực thi
trong suốt quá trình kiểm tra.
• Độ tin cậy: đo lƣờng tinh ổn định của phần mềm cũng nhƣn khả năng
phục hồi trong điều kiện lỗi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 741
• Mật độ khuyết điểm: dự tinh số lƣợng va tinh nghiêm trọng của những
báo cáo khuyết điểm va sự sẵn sang của sản phẩm.
HP‘s results were impressive. Defects were caught and corrected
early, when costs to find and fix are lower. Less time was spent in the costly
system test and integration phases, and on maintenance. This resulted in
lower overall support costs and higher productivity. It also increased quality
for HP‘s customers.
HP‘s success demonstrates what a corporate-wide commitment to
productivity and quality measures can achieve. The commitment to these
gains was so strong that HP invested in full-time productivity and quality
managers, which is indeed unique.
Kết quả của HP la rất ấn tƣợng. Những lỗi đƣợc phát hiện va sửa
chữa kịp thời, trong khi chi phi để tìm va sửa lỗi la thấp. Tốn it thời gian
hơn cho hệ thống kiểm thử va duy trì. Kết quả nay đã nâng cao năng suất va
giảm chi phi cho việc phát triển sản phầm, cũng đồng thời nâng cao chất
lƣợng cho những khách hang của HP.
20.5 THE FUNCTION POINT ADVANTAGE
In 1983, A.J. Albrecht, with IBM at that time, first proposed the
function point concept in a paper called ―Software Function, Source Lines
of Code and Development Effort Prediction: a Software Science
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 742
Validation‖. This metric is a combination of metrics that assesses the
functionality of the development process (see Appendix S for a more
detailed description).
Vao năm 1983, A.J.Albrecht, lam việc cho IBM trong thời gian đó,
lần đầu tiên đề xuất khái niệm ―function point‖ trong một bai báo có tựa đề
―Phần mềm chức năng, những dòng mã nguồn va việc dự đoán quá trình
phát triển: một phần mềm đánh giá khoa học‖ (Software Function, Source
Lines of Code and Development Effort Prediction: a Software Science
Validation.). Chuẩn nay la một sự kết hợp giữa những tiêu chuẩn đánh giá
chức năng của quá trình phát triển (xem phụ lục S).
The function-point metric assesses the functionality of the software
development process by first counting the number of external inputs
(transaction types), external outputs (report types), logical internal files
(nonphysical), external interface files (files accessed by the application but
not maintained or updated by it), and external inquiries.
Những tiêu chuẩn Function Point đánh giá chức năng của quá trình
phát triển phần mềm trƣớc tiên bằng việc tinh toán số lƣợng những dữ liệu
nhập từ ngoai (giao tác) va kết quả xuất ra ngoai (báo cáo), tập tin logic bên
trong, tập tin giao diện bên ngoai (những tập tin đƣợc truy xuất bởi ứng
dụng nhƣng không đƣợc duy trì hoặc cập nhật bởi nó), va những yêu cầu ở
ngoài.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 743
Using a set of standards for assessing complexity, these components
are then classified as relatively low, average, or high. Once the total number
of function counts is computed according to a statistical formula, the second
step assesses the impact of 14 general system characteristics:
• Data communications
• Distributed functions
• Performance
• Heavily used configuration
• Transaction rate
• Online data entry
• End-user efficiency
• Online update
• Complex processing
• Reusability
• Installation ease
• Operational ease
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 744
• Multiple sites
• Facilitates change
Sử dụng một tập những tiêu chuẩn để đánh giá độ phức tạp, những
nhân tố nay sau đó đƣợc phân loại nhƣ tƣơng đối thấp, trung bình hay cao
(ảnh hƣởng của nhân tố đánh giá độ phức tạp). Sau khi tinh toán tổng số
chức năng dựa trên các công thức thống kê, bƣớc thứ 2 la đánh giá tác động
của 14 đặc trƣng chung của hệ thống:
• Giao tiếp dữ liệu.
• Các chức năng phân phối.
• Biểu diễn.
• Sử dụng nhiều cấu hình.
• Tỷ lệ giao tác.
• Trƣờng dữ liệu trực tuyến.
• Hiệu quả ngƣời dùng cuối.
• Cập nhật trực tuyến.
• Độ phức tạp của xử lý.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 745
• Khả năng tái sử dụng.
• Dễ cai đặt.
• Dễ hoạt động.
• Nhiều trang.
• Thay đổi dễ dang.
These values are then summed to compute what is known as the
value adjustment factor (VAF). The VAF is then multiplied with the total
function count to create the number of function points.
Những giá trị nay sau đó đƣợc cộng lại để tinh toán những gì đƣợc
biết những la những giá trị điều chỉnh yếu tố. Giá trị điều chỉnh yếu tố sau
đó đƣợc nhân với tổng số chức năng để cho ra tổng số function point.
The one aspect of function-point measurement programs that makes
them so valuable is the presence of large databases of information that
companies can use for comparison. SPR (www.spr.com), for example,
maintains a database of over 9000 completed projects. It is used to compare
an organization to industry norms — i.e., a benchmark.
Một phƣơng diện khác của chƣơng trình đánh giá function point ma
lam cho chúng có giá trị hơn la sự hiện diện của những cơ sở dữ liệu thông
tin lớn ma những công ty có thể sử dụng để so sánh. Vi dụ SPR duy trì một
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 746
CSDL của hơn 9000 dự án đã hoan tất. Những cái nay đƣợc sử dụng để so
sánh một tổ chức của những chỉ tiêu công nghiệp.
Aside from these external comparative databases, many in-house
databases have been painstakingly accumulated. As Kemerer states in his
thesis, ―from a control perspective, organizations using a variant method
would have difficulty in comparing their function-point productivity rates to
those of other organizations that switched methods; the new data might be
sufficiently inconsistent as to render trend analysis meaningless‖.
Bên cạnh những CSDL so sánh ngoai đó, nhiều dữ liệu nội bộ đã
đƣợc cẩn thận tich lũy. Nhƣ Kemerer đã trình bay trong luận cƣơng của ông
ta: ―từ một phƣơng diện điều khiển, những tổ chức sử dụng một phƣơng
pháp không ổn định thƣờng gặp phải những khó khăn trong việc so sánh tỷ
lệ năng suất function point với những tổ chức dùng những phƣơng pháp
chuyển đổi, dữ liệu mới có vẻ đầy đủ nhƣng không phù hợp cũng nhƣ
những biểu đồ phân tich vô nghĩa‖.
Most people are using the function point metric because it offers the
only metric that comes close to matching the economic definition of
productivity — costs or services produced per unit of labor and expense. In
the 1990s, using Capers Jones‘ SPR research base of 400 studied
companies, the national average was calculated to be five function points
per person-month; IT groups averaged eight function points per person
month. These numbers can dramatically increase with tool usage to the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 747
degree that it is possible to achieve 65 function points per person-month
with a full application tool environment and reusable code. This metric will
decrease when the development environment is new, but will regain
momentum when familiarity with the tool set increases.
Hầu hết những ngƣời sử dụng chuẩn function point bởi vì nó nó đƣa
ra chỉ những tiêu chuẩn ma gần với định nghĩa năng suất trong kinh tế - giá
cả va dịch vụ sản xuất đƣợc trên mỗi đơn vị lao động va chi phi. Vao thập
niên 90, việc sử dụng nghiên cứu SPR của Capers Jones đã đƣợc xem xét
trong 400 công ty, trung bình quốc gia tinh đƣợc la 5 function point trên
một ngƣời – tháng. Lam việc theo nhóm la 8 function point trên một ngƣời
– tháng. Những con số nay có thể tăng một cách nhanh chóng với việc áp
dụng những công cụ môi trƣờng ứng dụng va mã sử dụng lại. Tiêu chuẩn
nay sẽ giảm nếu môi trƣờng ứng dụng la mới, nhƣng sẽ tăng lên nhanh
chóng ngay sau đó.
American Management Systems was an early believer in the
functionpoint concept. With over 2200 systems professionals supporting 28
product lines, AMS needed a methodology that worked. The company had
been measuring productivity for years, but found that its traditional metrics
of lines of code and work-months was hiding some very important
information: not all work-months are created equal. The problem was that
there are experienced people and not so experienced people, expensive
people and not so expensive people. If the company could find a way of
optimizing this mix, then AMS would find increased productivity. To this
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 748
end, AMS needed a measure that would foster economic productivity.
Function points filled the bill.
Hệ thống quản lý của ngƣời Mỹ đã sớm đặt niềm tin vao khái niệm
function point. Với hơn 2200 hệ thống chuyên nghiệp hỗ trợ 28 dòng sản
phầm, AMS cần một phƣơng pháp lam việc. Các công ty đã đo lƣờng năng
suất lam việc trong nhiểu năm, nhƣng nhận ra rằng những tiêu chuẩn truyền
thống nhƣ số dòng code va việc – tháng đã giấu đi một vai thông tin rất
quan trọng: không phải tất cả công việc – tháng đều đƣợc tạo ra một cách
công bằng. Vấn đề la có những ngƣời có giá trị va những ngƣời không có
giá trị, có giá trị it hay nhiều. Nếu công ty có thể tìm ra một cách tối ƣu
những thứ trộn lẫn đó, thì sẽ tìm ra đƣợc cách để tăng năng suất. Cho vấn
đề nay, ASM cần một biện pháp có thể nuôi dƣơng năng suất kinh tế.
Function point có thể đáp ứng những đòi hỏi nay.
Function points were created in an era prior to the Internet and prior
to the introduction of object-oriented systems. As technologies and
methodologies must grow to meet new business requirements, so too must
our metrics.
Dr. Chris Kemerer, now at the University of Pittsburgh, but then a
professor at MIT‘s prestigious Sloan School of Management, wrote a paper
entitled, ―Towards a Metrics Suite for Object-Oriented Design‖. This paper,
authored with Dr. Shyam Chidamber, was presented at the October, 1991,
ACM OOPSLA conference (object-oriented programming, systems,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 749
languages, and applications). Kemerer asserts his position as perhaps the
first person to talk about measurement for object-oriented systems and
proposes a series of six metrics that serve to measure the depth and breath
of object-oriented design:
Function point đƣợc tạo ra trong thời đại thiên về Internet va việc
giới thiệu các hệ thống hƣớng đối tƣợng. Khi những kĩ thuật va những
phƣơng pháp phát triển để theo kịp các yêu cầu về kinh tế thì cũng có nhiều
việc phải lam với các tiêu chuẩn.
Giáo sƣ Kemerer đã viết một bai báo với tiêu đề ―Hƣớng đến một
chuẩn mới cho thiết kế hƣớng đối tƣợng‖ đề xuất một chuỗi 6 tiêu chuẩn
đƣợc sử dụng cho việc tinh toán độ sâu va rộng của thiết kế hƣớng đối
tƣợng:
• Metric 1: WMC (weighted methods per class). This relates to the
definition of complexity of an object. The number and complexity of
methods involved are indicators of how how much time and effort is
required to develop and maintain the object.
• Chuẩn 1: WMC (weighted methods per class) liên quan đến định nghĩa
độ phức tạp của một đối tƣợng. Số phƣơng thức va độ phức tạp của nó
đƣợc xác định thông qua việc mất bao nhiêu thời gian va công sức để
phát triển va duy trì đối tƣợng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 750
• Metric 2: DIT (depth of inheritance tree). DIT is a measure of how
many ancestor classes can potentially affect a class. It is useful to have
a measure of how deep a particular class is in the hierarchy so that the
class can be designed with reuse of inherited methods.
• Chuẩn 2: DIT (depth of inheritance tree) tinh toán bao nhiêu lớp cha có
tiềm năng ảnh hƣởng tới một lớp. Vấn đề nay hữu dụng để đo độ sâu
của một lớp riêng biệt trong một hệ thống cấp bậc để lớp nay có thể
đƣợc thiết kế với phƣơng pháp sử dụng lại hoặc kế thừa.
• • Metric 3: NOC (number of children). NOC is a measure of
how many subclasses will inherit the methods of a parent class. NOC
gives an idea of the potential influence a class has on the design. If a
class has a large number of children, it may require more testing of the
methods in that class.
• Chuẩn 3: NOC (number of children) để tinh toán xem bao nhiêu lớp
con sẽ kế thừa các phƣơng thức của lớp cha. NOC đƣa ra một ý tƣởng
của tiềm năng ảnh hƣởng của một lớp có trong thiết kế (các lớp con có
thể sử dụng các phƣơng thức của nó). Nếu một lớp có một lƣợng lớn
các lớp con, sẽ có nhiều yêu cầu kiểm tra hơn đối với các phƣơng thức
của lớp đó.
• Metric 4: CBO (coupling between objects). This is a count of the
number of noninheritance-related couples with other classes. Excessive
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 751
coupling between objects outside the inheritance hierarchy is
detrimental to modular design and prevents reuse. This measure is
useful to determine how complex the testing of various parts of the
design is likely to be
• Chuẩn 4: CBO (coupling between objects). Đây la một tinh toán trên số
lƣợng các mối liên hệ liên quan đến không kế thừa của những lớp khác
nhau. Mối quan hệ quá mức giữa các đối tƣợng bên ngoai cấu trúc kể
thừa gây bất lợi cho việc thiết kế các module va việc tái sử dụng. Cách
đo nay la hữu dụng cho việc xác định độ phức tạp của việc testing
nhiểu phần khác nhau của thiết kế.
• Metric 5: RFC (response for a class). The response set is a set of meth
ods available to the object. Because it specifically includes methods
called from outside the object, it is also a measure of communication
between objects. If a large number of methods can be invoked, the
testing and debugging of the object become more complicated.
• Chuẩn 5: RFC (response for a class). Tập các phản hồi la một tập các
phƣơng pháp có giá trị đối với đối tƣợng. Bởi vì nó bao gồm một cách
cụ thể các phƣơng pháp đƣợc gọi bên ngoai đối tƣợng, đồng thời nó
cũng la một cách tinh toán việc giao tiếp giữa các đối tƣợng. Nếu một
số lƣợng lớn phƣơng thức yêu cầu quá trình nay, việc kiểm thử va tìm
lỗi của một đối tƣợng trở nên phức tạp hơn nhiều.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 752
• Metric 6: LCOM (lack of cohesion in methods). LCOM uses the notion
of degree of similarity of methods. Fewer disjoint sets imply greater
similarity of methods. Cohesiveness of methods within a class is
desirable because it promotes encapsulation of objects.
• Chuẩn 6: LCOM (lack of cohension in methods) sử dụng khái niệm độ
giống nhau giữa các phƣơng thức. Sự liên quan giữa các phƣơng thức
trong một lớp la cần thiết bởi vì nó lam cho quá trình đóng gói đối
tƣợng trở nên chặt chẽ hơn.
It is easy to pinpoint how Kemerer‘s metrics differ from
conventional measurements. Object-oriented metrics are specifically
oriented to object oriented methodologies, which are quite different from
conventional meth odologies. The notion is to try to go after those things
that are different about the object-oriented approach.
Thật la dễ dang để xác định sự khác nhau giữa các tiêu chuẩn của
Kemerer va cách tinh toán thông thƣờng. Các tiêu chuẩn hƣớng đối tƣợng
la hƣớng đến các phƣơng pháp hƣớng đối tƣợng một cách cụ thể, đây la
điểm khác biệt so với cách thông thƣờng.
The easiest one to explain to most people is the notion of inheritance.
Our metric is to measure depth of inheritance. In this way we can determine
to what degree people are using inheritance. The goal here is to address the
optimal mix between complexity and usability. When a programmer uses
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 753
no inheritance, then he is not taking advantage of reusability and therefore
negates productivity gains of the object-oriented technique. When the
programmer ―goes really deep‖, this may also be bad because it will be hard
to test. Indeed it may be too much for one person to keep in mind.
Cách dễ nhất để giải thich cho hầu hết mọi ngƣời la khái niệm kế
thừa. Tiêu chuẩn của chúng la la đo độ sâu của việc kế thừa. Trong cách
nay chúng ta có thể xác định mức độ ma ngƣời ta đang sử dụng kế thừa.
Mục đich ở đây la để giải quyết tối ƣu sự trộn lẫn giữa độ phức tạp va tinh
tiện dụng. Khi một lập trình viên không sử dụng kế thừa, anh ta không biết
đến khả năng sử dụng lại (reusability) do đó không tận dụng đƣợc năng suất
đạt đƣợc của việc sử dụng kĩ thuật hƣớng đối tƣợng.
20.6 CÂN BẰNG CHẤT LƢỢNG
Quality and productivity are tightly linked; the approaches used to
address these issues — metrics, methodology, and tools — must be
interconnected. Simply throwing technology or methodology at the problem
is not enough. Information technology (IT) departments must also use
―peopleware‖ solutions (Exhibit 20-2.).
Chất lƣợng va năng suất có rang buộc chặt chẽ với nhau: những cách
tiếp cận đã từng đƣợc sử dụng để giải quyết những vấn đề nay (chất lƣợng,
năng suất) la đo lƣờng (metrics), các phƣơng pháp (methodology) va các
công cụ (tools) phải có mối quan hệ với nhau. Nói một cách đơn giản hơn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 754
la việc sử dụng các phƣơng pháp va kĩ thuật để giải quyết vấn đề la chƣa
đủ. Công nghệ thông tin phải cần đến giải pháp con ngƣời.
Ed Yourdon (www.yourdon.com), an esteemed software guru, says
that one way to improve development is to hire better developers. This
solution is the closest thing to a silver bullet.
Ed Yourdon, một chuyên gia phần mềm có tiếng đã nói rằng có một
cách để cải thiện quá trình phát triển la thuê những lập trình viên giỏi hơn.
Giải pháp nay la cách gần nhất với cái gọi la ―viên đạn bạc‖ (silver bullet).
Rather than spend lots of money trying to bring in a new
methodology, why not simply bring in better people? We know that there is
a 25 to 1 differential between the best and the worst people and a 4 to 1
differentia between the best and the worst teams, so maybe the best way to
improve productivity and quality is to improve hiring practices.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 755
Ta biết rằng 25 ngƣời tồi nhất chỉ bằng một ngƣời giỏi nhất, tỷ lệ đó
với team tốt nhất va tồi nhất la 4-1, nhƣ vậy có lẽ cách tốt nhất để nâng cao
năng suất va chất lƣợng la nâng cao chất lƣợng nhân viên.
If you take a random group of 100 people and put them in a room
with a complex programming exercise, one of them will finish 25 times
faster than the others, Yourdon says. Another ―peopleware‖ improvement
to productivity is to help managers improve their skills, as well as to foster
a teamwork approach among developers. Yourdon and many others believe
that ―peopleware‖ solutions boost productivity and quality more than any
tools or techniques.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 756
Nếu bạn lấy một nhóm 100 ngƣời bất kì va đặt vao trong một phòng
với một bai tập lập trình phức tạp, một trong số họ sẽ lam xong sớm nhanh
hơn 25 lần những ngƣời khác, Yourdon nói. Một cách khác để nâng cao
năng suất la giúp cho những ngƣời quản lý nâng cao kĩ năng của họ, cũng
nhƣn khuyến khich việc lam việc theo nhóm giữa những ngƣời phát triển
phần mềm (developer). Yourdon va nhiều ngƣời khác tin rằng giải pháp
―phần ngƣời‖ nâng cao chất lƣợng va năng suất sản phầm hơn bất kì một
công cụ hay kĩ thuật nao khác.
20.7 KẾT LUẬN
TQM is actually a process by which one manages continuous
improvement. You need to learn the lessons in as close to real time as
possible and implement lessons learned across the organization. For quality
programs to be successful, you need to get scared enough to act.
TQM thực sự la một quá trình ma từ đó một ngƣời có thể quản lý
việc cải tiến liên tục. Bạn cần phải học cang nhiều bai học trong thế giới
thực cang tốt va bổ sung những bai học qua các tổ chức. Để cho những
chƣơng trình chất lƣợng thanh công, bạn cẩn phải có đủ can đảm để hanh
động.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 20: Khảo sát về Năng suất và Chất lượng 757
20.8 TÀI LIỆU THAM KHẢO
A.J. Albrecht, A.J. (1983). Software function, source lines of code
and development effort prediction: a software science validation, IEEE
Trans. Software Eng., 10, 1.
Conte, Dunsmore, and Shen, (1986). Software Engineering Metrics
and Models, Benjamin/Cummings Publishing Company, San Francisco.
Hansen, W.J. (1978). Measurement of program complexity by the pair,
(Cyclomatic Number,
Operator Count) [ACM SIGPLAN Notices). Kemerer, C. and
Chidamber, S. (1991). Towards a metrics suite for object-oriented design,
ACM OOPSLA Conference (object-oriented programming, systems,
languages and applications).
Keyes, J. (1993). A Survey on IT productivity/quality, in Software
Engineering Productivity Handbook, Keyes, J., Ed., McGraw-Hill, New
York.
McCabe, T. (1976). A complexity measure, IEEE Trans. Software
Eng., SE-2, 4, 308.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 758
CHƢƠNG 21 PUTNAM’S SOFTWARE
EQUATION AND SLIM
Người dịch: Nguyễn Quang Anh
21.1 TỔNG QUAN
Putnam developed a constraint model called SLIM that would be
useful for projects exceeding 70,000 lines of code. This model assumes that
effort for software projects is distributed similarly to a collection of
Rayleigh curves.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 759
Putnam phát triển một mô hình rang buộc gọi la SLIM khá hữu ich
cho các dự án vƣợt quá 70.000 dòng mã. Mô hình nay giả định rằng nỗ lực
cho các dự án phần mềm đƣợc phân phối tƣơng tự nhƣ đƣờng cong
Rayleigh.
The Norden-Rayleigh curve (Exhibit 21-1) represents manpower as a
function of time. Norden observed that the Rayleigh distribution provides a
good approximation of the manpower curve for various hardware
development processes. Development effort is assumed to represent only 40
percent of the total life cycle cost. Requirements specification is not
included in the model. Estimation using SLIM is not expected to take place
until design and coding.
Các đƣờng cong Norden-Rayleigh (hình 21-1) biểu diễn nhân lực
nhƣ la các ham về thời gian.. Norden quan sát thấy sự phân bố Rayleigh
cung cấp một xấp xỉ tốt của đƣờng cong nhân lực trong nhiều qui trình phát
triển phần cứng. Nỗ lực phát triển đƣợc giả định chỉ đại diện cho 40 phần
trăm chi phi tổng chi phi. Yêu cầu đặc tả không không đƣợc đinh kèm trong
mô hình. Đo lƣờng bằng cách sử dụng SLIM không đƣợc khuyến khich tới
khi thiết kế va cai đặt xong.
Putnam suggests that staffing rises smoothly during the project and
then drops sharply during acceptance testing. The SLIM model is expressed
as two equations describing the relation between the development effort and
the schedule. The first equation, called the software equation, states that
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 760
development effort is proportional to the cube of the size and inversely
proportional to the fourth power of the development time. The second
equation, the manpower-buildup equation, states that the effort is
proportional to the cube of the development time.
Putnam chỉ ra rằng chi phi tăng nhanh trong suốt trong dự án va sau
đó giảm mạnh trong thời gian kiểm thử dự án. Mô hình Slim trình bay 2
phƣơng trình mô tả mối quan hệ giữa nỗ lực phát triển phần mềm va thời
gian phát triển. Phƣơng trình đầu tiên gọi la software equation, còn phƣơng
trình thứ hai có tên manpower-buildup.
21.2 THỦ TỤC- VẤN ĐẾ- CHÍNH SÁCH
The software equation is calculated as follows:
Công thức tinh software equation nhƣ sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 761
Với:
• Ss: Kich thƣớc của phần mềm
• C: Hằng số về công nghệ
• Td: Thời gian phát triển (năm)
• K: Tổng nỗ lực
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 762
Vi dụ:
Ss = 100 K va ymax = 40 ngƣời
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 763
Coi số lƣợng nhân lực la hằng số, ta có thể tinh đƣợc thời
gian ngắn nhất để phát triển dự án.
Số lƣơng nhân lực nhiều nhất tai thời điểm phát hanh (t=td)
Giả sử rằng
Cho ra:
Giả sử rằng hằng số công nghệ xấp xỉ 1000, ta có thể ráp vô
công thức
Bằng cách tinh K va thế vao, ta có đƣợc
Thế giá trị vao td, ta có K = 113.57 ngƣời
Chi phí phát triển la 40% của K tức la bằng 45.26 ngƣời
Năng suất của lập trình viên cũng có thể tinh đƣợc. Gỉa sử rằng có
250 ngay lam việc trong năm, năng suất lam việc sẽ bằng S/(0.4K * 250)
dòng hay 8.837 dòng 1 ngày.
To allow effort estimation, Putnam introduced the manpower-
buildup equation:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 764
where D is a constant called manpower acceleration, E is the total
project effort in years, and t is the elapsed time to delivery in years.
The manpower acceleration is 12.3 for new software with many
interfaces and interactions with other systems, 15 for standalone systems,
and 27 for reimplementations of existing systems.
Using the software and manpower-buildup equations, we can solve
for effort:
Để đo lƣờng nỗ lực phát triển, Putnam đề xuất công thức manpower-
buildup:
Với D la nhân lực cần trong năm, E la tổng thời gian phát triển dự án
trong năm. Nếu phần mền có nhiều giao diện va phải giao tiếp với các phần
mềm khác sẽ cần 12.3, các hệ thống tiêu chuẩn cần 15 va các hệ thống tái
sử dụng cần 27 nhân lực.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 21: Putnam’s software equation and slim 765
Sử dụng công thức software-bulidup chúng ta có thể tinh đƣợc nỗ lực
bằng công thức:
21.3 TÀI LIỆU THAM KHẢO
Fenton, N.E. and Pfleeger, S.L. (1997). Software Metrics: a
Rigorous and Practical Approach, International Thomson Computer Press.
Stamford, CN. Johnson, K. Software Cost Estimation: Metrics and Models,
University of Calgary, Canada.
http://sern.ucalgary.ca/courses/seng/621/W98/johnsonk/cost.htm#Th
e%20Software%20Equation.
Putnam, L.H. (1978). A general empirical solution to the macro
software sizing and estimating problem, IEEE Transactions on Software
Engineering, SE-4:4.
Dr. Shmuel Rotenstreich, Software cost estimation,
http://www.seas.gwu.edu/~ shmuel/ cs272/14/index.htm. September 1999.
George Washington University, Washington, D.C.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 766
CHƢƠNG 22 MÔ HÌNH COCOMO II
Người dịch: Phạm Ngọc Vân Anh
22.1 MỞ ĐẦU
COCOMO is very useful when used for custom, build-to-
specification software projects; however, COCOMO II is useful for a much
wider collection of techniques and technologies. COCOMO II provides up-
to-date support for business software, object-oriented software, software
created via spiral or evolutionary development models, and software
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 767
developed using commercial off-the-shelf application composition utilities.
COCOMO II provides models for early prototyping efforts and the more
detailed early design and post-architecture models for subsequent portions
of the life cycle.
COCOMO la rất hữu ich khi đƣợc sử dụng cho khách hang, đƣợc
xây dựng đến chi tiết các dự án phần mềm, tuy nhiên, COCOMO II la hữu
ich cho một bộ sƣu tập rộng hơn kỹ thuật va công nghệ. COCOMO II cung
cấp sự hỗ trợ hiện đại cho phần mềm kinh doanh, phần mềm hƣớng đối
tƣợng, phần mềm tạo ra thông qua đƣờng xoắn ốc hoặc các mô hình phát
triển tiến hóa, va phần mềm đƣợc phát triển bằng cách sử dụng thƣơng mại
ra ngoai thềm ứng dụng thanh phần tiện ich. COCOMO II cung cấp các mô
hình cho các nỗ lực mẫu thử ban đầu va chi tiết hơn thiết kế ban đầu va sau
các mô hình kiến trúc cho các phần tiếp theo của chu kỳ sồng.
22.2 MÔ HÌNH THÀNH PHẦN ỨNG DỤNG
The application composition model is used in prototyping to resolve
potential high-risk issues such as user interfaces, software–system
interaction, performance, or technology maturity. Object points are used for
sizing rather than the traditional LOC metric.
Các mô hình thành phần ứng dụng đƣợc sử dụng trong mẫu đầu tiên
để giải quyết các vẫn đề tiềm năng nguy cơ cao nhƣ giao diện ngƣời dùng,
tƣơng tác phần mềm hệ thống, hiệu suất, hoặc tinh trƣởng thanh công nghệ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 768
Những điểm đối tƣợng đƣợc sử dụng để định cơ hơn la độ đo LOC truyền
thống.
An initial size measure is determined by counting the number of
screens, reports, and third-generation components that will be used in the
application. Fenton and Pfleeger (1997) classify objects as simple, medium,
or difficult using the guidelines shown in Exhibits 22-1 and 22-2.
Đo lƣờng kich thƣớc ban đầu đƣợc xác định bằng cách đếm số lƣợng
man hình, báo cáo, va các thanh phần thứ ba sẽ đƣợc sử dụng trong các ứng
dụng. Fenton va Pfleeger (1997) phân loại các đối tƣợng nhƣ vừa đơn
giản,trung bình, hoặc khó khăn bằng cách sử dụng các nguyên tắc thể hiện
trong 22-1 và 22-2.
The number in each cell is then weighted according to Exhibit 22-3.
The weights represent the relative effort required to implement an instance
of that complexity level (Fenton and Pfleeger, 1997). The weighted
instances are summed to provide a single object point number. Reuse is
then taken into account. Assuming that r percent of the objects will be
reused from previous projects, the number of new object points (NOP) is
calculated to be:
NOP = (object points) × (100 – r)/100
Số trong mỗi ô sau đó đƣợc lam nặng theo 22-3. Cái trọng lƣợng
đại diện cho các nỗ lực có liên quan cần thiết để thực hiện một thể hiện của
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 769
mức độ phức tạp đó (Fenton va Pfleeger, 1997). Các độ nặng của thể hiện
đƣợc tổng kết để cung cấp một con số điểm đối tƣợng duy nhất. Tái sử
dụng sau đó đƣợc tinh đến. Giả sử r phần trăm của các đối tƣợng sẽ đƣợc sử
dụng lại từ các dự án trƣớc đó, số lƣợng các điểm đối tƣợng mới (NOP)
đƣợc tinh toán la:
NOP = (các điểm đối tƣợng) × (100 - r) / 100
Hình 22-1
Hình 22-2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 770
Hình 22-3
Hình 22-4
A productivity rate (PROD) is determined using Exhibit 22-4. Effort
can then be estimated using the following equation:
E = NOP/PROD
Một tỉ lệ hiệu suất (PROD) đƣợc xác định bằng cách sử dụng 22-4.
Sau đó nỗ lực có thể đƣợc ƣớc tinh bằng cách sử dụng các phƣơng trình sau
đây:
E = NOP / PROD
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 771
22.3 MÔ HÌNH THIẾT KẾ BAN ĐẦU
The early design model is used to evaluate alternative software or
system architectures and concepts of operation. An unadjusted function
point count (UFC) is used for sizing. This value is converted to LOC using
tables such as those published by Capers Jones (1996), excerpted in Exhibit
22-5.
Các mô hình thiết kế ban đầu đƣợc sử dụng để đánh giá các kiến trúc
phần mềm hay hệ thống thay thế va các khái niệm của hoạt động. Một điểm
chức năng không thich ứng (UFC) đƣợc sử dụng cho định cở. Giá trị nay
đƣợc chuyển đổi sang LOC sử dụng các bảng nhƣ đƣợc công bố bởi
Capers Jones (1996), trich đoạn trong 22-5.
Hình 22-5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 772
Hình 22-6
The early design model equation is:
E = aKLOC × EAF
where a is a constant, provisionally set to 2.45.
Các phƣơng trình mô hình thiết kế ban đầu la:
E = aKLOC × EAF
trong đó a la hằng số, tạm đặt là 2,45.
The effort adjustment factor (EAF) is calculated as in the original
COCOMO model using the seven Boehm cost drivers shown in Exhibit 22-
6.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 773
Yếu tố sự điều chỉnh nổ lực (EAF) đƣợc tinh nhƣ trong mô hình
COCOMO nguyên gốc bằng cách sử dụng các trình điều khiển chi phi
Boehm thứ bẩy thể hiện trong 22-6.
22.4 MÔ HÌNH POST_ARCHITECTURE
The post-architecture model is used during the actual development
and maintenance of a product. Function points or LOC can be used for
sizing, with modifiers for reuse and software breakage. Boehm advocates
the set of guidelines proposed by the Software Engineering Institute in
counting lines of code. The post-architecture model includes a set of 17 cost
drivers and a set of 5 factors determining the project‘s scaling component.
The five factors (Exhibit 22-6) replace the development modes (organic,
semidetached, embedded) of the original COCOMO model.
Mô hình Post-architecture đƣợc sử dụng trong quá trình phát triển va
bảo trì thực tế của một sản phẩm. Các điểm chức năng hoặc LOC có thể
đƣợc sử dụng để định cơ, với ý nghĩa bổ sung cho tái sử dụng va đoạn nứt
phần mềm. Boehm chủ trƣơng tập các nguyên tắc đề nghị bởi Viện Kỹ
thuật Ứng Dụng Phần Mềm trong việc đếm dòng mã. Mô hình Post-
architecture bao gồm một bộ 17 các trình điều khiển chi phi va một bộ 5
yếu tố xác định tỉ lệ thanh phần của dự án. Năm yếu tố (triển lãm 22-6) thay
thế các phƣơng thức phát triển (hữu cơ, liền vách, sự nhúng) của mô hình
COCOMO gốc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 774
Hình 22-7
The post-architecture model equation is:
E = aKLOCb x EAF
where a is set to 2.55 and b is calculated as:
b = 1.01 + 0.01 x SUM(Wi)
where W is the set of five scale factors shown in Exhibit 22-7.
Phƣơng trình mô hình Post-architecture là:
E = aKLOCb x EAF
trong đó, a đƣợc đặt la 2,55 va b đƣợc tinh nhƣ:
b = 1,01 + 0,01 x SUM (Wi)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 775
W la nơi tập hợp của năm yếu tố phân chia thể hiện trong 22-7.
The EAF is calculated using the 17 cost drivers shown in Exhibit 22-
8.
The EAF đƣợc tinh bằng cách sử dụng 17 các trình điều khiển chi
phi đƣợc hiển thị trong 22-8.
22.5 TÀI LIỆU THAM KHẢO
Boehm, B. (1981). Software Engineering Economics, Prentice-Hall,
Englewood Cliffs, NJ.
Boehm, B. (1975). The high cost of software, in Practical Strategies
for Developing Large Soft-ware Systems, Horowitz, E., Ed., Addison-
Wesley, Reading, MA, 4–14.
Boehm, B.W., Abts, C., Clark, B., and Devnani-Chulani, S. (1997).
COCOMO II Model Definition Manual, The University of Southern
California. http://sunset.usc.edu/research/COCOMOII/index.html.
Fenton, N.E. and Pfleeger, S.L. (1997). Software Metrics: a
Rigorous and Practical Approach, International Thomson Computer Press,.
Johnson, K. Software Cost Estimation: Metrics and Models,
University of Calgary.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 22: Mô hình COCOMO II 776
http://sern.ucalgary.ca/courses/seng/621/W98/johnsonk/cost.htm#The%20S
oftware%20Equation.
Jones, C. (1996). Applied Software Measurement, McGraw-Hill, New
York.
Hình 22-8.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 23: Mẫu ước tính chi phí Putnam 777
CHƢƠNG 23 MẪU ƢỚC TÍNH CHI PHÍ
PUTNAM
Người dịch: Lê Anh Dũng
23.1 TỔNG QUAN
Putnam‘s (1978) cost estimation model is a macroestimation model
that computes the relationship between cost and the amount of time
available for the development effort. The model supports the ―mythical
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 23: Mẫu ước tính chi phí Putnam 778
man-month‖ idea first put forth by Frederick Brooks, who asserted that
people and time are not always interchangeable.
Mẫu ƣớc tinh chi phi Putnam la một mẫu ƣớc tinh vĩ mô dùng để
tinh toán mối liên hệ giữa chi phi va thời gian hiện có cho nỗ lực của việc
phát triển phần mềm. Mẫu nay ủng hộ ý tƣởng ―nhân viên của tháng‖ lần
đầu đƣợc đƣa ra va đƣợc sử dụng về sau bởi Frederick Brooks, ngƣời luôn
khẳng định rằng con ngƣời va thời gian không phải lúc nao cũng có thể
thay thế cho nhau đƣợc.
23.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH
The Putnam formula is as shown in Exhibit 23-1.
Công thức Putnam đƣợc trình bay nhƣ trong hình 23-1.
Hình 23-1. Công thức Putnam
Where
y = instantaneous programmer power
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 23: Mẫu ước tính chi phí Putnam 779
y = total life cycle cost in programmer years
y = time from beginning of project
td = delivery time
e = 2.71828.
Trong đó:
y =khả năng hiện tại của lập trình viên.
K = tổng chi phi vòng đời sản phẩm trong thời gian lập trình.
t = thời gian từ lúc bắt đầu dự án.
td = thời gian chuyển giao dự án.
e = hằng số Euler = 2.71828.
23.3 TÀI LIỆU THAM KHẢO
Putnam, L.H. (1978). A general empirical solution to the macro
software sizing and estimating problem, IEEE Transactions on Software
Engineering, SE-4:4.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 23: Mẫu ước tính chi phí Putnam 780
Putnam, L.H. (1978). A general empirical solution to the macro
software sizing and estimating problem, IEEE Transactions on Software
Engineering, SE-4:4.
Ghi chú: do paper có các công thức về thống kê và các phép toán
phức tạp nên phần báo cáo này chỉ trình bay theo nhƣ sách. Ngoai ra có thể
tham khảo paper đƣợc đinh kèm theo bai dịch và slide này.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 781
CHƢƠNG 24 MALCOLM BALDRIGE QUALITY
AWARD
Người dịch: Huỳnh Thảo Hạnh Duy
24.1 TỔNG QUAN
The Malcolm Baldrige Quality Award is an annual award to
recognize U.S. companies that excel in quality achievement and quality
management. The award promotes awareness of quality as an increasingly
important element in competitiveness, understanding of the requirements
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 782
for quality excellence, and sharing of information on successful quality
strategies and on benefits derived from implementation of these strategies.
Although only one part of the examination is related to technology, all the
Baldrige award tenets of quality apply to the IT process. In this chapter, a
synopsis of the requirements is highlighted.
Malcolm Baldrige Quality Award la giải thƣởng thƣờng niên cho
những công ty Hoa Kỳ có những thanh tựu chất lƣợng va những sự quản lý
chất lƣợng vƣợt bậc. Giải thƣởng đánh giá cao mối quan tâm về chất lƣợng
va những yếu tố quan trọng không ngừng gia tăng trong sự cạnh tranh, sự
hiểu biết về yêu cầu chất lƣợng tốt, va sự chia sẻ thông tin ở những chiến
thuật chất lƣợng thanh công cùng với lợi nhuận thu đƣợc từ những phần
trong chiến lƣợc đó. Mặc dù chỉ có một phần trong cuộc kiểm tra liên quan
tới công nghệ, tất cả nguyên lý cho sự quyết định về chất lƣợng của
Baldrige áp dụng cho tiến trình công nghệ thông tin. Chƣơng nay la một
bản tóm tắt các yêu cầu quan trọng
24.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
24.2.1 The award is built upon a number of key concepts:
• Quality is defined by the customer.
• The senior leadership of business needs to create clear quality values
and build the values into the way the company operates.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 783
• Quality excellence derives from well-designed and wellexecuted
systems and processes.
• Continuous improvement must be part of the management of all
systems and processes.
• Companies need to develop goals, as well as strategic and operational
plans, to achieve quality leadership.
• Shortening the response time of all operations and processes of the
company needs to be part of the quality improvement effort.
• Operations and decisions of the company need to be based upon facts
and data.
• All employees must be suitably trained and developed, and involved in
quality activities.
• Design quality and defect and error prevention should be major
elements of the quality system.
• Companies need to communicate quality requirements to suppliers and
work to elevate suppliers‘ quality performance.
• Chất lƣợng định nghĩa bởi ngƣời dùng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 784
• Lãnh đạo cấp cao của công ty cần đƣa ra những giá trị chất lƣợng rõ
ràng va xây dựng các giá trị nay trên việc hoạt động của công ty
• Sự phát triển không ngừng phải la một phần của sự quản lý các hệ
thống va tiến trình
• Công ty phải phát triển các mục tiêu cũng nhƣ các chiến lƣợc, kế hoạch
chi tiết để đạt đƣợc chất lƣợng lãnh đạo
• Giảm thiểu tối đa thời gian phản hồi của các hoạt động, tiến trình ma
công ty cần thiết phải la một phần của sự cố gắng nâng cao chất lƣợng.
• Các hoạt động va quyết định của công ty phải dƣa trên thực tế va dữ
liệu. Tất cả nhân viên phải đƣợc huấn luyện va phát triển hợp lý va liên
quan đến các hoạt động chất lƣợng
• Chất lƣợng thiết kế va việc phòng tránh lỗi phải la những yếu tố chinh
trong hệ thống chất lƣợng
• Công ty phải thông báo các yêu cầu chất lƣợng đến các nha cung cấp
va thực hiện đánh giá chất lƣợng của nha cung cấp
24.2.2 Examination categories/items
1.0. Leadership 100
1.1 Senior executive leadership 40
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 785
1.2 Quality values 15
1.3 Management for quality 25
1.4 Public responsibility 20
2.0. Information and analysis 70
2.1 Scope and management of quality data and
information 20
2.2 Competitive comparisons and benchmarks 30
2.3 Analysis of quality data and information 20
Thông tin và phân tích (70)
Quản lý chất lƣợng va dữ liệu (20)
So sánh cạnh tranh (30)
Phân tich dữ liệu va thông tin (20)
3.0. Strategic quality planning 60
3.1 Strategic quality planning process 35
3.2 Quality goals and plans 25
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 786
Kế hoạch chất lƣợng có chiến lƣợc (60)
Tiến trình kế hoạch chất lƣợng có chiến lƣợc (35)
Kế hoạch va mục tiêu chất lƣợng (25)
4.0. Human resource utilization 150
4.1 Human resource management 20
4.2 Employee involvement 40
4.3 Quality education and training 40
4.4 Employee recognition and performance measurement 25
4.5 Employee well-being and morale 25
Việc sử dụng nhân lực (150)
Quản lý nhân lực (20)
Employee involvement (40)
Huấn luyện chất lƣợng (40)
Đánh giá nhân viên (25)
Tinh thần nhân viên (25)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 787
5.0. Quality assurance of product and services 140
5.1 Design and introduction of quality products
and services 35
5.2 Process quality control 20
5.3 Continuous improvement of processes 20
5.4 Quality assessment 15
5.5 Documentation 10
5.6 Business process and support service quality 20
5.7 Supplier quality 20
Bảo đảm chất lƣợng sản phẩm va dịch vụ (140)
Thiết kế, giới thiệu chất lƣợng sản phẩm, dịch vụ (35)
Kiểm soát chất lƣợng (20)
Quá trình phát triển không ngừng của các tiến trình (20)
Đánh giá chất lƣợng (15)
Tai liệu hóa (15)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 788
Quá trình kinh doanh va chất lƣợng dịch vụ hỗ trợ (20)
Chất lƣợng cung cấp (20)
6.0. Quality results 180
6.1 Product and service quality results 90
6.2 Business process, operational and support
service quality results 50
6.3 Supplier quality results 40
Kết quả chất lƣợng (180)
Kết quả chất lƣợng sản phẩm va dịch vụ (90)
Kết quả chất lƣợng tiến trình kinh doanh, tổ chức va dịch vụ hỗ trợ
(50)
Kết quả chất lƣợng nha cung cấp (40)
7.0. Customer satisfaction 300
7.1 Determining customer requirements and expectations 30
7.2 Customer relationship management 50
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 789
7.3 Customer service standards 20
7.4 Commitment to customers 15
7.5 Complaint resolution for quality improvement 25
7.6 Determining customer satisfaction 20
7.7 Customer satisfaction results 70
7.8 Customer satisfaction comparison 70
Sự hai lòng của khách hang (300)
Những mong đợi va yêu cầu khách hang (30)
Quản lý quan hệ khách hang (50)
Chuẩn dịch vụ khách hang (20)
Chuyển giao cho khách hang (15)
Hƣớng giải quyết phê bình cho việc phát triển chất lƣợng (25)
Sự thỏa mãn khách hang (20)
Kết quả sự thỏa mãn khách hang (70)
So sánh sự thỏa mãn của khách (70)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 24: Malcolm Baldrige Quality Award 790
Chuyển giao cho khách hang (15)
Hƣớng giải quyết phê bình cho việc phát triển chất lƣợng (25)
Sự thỏa mãn khách hang (20)
Kết quả sự thỏa mãn khách hang (70)
So sánh sự thỏa mãn của khách (70)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 25: Zachman’s Framework 791
CHƢƠNG 25 ZACHMAN’S FRAMEWORK
Người dịch: Đam Quỳnh Giang
25.1 TỔNG QUAN
In his seminal work, Zachman (1987) makes the observation that,
just as a builder needs a detailed set of plans for a building, a systems
developer needs a detailed set of plans for a complex system. He continues
this observation by saying that different types of plans are prepared by
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 25: Zachman’s Framework 792
differentparties for different purposes and represent very different views of
the same building. Zachman created an architectural framework that is
basically a ―set of representations‖ of differing orientations and focuses.
This chapter gives a brief overview of Zachman‘s framework.
Tại hội thảo công việc của mình, Zachman (1987) đã thực hiện một
nhận xét rằng, cũng giống nhƣ một ngƣời xây dựng cần một bộ chi tiết của
kế hoạch cho một tòa nha, một nha phát triển hệ thống cần một bộ chi tiết
của kế hoạch cho một hệ thống phức tạp. Ông tiếp tục sự nhận xét nay bằng
cách nói rằng các loại kế hoạch khác nhau đƣợc chuẩn bị bởi các bên khác
nhau cho các mục đich khác nhau va đại diện cho những cách nhìn rất khác
nhau của cùng tòa nha. Zachman tạo ra một khung(framework) kiến trúc là
một "bộ đại diện‖ của các định hƣớng va tập trung khác nhau một cách cơ
bản. Chƣơng nay cung cấp tổng quan về framework Zachman.
25.2 THỦ TỤC / VẤN ĐỀ / CHÍNH SÁCH
1. The framework is a two-dimensional classification of the various
components of an information systems architecture. One dimension
consists of scope description, business model, information system
model, technology model and detailed description. The second
dimension consists of data description, process description, and
network description.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 25: Zachman’s Framework 793
Framework la một phân loại hai chiều của các thanh phần khác
nhau của một kiến trúc hệ thống thông tin. Một chiều gồm có mô tả
phạm vi, mô hình nghiệp vụ, mô hình hệ thống thông tin, mô hình công
nghệ va mô tả chi tiết. Chiều thứ hai bao gồm các mô tả dữ liệu, mô tả
tiến trình, va mô tả mạng.
2. Framework Zachman (xem hình 25-1)
Mô tả dữ liệu Mô tả tiến trình Mô tả mạng
Mô tả phạm vi
Mô hình nghiệp vụ
Mô hình hệ thống
thông tin
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 25: Zachman’s Framework 794
Mô hình công nghệ
Mô tả chi tiết
Hình 25-1 Framework Zachman
3. At the scope description level:
• Data description: a list of entities relevant to the business or project
• Process description: a list of business processes
• Network description: a list of locations at which the business operates
or at which the processes of interest are performed
• Mô tả dữ liệu: một danh sách các thực thể có liên quan đến nghiệp vụ
hoặc dự án
• Mô tả tiến trình: một danh sách các quy trình nghiệp vụ
• Mô tả mạng: một danh sách nơi ma tại đó các hoạt động nghiệp vụ hay
các quá trình quan tâm đƣợc thực hiện
4. At the business model level:
• Data description: an entity-relationship diagram
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 25: Zachman’s Framework 795
• Process description: possibly a functional flow diagram
• Network description: some form of logistic definition of the enterprise
• Mô tả dữ liệu: một sơ đồ thực thể - kết hợp
• Mô tả tiến trình: có thể la một lƣu đồ chức năng
• Mô tả mạng: một số hình thức định nghĩa hậu cần của doanh nghiệp
5. At the information system model level:
• Data description: a detailed logical data model with all the necessary
data element definitions
• Process description: possibly a detailed data flow diagram with
supporting documentation
• Network Description: plan for system distribution
• Mô tả dữ liệu: một mô hình dữ liệu hợp lý chi tiết với tất cả các định
nghĩa yếu tố dữ liệu cần thiết
• Mô tả tiến trình: có thể la một sơ đồ luồng dữ liệu chi tiết với các tai
liệu hỗ trợ
• Mô tả mạng: kế hoạch cho hệ thống phân phối
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 25: Zachman’s Framework 796
6. At the technology model level:
• Data description: detailed definition of the external schemas
• Process description: detailed structure chart with complete module
specifications
• Network description: system architecture of processors, nodes, and
communication lines
• Mô tả dữ liệu: định nghĩa chi tiết của lƣợc đồ bên ngoai
• Mô tả tiến trình: cấu trúc biểu đồ chi tiết với đặc tả mô-đun hoan chỉnh
• Mô tả mạng: kiến trúc hệ thống của bộ xử lý, các nút, va đƣờng liên lạc
7. At the detailed description level:
• Data description: describing actual files, records, fields, etc. as
understood by the data management software
• Process description: consisting of the programs
• Network description: in the form used by the communications software
• Mô tả dữ liệu: mô tả tập tin, hồ sơ, lĩnh vực,… thực tế nhƣ đƣợc hiểu
bởi phần mềm quản lý dữ liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 25: Zachman’s Framework 797
• Mô tả tiến trình: bao gồm các chƣơng trình
• Mô tả mạng: trong những hình thức đƣợc sử dụng bởi các phần mềm
truyền thông
25.3 TÀI LIỆU THAM KHẢO
Zachman, J.A. (1987), Một framework cho kiến trúc hệ thống thông
tin, IBM Syst. J., 26(3)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 798
CHƢƠNG 26 PHƢƠNG PHÁP LINKMAN CHO
VIỆC KIỂM SOÁT CHƢƠNG TRÌNH THÔNG
QUA CÁC PHÉP ĐO
Người dịch: Nguyễn Minh Hùng
26.1 TỔNG QUAN
A controlled development and maintenance program is essential for
bringing down the cost associated with software development life cycle.
The control mechanism can be implemented first by setting up specific
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 799
goals and then selecting the right set of metrics for measurements against
those goals. Goals must be tangible and balanced or they will be too remote
to be considered achievable. Intermediate targets are needed for monitoring
the progress of the project and making sure it is on the right track. Project
data collection and analysis should also be part of the control mechanism.
Sự phát triển va bảo trì chƣơng trình có kiểm soát la nguyên tắc thiết
yếu cho việc giảm chi phi trong quá trình phát triển phần mềm.Cơ chế kiểm
soát có thể đƣợc thiết lập trƣớc bằng cách định rõ những mục tiêu xác định
va lựa chọn đúng các độ đo cho việc đo lƣờng các mục tiêu đó. Những mục
tiêu phải đƣợc số liệu hóa va phải hợp lý. Các mục tiêu trung gian la cần
thiết để theo dõi quá trình thực hiện của dự án va đảm bảo rằng dự án đang
đi đúng hƣớng. Thu thập va phân tich dữ liệu của dự án cũng la một phần
của cơ chế kiểm soát.
A four-step procedure is outlined for establishing targets and means
for assessment (Linkman and Walker, 1991). The procedure is not focused
on any particular set of metrics; rather, metrics should be selected on the
basis of goals. This procedure is suitable for setting up goals for the entire
project deliverables or for any partial product created in the software life
cycle.
Phƣơng pháp Linkman thực chất một thủ tục gồm 4 bƣớc đóng vai
trò lam khung cho việc xác định các mục tiêu va phƣơng pháp đánh giá.
Thủ tục nay không tập trung vao bất kỳ bộ các độ đo nao, thay vao đó, các
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 800
độ đo sẽ đƣợc lựa chọn tùy thuộc vao mục đich cụ thể. Nó thich hợp cho
việc thiết lập các mục tiêu cho toan bộ dự án hoặc cho mỗi phần sản phẩm
đƣợc tạo thanh trong quá trình phát triển phần mềm.
26.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. Định nghĩa các mục tiêu có thể đo đƣợc:
Define measurable goals: the project goals establishment process is
similar to the development process for project deliverables. Software
projects usually start with abstract problem concepts; the final project
deliverables are obtained by continuously partitioning and refining the
problem into tangible and manageable pieces. Final quantified goals can be
transformed from initial intangible goals by following the same divide-and-
conquer method for software deliverables.Three sources of information are
helpful to establishing the targets:
• Historical data is useful under the assumptions that data is available,
development environment is stable, and projects are similar in terms of
type, size, and complexity.
• Synthetic data such as modeling results is useful if models used are
calibrated to specific development environment.
• Expert opinions can be helpful.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 801
Dự án phần mềm thƣờng bắt đầu với những quan niệm vấn đề mơ
hồ; dự án phát hanh cuối cùng đƣợc đạt đƣợc bằng quá trình phân chia liên
tục va biến những vấn đề trở thanh cụ thể, có thể quản lý đƣợc. Những mục
tiêu định lƣợng cuối cùng có thể đƣợc chuyển từ các mục tiêu chƣa xác
định lúc đầu bằng phƣơng pháp chia để trị cho quá trình quản lý dự án phần
mềm. Ba nguồn thông tin sau la hữu ich cho việc xác định mục tiêu:
• Dữ liệu từ các dự án đã thực hiện trong quá khứ với giả sử rằng các dữ
liệu nay còn tồn tại, môi trƣờng phát triển ổn định va các dự án la
tƣơng tự nhau xét trên về loại, độ lớn va độ phức tạp.
• Dữ liệu tổng hợp nhƣ các kết quả đƣợc mô hình hóa la hữu ich nếu các
mô hình đƣợc sử dụng đƣợc xác định trong môi trƣờng phát triển nhất
định.
• Ý kiến chuyên gia.
2. Duy trì cân bằng giữa các mục tiêu:
Maintain balanced goals: the measurable goals are usually
established on the basis of four factors: cost, schedule, effort, and quality. It
is feasible to achieve just a single goal, but it is always a challenge to
deliver a project with the minimum staff and resources, on time, and within
budget. It needs to be kept in mind that trade-off is always involved and all
issues should be addressed to reach a set of balanced goals.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 802
Các mục tiêu có thể đo đƣợc thƣờng đƣợc thiết lập trên cơ sở 4 nhân
tố: giá cả, thời gian, nhân lực va chất lƣợng. Với 1 mục tiêu thì có thể dễ
dang đạt đƣợc, nhƣng sẽ la một thử thách nếu phải phát triển một dự án với
nhân viên va nguồn lực giới hạn, đúng thời gian va giới hạn chi phi. Phải
luôn nhớ rằng việc cân bằng các yếu tố la cần thiết, va phải giải quyết tất cả
các mục tiêu để đạt đến tập các mục tiêu cân bằng.
3. Thiết lập các mục tiêu trung gian:
Set up intermediate goals: a project should never be measured only at
its end point. Checkpoints should be set up to provide confidence that the
project is running on course. The common practice involves setting up
quantifiable targets for each phase, measuring the actual values against the
targets, and establishing a plan to make corrections for any deviations. All
four aforementioned factors should be broken down into phase or activity
for setting up intermediate targets. Measurements for cost and effort can be
divided into machine and human resources according to software life cycle
phase so that expenditures can be monitored to ensure the project is running
within budget. The schedule should always be defined in terms of
milestones or checkpoints to ensure that intermediate products can be
evaluated and the final product will be delivered on time. Quality of
intermediate products should always be measured to guarantee the final
deliverable will meet its target goal.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 803
Không bao giờ đặt ra cho dự án chỉ một mục tiêu cuối cùng.
Checkpoint cần đƣợc thiết lập để xác định rằng dự án đang đi đúng hƣớng.
Việc thông thƣờng cần lam la xác định những mục tiêu cho mỗi giai đoạn
va những việc cần phải lam để đạt đƣợc mục tiêu đó. Cả 4 yếu tố nói trên
(giá cả, thời gian, nhân lực va chất lƣợng) cần phải đƣợc phân ra thanh từng
phần va xác định mục tiêu cho từng phần đó. Việc xác định chi phi va nhân
lực có thể chia ra thanh các tai nguyên máy móc va con ngƣời dựa trên
vòng lặp phát triển phần mềm (xác định yêu cầu – phân tích – thiết kế - cài
đặt – kiểm chứng) để có thể theo dõi phi tổn trong từng giai đoạn, đảm bảo
cho chi phi của toan dự án trong phạm vi cho phép. Thời gian cũng phải
luôn đƣợc chia nhỏ dƣới dạng những milestone hoặc chekpoint để đảm bảo
rằng các sản phẩm trung gian đƣợc đánh giá va giao hang đúng hẹn. Chất
lƣợng của từng sản phẩm trung gian cũng phải luôn đƣợc đánh giá để đảm
bảo rằng sản phẩm cuối cùng đáp ứng đƣợc mục tiêu ban đầu đề ra.
4. Thực thi các phƣơng pháp đánh giá:
Establish means of assessment: two aspects are involved in this
activity:
• Data collection: based on project characteristics such as size,
complexity, level of control, etc., a decision should be made in terms of
whether a manual or an automated data collection process should be
used. If a nonautomated process is applied, then the availability of the
collection medium at the right time should be emphasized.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 804
• Data analysis: the following two types of analyses should be
considered:
- Project analysis — this type of analysis, consisting of checkpoint
analysis and continuous analysis (trend analysis), is concerned with
verifying that intermediate targets are met to ensure that the project
is on the right track.
- Component analysis — this type of analysis concentrates on the
finer level of details of the end product and is concerned with
identifying those components in the product that may require
special attention and action. The complete process includes
deciding on the set of measures to be analyzed, identifying the
components detected as anomalous using measured data, finding
out the root pause of the anomalies, and taking actions to make
corrections.
Hai phƣơng diện liên quan đến quá trình nay:
• Thu thập dữ liệu: dựa trên những đặc điểm của dự án nhƣ quy mô, độ
phức tạp, mức độ kiểm soát… để đƣa ra quyết định rằng dữ liệu sẽ
đƣợc thu thập một cách tự động hay bằng tay, nếu bằng tay thì phải xác
định xem dữ liệu đó sẽ đƣợc thu thập bằng cách nao.
• Phân tich dữ liệu: 2 loại phân tich sau sẽ đƣợc xét đến:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 26:Phương pháp Linkman cho việc kiểm soát chương trình 805
- Phân tich dự án: bao gồm phân tich các checkpoint va phân tich
theo xu hƣớng, liên quan đến việc xác thực các mục tiêu trung gian
qua đó đảm bảo dự án đang đƣợc đi đúng hƣớng.
- Phân tich các nhân tố: loại phân tich nay tập trung vao phân tich
chi tiết của sản phẩm cuối cùng, nhận ra các nhân tố trong sản
phẩm yêu cầu sự chú ý va hanh động đặc biệt. Kết quả cuối cùng
bao gồm việc quyết định độ đo, nhận ra những nhân tố đƣợc phát
hiện la những nhân tố bất thƣờng sử dụng dữ liệu đo đƣợc, tìm ra
nguồn gốc va cách khắc phục những lỗi đó.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 800
CHƢƠNG 27 KELLNER’S
NONTECHNOLOGICAL ISSUES IN
SOFTWARE ENGINEERING
Người dịch: Trần Ngọc Hiệu
27.1 TỔNG QUAN
Although much of the emphasis in current literature is on the
technical issues of software engineering, a number of substantive
nontechnological problems pose dangers to the effective practice of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 801
software engineering. A lack of software engineering productivity can be
caused by managerial, organizational, economic, political, legal, behavioral,
psychological, and social factors.
To achieve an acceptable level of software engineering productivity,
as much emphasis must be placed on ―people‖ issues as on technological
issues. As Boehm puts it, ―Personnel attributes and human relations
activities provide by far the largest source of opportunity for improving
software productivity‖ (Boehm, 1981).
Mặc dù phần lớn các vấn đề đƣợc nhấn mạnh trong tai liệu nay la các
vấn đề về kỹ thuật trong công nghệ phần mềm, nhƣng một số nội dung
không liên quan đến kĩ thuật (nontechnological) cũng gây ảnh hƣởng đến
tinh hiệu quả của quá trình lam phần mềm. Việc thiếu năng suất công nghệ
phần mềm có thể đƣợc gây ra bởi các yếu tố nhƣ sự quản lý, tổ chức, kinh
tế, chinh trị, pháp lý, tâm lý, va các yếu tố xã hội.
Để đạt đƣợc một mức độ chấp nhận đƣợc về năng suất công nghệ
phần mềm, nhƣ la chú trọng nhiều đến yếu tố ―con ngƣời‖ va các vấn đề
nhƣ trên. Nhƣ Boehm đã nói, "các vấn đề, hoạt động liên quan tới con
ngƣời la nguồn tai nguyên lớn nhất lam cải thiện năng suất lam phần mềm‖
(Boehm, 1981).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 802
27.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. Phải thừa nhận rằng quá trình lam phần mềm la "có khả năng rất lộn
xộn va rời rạc do các yếu tố không liên quan đến kĩ thuật lam ảnh
hƣởng đến hiệu quả của các ứng dụng công nghệ ― (Humphrey, 1989).
2. Many nontechnological issues are intertwined with software
engineering. Although any of these is a potential impediment, the
Kellner panel focused on three:
Nhiều vấn đề không liên quan tới kĩ thuật đƣợc ẩn giấu trong quá
trình lam phần mềm. Nhƣng bất kỳ trong số nay có thể la một trở ngại tiềm
ẩn, các bảng của Kellner tập trung vao ba điểm sau:
• The software engineering profession, for the most part, has not
developed a block of capable and competent managers.
• In spite of a concerted effort toward making software development an
engineering discipline, it is still very much of an individual creative
activity, rather than a team effort.
• Little has been done to reduce performance differences among
individuals or across teams.
• Các nganh công nghệ phần mềm, phần lớn, không có phát triển một
nhóm nha quản lý đủ khả năng va thẩm quyền
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 803
• Mặc dù có một số nỗ lực hƣớng tới việc phát triển phần mềm, nhƣng
trong số đó vẫn còn rất nhiều sự sáng tạo của một cá nhân hơn la một
tập thể.
• Chỉ có một it thực hiện để lam giảm sự khác biệt về hiệu suất lam việc
giữa các cá nhân hoặc của cả nhóm.
3. Poor management produces:
• Unrealistic project plans due to poor planning, scheduling, and
estimation skills
• Unmotivated staff due to inability of management to manage a creative
staff
• Lack of teamwork due to inability to build and manage effective teams
• Poor project execution due to inadequate organization, delegation, and
monitoring
• Technical problems due to lack of management understanding of
disciplines such as quality assurance and configuration management
• Inadequately trained staff due to a short-sighted rather than a long-term
perspective
• Yếu trong quản lý sản xuất:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 804
• Kế hoạch dự án không thực tế vì sự yếu kém trong quy hoạch, lập kế
hoạch, va
đánh giá.
• Không quản lý đƣợc nhân viên vì không có khả năng của ngƣời quản lý
để phát triển khả năng sáng tạo của nhân viên.
• Yếu vì không có khả năng lam việc theo nhóm để xây dựng va quản lý
hiệu quả
nhóm.
• Nghèo dự án do tổ chức thực hiện không đầy đủ, sự yếu kém của ngƣời
đại điện giám sát.
• Thiếu kỹ thuật do thiếu hiểu biết về quản lý của các vấn đề kỷ luật nhƣ:
bảo đảm chất lƣợng va cấu hình quản lý.
• Không đao tạo nhân viên một cách tƣơng xứng vì tầm nhìn bị hạn chế
hơn la nhìn thấy một chiến dịch lâu dai
4. Possible solutions to poor management problems:
• Definition of dual career paths for technical and managerial staff
• Training in managerial skills and techniques
• Active mentoring and supervision by senior managers
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 805
• Increased delegation of responsibility and matching authority
Có thể có giải pháp cho các vấn đề yếu trong quản lý:
• Định hƣớng phát triển cho cán bộ kỹ thuật va quản lý.
• Đao tạo kỹ năng quản lý va kỹ thuật
• Các hoạt động tƣ vấn va giám sát đƣợc thực hiện bởi các nha quản lý
cấp cao.
• Đoan đại diện có trách nhiệm va thẩm quyền phù hợp
5. Reasons for lack of teamwork:
• Desire for autonomy
• A culture that reinforces individual efforts more than team efforts
• Concentration of key application knowledge by a few individuals
• Desire for privacy
• The ―not invented here‖ syndrome translated to the ―not invented by
me‖ syndrome
• Large productivity differences from one individual to another
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 806
• Political considerations between powerful individuals and managers
Lý do thiếu tinh thần lam việc nhóm
• Tự cho quyền tự chủ
• Có suy nghĩ rằng tăng cƣờng những nỗ lực cá nhân nhiều hơn những nỗ
lực của cả nhóm.
• Sự tập trung vao những phần chinh của ứng dụng đƣợc lam bởi vai cá
nhân trong nhóm
• Tự cho sự riêng tƣ
• Các hội chứng "không phát minh ra ở đây‖ chuyển thanh hội chứng
"cái đó không phát minh bởi tôi"
• Sự khác biệt lớn về hiệu xuất từ một cá nhân so với những ngƣời khác.
• Sự quan tâm đến quyền lực giữa các cá nhân có năng lực tốt va ngƣời
quản lý.
6. Possible solutions to teamwork problems:
• Objective assessment of team contributions with appropriate rewards
• Development of an organizational culture that condones and rewards
group efforts
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 807
• Active efforts to disperse crucial application knowledge across project
staff
• Improvements in communication and coordination across
organizational layers
• Adoption of ―egoless‖ programming techniques
Có thể có giải pháp cho các vấn đề lam việc theo nhóm:
• Đánh giá khách quan các đóng góp của nhóm với phần thƣởng phù hợp
• Việc phát triển về đặc trƣng cách hanh xử của nhóm ma có sự tha thứ
và thƣởng tặng cho những nỗ lực của nhóm.
• Các hoạt động nhằm nỗ lực để phân tán những kiến thức quan trọng
trong ứng dụng trên toan nhân viên của dự án.
• Những cải thiện trong giao tiếp va phối hợp tổ chức trên toàn nhóm
7. Large performance differences between individuals negate productivity
increases. Boehm estimates that productivity ranges of 3:1 to 5:1 are
typical, with some studies documenting differences as high as 26:1
among experienced programmers (Boehm, 1981). This variability is
often due to:
• Misguided staffing practices
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 808
• Poor team development
• Inattention to the critical role of motivation
• Poor management
Lý do lam giảm năng suất lam việc của nhân viên:
• Nhân viên thực hiện lệch hƣớng.
• Thiếu sự phát triển nhóm.
• Không lƣu y đến vai trò quan trọng của động lực thúc đẩy.
• Thiếu sự quản lý.
8. Techniques to increase effective level of productivity:
• Enhanced training
• Investment in productivity tools (tools, methods)
• Standard practices
• Professional development opportunities
• Recognition
• Effective staffing
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 809
• Top talent
• Job matching
• Career progression
• Team balance
• Improved management
Kỹ thuật để tăng mức hiệu quả của năng suất:
• Tăng cƣờng việc đao tạo.
• Sự đầu tƣ vao những công cụ hựu ich (công cụ, phƣơng thức).
• Tiêu chuẩn trong thực hanh.
• Cơ hội phát triển nghề nghiệp.
• Sự nhận thức.
• Hiệu quả của nhân viên.
• Tai năng.
• Công việc phù hợp.
• Tiến triển nghề nghiệp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 810
• Sự cân bằng của nhóm.
• Cải thiện quản lý.
27.3 TÀI LIỆU THAM KHẢO
Boehm, B.W. (1981). Software Engineering Economics, Prentice-
Hall, Inc., New York.
Ηυμπηρεψ, W.. (1989). Μαναγινγ ηηε οθηωαρε Προχεζζ,
Αδδιζον−Wεζλεψ, Ρεαδινγ, ΜΑ.
27.4 CHUYÊN ĐỀ CHỌN LỌC
Brooks, F.P. (1987). No silver bullet, Computer, 20, 10–19.
Curtis, B., Krasner, H., and Iscoe, N. (1988). A field study of the
software design process for large systems, Commn. ACM, 31, 1268–1287.
Humphrey, W.S., Kitson, D.H., and Kasse, T.C. (1989). The State of
Software Engineering Practice: a Preliminary Report. Tech Rept.
CMU/SEI-89-TR-1, Software Engineering Institute, Carnegie Mellon
University, Pittsburgh.
Kellner, M.I. Software Engineering Institute, with panelists Bill
Curtis, Software Engineering Institute, Tom DeMarco, The Atlantic
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 27: Kellner’s Nontecnological issues in software engineering 811
Systems Guild, Kouichi Kisida, Software Research Associates, Inc.,
Maurice Schlumberger, Cap Gemeini Innovation, Colin Tully, Independent
Consultant for IEEE, 1991, 144–146.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 811
CHƢƠNG 28 MARTIN AND CAREY’S SURVEY
OF SUCCESS IN CONVERTING
PROTOTYPES TO OPERATIONAL SYSTEMS
Người dịch: Trịnh Quang Huy
28.1 TỔNG QUAN
The use of prototyping has increased within the ranks of MIS groups
during the last few years; however, a difference of opinion exists as to how
a prototype should be implemented as well as about the steps taken to make
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 812
the prototype operational. One school of thought stresses that the prototype
is never meant to become an operational system. Therefore, the languages
used as well as the platform selected should be experimental. On the other
side of the argument are those stressing that the prototypical system should
be as close to the operational system as possible. This disagreement has left
MIS organizations without clear guidelines for the use of prototypes in their
companies.
Xu hƣớng sử dụng prototype trong nhóm MIS ngay cang tăng trong
suốt vai năm trở lại đây.Tuy nhiên cũng có những ý kiến khác nhau về
prototype. Một luồng suy nghĩ nhấn mạnh rằng prototype không bao giờ có
nghĩa để trở thanh 1 hệ thống thực thi.Vì vậy ngôn ngữ đƣợc sử dụng tốt
nhƣ la nền tảng đƣợc chọn để sử dụng.Trên khia cạnh khác thì cũng có
những ý kiến nhấn mạnh rằng bản thiết kế prototype cũng có thể độc lập
với hệ thống lam ra nếu có thể.Sự không đồng ý nay bắt nguồn từ những
việc sử dụng prototype không đúng qui tắc trong những công ty của họ.
Martin and Carey (1991) conducted an extensive survey of a sector
of MIS shops within the manufacturing industry and found that ―prototype
models were usually not thrown away, prototypes were usually
programmed in the same language as the operational system, prototyping in
third generational languages was common, and prototyping models were
documented as they were developed‖. These findings, although contrary to
much of the literature on prototyping, are important in that they open a
fresh perspective on an important topic.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 813
Martin va Carey (1991) đã thấy đƣợc rằng ―mô hình prototype
thƣờng không phải la kiểu ―thrown away‖ (tức la lam xong thì vứt
đi),prototype thƣờng đƣợc lập trình trong giống với ngôn ngữ hệ
thống,prototype trong ngôn ngữ thứ 3 đƣợc phổ biến va mô hình prototype
đã đƣợc dẫn chứng nhƣ la những gì họ đã phát triển‖.Đây thật sự la những
sự khám phá mặc dù có nhiều tai liệu có nội dung đối lập về prototype, và
quan trọng trong việc mở ra những khia cạnh mới trong đề tai quan trọng
này.
According to Martin and Carey, ―prototyping is the process of
quickly building a model of the final software system which is used
primarily as a communication tool to assess and meet the information needs
of the user‖.
Theo Martin va Carey thì prototype la quá trình xây dựng mô hình
phần mềm cuối cùng một cách nhanh chóng va nó dùng lam phƣơng tiện
giao tiếp giữa các user với nhau
Their survey found that the use of prototyping was born out of some
major difficulties in the traditional software development approach,
including:
End users do not often possess a clear and concise understanding of
what they need and what they want.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 814
The methodologies and tools currently employed by MIS, data-flow
diagrams and the like cannot demonstrate the workings of an actual
system to the liking, or understanding, of a naive end user.
As the development team grows, so does the complexity of the task of
communication between group members.
Systems developed along traditional lines are often difficult to learn
and use.
As the technology becomes more complex, so do the systems created.
As a result, systems are often developed over longer time periods.
Traditional approaches have been plagued by late delivery and costly
overruns.
It comes as no surprise to MIS staff that a rather large application
development backlog exists. According to Martin and Carey, ―the users
who requested them are frustrated, disillusioned, and ready to revolt‖.
Khảo sát của họ đã cho thấy đƣợc rằng việc sử dụng prototype khác
với những cách tiếp cận phần mềm truyền thống,bao gồm:
End users thƣờng không hiểu về những gì họ cần va họ muốn
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 815
Những phƣơng pháp va công cụ hiện tại đƣợc thuê bởi MIS,sơ đồ DFD
va những gì thuộc dạng nhƣ vậy không thể chứng minh rằng sự hoạt
động của những hệ thống thật sự giống va hiểu những yêu cầu của end
users
Khi ma team coding phát triển nhiều về số lƣợng thì sự phức tạp trong
khâu liên lạc giữa những thanh viên với nhau sẽ trở nên khó khăn
Hệ thống ma đƣợc phát triển dựa trên những phƣơng pháp cũ sẽ khó để
học va sử dụng
Những công nghệ ngay cang trở nên phức tạp vì thế một hệ thống đƣợc
tạo ra phải trải qua nhiều giai đoạn
Cách tiếp cận phần mềm truyền thống lam cho hệ thống chậm trễ va
tốn chi phi.
Dựa theo Martin va Carey thì users la những ngƣời ảo tƣởng,và luôn
sẵn sang cho sự thay đổi yêu cầu.
28.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. In general, the use of prototyping appears more appropriate for
small decision support systems than for large transaction processing
systems. Decision support systems may beneficially use Type I iterative
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 816
systems. However, it has also been found that a transaction processing
system might benefit from a Type II throwaway prototype.
1.Tổng quát,việc sử dụng prototype sẽ lam xuất hiện những quyết
định chinh xác hơn để hỗ trợ hệ thống.so với những bộ xử lý lớn của hệ
thống đó.Ta có thể chọn prototype loại 1 va prototype loại 2 để hỗ trợ hệ
thống.
2. In planning a prototype, the development team should take note of
possible differences between the prototype and operational environments,
including:
Language
Range of transactions
Documentation requirements
Computer architecture
Access control
Procedures
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 817
2.Trong kế hoạch của một prototype,team phát triển hệ thống sẽ lƣu
ý những sự khác nhau giữa prototype va môi trƣờng phần mềm đich,bao
gồm:
• Ngôn ngữ
• Các loại xử lý
• Tai liệu yêu cầu
• Kiến trúc máy tinh
• Kiến trúc máy tinh
• Quản lý quyền truy cập
• Thủ tục
3. The programming language for the ultimate operational system
should be self-documenting. There are inherent differences between third
generation languages of the operational environment and fourth generation
languages of the prototype environment. These include:
• 4GLs are not as self-documenting as 3GLs.
• 4GLs more than likely have features not available in 3GLs, such as
rapid database inquiry.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 818
• 4GLs often use recursive paths not compatible with the structured, top–
down operational language requirements.
3.Ngôn ngữ lập trình cho hệ thống cuối cùng phải đƣợc tai liệu hóa
4. Of a system‘s inputs, 4.20 percent usually represent 80 percent of
the transaction volume. Therefore, it is this 20 percent that should be the
domain of prototyping, according to Martin and Carey, be cause ―a
prototype is designed to show users what typically will happen, rather than
all that can happen‖.
4.Theo Martin va Carey thì ―một prototype show ra cho ngƣời dùng
tiêu biểu những gì ma phần mềm lam đƣợc,va hơn thế nữa là tất cả những
chức năng của nó―.
5. Turning a prototype into an operational system requires the
development team to account for 100 percent of the system‘s transactions,
rather than the 20 percent accountable in the prototype.
5.Chuyển từ prototype sang một hệ thống trong thế giới thực thì cần
đội ngũ phát triển tốt.Yêu cầu la 100% đều phải chịu trách nhiệm giải quyết
các vấn đề về hệ thống.Thêm vao đó la 20% ngƣời chịu trách nhiệm về
prototype.
6. Prototypes are often run on a microcomputer because:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 819
• The PC is portable for demonstrations.
• It will not be disrupted by operational problems.
• It will not disrupt operations systems.
6.Prototype thƣờng chạy trên những máy tinh nhỏ bởi vì:
• Máy PC có thể linh động để thể hiện
• Nó sẽ không bị phá vơ bởi những vấn đề hoạt động.
• Nó sẽ không phá vơ những hoạt động của hệ thống.
7. Systems are composed of more than just software. Systems also
include hardware, people, and data. The procedures used to tie all ofthese
together in the prototype are far less complex than procedures required in
an operational system.
7.Một hệ thống thƣờng bao gồm nhiều phần mềm.Va những hệ thống
nay cũng bao gồm phần cứng, ngƣời va dữ liệu.Thủ tục sẽ sử dụng tất cả
những gì quen thuộc trong prototype thì sự phức tạp sẽ it hơn thủ tục đƣợc
dùng đến trong hoạt động của hệ thống.
8. Conversion from an iterative prototype to a full operational system
is complex and time consuming. Steps required include:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 820
• Language conversion
• Expansion to full transaction range
• Extensive documentation
• Change from microenvironment to operational platform
• Establishment of access control
• Development of procedures
8. Quá trình chuyển đổi từ một prototype sang một hệ thống đƣa vao
sử dụng đƣợc la rất phức tạp va tốn nhiều thời gian.Những bƣớc yêu cầu
bao gồm:
• Quá trình chuyển đổi ngôn ngữ
• Mở rộng cho đến khi đầy đủ các loại xử lý.
• Mở rộng tai liệu
• Thay đổi từ những môi trƣờng nhỏ sang nền tảng sẵn sang hoạt động
• Thiết lập quyền truy cập
• Phát triển các thủ tục
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 821
9. The pain of prototype to operational system conversion can be
eased somewhat by careful development of the prototype. Approaches that
accomplish this goal include:
• The prototype should be programmed in the same language as the
ultimate operational system.
• The prototype should be documented as it evolves.
• The prototype should be developed on the ultimate platform. If the
system is intended for use on a mainframe, then prototype iton a
mainframe
9. Những lỗi ma khi ta chuyển từ prototype sang hệ thống trong thế
giới thực có thể nhẹ nếu có sự cẩn thận trong quá trình thiết kế
prototype.Một cách tiếp cận để hoan thanh mục tiêu nay bao gồm:
• Prototype có thể đƣợc lập trình trong ngôn ngữ giống với ngôn ngữ ma
thiết kế ra hệ thống
• Prototype nên đƣợc tai liệu hóa
• Prototype nên đƣợc phát triển dựa trên nền tảng cuối cùng.Nếu một hệ
thống đƣợc dự định sẽ chạy trên máy mainframe thì prototype của nó
cũng phải đƣợc thiết kế để chạy trên máy mainframe
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 822
10. The Martin and Carey survey documented the prototyping charac
teristics discussed above as the techniques used in a segment of commercial
industry. The specific survey results follow:
• Prototype models were not usually thrown away.
• Throwaway prototypes were not actually thrown away; they were often
used for other purposes, such as training.
• Prototypes were usually programmed in the same language as the
operational system.
• Prototyping in 3GLs was not uncommon. According to Martin and
• Carey, ―the power of reusable code for a 3GL such as COBOL should
not be underestimated‖.
• Prototyping models were documented as they were developed.
• The primary goal of the prototype process was user communications
and involvement, not system development efficiency.
10. Kết quả khảo sát của Martin and Carey:
• Mô hình prototype không thƣờng la ―thrown away‖
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 28: Martin and Carey’s survey 823
• Thrownaway prototype ko phải la thrown away,chúng thƣờng đƣợc sử
dụng cho những mục đich khác nhƣ la tranning
• Prototype thƣờng sử dụng ngôn ngữ giống với ngôn ngữ lam ra hệ
thống đó
• Mô hình prototype có thể đƣợc dẫn chứng bằng tai liệu nhƣ khi thiết kế
1 hệ thống thật sự.
• Cái đich của quá trình thiết kế prototype chính là sự liên lạc giữa các
user(cụ thể ở đây la developer va customer).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 823
CHƢƠNG 29 KHUYNH HƢỚNG CỦA PUTNAM
TRONG SỰ ĐO LƢỜNG, DỰ ĐOÁN VÀ KIỂM
SOÁT
Người dịch: Trần Duy Khang
29.1 TỒNG QUAN
Although most MIS managers have read about the different
techniques of measurement, estimation, and control, they are still confused
about how to apply them to their own situations. In addition, a plethora of
information about this topic has served only to confuse these practitioners,
rather than enlighten them.
Mặc dù hầu hết các nha quản lý MIS đã đọc về các kỹ thuật khác
nhau về đo lƣờng, dự toán, va kiểm soát, họ vẫn nhầm lẫn về cách áp dụng
chúng vao hoan cảnh riêng của họ. Ngoai ra, trạng thái thừa của các thông
tin về chủ đề nay đã phục vụ duy nhất để nhầm lẫn những ngƣời hanh nghề,
thay vì day dô chúng.
Putnam estimates that, in the development of complex systems, from
50 to 70 percent of these projects come in late, over budget, or in error.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 824
Most academicians as well as notables in the field, Putnam included,
conclude that one of the major problems is that MIS departments have not
developed the facilities to gauge where they are or where they should be.
The old stand-by, lines of code (LOC), is, according to Putnam, ―the worse
metric‖. Twelve years of Putnam‘s research has shown that ―both the
numerator (number of lines) and the denominator (number of manonths)
vary with a host of factors related to the environment and management
practices in complex, ill-understood, nonlinear ways that cause it to behave
unintuitively‖ (Putnam, 1991). The result is that the LOC metric is wrong
approximately 90 percent of the time.
Putnam ƣớc tinh rằng, trong sự phát triển của các hệ thống phức tạp,
50-70 phần trăm của các dự án nay bị trễ hạn, vƣợt ngân sách hoặc bị lỗi.
Hầu hết các chuyên gia trong lĩnh vực nay, bao gồm Putnam, kết luận rằng
một trong những vấn đề lớn la bộ phận MIS đã không phát triển các cơ sở
để đo lƣờng ở nơi họ đang hoặc nơi họ cần. Các đứng tuổi-by, dòng mã
(LOC), la, theo Putnam, "những số liệu tồi tệ hơn". Kết quả nghiên cứu
trong 12 năm của Putnam đã chỉ ra rằng "cả hai tử số (số dòng) va mẫu số
(số của con ngƣời - tháng) khác nhau với một máy chủ của các yếu tố liên
quan đến môi trƣờng va thực tiễn quản lý phức tạp, khó hiểu, phi tuyến gây
ra những cách ma nó cƣ xử unintuitively ― (Putnam, 1991). Kết quả la các
số liệu (LOC)la sai khoảng 90 phần trăm của thời gian.
In the late 1980s and in the 1990s, emphasis on measurement has
been renewed. MIS shops are now attempting to evaluate the reliability of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 825
soft ware. In this chapter, a series of issues is raised in this area that the
professional intent on installing a measurement program will want to
review carefully
Trong cuối thập niên 1980 va trong những năm 1990, sự đánh giá đã
đƣợc coi trọng trở lại. MIS cửa hang va đang cố gắng để đánh giá độ tin cậy
của phần mềm. Trong chƣơng nay, một loạt các vấn đề đƣợc nêu ra trong
khu vực nay có mục đich chuyên nghiệp về cai đặt một chƣơng trình đo
lƣờng sẽ muốn xem xét cẩn thận
29.2 THỦ TỤC / VẤN ĐỀ / CHÍNH SÁCH
1. Putnam defines a set of workable metrics as that which is simple, single
valued, and which the boss understands. The following is the set that he
recommends:
• Quantity of function (such as source lines of code and function points)
• Schedule (the elapsed calendar time)
• People (the monthly head count)
• Effort (the sum of the people applied over time)
• Defects (the number of valid problem trouble reports over some time
interval. This can easily be converted to mean time to defect.)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 826
Putnam định nghĩa một tập hợp các số liệu hoan toan khả thi vì đó la
đơn giản, duy nhất có giá trị, va đó la ông chủ hiểu đƣợc. Sau đây la tập ma
ông đề nghị:
• Số lƣợng các chức năng (nhƣ các dòng mã nguồn va các điểm chức
năng)
• Lịch trình (thời gian trôi qua lịch)
• Số giờ lam việc hằng tháng
• Nỗ lực (tổng của ngƣời dân đƣợc áp dụng theo thời gian)
• Số lƣợng các báo cáo vấn đề rắc rối có giá trị hơn một số khoảng thời
gian nay có thể dễ dang đƣợc chuyển đổi sang có nghĩa la thời gian để
khuyết tật..
2. Making total quality realistic in a software engineering environment:
• Take quality seriously.
• Take productivity improvement seriously.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 827
• Measure progress with the right metrics.
• Set realistic goals.
• Focus MIS investment and education on the weaker spots.
• Aim for a small gain every day.
Tạo chất lƣợng tổng số trong môi trƣờng thực tế công nghệ phần
mềm:
• Cải thiện chất lƣợng
• Cải thiện năng suất.
• Đo lƣờng sự tiến bộ với các số liệu đúng.
• Đặt mục tiêu thực tế.
• Tập trung đầu tƣ va giáo dục cho các MIS về những điểm yếu.
• Mục tiêu cho một lợi nhỏ mỗi ngay.
3. Use statistical process control on projects. This technique couples
statistical techniques with the metrics outlined above. The basics of
software control:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 828
• Milestone accomplishments (schedule)
• Effort expenditure (in man-months)
• Code production
• Defect identification (trouble reports)
Sử dụng thống kê để kiểm soát các dự án. Kỹ thuật thống kê theo lặp
trình cặp đôi với số liệu nêu ở trên. Các vấn đề cơ bản của phần mềm kiểm
soát:
• Lịch trình thực hiện
• Nỗ lực - kinh phí (hàng tháng)
• Code đƣợc trình bay
• Báo cáo sự cố mắc phải
These statistics should be captured each month and compared with
the plan.
Sự thống kê nay đƣợc thực hiện hằng tháng va đƣợc đối chiếu với kế
hoạch lý thuyết
4. Unfavorable variations indicate slippage and overrun.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 829
Chỉ ra các biến đổi không thuận lợi để lam giảm sự lan tran của
chúng.
5. Statistical software packages should be used because a simple
extrapolation to predict the future is not useful. Statistical curve-fitting
techniques, readily available in this type of software, are a desirable
tool for control.
Nên sử dụng các phần mềm thống kê đóng gói bởi vì một phép suy
diễn đơn giản để dự đoán tƣơng lai không phải la có ich. Thống kê đƣờng
cong-kỹ thuật lắp, sẵn trong loại phần mềm, la một công cụ mong muốn để
điều khiển.
6. Putnam‘s outlook for the future: Control offices will be established to
measure, plan, and controlprojects. This will be called the software-
data repository and will be responsible for measuring process–
productivity improvement as well as for generating realistic and
consistent work plans for the individual project teams.
Putnam 's Nhận định cho tƣơng lai: chức vụ kiểm soát sẽ đƣợc thanh
lập để đo lƣờng, kế hoạch va điều khiển dự án. Điều nay sẽ đòi hỏi các kho
dữ kiệu phần mềm, chịu trách nhiệm việc đo lƣờng quá trình cải thiện năng
suất xử lý cũng nhƣ tạo ra kế hoạch công tác thực tế va phù hợp cho các đội
dự án riêng lẻ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 29: Khuynh hướnf của Putnam trong sự đo lưởng, dự đoán 830
7. Executive managers will begin to take a more active interest in
development because they realize that it is strategically important to the
organization.
Giám đốc quản trị sẽ chủ động quan tâm hơn trong phát triển bởi vì
họ nhận ra rằng đó la chiến lƣợc quan trọng để tổ chức
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 831
CHƢƠNG 30 KỸ THUẬT CỦA SPRAGUE CHO
QUẢN TRỊ CẤU HÌNH PHẦN MỀM TRONG
KỸ NGHỆ PHẦN MỀM DỰA VÀO ĐO LƢỜNG
Người dịch: Huỳnh Lâm Linh
30.1 TỔNG QUAN
The role of software configuration management (SCM) has increased
in significance over the last few years. Sprague enumerates several reasons
for SCM‘s expanded role:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 832
Vai trò của quản lý cấu hình phần mềm (SCM) đã tăng tầm quan
trọng trong vai năm qua. Sprague liệt kê một số lý do mở rộng vai trò của
SCM:
The size of software projects has grown meaning that there are more
components to manage.
Kich cơ của dự án phần mềm đã tăng trƣởng, nghĩa la có thêm các
thanh phần để quản lý.
The introduction of CASE tools has increased the number and types
of machine-readable objects that must be maintained.
New computing topologies and application structures have come on
the scene.
Các cấu trúc topo tinh toán mới va cấu trúc ứng dụng đã đến trên ngữ
cảnh.
These reasons, coupled with an increasing awareness of the
competitive and strategic organizational issues vis-a-vis technology, have
placed an emphasis on being able to control the technology environment.
Những lý do nay, cùng với một nhận thức ngay cang tăng của tổ
chức cạnh tranh va chiến lƣợc các vấn đề công nghệ vis-a-vis, đã nhấn
mạnh vao việc có thể để kiểm soát môi trƣờng công nghệ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 833
Sprague‘s definition of SCM expands on the traditional meaning,
which is control over the source code. Sprague emphasizes that SCM
should con-sider all of the work products associated with a project
including:
• Contracts
• Memorandums
• Letters
• Project plans
• Schedules
• System and software requirements
• Design documentation
• Source, object, and executable code
• Data
• Build and installation files
• Test descriptions, results, and reports
• Systems and network options
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 834
• Metrics
• Technical reports
• Education and training documents
• Presentation slides
• Videos
• Business models and plans
Định nghĩa của Sprague về SCM mở rộng dựa trên ý nghĩa truyền
thống,cái ma kiểm soát trên mã nguồn. Sprague nhấn mạnh rằng SCM nên
xét tất cả các sản phẩm công việc liên quan đến một dự án, bao gồm:
• Hợp đồng
• Biên bản ghi nhớ
• Thƣ
• Kế hoạch dự án
• Lịch lam việc
• Các yêu cầu hệ thống va phần mềm
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 835
• Thiết kế tai liệu hƣớng dẫn
• Nguồn, file object, va mã thực thi
• Data
• Các file build va file cai đặt
• Kiểm tra mô tả, kết quả, va báo cáo
• Hệ thống va các tùy chọn mạng
• Metrics
• Các báo cáo kỹ thuật
• Tai liệu training
• Các slide trình diễn
• Các video
• Kế hoạch va mô hình kinh doanh
SCM is a formal engineering discipline, as described in the 1983
IEEE standard 828–1983. ―Standard for Software Configuration
Management Plans‖ is the means through which the integrity of the
software product is recorded, communicated, and controlled. Derived from
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 836
hardware-oriented configuration management (CM), SCM‘s objective is the
cost-effective management of a software system‘s life cycle and the
resultant configuration.
As Sprague (1991) suggests, ―it is the process of ensuring the
software and associated products are visible, traceable, and formally
controlled throughout their evolution‖.
SCM la một lĩnh vực kỹ thuật chinh thức, nhƣ mô tả trong IEEE
1983 828-1.983. "Tiêu chuẩn đối với kế hoạch quản lý cấu hình phần mềm―
la phƣơng tiện ma qua đó sự toan vẹn của các sản phẩm phần mềm đƣợc
ghi lại, truyền đạt, va kiểm soát. Bắt nguồn từ quản lý cấu hình (CM) định
hƣớng theo phần cứng, mục tiêu của SCM la sự quản lý chi phi hiệu quả
của vòng đời một hệ thống phần mềm va cấu hình các kết quả. Nhƣ
Sprague (1991) cho thấy, "nó la quá trình đảm bảo phần mềm va các sản
phẩm liên quan có thể nhìn thấy, theo dõi, va chinh thức kiểm soát trong
suốt sự tiến hóa của nó‖.
Perhaps the most important concept behind SCM is baseline
management. A baseline is a specification or product, formally reviewed
and agreed upon, which thereafter serves as the basis for further develop-
ment — one that can be changed only through formal change control
procedures.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 837
Có lẽ các khái niệm quan trọng nhất đằng sau SCM la sự quản lý các
base-line. Một baseline la một đặc tả kỹ thuật hoặc sản phẩm, đƣợc xem
xét và thoả thuận chinh thức, ma sau đó phục vụ nhƣ la cơ sở cho sự phát
triển hơn nữa - trong nó đó có thể đƣợc thay đổi chỉ có thông qua các thủ
tục kiểm soát thay đổi.
Four functions are employed to manage the baseline and its products:
configuration identification, configuration control, configuration status
accounting, and configuration auditing. This chapter presents an overview
of SCM as well as a process for implementing it.
Bốn chức năng đƣợc dùng để quản lý baseline va các sản phẩm của
nó: cấu hình xác định (configuration identification), cấu hình điều khiển
(configuration control), cấu hình tình trạng kế toán (configuration status
accounting) va cấu hình kiểm toán (configuration auditing). Chƣơng nay
giới thiệu tổng quan về SCM cũng nhƣ quá trình thực hiện nó.
30.2 THỦ TỤC / VẤN ĐỀ / CHÍNH SÁCH
Configuration identification is the process of designating the
configuration items in a system and recording their characteristics. This
process entails determination of the constituent parts of the software and of
the relationship of those parts, assignment of a label and a name to each
part, and graphical depiction of the identified software.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 838
Cấu hình nhận dạng (configuration identification) la quá trình chỉ
định các mục cấu hình trong hệ thống va ghi lại các đặc trƣng của nó. Quá
trình nay đòi hỏi phải xác định các bộ phận cấu thanh của phần mềm va các
mối quan hệ giữa các thanh phần nay, đánh nhãn va tên cho mỗi phần, thể
hiện đồ họa cho phần mềm đƣợc xác định.
Configuration control provides the administrative mechanism for
precipitating, preparing, evaluating, approving or disapproving, and
implementing every change to all the products in a baseline. The purpose of
configuration control is to assure:
• Comprehensive system impact analysis
• Cost and schedule impact analysis
• Optimum and coordinated implementation
• Accurate configuration records
• Supportability
Cấu hình kiểm soát cung cấp cơ chế hanh chinh, chuẩn bị, đánh giá,
phê duyệt hoặc từ chối, va thực hiện mọi thay đổi đến tất cả các sản phẩm
trong một baseline. Mục đich của cấu hình kiểm soát la để đảm bảo:
• Sự phân tich tác động hệ thống một cách toan diện
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 839
• Chi phi va tác động lịch lam việc
• Tối ƣu va phối hợp thực hiện
• Tinh chinh xác các bản ghi cấu hình
• Khả năng hỗ trợ
Configuration status accounting is the process of collecting,
recording, and reporting on configuration control information. The
following information is typically maintained as well as archived:
• The time at which each baseline was established
• The time at which each item and change was included in the baseline
• A description of each software configuration item
• The status of each software-related engineering change
• The description of each software change
• The documentation status for each baseline
• The changes planned for each identified future baseline.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 840
Cấu hình tình trạng kế toán la quá trình thu thập, ghi âm, va báo cáo
trên thông tin điều khiển cấu hình. Nhữnghông tin sau thƣờng đƣợc duy trì
cũng nhƣ lƣu trữ:
• Thời gian ma ở đó mỗi baseline đƣợc hoan thanh
• Thời gian ma mỗi mục va thay đổi đƣợc đƣa vao trong baseline
• Mô tả của mỗi mục cấu hình phần mềm
• Tình trạng document cho mỗi baseline
• Tình trạng của mỗi sự thay đổi lỹ thuật liên quan đến phần mềm
• Các mô tả của mỗi phần mềm thay đổi
• Những kế hoạch thay đổi cho từng baseline xác định trong tƣơng lai
Configuration auditing is the process of verifying that all required
configuration items have been produced, that the current version agrees
with the specified requirements, that the technical documentation describes
the configuration items, and that all change requests have been resolved.
Cấu hình kiểm toán la quá trình xác minh rằng tất cả các yêu cầu cấu
hình đã đƣợc thực hiện, ma phiên bản hiện tại thich hợp với các yêu cầu
quy định (các document kỹ thuật mô tả các mục cấu hình), va tất cả yêu
cầu thay đổi đã đƣợc giải quyết.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 841
30.3 THỦ TỤC PHÁT TRIỂN MỘT QUY TRÌNH SCM
1. Develop an SCMP.
• The first step is to develop a plan tailored to the needs of the project
and organization. The plan addresses the four components of SCM
described above. The SCMP should address thefollowing:
• The characteristics of the work products controlled
• The work products to be controlledThe different interfaces to be
managed
• The expected duration of the project
• The available resources
• The organizational responsibilities of project members
• The identification procedures that will be used on each project
• The procedures for checking items into and out of the software libraries
• The procedures for managing the change process
• The authority, membership, and decision-making process of the group
charged with this information‘s control
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 842
• The procedures to create and approve the promotion of a baseline
• The membership data that will be collected, stored, and reported
• The procedures to collect, store, and report the measurement data
• The mechanism to transfer objects between repositories
• The procedures for releasing versions
• The automated tools that will be used to support the SCM process
• The procedure for recovering work products in the event of a Disaster
Phát triển một kế hoạch SCM.
• Bƣớc đầu tiên la phát triển một kế hoạch phù hợp với nhu cầu của dự
án va tổ chức. Kế hoạch nay nhắm đến bốn thanh phần của SCM đƣợc
mô tả ở trên. SCMP nên nhắm đến:
• Các đặc tinh của các sản phẩm công việc ma đƣợc kiểm soát
• Các sản phẩm công việc phải đƣợc kiểm soát
• Các giao diện khác nhau nên đƣợc quản lý
• Thời hạn dự kiến của dự án
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 843
• Các nguồn lực sẵn có
• Các trách nhiệm mang tinh tổ chức của các thanh viên dự án
• Các thủ tục nhận dạng sẽ đƣợc sử dụng trên từng dự án
• Các thủ tục kiểm tra ghi vao va ra của các thƣ viện phần mềm
• Các thủ tục để quản lý quá trình thay đổi
• Các quá trình ủy quyền, va ra quyết định của nhóm đƣợc giao với sự
kiểm soát của các thông tin nay
• Các thủ tục để tạo ra va chấp thuận việc xúc tiến của một baseline
• Dữ liệu thanh viên ma đƣợc thu thập, lƣu trữ, va báo cáo
• Các thủ tục để thu thập, lƣu trữ, va báo cáo về dữ liệu đo lƣờng
• Các cơ chế để chuyển các đối tƣợng giữa các kho
• Các thủ tục phát hanh các phiên bản
• Các công cụ tự động ma sẽ đƣợc sử dụng để hỗ trợ các quá trình SCM
• Thủ tục phục hồi các sản phẩm công việc trong trƣờng hợp có sự cố
2. Implement the SCMP:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 844
This step requires that those charged with the SCM take actions to
ensure that it is implemented. This implies that the SCMP be periodically
reviewed — and revised, if necessary.
Thực hiện kế hoạch SCM:
Bƣớc nay đòi hỏi những cái đƣợc giao với SCM phải đƣợc tiến hanh
để đảm bảo kế hoạch SCM đƣợc thực thi. Điều nay ngụ ý rằng kế hoạch
SCM đƣợc định kỳ xem xét lại - va sửa đổi, nếu cần thiết.
3. Identify and control the work products.
This task is accomplished by identifying each object checked into the
repository, securing an electronic or paper copy of the object, placing the
object in a location where it cannot be modified, and, finally, making a log
entry describing the events that took place during the transaction.
Xác định va kiểm soát các sản phẩm công việc
Nhiệm vụ nay đƣợc thực hiện bằng cách xác định mỗi đối tƣợng
đƣợc kiểm tra vao kho, bảo vệ một bản sao điện tử hoặc giấy của đối tƣợng,
đặt đối tƣợng ở một vị tri ma nó không thể bịthay đổi va, cuối cùng, lam
cho một mục nhật ký mô tả những sự kiện ma đã diễn ra trong quá trình
giao dịch.
4. Collect, store, and report preliminary measurements.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 845
This should be done at each phase of the development project. The
benefits derived from collecting and analyzing the measurements at each
stage provide the manager with insight into how the project is doing in
terms of cost, schedule, and size.
Thu thập, lƣu trữ, va báo cáo sơ bộ các đo đạt
Điều nay nên đƣợc thực hiện ở từng giai đoạn của dự án. Những lợi
ích thu đƣợc từ thu thập va phân tich các đo đạt ở từng giai đoạn cung cấp
cho ngƣời quản lý với cái nhìn sâu sắc lam thế nao dự án đƣợc thực hiện về
chi phi, lịch trình, va kich cơ.
5. Transfer the work products to the work group responsible for SCM,
who will secure and control it.
Chuyển giao các sản phẩm công việc vao nhóm lam việc chịu trách
nhiệm về SCM, những ngƣời sẽ bảo mật va kiểm soát nó.
6. Deliver the work products to the customer.
Cung cấp những sản phẩm lam việc với khách hang.
7. Collect, store, and report the final measurements to project members
and users, as well as to senior management.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 30: Kỹ thuật của Sprague cho quản trị cấu hình phần mềm 846
Thu thập, lƣu trữ, va báo cáo các số đo cuối cùng cho các thanh viên
dự án va ngƣời sử dụng, cũng nhƣ cho quản lý cấp cao.
30.4 TÀI LIỆU THAM KHẢO
Sprague, K.G. (1991). The role of software configuration
management in a measurement-based software engineering program, ACM
SIGSOFT Software Eng. Notes, 16, 1–10.
30.5 CHUYÊN ĐỀ CHỌN LỌC
Bryan, W.L. and Siegel, S. (1988). Software Product Assurance:
Techniques for Reducing Software Risk, Elsevier Science Publishing, New
York.
Forte, G. (1990). Configuration management survey, CASE Outlook,
90, 24–51.
Humphrey, W.S. (1989). Managing the Software Process, Addison-
Wesley Publishing Co., Reading, MA.
Tichy, W.F. (1989). Tools for software configuration management,
11th International Conference on Software Engineering, May 15–18, 1989.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 847
CHƢƠNG 31 HỆ PHƢƠNG PHÁP LUẬN CỦA
CORBIN VỀ THIẾT LẬP MÔI TRƢỜNG
PHÁT TRIỂN PHẦN MỀM
Người dịch: Nguyễn Thị An Nhơn
31.1 TỔNG QUAN
The software development environment (SDE) is actually the
integration of a number of processes, tools, standards, methodologies, and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 848
related elements whose purpose is to provide a framework for building
quality software (Corbin, 1991). This chapter discusses the elements of
SDE and shows how to develop one.
Môi trƣờng phát triển phần mềm (SDE) la trộn lẫn của một số quy trình,
công cụ, tiêu chuẩn, phƣơng pháp, va các yếu tố liên quan với mục đich la cung
cấp một cấu trúc nền tảng để xây dựng phần mềm chất lƣợng (Corbin, 1991).
Chƣơng nay ban về các yếu tố của SDE va cho thấy lam thế nao để phát triển
SDE.
31.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH
1. The elements of SDE
• Project management
• Business plan
• Architecture
• Methodologies
• Techniques
• Tools
• Metrics
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 849
• Policies and procedures
• Technology platform
• Support
• Standards
• Education and training
Các nhân tố của SDE
• Quản lý dự án
• Kế hoạch kinh doanh
• Cấu trúc
• Hệ phƣơng pháp
• Kỹ thuật
• Các công cụ
• Độ đo
• Các chinh sách va các thủ tục
• Nền tảng công nghệ
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 850
• Hỗ trợ
• Các tiêu chuẩn
• Giáo dục va đao tạo.
2. The benefits of SDE
• Improved problem definition
• Selection of the ―right‖ problem according to the customer
• Joint customer and IS responsibility and accountability
• Acknowledgment of customer ownership of system
• Reduced costs of systems development and maintenance
• Reusability of software, models, and data definitions
• Acceptance of the disciplined approach to software engineering using a
consistent methodology
• Productivity improvements through team efforts and tools such as
CASE.
Lợi ich của SDE
• Định nghĩa các vấn đề đƣợc chinh xác hơn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 851
• Việc lựa chọn vấn đề theo đúng ý khách hang.
• Nhóm khách hang va trách nhiệm về hệ thống thông tin (IS) va trách
nhiệm.
• Thừa nhận quyền sở hữu hệ thống của khách hang.
• Giảm chi phi của các phát triển va bảo trì hệ thống.
• Tái sử dụng phần mềm, các mô hình, va định nghĩa dữ liệu.
• Chấp nhận phƣơng pháp có kỷ luật thống nhất vao kỹ thuật phần mềm
(software engineering).
• Năng suất cải tiến thông qua các nỗ lực của đội va các công cụ nhƣ
CASE.
3. Sample goals of SDE
• Reduce systems development costs
• Reduce maintenance costs
• Reduce MIS turnover rate
These goals should be quantifiable wherever possible. For example,
the first goal could be stated as ―reduce systems development costs by 50
percent over the next five years‖.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 852
Các mục đich mẫu của SDE
• Giảm chi phi phát triển hệ thống.
• Giảm chi phi bảo trì.
• Giảm tỷ lệ MIS turnover.
Các mục đich nên đƣợc địn lƣợng bất cứ khi nao cần thiết. Vi dụ:
mục đich đầu tiên có thể đƣợc phát biểu la ―giảm 50% chi phi phát triển hệ
thống trong vòng 5 năm tới‖.
4. Architecture
Many organizations do not have a formal, documented architecture.
There are three types:
• Business architecture is a model of the business and identifies such
things as processes and entities in the form of models.
• Computing architecture, at a minimum, identifies hardware, software,
and data communications. This breaks out into components such as
operating systems, data resource management, network protocols, and
user interface.
• Enterprise architecture is a combination of business and computing
architectures.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 853
Kiến trúc
Nhiều tổ chức không có một kiến trúc chinh thức va đƣợc tai liệu hóa.
Có 3 loại:
• Kiến trúc kinh doanh: la một mô hình kiến trúc của doanh nghiệp va
xác định những thứ nhƣ quy trình va các tổ chức dƣới hình thức các mô
hình.
• Kiến trúc máy tinh, ở mức tối thiểu, xác định phần cứng, phần mềm, va
việc truyền thông dữ liệu. Điều nay chia ra thanh các thanh phần nhƣ
hệ thống điều hanh, quản lý tai nguyên dữ liệu,mạng lƣới giao thức, va
giao diện ngƣời dùng. Enterprise architecture is a combination of
business and computing architectures.
• Kiến trúc doanh nghiệp la một sự kết hợp giữa kiến trúc kinh doanh va
kiến trúc máy tinh
5. Business plan
• Create a steering committee that provides direction to the MIS
function.
• Translate the organization‘s business plan into an actionable MIS plan
that supports the company‘s goals and objectives.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 854
• The steering committee should be responsible for funding projects,
setting priorities, resolving business issues, and reviewing MIS policies
and procedures.
• Kế hoạch kinh doanh
• Tạo một ban chỉ đạo hƣớng đi đến chức năng MIS.
• Chuyển kế hoạch kinh doanh của tổ chức thanh kế hoạch MIS để hỗ trợ
mục tiêu của công ty.
• Ban chỉ đạo phải có trách nhiệm cấp vốn cho dự án, thiết lập mức độ
ƣu tiên, giải quyết các vấn đề kinh doanh, va xem xét các chính sách và
thủ tục MIS.
6. Education and training
Make sure that analysts, programmers, and users are trained and
ready to start the development project. Training might include the
following:
• Software engineering concepts
• Prototyping
• System development life cycle
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 855
• Joint application development
• Software quality assurance and testing
• Project management
• Data and process modeling
• CASE
Giáo dục va đao tạo:
Đảm bảo rằng các nha phân tich, lập trình, va ngƣời dùng đƣợc huấn
luyện va sẵn sang để bắt đầu phát triển dự án. Đao tạo có thể bao gồm:
• Các khái niệm công nghệ phần mềm
• Chu kỳ phát triển hệ thống
• Nhóm phát triển ứng dụng.
• Đảm bảo chất lƣợng phần mềm va testing.
• Quản lý dự án.
• Mô hình hóa dữ liệu va tiến trình
• CASE.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 856
7. Methodologies
Whether the methodology chosen by the MIS department is a
standard one, supplied from a vendor, or developed internally, the MIS
group must follow one to ensure consistency from project to project. This
will enable staff to be able to move from project to project without
retraining while, at the same time, ensuring consistent deliverables.
Questions to ask when selecting a methodology are:
• Does your methodology support the entire systems development life
cycle?
• Does it include maintenance?
• Is it clearly documented?
• Does it focus on deliverables instead of activities?
• Is it CASE tool-independent?
• Can you use your metrics and techniques with it?
Hệ phƣơng pháp luận
Cho dù các phƣơng pháp lựa chọn bởi bộ phận MIS la một phƣơng pháp
chuẩn, cung cấp từ nha cung cấp, hoặc đƣợc phát triển nội bộ, nhóm MIS phải
tuân theo một phƣơng pháp để bảo đảm tinh nhất quán từ dự án để dự án. Điều
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 857
nay sẽ cho phép nhân viên để có thể di chuyển từ dự án nay sang dự án khác
ma không cần đao tạo lại va đảm bảo sản phẩm cuối cùng thống nhất. Các câu
hỏi khi nao chọn một hệ phƣơng pháp luận la:
• Liệu phƣơng pháp luận của bạn hỗ trợ phát triển toan bộ chu trình hệ
thống?
• Liệu nó bao gồm việc bảo dƣơng?
• Có đƣợc tai liệu hóa rõ rang không?
• Liệu nó có tập trung vao sản phẩm hƣớng đến thay vì các hoạt động?
• Có độc lập với công cụ CASE không?
• Bạn có thể sử dụng độ đo va kỹ thuật của bạn với nó?
8. Project Management
Questions to ask include:
• Do you have a formal project management discipline in place?
• Do you have a training program to support this?
• Is a software tool used?
• Do you have program planning and control to help manage the project?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 858
• Do you get routine reports showing the project work breakdown
structure, status reports, resource loading, and cost projections?
• Is there a formal reporting mechanism done on a timely basis to resolve
problems?
Quản lý dự án:
Các câu hỏi để hỏi bao gồm:
• Bạn đã có một kỷ luật quản lý dự án chinh thức tại địa điểm?
• Bạn đã có một chƣơng trình đao tạo để hỗ trợ chƣa?
• Có sử dụng công cụ nao không?
• Bạn có chƣơng trình lập kế hoạch va kiểm soát để giúp quản lý dự án?
• Bạn nhận đƣợc báo cáo định kỳ trình bay những cấu trúc công việc của
dự án, báo cáo về tình trạng, tai nguyên, va dự trù chi phi?
• Có cơ chế báo cáo chinh thức thực hiện một cách kịp thời để giải quyết
vấn đề?
9. Standards
Some of the areas in which standards are required are:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 859
• Systems analysis and design
• Data administration
• Database administration
• Systems testing
• Prototyping
• Documentation
• Data entry
• Systems production
Change/configuration management questions to ask:
• Have you identified all of the standards required to support your
• SDE?
• Do you have someone responsible for developing and maintaining
standards?
Tiêu chuẩn
Một số lĩnh vực, trong đó các tiêu chuẩn đƣợc yêu cầu la:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 860
• Phân tich va thiết kế hệ thống
• Quản trị dữ liệu.
• Quản trị cơ sở dữ liệu.
• Thử nghiệm hệ thống.
• Prototyping
• Tai liệu hóa.
• Dữ liệu nhập
• Sản xuất hệ thống.
Các câu hỏi về Quản lý thay đổi / cấu hình:
• Bạn đã xác định đƣợc tất cả các tiêu chuẩn bắt buộc để hỗ trợ SDE của
bạn chƣa?
• Bạn có một ngƣời chịu trách nhiệm về các tiêu chuẩn phát triển va duy
trì không?
10. Support options:
• External consulting
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 861
• A sharing arrangement where you can provide services in exchange for
those needed
• User groups
• Special-interest groups
Các lựa chọn về hỗ trợ:
• Tƣ vấn ngoai.
• Cam kết chia sẻ bằng cách cung cấp các dịch vụ để trao đổi những điều
ma bạn cần.
• Nhóm ngƣời dung.
• Nhóm quan tâm đặc biệt.
11. Automated tool questions:
• Have you identified the tools you need in the SDE?
• Have they been approved, acquired, and installed?
• Do they support the methodologies?
• Do they support the technology platform?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 862
• Do they support the standards?
• Is technical support available to support the tools?
• Do you have templates for use in systems development?
• Do you have a data dictionary or repository for your data?
• Do you have tools to support each phase of the life cycle?
Câu hỏi về Công cụ tự động:
• Bạn đã xác định được các công cụ bạn cần trong SDE chưa?
• Các công cụ đã đƣợc chấp thuận, mua lại, va cai đặt không?
• Chúng có hỗ trợ các phƣơng pháp luận?
• Chúng có hỗ trợ nền tảng công nghệ?
• Chúng có hỗ trợ các tiêu chuẩn?
• Có hỗ trợ kỹ thuật cho các công cụ không?
• Bạn có template để sử dụng trong việc phát triển hệ thống không?
• Bạn đã có một từ điển dữ liệu hoặc kho dữ liệu của bạn?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 31: Hệ phương pháp luận của Cobin 863
• Bạn có công cụ để hỗ trợ mỗi giai đoạn của chu kỳ phát triển hệ thống
không?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 847
CHƢƠNG 32 BÀY NGUYÊN TẮC CỦA CHẤT
LƢỢNG
Người dịch: Nguyễn Tấn
32.1 TỔNG QUAN
YK Shetty, la một giáo sƣ tại khoa quản lý nha nƣớc của trƣờng đại
học kinh tế Utah va la đồngbiên tậpcủa The Quest for Competitiveness
(QuorumBooks, 1991), cho thấy rằng mặc dù hầu hết các công ty điều hanh
đều tin rằng chất lƣợng va năng suất la những vấn đề quan trọng nhất phải
đối mặt trong kinh doanh.
Thế nhƣng nhiều công ty lại không biết lam thế nao để đạt đƣợc
nó. Vì vậy Shetty đã nghiên cứu từ danh sách 16tổ chức đã rất thanh
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 848
côngtrong việc giải quyết thách thức nay: Hewlett-Packard,IBM, Procter và
Gamble, Johnson & Johnson, Maytag, DanaCorporation,Intel,
TexasInstruments,3M, Caterpillar, Delta,Marriott,McDonald's, Dow
Chemical, Xerox, và General electric.
Từ đó Shetty đã đề ra 7 nguyên tắc sau để định hƣớng cho các công
ty giải quyết bai toán cho mình.
32.2 THỦ TỤC/ VẤN ĐÊ/ CHÍNH SÁCH
Principle 1: Quality improvement requires the firm commitment of
top management. All top management, including the CEO, must be
personally committed to quality. The keyword here is ―personally‖. Many
CEOs pay only lip service to this particular edit. Therefore, top
management must be consistent and reflect its commitment through the
company‘s philosophy, goals, policies, priorities, and executive behavior.
Steps that management can take to accomplish this end include:
Nguyên tắc 1: Nâng cao chất lƣợng đòi hỏi sự tham gia của những
ngƣời quản lý hang đầu của công ty.Tất công ty cả quản lý cao nhất, bao
gồm cả các giám đốc điều hanh(CEO), phải tìm ra những phƣơng án thich
hợp nhất để đề ra mục tiêu cụ thể va chinh sách hỗ trợ cho việc nâng cao
chất lƣợng sản phẩm. Cụ thể hơn sẽ có thể bao gồm những việc sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 849
Establish and communicate a clear vision of corporate philosophy,
principles, and objectives relevant to product and service quality.
Có một tầm nhìn rõ rang về tinh chất của công ty, để từ đó đề ra các
nguyên tắc va mục tiêu cụ thể có liên quan đến sản phẩm va chất lƣợng
dịch vụ.Cụ thể la:
• Channel resources toward these objectives and define roles and
responsibilities in this endeavor.
• Invest time to learn about quality issues and monitor the progress of
any initiatives.
• Encourage communication between management and employees,
among departments, and among various units of the firm and
customers.
• Be a good role model in communication and action.
• Kênh nguồn lực hƣớng tới những mục tiêu va xác định vai trò va trách
nhiệm rõ rang trong việc nâng cao chất lƣợng sản phẩm dịch vụ.
• Đầu tƣ thời gian để tìm hiểu về các vấn đề chất lƣợng va giám sát tiến
độ để đƣa ranhững sáng kiến hay.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 850
• Khuyến khich giao tiếp giữa quản lý va nhân viên,giữa các sở, ban va
giữa các đơn vị khác nhau của công ty vakhách hang.(điều nay không
phần không nhỏ vao thanh công của Apple)
• Hãy la một mô hình tốt vai trò trong giao tiếp va hanh động.
Principle 2: Quality is a strategic issue.
• It must be a part of a company‘s goals and strategies.
• Must be consistent with and reinforce a company‘s other strategic
• objectives.
• It must be integrated into budgets and plans — the way the company
does business.
• It must be a corporate mission with planned goals and strategies.
• Quality should be at the heart of every action.
Nguyên tắc 2: Chất lƣợng la một vấn đề chiến lƣợc:
• Nó phải la một phần của mục tiêu va chiến lƣợc của công ty.
Phải luôn luôn củng cố va điều chỉnh phù hợp chiến lƣợc để đạt mục
tiêu.
• Nó phải đƣợc tinh toán vao ngân sách kế toán của công ty.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 851
• Nó phải đƣợc xem la một nhiệm vụ của công ty với mục tiêu kế hoạch
va chiến lƣợc rõ rang.
• Chất lƣợng nên đƣợc đặt ở trung tâm của mọi hanh động.
Principle 3: Employees are the key to consistent quality.
• The organization must have a people-oriented philosophy.
• Poorly managed people convey their disdain for quality and service
when they work.
• Pay special attention to employee recruitment, selection, and
socialization.
• Reinforce socialization and quality process with continuous training
and education. This should include training in:
- Awareness of quality
- Each employee‘s role in the process
- Statistical process control
- Problem-solving techniques
• Incorporate quality into performance appraisal and reward systems.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 852
• Encourage employee participation and involvement.
• Effective communication throughout the department, between
departments, and throughout the organization is required to reinforce
the deep commitment of management and create an awareness and
understanding of the role of quality and customer service.
Nguyên tắc 3: Nhân viên la chìa khóa cho việc nâng cao chất lƣợng:
• Việc tổ chức phải có một ngƣời định hƣớng va quản lý nghiêm túc
• Giám sát và quản lý nhân viên khi họ lam việc.
• Chú ý đặc biệt đến việc tuyển dụng nhân viên, lựa chọn, va phân chia
công việc.
Tăng cƣờng đao tạo liên tục cho nhân viên về khả năng chuyên
môn. Việc đao tạo nay có thể bao gồm đạo tạo tại:
• Nhận thức về chất lƣợng sản phẩm dịch vụ.
• Vai trò của mỗi nhân viên trong tiến trình.
• Thống kê quá trình kiểm soát.
Giải quyết các vấn đề về kỹ thuật gặp phải.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 853
• Kết hợp vao đánh giá chất lƣợng va hiệu suất của mỗi công nhân để
phê bình va khen thƣởng.
• Khuyến khich sự hao hứng tham gia của nhân viên.
• Nâng cao hiệu quả truyền thông giữa các nganh, phòng ban va trong
toan công ty, tổ chức, điều nay la vô cùng cần thiết để tạo nên sự thanh
công.
Principle 4: Quality standards and measurements must be
customerdriven.
They can be measured by:
• Formal customer surveys
• Focus groups
• Customer complaints
• Quality audits
• Testing panels
• Statistical quality controls
• Interaction with customers
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 854
Nguyên tắc 4: Tiêu chuẩn đo lƣờng chất lƣợng va phải đƣợc hƣớng
đến khách hang.
Nó có thể đƣợc đo bằng các tiêu chuẩn sau:
• Khảo sát trực tiếp từ khách hang
• Phản hồi từ các nhóm phát triển sản phẩm
• Sự khiếu nại phản hồi từ khách hang
• Từ việc kiểm tra chất lƣợng của đội ngũ Tester
• Qua thống kê kiểm soát chất lƣợng.
• Quá trình tƣơng tác với khách hang.
Principle 5: Many programs and techniques can be used to improve
quality, such as:
• Statistical quality control
• Quality circles
• Suggestion systems
• Quality-of-work-life projects
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 855
• Competitive benchmarking
Nguyên tắc 5: Tham khảo nhiều chƣơng trình va kỹ thuật có thể
đƣợc áp dụng để cải thiện chất lƣợng,chẳng hạn nhƣ:
• Thống kê kiểm soát chất lƣợng.
• Chất lƣợng hình tròn
• Hệ thống gợi ý.
• Quality-of-work-life
• Cạnh tranh điểm chuẩn
Principle 6: All company activities have potential for improving
product quality; therefore, teamwork is vital.
• Quality improvement requires close cooperation between managers
• and employees and among departments.
• Total quality management involves preventing errors at the point
• where work is performed.
• Every employee and department is responsible for quality.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 856
Nguyên tắc 6: Mọi hoạt động của công ty có tiềm năng cho việc cải
thiện chất lƣợng sản phẩm, do vậylam việc theo nhóm la rất quan trọng.
• Cải thiện chất lƣợng đòi hỏi phải hợp tác chặt chẽ giữa các nha quản lý,
nhân viên va giữa các phòng ban.
• Quản lý chất lƣợng của mỗi nhân viên ngay tại điểmnơi lam việc đƣợc
thực hiện nhằm giảm bớt thời gian công sức sau nay.
• Mỗi nhân viên va bộ phận phải chịu trách nhiệm về chất lƣợng của sản
phẩm do mình lam ra.
Principle 7: Quality is a never-ending process.
• Quality must be planned.
• Quality must be organized.
• Quality must be monitored.
• Quality must be continuously revitalized.
Nguyên tắc 7: Nâng cao chất lƣợng la một quá trình không bao giờ
kết thúc:
• Nâng cao chất lƣợng phải đƣợc quy hoạch ngay từ đầu va cụ thể.
• Nâng cao chất lƣợng phải đƣợc tổ chức rõ ràng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 33: Bảy nguyên tắc của chất lượng 857
• Nâng cao chất lƣợng phải đƣợc giám sát nghiêm ngặt.
• Nâng cao chất lƣợng phải đƣợc tiếp tục vòng tuần hoan của nó.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 857
CHƢƠNG 33 THỐNG KÊ CỦA VỀ NĂNG SUẤT
LÀM VIỆC NHÓM
Người dịch: Dƣơng Hữu Thanh
33.1 TỔNG QUAN
In this chapter Simmons (1991) details the many factors that
dominate software group productivity. He defines dominator as a single
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 858
factor that causes productivity to decline tenfold. The two dominators
discussed are communications and design partition. What follows is a set of
rules and statistics that the reader can use as a comparison in his or her own
efforts to increase productivity.
Chƣơng nay trình bay chi tiết nhiều tác nhân chi phối năng suất lam
việc nhóm phần mềm. Ông chỉ rõ dominator nhƣ tác nhân riêng rẻ nguyên
nhân sản xuất suy giảm gấp 10 lần. Hai dominator đƣợc thao luận đến la
truyền thông (communications) va thiết kế phần chia công việc. Sau đâuy
la tập hợp các luật va thông kế độc giả có thể sử dụng so sánh với những nổ
lực của riêng mình để tăng năng suất
33.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH
1.Factors that developers must cope with in developing large
systems:
• Personnel turnover
• Hardware/software turnover
• Major ideas incorporated late
• Latent bugs
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 859
1.Các tác nhân ma những ngƣời phát triển cần đƣơng đầu với phát
triển những hệ thống lớn
• Doanh thu của thanh viên
• Doanh thu phần cứng/ phần mềm
• Những ý chinh trể kết hợp
• Những lỗi tiềm tang
2.A Delphi survey performed by Scott and Simmons (1974) to
uncover factors that affect productivity found that the main factors are:
• External documentation
• Programming language
• Programming tools
• Programmer experience
• Communications
• Independent modules for task assignment (design partition)
• Well-defined programming practices
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 860
2.một khảo sát Delphi thực hiễn bởi Scott va Simmons (1974) thấy
rõ rằng những ảnh hƣờng chinh trong sản xuất la:
• Tai liệu dẫn chứng ngoai
• Ngôn ngữ lập trình
• Công cụ lập trình
• Sự truyền thông
• Đôc lập các modun trong phânc công trách nhiệm
3.Improvement statistics:
• Any step toward the use of structured techniques, interactive
development, inspections, etc. can improve productivity by up to 25
percent.
• Use of these techniques in combination could yield improve- ments of
between 25 and 50 percent.
• Change in programming language can, by itself, yield a productiv-ity
improvement of more than 50 percent.
• Gains of between 50 and 75 percent can be achieved by single high
achievers or teams of high achievers.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 861
• Gains of 100 percent can be achieved by database user languages,
application generators, and software reuse.
3.Cải thiện số liệu thông kế
• Một vai bƣớc nhằm mục đich sử dụng kỉ thuật kết cấu, sự phát triển, sự
xem xét ảnh hƣởng lẩn nhau,... có thể cải thiện năng suất 25%
• Sử dụng những kỉ thuật nay kết hợp với nhau có thể mang lại sử cải
thiện 25 đến 50 %
• Thay đổi ngôn ngữ lập trình có thể năng suất sẽ cải thiện trên 50%
• Lợi ich giừa 50 va 75 % có thể la đạt đƣợc bới những cá nhân lam việc
năng suất cao hoặc một nhóm có những cá nhân lam việc cao
• Lợi ich của 100% có thể đạt đƣợc bới cơ sở dữ liệu những ngôn ngữ,
ứng dụng, những ngƣời phát minh, va dùng lại phần mềm
4.Dominators are factors that can suppress the effects of other fac-
tors and can reduce software group productivity by an order of magnitude.
4. Dominator la những tác nhân có thể chặn hiệu quả của các tác
nhân khác va có thể rút ngắn năng suất lam việc nhóm
5.Poor design partition can dominate group productivity. To obtain
high productivity in the development of large software systems, the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 862
designer must break down the system in chunks that can be devel- oped in
parallel. The difference between great and average design- ers is an order of
magnitude.
5.Sự thiết kế phân công dở có thể chi phối sản xuất nhóm. Để đạt
đƣợc sản xuất cao trong phát triển các hệ thông phần mềm lớn, ngƣời thiết
kế cần phá vở hệ thống vụng về để có thể phát triển song song. Sự khác
nhau giữa một ngƣời thiết kế lớn va trung bình la trình tự những cái quan
trọng.
6.Communications can dominate productivity. Most project
problems arise as the result of poor communications between workers. If n
workers are on the team, then there are n(n — 1)/2 interfaces across which
communications problems may occur.
6.Truyền thông có thể chi phối quá trình sản xuất. Hầu hết vần đề
các dự án nay sinh kết quả của việc truyền thông tệ giữa những thanh viên.
Nếu có n thành viên trong nhóm, thì có n(n-1)/2 giao diện, dẫn đến những
rắc rối trong truyền thông sẽ xảy ra
7.Productivity of individual programmers varies as much as 26 to 1.
7.Hiệu năng của những lập trình viên riêng rẻ biến đổi nhiều từ 26
đến 1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 863
8.An individual working alone has no interruptions from fellow
group members and, therefore, the productivity can be quite high for a mo-
tivated individual. It is estimated that one programmer working 60 hours a
week can complete a project in the same calendar time as two others
working normal hours, but at three-quarters of the cost.
8.Nếu chỉ lam việc một cách đơn độc không có sự ngắt của những
đồng nghiệp những thanh viên trong nhóm, bởi vậy sản xuất có thể hoan
toán cáo... Ngƣời ta tinh toán đƣợc một lập trình viên lam việc 60 giờ một
tuần có thể hoan thanh đƣợc dự án tƣơng đƣơng 2 ngƣời khác lam việc
trong giờ bình thƣờng, nhƣng ¾ chi phi
9.Small groups of experienced and productive software
developerscan create large systems. An example is given of a company,
Pyburn Systems, which scours the country for the best analytical thinkers.
Its senior programmers typically earn $125,000 a year and can be paid
bonuses of two to three times that amount. They work in small teams, never
more than five, to produce large, complex systems. In comparison, most
MIS departments produce large systems using normal development teams
with developers of average ability.
9.Những nhóm nhỏ những ngƣời phát triển phần mềm có kinh
nghiệm có thể tạo ra những hệ thông lớn. Vi dụ một công ty, Pyburn
Systems, ùng sục tìm trong quốc gia những ngƣời phân tich tốt nhất. Những
lập trình viên lớn tuổi rõ rang kiếm đƣợc 125000$ một năm va có thể đƣợc
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 864
trả phần thƣờng cho hai đến ba lớn tổng số. Họ lam việc trong những nhóm
nhỏ, không bao giờ hơn 5 ngƣời để sản xuất ra những hệ thông lớn phức
tạp. So sanh, hầu hết các lĩnh vực hoạt động MIS sản xuất ra những hệ
thống lớn áp dụng cho những nhóm phát triển bình thƣờng với những lập
trình viên có khả năng trung bình
10.In general, the difference between the cost to produce an
individual program to be run by the program author and the cost to produce
a programming system product developed by a software group is at least
nine times more expensive.
10.Nó chung, sự khác nhau giữa chi phi sản xuất chƣơng trình riêng
rẻ bới một tác giả va chi phi để sản xuất ra một hệ thống đƣợc phát triển
bởi nhóm phần mềm it nhất mắc hơn 9 lần
11.At some point coordination overheads outweigh any benefits that
can be obtained by the addition of further staff. Statistics that sup- port this
were pioneered during the 19th century in work on a military organization.
It was noted that as the number of workers who had to communicate
increased arithmetically, from two to three to four to five…, the number of
communication channels among them in-creased geometrically, from one to
three to six to ten…. From this study, it was concluded that the upper limit
of effective staff size for cooperative projects is about eight.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 865
11.Một vai điểm chi phi thƣờng lệ vƣợt quá trọng tải vai lợi ich có
thể đƣợc đạt bởi ban xúc tiến. Thông kê đƣợc ủng hộ, đây la tiên phong
suốt thế kỉ 19 trong phân công trong tổ chức quân đội. Nó đƣợc chú ý nhiều
thanh viên cần giao tiếp tăng theo phƣơng pháp số học, từ hai ba bôn rồi
đến năm,... số lƣợng các kênh truyền thông giửa họ tăng về phƣơng diện
hình học, từ một đến ba đến sáu rồi đến 10... Từ những nghiên cứu nay,
ngƣời ra kết luận rằng cận trên của kich thƣớc nhóm lam việc hiệu quả la
khoảng 8
12.It has been shown in studies that when the number of staff
increased to 12 or more, the efficiency of the group decreased to less than
30 percent.
12.Thể hiện trong nghiên cứu nay, số lƣợng các ban tăng từ 12 hoặc
hơn, khả năng của nhóm giảm it nhất 30%
13.The productive time of a typical software developer during a
work- ing day can vary from 51 to 79 percent. It was found that the average
duration of work interruption was five minutes for a typical pro- grammer.
The average time to regain a train of thought after an in-terruption was two
minutes. Thus, the average total time spent on an interruption was seven
minutes. If we assume five productive
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 34: Thống kê của Simon về năng suất làm việc nhóm 866
13.hours each day, then each interruption takes 2.33 percent of the
working day; ten interruptions would take up 23 percent of the day and 20
interruptions would take approximately 50 percent.
13.Thời gian sản xuất của ngƣời phát triển phần mềm suốt ngay lam
việc có thể khác nhau từ 51 đến 79%. Ngƣời ta thấy rằng thời gian trung
bình gián đoạn lam việc la 5 phút cho lập trình viên điển hình. Vì vậy, tổng
thời gian trung bình trải qua cho việc ngắt quãng la 7 phút. Nếu chúng ta
đƣợc 5 giờ sản xuất mổi ngay, thì mỗi gián đoạn 2.33 % trong ngay lam
việc, 10 gián đoạn sẽ 23% trên ngay va 20 gián đoạn sẽ la 50%
14.The optimum group size for a software development team is be-
tween five to eight members. The overall design should be parti-tioned into
successively smaller chunks, until the development group has a chunk of
software to develop that minimizes intragroup and intergroup
communications.
14.Số lƣơng thanh viến tốt nhât của một độ phát triển phần mềm nên
từ 5 đến 8 thanh viên. Mọi thiết kế nên đƣợc phân chia nhóm nhỏ, cho đến
khi việc phát triển nhóm có khoảnh phần mềm để phát triển it nhất la truyền
thông trong nhòm va giữa các nhóm
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 867
CHƢƠNG 34 QUAN ĐIỂM CỦA GOULD VỀ
TÍNH TIỆN DỤNG
Người dịch: Lê Quang Thảo
34.1 TỔNG QUAN
Few in the industry have added usability design to their rostrum of
design issues. However, Gould, Boies, and Lewis (1991) note that this
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 868
process leads to usable, useful, likable computer systems and applications.
The authors present Strong evidence that readers can use to support their
own efforts in this, perhaps, new terrain. This chapter also details a process
that can be used to design effective and usable systems. In effect, this
chapter proposes:
• Greater reliance on existing methodologies for establishing testable
usability and productivity-enhancing goals
• A new method for identifying and focusing attention on long-term
trends about the effects that computer applications have on end-user
productivity
• A new approach to application development, particularly the
development of user interfaces
Một vai tổ chức trong công nghiệp đã thêm thiết kế tinh tiện dụng
vao các vấn đề của thiết kế. Tuy nhiên, Gould, Boies va Lewis (1991) chú ý
rằng quá trình nay tạo ra các hệ thống máy tinh hay ứng dụng có ich, tiện
dụng. Các tác giả trình bay bằng chứng mạnh mẽ rằng đọc giả có thể đóng
góp sự cố gắng của mình vao việc nay, la địa thế mới. Chƣơng nay cũng kể
ra chi tiết một quy trình có thể đƣợc dùng để thiết kế các hệ thống hiệu quả
va tiện dụng. Chƣơng nay đƣa ra:
• Sự tin cậy lớn hơn vao các phƣơng pháp hiện nay dùng để xác lập các
tiêu chuẩn nâng cao năng suất va tinh tiện dụng có thể kiểm tra đƣợc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 869
• Một phƣơng pháp mới để nhận dạng va tập trung vao xu thế lâu dai
xung quanh những lợi ich ma các ứng dụng máy tinh đem lại cho ngƣời
dùng cuối.
• Một hƣớng tiếp cận mới trong phát triển phần mềm, đặc biệt la phát
triển giao diện ngƣời dùng.
The authors conclude that a three-way split among style of the user
interface, content of the user interface, and the functional code allows
changes to be made in the user interface that still preserve the integrity of
the functional code. Iterative design, a necessity when looking toward
usability, proceeds rapidly. On the style side, a particular style can be
prototyped and iteratively engineered. From the set of styles developed over
time, a subset of workable, usable styles will emerge that have attained the
favor of organizations or end users. Ultimately, the best work of the style
side and the functional side of development will be better leveraged.
Tác giả kết luận có 3 cách phân chia các loại giao diện ngƣời dùng,
nội dung của giao diện ngƣời dùng, va code thực thi cho phép ngƣời dùng
tùy chỉnh ma vẫn đảm bảo tình toan vẹn của code thực thi. Thiết kế xoay
vòng, 1 sự cần thiết khi hƣớng đến tinh tiện dụng va xử lý nhanh. Mặt khác,
một kiểu đặc biệt có thể đƣợc lấy lam mẫu va xử lý xoay vòng. Từ tập các
kiểu đƣợc phát triển qua thời gian, một tập con các kiểu tiện dụng va hoạt
động đƣợc sẽ xuất hiện va đáp ứng mong muốn của các tổ chức hay ngƣời
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 870
dùng cuối. Sau cùng, kết quả của phƣơng diện kiểu va phƣơng diện chức
năng của việc phát triển sẽ tốt hơn.
34.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH
1. The usability process consists of four activities:
• Early focus on users should be via interviews, surveys, observations,
and participatory design with an aim toward understanding users‘
cognitive, behavioral, and attitudinal characteristics.
• All facets of usability, for example, user interface, help system, training
plan, and documentation, should evolve in parallel, rather than be
defined sequentially and be under one management.
• User testing should be early and continual. This should include
observation and measurement of user behavior and careful evaluation
of feedback. Ultimately, a strong motivation to make design changes
should exist.
• Iterative design must be used. Because the system under design must be
continually modified due to results of behavioral tests of function, the
system must have the ability to be changed continually.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 871
• Sớm tập trung vao những ngƣời dùng sẽ đƣợc phỏng vấn, khảo sát,
quan sát va đặt biệt thiết kế với mục đich hƣớng đến la hiểu đƣợc quan
điểm, thị hiếu của ngƣời dùng.
• Tất cả các khia cạnh của tinh tiện dụng, vi dụ nhƣ giao diện ngƣời
dùng, hệ thống hỗ trợ, kế hoạch huần luyện, va tai liệu, có thể đƣợc xét
chung với nhau, hơn la định nghĩa một cách tuần tự va chịu một sự
quản lý.
• Việc cho ngƣời dùng kiểm tra nên thực hiện sớm va liên tục. Bao gồm
quan sát va đánh giá các phản hồi của ngƣời dùng một cách cẩn thận.
Sau cùng, cần một động lực mạnh mẽ để quyết định thay đổi thiết kế.
• Thiết kế xoay vòng phải đƣợc sử dụng. Bởi vì hệ thống bên dƣới thiết
kế phải đƣợc điều chỉnh liên tục tùy theo kết quả kiểm tra về mặt chức
năng, hệ thống phải có khả năng thay đổi liên tục.
2. This type of development effort has been used with great success:
• Xerox‘s Star system
• Apple‘s Lisa system
• IBM Audio Distribution Systems (ADS)
• IBM‘s Rexx
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 872
• Tektronix‘s Graphic Input Workstation
• Boeing‘s banking terminal
• Digital Equipment Corporation‘s VAX text processing utility
• IBM‘s QMF
• Lotus Development Corporation‘s Lotus 1–2–3
3. Six interacting, organizational reasons why usability design is not used:
• Usability is seldom a goal in development.
• There is a belief that usability cannot be measured — even though there
is much evidence to the contrary.
• An apparent conflict between meeting deadlines and achieving
usability exists. Project managers often lack confidence in managing
something that does not have clear goals or the tools to address
problems efficiently as they arise.
• Designers report that software development is not organized to carry
out the process of usability. Iterative design is thought to be too risky,
time consuming, and too difficult.
• Designers need better tools to do iterative design.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 873
• Nearly every new application creates its own user interface, which
creates an enormous amount of work. Also, these interfaces are not
usually developed by people skilled in user-interface design.
• Tinh tiện dụng hiếm khi la một mục tiêu trong việc phát triển.
• Ngƣời ta tin rằng tinh tiện dụng không thể đƣợc đo lƣờng – mặc dù có
rất nhiều bằng chứng chứng minh điều ngƣợc lại.
• Một mâu thuẩn giữa deadline va tinh tiện dụng cần đạt đƣợc. Project
Manager thƣờng thiếu niềm tin vao việc quản lý cái gì đó ma không có
mục tiêu rõ rang hoặc không có công cụ xác định đƣợc các vấn đề phát
sinh một cách hiệu quả.
• Ngƣời thiết kế nói rằng việc phát triển phần mềm không đƣợc tổ chức
để đảm nhận quá trình xây dựng tinh tiện dụng. Sự thiết kế xoay vòng
đƣợc xem la quá mạo hiểm, tốn thời gian va quá khó khăn.
• Ngƣời thiết kế cần các công cụ tốt hơn để dùng trong thiết kế xoay
vòng.
• Gần nhƣ mỗi ứng dụng mới đều tạo ra giao diện ngƣời dùng riêng,
nghĩa la tạo ra một lƣợng lớn công việc. Những giao diện nay cũng
không thƣờng xuyên đƣợc phát triển bởi những ngƣời có kĩ năng trong
thiết kế giao diện ngƣời dùng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 874
4. Độ đo về tinh tiện dụng
Usability metrics can be created. They must be clearly stated, easily
communicated, and verifiable. The results must be made public. Experience
has shown that these results are then taken seriously by management. This
has always been the case in logging system performance data. This
operation-room metric is a viable usability metric.
Measures here include percent system available, downtime per day,
and average user satisfaction rating. Digital Equipment Corporation has
developed an analogous usability engineering approach, as shown in
Exhibit 1.
Các tiêu chuẩn đánh giá tinh tiện dụng có thể đƣợc hình thanh.
Chúng phải rõ rang, dễ truyền đạt va có thể chỉnh sửa (verifiable). Kết quả
phải đƣợc cho mọi ngƣời biết. Kinh nghiệm cho thấy những kết quả nay
phải đƣợc đƣa ra một cách nghiêm túc. Điều nay luôn rơi vao trƣờng hợp
dữ liệu xử lý hệ thống. Tiêu chuẩn operation-room nay la một tiêu chuẩn
tiện dụng có thể đứng vững.
Những đo lƣờng ở đây bao gồm tỉ lệ phần trăm hệ thống sẵn sang,
thời gian ngƣng hoạt động trên ngay, va tỉ lệ thỏa mãn nhu cầu ngƣời dùng
trung bình. Tập đoan Digital Equipment Corporation đã phát triển một
hƣớng tiếp cẩn kĩ thuật xây dựng tinh tiện dụng nhƣ hình 1.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 875
Hình 1
5. Lam việc nhóm
Creation of goals is a group process. The group must decide what the
relevant usability attributes are, how to measure them, and what the target
goals should be. The goals are clearly stated and communicated, just as they
are for other components of the system.
Việc xác định mục tiêu la một quá trình lam việc nhóm. Nhóm phải
xác định đâu la các thuộc tinh tiện dụng, lam sao đo đạc chúng, va mục tiêu
gì cần đề ra. Các mục tiêu phải đƣợc trình bay rõ rang, dễ truyền đạt, vì
chúng sẽ đƣợc dùng trong các thanh phần khác của hệ thống.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 876
6. Công việc của ngƣời dùng
End-user activity involves four operations: filling in forms, selecting
among prescribed choices, manipulating lists, and reading information.
Công việc của ngƣời dùng cuối bao gồm 4 công việc: nhập thông tin,
chọn lệnh xử lý, thao tác trên danh sách va đọc thông tin.
7. Thiết kế 4-block
The four end-user operations can be tied to four corresponding
building blocks that are sufficient to describe user interfaces abstractly:
• Form blocks
• Choice blocks
• List blocks
• Info blocks
Bốn công việc của ngƣời dùng cuối có thể xem tƣơng ứng với các
thanh phần sau:
• Form blocks
• Choice blocks
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 877
• List blocks
• Info blocks
8. Phân chia thiết kế
It is possible to separate the design of these blocks, i.e., the user
interface, from functional code. In the process described here, experts
structure their applications in terms of the form, choice, list, and info
blocks. Style designers write rules about how these blocks will be rendered
on an end user‘s screen under various circumstances. The benefits of this
approach are that groups can work in parallel and independently, and it
promotes code reuse and iterative design.
Có thể phân phân chia thiết kế thanh những phần nay, vi dụ, giao
diện ngƣời dùng, từ code thực thi. Trong quá trình đƣợc mô tả ở đây, các
chuyên gia cấu trúc ứng dụng của họ thanh các phần form, choice, list va
info blocks. Ngƣời thiết kế kiểu (style designer) viết các quy luật hiển thị va
hoạt động của các block nay trên man hình của ngƣời dùng cuối theo các
kịch bản cụ thể. Lợi ich của hƣớng tiếp cận nay la các nhóm có thể lam việc
song song va độc lập, va lam tăng tinh tái sử dụng của code va thiết kết
xoay vòng.
9. Chuyên gia ứng dụng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 878
Content or application experts know the jobs of the end users. They
can structure this knowledge into a computer-executable form. Application
experts create the user-interface content specifications.
Chuyên gia về nội dung hay ứng dụng biết công việc của ngƣời dùng
cuối. Họ có thể cấu trúc sự hiểu biết nay vao trong form có thể thực thi trên
máy tinh. Chuyên gia về ứng dụng tạo ra đặc ta nội dung của giao diện
ngƣời dùng.
10. Lập trình ứng dụng
Application (content) programmers write the programs.
Lập trình viên ứng dụng viết chƣơng trình.
11. Style designer
Style designers have skills in human factors and graphic design.
Their role is mainly of advocacy; they identify problems and describe
solutions. They specify style rules.
Style designer có kĩ năng về thiết kế đồ họa va nhân tố con ngƣời.
Vai trò của họ la phát hiện ra vần đề va mô tả hƣớng giải quyết. Họ xác
định quy luật về kiểu (style rule).
12. Style programmer
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 879
Style programmers write programs necessary for making an
interaction work.
Lập trình viên viết chƣơng trình cần thiết để lam cho quá trình tƣơng
tác hoạt động.
13. Đặc tả nội dung
Content (application) specifications are created by the application
expert and include the messages to end users, flow of control, connections
to function, and guidance to style.
Đặc tả nội dung đƣợc tạo bởi chuyên gia về ứng dụng va bao gồm
các thông báo đến ngƣời dùng cuối, dòng kiểm soát, kết nối, va hƣớng dẫn
về kiều (style).
14. Content (application) action
Content (application) actions are created by application
programmers. These are atomic programs with general utility. For example,
a module might transfer the contents of one list to another.
Ngƣời lập trình ứng dụng sẽ viết các chƣơng trình nhỏ với tiện ich
thông thƣờng. Vi dụ nhƣ một module chuyển nội dung từ list nay sang list
khác.
15. Đặc tả kiểu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 35: Quan điểm của Gould về tính tiện dụng 880
Style specifications are created by the style designers. These are the
rules regulating the set of human–computer interaction techniques used to
render content, including interaction methods (e.g., entry vs. selection),
appearance of the end user‘s screen, and the interaction devices.
Đặc tả style đƣợc tạo bởi style designer. Đó la những quy luật liên
quan đến các kĩ thuật tƣơng tác ngƣời-máy đƣợc dùng để tao ra nội dung,
bao gồm phƣơng pháp tƣơng tác, sự hiển thị trên man hình ngƣời dùng
cuối, va các thiết bị tƣơng tác.
16. Công cụ hỗ trợ
The team works with a series of tools. Over time, they build up a
library of well-tested approaches to human interface, which can then be
mapped onto an application‘s content blocks.
Đội lam việc với hang loạt các công cụ. Sau đó họ xây dựng nên một
thƣ viện các hƣớng tiếp cận giao diện ngƣời dùng đã đƣợc kiểm tra kĩ,
những cái ma sau đó đƣợc đƣa lên tƣơng ứng với từng block nội dung của
một ứng dụng.
34.3 TÀI LIỆU THAM KHẢO
Gould, J.D., Boies, S.J., and Lewis, C. (1991). Making usable,
useful, productivity-enhancing computer applications, Commn. ACM, 34.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 881
CHƢƠNG 35 NGUYÊN TẮC CHỈ ĐẠO CỦA
PRESCOTT VỀ VIỆC SỬ DỤNG PHƢƠNG
PHÁP CÓ CẤU TRÖC
Người dịch: Trịnh Đắc Thắng
35.1 TỔNG QUAN
The science of software engineering is composed of many
methodologies and each has its own variations. In this chapter, Prescott
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 882
(1991) offers an itemized set of guidelines for those interested in using
structured methodology to ensure their project‘s success.
Nganh khoa học công nghệ phần mềm gồm có nhiều phƣơng pháp va
từng phƣơng pháp có các biến thể riêng. Trong chƣơng nay, Prescott (1991)
cung cấp một tập các hƣớng dẫn đƣợc chia thanh từng nhóm cho những
ngƣời quan tâm đến việc sử dụng phƣơng pháp cấu trúc để đảm bảo sự
thanh công của dự án của họ.
Structured methodology is an approach to defining a particular task
and in defining a solution to that task. It provides a methodology for
partitioning a complex task into a manageable series of ―black boxes‖. The
underlying organization of this network of black boxes progresses from
abstraction at the top level to details at the lower levels. Not only are the
specifics of each black box charted out, but the interfaces between each of
these black boxes are also specified.
Phƣơng pháp có cấu trúc la một cách tiếp cận để xác định một nhiệm
vụ cụ thể va trong việc xác định một giải pháp cho nhiệm vụ đó. Nó cung
cấp một phƣơng pháp phân vùng một nhiệm vụ phức tạp thanh một loạt các
"hộp đen‖ có thể quản lý. Việc tổ chức lớp dƣới của mạng lƣới các hộp đen
nay phát triển từ mức cao nhất, va cụ thể ở những mức thấp hơn. Không chỉ
la những đặc trƣng (specifics) của từng hộp đen đƣợc biểu diễn (charted),
ma các giao diện giữa mỗi của các hộp đen cũng phải đƣợc chỉ rõ.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 883
One of the main reasons for using structured methodology is the
sheer complexity and cost of a problem. The discipline associated with this
technique is reflected in the need to document each particular phase of
development to ensure compliance with demanding requirements for
quality, performance, and reliability.
Một trong những lý do chinh để sử dụng phƣơng pháp có cấu trúc là
do vấn đề hoan toan phức tạp va tốn chi phi. Những kỷ luật liên quan đến
kỹ thuật nay đƣợc phản ánh trong nhu cầu tai liệu hóa(to document) từng
phần của giai đoạn phát triển để bảo đảm tuân thủ các yêu cầu các yêu cầu
về chất lƣợng, hiệu suất va độ tin cậy.
35.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. Structured methodology will only be successful if:
• The company‘s management is willing to make a firm commitment to
the substantial time investment required to build a quality project.
• Quản lý của công ty sẵn sang thực hiện một cam kết mạnh để đầu tƣ
đáng kể thời gian cần thiết để xây dựng một dự án có chất lƣợng.
• A software development plan for the development of software is used.
It provides management with the means to coordinate schedules,
control resources, initiate actions, and monitor progress of the
development effort. It also provides detailed knowledge of the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 884
schedule, organization, and resource allocation planned by the
contractor. In addition, it contains definitions and discussions of
software quality and configuration management, as well as design and
programming standards and conventions.
• Một kế hoạch phát triển phần mềm cho việc phát triển các phần mềm
cần đƣợc sử dụng. Nó cung cấp việc quản lý trung bình để sắp xếp lịch,
kiểm soát tai nguyên, bắt đầu các hoạt động, va theo dõi tiến trình nỗ
lực phát triển. Nó cũng cung cấp những kiến thức cụ thể về việc sắp
xếp lịch trình, tổ chức, tai nguyên (nguồn lực) đƣợc lên kế hoạch bởi
nha thầu (contractor).Thêm vao đó, nó chứa các định nghĩa va những
thảo luận về chất lƣợng phần mềm va quản lý cấu hình, cũng nhƣ tiêu
chuẩn thiết kế, lập trình va quy ƣớc.
• Walkthroughs of at least five people for up to one and three quarters
hours at the most are held in the requirements, design, coding, and
testing phases.
• ‖Những bƣớc thông qua‖ của it nhất năm ngƣời cần hơn một va ba
phần tƣ giờ ở hầu hết đều đƣợc tổ chức tại các yêu cầu, thiết kế, mã
hóa, va giai đoạn kiểm tra.
2. A software requirement must be expressed in very clear English
Một yêu cầu phần mềm phải đƣợc thể hiện bằng tiếng Anh rõ rang
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 885
3. Decompose each function into related subfunctions. For example,
initialization may be decomposed into initialize local variables and
initialize global variables subfunctions
Phân tách từng chức năng thanh những chức năng phụ có quan hệ
với nhau. Vi dụ, việc khởi tạo có thể đƣợc phân tách ra thanh việc khởi tạo
những biến cục bộ va những biến chức năng phụ toan cục.
4. For each function or task and subfunction, a narrative is written that
clearly describes the function in terms of what the function does. The
source of the required data and its destination as output from the
function must also be defined and documented. The narrative should
include the following:
• Module name
• Module called by
• Module purpose
• Inputs
• Outputs
• Unit description
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 886
Đối với mỗi chức năng hoặc nhiệm vụ va chức năng phụ, một bai
tƣờng thuật đƣợc viết để mô tả rõ các chức năng trong điều khoản (terms)
va những chức năng đó lam gì. Nguồn của các dữ liệu cần thiết va đich của
nó nhƣ la một output từ chức năng cũng phải đƣợc xác định va tai liệu hóa.
Bai tƣờng thuật nên bao gồm những điều sau:
• Tên Module
• Module đƣợc gọi bởi
• Mục đich của Module
• Inputs
• Outputs
• Miêu tả ở mức đơn vị
5. Define a local database that will house the data items pertinent to the
data requirements
Xác định một cơ sở dữ liệu cục bộ, cái ma sẽ ở trong the data items
thich hợp tới các yêu cầu của dữ liệu.
6. For each function, a detailed design document must be created that
will, ultimately, be used to create the code. This document contains the
following information
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 887
• Name of function
• Function‘s purpose
• Description
• Calling sequence — if this submodule is called by another module or
calls another module
• Calling parameters — if called or calling, then what are the parameters
passed
• Updates — the files that it updates
• Variables — the variables that it uses
• Algorithm — pseudocoded processing logic such as:
- Clear error flag
- If code entered is equal to code in table
- Update table.
Đối với mỗi chức năng, tai liệu thiết kế đƣợc cụ thể phải đc tạo, ma
sẽ, cuối cùng, đƣợc sử dụng để tạo code(mã). Tai liệu nay chứa các thông
tin sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 888
• Tên của chức năng
• Mục đich của chức năng
• Miêu tả
• Việc gọi liên tục — nếu module phụ nay đƣợc gọi bởi module khác
hoặc gọi module khác
• Việc gọi tham số — nếu bị gọi hoặc gọi, cái ma tham số truyền qua
• Cập nhật — Những files cập nhật
• Biến — Biến sử dụng
• Thuật toán — logic thuật toán đƣợc tiến hanh bằng code giả nhƣ:
- Xóa cờ lỗi
- Nếu code nhập vao trùng code trong bảng
- Cập nhật bảng.
7. Module is then coded using programming standards that enforce
readability and understanding.
Module nay sau đó đƣợc mã hóa bằng cách sử dụng các tiêu chuẩn
lập trình, cái ma có thể dễ đọc va hiểu.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 889
8. A test plan is created that takes into consideration schedule,
environment, and available resources.
Một kế hoạch kiểm tra đƣợc tạo ra, cái sẽ đƣa vao lịch trình xem xét,
môi trƣờng, va các nguồn lực sẵn có.
9. Test procedures that test each requirement must be documented. This
translates into a series of test cases or scenarios. The test, the input, and
the expected output are documented. This document is known as a
requirements traceability matrix, which establishes the correspondence
between a software product specification and the successful testing of
each such specification.
Ham(Thủ tục) kiểm tra, kiểm tra mỗi yêu cầu phải đc tai liệu hóa.
Điều nay tạo thanh một loạt các trƣờng hợp kiểm tra hoặc các kịch bản.
Việc kiểm tra, input, va output đƣợc mong đợi cũgn đc tai liệu hóa. Tai liệu
nay đƣợc biết đến nhƣ những việc đòi hỏi một ma trận có thể truy vết đc,cái
ma thiết lập sự tƣơng ứng giữa đặc điểm của sản phẩm phần mềm va việc
kiểm tra thanh công của mỗi đặc điểm nhƣ vậy.
10. Systems integration and maintenance must be considered.
Tich hợp hệ thống va bảo dƣơng phải đƣợc xem xét.
11. Tools and techniques that assist in the process of structured
methodology:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 36: Nguyên tắc chỉ đạo của Prescott 890
• Use of formal walkthroughs
• A structured approach to software design, coding, and testing
• Use of structured programming
• The use of standardized coding conventions
• The use of graphics devices such as a functional block diagram for
module specification
Công cụ va kỹ thuật ma hỗ trợ trong quá trình của phƣơng pháp có
cấu trúc:
• Sử dụng đúng theo walkthroughs
• Một cách tiếp cận có cấu trúc để thiết kế phần mềm, mã hóa, va kiểm
tra
• Sử dụng lập trình cấu trúc
• Việc sử dụng các quy ƣớc code đc chuẩn hóa
• Việc sử dụng các thiết bị đồ họa nhƣ một sơ đồ khối chức năng cho
đặc tả mô đun
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 891
CHƢƠNG 36 KEMAYEL’S CONTROLLABLE
FACTORS IN PROGRAMMER
PRODUCTIVITY
Người dịch: Trần Xuân Tiến
36.1 TỔNG QUAN
Based on extensive research performed in Tunisia by Kemayel et al.,
this chapter seeks to identify the characteristics of the programmer‘s work
potential. The impact of certain controllable factors in the productivity of
programmers is investigated. These factors are divided into three
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 892
categories: factors pertaining to personnel, factors pertaining to the process,
and factors pertaining to the user community.
Dựa trên các nghiên cứu mở rộng ở Tunisia bởi Kemayel, chƣơng
nay đánh giá về các thanh phần của việc lập trình viên phải lam. Sự tác
động của các yếu tố về khả năng lam việc của lập trình viên đƣợc nghiên
cứu tỉ mỉ. Những yếu tố đƣợc chia lam 3 loại: yếu tố liên quan đến nhân sự,
liên quan đến quy trình sản xuất, yếu tố liên quan đến cộng đồng ngƣời sử
dụng.
36.2 THỦ TỤC/VẤN ĐỀ/ CHÍNH SÁCH
1. Programmer productivity paradoxes:
Sự nghịch biến trong khả năng sản xuất của progarammer
• There is an enormous variance in the productivity of programmers.This
variance can be as wide as a factor of one to ten. (Other researchers
report an even wider variance.) There is a large opportunity to improve
programmer productivity within this wide range.
• Có rất nhiều sự biến đổi trong khả năng lam việc của lập trình viên. Sự
biến đổi đó có thể thay đổi từ 1 đến 10. (một số nghiên cứu khác thậm
chi còn có mức giao động rộng hơn.) đó la một cơ hội tốt để tăng khả
năng lam việc của một lập trình viên.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 893
• Productivity invariance with respect to experience. According to
statistical measures by Boehm (1981), when the experience of a
programmer increases from one month to three years (36-fold
increase), productivity is improved by only 34 percent. This appears to
show that experience has no effect on software project costs.
• Khả năng lam việc thì không biến đổi nhiều về mặt kinh nghiệm. Dựa
vao bảng thống kê đo lƣờng của Boehm (1981), khi kinh nghiệm của
lập trình viên tăng từ 1 tháng đến 3 năm (36 lần) thì hiệu quả sản xuất
chỉ tăng 34%. Điều nay nói lên rằng kinh nghiệm không ảnh hƣởng
nhiều đến chi phi của một dự án phần mềm.
• Productivity invariance with respect to tools. According to Boehm, the
difference in productivity between a programmer who uses no tools at
all and one who uses the most up-to-date, powerful tools available, on
the most powerful machines, is no larger than 50 percent.
• Khả năng sản xuất không đổi với khia cạnh với công cụ (tool). Cũng
theo Boehm, sự khác biệt về khả năng sản xuất của lập trình viên gữa
những ngƣời không sử dụng công cụ va những ngƣời sử dụng công cụ
mới nhất, cùng với các máy móc hiện đại thì không vƣợt quá 50 %.
• Suitability of motivation factors. Studies have shown that programmers
have a motivation pattern different from that of their managers and
those of workers in other industries. This difference might well explain
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 894
why some well-intentioned software managers fail to motivate their
programmers.
• Sự thich hợp của các nhân tố thúc đẩy. Nghiên cứu chỉ ra rằng lập trình
viên sẽ có một sự thúc đẩy khác từ ngƣời quản lý của họ, va từ những
những công nhân khác. Sự khác biệt có thể giải thich lý do tại sao một
vai cố gắng ngƣời quản lý phần mêm lại thất bại trƣớc việc thúc đẩy
những ngƣời lập trình viên của họ.
2. The 33 productivity factors that are proposed can be divided into three
categories:
• Factors related to personnel
• Factors related to the software process
• Factors related to the user community
33 nhân tố về hiệu quả lam việc có thể đƣợc chia ra lam 3 loại:
• Nhân tố liên quan đến nhân sự.
• Nhân tố liên quan đến quá trình san xuất
• Nhân tố liên quan đến cộng đồng ngƣời sử dụng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 895
3. Personnel factors. Two sets of controllable factors are likely to affect
the productivity of data processing personnel: motivation factors and
experience factors.
Nhân tố tổ chức nhân sự. 2 tâp hợp điều khiển nhân tố có sự tác động
đến hiệu quả của tiến trình tổ chức nhân sự la: yếu tố thúc đẩy va yếu tố
kinh nghiệm.
4. Personnel motivation consists of many factors; 16 derived from
research appear below:
Personnel motivation (sự thúc đẩy về nhân sự) lại bao gồm nhiều yếu
tố; có 16 yếu tố từ các nghiên cứu sẽ đƣợc trình bay:
• Recognition. This is the reaction of the organization to the
programmer‘s performance. Indifference leads to a drop in motivation,
which leads to a decline in productivity.
• Recognition (sự thừa nhận): la sự phản ứng lại của công ti đối với thể
hiện của một lập trình viên. Sự thờ ơ, lãnh đạm sẽ dẫn tới giảm về động
cơ thúc đẩy, cái lam cho hiệu quả lam việc đi xuống.
• Achievement. This represents the satisfaction that the programmer gets
from doing a challenging task. This implies that the organization must
keep supplying the programmer with challenging tasks to maintain
motivation.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 896
• Achievement (thanh tựu): điều nay trình bay sự thoả mãn của lập trình
viên nhận đƣợc từ công việc. Nó ngụ ý rằng công ty phải giữ việc cung
cấp cho lập trình viên các công việc có tinh thử thách để duy trì động
lực.
• The work. The nature of the tasks that must be executed is a powerful
tool to motivate a programmer.
• The work (Công Việc). bản chất công việc phải thú vị, đó la một công
cụ mạnh để duy trì động lực.
• Responsibility. This is derived from basic management theory. That is,
if you want something to happen, make someone specifically
responsible for it.
• Responsibility (sự chịu trách nhiệm) nó đƣơc rút ra từ những lý thuyết
quản lý cơ bản. Nó nói rằng: nếu bạn muốn môt công việc đƣợc hoan
thanh, hãy giao rõ trách nhiệm về nó cho một ai đó.
• Advancement. A programmer who feels that he or she has the
possibility of career advancement in the organization is more motivated
than one who does not.
• Advancement.(sự thăng tiến) Những lập trình viên ngƣời ma cảm thấy
rằng có khả năng thăng tiến trong công ty thì sẽ có động lực lam việc
hơn không có.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 897
• Salary. A programmer who feels that he or she is paid adequately, and
who anticipates that salary increases will continue on par with
performance, will be more motivated than one who does not.
• Salary. (Lƣơng) Lập trình viên nếu cảm thấy rằng họ đƣợc trả một mức
lƣơng hợp lý, va thấy rằng mức lƣơng sẽ đƣợc tăng lên sẽ cố gắng lam
việc, va sẽ có động lƣc lam việc hơn.
• Possibility for growth. This factor measures the possibilities for
professional growth within a programmer‘s company.
• Possibility for growth.(Triển vọng phát triển) Nhân tố nay nhấn mạnh
rằng khả năng phát triển của một cá nhân khi ở trong một công ty.
• Interpersonal relations with subordinates.
• Mối quan hệ với những ngƣời câp dƣới.
• Status. This measures the importance of the worker in his or her
company, e.g., participation at meetings, participation in decision
making, ceremonial functions, usage of restricted services, and
privileges of the corporation.
• Status.(tình trạng)điều nay nhấn mạnh tầm quan trọng của mỗi công
nhân trong một công ty vd: tham gia vao các cuộc họp, tham gia vao
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 898
các quyết định, các buổi lễ, sử dụng các dịch vụ đặc biệt, các quyền lợi
ƣu tiên trong công ty.
• Interpersonal relations, superiors. This is controllable to the extent that
the manager has latitude in assigning group leaders.
• Interpersonal relations, superiors (Mối quan hệ với nhân viên cấp trên)
nó có thể kiểm soát với phạm vi nhất định rằng ngƣời quản lý có phạm
vi trong việc phân công lãnh đạo nhóm.
• Interpersonal relations, peers. Because teamwork is a key ingredient for
the success of any group effort, the manager should take care in
dividing staff into working groups.
• Interpersonal relations, peers (quan hệ giữa các cá nhân ngang hang)bởi
vì team work la chìa khoá cấu thanh sự thanh công của mọi nhóm, nên
ngƣời quản lý phải quan tâm đến sự phân bổ nhân sự khi phân công vao
nhóm.
• Technical supervision. This measures the willingness of the
programmer‘s supervisor to help the programmer solve technical
problems, orient efforts, and make choices.
• Technical supervision.(sự giám sát kĩ thuật) nó đánh giá sự sẵn lòng
của những giám sát kỹ thuật khi giúp đơ những lập trình viên giải quyết
các vần đề kỹ thuật, chỉ hƣớng, tạo ra sự lựa chọn.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 899
• Company policy and administration. This factor measures how clearly
the command structure of the company is defined, how rational it is,
and how easy it is to determine to whom each worker reports.
• Company policy and administration. (Chinh sách va sự quản lý của
công ty) nhân tố nay đánh giá cấu trúc lãnh đạo của công ti đƣợc định
nghĩa rõ rang nhƣ thế nao, va lam cách nao xác định rõ mỗi nhân viên
phải báo cáo cho ai.
• Working conditions. This factor represents working conditions in the
traditional sense, such as office space, light.
• Working conditions.(điều khiện lam việc)nhân tố nay trình bay điều
kiện lam viêc, về mặt truyền thống nó la không gian văn phòng, ánh
sáng …
• Factors in personal life. Given that the programmer‘s personal life
influences motivation and job performance, the manager can assign key
positions or tasks to those that have the best conditions.
• Factors in personal life. (Nhân tố về đời tƣ) Đời tƣ của một nhân viên
ảnh hƣởng rất lớn đến động lực va kết quả công việc, ngƣời quản lý có
thể bổ nhiệm vao các vị tri hay nhiệm vụ có điều kiện tốt nhất.
• Job security. This factor is very important.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 900
• Job security.(sự ăn toan của công viêc) Yếu tố nay rất quan trong.
5. Personnel experience is equally important. Four factors are discussed:
Personnel experience (Kinh nghiệm của nhân sự) cũng quan trọng
không kém. 4 nhân tố đƣợc thảo luận ở đây la:
• Applications domain experience (kinh nghiệm về các ứng dụng tên
miền)
• Virtual machine experience — the aggregate of hardware, operating
system, utilities, and software packages
• Virtual machine experience (kinh nghiệm máy ảo) sự tập hợp của các
phần cứng va hệ điều hanh, tiện ich va các gói phần mềm.
• Programming language experience (kinh nghiệm về ngôn ngữ lập trình)
• Experience with the user community — to what extent the programmer
is familiar with the user community as a working partner
• Experience with the user community (kinh nghiệm trong việc giao tiếp
với ngƣời sử dụng) – đến một mức độ ma lập trình viên quen với cộng
đồng ngƣời sử dụng nhƣ la một cộng sự trong công việc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 901
6. Two classes of controllable factors pertaining to the software process
have been identified by the authors: project management and
programming environments.
2 lớp của những cái đặc tinh có thể kiểm soát về mặt software
process đƣợc định nghĩa bởi tác giả: project management (quản lý dự án) va
programming environments (môi trƣờng lập trình)
7. Project management consists of four controllable factors:
Project management bao gồm 4 nhân tố có thể kiểm soát:
• Using a goal structure — to what extent the programming team uses a
goal structure, and to what extent the team depends on it for its day-to-
day decision making.
• Using a goal structure (sủ dụng goal structure) – đội ngũ lập trình viên
sử dụng goal structure tới một mức độ nao đó, va phụ thuộc vao nó
trong các quyết định hằng ngay.
• Adherence to a software life cycle — to what extent a team uses and
depends on a software life cycle.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 902
• Adherence to a software life cycle (sự gắn bó với vòng đời của phần
mềm) – một đội ngũ đƣợc sử dụng va phụ thuộc vao vòng đời của phần
mềm.
• Adherence to an activity distribution — to what extent the
programming team uses a precise definition of life cycle activities, and
to what extent they depend on it for decision making.
• Adherence to an activity distribution (sự gắn bó với hoạt động phân
phối) – đội ngũ lập trình viên định nghĩa một cách rõ rang vòng đời của
phần mềm va họ dựa vao nó để đƣa ra các quyết định.
• Usage of cost estimation procedures — to what extent the
programming team uses a software cost-estimation model and to what
extent they depend on it for decision making.
• Usage of cost estimation procedures (sử dụng về khả năng ƣớc lƣợng
giá thanh sản phầm) đội ngũ lập trình sẽ sử dụng mô hình software
cost-estimation để ƣớc lƣợng giá thanh sản phẩm tới mức nao va dụa
vao đó để đƣa ra quyết định.
8. Programming environment is composed of four controllable factors:
Môi trƣờng lập trình la một sự kết hợp cảu 4 nhân tố:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 903
• Programming tools.To what extent the programmer uses software tools
and how powerful these tools are (i.e., debuggers, editors).
• Programming tools (công cụ lập trình) Lập trình viên sử dụng các công
cụ phần mềm đến mức độ nao, va những công cụ đó mạnh ra sao ? (vd
debuggers, editors)
• Modern programming practices. To what extent does the programmer
use modern programming practices and how powerful are they? This
includes modular programming, program libraries, and reuse.
• Modern programming practices. (phong cách lập trình hiện đại) – Lập
trình viên sử dụng những phong cách lập trình mới nhƣ thế nao va
chúng có lợi ra sao. nó bao gồm modular programming, program
libraries, và reuse.
• Programming standards. To what extent are standards used, how
stringent are they, and how strictly are they adhered to? Examples
include test standards, verification standards, validation standards, and
standards of unit size.
• Programming standards.(tiêu chuẩn lập trình) những tiêu chuẩn đƣợc
sử dụng đến mức nao, sự khắt ke của chúng đến mức nao, sự gán bó
với chúng ra sao ? VD: tiêu chuẩn về kiểm thử, tiêu chuẩn về sự đánh
giá xác minh, tiêu chuẩn về hiệu lực, tiêu chuẩn về quy mô của đơn vị.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 904
• Power of equipment used. Barry Boehm introduced two factors
pertaining to the power of equipment used: a factor that measures
memory space limitations and a factor that measures time limitations.
• Power of equipment used (Chất lƣợng thiết bị đƣợc sử dụng) Barry
Boehm đƣa ra 2 yếu tố liên quan đến chất lƣơng của thiết bị đƣợc sử
dụng: la nhân tố hạn chế về mặt bộ nhớ va nhân tố về giới hạn thời gian
sử lý.
9. The participation of users has been found to have an important impact
on programmer productivity. Well prepared users reduce the cost of
software maintenance.
Sự tham gia của ngƣời sử dụng đƣợc nhận ra la có ảnh hƣởng lớn
đến hiệu quả của lập trình viên. Việc nay giảm chi phi cho việc bảo trì phần
mềm.
• Previous education in computing. What is the duration level of the
users‘ previous education in computing.
• Previous education in computing (Trƣớc đao tạo về sử dụng máy tinh)
Khoảng thời gian ma ở mức độ ngƣời sử dụng chƣa qua đao tạo la bao
lâu.
• Experience in computing. To what extent has the user used computers
in the past? Previous experience gives users a better sense of what
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 905
computers can do for them and enables them to express their desires
more effectively.
• Experience in computing.(có kinh nghiệm về mặt sử dụng máy tinh)
ngƣời dung đã sử dụng máy tinh trong quá khứ ở mức độ ra sao ?
những kinh nghiệm trƣớc có cho ngƣời dụng một khả năng tốt hơn về
những việc ma máy tinh có thể lam cho họ va cho phép họ bay tỏ mong
muốn của mình một cách hiệu quả
• Experience with the type of application. Experience in building
computer systems in the same application domain is valuable. The
major incentive for rapid prototyping is to have a high rating for this
factor.
• Experience with the type of application.(có kinh nghiệm với kiểu ứng
dụng đó) có kinh nghiệm với hệ thống máy tinh ở cùng một miền ứng
dụng la rất có ich. Khich lệ chinh cho những mẫu đầu tiên đƣợc đánh
giá cao cho yếu tố nay
• Experience with the group of programmers and analysts (kinh nghiệm
với những nhóm lập trình viên va ngƣời phân tich)
10. Survey results on Tunisian subjects:
Kết quả của cuộc nghiên cứu về đề tai Tunisian:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 906
• Of the 16 motivation factors, 5 were statistically significant and
account for 18.89 percent of programmer productivity: technical
supervision, working conditions, achievement, responsibilities, and
recognition.
• Trong 16 nhân tố thúc đẩy, 5 nhân tố quan trọng va giải thich cho 18.89
% hiệu quả lam việc của lập trình viên: technical supervision, working
conditions, achievement, responsibilities, and recognition.
• Of the four personnel experience factors, only two were found to be
statistically significant and account for 7.49 percent of programmer
productivity: experience with the virtual machine and user community.
• Trong 4 nhân tố về nhân sự, chỉ có 2 nhân tố đƣợc nhận thấy la có ảnh
hƣởng va chiếm 7,49 % hiệu quả lam việc của lập trình viên:
experience with the virtual machine and user community.
• Of the factors used to assess project management, two were proved
significant and explain 5.57 percent of programmer productivity: the
definition and use of a software life cycle and software cost estimation.
• Trong những nhân tố đƣợc sử dụng để quản lý dự án, 2 nhân tố đƣợc
chúng minh quan trọng va giải thich cho 5.57% hiệu quả lam việc của
lập trình viên: the definition and use of a software life cycle and
software cost estimation.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 907
• In the programming environment area two factors explained 9.62
percent of programmer productivity: the use of modern programming
practices and the power of equipment used for development.
• Trong phạm vi môi trƣờng lập trình 2 nhân tố giải thich cho 9.62 %
hiệu quả lam việc của lập trình viên: the use of modern programming
practices and the power of equipment used for development.
• Two user factors were found to be significant and explained a 5.33
percent of programmer productivity: experience of the user community
with computers and the experience of the user community with the
group of programmers and analysts.
• 2 nhân tố về ngƣời dùng đƣơc nhận thấy có ảnh hƣởng va giải thich co
5.33 % hiệu quả lam việc của lập trình viên: experience of the user
community with computers and the experience of the user community
with the group of programmers and analysts.
36.3 TÀI LIỆU THAM KHẢO
Boehm, B.W. (1981). Software Engineering Economics. Prentice-
Hall, Englewood Cliffs, NJ.
Kemayel, L., Mili, A., and Ouederni, I. (1991). Controllable factors
for programmer productivity:a statistical study, J. Syst. Software, 16, 151–
163.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 37: Kemayel’s controllable factors 908
36.4 CHUYÊN ĐỀ CHỌN LỌC
Basili, V.R. and Weiss, D.M. (1984). A methdology for collecting
valid software engineering data,IEEE Trans. Software Eng., SE-10, 728–
737.
Mills, H.D. (1983). Programmer Productivity, Little, Brown and
Co., Boston, MA.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 908
CHƢƠNG 37 THE AT&T’S “ESTIMEETING’
PROCESS FOR DEVELOPING ESTIMATES
Người dịch: Nguyễn Thanh Tòng
37.1 TỔNG QUAN
This chapter presents a method for estimating a software
development effort in the early phases of a large software-intensive project.
For each feature of the project to be estimated, a ―feature team‖ generates a
detailed feature definition that is used in what the Taff, Borchering, and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 909
Hudgins (1991) term an ―estimeeting‖. Using this process it is possible to
build in software quality, by design, in the early stages of development and
not added on later in a series of fixes to problems uncovered in testing.
Building in quality requires ―front loading‖ the development process,
yielding better designs and fewer errors that are more easily and cleanly
isolated and repaired.
Chƣơng nay trình bay một phƣơng pháp để đánh giá một sự nổ lực
phát triển phần mềm nằm trong giai đoạn đầu của một dự án phần mềm lớn.
Đối với mỗi tinh năng của dự án đƣợc ƣớc tinh, một đội ngũ tinh năng
(feature team) tạo ra một định nghĩa tinh năng chỉ tiết ma đƣợc sử dụng
trong Taff, Borchering, va Hudgins (1991) gọi la thuật ngữ ―estimeeting‖.
Sử dụng quá trình nay la khả thi trong việc xây dựng trong chất lƣợng phần
mềm, bẳng cách thiết kế, ở giai đoạn đầu của sự phát triển va không đƣợc
thêm vao sau nay trong một loạt các bản sửa lỗi cho các vấn đề không đƣợc
phát hiện trong thử nghiệm. Xây dựng chất lƣợng đòi hỏi phải "nạp trƣớc‖
quá trình phát triển, xây dụng tốt hơn thiết kế va it lỗi để dễ dang hơn trong
việc cô lập va sửa chữa.
More complete work in the early stages can serve to identify tools or
special testing needs earlier. If the estimates for a project are too low, then
project staffing will also be too low. As needs become apparent, staff are
―back-end loaded‖, which is the reverse of what is desirable for a high-
quality product. The ―estimeeting‖ process described in this chapter can be
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 910
used to estimate a software project accurately. The benefits of this process,
as identified by the authors, are as follows:
Cang nhiều công việc hòan thiện ở giai đoạn đầu có thể phục vụ để
xác định các công cụ hoặc các nhu cầu kiểm thử đặc biệt sớm hơn. Nếu quá
trình đánh giá/ƣớc tinh cho một dự án quá thấp, sau đó việc bố tri nhân sự
cho dự án cũng thấp, khi nhu cầu trở nên rõ rang, đội ngũ nhân viên đƣợc
tái cơ câu lại, đó la đảo ngƣợc của những gì đƣợc mong muốn cho một qui
trình chất lƣợng cao.quá trình estimeeting đƣợc mô tả trong chƣơng nay có
thể đƣợc sử dụng để ƣớc tinh một dự án phần mềm chinh xác. Những lợi
ich của quá trình nay, nhƣ đƣợc xác định bởi các tác giả, nhƣ sau:
• Better estimates. There is an ability to predict resources more
accurately.
• Uớc lƣợng tốt hơn. Có một khả năng dự đoán tai nguyên hơn chinh
xác.
• Earlier and closer subsystem involvement. Subsystem owners attend
meetings earlier, see what new features may be down the pike, and as a
result, can make allowances.
• Sớm hơn va gần hơn sự tham gia của hệ thống phụ. Chủ sở hữu của hệ
thống con tham dự các cuộc họp sớm hơn, xem những tinh năng mới có
thể chƣa ổn, va kết quả la, có thể tăng phụ cấp cho chức năng đó.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 911
• Early direct relationships. The meetings foster teamwork.
• Có mối quan hệ trực tiếp với nhau sớm hơn. Các cuộc họp nuôi dƣơng
tinh thần đồng đội.
• Early expert high-level designs. Byproducts of these meetings are ideas
that are useful for the next level of design.
• Sớm đạt tới bản thiết kế cao cấp. Sản phẩm từ các cuộc họp nay la ý
tƣởng có ich đối với các cấp độ tiếp theo của thiết kế.
• Problem detection. There is a better understanding of potential
problems of resources and performance.
• Vấn đề phát hiện. Có một sự hiểu biết tốt hơn về những vấn đề tiềm
năng của các nguồn lực va hiệu suất.
• Better quality. Multiexpertise team leads to better definition,
requirements, and design.
• Chất lƣợng tốt hơn. Nhiều ý kiến dẫn đến định nghĩa tốt hơn, yêu cầu
tốt hơn, va thiết kế tốt hơn.
• Features interactions and synergy. This leads to a better understanding
of how all features interact.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 912
• Tinh năng tƣơng tác va tổng hợp. Điều nay dẫn đến một sự hiểu biết tốt
hơn về tất cả các tinh năng tƣơng tác nhƣ thế nao.
• Project knowledge base. This improves the expertise and knowledge
base for stimators, helping to produce more system experts.
• kiến thức cơ bản về dự án. Điều nay nâng cao chuyên môn va kiến thức
cơ sở cho nha đánh giá(estimators), giúp đơ đao tạo các chuyên gia hệ
thống nhiều hơn nữa.
37.2 THỦ TỤC/CHÍNH SÁCH/VẤN ĐỀ
An estimeeting is a standardized working meeting with regularly
attending estimators. The meeting capitalizes on the synergy of having the
key people together. Success requires good feature requirements and a
high-level design proposal in advance and attendance by a specific group of
experienced people.
Estimeeting la một cuộc họp với việc thƣờng xuyên tham dự của các
estimator. Cuộc họp dựa trên việc có nhiều key-people lam việc với nhau.
Thanh công đòi hỏi những yêu cầu tinh năng tốt va một đề nghị thiết kế cấp
cao đƣợc trình bay, va đƣợc tham gia đánh giả bởi một nhóm cụ thể của
những ngƣời có kinh nghiệm.
The front-end process constitutes the selection process through
which feature candidates are picked for development. It begins with a list of
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 913
feature candidates and ends when a subset has been approved for
development. This process attempts to balance the conflicting needs of
business.
Cuộc họp bắt đầu với quá trình lựa chọn tinh năng ứng viên việc phát
triển. Nó bắt đầu với một danh sách tinh năng ứng viên va kết thúc khi một
tập hợp con đã đƣợc chấp thuận để phát triển. Quá trình nay cố gắng để cân
bằng các xung đột nhu cầu của việc kinh doanh.
Project-planning. Estimates are used for project management once
the project begins. In addition to project planning, long-range planning is
also based on development estimates. Multirelease planning ries to account
for: 1) experienced staff, 2) test facilities, and 3) interactions with other
products such as billing, etc.
Kế họach dự án. Quá trình đánh giá đƣợc sử dụng cho quản lý dự án
khi dự án bắt đầu. Ngoai việc lập kế hoạch dự án, quy hoạch tầm xa cũng
dựa trên các số ƣớc lƣợng phát triển. Việc quy hoạch dự án cố gắng tinh
tóan các số liệu sau: 1) đội ngũ nhân viên giau kinh nghiệm, 2) kiểm tra các
tinh năng, 3) tƣơng tác với các sản phẩm khác nhƣ thanh toán, v.v..
Software is grouped into subsystems. The subsystems are organized
functionally for the various tasks that the ultimate product must perform.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 914
Hệ thống phần mềm đƣợc chia thanh các nhóm hệ thống phụ. Các hệ
thống phụ đƣợc tổ chức chức năng cho các nhiệm vụ khác nhau ma các sản
phẩm cuối cùng phải thực hiện.
The large size of a project has implications. Project planning and
management have large economic impacts; errors in estimation can have
serious consequences.
Kich thƣớc lớn của một dự án có liên quan đến việc quy hoạch va
quản lý,ƣớc lƣợng có tác động lớn về kinh tế; sai sót trong dự toán có thể có
hậu quả nghiêm trọng.
Estimation can be broken down into two major parts. The first is job
size, which is the size and complexity of the code. The second part of
estimation is the effort required once the size is known. This effort depends
on the productivity of the development organization.
Dự toán/ƣớc tinh có thể đƣợc chia thanh hai phần chinh. Đầu tiên la
công việc tinh kich thƣớc, kich cơ va độ phức tạp của mã. Phần thứ hai dự
toán la những nỗ lực cần thiết khi kich thƣớc đƣợc biết đến. Nỗ lực nay phụ
thuộc vao năng suất của tổ chức phát triển.
The estimeeting methodology evolved from three principles:
• Estimates are important numbers because they help determine product
content. Underestimating can cause failure to meet commitments with
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 915
dire consequences for business. Estimates impact quality because they
control the distribution of effort over the development cycle
• Experienced people give the best values. Estimators compare the job to
be estimated with one from their own experience. Therefore, the more
extensive the experience, the more likely it is that the estimate will be
accurate.
• Cooperative meetings give excellent results. It has been proven that
team consensus improves on the best individual solution.
Các phƣơng pháp estimeeting phát triển từ ba nguyên tắc:
• Ƣớc tinh đem đến những số liệu quan trọng bởi vì chúng giúp xác định
nội dungsản phẩm.
• Những ngƣời có kinh nghiệm cho các giá trị tốt nhất.
• Hợp tác xã cuộc họp cho kết quả tuyệt vời.
The concept behind the estimeeting is to get into one room people
highly experienced in all the major aspects of feature and subsystem
development and with the authority to represent the technical viewpoint of
their organizations. In this meeting, they come to a common understanding
of a new feature, agree on an informal, nonbinding, high-level design
proposal, and estimate development effort in their own areas of expertise.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 916
Việc tiếp cận phia sau Estimeeting la để có một phòng tòan những
ngƣời giau kinh nghiệm về về lĩnh vực các tinh năng ma đƣợc phát triển bởi
tổ chức của họ.Tại cuộc họp nay họ đi đến một hiểu biết chung cơ bản về
tinh năng mới,một bản thiết kế cao cấp,đánh giá nổ lục phát triển đối với
các lĩnh vực chuyên môn của riêng họ.
With a preliminary recommendations feature list, a schedule is set
down and for each feature on the list a feature team is formed. Over a
chosen time period, each team produces two outputs — the external feature
requirements (FSPs) and the internal feature design (FAP).
Với một kiến nghị sơ bộ danh sách tinh năng đƣợc đƣa ra, một kế
họach lam việc đƣợc thiết lập xuống va cho mỗi tinh năng trong danh sách
một nhóm phát triển tinh năng đƣợc hình thanh. Qua một khoảng thời gian
đã chọn, mỗi đội sản xuất hai output gồm các yêu cầu ngoai tinh năng
(FSPS) va những thiết kế tinh năng nội bộ(FAP)
These documents are distributed to estimators, the engineers with in-
depth knowledge of the subsystems. The estimators are not on feature
teams; they represent the development interests of their subsystems and
receive these requirements and design documents for every feature that
impacts their subsystems.
Những tai liệu nay đƣợc phân phối đến các nha đánh giá, các kỹ sƣ
với chiều sâu kiến thức về các hệ thống phụ. Các estimators không phải la
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 917
một ngƣời của nhóm đảm trách tinh năng; họ đại diện cho lợi ich phát triển
của hệ thống con va nhận các yêu cầu nay va các tai liệu thiết kế cho mọi
tinh năng ma các tác động đến hệ thống con.
Team members are drawn from the concerned organizations
(systems engineering, development). Some individuals join more than one
feature team. Each feature team is responsible for estimeeting preparation,
presentation, and follow-up for its feature. Although composition of the
team may evolve, it is initially composed of:
• Systems engineer
• The feature engineer
• The system architect
• The planner
• The product manager
Thanh viên mỗi đội đƣợc rút ra từ các tổ chức có liên quan (hệ thống
kỹ thuật, phát triển). Một số cá nhân tham gia nhiều hơn một đội phát triễn
tinh năng. Mỗi nhóm tinh năng chịu trách nhiệm đánh giá,chuẩn bị, trình
bay, va theo dõi cho các tinh năng ma đội phụ trách. Mặc dù thanh phần của
đội có thể tiến triển thêm, ban đầu gồm có:
• Kỷ sƣ hệ thống
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 918
• Kỷ sƣ phát triển tinh năng.
• Kiến trúc sƣ hệ thống.
• Ngƣời lập kế họach.
• Ngƣời quản lý sản phẩm.
The FAP (feature architecture proposal) contains:
• Description of new internal architectures where applicable AT&T‘s
―Estimeeting‖ Process for Developing Estimates
• High-level functional description of how the feature works from
hardware and software design viewpoints
• Expected feature performance
• Dependencies and interactions with other new or existing features
• Open issues of design and architecture and proposed solutions
FAP bao gồm:
• Mô tả một tinh năng nội bộ ma phù hợp với AT&T‘s ―Estimeeting‖ để
phát triển đánh giá.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 919
• Một mô tả chi tiết cách tinh năng tƣơng tắc với phần mềm va phần
cứng ra sao.
• Mong muốn tinh năng họat động ra sao
• Sự độc lập va ảnh hƣởng lẫn nhau giữ các tinh năng đã có va sắp them
vào.
• Những vần đề mở về việc thiết kế va kiến trúc va những giải pháp đề
xuất.
The FSP (feature selection proposal) consists of:
• Feature operation (typical user scenarios)
• Feature interaction with other features
• Feature impact
• Constraints
• Restrictions
FSP bao gồm:
• Cách họat động của tinh năng
• ảnh hƣởng lẫn nhau giữ các tinh năng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 920
• sự tác động của tinh năng
• các rang buộc
• sự hạn chế.
Prior to the first estimeeting, the following package is assembled:
• People expected to attend
• FSP (external requirements)
• FAP (design and system-impact checklis
Những tai liệu sau đây đƣợc thu thập cho Estimeeting đầu tiên:
• Những ngƣời đuợc mong đợi sẽ tham gia
• FSP
• FAP
The estimeeting takes about two hours for a single feature. A
moderator begins by introducing the feature team members and may briefly
discuss the agenda and ground rules.
Estimeeting mất khoảng hai giờ cho một tinh năn. Một ngƣời quan lý
bắt đầu bằng việc giới thiệu các thanh viên trong nhóm tinh năng va có thể
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 38: The AT&T’s “Estimeeting”Process 921
có một thời gian ngắn thảo luận về chƣơng trình nghị sự va các quy tắc
chung.
The system engineer presents feature description and requirements
and delineates what is optional and mandatory.
Các kỹ sƣ hệ thống trình bay,mô tả yêu cầu của tinh năng
va vạch những yêu cầu nao la tùy chọn va nhữg yêu cầu nao la bắt buộc.
A secretary, often the planner, takes notes and records assumptions
and issues. A question and answer period typically follows the
presentations.
Một thƣ ký, thƣờng la các nha quy hoạch, cần ghi chú va lƣu lại các
giả định về các vấn đề,những câu hỏi va câu trả lời thƣờng kèm theo trong
khoảng thời gian sau các thuyết trình.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 921
CHƢƠNG 38 KHUNG BURN ĐỂ XÂY HỆ
THỐNG ĐÁNG TIN CẬY
Người dịch: Nguyễn Hoang Việt
38.1 TỔNG QUAN
The role and importance of nonfunctional requirements in the
development of complex critical applications have, up until now, been
inadequately appreciated. It has been shown, through experience, that this
approach fails to produce dependable systems
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 922
Cho đến nay, vai trò và tầm quan trong của những yêu cầu phi chức
năng trong phát triển các ứng dụng phức tạp chƣa đƣợc đánh giá cao. Nó
đƣợc thực hiện thông kinh nghiệm, đây la cách tiếp cận sai để tao ra hệ
thống tin cậy.
Nonfunctional requirements include dependability (e.g., reliability,
availability, safety, and security), timeliness (e.g., responsiveness,
orderliness, freshness, temporal predictability, and temporal controllability)
and dynamic change management (i.e., incorporating evolutionary changes
into a nonstop system).
Yêu cầu phi chức năng gồm tính tin cậy (an toàn, bảo mật). Tính kịp
thời hiện đại (phản ứng, dự báo thời, điều khiển), quản lý sự thanh đổi năng
động(kết hợp những thay đổi tiến hoá mà không làm dừng hệ thống).
The purpose of the framework described in this chapter (Burns and
Lister, (1991) is to:
• Impose a design discipline that ensures that appropriate abstractions
are used at each level of the design
• Allow assertions to be developed that the nonfunctional requirements
can be met by the design if implemented in a particular environment
• Allow interactions between these nonfunctional requirement to be
analyzed so that dependencies can be identified
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 923
• Allow the nonfunctional and functional requirements to be traded off
against each other
Mục đich của khung mô tả trong chƣơng nay(Burns and Lister,
1991) là:
• Áp đặt một kỷ luật thiết kế ma bao đảm rằng áp sự trừu tƣợng sử dụng
trong mỗi mức thiết kế một cách hơp lý.
• Cho phép khẳng định sẽ phát triển các yêu cầu phi chức năng có thể
đáp ứng bằng đƣợc bằng việc thiết kế., nếu thực hiện trong một môi
trƣờng cụ thể.
• Cho phép tƣơng tác giữa các yêu cầu phi chức năng để phân tich những
sự phụ thuộc lẫn nhau.
• Cho phép các yêu cầu chức năng va phi chức năng kết hợp va trao đổi
lẫn nhau.
38.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. A constructive way of describing the process of system design is a
progression of increasingly specific commitments that define properties
of the system design which designers operating at a more detailed level
are not at liberty to change. For example, early in the design there may
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 924
already be commitments to the structure of a system, in terms of
module definitions and relationships
Một cách mô tả các quá trình thiết kế hệ thống la chuỗi chỉ ngay
cang rõ sự chuyển giao ma xác định (định rõ) các đặc tinh của thiết kế hệ
thống cái ma ngƣời thiết nó tinh toán nó ở mỗi mức cụ thể hơn. Không tự
do thay đổi. Vi dụ, đầu tiên của thiết kế thật sự la cam kết cấu trúc của hệ
thống. vế các đinh nghĩa moudle va quan hệ.
2. Those aspects of a design to which no commitment is made at some
particular level in the design hierarchy are the subject of obligations
that lower levels of design must address. For example, the behavior of
the defined ―committed to modules‖ is the subject of obligations that
must be met during further design and implementation
Những khia cạnh của một thiết kế để có thể cam kết không đƣợc
thực hiện ở một số cấp độ cụ thể trong hệ thống phân cấp thiết kế la đối
tƣợng của nghĩa vụ ma các cấp thấp hơn của thiết kế phải giải quyết. Vi dụ,
hanh vi của các định nghĩa "cam kết mô-đun‖ la chủ đề của nghĩa vụ đó
phải đƣợc đáp ứng hơn nữa trong quá trình thiết kế va thực hiện.
3. The process of refining a design — transforming obligations into
commitments — is often subject to constraints imposed primarily by
the execution environment
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 925
Quá trình cải tiến một thiết kế - chuyển đổi thanh các nghĩa vụ hanh
cam kết- thƣờng chịu những khó khăn chinh từ môi trƣờng thực thi
4. The execution environment is the set of hardware and software
components on top of which a system is built. It may impose resource
constraints (e.g., processor speed) and constraints of mechanism(e.g.,
data locking).
Môi trƣờng thực thi la phần cứng va các phần mền điều hanh hệ
thống. Nó có thể áp đặt các hạn chế tai nguyên (tốc tộ xủ lỳ, bộ nhớ) hoặc
các rang buộc khó khăn(khóa dữ liệu).
5. The framework controls the introduction of necessary implementation
details into the design process by distinguishing two phases in the
construction of an architectural design of any application:
• Logical architecture — embodies commitments that can be made
independently of the constraints imposed by the execution environment
and is aimed at satisfying the functional requirements.
• Physical architecture — takes constraints into account and embraces
nonfunctional requirements.
Khung kiểm soát việc đƣa vao những chi tiết thực thi cần thiết vao
thiết kế hệ thống bởi 2 quá trình quá trình phân biệt trong sự xây dựng kiến
trúc của bất kỳ hệ thống ứng dụng nao
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 926
Kiến trúc logic: gốm các cam kết thực hiện có thể thực hiện đƣợc nó
độc lập với các rang buộc khó khăn trong môi trƣờng thực thi va mục tiêu
la đáp ứng các nhu cầu chức năng.
Kiến trúc vật lý: rang buột tiền va bao trùm các yêu cầu phi chức
năng.
6. The nonfunctional requirements of an application can be considered as
projections onto the physical architecture. Distinct projects apply to
timeliness, safety, etc. The physical architecture makes it explicit where
projections interact and enables criteria to be developed that cater for
these interactions.
Yêu cầu phi chức năng đƣợc xem nhƣ la phần phô ra của thiết kế vật
lý. Mục đich của thiết kế vật lý la sự hợp thời(tinh tiến hoá), an toan. Thiết
kế vật lý lam cho nó rõ rang ở những nơi có sự giao tác va sự phát triển
giao tác.
7. The framework is grounded in the object-oriented approach to system
design. This approach is widely regarded as offering a conceptual
framework for mastering the complexities of the design process:
• Objects are an adequate modeling tool for the functional requirements
of the system.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 927
• They can be used to provide traceability through all stages of the design
process.
• They are an adequate basis for expressing nonfunctional requirements.
• They provide an appropriate granularity for replication, checkpointing,
dynamic change management, configuration, and dynamic
reconfiguration.
• They assist error containment through encapsulation.
• They can support dynamic security by access right mechanisms on
operations.
• They can represent schedulable entities.
• Commonly encountered standard architectures can be implemente by
means of redefined classes and methods.
Khung đƣợc áp dụng trong phƣơng pháp hƣớng tƣợng để thiết kế hệ
thống. Cách tiếp cận náy khá rộng rãi đƣợc xem nhƣ la một sự đề nghị cho
khái niệm khung chinh yếu cho những tiến trình thiết kế phức tạp:
• Đối tƣợng la một mô hình công cụ đầy đủ cho yêu cầu chức năng của
hệ thống.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 928
• Chúng ta có thể dùng để truy vấn các thông tin của các giai đoạn thiết
kế.
• Chúng la một nền tảng đẩy đủ để thể hiện các yêu cầu phi chức năng.
• Chúng cung các chức năng thich hợp để nhân rộng, kiểm tra,thay đổi
quản lý năng động, cấu hình va cấu hình lại năng động.
• Ngăn chặn lỗi thông quá đóng gói.
• Chúng hỗ trợ an ninh truy cập năng động qua các quyền truy cập vao
hệ thống.
• Chúng có thể hiện đại hoá các thực thễ
• Thƣờng gặp kiến trúc tiêu chuẩn thƣờng đƣợc thực hiện bằng các
phƣơng pháp định nghĩa lại lớp va phƣơng thức.
8. The logical architecture is concerned with defining a se of object
classes, their interfaces, and relationships, which together meet all the
functional requirements. In the logical architecture, communication
between the classes is represented by invocation of methods.
Các kiến trúc logic có liên quan tới định nghĩa tập các lớp đối
tƣợng, giao diện, va mối quan hệ, ma cùng nhau đáp ứng đủ các yêu cầu về
chức năng. Trong kiến trúc logic, giao tiếp giữa các lớp đƣợc đại diện bởi
lời yêu cấu các phƣơng thức.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 39: Khung Burn để xây hệ thống đáng tin cậy 929
9. The physical architecture is concerned with objects, that is, instances of
the classes defined in the logical architecture. It refines the logical
architecture in two ways:
• It instantiates objects from the classes defined in the logical
architecture and maps them onto the target execution environment.
• It annotates the objects and their methods with attributes (such as
deadlines) derived from t e nonfunctional requirements.
Kiến trúc vật lý có liên quan với các đối tƣợng, có nghĩa la, liên quan
đến các thể hiện của những lớp đƣợc định nghĩa trong kiến trúc logic. Nó
cải tiến lớp logic ở 2 phƣơng diện:
• Nó thể hiện những đối tƣợng của lớp đƣợc định nghĩa trong trong kiến
trúc logic va maps(vẽ chúng) chúng vao trong môi trƣờng thực thi.
• Nó chú giải các đối tƣợng va phƣơng thức của chúng với các thuộc tinh
bắt nguồn từ các yêu cầu phi chức năng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 930
CHƢƠNG 39 PHƢƠNG PHÁP TIẾP CẬN ĐA
DIỆN CỦA AVISON
Người dịch: Lê Hoang Vũ
39.1 TỔNG QUAN
The proliferation of systems development methodologies has
resulted in much confusion. In fact, it has been estimated that hundreds of
more or less similar methodologies exist. In practice, most organizations
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 931
have developed their own methodology. There have been many attempts to
compare methodologies; past research by Avison managed to categorize
methodologies into six broad themes. This chapter describes a contin-
gency framework, called Multiview (Avison and Wood-Harper,1991),
which includes descriptions of relevant techniques and tools. Analysts and
users select those aspects of the approach appropriate to the application, in
effect, creating a unique methodology for each application.
• Sự phát triển của hệ thống dẫn tới nhiều phƣơng pháp đƣợc phát sinh
• Mỗi tổ chức có 1 phƣơng pháp riêng
• Avison phân loại các phƣơng pháp thanh 6 chủ đề rộng
39.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. Problems with methodologies in practice:
• Failure to meet needs of management
• Unambitious systems design
• Inflexibility due to the output-driven design
• User dissatisfaction
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 932
• Problems with documentation
• Maintenance workload
• Application backlog
• Không đáp ứng đƣợc nhu cầu của sự quản lý.
• Không hƣớng tới thiết kế của hệ thống.
• Không có tinh linh động theo các hƣớng thiết kế.
• Ngƣời dùng không hai lòng.
• Vấn đề với tai liệu hƣớng dẫn.
• Bảo trì khối lƣợng công việc.
2. Categories:
• Category 1: Systems approach highlights the importance of the
relationship between an organization and its environment, and of
multidisciplinary teams to understand organizations.
• Category 2: Planning approaches involve strategic management in
information systems work so that their needs are analyzed and
information systems are implemented that do more than comput- erize
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 933
the operations level applications. This approach attempts to identify the
needs of management and plans the ways of meet- ing these needs.
• Category 3: In a participative approach all users are expected to
contribute to and gain from any information system; this should
increase the potential for success.
• Category 4: Prototyping enables users to comment on the pro- posed
information system and its inputs, processing, and outputs before the
system has been designed in its final form.
• Category 5: Structured approaches aid the understanding of a complex
problem through functional decomposition and the associated
documentation techniques. This approach tends to emphasize decision
trees, decision tables, data-flow diagrams, etc.
• Category 6: Data analysis is a useful modeling tool in which the data
model produced is likely to be relevant for a longer period than models
of processes, which can be unstable.
• Hệ thống phƣơng pháp tiếp cận.
• Kế hoạch liên quan đến phƣơng pháp tiếp cận quản lý chiến lƣợc trong
hệ thống thông tin.
• Ngƣời dùng đóng góp ý kiến.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 934
• Dùng Prototype (Mẫu thử) để lấy ý kiến ngƣời dùng.
• Phƣơng pháp tiếp cận một vấn đề phức tạp thông qua chức năng phân
tích va các tai liệu kỹ thuật liên quan.
• Phân tich dữ liệu.
3. The multiview meta-methodology:
• Step 1: Analysis of human activity. This stage concerns the search for
view of the organization, representing a subjective as well as objective
perception of the problem situation in diagrammatic and pictorial form.
It is used to identify problem themes. Through debate within the
organization, it is possible to identify relevant systems that may relieve
problem themes. The root definition describes the system on which to
focus attention. The root defini- tion is analyzed to make sure that all
necessary elements have been identified including the owner of the
system, the client, the transformation that takes place, and the
environment in which it takes place.
• Step 2: Analysis of information. At this stage, the entities and func-
tions of the system described are analyzed. By using functional
decomposition, it is possible to break down the main function (clear in
a well-formed root definition) into subfunctions.Using data-flow
diagrams, it is possible to analyze the sequence of events. In
developing an entity model, the problem solver extracts and names
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 935
entities, relationships between entities, and attributes that describe the
entities.
• Step 3: Analysis and design of sociotechnical aspects. At this stage, the
problem solver produces a design from an analysis of people and their
needs and the working environment along with consid- eration for the
organizational structure, computers, and the nec- essary work tasks.
The social and technical objectives are set and alternatives specified
and compared so that the best solution can be selected. Once selected,
computer tasks, role tasks, and peo- ple tasks can be defined. The
emphasis at this stage is not on development, but on a statement of
alternatives, according to important social and technical considerations.
• Step 4: Design of the human computer interface. Decisions are made
as to batch versus online versus ommand, etc. Specific conversations
and interactions are then designed; users are expected to be the major
contributors of this stage. Technical requirements to fulfill these
human–computer interfaces can then be designed. technical
considerations. The technical design will include the application
subsystems and the nonapplication subsystems. These include the
information retrieval subsystem, database, database maintenance
subsystem, control subsystem, etc.
• Step 5: Design of technical aspects. Using the entity model cre- ated in
Step 2 and the technical requirements from Step 4, a more technical
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 936
view can be taken by the analyst because human considerations are
already integrated with the forthcoming
• Bƣớc 1: Phân tich các hoạt động của con ngƣời. Giai đoạn nay la mối
quan tâm va tìm hiểu của tổ chức, đại diện cho một chủ quan cũng nhƣ
nhận thức khách quan của tình hình vấn đề
• Bƣớc 2: Phân tich các thông tin. Ở giai đoạn nay, các thực thể chức
năng của hệ thống đƣợc mô tả la phân tich. Bằng cách sử dụng chức
năng phân tich, có thể để phân tich những chức năng chinh thanh các
chức năng nhỏ hơn.
• Bƣớc 3: Phân tich các khia cạnh kĩ thuật. Ở giai đoạn nay, giải quyết
vấn đề sản xuất một thiết kế từ phân tich của khách hang va nhu cầu
của họ va môi trƣờng lam việc cùng với các cơ cấu tổ chức, máy tinh,
va nhiệm vụ công tác cần thiết. Các mục tiêu xã hội va kỹ thuật đƣợc
thiết lập va lựa chọn, so sánh để chọn ra các giải pháp tốt nhất có thể
đƣợc chọn. Một khi đã chọn, máy tinh có thể đƣợc xác định đƣợc vai
trò va nhiệm vụ.
• Bƣớc 4: Thiết kế của giao diện máy tính dựa trên con ngƣời. Các quyết
định đƣợc thực hiện khớp với lệnh trực tuyến, nhƣ cuộc hội thoại tƣơng
tác cụ thể va sau đó đƣợc thiết kế; ngƣời dùng dự kiến sẽ la những
ngƣời đóng góp chinh của giai đoạn nay. Yêu cầu kỹ thuật để hoan
thành các giao diện ngƣời-máy tinh có thể đƣợc thiết kế.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 937
• Bƣớc 5: Thiết kế của các khia cạnh kỹ thuật. Sử dụng mô hình thực thể
trong Bƣớc 2 va các yêu cầu kỹ thuật từ Bƣớc 4, một lần nữa cân nhắc
xem các kỹ thuật có thể đƣợc thực hiện bởi các nha phân tich không vì
con ngƣời đã đƣợc quen với các cân nhắc kỹ thuật. Thiết kế kỹ thuật sẽ
bao gồm các hệ thống phụ ứng dụng. Hệ thống nay bao gồm các hệ
thống con truy vấn thông tin, cơ sở dữ liệu, hệ thống phụ bảo trì cơ sở
dữ liệu, hệ thống phụ điều khiển, vv
Năm giai đoạn trên đã kết hợp năm điểm khác nhau cho sự phát triển
của một phân tich va thiết kế dự án. một cách tiếp cận MultiView.
These five stages incorporate five different views that are appropri-
ate to the progressive development of an analysis and design project.
Because it is a multiview approach, it covers computer- related questions
and also matters relating to people and business functions Each step
addresses one of the following five questions:
• How is the information system supposed to further the aims of the
organization using it?
• How can it be fit into the working lives of the people in the organi-
zation who will use it?
• How can individuals concerned best relate to the computer in terms of
operating it and using the output from it?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 938
• What information processing function is the system to perform?
• What is the technical specification of a system that will come close
enough to doing the things written down in the answers to the other
four questions?
Cách tiếp cận nay sẽ trả lời đầy đủ các câu hỏi sau:
• Lam thế nao hệ thống thông tin thỏa mãn tổ chức sử dụng nó.
• Lam thế nao hệ thống phù hợp với từng cá nhân trong tổ chức.
• Lam thế nao những cá nhân liên quan tới hệ thống có thể sử dụng nó
hiệu quả.
• Chức năng thông tin ma hệ thống đảm nhận.
• Đặc tả kỹ thuật của một hệ thống đủ để trả lời 4 câu hỏi trên.
39.3 TÀI LIỆU THAM KHẢO
Avison, D.E. and Wood-Harper, A.T. (1991). Information systems
development research: an ex- ploration of ideas in practice, Computer J.,
34(2).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 939
39.4 CHUYÊN ĐỀ CHỌN LỌC
Avison, D.E. and Wood-Harper, A.T. (1986). Multiview — an
exploration in informal system de-
velopment, Aust. Computer J., 18,.
Avison, D.E. and Fitzgerald, G. (1988). Information Systems
Development Ñ Methodologies,
Techniques and Tools, Blackwell Scientific Publications, Oxford.
Avison, D.E. and Wood-Harper, A.T. (1990). Multiview: an
Exploration in Information Systems
Development, Blackwell Scientific Publications, Oxford.
Davies, L.J. and Wood-Harper, A.T. (1989). Information systems
development: theoretical
frameworks, J. Appl. Syst. Anal., 16.
Hirschheim, R. and Klein, H.R. (1989). Four paradigms for
information systems development,
Commn. ACM, 32.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 40: Phương pháp tiếp cận đa diện của Avison 940
Iivari, J.A. (1989). Methodology for IS development as an
organizational change: a pragmatic contingency approach, in Klein &
Kumar (1989).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 940
CHƢƠNG 40 BYRNE’S REVERSE
ENGINEERING TECHNIQUE
Người dịch: Nguyễn Tiến Vũ
40.1 TỔNG QUAN
The problem of reimplementing an existing system in a different
programming language is a problem around which there are three general
approaches:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 941
• Manually rewrite the existing system.
• Use an automatic language translator.
• Redesign and reimplement the system.
Vấn đề của việc sử dụng lại hệ thống có sẵn trong những ngôn ngữ
lập trình khác nhau thông qua 3 phƣơng pháp cơ bản:
• Tự tay viết lại hệ thống có sẵn.
• Sử dụng công cụ biên dịch ngôn ngữ tự động.
• Thiết kế lại va thực hiện lại hệ thống.
There are problems with each of these approaches. Manually
translated source code often retains the style and flavor of the original
implementation. This approach is labor intensive and error prone.
Automatic translation, a better technique, has problems as well.
Mỗi phƣơng pháp trên có những vấn đề nhƣ:
Nếu biên dịch bằng tay thƣờng gặp phải phong cách va mùi vị của
việc thực hiện gốc. Phƣơng pháp nay tốn chi phi lao động va tăng nguy cơ
lỗi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 942
Nếu dùng công cụ tự động thì có lỗi tƣơng tự.
The source language may not yield itself to simple translation into
the target language. Most automated translator tools perform the easier
parts of the translation process, leaving the more complex details for a
human.
Perhaps the biggest problem with this technique is, as Byrne (1991)
suggests, its tendency to replicate the same problems plaguing the original
version — in other words, ―garbage in, garbage out‖.
Ngôn ngữ nguồn có lẽ không dễ dang biên dịch thanh ngôn ngữ đich.
Hầu hết các công cụ biên dịch đều thực hiện những phần dễ dang, để lại
những phần phức tạp cho con ngƣời. Có lẽ vấn đề lớn nhất của quá trình
này là (nhƣ Byrne đề nghị), nó có khuynh hƣớng tạo lại cái vấn đề của
phiên bản cũ hay nói cách khác ―có rác vao, thì có rác ra ―
Of the three approaches, redesign and reimplementation has the best
chance of producing a successful system; however, this technique has its
disadvantages too. This approach has the highest cost because it is the
equivalent of building a new system. Perhaps the most serious disadvantage
is that, for many systems, it may not be possible to redesign from system
requirements because the requirements may not exist.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 943
Trong 3 phƣơng pháp đó thì phƣơng pháp thiết kế lại va thực hiện lại
hệ thống la cơ hội tốt nhất để tạo ra 1 hệ thống thanh công, Tuy nhiên kĩ
thuật nay cũng có nhƣợc điểm. Nó tốn chi phi cao nhất bởi vì nó tƣơng
đƣơng với việc xây dựng lại hệ thống. Có lẽ nhƣợc điểm quan trọng nay,
cho nhiều hệ thống, nó không thể thiết kế lại từ những yêu cầu hệ thống vì
những yêu cầu nay có lẽ không còn tồn tại.
Reverse engineering provides a new approach by producing a
reconstructed design that captures the functionality of the system. This
chapter describes a reverse engineering technique that successfully
translated a FORTRAN program into the Ada language.
Thiết kế đối chiếu cung cấp phƣơng pháp mới bằng cách tạo ra thiết
kế cấu trúc lại dựa vao chức năng của hệ thống. Chƣơng nay mô tả kĩ thuật
thiết kế đối chiếu từ việc biên dịch thanh công chƣơng trình fortran thanh
ngôn ngữ ada.
40.2 THỦ TỤC/ VẤN ĐẾ/ CHÍNH SÁCH
1. Collect information. The reverse engineering process begins by
extracting detailed design information and from that extracting a high
level design abstraction. Detailed design information is extracted from
the source code and existing design documents. This information
includes structure charts as well as data descriptions to describe
processing details. In the collect information step, all possible
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 944
information about the program is collected. Sources of information
include source code, design documents, and documentation for system
calls and external routines. Personnel experienced with the software
should also be identified. This last requirement is not to be
underestimated; lack of ―domain knowledge‖ can make design
recovery extremely difficult, if not impossible.
Thu thập thông tin. Quá trình thiết kế đối chiếu bắt đầu bởi việc rút
trich chi tiết thiết kế thông tin va từ sự rút trich thiết kế tóm tắt cấp cao.
Thông tin thiết kế chi tiết đƣợc rút trich từ mã nguồn va từ văn bản thiết kế.
Thông tin nay bao gồm mô hình cấu trúc nhƣ quá trình mô tả dữ liệu chi
tiết. Trong bƣớc thu thập thông tin, tất cả thông tin có thể về chƣơng trình
đƣợc chọn lọc. Nguồn thông tin gồm mã nguồn, thiết kế văn bản, va văn
bản của hệ thống va lộ trình bên ngoai. Kinh nghiệm của con ngƣời với
phần mềm nên đƣợc nhận ra. Yêu cầu cuối không đƣợc đánh giá thấp; thiếu
kiến thức về tên miền có thể lam cho việc thiết kế phục hồi trở nên khó, nếu
không phải không thể.
2. Examine information. In this step the information collected in step one
is examined to allow the person doing the recovery work to become
familiar with the system and its parts. Staff responsible for reverse
engineering formulate a plan for dissecting and recording the recovered
information. It should be noted that becoming familiar with the
language implementation of the module can bias the reverse
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 945
engineering effort by influencing the perspective of what should be
recovered and how it should be expressed.
Kiểm tra thông tin. Trong bƣớc nay thông tin đƣợc chọn lựa trong
bƣớc 1 đƣợc kiểm tra để cho phép con ngƣời lam công việc phục hồi để
quen với hệ thông va các thanh phần của nó. Nhân viên chịu trách nhiệm
cho kế hoạch công thức thiết kế đối chiếu để phân tich mổ xẻ va ghi lại
thông tin đƣợc phục hồi. Nó nên đƣợc ghi chú sự quen với ngôn ngữ thực
hiện của theo khuynh hƣớng của nổ lực thiết kế đối chiếu bởi sự tác động
lên phối cảnh của cái nên đƣợc phục hồi va nên đƣợc nhấn mạnh.
3. Extract the structure. The information is reviewed in an attempt to
identify the structure of the program. This is used to create a set of
structure charts where each node in the chart corresponds to a routine
called in the program. Therefore, the chart created actually records the
calling hierarchy of the program. For each edge in the chart, the data
passed to a node and returned by that node must be recorded. It should
be noted that software tools are generally available to assist in the
development of structure charts. Associating structure chart nodes with
source code routines raises the issue of traceability. In reverse
engineering, it is desirable to record the links between the recovered
design and the original source code or documentation. In this case, it
would be desirable to give a node a meaningful name and record the
name of the implemented function to which it corresponds. As the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 946
structure chart is recorded, the data items passed between nodes should
also be recorded.
Rút trich cấu trúc. Thông tin đƣợc xem trong sự cố gắng nhận ra cấu
trúc chƣơng trình. Nó đƣợc dùng để tạo ra tập biểu đồ cấu trúc, mỗi đỉnh
trong biểu đồ phù hợp với lộ trình gọi la chƣơng trình. Vì thế ma, biểu đồ
đƣợc tạo ra thật sự ghi lại sự phân cấp của chƣơng trình. Mỗi đỉnh trong
biểu đồ, dữ liệu chuyển qua đỉnh va trở về bởi đỉnh đƣợc ghi lại. Nó nên
đƣợc ghi chú rằng công cụ phần mềm la luôn sẵn sang để giúp cho phát
triển cấu trúc biểu đồ. Các đỉnh trong đồ thị liên quan đến mã nguồn lam
tăng khả năng tìm lại bản gốc.Trong quá trình thiết kế đối chiếu, nó đƣợc
mong đợi để ghi lại sự liên kết giữa thiết kế phục hồi va mã nguồn hay tai
liệu văn bản. Trong trƣờng hợp nay, nó đƣợc mong đợi đem đến đỉnh có
nghĩa va ghi lại tên của chức năng thực hiện thich hợp.
4. Record functionality. For each node, the processing done by that node
is recorded. At this step, the program routines‘ functionality as well as
the functionality of system and library routines is described in English
or using a more formal notation. If debugging statements are used
within the program, then they should be recorded as well.Conditional
compilation code, that is, the procedural code that directs the software
to a particular hardware platform, needs to be reviewed carefully.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 947
Ghi lại chức năng. Cho mỗi đỉnh, quá trình nay thực hiện khi các
đỉnh đƣợc ghi lại. Tại bƣớc nay, chức năng của lộ trình chƣơng trình nhƣ
chức năng của hệ thống va lộ trình thƣ viện đƣợc mô tả bằng tiếng anh hay
sử dụng ghi chú. Nếu trạng thái gơ rối đƣợc dùng suốt chƣơng trình, sau đó
nó nên đƣợc ghi lại. Điều kiện biên dịch mã theo thủ tục điều khiển phần
mềm với nền phần cứng, cần đƣợc xem xét cẩn thận.
5. Record data-flow. The recovered program structure and processing
logic can be analyzed to identify the data transformations in the
software that show the actual data processing done in the program.This
information can be used to develop a set of hierarchical dataflow
diagrams that model the software.
Ghi lại luồn dữ liệu. Phục hồi cấu trúc chƣơng trình va quá trình
logic có thể đƣợc phân tich để nhận ra sự chuyển đổi dữ liệu trong phần
mềm cái đƣa ra quá trình dữ liệu thật đƣợc thực hiện trong chƣơng trình.
Thông tin nay có thể đƣợc dùng để phát triển tập mô hình dữ liệu biểu đồ
phân cấp cho phần mềm.
6. Record control flow. At this stage the high-level control of the program
is identified. This refers to the level of control that affects the overall
operation of the software. A problem in this step might be in
distinguishing between low-level control structures that involve the
implementation of a routine and high-level control structures that serve
to control the software operation. The former should be included as part
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 948
of the processing described in the detailed design;the latter needs to be
recorded in a control-flow diagram and its control specification. Byrne
found that there is a temptation to recover too much of the control
structure.
Ghi lại luồng điều khiển. Tại bƣớc nay, điều khiển cấp cao của
chƣơng trình đƣợc nhận ra. Nó tham chiếu đến mức điều khiển cái ma tác
động lên toan bộ hoạt động của hệ thống. Vấn đề của bƣớc nay la sự nhận
ra giữa tầng điểu khiển cấp thấp với cấu trúc liên quan đến sự thực thi lộ
trình với cấu trúc tầng điều khiển cấp trên. Phần đầu gồm phần mô tả quá
trình thiết kế chi tiết. Phần sau cần đƣợc ghi lại trong biểu đồ luồng điều
khiển. Byrne tìm thấy rằng cái khuôn mẫu để phục hồi cấu trúc điểu khiển
quá nhiều.
7. Review the recovered design for consistency. At this stage, missing
items are identified and an attempt is made to locate them. The design
is now checked to see if it accurately represents the program.
Kiên định xem lại thiết kế phục hồi. Tại bƣớc nay, những mục mất đi
đƣợc nhận ra va cố gắng xác định chúng. Thiết kế bây giờ đƣợc kiểm tra để
xem nó có thể hiện chinh xác chƣơng trình hay không.
8. Generate documentation. This last step‘s purpose is to generate design
documentation. Information explaining the purpose of the program,
program overview, history, etc. will be recorded.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 41: Byrne’s reverse engineering technique 949
Tạo ra văn bản. Mục đich của bƣớc cuối cùng nay tạo ra văn bản
thiết kế. Mục đich của thông tin đƣợc giải thich của chƣơng trình, chƣơng
trình tổng quan, lịch sử,...vv đƣơc ghi lại.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 949
CHƢƠNG 41 MÔ HINH TAI SỬ DỤNG CỦA
PERIETO-DIAZ
Người dịch: Lê Văn Chân
42.1 TỔNG QUAN
Software reuse is still far from a standard practice in the software
engineering community even though it was first conceived of over 20 years
ago. The problem, according to Prieto-Diaz (1991), is not one of technology
but of unwillingness to address the most important issues influencing
software reuse.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 950
A model for implementing software reuse programs is discussed in
this chapter. This model is based on an incremental strategy and addresses
many issues that were thought to be external to the software process. This
includes managerial, economic, performance, cultural, and technology
transfer issues. The approach addressed here is practical and effective, and
has potential to make reuse a regular practice in the software development
process.
Tái sử dụng phần mềm vân con xa so vơi thƣc tê chuân trong công
đông công nghê phân mêm măc dâu y niêm na y đa đƣơc hinh thanh tƣ 20
năm trƣơc. Vân đê, theo Perieto-Diaz, không phai la vân đê ky thuât ma la
môt vân đê vê viêc tai sƣ dung phân mêm nhƣng ngƣơi ta không muôn nhăc
đến.
Chƣơng nay thao luân môt mô hinh thƣc thi nhƣng chƣơng trinh tai
sƣ dung phân mêm . Mô hinh nay dƣa trên môt chiên lƣơc gia tăng va tâp
trung nhiêu vân đê bên ngoai qua trinh lam phân mêm bao gôm cac vân đê
mang tinh quan ly , kinh tê , thi hanh , xã hội va những v ấn đề chuyển giao
công nghê . Cách tiếp cận ở đây rất thực tế va hiệu quả va nó có tiềm năng
để tai sử dụng một thực tế đều đặn trong quá trình phát triển phần mềm.
41.1 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. Factors that influence reuse include:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 951
• Managerial factors — organizational, motivational, and financial
• Economic factors — integrating reuse in cost/benefit analysis, system
costing and estimation, pricing criteria, contracting strategies, and
support costs
• Legal factors — software copyright, liabilities, proprietary issues,
contractual requirements
Các nhân tô anh hƣơng đên tai sƣ dung bao gôm
• Quản trị - Tô chƣc, đông lƣc, tai chinh
• Kinh tê - Kêt hơp viêc tai sƣ dung trong phân tich chi phi / lơi nhuân ,
chi phi hiệu thống va dự toán , giá tiêu chuẩn , ký kết hợp đồng chiến
lƣơc va chi phi hô trơ.
• Pháp lý - Bản quyền phần mềm , trách nhiệm pháp lý , các vấn đề độc
quyên, các yêu cầu hợp đồng.
2. Justifications for an incremental approach:
• Provides an immediate return on investment
• Builds confidence within the organization
• Easier to manage
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 952
• Allows for tuning and refining the reuse process
• Facilitates monitoring and evaluating reuse
Luân cƣ cho tiêp cân gia tăng
• Cung câp phan hôi tƣc thơi vê đâu tƣ
• Xây dƣng sƣ tƣ tin bên trong tô chƣc.
• Quản lý dễ dang hơn.
• Cho phep điêu chinh va tinh chinh qua trinh tai sƣ dung.
• Tạo điều kiện cho việc giám sát va đánh giá tái sử dụng.
3. A key ingredient is management support, which is a common factor in
all successful reuse programs (Raytheon, Toshiba, Hartford). This
commitment is necessary because reuse programs demand changes in
the way software is developed.
Môt thanh phân chinh la hô trơ quan ly , nhân tô chung trong tât cac
các chƣơng trình tái sử dụng thanh công (Raytheon, Toshiba, Hartford).
Cam kêt nay la cân thiêt vi nhu câu cua nhƣng chƣơng trinh tai sƣ dung
thay đôi theo cach ma phân mêm đƣơc phat triên.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 953
4. Inputs to the reuse program include software from existing systems and
requirements for future systems.
Đầu vao cho các chƣơng trình tái sử dụng phần mềm cho những hệ
thông hiên co va nhƣng yêu câu cho nhƣng hê thông trong tƣơng lai.
5. The products of a reuse program include a series of software catalogs,
an automated library system, generic architectures, and a collection of
reusable components.
Sản phẩm của một chƣơng trình tái sử dụng gồm có chuỗi bảng danh
mục phần mềm , hê thông thƣ viên tƣ đông , nhƣng kiên truc chung va tâp
các thanh phần tái sử dụng.
6. The assessment report includes: feasibility analysis, domain stability
assessment, cost/benefit analysis, and an implementation pla
Báo cáo đánh giá bao gồm: phân tich kha thi, đanh gia miên ôn đinh,
phân tich chi phi, lơi nhuân va kê hoach thƣc hiên.
7. Questions for a feasibility analysis:
• Does the organization have enough financial and human resources to
implement a reuse program?
• Can the organization afford it?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 954
• Is reuse necessary in the organization?
• Does the organization want to do it?
• Is management committed to implementing a reuse program?
• How many systems of the same kind will be produced?
• Are variations from implementation to implementation large or small?
• Is existing software already available for reuse? What would be the
estimated cost for each alternative?
• Does a critical mass of software engineers exist?
• Is software production large enough to justify a reuse program?
Các câu hỏi về vấn đề phân tich khả thi:
• Liêu tô chƣc co đu nguôn lƣc tai chinh va nguôn lƣc con ngƣơi đê thƣc
hiên chƣơng trinh tai sƣ dung?
• Liêu tô chƣc co đu tiên đê mua no?
• Có phải tái sử dụng la cần thiết trong tổ chức?
• Liêu tổ chức có muốn lam nó?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 955
• Có sự quản lý cam kết để thức hiện một chƣơng trình tái sử dụng hay
không?
• Có bao nhiêu hệ thống cùng loại đƣợc sản xuất?
• Nhƣng sƣ đôi tƣ viêc thƣc hiên đên viêc thƣc hiên la lơn hay nho?
• Nhƣng phân mêm hiên co co săn sang tai sƣ dung đƣơc ko ? Cái gì la
chi phi ƣơc tinh cho môi thay đôi?
• Sô lƣơng quan trong cua ky sƣ phân mêm hiên co?
• Sản phẩm phần mềm có đủ lớn để biện hộ cho phần mềm tái sử dụng?
8. Questions for an analysis of domain suitability:
• Is the domain, line of business, broad or narrow?
• Is the domain mature and well understood or is it new and not well
understood?
• Is the domain complex or simple?
• Is the domain stable or rapidly changing?
• Is the domain very technology dependent?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 956
• Is it in a state of developing concepts or does it rely on well-established
principles, methods, and formalisms?
Các câu hỏi về vấn đề phân tich phù hợp miền.
• Miên, đƣơng kinh doanh thi mơ rông hay thu hep?
• Miên thi hoan thiên va đƣơc hiêu tôt hay la mơi va chƣa năm ro?
• Miên phƣc tap hay đơn gian?
• Miên ôn đinh hay thay đôi nhanh chong?
• Miên co phu thuôc nhiêu vao công nghê?
• Miên trong tinh trang phat triên nhƣng khai niê m hay dƣa vao nhƣng
nguyên tăc, phƣơng phap, hình thức đã tồn tại trong một thời gian dai?
9. Questions for cost/benefit analysis:
• How much does it cost?
• Is a reuse program economically feasible?
• What alternatives exist for implementing a reuse program?
• What is the scope?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 957
• How big a program is contemplated?
• What are the expectations?
• What is the desired level of reuse (partial, opportunistic, formal, total)?
Các câu hỏi cho phân tich chi phi/lơi nhuân
• Bao nhiêu tiên?
• Nó la một chƣơng trình tai sƣ dung kha thi trên phƣơng diên kinh tê?
• Nhƣng lƣa chon thay thê tôn tai trong viêc thƣc hiên môt chƣơng trinh
tái sử dụng?
• Phạm vi la gì?
• Độ lớn chƣơng trình đƣợc dự tinh nhƣ thế nao?
• Sƣ mong đơi la gi?
• Mƣc mong muôn cua tai sƣ dung la gi (môt phân , cơ hôi , hình thức ,
tông thê)?
10. The following organizational structure is recommended to establish a
successful reuse program:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 958
• Asset management group — provides initiatives, funding, and policies
for reuse.
• Identification and qualification group — identifies potential reusability
areas and collects and certifies new additions to the collection.
• Maintenance group — maintains and updates reusable software
components.
• Development group — creates new reusable components.
• Reuser support group — assists and trains users and runs tests and
evaluations of reusable components.
• Librarian — updates and distributes catalogs, classifies new assets,
maintains library system, and manages asset orders. Several roles may
be assigned to one person. However, staff size for a large corporate
endeavor might exceed ten.
Môt câu truc tô chƣc nhƣ sau đƣơc tiên cƣ đê thiêt lâp môt chƣơng
trình tái sử dụng thanh công.
• Nhóm quả lý tài sản – cung câp sang kiên, tai trợ va các chinh sách cho
tái sử dụng.
• Nhóm nhận dạng và chuyên môn – xác định khu vực tái sử dụng tiềm
năng, tông hơp va chƣng thƣc nhƣng phân phu thêm mơi vao tâp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 959
• Nhóm bảo dương – Bảo dƣơng va cập nhật các tha nh phân phân mêm
tái sử dụng.
• Nhóm phát triển – tạo ra những thanh phần tái sử dụng mới.
• Nhóm hỗ trợ người sử dụng lại – trơ giup va đao tao ngƣơi sƣ dung ,
chạy kiểm tra va đánh giá các thanh phần có thể tái sử dụng.
• Quản thủ thư viện – câp nhât va phân phôi danh sach muc luc , phân
loại tai sản mới, bảo dƣơng hệ thống thƣ viện va quản lý trật tự tai sản .
Môt ngƣơi co thê đong nhiêu vai tro . Tuy nhiên , sô lƣơng nhân viên
cho môt sƣ cô găng cua môt tâp đoan lơn không đƣơc vƣơt qua mƣơi.
11. A reuse program can be implemented in four basic stages:
initiation,expansion, contraction, and steady state.
Môt chƣơng trinh tai sƣ dung co thê đƣơc thƣc hiên vơi 4 giai đoạn
cơ ban: khơi tao, mơ rông, co rut va trang thai ôn đinh.
12. Stage 1: Initiation. Existing software is analyzed to select potentially
reusable components. Descriptors of these components are extracted
manually or automatically and a preliminary index is produced. A stage
1 catalog is produced. This catalog informs software engineers in the
organization about potentially reusable software.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 960
Trạng thái 1: Khơi tao . Phân mêm hiên co đƣơc phân tich đê lƣa
chọn các thanh phần tái sử dụng tiềm năng . Phân mô ta cua nhƣng thanh
phân nay đƣơc trich ra thu công hoăc tƣ đông va sinh ra môt chi muc sơ bô .
Bảng danh mục của trạng thái 1 đƣơc sinh ra . Bảng danh mục nay cho kỹ
sƣ phân mêm biêt phân mêm tai sử dụng tiền năng.
13. Stage 2: Expansion. The size of the catalogs increases as more of the
existing software is identified for reuse. At this point, a classification
scheme is necessary. An initial faceted classification scheme is
produced and included with the stage 2 catalog. Based on the feasibility
study, a case can be made to support an automated library system. The
faceted classification scheme requires the resources of a librarian and a
domain expert. A faceted scheme provides basic domain models in the
form of taxonomies and standard descriptions or lexicons,which in turn
support bootstrapping the domain analysis process
Trạng thái 2:Mơ rông . Kich thƣớc của bảng danh mục tăng khi có
nhiêu hơn cac phân mêm hiên co đƣơc tai sƣ dung. Thơi điêm nay, hê thông
phân loai la cân thiêt . Hê thông phân loai măt ban đâu đƣơc sinh ra năm
trong bang danh muc trang thai 2. Căn cƣ vao viêc nghiên cƣu tinh kha thi ,
môt trƣơng hơp co thê đƣơc tao ra đê hô trơ hê thông thƣ viên tƣ đông . Hê
thông phân loai đơn măt yêu câu tai nguyên quan thu thƣ viên va sƣ thanh
thạo miền . Đê an măt cung câp mô hinh linh vƣc cơ ban dƣơi dang phân
loại va mô tả chuẩn hoặc từ vựng, cái hỗ trợ quá trình phân tich miền.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 961
14. Stage 3: Contraction. In this stage, domain analysis is the key activity.
Early domain models from stage 2 coupled with more detailed
information from existing systems and from requirements for future
systems are used for domain analysis. Standard architectures and
functional models are derived and common components are grouped to
support basic generic functions. Redundant and ineffective components
are identified and retired from the collection. This results in contraction
in the size of the collection. The collection and classification are
updated and a stage 3 catalog is made available. In this stage, a domain
analyst, one or more domain experts, a software engineer, and a
librarian are required.
Trạng thái 3:Co. Trong giai đoa n nay, phân tich miên la công viêc
chinh. Nhƣng mô hinh miên ơ giai đoan 2 đƣơc kêt hơp vơi thong tin chi
tiêt hơn tƣ hê thông hiên co va tƣ nhƣng yêu câu cho hê thông tƣơng lai
đƣơc sƣ dung cho viêc phân tich miên. Nhƣng kiên truc chuân va nhƣng mô
hình chức năng có nguồn gốc va các chức thanh phần phổ biến đƣợc nhóm
để hổ trợ các chức năng chung cơ bản . Nhƣng thanh phân dƣ thƣa va thiêu
hiêu qua đƣơc xac đinh va loai bo tƣ tâp. Điêu nay dân đên sƣ co kich thƣơc
tâp. Tâp va sƣ phân loai đƣơc câp nhât va bang danh muc trang thai 3 đƣơc
sinh ra. Giai đoan nay đoi hoi ngƣơi phân tich miên , môt hay nhiêu chuyên
gia miên, kỹ sƣ phần mềm va quỹ thủ thƣ viên.
15. Stage 4: Steady State. Now that the essential components have been
identified for a specific domain, these components are progressively
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 42: Mô hình tái sử dụng của Perieto-Diaz 962
replaced by components supporting domain-specific functions. These
components are reusable because they are designed to plug directly into
the architecture.
Trạng thái 4: Ôn định. Giơ đây khi ma cac thanh phân cân thiêt đa
đƣơc xac đinh cho miên cu thê , nhƣng thanh phân nay dân dân đƣơc thay
thê bơi nhƣng thanh phân chƣc năng hô trơ m iên cu thê . Nhƣng chƣc năng
nay có thể tái sử dụng va chúng đƣợc thiết kế để cắm trực tiếp vao kiến
trúc.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 962
CHƢƠNG 42 NHẬN XÉT CỦA FARBEY VỀ CÁC
THƢỚC ĐO CHẤT LƢỢNG PHẦN MỀM
TRONG GIAI ĐOẠN QUẢN LÝ YÊU CẦU
Người dịch: Đặng Hoang Hải
42.1 TỔNG QUAN
In this chapter Farbey (1990) expands on the general view of quality
as the difference between what is expected and what is experienced:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 963
quality = expectations – experience
Four questions are addressed:
• Effectiveness. Does the specification, considered as a solution, solve
the right problem?
• Serviceability. Does the specification, considered as a starting point,
provide a firm basis on which to proceed?
• Prediction. Does the requirement specification (together with the
system test specification) provide useful measures for predicting the
final quality outcome?
• Process. Does the process by which the specification is produced
encourage effectiveness, serviceability, and quality prediction?
Trong phần nay Farbey mở rộng cách nhìn tổng quan về chất lƣợng
nhƣ la sự khác biệt giữa những gì đƣợc kỳ vọng va những gì thực tế đƣợc
trải nghiệm.
chất lƣợng = kỳ vọng – thực tế
Bốn câu hỏi đƣợc đặt ra:
• Hiệu quả: Các đặc tả, đƣợc coi la giải pháp, có giải đúng vấn đề hay
không?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 964
• Hữu dụng: Các đặc tả, đƣợc coi la điểm khởi đầu, có cung cấp nền tảng
vững chắc để phát triển hay không?
• Dự đoán: Các đặc tả yêu cầu (cùng với những đặc tả kiểm thử hệ
thống) có cung cấp những thƣớc đo hiệu quả để dự đoán chất lƣợng đầu
ra cuối cùng hay không?
• Quy trình: Quy trình đƣợc đề ra bởi các đặc tả có phát huy đƣợc sự
hiệu quả, hữu dụng va dự đoán chất lƣợng hay không?
42.2 THỦ TỤC/VẤN ĐỀ/ CHÍNH SÁCH
Effectiveness. The first question concerns the quality of the
specification as a solution — how well does the specification capture the
problem? The ultimate effectiveness of a system depends not on the quality
of software or specification, but on the degree to which the problem is
correctly perceived. Focus on the specification as a product by asking
questions like the ones that follow:
Câu hỏi đầu tiên liên quan đến chất lƣợng của bản đặc tả với tƣ cách
la một giải pháp – bản đặc tả đã mô tả vấn đề chi tiết đến mức nao? Hiệu
quả cao nhất của một hệ thống không dựa trên chất lƣợng của phần mềm
hay đặc tả, ma dựa trên mức độ thấu hiểu chinh xác vấn đề. Coi bản đặc tả
nhƣ một sản phẩm bằng cách đặt các câu hỏi nhƣ sau:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 965
• Is the process by which it has been produced conducive to bringing out
and clarifying objectives?
• Is it complete in that it exhausts the objectives and needs that are
known?
• Is the specification maintainable?
• Is it readable?
• Quá trình tạo ra bản đặc tả có giúp lam lộ ra va lam rõ các mục tiêu?
• Nó đã vét hết các mục tiêu va các yêu cầu đƣợc biết?
• Bản đặc tả có dễ duy trì không?
• Nó có dễ đọc không?
Quality attributes covered here include:
• Functionality. Does the specification capture all of the required
functions?
• Performance. Does the specification meet the users‘ demands?
• Usability. Does the specification offer ease of use, learning, and
relearning?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 966
Các đặc tinh chất lƣợng kể đến ở đây bao gồm:
• Chức năng. Bản đặc tả đã bao gồm đƣợc hết mọi chức năng yêu cầu?
• Hiệu năng. Bản đặc tả có đáp ứng đƣợc nhu cầu của ngƣời dùng?
• Tiện lợi. Bản đặc tả có giúp việc sử dụng, học va học lại đƣợc dễ dang?
Serviceability. The second question concerns the quality of its
content and implications for later system development. The following is a
list of questions of efficiency, in this context meaning ―doing things right:‖
Câu hỏi thứ hai liên quan đến chất lƣợng nội dung va các gợi ý của
bản đặc tả cho việc phát triển hệ thống sau nay. Dƣới đây la danh sách các
câu hỏi về tinh hiệu quả, trong ngữ cảnh nay có nghĩa la ―lam đúng‖:
• Are the requirements consistent?
• Are the requirements unambiguous?
• Are the requirements compatible with the methods of later
development stages?
• Are the requirements readable?
• Are the requirements modifiable?
• Are the requirements traceable?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 967
• Are the requirements usable after implementation?
• Are the requirements maintainable?
• Are the requirements in compliance with documentation standards?
• Các yêu cầu có nhất quán?
• Các yêu cầu có rõ rang, không mơ hồ?
• Các yêu cầu có phù hợp với các phƣơng pháp sử dụng trong các giai
đoạn phát triển sau nay?
• Các yêu cầu có dễ đọc?
• Các yêu cầu có dễ chỉnh sửa?
• Các yêu cầu có lƣu vết?
• Các yêu cầu có còn sử dụng đƣợc sau khi cai đặt?
• Các yêu cầu có dễ duy trì?
• Các yêu cầu có đƣợc trình bay theo các chuẩn tai liệu hóa?
Prediction. The third question concerns the value of measures of
quality that will act as predictor measurements for the eventual quality of
the finished software. A predictor metric is used to predict the value of a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 968
property of a system that will become directly observable only during a
later stage of system development.
Câu hỏi thứ ba liên quan đến giá trị của các thƣớc đo chất lƣợng ma
sẽ đƣợc sử dụng để dự đoán chất lƣợng cuối cùng của sản phẩm hoan thiện.
Một thƣớc đo dự đoán đƣợc dùng để dự đoán giá trị của một thuộc tinh của
hệ thống, ma giá trị của thuộc tinh nay chỉ có thể thấy rõ ở một giai đoạn
phát triển hệ thống sau nay.
Process. Three processes of development are worth considering:
Ba quy trình phát triển cần đƣợc xem xét:
• A life-cycle process such as SSADM (structured systems analysis and
design) is based on a waterfall model. In this model requirements
specification occurs at an early stage and is then fixed as any associated
metrics would be.
• Một quy trình mang tinh vòng đời nhƣ SSADM (structured systems
analysis and design – phân tich va thiết kế hệ thống có cấu trúc) dựa
trên mô hình thác nƣớc. Trong mô hình nay các đặc tả yêu cầu xuất
hiện ở giai đoạn đầu va sau đó đƣợc sửa đổi khi ma các thƣớc đo liên
quan thay đổi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 969
• A prototyping approach offers an early normalization, but also offers a
more flexible model of system development that recognizes the
problem of changing requirements.
• Một cách tiếp cận dùng bản mẫu sẽ gợi ý một chuẩn ban đầu, va cũng
gợi ý một mô hình phát triển hệ thống linh hoạt nhận biết đƣợc vấn đề
trong thay đổi yêu cầu.
• Approaches recognize specifically the social setting in which
requirements specifications takes place. Control of quality during any
process will probably be one of instituting checklists together with a
program for completing them and acting on the results. Questions to
ask at this point include:
- Is the system easy to learn?
- Is the system easy to relearn?
- Is there stability and maturity in the system?
• Các cách tiếp cận nhận biết môi trƣờng xã hội ma các đặc tả yêu cầu
đƣợc sinh ra. Kiểm soát chất lƣợng trong bất kì quy trình nao cũng sử
dựng một bảng đánh dấu va một phần mềm để hoan thiện các bảng đó
va lam việc trên các kết quả. Các câu hỏi đặt ra ở đây gồm:
- Hệ thống có dễ học không?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 43: Nhận xét của Farbey về các thước đo chất lượng 970
- Hệ thống có dễ học lại không?
- Hệ thống có ổn định va chuyên nghiệp không?
42.3 TÀI LIỆU THAM KHẢO
Farbey, B. (1990). Software quality metrics: considerations about
requirements and requirement specifications, Inf. Software Technol., 32,
60–64.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 970
CHƢƠNG 43 NHỮNG XEM XÉT VỀ CHẤT
LƢỢNG CỦA REDMILL TRONG VIỆC QUẢN
LÝ QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM
Người dịch: Trần Thanh Hải
43.1 TỔNG QUAN
It comes as no surprise that the majority of software development
projects are late, over budget, and out of specification. Project managers
point to a number of technical problems, most of which are related to
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 971
technical tasks specific to software development. This chapter shows that
inadequate management and a lack of attention to quality are the main
causes of the problem (Redmill, 1990).
Hầu hết các dự án phát triển phần mềm đều gặp phải các vấn đề nhƣ
không hoan thanh tiến độ, kinh phi vƣợt quá dự trù ban đầu va không đáp
ứng đƣợc yêu cầu. Đó không phải la một điều đáng ngạc nhiên. Các nhân
viên quản lý dự án chỉ ra rằng một lƣợng lớn các vấn đề kỹ thuật, hầu hết
chúng la những nhiệm vụ kỹ thuật la đặc trƣng của phát triển phần mềm.
Chƣơng nay sẽ chỉ ra rằng việc quản lý không đầy đủ va sự thiếu chú ý tới
chất lƣợng sản phẩm la những nguyên nhân chinh lam nảy sinh các vấn đề.
43.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH
Most common reasons given by project managers for failure to
meet budget, time scale, and specification are as follows:
• Incomplete and ambiguous requirements
• Incomplete and imprecise specifications
• Difficulties in modeling systems
• Uncertainties in cost and resource estimation
• General lack of visibility
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 972
• Difficulties with progress monitoring
• Complicated error and change control
• Lack of agreed-upon metrics
• Difficulties in controlling maintenance
• Lack of common terminology
• Uncertainties in software or hardware apportionment
• Rapid changes in technology
• Determining suitability of languages
• Measuring and predicting reliability
• Problems with interfacing
• Problems with integration
Hầu hết các nguyên nhân (những ngƣời quản lý dự án chỉ ra) gây ra
các vấn đề liên quan tới kinh phi, thời gian va bản ghi chi tiết kỹ thuật đƣợc
nêu dƣới đây:
• Yêu cầu phần mềm không đầy đủ hoặc nhập nhằng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 973
• Bản ghi chi tiết kỹ thuật không đầy đủ hoặc không chính xác.
• Những khó khăn trong việc mô hình hóa hệ thống.
• Ƣớc lƣợng tai nguyên va chi phi không chinh xác.
• Thiếu tầm nhìn.
• Những khó khăn trong quá trình giám sát.
• Những lỗi phức tạp va kiểm soát thay đổi.
• Thiếu hụt các tiêu chuẩn đo lƣờng.
• Những khó khăn trong việc duy trì bảo dƣơng.
• Thiếu những thuật ngữ dùng chung.
• Sự thiếu chắc chắn của các thiết bị phần cứng va phần mềm.
• Sự thay đổi nhanh chóng của công nghệ.
• Xác định sự thich hợp của ngôn ngữ.
• Đo lƣờng va dự đoán sự tin cậy.
• Những vấn đề liên quan tới giao diện.
• Những vấn đề liên quan tới sự tich hợp.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 974
Audits of systems development efforts reveal shortcomings in
projects:
• Lack of standards
• Failure to comply with existing standards
• Nonadherence to model in use
• No sign-off at end of stages
• Lack of project plans
• No project control statistics recorded or stored
• No quality assurance (QA) procedures
• No change-control procedures
• No configuration control procedures
• No records of test data and results
Sự kiểm soát những nỗ lực phát triển hệ thống tìm ra lỗi trong dự án:
• Thiếu hụt tiêu chuẩn.
• Lỗi trong quá trình tich hợp với các tiêu chuẩn đã có.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 975
• Không tuân theo triệt để mô hình đang dùng.
• Không có hanh báo kết thúc tại lúc cuối của các giai đoạn.
• Thiếu hụt kế hoạch đồ án.
• Những thống kê liên quan tới việc kiểm soát đồ án không đƣợc lƣu trữ.
• Không có những thủ tục đảm bảo chất lƣợng (QA).
• Không có những thủ tục kiểm soát thay đổi.
• Không có các thủ tục kiểm soát cấu hình.
• Không ghi lại dữ liệu kiểm tra va kết quả.
The three causes for the lack of control of projects:
• Attitude to quality
• Attitude to quality
• Attitude to project
Có ba nguyên nhân cho việc thiếu sự kiểm soát của dự án:
• Quan điểm về chất lƣợng.
• Quan điểm về quản lý.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 976
• Quan điểm về dự án.
In finding solutions, the principal reasons for project
management shortcomings should be reviewed, e.g., the project
manager:
• Has no experience working where a quality culture predominates
• Has not been trained in TQM (total quality management)
• Has not received adequate management training
• Has not been managed in accordance with TQM principles by
supervisors
• Has not overcome an inclination toward technical matters and finds that
they offer a more friendly environment than the less familiar affairs of
management
Khi tìm kiếm giải pháp, những nguyên nhân cơ bản gây ra lỗi quản
lý dự án nên đƣợc xem xét lại, vi dụ nhƣ ngƣời quản lý dự án:
• Không có kinh nghiệm lam việc tại những nơi có văn hóa chất lƣợng
trội hơn.
• Không đƣợc huấn luyện về quản lý chất lƣợng tổng thể (TQM).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 977
• Không nhận đƣợc sự huấn luyện quản lý đầy đủ.
• Không đƣợc quản lý theo cách phù hợp với những nguyên tắc cơ bản
của TQM bởi ngƣời giám sát.
• Không vƣợt qua đƣợc những xu hƣớng liên quan tới vấn đề kỹ thuật va
tìm ra rằng họ cung cấp một môi trƣờng thân thiện hơn việc quản lý
công việc it quen thuộc.
Solutions:
• Training: project manager and team must be trained in TQM.
• Management commitment: must always be seen to be 100 percent.
• Standards: a comprehensive set of standards for all aspects of work
should be instituted and used. The project life cycle must be covered as
well as other pertinent issues.
• Guidelines, procedures, and checklists: assist workers to meet the
standards and QA agents to check the products.
• Quality assurance: should be carried out at all stages of the life cycle
and for all end-products.
• QA team: should be independent of the development team.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 978
• Audits: should be carried out during the project to ensure that
management and QA procedures are adhered to. The project manager
should always initiate a review of the auditors‘ recommendations and
of all resulting correction action.
• Planning: the project manager should be fastidious in drawing up plans
and ensuring their use for control. Plans should include the project
plan, stage plans, and a quality plan, which details the quality
requirements of the project.
• Reporting: a reporting system should be instituted to ensure that
problems are quickly escalated to the management level appropriate to
the action needed.
• Feedback: statistics that assist in project control and the improvement
of quality should be collected, analyzed, and used.
• Continuous review: the whole quality system (components, mode of
operation, and quality of results) should be reviewed and improved
continuously.
• Project manager: must not be too technically involved. Technical duties
should be delegated to a development team manager who reports to the
project manager.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 979
• Nontechnical support team: should be appointed to assist in
nondevelopmental matters including coordination and interpretation of
resource and time statistics, recording all expenditures and tracking
against budget, and tracking milestones. This team should report to
project manager.
Giải pháp:
• Việc huấn luyện: ngƣời quản lý dự án va đội thực hiện cần đƣợc quản
lý theo TQM.
• Trách nhiệm quản lý: phải đƣợc đảm bảo 100%.
• Những tiêu chuẩn: một tập hợp đầy đủ các tiêu chuẩn về những khia
cạnh khác nhau của công việc nên đƣợc phát hanh va sử dụng. Vòng
đời dự án cũng nhƣ các vấn đề thich hợp phải đƣợc bao phủ.
• Hƣớng dẫn, thủ tục va danh sách kiểm tra: giúp đơ công nhân trong
việc đáp ứng các tiêu chuẩn va nhân viên kiểm tra chất lƣợng kiểm tra
sản phẩm.
• Sự đảm bảo chất lƣợng: cần đƣợc thực hiện trong toan bộ giai đoạn của
vòng đời va toan bộ sản phẩm cuối.
• Đội đảm bảo chất lƣợng: nên hoạt động độc lập với đội ngũ phát triển.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 980
• Sự kiểm soát: nên đƣợc thực hiện trong suốt dự án để đảm bảo rằng
việc quản lý va các thủ tục đảm bảo chất lƣợng đƣợc tuân thủ triệt để.
Ngƣời quản lý dự án nên thƣờng xuyên đề xuất việc xem xét lại các đề
nghị của thinh giả va tất cả hanh động đúng.
• Việc lập kế hoạch: ngƣời quản lý dự án nên khó tinh trong việc lập kế
hoạch va đảm bảo sử việc sử dụng chúng cho kiểm soát. Các bản kế
hoạch nên bao gồm kế hoạch dự án, kế hoạch các giai đoạn va kế hoạch
chất lƣợng (bao gồm những chi tiết về đòi hỏi chất lƣợng của dự án).
• Việc báo cáo: hệ thống báo cáo nên đƣợc thanh lập để đảm bảo rằng
vấn đề sẽ đƣợc phát hiện tại cấp quản lý thich hợp va có hanh động cần
thiết.
• Phải hồi: những thống kê giúp ich cho kiểm soát dự án va tăng chất
lƣợng nên đƣợc thu thập, phân tich va sử dụng.
• Ngƣời quản lý dự án: không đi quá sâu vao chi tiết kỹ thuật. Nhiệm vụ
liên quan chi tiết tới kỹ thuật nay sẽ đƣợc ủy nhiệm cho ngƣời quản lý
đội phát triển – ngƣời sẽ báo cáo cho ngƣời quản lý dự án.
• Đội ngũ hỗ trợ không dùng từ ngữ chuyên môn: nên đƣợc chọn để hỗ
trợ trong những vấn đề không liên quan tới sự phát triển, bao gồm việc
phối hợp va sự thể hiện tai nguyên va thống kê thời gian, ghi lại tất cả
khoản chi tiêu va theo dõi ngân sách, va theo dõi các bƣớc quan trọng.
Đội ngũ nay nên báo cáo cho ngƣời quản lý dự án.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 44: Những xem xét về chất lượng của RedMill 981
43.3 TÀI LIỆU THAM KHẢO
Redmill, F.J. (1990). Considering quality in the management of
software-based development projects, Inf. Software Technol., 32, 18–22.
43.4 CHUYÊN ĐỀ CHỌN LỌC
Rathbone, M. (1988). Software quality system, Computer Tech.,
February.
Redmill, F.J. (1987). Difficulties of specifying users‘ requirements
for computer systems and methods of mitigating them, Br. Telecommn.
Eng., 6, Part 1, April.
Wingrove, A. (1987). Software failures are management failures, in
Software Reliability: Achievement and Assessment, Littlewood, B., Ed.,
Blackwell, Oxford, U.K.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 982
CHƢƠNG 44 ĐỘ ĐO CONTEL TRONG KHUNG
HOÀN THIỆN QUY TRÌNH
Người dịch: Lê Văn Huy
44.1 TỔNG QUAN
The Contel Technology Center‘s software engineering lab has as one
of its prime goals the improvement of software engineering productivity.
As a result of work in this area, Pfleeger and McGowan (1990) have
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 983
suggested a set of metrics for which data is to be collected and analyzed.
This set of metrics is based on a process maturity framework developed at
the Software Engineering Institute at Carnegie Mellon University. The SEI
framework divides organizations into five levels based on how mature (i.e.,
organized, professional, aligned to software tenets) the organization is. The
five levels range from initial, or ad hoc, to an optimizing environment.
Contel recommends that metrics be divided into five levels as well. Each
level is based on the amount of information made available to the
development process. As the development process matures and improves,
additional metrics can be collected and analyzed.
Phòng thi nghiệm Công Nghệ Phần Mềm của Trung tâm Công nghệ
Contel xem việc nâng cao năng suất công nghệ phần mềm la một trong
những mục tiêu hang đầu. Nhƣ la một kết quả của những nỗ lực trong lĩnh
vực nay, Pfleeger va McGowan (1990) đã đề nghị một tập hợp các độ đo
ma dữ liệu đƣợc thu thập va phân tich. Tập hợp các độ đo nay dựa trên một
khung hoan thiện quy trình (Process Maturity Framework) phát triển ở Viện
Công Nghệ Phần Mềm (SEI) tại Đại học Carnegie Mellon. Khung SEI chia
công ty thanh năm cấp độ dựa trên sự hoan thiện của công ty (nhƣ cách tổ
chức, tinh chuyên nghiệp, sự sắp xếp cho đến những nguyên tắc sản xuất
phần mềm). Năm cấp độ từ sơ khởi, hoặc không quy chuẩn, cho đến một
môi trƣờng đƣợc tối ƣu hóa. Contel khuyến cáo rằng các độ đo cũng nên
đƣợc chia thanh năm cấp độ. Mỗi cấp độ dựa trên số lƣợng thông tin đã có
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 984
sẵn cho quy trình phát triển. Khi quy trình phát triển đƣợc cải thiện va trở
nên hoan thiện, các số liệu bổ sung có thể đƣợc thu thập và phân tích.
44.2 THỦ TỤC/VẤN ĐỀ/CHÍNH SÁCH
1. Level 1 – Cấp độ 1:
Initial Process. This level is characterized by an ad hoc approach to
software development. Inputs to the process are not well defined but the
outputs are as expected. Preliminary baseline project metrics should be
gathered at this level to form a basis for comparison as improvements are
made and maturity increases. This can be accomplished by comparing new
project measurements with the baseline ones.
Quy trình sơ khởi. Cấp nay đƣợc đặc trƣng bởi một cách tiếp cận
không quy chuẩn trong phát triển phần mềm. Đầu vao cho quá trình nay
không đƣợc xác định rõ nhƣng kết quả đầu ra phải nhƣ dự kiến. Đƣờng cơ
sở cho độ đo của dự án cần đƣợc tập hợp ở cấp độ nay để tạo ra cơ sở so
sánh khi những cải tiến đƣợc thực hiện va tinh hoan thiện tăng lên. Điều
nay có thể đƣợc thực hiện bằng cách so sánh các phép đo dự án mới với
những đƣờng cơ sở.
2. Level 2 – Cấp độ 2:
Repeatable Process. At this level the process is repeatable in much
the same way that a subroutine is repeatable. The requirements act as input
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 985
and the code as output; constraints are such things as budget and schedule.
Even though proper inputs produceproper outputs, there is no means to
discern easily how the outputs are actually produced. Only project-related
metrics make sense at this level because the activities within the transitions
from input to output are not available to be measured. Measures at this level
can include:
Quy trình lặp lại được. Ở cấp độ nay quy trình đƣợc lặp lại tƣơng tự
nhƣ cách ma một chƣơng trình con đƣợc lặp lại. Những yêu cầu đóng vai
trò nhƣ đầu vao va mã nguồn nhƣ la đầu ra; với rang buộc la những thứ nhƣ
ngân sách va lịch trình. Mặc dù đầu vao đúng sẽ cho đầu ra phù hợp, vẫn
không có cách dễ dang để phân biệt đầu ra thực tế đƣợc tạo ra nhƣ thế nao.
Chỉ những độ đo liên quan đến dự án la có ý nghĩa ở cấp độ nay vì các hoạt
động trong quá trình chuyển đổi từ đầu vao đến đầu ra không thể đo đƣợc.
Các độ đo tại cấp nay có thể bao gồm:
• Amount of effort needed to develop the system
• Lƣợng nỗ lực cần thiết để phát triển hệ thống
• Overall project cost
• Tổng chi phi dự án
• Software size: noncommented lines of code, function points, object and
method count
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 986
• Kich thƣớc phần mềm: đếm số lƣợng những dòng mã không có ghi chú
(comment), các hàm, đối tƣợng va phƣơng thức
• Personnel effort: actual person-months of effort, reported person-
months of effort
• Nỗ lực nhân sự: nỗ lực thực sự tinh theo ngƣời-tháng, nỗ lực đƣợc báo
cáo tinh theo ngƣời-tháng
• Requirements volatility: requirements changes
• Tính kém linh hoạt của yêu cầu: những thay đổi của yêu cầu
3. Level 3 – Cấp độ 3:
Defined Process. At this level the activities of the process are clearly
defined. This additional structured means that the input to and output from
each well-defined functional activity can be examined, which permits a
measurement of the intermediate products. Measures include:
Quy trình xác định sẵn. Ở cấp độ nay các hoạt động trong quy trình
phải đƣợc xác định rõ rang. Điều thêm vao nay có nghĩa la mọi đầu vào và
đầu ra từ mỗi chức năng hoạt động xác định đều có thể đƣợc kiểm tra, tức
cho phép đo lƣờng các sản phẩm trung gian. Các biện pháp bao gồm:
• Requirements complexity: number of distinct objects and actions
addressed in requirements.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 987
• Độ phức tạp yêu cầu: số lƣợng phân biệt các đối tƣợng va hanh động
đƣợc xác định trong yêu cầu.
• Design complexity: number of design modules, Cyclomatic complexity,
McCabe design complexity.
• Độ phức tạp thiết kế: số lƣợng các mô-đun thiết kế, độ phức tạp vòng,
độ phức tạp McCabe.
• Code complexity: number of code modules, Cyclomatic complexity
• Độ phức tạp mã nguồn: số lƣợng các mô-đun mã, độ phức tạp vòng.
• Test complexity: Number of paths to test, of object-oriented
development, then number of object interfaces to test.
• Độ phức tạp kiểm thử: số lƣợng các đƣờng kiểm thử, các đối tƣợng
theo hƣớng đối tƣợng, va các giao diện đối tƣợng cần đƣợc kiểm thử.
• Quality metrics: defects discovered, defects discovered per unit size
(defect density), requirements faults discovered, design faults
discovered, fault density for each product.
• Độ đo chất lượng: các khuyết tật đƣợc phát hiện, khuyết tật đƣợc phát
hiện trên một kich thƣớc đơn vị (mật độ khuyết tật), lỗi yêu cầu đƣợc
phát hiện, lỗi thiết kế đƣợc phát hiện, mật độ lỗi cho mỗi sản phẩm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 988
• Pages of documentation
• Số trang tai liệu
4. Level 4 – Cấp độ 4:
Managed Process. At this level, feedback from early project
activities is used to set priorities for later project activities. Activities are
readily compared and contrasted, and the effects of changes in one activity
can be tracked in the others. At this level measurements can be made across
activities and are used to control and stabilize the process so that
productivity and quality can match expectation. The following types of data
are recommended to be collected. Metrics at this stage, although derived
from the following data, are tailored to the individual organization.
Quy trình được quản lý. Ở cấp độ nay, phản hồi từ các hoạt động
sớm của dự án đƣợc sử dụng để thiết lập mức ƣu tiên cho các hoạt động sau
nay của dự án. Các hoạt động đƣợc dễ dang so sánh, va những ảnh hƣởng
từ các thay đổi trong một hoạt động có thể đƣợc theo dõi từ các hoạt động
khác. Ở cấp độ nay, độ đo lƣờng có thể đƣợc thực hiện xuyên suốt qua các
hoạt động va đƣợc sử dụng để kiểm soát va ổn định quy trình sao cho năng
suất va chất lƣợng đạt đƣợc nhƣ kỳ vọng. Các loại dữ liệu sau đây đƣợc đề
nghị thu thập. Độ đo ở giai đoạn nay đƣợc thiết kế riêng cho tổ chức, cá
nhân.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 989
• Process type. What process model is used and how is it correlated to
positive or negative consequences
• Loại quy trình. Mô hình quy trình đƣợc sử dụng la gì va hệ quả la nó
ảnh hƣởng tich cực hay tiêu cực nhƣ thế nao?
• Amount of producer reuse. How much of the system is designed for
reuse? This includes reuse of requirements, design modules, test plans,
and code.
• Mức độ tái sử dụng từ nhà sản xuất. Hệ thống đƣợc thiết kế để tái sử
dụng bao nhiêu? Bao gồm tái sử dụng yêu cầu, mô-đun thiết kế, các
bản kiểm tra, va mã nguồn.
• Amount of consumer reuse. How much does the project reuse
components from other projects? This includes reuse of requirements,
design modules, test plans, and code. (By reusing tested, proven
components, effort can be minimized and quality can be improved.)
• Mức độ tái sử dụng từ người dùng. Dự án sử dụng các thanh phần từ
các dự án khác đƣợc bao nhiêu? Bao gồm cả việc tái sử dụng yêu cầu,
các mô-đun thiết kế, các bản kiểm thử, va mã nguồn. (Bằng cách sử
dụng các thanh phần đã đƣợc kiểm nghiệm va thử nghiệm, công sức bỏ
ra có thể đƣợc giảm thiểu trong khi chất lƣợng đƣợc nâng cao)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 990
• Defect identification. How and when are defects discovered? Knowing
this will indicate whether those process activities are effective.
• Nhận dạng khuyết tật. Lam thế nao va khi nao khuyết tật đƣợc phát
hiện? Hiểu đƣợc điều nay sẽ cho biết liệu quy trình đang hoạt động có
hiệu quả hay không.
• Use of defect density model for testing. To what extent does the number
of defects determine when testing is complete? This controls and
focuses testing as well as increases the quality of the final product.
• Sử dụng mô hình mật độ khuyết tật trong kiểm thử. Số lƣợng các
khuyết tật đƣợc xác định trên phạm vi nao khi quá trình kiểm thử hoan
tất? Việc nay kiểm soát va tập trung vao việc thử nghiệm cũng nhƣ lam
tăng chất lƣợng của sản phẩm cuối.
• Use of configuration management. Is a configuration management
scheme imposed on the development process? This permits traceability,
which can be used to assess the impact of alterations.
• Sử dụng quản lý cấu hình. Bản quản lý cấu hình có đƣợc sử dụng trong
quy trình phát triển hay không? Điều nay cung cấp khả năng truy vết,
đƣợc sử dụng để đánh giá sự ảnh hƣởng của các thay đổi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 991
• Module completion over time. At what rates are modules completed?
This reflects the degree to which the process and development
environment facilitate implementation and testing.
• Sự hoàn thiện mô-đun theo thời gian. Các mô-đun đƣợc hoan thanh ở
tốc độ nao? Điều nay phản ánh mức độ ma quy trình va môi trƣờng
phát triển lam cho việc cai đặt va kiểm thử trở nên thuận lợi nhƣ thế
nào.
5. Level 5 – Cấp độ 5:
Optimizing Process. At this level measures from activities are used
to change and improve the process; this change can affect the organization
and the project as well. Studies by SEI report that 85 percent of
organizations are at level 1, 14 percent at level 2, and 1 percent at level 3.
None of the firms surveyed had reached levels 4 or 5; therefore, the authors
have not recommended a set of metrics for level 5.
Quy trình tối ưu. Ở cấp độ nay, các đo lƣờng từ những hoạt động
đƣợc sử dụng để thay đổi va cải thiện quy trình; thay đổi nay có thể tác
động đến công ty cũng nhƣ dự án. Nghiên cứu của SEI báo cáo rằng 85%
các tổ chức đƣợc ở cấp độ 1, 14% ở cấp độ 2, va 1% ở cấp độ 3. Không một
công ty đƣợc khảo sát đạt đến cấp độ 4 hoặc 5, do vậy, các tác giả đã không
đề nghị một tập hợp các độ đo cho cấp độ 5.
6. Steps to take in using metrics - Các bƣớc đƣa vao sử dụng độ đo:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 992
• Assess the process: determine the level of process maturity
• Đánh giá quy trình: xác định mức độ hoan thiện của quy trình
• Determine the appropriate metrics to collect
• Xác định độ đo thich hợp để thu thập số liệu
• Recommend metrics, tools, and techniques
• Đề nghị các độ đo, công cụ, va kỹ thuật
• Estimate project cost and schedule
• Ƣớc lƣợng chi phi va lịch trình dự án
• Collect appropriate level of metrics
• Thu thập số liệu tại cấp độ thich hợp
• Construct project database of metrics data that can be used for analysis
and to track value of metrics over time
• Xây dựng CSDL dự án cho các số liệu đo đạc, để có thể sử dụng trong
phân tich va theo dõi giá trị của các số liệu nay theo thời gian
• Cost and schedule evaluation: when the project is complete, evaluate
the initial estimates of cost and schedule for accuracy and determine
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 993
which of the factors may account for discrepancies between predicted
and actual values
• Đánh giá chi phi va tiến độ: khi dự án hoan thanh, đánh giá ƣớc lƣợng
ban đầu của chi phi va tiến độ cho sự chinh xác va xác định những yếu
tố có thể giải thich cho sự sai biệt giữa dự báo va giá trị thực tế
• Form a basis for future estimates.
• Lập một cơ sở cho các ƣớc lƣợng trong tƣơng lai
44.3 TÀI LIỆU THAM KHẢO
Pfleeger, S.L. and McGowan, C. (1990). Software metrics in the
process maturity framework, J. Syst. Software, 12, 255–261.
44.4 CHUYÊN ĐỀ CHỌN LỌC
Boehm, B.W. (1988). A spiral model of software development and
enhancement, IEEE Computer, May.
Conte, S.D., Dunsmore, H.E., and Shen, V.Y. (1986). Software
Engineering Metrics and Models, Benjamin-Cummings Publishing Co.,
Menlo Park, CA.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 45: Độ đo Contel trong khung hoàn thiện quy trình 994
Humphrey, W. (1989). Managing the Software Process, Addison-
Wesley, Reading, MA.
Pfleeger, S.L. (1989). Recommendations for an initial set of metrics,
Contel Technology Center Technical Report CTC-TR-89–017, Chantilly,
VA.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 46: Kydd’s technique to induce productivity 994
CHƢƠNG 45 KYDD’S TECHNIQUE TO INDUCE
PRODUCTIVITY THROUGHT SHARED
INFORMATION TECHNOLOGY
Người dịch: Nguyễn Bá Huy
45.1 TỔNG QUAN
Organizations have made large investments in shared information
technology(SIT) over the years under the guise of electronic mail systems,
distributed databases, and group decision support systems. Kydd and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 46: Kydd’s technique to induce productivity 995
Jones(1989) contend that SIT may not be appropriate for every organization
—that, in order for SIT to be successful, the corporate culture must be one
that supports sharing of information across boundaries. In this chapter, the
authors give general guidelines that can be used concerning conditions
under which high-return SIT can be implemented.
Các tổ chức tạo ra một sự đầu tƣ lớn trong việc chia sẻ công nghệ
thông tin(SIT) trên nhiều năm dƣới cái vỏ hệ thống thƣ từ điện tử, cơ sở dữ
liệu phân tán, và nhóm hệ thống cung cấp quyết định, Kydd and
Jones(1989) đấu tranh rằng có thể không thich hợp với nhiều tổ chức, để
SIT thành công. Những nền văn hóa kết hợp phải phải la một để cung cấp
chia sẻ thông tin dọc ranh giới. Trong chƣơng nay, tác giả hƣớng dẫn tổng
quan để có thể sử dụng điều kiên liên quan dƣới cái ma SIT trở lại cao hơn
để có thể thực hiện
45.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. There are two organizational prerequisites for successful investment in
SIT:
• The organizational culture must be ―right‖, that is, appropriate for and
supportive of the sharing of information.
• Successful execution of a significant number of jobs must require
timely access to shared information.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 46: Kydd’s technique to induce productivity 996
Có 2 tổ chức tiên quyết cho sự đầu tƣ thanh công trong SIT:
• Các văn hóa tổ chức cần phải ―đúng‖, thich hợp va khuyến khich việc
chia sẻ thông tin.
• Thực thi thanh công với một số lƣợng công việc đầy ý nghĩa đƣợc đòi
hỏi phải kịp thời tiếp cận thông tin đƣợc chia sẻ.
2. In ―excellent‖ companies, a great deal of communication takes place
among people in different functional areas. There may also be cross
functional management of cost, quality, and scheduling. This implies
that communication occurs across traditional organizational
boundaries and that information is shared.
Trong một công ty ―tốt‖, một số lƣợng lớn các giao tiếp diễn ra giữa
những ngƣời có những chức năng khác nhau. Có thể có quản lý chức năng
chéo của giá cả, chất lƣợng, lập lịch. Điều nay ngụ ý rằng Giao tiếp xảy ra
giữa ranh giới tổ chức truyền thống chéo va những thông tin đó đƣợc chia
sẻ.
3. In traditional American businesses, the organization is through a
hierarchical structure in which corporate norms have dictated that
communications paths follow the hierarchy — allowing certain
managers to monopolize information. SIT, in contrast, allows workers
to work in a cooperative manner across traditional organizational
boundaries.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 46: Kydd’s technique to induce productivity 997
Trong truyền thống kinh doanh của ngƣời Mỹ, tổ chức nay thông qua
một cấu trúc thứ bậc, trong đó tập hợp những qui tắc tiêu chuẩn đƣợc chỉ rõ
có con đƣờng giao tiếp phân cấp, cho phép một quản lý nao đó giữ độc
quyền thông tin, SIT, ngƣợc lại, cho phép ngƣời lao động lam việc trong
một cách tuyền thống, hợp tác chéo trên một ranh giới tổ chức truyền thống.
4. Rich communications media foster productivity:
• Group meetings
• One-on-one meetings
• Telephone contact
Phƣơng tiện truyền thông giau năng suất:
• Họp nhóm.
• Cuộc họp một đối một.
• Liên lạc điện thoại.
5. Guidelines for implementing high-return SIT:
• Assess the environment within the organization to determine whether
shared information will further the strategic objectives of the
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 46: Kydd’s technique to induce productivity 998
organization. In addition, determine whether or not the culture of the
organization fosters information sharing.
• Đánh giá môi trƣờng trong tổ chức để xác định việc chia sẻ thông tin la
mục tiêu chiến lƣợc của tổ chức. Ngoài ra, xác định có hay không các
nền văn hóa của các tổ chức thúc đẩy chia sẻ thông tin
• If SIT is not strategically important, defer SIT until it is.
• Nếu SIT không phải la chiến lƣợc quan trọng thì hoãn nó cho tới khi nó
đƣợc lam.
• If it is strategically important but the culture does not encourage
information sharing, then plan and implement an improvement program
that focuses on a single, measurable objective of strategic
importance(such as a quality improvement program) and requires
involvement by everyone in the organization. The objecttive is to
develop a culture in which everyone is concerned with continuous
improvement, measurable results, and shared information. Ensure that
management behavior is consistent with theobjectives of the program
and that the organization‘s reward system encourages information
sharing.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 46: Kydd’s technique to induce productivity 999
• Nếu đó la chiến lƣợc quan trọng nhƣng văn hóa không khuyến khich
việc chia sẻ thông tin, lên kế hoạch va thực hiện một chƣơng trình cải
tiến, chú tâm vao một mục tiêu duy nhất, đối tƣợng có thể đo lƣờng của
của tầm quan trọng chiến lƣợc(nhƣ la một chƣơng trình cải tiến chất
lƣợng) va đòi hỏi sự tham gia của tất cả mọi ngƣời trong tổ chức. Mục
tiêu la để phát triển một nền văn hóa, trong đó tất cả mọi ngƣời đều có
liên quan tới việc liên tục cải tiến, kết quả có thể đo lƣờng đƣợc, và
thông tin đƣợc chia sẻ. Đảm bảo các hanh vi quản lý la phù hợp với
mục tiêu của chƣơng trình va hệ thống khen thƣởng của tổ chức khuyến
khich chia sẻ thông tin.
• If the improvement program is successful, develop a plan for
implementing SIT. This plan should include plans for developing an
information infrastructure with standardized definitions of key data
elements, an information technology infrastructure that provides access
to corporate and external data bases, and a uniform set of user-friendly
tools. This set should include tools that establish communication
protocols between individuals and reinforce the new collaborative
norms.
• Nếu chƣơng trình cải tiến thanh công, phát triển kế hoạch triển khai
SIT. Kế hoạch nay bao gồm các kế hoạch phát triển một cơ sở hạ tầng
thông tin với các định nghĩa tiêu chuẩn của yếu tố dữ liệu khóa. Một cơ
sở hạ tầng công nghệ thông tin cung cấp quyền truy cập vao cơ sơ dữ
liệu của công ty va bên ngoai, va thống nhất một bộ các công cụ ngƣời
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 46: Kydd’s technique to induce productivity 1000
sử dụng thân thiện, điều nay thiết lập nên bao gồm các công cụ ma giao
thức truyền thông đƣợc thiết lập giữa các cá nhân va củng cố các chỉ
tiêu hợp tác mới.
45.3 TÀI LIỆU THAM KHẢO
Κydd, C. Σ. and Jonh, L. Η.(1989). Corporate productivity and
shared information technology, Ιnf. Μanage., 17, 277281.
45.4 CHUYÊN ĐỀ CHỌN LỌC
Draft, R. L. and Lengel, R. H.(1986). Organizational information
requriements, media richness and structural design, Manage. Sci., 5, 554–
571.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1001
CHƢƠNG 46 THƢỚC ĐO CHẤT LƢỢNG PHẦN
MỀM BELLCORE
Người dịch: Lê Anh Khoa
46.1 TỔNG QUAN
The Bellcore quality assurance engineering software (QAES)
group for Bellcore client companies (BCCs) has developed and
implemented a comprehensive quality assurance program that focuses on
resolving the underlying problems associated with developing quality
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1002
software (Hon, 1990). The objective of QAES‘ surveillance program is to
develop ―cooperative‖ relationships that cause vendors to focus on (1)
implementing methods and techniques to improve control of software
development, (2) improving the effectiveness of the underlying process
used to develop and support software, thus improving the quality, and (3)
understanding the needs and requirements of the BCCs. This chapter
discusses this approach and explores measurements utilized whose
objectives are to assure adequate vendor quality control, minimize defects,
and optimize buyer satisfaction.
Nhóm bảo hiểm chất lƣợng phần mềm (QAES) Bellcore cho những
công ty khách hang (BCCs) đã phát triển va đƣa ra một chƣơng trình đánh
giá va bảo hiểm chất lƣợng cho phần mềm, tập trung vao việc giải quyết
những bai toán bên dƣới có liên quan đến chất lƣợng phần mềm (Hon,
1990). Mục tiêu của chƣơng trình nay của QAES la để phát triển một mối
quan hệ ―hợp tác‖ giúp cho các công ty tập trung vao (1) đƣa ra những
phƣơng pháp, kĩ thuật để phát triển khả năng kiểm soát quá trình phát triển
phần mềm, (2) tăng cƣờng tinh hiệu quả của những quá trình bên dƣới đƣợc
dùng để phát triển va hỗ trợ phần mềm, từ đó tăng chất lƣợng phần mềm, va
(3) hiểu đƣợc yêu cầu va đòi hỏi của BCCs. Chƣơng nay tập trung thảo luận
về hƣớng tiếp cận nay va cho ra những thƣớc đo với mục tiêu la bảo đảm
khả năng kiểm soát, giảm thiểu tác hại, va tối ƣu hóa sự hai lòng của khách
hàng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1003
46.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
1. Assure adequate vendor quality control. Measures have been
implemented in the surveillance program to track the accomplishment
of milestone criteria. These include:
Requirements, design, coding, and unit test-phase measurements:
- Phase deliverable completion
- Number of open correction actions requests
- Review coverage
• Test-phase measurements:
- Test coverage as measured by structure, functions, or paths
- Number of test cases executed and passed
- Number of trouble reports
- Number of open trouble reports by severity
- Trouble report initiation rates
- Product-specific quality, reliability, and stability
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1004
Bảo đảm khả năng kiểm soát của các công ty phần mềm. Những độ
đo đƣợc đƣa ra để kiểm tra mức độ hoan tất những bƣớc quan trọng trong
quá trình phát triển. Trong đó bao gồm:
• Yêu cầu, thiết kế, lập trình va các yêu cầu của quá trình kiểm tra cục
bộ:
- Mức độ hoan tất các quá trình.
- Số lƣợng các thao tác đƣợc thực hiện đúng.
- Báo cáo sơ lƣợc.
• Độ đo bƣớc kiểm tra:
- Báo cáo kiểm tra tinh bởi cấu trúc, ham hoặc phần.
- Số trƣờng hợp kiểm tra đƣợc thực hiện va số kết quả đúng.
- Số lƣợng báo cáo lỗi.
- Số lƣợng báo cáo do lỗi nghiêm trọng.
- Tỉ lệ báo cáo.
- Tinh ổn định, tin cậy va chất lƣợng sản phẩm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1005
2. Minimize defects and improve the effectiveness of the software
development process:
• Review of software development artifacts (e.g.,
requirements,specifications, and code) and testing results provide
measurable evidence about the effectiveness of the implemented
software development process, that is, specific information about the
type and quantity of defects produced.
• Specific measurements used in ―real time‖ to minimize defects include:
- Average number of defects detected in modules and subsystems by
type
- Historical system, subsystem, and module fault densities
- Number of defects detected during reviews
Giảm thiểu tác hại va tăng tinh hiệu quả của quá trình phát triển phần
mềm:
• Tóm tắt các bản thảo về phát triển phần mềm (vi dụ, yêu cầu, những
đặc điểm va mã) va kết quả kiểm tra về tinh hiệu quả của quá trình phát
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1006
triển phần mềm đã đề ra, đó la, những thông tin về kiểu va số lƣợng tác
hại gây ra.
• Độ đo đặc biệt dùng trong thực tiễn để giảm thiểu tác hại bao gồm:
- Số lỗi trung bình tinh theo loại trong từng phần, từng hệ thống con
của phần mềm.
- Những lỗi đã xảy ra trong quá khứ.
- Số tác hại tìm ra trong quá trình duyệt lại.
3. A long-term approach is to collect comprehensive defect data.
Information about defect type, its origin, the mechanism used for
detection, and defect severity are required to isolate ineffective
processes and detection mechanisms. Defects found during reviews and
testing are classified according to the phase detected (x axis) and
originated (y axis). After defect data is accumulated, simple
calculations will determine the percentage of total defects attributable
to certain phases of the life cycle and the effectiveness of phase defect
detection efforts. For example, the percentage of total defects
attributable to ―requirements‖ is calculated as the total number of
requirements defects divided by the total number of defects multiplied
by 100.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1007
Một cách tiếp cận dai hơi la thu thập những thông tin về các tác hại.
Thông tin về loại tác hại, nguồn gốc, máy móc đƣợc sử dụng trong quá
trình tìm kiếm lỗi, va các tác hại nghiêm trọng đòi hỏi phải cô lập hóa
những phần không hiệu quả va những phƣơng tiện tìm lỗi. Tác hại tìm ra
trong quá trình duyệt lại va kiểm tra sẽ đƣợc phân loại dựa trên khâu tìm ra
lỗi (trục x) va loại lỗi (trục y). Sau khi thông tin về tác hại đã đƣợc thu thập,
một phép tinh đơn giản sẽ xác định phần trăm tác hại trên từng khâu va tinh
hiệu quả của khâu tìm lỗi. Vi dụ, tỉ lệ lỗi với nhƣng yêu cầu khách hang
đƣợc tinh la số lỗi trên yêu cầu khách hang chia cho tổng số lỗi, va nhân
cho 100.
4. Quality and reliability measures include:
• Number and duration of system outages due to software failure
• Number of customer trouble reports
• Customer trouble report cause analysis
• Patch statistics where a patch is defined as an interim fix
Thƣớc đo chất lƣợng va tinh tin cậy bao gồm:
• Số lƣợng va thời gian hệ thống ngừng hoạt động khi phần mềm có lỗi.
• Số báo cáo lỗi từ khách hàng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1008
• Khâu phân tich nguyên nhân gây ra lỗi cho khách hang.
• Thống kê các phiên bản cập nhật tạm thời.
5. Buyer support measures include:
• Customer service response time
• Number of open trouble reports
• Site distribution of open fault reports
• Aging of open customer trouble reports by severity
• Time-to-correct customer trouble reports
Thƣớc đo khả năng hỗ trợ khách hang bao gồm:
• Thời gian trả lời khách hang.
• Số báo cáo lỗi mở.
• Những trang cung cấp các báo cáo lỗi mở.
• Thời gian kiểm tra lỗi nghiêm trọng của khách hang.
• Thời gian sửa lỗi cho những báo cáo lỗi từ ngƣời dùng.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 47: Thước đo chất lượng phần mềm Bellcore 1009
46.3 TẢI LIỆU THAM KHẢO
Hon, S.E. (1990). Assuring software quality through measurements:
a buyer‘s perspective, J. Syst. Software, 13, 117–130.
46.4 CHUYÊN ĐỀ CHỌN LỌC
Grady, R.B. (1987). Measuring and managing software
maintenance, IEEE Software, September, 35–45.
Jones, T.C. (1986). Programmer Productivity, McGraw-Hill, New
York.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 48: Giá trị thông tin của Keyes 1009
CHƢƠNG 47 GIÁ TRỊ THÔNG TIN CỦA KEYES
Người dịch: Nguyễn Tƣờng Minh
47.1 TỔNG QUAN
If it will be difficult to make the point that the corporate information
resource is a worthy vehicle to protect with a dictionary workbench, then
calculating the value of information (VOI) will be a useful exercise (Keyes,
1992). It will assist the organization in determining the true worth of its
investment in information. The ultimate goal of this exercise is to assign a
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 48: Giá trị thông tin của Keyes 1010
monetary value to each unitary piece of information. In this way an
organization accustomed to assessing relative worth based on bottom-line
statistics can instantly recognize the value of information in terms that it
understands.
Sẽ rất khó để thấy rằng những nguồn thông tin tổng hợp la một
phƣơng tiện hữu ich đáng đƣợc bảo vệ. Vì vậy việc tinh toán giá trị của
thông tin (VOI) sẽ la một bai tập hữu dụng (Keyes, 1992). Nó sẽ hỗ trợ
công ty trong việc quyết định giá trị chinh xác việc đầu tƣ vao thông tin.
Những mục đich của bai tập nay la gán giá trị tiền tệ cho những mảnh thông
tin nhỏ. Bằng cách nay một công ty đã quen với việc định giá những giá trị
liên quan dựa trên những thống kê bottom-line có thể nhận ra ngay giá trị
của thông tin trong lĩnh vực tƣơng ứng.
48.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
The following steps should be taken for this assessment:
• Assign each system (i.e., payroll) a weighting relative to its importance
to the organization. Permissible weights for the entirety of this exercise
are one for a low relative value, two for a middle relative value, and
three for a high relative value.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 48: Giá trị thông tin của Keyes 1011
• For each data element within a system, assign a weighting that shows
that data element‘s importance relative to that system. Again, use
weightings one through three.
• Multiply these two numbers to get the total weighting of a data element
relative to all data in the organization.
• Each data element should have an annotation next to it indicating the
number of systems in which this data element is cross referenced. For
example, it is possible that ―customer name‖ is used in the sales,
inventory, and marketing systems. This would give a total of three
systems. The product calculated in instruction three is now multiplied
by the number determined in this instruction.
• Convert this number to a percentage.
• Using the last audited net income amount for the organization (for a
quarter or for an entire year), calculate the VOI by multiplying the
percentage calculated in instruction five by the net income amount.
Những bƣớc sau cần đƣợc thực hiện cho việc định giá:
1. Gán cho mỗi hệ thống (vi dụ: tiền lƣơng) một trọng số liên quan đến sự
quan trọng của nó đối với công ty. Trọng số chấp nhận đƣợc cho toan
bộ bai tập nay 1 cho giá trị liên quan thấp, 2 cho giá trị liên quan trung
bình va 3 cho giá trị liên quan cao.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 48: Giá trị thông tin của Keyes 1012
2. Với mỗi dữ liệu nguyên tố trong hệ thống, gán trọng số cho thấy sự
quan trọng của dữ liệu nguyên tố đó đối với hệ thống. Một lần nữa, sữ
dụng trọng số từ 1 đến 3.
3. Nhân hai giá trị nay với nhau để lấy đƣợc trọng số của dữ liệu nguyên
tố đối với toan bộ dữ liệu trong công ty.
4. Mỗi dữ liệu nguyên tố nên có phần chú giải kế bên để chỉ ra số lƣợng
hệ thống ma dữ liệu nay có liên quan. Vi dụ: ―Tên Khách Hang‖ đƣợc
dùng trong buôn bán, kiểm kê va trong hệ thống marketing. Ta có tổng
cộng 3 hệ thống. Sản phẩm đƣợc tinh toán theo hƣớng dẫn 3 bây giờ
đƣợc nhân với con số đƣợc xác định trong hƣớng dẫn nay.
5. Chuyển con số nay sang phần trăm
6. Sử dụng số lƣợng mạng thu nhập đƣợc kiểm tra lần mới nhất cho công
ty (cho mỗi quý hoặc cả năm), tinh toán VOI bằng cách nhân phần trăm
đã tinh đƣợc trong hƣớng dẫn 5 với số lƣợng mạng thu nhập.
48.3 TÀI LIỆU THAM KHẢO
Keyes, J. (1992). INFOTRENDS: the Competitive Use of
Information, McGraw-Hill, New York.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1013
CHƢƠNG 48 PHƢƠNG PHÁP CỦA PFLEEGER
ĐỂ LỰA CHỌN CÔNG CỤ CASE DỰA TRÊN
SỰ TRƢỞNG THÀNH CỦA QUÁ TRÌNH
Người dịch: Dƣơng Tùng Sơn
48.1 TỔNG QUAN
A wide variety of computer-assisted software engineering (CASE)
tools are available in the software market for various types of applications
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1014
in the software development process. It is not a trivial issue for an
organization to make the appropriate selections and incorporate the CASE
tools at the right stages for its own environment. The five process maturity
levels defined by the Software Engineering Institute can be used as
guidelines for an organization to determine the proper types of CASE tools
to use based on its own process maturity (Pfleeger and Fitzgerald, Jr.,
1991).
Một số lƣợng lớn công cụ CASE trên thị trƣờng phần mềm có thể
đƣợc dùng cho các ứng dụng khác nhau trong quá trình phát triển phần
mềm. Đối với một tổ chức, việc lựa chọn thich hợp va tich hợp các công cụ
CASE vao đúng giai đoạn trong môi trƣờng của họ không phải điều dễ
dang. 5 cấp độ trƣởng thanh đƣợc xác định bởi học viện công nghệ phần
mềm có thể đƣợc dùng nhƣ đƣờng lối để một tổ chức xác định đúng loại
công cụ CASE cần thiết.
It is obvious that the CASE tools chosen for a particular project have
direct impacts on its success in terms of productivity, schedule, quality, etc.
Without any clearly defined procedures or guidelines, it is rather difficult
for an organization to make intelligent decisions on selecting proper CASE
tools to use for a particular process and for a particular project. The method
presented here clearly defines the most suitable types of tools to use based
on the software development process maturity of an organization. It is
valuable for organizations that have already introduced CASE tools with
emphasis on continuous process improvement or organizations that plan on
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1015
migrating from no previous CASE tools involvement to a process with fully
integrated CASE tools support.
Rõ rang các công cụ CASE đƣợc dùng trong một dự án cụ thể có tác
động trực tiếp đến thanh công trên các mặt năng suất, kế hoạch, chất lƣợng,
v.v… Nếu không có thủ tục hoặc nguyên tắc rõ rang, một tổ chức sẽ gặp
khó khăn trong việc xác định đúng công cụ CASE cần dùng trong một quá
trình hay dự án cụ thể. Phƣơng pháp trình bay ở đây xác định rõ rang các
loại công cụ CASE thich hợp dựa vao sự trƣởng thanh của quá trình phát
triển phần mềm của một tổ chức. Điều đó rất có giá trị đối với các tổ chức
bắt đầu đƣa công cụ CASE vao sử dụng hoặc đang có kế hoạch chuyển từ
không dùng công cụ CASE sang sử dụng CASE hoàn toàn.
48.2 THỦ TỤC/ VẤN ĐỀ/ CHÍNH SÁCH
The table in Exhibit 49-1 describes the characteristics for each
process maturity level defined by the Software Engineering Institute.
Bảng Exhibit 49-1 miêu tả tinh chất của từng cấp độ trƣởng thanh
xác định bởi học viện công nghệ phần mềm:
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1016
Cấp độ 1
For this level of process maturity, the inputs to the process are not
well defined; however, the outputs are usually defined. The software
process neither defines nor controls the transition from inputs to outputs.
The CASE tools selection for this level should focus on adding structure
and definition to the inputs and outputs of the process. A tool that structures
and controls the requirements is useful for process at this level of maturity.
Đối với cấp độ nay, input của quá trình không đƣợc xác định tốt; tuy
nhiên output đã đƣợc xác định. Quá trình lam phần mềm không xác định
hay kiểm soát sự chuyển dịch từ input sang output. Lựa chọn công cụ
CASE cho cấp độ nay nên tập trung vao việc thêm vao cấu trúc va định
nghĩa cho input va output trong quá trình. Một công cụ tạo cấu trúc va kiểm
soát các yêu cầu sẽ có ich ở cấp độ nay.
Cấp độ 2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1017
For this level of process maturity, the inputs, outputs, and constraints
are identified for the process. This process is repeatable. Proper inputs will
always produce proper outputs even though there is no mechanism to keep
track of how the outputs are produced. The process at this level is
completely dependent on individuals working on the project. The CASE
tools selection for this level should focus on documenting and retaining the
information produced in the software development process and making it
available to other members in the project team. Tools for requirements
modeling, specification, and analysis are useful and project management
tools will help track the project constraints at this level of process maturity.
Đối với cấp độ nay, input, output va các giới hạn của quá trình đã
đƣợc xác định. Quá trình nay có thể đƣợc lặp lại. Input thich hợp sẽ luôn
luôn tạo ra output thich hợp mặc dù không có cơ chế để theo dõi output
đƣợc tạo ra nhƣ thế nao. Ở cấp độ nay quá trình phụ thuộc hoan toan vao
các cá nhân lam việc trong dự án. Lựa chọn công cụ CASE cho cấp độ nay
nên tập trung vao việc tai liệu hóa va duy trì những thông tin đƣợc tạo ra
trong quá trình phát triển phần mềm để các thanh viên trong team có thể
xem. Công cụ cho các yêu cầu mô hình hóa, chi tiết kỹ thuật va phân tich sẽ
có ich va các công cụ quản lý dự án sẽ giúp theo dõi các giới hạn của dự án
ở cấp độ nay.
Cấp độ 3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1018
For this level of process maturity, the process is now refined into
activities according to various phases in the development cycle. The entry
and exit criteria for all activities in the process are clearly defined. The
inputs for any particular activity should be ready and evaluated before the
actual activity takes place. The inputs and outputs associated with each
activity are considered intermediate products. The CASE tools selection for
this level should focus on measuring the characteristics of the intermediate
products to ensure the goals are met and to monitor the process deviations.
CASE tools should be selected to produce, analyze, and organize those
intermediate products at this level of process maturity.
Ở cấp độ nay, quá trình bây giờ đƣợc cải tiến trong các hoạt động
theo các giai đoạn khác nhau trong vòng đời phát triển. Tiêu chuẩn bắt đầu
va kết thúc cho các hoạt động trong quá trình đƣợc xác định rõ. Input cho
bất cứ hoạt động cụ thể nao cũng đƣợc đánh giá trƣớc khi đƣợc thực hiện.
Input và output đi với mỗi hoạt động đƣợc xem nhƣ những sản phẩm trung
gian. Lựa chọn công cụ CASE cho cấp độ nay nên tập trung vao việc đánh
giá các sản phẩm trung gian để đảm bảo những mục tiêu khớp với nhau va
để theo dõi sự sai lệch của quá trình. Công cụ CASE nên đƣợc chọn để sản
xuất, phân tich va tổ chức các sản phẩm trung gian đó ở cấp độ nay.
Cấp độ 4
For this level of process maturity, the software development process
tends to be dynamic in the sense that feedback and experience learned from
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1019
early project activities can be used to determine and modify the priority of
later project activities. The effectiveness of process factors such as reuse,
testing, and reviews can be evaluated. The causal analysis can be done
throughout the development process to prevent future mistakes and to
analyze defects injected in the early activities. The software development
process is now carefully controlled rather than just monitored. The CASE
tools selection for this level should focus on collecting and analyzing
process-wide metrics for confidence measurement and course correction to
allow management and control of the development process.
Ở cấp độ nay, quá trình phát triển phần mềm có xu hƣớng linh động
theo nghĩa la các phản hồi va kinh nghiệm từ các hoạt động trƣớc đƣợc
dùng để xác định va chỉnh sửa sự ƣu tiên của các hoạt động sau nay. Sự
hiệu quả của các công việc nhƣ tái sử dụng, kiểm tra va xem xét có thể
đƣợc đánh giá. Sự phân tich nguyên nhân có thể đƣợc thực hiện trong quá
trình phát triển để ngăn chặn các lỗi trong tƣơng lai va phân tich các nhƣợc
điểm tìm thấy trong các hoạt động trƣớc. Quá trình phát triển phần mềm
bây giờ đƣợc kiểm soát cẩn thận hơn la chỉ theo dõi. Lựa chọn công cụ
CASE cho cấp độ nay nên tập trung vao việc thu thập va phân tich số liệu
cho việc đánh giá va sửa chữa để quản lý va kiểm soát quá trình phát triển.
Cấp độ 5
This is the ultimate level of process maturity. Projects in this level
are fully dynamic in terms of real-time intra- and interprocess
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1020
improvements and modifications. The software process evolves and
corrects itself. The CASE tools selection for this level should focus on
dynamic evaluation, configuration, and reconfiguration of an environment
based on the current status of the process to ensure product confidence level
is met. Process programming and process simulation tools should be
considered for process at this level of maturity.
Đây la cấp độ trƣởng thanh cuối cùng. Các dự án ở cấp độ nay đƣợc
linh động hoan toan trong sự cải tiến va chỉnh sửa quá trình bên trong theo
thời gian thực. Quá trình phát triển phần mềm tự tiến hóa va sửa chữa. Lựa
chọn công cụ CASE cho cấp độ nay nên tập trung vao việc đánh giá, cấu
hình môi trƣờng dựa vao tình trạng hiện tại của quá trình để đảm bảo độ tin
tƣởng của sản phẩm. Các công cụ lập trình va giả lập quá trình nên đƣợc
xem xét ở cấp độ nay.
48.3 TÀI LIỆU THAM KHẢO
Pfleeger, S.L. and Fitzgerald, Jr., J.C. (1991). Software metrics tool
kit: support for selection, collection and analysis, Inf. Software Technol.,
September, 33(7).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chương 49: Phương pháp của Pfleeger để lựa chọn công cụ case 1021
CuuDuongThanCong.com https://fb.com/tailieudientucntt