nhóm lm việc v công cụ nghề nghiệp (TEAMS AND THE TOOLS OF THEIR TRADE) Néi dung: Kh¸i quát chung Tiếp cận nhóm làm việc Phân tích giá thành lợi nhuận Đánh giá phần mềm Các công cụ CASE Các phiên phần mềm 39 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.1 Khái quát chung (overview) Dự án phần mềm thành công với: thành thạo, hiểu biết công nghệ phần mềm đào tạo tốt công nghệ phần mềm Ngoài ngời tốt, nhóm làm việc phải đợc tổ chức nhằm làm cho thành viên làm việc hiệu kết hợp chặt chẽ với Công nghệ phần mềm cần hai dạng công cụ: phân tích, dùng phát triển phần mềm VD: công cụ phân tích giá thành, lợi nhuận; công cụ phân tích mịn dần phần mềm, sản phầm trợ giúp nhóm công nghệ phần mềm phát triển bảo trì phần mềm Thờng gọi công cụ CASE (computer-adied software engineering tools - CASE tools) 40 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn 4.2 Tỉ chøc nhãm lµm viƯc (team organization) Các sản phẩm tơng đối lớn trở phải ngời chuyên nghiệp thực ngời đợc tổ chức thành nhóm làm việc (team) Vấn đề đặt ra: sản phẩm ngời thực hoàn thành năm, ngời thực hoàn thành tháng ? Luật Brooks [Brooks, 1975]: thêm nhân lực cho dự án phần mềm ®ang thùc hiƯn sÏ lµm chËm tiÕn ®é thùc hiƯn Các giai đoạn có nhóm làm việc riêng nhng vai trò đặc biệt thuộc nhóm cài đặt (mỗi ngời làm việc mô-đun riêng) Hình 4.1 Các kênh giao tiếp thêm ngời (nét đứt) 41 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.3 Tiếp cận nhóm làm việc dân chủ (democratic team approach) Đợc mô tả Weinberg [Weinberg, 1971] Khái niệm lập trình ngà (egoless programming) lập trình viên gắn bó cao với mà lệnh họ mô-đun nh mở rộng thân khó phát lỗi Hớng giải quyết: cấu trúc lại môi trờng xà hội theo giá trị lập trình viên khuyến khích thành viên khác nhóm tìm kiếm lỗi mà lệnh thể tinh thần tập thể cao Nhóm lm việc dân chủ (democratic team): 10 lập trình viên ngà Ưu điểm: thái độ tích cực để phát lỗi, cảm thấy hạnh phúc nhóm Khuyết điểm: khó chấp nhận từ phía nhà quản lý, lập trình viên lâu năm cảm thấy khó chịu (nhất đợc lập trình viên trẻ tuổi giúp phát lỗi !) 42 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 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 trởng nhóm lập trình cổ điển Chính thức hóa Mills [Backer, 1972] Các thành viên nhãm: tr−ëng nhãm (chief), qu¶n lý tèt, giái lËp Hình 4.2 Các kênh giao tiếp trình, xử lý 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 trởng nhóm quán xuyến công việc 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, liệu kiểm thử, JCL (job control language) lập trình viên (programmer) Trợ giúp chuyên gia luật, tài chính, vấn đề liên quan 43 Huỳnh Xuân HiƯp - CNPM http://www.ebook.edu.vn 4.5 Mét sè cÊu tróc nhãm lập trình đại (structures of modern programming team) Khó tìm đợc trởng nhóm có khả tuyệt vời nh cấu trúc cổ điển Tách trởng nhóm thành cá nhân lÃnh đạo (leader) quản lý (manager) Quản lý nhóm Lập trình viên LÃnh đạo nhóm 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 đại 44 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn LÃnh đạo dự án LÃnh đạo nhóm Lập trình viên Lập trình viên LÃnh đạo nhóm Lập trình viên Lập trình viên Lập trình viên 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 Hình 4.5 Cấu trúc tổ chức quản lý kỹ thuật cho dự án lớn LÃnh đạo dự án LÃnh đạo nhóm Lập trình viên Lập trình viên LÃnh đạo nhóm Lập trình viên Lập trình viên Lập trình viên 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 Hình 4.6 Phiên Hình 4.5 với việc phi tập trung hóa định kênh giao tiếp kỹ thuật 45 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.6 Các nhóm làm việc dạng đồng hoá ổ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 kiểm thử viên Cứ 3-4 bớc xây dựng đợc thực song song bëi nhiỊu nhãm nhá Tỉ chøc cđa mét nhóm nhỏ: 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 nhóm nhỏ: đợc cung cấp tài liệu đặc tả cho toàn công việc nhóm môi thành viên nhóm đợc tự thiết kế cài đặt phần làm việc Ưu điểm: lập trình viên sáng tạo đổi mới, hớ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 sở liệu sản phẩm để đồng bé hãa 46 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn 4.7 So sánh 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 Các nhóm dân chủ Điểm mạnh Điểm yếu Chất lợng mà lệnh cao thái độ Không thể gánh vác thêm công việc tích cực dò tìm lỗi Đặc biệt tốt với vấn đề phức tạp Trởng nhóm lập trình cổ điển Thành công dự án báo Không thực tế NewYork Times Trởng nhóm lập trình có bổ Nhiều thành công Không có thành công so sung sánh đựơc với dự án NewYork Times Nhóm lập trình đại Quản lý nhóm/lÃnh đạo nhóm xoá Khó khăn nảy sinh cần thiết trởng nhóm phác họa rõ ràng trách nhiệm quản lý lập trình lÃnh đạo nhóm Co giÃn đợc Hỗ trợ phi tập trung cần Hình 4.7 So sánh cách tiếp cận 47 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.8 Làm mịn dần (stepwise refinement) Định nghĩa: trì hoÃn định chi tiết lâu tốt nhằm tập trung vào vấn đề trọng tâm Luật Miller [Miller, 1956], ng−êi chØ cã thÓ tËp trung cïng mét lúc tối đa 2-7 mức thông tin (quanta of information) Thuật ngữ lm mịn dần đợc Wirth giới thiệu [Wirth, 1971] Xét ví dụ sau: Bài toán: Thiết kế sản phẩm dÃy cập nhật tập tin với liệu gồm có tên, địa khách thuê bao tờ báo tháng, Tuổi trẻ chủ nhật - có dạng giao dịch: thêm, sửa đổi xóa với mà tơng ứng 1-2-3 - giao dịch đợc xếp theo thứ tự từ điển tên thuê bao; có nhiều giao dịch tên thuê bao, giao dịch đợc thực theo thứ tự sau: thêm, sửa đổi xóa Hai tập tin đầu vào: - chứa liệu thuê bao - chứa giao dịch Ba tập tin đầu ra: - chứa liệu thuê bao - báo cáo ngoại lệ (exception) - tổng kết thông báo kết thúc công viƯc 48 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn KiĨu giao dịch 3 Tên Bình Hùng Sanh Sanh Toàn Địa Tập tin liệu cũ 18/09 đờng 30/4, Tp.Cần Thơ 67 đờng Trần Hng Đạo, TP.HCM Cập nhật tập tin liệu 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 liệu Đầu vào Tập tin liƯu míi Xư lý TËp tin giao dÞch Tỉng kÕt thông báo kết thúc Đầu Hình 4.10 Bớc thiÕt kÕ mÞn thø nhÊt TËp tin giao dÞch Bình Hùng Sanh Sanh Việt Báo cáo ngoại lệ Tập tin liệu cũ Anh Bình Khoa Sanh Toàn Tùng Hình 4.9 Chuỗi cập nhật tËp tin d÷ liƯu TËp tin d÷ liƯu míi Anh Hùng Khoa Toàn Tùng Báo cáo ngoại lệ Toàn Hình 4.11 Các tập tin giao dịch, liệu cũ, liệu báo cáo ngoại lệ 49 Huỳnh Xuân HiƯp - CNPM http://www.ebook.edu.vn CËp nhËt tËp tin d÷ liƯu A Đầu vào Đầu So sánh: khoá mẫu tin giao dịch, khóa mẩu tin liệu = < > KiĨm thư kiĨu giao dÞch KiĨm thư kiĨu giao dịch Ghi vào tập tin liệu A THEM SUADOI XOA THEM Thùc hiÖn xãa Thùc hiÖn xen A Lỗi Thực sửa đổi A SUADOI XOA A Lỗi Lỗi Hình 4.12 Làm mịn lần thứ hai 50 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn CËp nhËt tËp tin liệu Đọc mẩu tin từ tập tin liệu cũ, đọc mẩu tin tập tin giao dịch = Ghi thông báo kết thúc công việc A < So sánh: khoá mẫu tin giao dịch, khóa mẩu tin liệu Kiểm thử kiểu giao dịch Kiểm thử kiểu giao dịch > THEM Lỗi SUADOI XOA Ghi tập tin liệu THEM Ghi mẩu tin lên tập tin d÷ liƯu míi SUADOI Ghi tËp tin d÷ liƯu XOA Lỗi Lỗi Đọc mảu tin từ tập tin liệu cũ Đọc tập tin giao dịch Đọc tập tin giao dịch A A Hình 4.13 Làm mịn dần lần thứ ba A 51 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.9 Phân tích giá thành lợi nhuận (cost-benefit analysis) Ước tính giá thành lợi nhuận tơng lai Một số vấn đề quan tâm: thay đổi trị giá 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 ? Một số hớng giải pháp: tính theo mệnh giá đồng tiền mạnh sử dụng chiến lợc thích hợp để đánh giá 52 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.10 Đánh giá phần mềm (software metrics) Còn gọi đo (mesurement) phần mềm Tiến trình đánh giá (process metrics), trình tiến hành đo phần mềm Đánh giá sản phẩm (product metrics) Nên đánh giá theo giai đoạn Có nhiều phơng pháp đánh giá, nhìn chung có yếu tố sau: kích thớc (size) [LOC, ] giá thành (cost) [đơn vị tiền tệ] thời gian thực (duration) [tháng] nhân lực (effort) [ngời-tháng] chất lợng (quality) [số lợng lỗi phát đợc] 53 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.11 Phân loại công cụ CASE (taxonomy of CASE) Đơn giản công cụ phần mềm (software tool), trợ giúp mặt sản xuất phần mềm upperCASE hay front-end: trợ giúp giai đoạn nh phân tích yêu cầu, đặc tả thiết kế lowerCASE hay back-end : trợ giúp giai đoạn cuối nh cài đặt, tích hợp bảo trì Workbench : công cụ thể ®å häa víi tõ ®iĨn d÷ liƯu, kiĨm chøng tÝnh chắn, sinh báo cáo, sinh hình cho giai đoạn đặc tả thiết kế VD: PowerBuilder, Software through Pictures, System Architect, hỗ trợ 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ông việc: viết, nối kết, kiểm thử dò lỗi hỗ trợ định khung nhanh Môi trờng (CASE environment): hỗ trợ đầy đủ phần lớn tiến trình phần mềm [Fuggetta, 1993] 54 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Từ điển liệu (data dictionary): danh sách định nghĩa liệu có sản phẩm kiểm chứng tính chắn (consistency checker): phản ánh mục đặc tả với thiết kế, thiết kế với cài đặt, sinh báo cáo (report generator): tạo mà lệnh cho báo cáo sinh hình (screen generator): tạo mà lệnh cho hình Điều khiển cấu hình (configuration control) VD: gặp lỗi, xác định xác phiên sản phẩm bị lỗi Phân tích yêu cầu Đặc tả Thiết kế Cài đặt Tích hợp Bảo trì (a) Công cụ Phân tích yêu cầu Đặc tả Thiết kế Cài đặt Tích hợp Bảo trì (b) Workbench Phân tích yêu cầu Đặc tả Thiết kế Cài đặt Tích hợp Bảo trì (c) Môi trờng Hình 4.14 Giới thiệu công cụ, workbench môi trờng 55 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 4.12 Các phiên phần mềm (software versions) Một phiên phần mềm đời bảo trì sản phẩm ! Phiên đà sửa chữa (revisions): phiên (new version) sau đà đợc hiệu chỉnh lỗi Gọi phiên đà sửa chữa trớc n phiên đà sửa chữa sau n+1 Phiên khác (variations) hai trình điều khiển máy in: in kim, in lade, sản phẩm đợc cài đặt 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 khác (a) revisions (b) variations 56 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn .. .4 .1 Khái quát chung (overview) Dự án phần mềm thành công với: thành thạo, hiểu biết công nghệ phần mềm đào tạo tốt công nghệ phần mềm Ngoài ngời tốt, nhóm làm việc... Công nghệ phần mềm cần hai dạng công cụ: phân tích, dùng phát triển phần mềm VD: công cụ phân tích giá thành, lợi nhuận; công cụ phân tích mịn dần phần mềm, sản phầm trợ giúp nhóm công nghệ phần. .. ≥ 11 triÖu LOCs, ≥ 200 lËp trình kiểm thử viên Cứ 3 -4 bớc xây dựng đợc thực song song nhiều nhóm nhỏ Tổ chức nhóm nhỏ: 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