Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 4: Nhóm làm việc và các công cụ nghề nghiệp

Nội dung:

? Khái quát chung

? Tiếp cận về các nhóm làm việc

? Phân tích giá thành và lợi nhuận

? Đánh giá phần mềm

? Các công cụ CASE

? Các phiên bản phần mềm

pdf18 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2172 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 4: Nhóm làm việc và các công cụ nghề nghiệp, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
phát hiện lỗi, cảm thấy hạnh phúc trong nhóm 
ƒ Khuyết điểm: khó chấp nhận từ phía các nhà quản lý, các lập trình viên lâu 
năm sẽ cảm thấy khó chịu (nhất là khi đ−ợc các lập trình viên trẻ tuổi giúp 
phát hiện lỗi !) 
Huỳnh Xuân Hiệp - CNPM 
43
4.4 Tiếp cận về tr−ởng nhóm lập trình cổ điển
(classical chief programmer team approach)
Th− ký lập trình Tr−ởng nhóm 
lập trình 
 Lập trình viên 
hỗ trợ 
Lập trình viên Lập trình viên Lập trình viên
Hình 4.3 Cấu trúc về tr−ởng nhóm lập trình cổ điển 
ƒ Chính thức hóa bởi Mills [Backer, 1972] 
ƒ Các thành viên trong nhóm: 
‰ tr−ởng nhóm (chief), quản lý tốt, giỏi lập 
trình, xử lý các công việc khó khăn khác 
‰ lập trình viên hỗ trợ (back-up programmer), sẵn sàng thay thế tr−ởng 
nhóm quán xuyến các công việc khi cần 
‰ th− ký lập trình (secretary), bảo trì th− viện, tài liệu, danh sách mã 
nguồn, dữ liệu kiểm thử, JCL (job control language) 
‰ lập trình viên (programmer) 
ƒ Trợ giúp của các chuyên gia luật, tài chính,...trong các vấn đề liên quan 
b
b
b
c
c
c
Hình 4.2 Các kênh giao tiếp 
Huỳnh Xuân Hiệp - CNPM 
44
4.5 Một số cấu trúc nhóm lập trình hiện đại
(structures of modern programming team)
ƒ Khó tìm đ−ợc tr−ởng nhóm có khả năng tuyệt vời nh− cấu trúc cổ điển 
ƒ Tách tr−ởng nhóm thành 2 cá nhân 
‰ lãnh đạo (leader) 
‰ quản lý (manager) 
 Quản lý nhóm Lãnh đạo nhóm 
Lập trình viên Lập trình viên Lập trình viên 
Quản lý kỹ thuật 
Quản lý không kỹ thuật 
Hình 4.4 Cấu trúc nhóm lập trình hiện đại 
Huỳnh Xuân Hiệp - CNPM 
45
 Lãnh đạo dự án 
 Lãnh đạo nhóm Lãnh đạo nhóm Lãnh đạo nhóm 
Lập trình 
viên 
 Lập trình 
viên 
 Lập trình 
viên 
Lập trình 
viên 
Lập trình 
viên 
 Lập trình 
viên 
Lập trình 
viên 
Lập trình 
viên 
Quản lý kỹ thuật 
Hình 4.5 Cấu trúc tổ chức quản lý kỹ thuật cho các dự án lớn 
 Lãnh đạo dự án 
 Lãnh đạo nhóm Lãnh đạo nhóm Lãnh đạo nhóm 
Lập trình 
viên 
 Lập trình 
viên 
 Lập trình 
viên 
Lập trình 
viên 
Lập trình 
viên 
 Lập trình 
viên 
Lập trình 
viên 
Lập trình 
viên 
Quản lý kỹ thuật 
Hình 4.6 Phiên bản của Hình 4.5 với việc phi tập trung hóa các quyết định 
và các kênh giao tiếp kỹ thuật 
Huỳnh Xuân Hiệp - CNPM 
46
4.6 Các nhóm làm việc dạng đồng bộ hoá và ổn định
(synchronize-and-stabilize teams)
ƒ Do Microsoft sử dụng [Cusamano và Selby, 1997] 
VD: Windows95 có: ≥ 11 triệu LOCs, ≥ 200 lập trình và kiểm thử viên 
ƒ Cứ mỗi 3-4 b−ớc xây dựng đ−ợc thực hiện song song bởi nhiều nhóm nhỏ 
ƒ Tổ chức của một nhóm nhỏ: 
‰ 1 quản lý ch−ơng trình 
‰ 3-8 nhà phát triển 
‰ 3-8 kiểm thử viên (t−ơng ứng 1-1 với số l−ợng nhà phát triển) 
ƒ Công việc của một nhóm nhỏ: 
‰ đ−ợc cung cấp tài liệu đặc tả cho toàn bộ công việc của nhóm 
‰ môi thành viên trong nhóm đ−ợc tự do thiết kế và cài đặt phần làm 
việc của mình 
ƒ Ưu điểm: các lập trình viên luôn sáng tạo và đổi mới, h−ớng cùng mục đích 
ƒ Khuyết điểm: phải tôn trọng triệt để thời gian đ−a mã nguồn vào cơ sở dữ 
liệu của sản phẩm để đồng bộ hóa 
Huỳnh Xuân Hiệp - CNPM 
47
4.7 So sánh các tiếp cận tổ chức nhóm làm việc
(comparison of approaches to team organization)
Tổ chức nhóm làm việc Điểm mạnh Điểm yếu 
Các nhóm dân chủ Chất l−ợng mã lệnh cao vì thái độ 
tích cực dò tìm lỗi 
Đặc biệt tốt với những vấn đề 
phức tạp 
Không thể gánh vác thêm công 
việc 
Tr−ởng nhóm lập trình cổ điển Thành công chính trong dự án báo 
NewYork Times 
Không thực tế 
Tr−ởng nhóm lập trình có bổ 
sung 
Nhiều thành công Không có những thành công so 
sánh đựơc với dự án 
NewYork Times 
Nhóm lập trình hiện đại Quản lý nhóm/lãnh đạo nhóm xoá 
đi sự cần thiết của tr−ởng nhóm 
lập trình 
Co giãn đ−ợc 
Hỗ trợ phi tập trung khi cần 
Khó khăn sẽ nảy sinh nếu 
không có sự phác họa rõ ràng 
trách nhiệm giữa quản lý và 
lãnh đạo nhóm 
Hình 4.7 So sánh các cách tiếp cận 
Huỳnh Xuân Hiệp - CNPM 
48
4.8 Làm mịn dần
(stepwise refinement)
ƒ Định nghĩa: trì hoãn các quyết định chi tiết càng lâu càng tốt nhằm có thể 
tập trung vào những vấn đề trọng tâm nhất 
ƒ Luật Miller [Miller, 1956], con ng−ời chỉ có thể tập trung cùng một lúc tối đa 
là 2-7 mức thông tin (quanta of information) 
ƒ Thuật ngữ lμm mịn dần đ−ợc Wirth giới thiệu đầu tiên [Wirth, 1971] 
ƒ Xét ví dụ sau: 
Bài toán: Thiết kế một sản phẩm dãy các cập nhật tập tin với dữ liệu gồm có tên, địa chỉ khách thuê bao 
của một tờ báo tháng, Tuổi trẻ chủ nhật. 
- có 3 dạng giao dịch: thêm, sửa đổi và xóa với các mã t−ơng ứng 1-2-3. 
- các giao dịch đ−ợc sắp xếp theo thứ tự từ điển của tên thuê bao; nếu có nhiều giao dịch trên cùng 
một tên thuê bao, các giao dịch sẽ đ−ợc thực hiện theo thứ tự sau: thêm, sửa đổi và xóa. 
Hai tập tin đầu vào: 
- chứa dữ liệu về các thuê bao 
- chứa các giao dịch 
Ba tập tin đầu ra: 
- chứa dữ liệu mới về các thuê bao 
- báo cáo về các ngoại lệ (exception) 
- tổng kết và thông báo kết thúc công việc 
Huỳnh Xuân Hiệp - CNPM 
49
Kiểu 
giao dịch 
Tên Địa chỉ 
3 Bình 
1 Hùng 18/09 đ−ờng 30/4, Tp.Cần Thơ 
2 Sanh 67 đ−ờng Trần H−ng Đạo, TP.HCM 
3 Sanh 
1 Toàn 88 đ−ờng Đại Cồ Việt, Hànội 
Hình 4.8 Các mẩu tin giao dịch 
 Cập nhật tập tin dữ liệu 
Đầu vào Xử lý Đầu ra 
Hình 4.10 B−ớc thiết kế mịn thứ nhất 
Tập tin giao dịch Tập tin dữ liệu cũ Tập tin dữ liệu mới 
3 Bình Anh Anh 
1 Hùng Bình Hùng 
2 Sanh Khoa Khoa 
3 Sanh Sanh Toàn 
1 Việt Toàn Tùng 
 Tùng 
 Báo cáo ngoại lệ 
 Toàn 
Hình 4.11 Các tập tin giao dịch, dữ liệu cũ, dữ liệu mới và báo cáo ngoại lệ 
Cập nhật tập 
tin dữ liệu 
Tập tin giao dịch
Tập tin dữ 
liệu mới
Báo cáo 
ngoại lệ 
Tập tin dữ 
liệu cũ 
Hình 4.9 Chuỗi các cập nhật tập tin dữ liệu 
Tổng kết và 
thông báo 
kết thúc 
Huỳnh Xuân Hiệp - CNPM 
50
Lỗi 
Cập nhật tập tin dữ liệu 
Đầu vào 
Đầu ra 
Hình 4.12 Làm mịn lần thứ hai 
So sánh:
khoá của mẫu tin giao dịch, 
 khóa của mẩu tin dữ liệu 
A
Kiểm thử 
kiểu giao 
dịch 
Kiểm thử 
kiểu giao 
dịch 
Ghi vào tập tin dữ 
liệu mới 
Lỗi 
Lỗi 
Thực 
hiện xen 
Thực 
hiện xóa 
Thực 
hiện 
sửa đổi
THEM XOASUADOI THEM XOASUADOI
AA
A
A
=
>
<
Huỳnh Xuân Hiệp - CNPM 
51
=
THEM XOASUADOI
Hình 4.13 Làm mịn dần lần thứ ba 
Kiểm thử 
kiểu giao 
dịch 
Lỗi 
Lỗi 
Ghi 
tập tin dữ 
liệu mới 
A
Cập nhật tập tin dữ liệu 
Đọc mẩu tin từ tập tin 
dữ liệu cũ, đọc mẩu tin 
của tập tin giao dịch 
Ghi thông báo
kết thúc công việc 
So sánh:
khoá của mẫu tin giao dịch, 
 khóa của mẩu tin dữ liệu 
A
>
Đọc mảu tin từ tập 
tin dữ liệu cũ 
A
Ghi mẩu tin lên tập 
tin dữ liệu mới 
Đọc tập tin 
giao dịch 
<
Kiểm thử 
kiểu giao 
dịch 
Ghi 
tập tin dữ 
liệu mới 
THEM XOASUADOI 
A 
Lỗi 
Đọc tập tin 
giao dịch 
Huỳnh Xuân Hiệp - CNPM 
52
4.9 Phân tích giá thành và lợi nhuận
(cost-benefit analysis)
ƒ Ước tính giá thành và lợi nhuận trong t−ơng lai 
ƒ Một số vấn đề quan tâm: 
‰ sự thay đổi trị giá của tiền [Yourdon, 1989] 
‰ giá thành phần cứng, phần mềm 
‰ tiền thuê chuyên gia công nghệ phần mềm 
‰ tính giá trị sản phẩm nh− thế nào ? 
‰ ... 
ƒ Một số h−ớng giải pháp: 
‰ tính theo mệnh giá của đồng tiền mạnh 
‰ sử dụng chiến l−ợc thích hợp để đánh giá 
‰ ... 
Huỳnh Xuân Hiệp - CNPM 
53
4.10 Đánh giá phần mềm
(software metrics)
ƒ Còn gọi là đo (mesurement) phần mềm 
ƒ Tiến trình đánh giá (process metrics), quá trình tiến hành đo phần mềm 
ƒ Đánh giá sản phẩm (product metrics) 
ƒ Nên đánh giá theo từng giai đoạn 
ƒ Có nhiều ph−ơng pháp đánh giá, nhìn chung có 5 yếu tố cơ bản sau: 
‰ kích th−ớc (size) [LOC,...] 
‰ giá thành (cost) [đơn vị tiền tệ] 
‰ thời gian thực hiện (duration) [tháng] 
‰ nhân lực (effort) [ng−ời-tháng] 
‰ chất l−ợng (quality) [số l−ợng lỗi phát hiện đ−ợc] 
Huỳnh Xuân Hiệp - CNPM 
54
4.11 Phân loại công cụ CASE
(taxonomy of CASE)
ƒ Đơn giản nhất là công cụ phần mềm (software tool), trợ giúp một mặt nào 
đó trong sản xuất phần mềm 
ƒ upperCASE hay front-end: trợ giúp trong các giai đoạn đầu tiên nh− phân 
tích yêu cầu, đặc tả và thiết kế 
ƒ lowerCASE hay back-end : trợ giúp trong các giai đoạn cuối nh− cài đặt, 
tích hợp và bảo trì 
ƒ Workbench : công cụ thể hiện bằng đồ họa với từ điển dữ liệu, kiểm chứng 
tính chắc chắn, sinh báo cáo, sinh màn hình cho các giai đoạn đặc tả và 
thiết kế. VD: PowerBuilder, Software through Pictures, System Architect,... 
‰ hỗ trợ 1 hoặc 2 hoạt động (ativities) 
‰ hoạt động bao gồm nhiều công việc (task). VD: hoạt động mã hóa 
có các công việc: viết, nối kết, kiểm thử và dò lỗi 
‰ hỗ trợ định khung nhanh 
ƒ Môi tr−ờng (CASE environment): hỗ trợ đầy đủ hoặc một phần lớn tiến 
trình phần mềm [Fuggetta, 1993] 
Huỳnh Xuân Hiệp - CNPM 
55
™ Từ điển dữ liệu (data dictionary): danh sách các định nghĩa dữ liệu có trong 
sản phẩm 
‰ kiểm chứng tính chắc chắn (consistency checker): phản ánh các 
mục trong đặc tả với thiết kế, trong thiết kế với cài đặt,... 
‰ sinh báo cáo (report generator): tạo các mã lệnh cho các báo cáo 
‰ sinh màn hình (screen generator): tạo mã lệnh cho các màn hình 
™ Điều khiển cấu hình (configuration control) 
VD: khi gặp lỗi, xác định chính xác phiên bản nào của sản phẩm bị lỗi 
Phân tích yêu cầu Phân tích yêu cầu Phân tích yêu cầu 
Đặc tả Đặc tả Đặc tả 
Thiết kế Thiết kế Thiết kế 
Cài đặt Cài đặt Cài đặt 
Tích hợp Tích hợp Tích hợp 
Bảo trì Bảo trì Bảo trì 
(a) Công cụ (b) Workbench (c) Môi tr−ờng 
Hình 4.14 Giới thiệu công cụ, workbench và môi tr−ờng 
Huỳnh Xuân Hiệp - CNPM 
56
4.12 Các phiên bản phần mềm
(software versions)
ƒ Một phiên bản mới của phần mềm sẽ ra đời mỗi khi bảo trì sản phẩm ! 
ƒ Phiên bản đã sửa chữa (revisions): là phiên bản mới (new version) sau khi 
đã đ−ợc hiệu chỉnh một lỗi. Gọi phiên bản đã sửa chữa tr−ớc là n thì phiên 
bản đã sửa chữa sau sẽ là n+1 
ƒ Phiên bản khác nhau (variations) 
‰ hai trình điều khiển máy in: in kim, in lade,... 
‰ sản phẩm đ−ợc cài đặt trên hai hệ điều hành hay hai loại phần cứng 
khác nhau,... 
 (a) (b)
Hình 4.16 Các dạng phiên bản khác nhau (a) revisions (b) variations 

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 4 Nhóm làm việc và các công cụ nghề nghiệp.pdf