1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu giảng dạy môn Công nghệ phần mềm - Nguyễn Khắc Quốc

136 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Tài liệu môn Công nghệ phần mềm cung cấp cho người học những kiến thức như: Phần mềm và công nghệ phần mềm; Phân tích và đặc tả yêu cầu; Thiết kế phần mềm; Lập trình; Xác minh và thẩm định; Sưu liệu phần mềm; Quản lý dự án phần mềm;...Mời các bạn cùng tham khảo!

Phụ lục TRƯỜNG ĐẠI HỌC TRÀ VINH KHOA KỸ THUẬT VÀ CÔNG NGHỆ TÀI LIỆU GIẢNG DẠY MÔN CÔNG NGHỆ PHẦN MỀM GV biên soạn: Nguyễn Khắc Quốc Trà Vinh, 5/2015 Lưu hành nội KHoA rY ruuAT vA cCxc NGHE ^A BO h,{ON CONG NGIIE TX{OI{G TTN A^\^ TRANG PF{E DUY&T TAI LIEU GIANG DAY - TOn - tai iiQu giAng dpy: CONG NGI{B' PHA.N ltlgdy hoin chinh: Th6ng 612015 -1ac gia bidn soan: - Eon - Dia MEM NG1IYEN rcfAC QUOC vi c6ng t6c: B0 m6n COng nghQ Thdng tin chi li0n l4c: B0 m6n C6ng nghQ Th6ng tin Trd Vinh, ngdy l0 thdng ndm 2015 PHE DUYET CUA BQ MON D6ng y su dpng tai liQu staqsa+v mdn A [rq tl tit:'.I ftg- i,q.6i Nirr- \'!-.,nlr:::.'tJ /' JJ"l(r+ r\- vilt"{:, tk*) wrD't : bien soan dd giang day ,r- [Jt6r,- .ncf-zn ng\, /,3 thang ( nitm 2015 TR.UCITqG TTO N{ON Trit Vinh, -f6#furaW*g PHE DUYET CUA KIIOA lra Vinlt3gay /'? {, rlnng [ rnr.roNc K-r-{q t 96Qfi"W"@i$* 2A t5 MỤC LỤC Chương PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM 1.1 Phần mềm máy tính 1.1.1 Khái niệm 1.1.2 Đặc điểm 1.1.3 Phân loại 1.1.4 Kiến trúc phần mềm 1.1.5 Quá trình tạo phần mềm 1.2 Công nghệ phần mềm 1.2.1 Lịch sử đời 1.2.2 Định nghĩa 1.2.3 Mục tiêu nghiên cứu 1.2.4 Đối tượng nghiên cứu 1.3 Qui trình phát triển phần mềm 1.3.1 Mơ hình vịng đời cổ điển (mơ hình thác nước) (Waterfall Model) 1.3.2 Mơ hình làm mẫu (Prototype) 12 1.3.3 Mô hình xoắn ốc 13 1.3.4 Kỹ thuật hệ thứ tư 14 1.3.5 Mơ hình lập trình cực đoan 15 1.3.6 Tổ hợp mơ hình 16 1.3.7 Tính khả thị q trình 17 1.3.8 Vấn đề giảm kích cỡ phần mềm 18 1.4 Cái nhìn chung cơng nghệ phần mềm 18 1.5 Một số phương pháp xây dựng phần mềm 20 1.5.1 Khái niệm 20 1.5.2 Phân loại 20 1.5.3 Cách tiếp cận 20 1.5.4 Cách tiến hành 21 1.6 Công cụ môi trường phát triển phần mềm 23 1.6.1 Khái niệm 23 1.6.2 Phần mềm hỗ trợ phân tích 23 1.6.3 Phần mềm hỗ trợ thiết kế 24 1.6.4 Phần mềm hỗ trợ lập trình 24 1.6.5 Phần mềm hỗ trợ kiểm chứng 24 Tài liệu giảng dạy môn: Công nghệ phần mềm i 1.6.6 Phần mềm xây dựng phương án 24 Chương PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 26 2.1 Đại cương phân tích đặc tả 26 2.2 Q trình phân tích 28 2.2.1 Phân tích phạm vi dự án phần mềm 28 2.2.2 Nghiên cứu khả thi 28 2.2.3 Phân tích mở rộng yêu cầu nghiệp vụ 30 2.2.4 Phân tích yêu cầu bảo mật 31 2.2.5 Phân tích yêu cầu tốc độ 33 2.2.6 Phân tích yêu cầu vận hành 34 2.2.7 Phân tích khả mở rộng yêu cầu 34 2.2.8 Phân tích u cầu sẵn có 35 2.2.9 Phân tích yêu tố người 35 2.2.10 Phân tích yêu cầu tích hợp 36 2.2.11 Phân tích thực tiễn nghiệp vụ tồn 36 2.2.12 Phân tích yêu cầu khả quy mô 36 2.3 Người phân tích 37 2.4 Xác định đặc tả yêu cầu 37 2.4.1 Xác định yêu cầu 37 2.4.2 Các bước xác định yêu cầu 38 2.5 Mơ hình hóa u cầu hệ thống 40 2.5.1 Các ngun lý mơ hình hóa 41 2.5.2 Sơ đồ phân rã chức 41 2.5.3 Sơ đồ luồng liệu 42 2.5.4 Mô hình mẫu (protoype) 42 2.5.5 Mơ hình hướng đối tượng 42 2.5.6 Đặc tả yêu cầu 44 2.5.7 Thẩm định yêu cầu 44 2.5.8 Định dạng đặc tả yêu cầu 45 Chương THIẾT KẾ PHẦN MỀM 49 3.1 Tổng quan thiết kế phần mềm 49 3.1.1 Khái niệm 49 3.1.2 Tầm quan trọng 49 3.1.3 Quá trình thiết kế 50 Tài liệu giảng dạy môn: Công nghệ phần mềm ii 3.1.4 Các hoạt động thiết kế hệ thống phần mềm lớn 51 3.1.5 Cơ sở thiết kế 51 3.1.6 Mô tả thiết kế 52 3.1.7 Chất lượng thiết kế 54 3.2 Kỹ thuật thiết kế 56 3.2.1 Thiết kế xuống (Top-down) 56 3.2.2 Thiết kế từ lên (Bottom–up) 57 3.2.3 Thiết kế hệ thống 57 3.2.4 Thiết kế mẫu (prototype) 57 3.2.5 Phân rã thiết kế 57 3.2.6 Phương pháp phân loại phân rã 57 3.3 Thiết kế liệu 62 3.3.1 Cách tiếp cận hướng đối tượng 62 3.3.2 Ba đặc trưng thiết kế hướng đối tượng 62 3.3.3 Cơ sở thiết kế hướng đối tượng 63 3.3.4 Các bước thiết kế 64 3.3.5 Ưu nhược điểm thiết kế hướng đối tượng 64 3.3.6 Quan hệ thiết kế lập trình hướng đối tượng 65 3.3.7 Quan hệ thiết kế hướng đối tượng hướng chức 65 3.4 Thiết kế giao diện người sử dụng 65 3.4.1 Một số vấn đề thiết kế 68 3.4.2 Một số hướng dẫn thiết kế 68 3.4.3 Kết thiết kế 69 3.4.4 Phân loại hình giao diện 70 3.4.5 Quá trình thiết kế 71 Chương LẬP TRÌNH 79 4.1 Ngôn ngữ lập trình 79 4.1.1 Đặc trưng ngôn ngữ lập trình 79 4.1.2 Lựa chọn ngơn ngữ lập trình 81 4.1.3 Môi trường lập trình 81 4.1.4 Chất lượng đòi hỏi cho ngơn ngữ lập trình 82 4.1.5 Khả Module hóa ngơn ngữ lập trình 82 4.1.6 Ngơn ngữ lập trình ảnh hưởng tới công nghệ phần mềm 82 4.2 Phong cách lập trình 83 Tài liệu giảng dạy môn: Công nghệ phần mềm iii 4.2.1 Tài liệu chương trình 83 4.2.2 Khai báo liệu 84 4.2.3 Xây dựng câu lệnh 84 4.2.4 Vào/ra 85 4.2.5 Các yếu tố quan trọng phong cách lập trình tốt 85 4.3 Lập trình tránh lỗi 86 4.3.1 Lập trình thứ lỗi 87 4.3.2 Lập trình phịng thủ 88 4.4 Lập trình hướng hiệu thực 89 4.4.1 Tính hiệu chương trình 89 4.4.2 Hiệu nhớ 89 4.4.3 Hiệu vào/ra 89 4.4 Đánh giá chất lượng công việc 90 4.4.1 Hiện thực tăng cường 90 4.4.2 Đánh giá lại thiết kế chương trình 91 Chương XÁC MINH VÀ THẨM ĐỊNH 93 5.1 Đại cương 93 5.2 Khái niệm phép thử 95 5.3 Kiểm thử chức kiểm thử cấu trúc 95 5.3.1 Kiểm thử hộp đen - Kiểm thử chức 95 5.3.2 Kiểm thử hộp trắng - Kiểm thử cấu trúc 98 5.3.3 Kiểm thử dựa đặc điểm kỹ thuật 99 5.3.4 Kiểm thử trực quan 99 5.4 Quá trình kiểm thử 100 5.5 Chiến lược kiểm thử 103 5.5.1 Kiểm thử lên 103 5.5.2 Kiểm thử xuống 103 5.5.3 Một chu kỳ kiểm thử mẫu 103 5.5.4 Đảm bảo chất lượng phần mềm 104 Chương SƯU LIỆU PHẦN MỀM 106 6.1 Tổng quan 106 6.2 Sưu liệu người dùng 106 6.2.1 Mô tả chức 107 6.2.2 Bảng Giới thiệu 107 Tài liệu giảng dạy môn: Công nghệ phần mềm iv 6.2.3 Bảng tham khảo 107 6.2.4 Sưu liệu cài đặt 107 6.3 Sưu liệu hệ thống 108 6.4 Chất lượng sưu liệu 109 6.5 Bảo trì sưu liệu 109 Chương QUẢN LÝ DỰ ÁN PHẦN MỀM 111 7.1 Khái niệm dự án, dự án CNTT 111 7.1.1 Khái niệm dự án 111 7.1.2 Dự án Công nghệ thông tin 112 7.1.3 Đặc trưng dự án 112 7.1.4 Mục tiêu dự án 112 7.2 Quy trình quản lý dự án 112 7.2.1 Khởi tạo dự án 113 7.2.2 Lập kế hoạch dự án 113 7.2.3 Triển khai 113 7.2.4 Giám sát kiểm soát 113 7.2.5 Kết thúc 113 7.2.6 Các hoạt động quản lý dự án phần mềm 113 7.2.7 Mục đích quản lý dự án 115 7.2.8 Phương pháp luận kỹ thuật quản lý dự án 116 7.2.9 Nguyên nhân khiến dự án thất bại 116 7.3 Các nhiệm vụ hoạt động QLDA 118 7.3.1 Quản lý thời gian dự án 118 7.3.2 Quản lý kinh phí dự án 118 7.3.3 Quản lý nguồn nhân lực dự án 118 7.3.4 Quản lý kết chuyển giao dự án 118 7.4 Phân loại dự án 118 7.5 Ước lượng 119 7.6 Quản lý nhân 120 7.7 Quản lý cấu hình 121 7.8 Quản lý rủi ro 122 Tài liệu giảng dạy môn: Công nghệ phần mềm v Chương PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM  Mục tiêu học tập: Sau học xong chương người có thể: - Trình bày tổng quan phần mềm cơng nghệ phần mềm - Vận dụng qui trình vào xây dựng dự án phần mềm Tóm tắt chương Trong chương này, tài liệu cung cấp cho sinh viên số khái niệm liên quan đến việc xây dựng phần mềm Đồng thời cung cấp cho sinh viên biết cách chọn lựa giải pháp với chi phí hợp lý cho tốn thực tế cách áp dụng kiến thức công nghệ để xây dựng hệ thống phần mềm có chất lượng… 1.1 Phần mềm máy tính 1.1.1 Khái niệm Phần mềm máy tính (Computer Software) hay gọi tắt Phần mềm (Software) tập hợp câu lệnh thị viết nhiều ngôn ngữ lập trình theo trật tự xác định, liệu hay tài liệu liên quan nhằm tự động thực số nhiệm vụ hay chức giải vấn đề cụ thể Phần mềm thực chức cách gửi thị trực tiếp đến phần cứng máy tính (Computer Hardware) cách cung cấp liệu để phục vụ chương trình hay phần mềm khác Một phần mềm tạo cách phát triển chương trình mới, thay đổi điều chỉnh tái sử dụng lại phần mềm tồn 1.1.2 Đặc điểm Trước đây, để tạo chương trình máy tính người ta phải làm việc trực tiếp với số (sử dụng hệ số nhị phân), hay cịn gọi ngơn ngữ máy Cơng việc vơ khó khăn, nhiều thời gian, công sức đặc biệt dễ gây lỗi Để khắc phục nhược điểm này, người ta đề xuất hợp ngữ, ngôn ngữ cho phép thay dãy từ gợi nhớ tiếng Anh Tuy nhiên, cải tiến cịn chưa thật thích hợp với đa số người dùng máy tính, người ln mong muốn lệnh ý nghĩa thao tác mà mơ tả Vì vậy, từ năm thập niên 50, người ta xây dựng ngôn ngữ lập trình mà câu lệnh gần với ngơn ngữ tự nhiên Các ngôn ngữ gọi ngơn ngữ lập trình bậc cao Chương trình máy tính thường tạo người, người gọi Tài liệu giảng dạy môn: Công nghệ phần mềm lập trình viên, nhiên tồn chương trình sinh chương trình khác 1.1.3 Phân loại a Theo phương thức hoạt động Phần mềm hệ thống: Dùng để vận hành máy tính phần cứng máy tính, ví dụ hệ điều hành máy tính Windows, Linux, Unix,… thư viện động hay gọi thư viện liên kết động (Dynamic Linked Library - DLL) hệ điều hành, trình điều khiển (Driver), phần sụn (Firmware) hệ thống xuất nhập (Basic Input/Output System - BIOS) Đây loại phần mềm mà hệ điều hành liên lạc với chúng để điều khiển quản lý thiết bị phần cứng Phần mềm ứng dụng: Dùng để người sử dụng hồn thành hay nhiều cơng việc đó, ví dụ phần mềm hỗ trợ cơng tác văn phịng (Microsoft Office, OpenOffice ), phần mềm doanh nghiệp, phần mềm quản lý nguồn nhân lực, phần mềm giáo dục, sở liệu, phần mềm trị chơi, chương trình tiện ích, hay loại phần mềm độc hại Các phần mềm dịch mã: Bao gồm trình biên dịch trình thơng dịch: loại chương trình đọc câu lệnh từ mã nguồn viết lập trình viên theo ngơn ngữ lập trình dịch sang dạng ngơn ngữ máy mà máy tính hiểu đươc, hay dịch sang dạng khác tập tin đối tượng (object file) tập tin thư viện (library file) mà phần mềm khác (như hệ điều hành chẳng hạn) hiểu để vận hành máy tính thực thi lệnh b Theo khả ứng dụng Những phần mềm khơng phụ thuộc: Nó bán cho khách hàng thị trường tự Ví dụ: phần mềm sở liệu Oracle, Phtoshop, Corel Draw, MS Office Ưu điểm: Thông thường phần mềm có khả ứng dụng rộng rãi cho nhiều nhóm người sử dụng Hạn chế: Thiếu tính uyển chuyển, tùy biến Những phần mềm viết theo đơn đặt hàng: Đây dạng phần mềm thực theo đơn đặt hàng hay hợp đồng khách hàng cụ thể (một cơng ty, bệnh viện, trường học ) Ưu điểm: Có tính uyển chuyển, tùy biến cao để đáp ứng nhu cầu nhóm người sử dụng Hạn chế: Thơng thường phần mềm ứng dụng cho chuyên ngành hẹp Tài liệu giảng dạy môn: Công nghệ phần mềm c Các loại khác Cũng loại phần mềm, virus máy tính phần mềm có hại viết để chạy với mục đích riêng nhóm người nhằm lừa đảo, quảng cáo, ăn cắp, phá hoại thông tin, phá hoại phần cứng để trêu chọc người dùng 1.1.4 Kiến trúc phần mềm Sau có khái niệm phần mềm, tiếp sau sâu vào tìm hiểu cấu trúc chi tiết thành phần bên phần mềm Phần mềm bao gồm thành phần chính: a Thành phần giao tiếp (giao diện) Cho phép tiếp nhận yêu cầu việc muốn thực cung cấp liệu nguồn liên quan đến cơng việc từ thiết bị thu thập liệu Cho phép trình bày kết việc thực yêu cầu cho người dùng (kết công việc thực máy tính) điều khiển họat động thiết bị điều khiển Một cách tổng quát, thành phần giao tiếp hệ thống hàm chuyên việc nhập/xuất liệu (hàm nhập/xuất) với hình thức trình bày tổ chức lưu trữ liệu tương ứng, mục tiêu hàm đưa liệu từ giới bên phần mềm vào bên ngược lại Trong tài liệu giới hạn xét đến giao tiếp với người sử dụng phần mềm có tên gọi cụ thể thành phần giao diện b Thành phần liệu Cho phép lưu trữ lại (hàm ghi) kết xử lý nhớ phụ với tổ chức lưu trữ xác định trước (tập tin có cấu trúc, tập tin nhị phân, sở liệu) Cho phép truy xuất lại (hàm đọc) liệu lưu trữ phục vụ cho hàm xử lý tương ứng Một cách tổng quát thành phần liệu hệ thống hàm chuyên đọc ghi liệu (hàm đọc/ghi) với mơ hình tổ chức liệu tương ứng Mục tiêu hàm chuyển đổi liệu nhớ nhớ phụ c Thành phần xử lý Kiểm tra tính hợp lệ liệu nguồn cung cấp từ người dùng theo qui trình ràng buộc giới thực Tiến hành xử lý cho kết mong đợi theo qui định tính tốn có sẵn giới thực theo thuật toán tự đề xuất Việc xử lý dựa liệu nguồn từ người sử dụng cung cấp liệu lưu trữ có sẵn hai tùy vào xử lý cụ thể Tương tự, việc xử lý cho kết dùng để xuất cho người dùng xem qua thành phần giao diện, hay Tài liệu giảng dạy môn: Công nghệ phần mềm - Kế hoạch thẩm định: Mô tả phương pháp, nguồn lực, lịch trình thẩm định hệ thống - Kế hoạch quản lý cấu hình: Mơ tả thủ tục, cấu trúc quản lý cấu hình sử dụng - Kế hoạch bảo trì: Dự tính u cầu hệ thống, chi phí, nỗ lực cần thiết cho bảo trì - Kế hoạch phát triển đội ngũ: Mô tả kỹ kinh nghiệm thành viên nhóm dự án phát triển Quy trình lập kế hoạch thực dự án - Thiết lập ràng buộc dự án: Thời gian, nhân lực, ngân sách - Đánh giá bước đầu “tham số” dự án: Quy mô, độ phức tạp, nguồn lực - Xác định mốc thời gian thực dự án sản phẩm thu ứng với mốc thời gian - Trong dự án chưa hoàn thành chưa bị hủy bỏ thực lặp lặp lại công việc sau: Lập lịch thực dự án Thực hoạt động theo lịch trình Theo dõi tiến triển dự án, so sánh với lịch trình Đánh giá lại tham số dự án Lập lại lịch thực dự án cho tham số Thỏa thuận lại ràng buộc sản phẩm bàn giao mốc thời gian Nếu có vấn đề nảy sinh xem xét lại kỹ thuật khởi đầu đưa biện pháp cần thiết Cấu trúc kế hoạch thực dự án Tổ chức dự án Phân tích rủi ro Yêu cầu tài nguyên phần cứng, phần mềm Phân công công việc Lập lịch dự án Cơ chế kiểm sốt báo cáo 7.2.7 Mục đích quản lý dự án Mục đích cuối việc quản lý dự án nhằm đảm bảo cho dự án thực thành công Một dự án đánh giá thành công đáp ứng vấn đề sau: Tài liệu giảng dạy môn: Công nghệ phần mềm 115 - Sản phẩm cuối dự án thực đáp ứng yêu cầu người dùng, đảm bảo thời gian kinh phí khơng vượt q 10-20% dự tính ban đầu; - Người dùng hài lịng với q trình thực dự án, thực tham dự góp phần cơng sức hoạt động dự án Đặc biệt dự án ứng dụng CNTT, vai trò cán nghiệp vụ việc xác định u cầu, phân tích quy trình, thơng tin đơn vị quan trọng; - Quản lý cấp dự án cung cấp đầy đủ thơng tin tình hình thực dự án; - Những người thực dự án phấn khởi, khơng bị q gị bó, tích luỹ kinh nghiệm, tăng thêm thu nhập 7.2.8 Phương pháp luận kỹ thuật quản lý dự án Tất vấn đề nêu cho thấy cần phải có thái độ nghiêm túc xây dựng thực dự án, dự án có đầu tư lớn Nhà nước Do vậy, việc quản lý dự án địi hỏi phải có phương pháp luận khoa học công cụ mạnh để hỗ trợ cho việc lập kế hoạch theo dõi dự án 7.2.9 Nguyên nhân khiến dự án thất bại Theo thống kê chung giới: 33% dự án bị huỷ bời - Vượt qua giới hạn thời gian kinh phí; - Cơng nghệ bị thay đổi nhiều so với hiệu mà dự án mang lại; - Người dùng khách hàng khơng cần tới nữa; - Những lý trị 50 - 100% tải - Một dự án mà chi phí vượt q 50% kinh phí cho phép; - Hoặc kéo dài 50% thời gian dự định coi thất bại Không sử dụng Nhiều dự án không đưa vào sử dụng Lý là: - Dự án không giải vấn đề đặt ra; - Q khó sử dụng; - Khơng có đào tạo Nguyên nhân sâu xa việc thất bại xuất phát: - Ngay từ bắt đầu dự án, thiếu kế hoạch tốt: Dự án khơng thể triển khai khơng xuất phát từ thực tế cụ thể Người ta bắt tay vào việc lập trình mà khơng hiểu rõ lại có dự án xác cần phải hồn thành gì; làm việc khơng có kế hoạch Nếu không đánh giá xem cần phải tốn bao Tài liệu giảng dạy môn: Công nghệ phần mềm 116 nhiêu cơng sức để làm việc đó, ta khơng thể hình dung số nhân cơng cần thiết, mà chi phí dự án Nếu không thống rõ ràng trước với người dùng họ yêu cầu dự án phải đạt được, sau khó khăn để người dùng chấp nhận kết dự án Tất cam kết phải ghi nhớ lại dạng văn Ngoài ra, việc đặt thời hạn kinh phí khơng sát thực tế thường khiến cho nhóm thực khơng thể hồn thành cơng việc - Trong bước phát triển tiếp: + Dự án mắc sai lầm giai đoạn phân tích thiết kế + Người quản lý dự án không phân công rõ nhiệm vụ người + Thiếu không hiểu rõ công cụ hỗ trợ cho việc phát triển hệ thống cho việc quản lý - theo dõi dự án, làm ảnh hưởng đến thời gian kết dự án + Không làm rõ lịch điều phối nhân thông báo trước cho đối tượng liên quan, khó khăn cần huy động nhân lực cần thiết để hồn thành cơng việc + Việc bắt đầu viết chương trình trước thiết kế hoàn thành khiến cho dự án khó mà thành cơng cách tốt đẹp, tốn thêm nhiều công sức điều chỉnh sau + Không kịp thời phát vấn đề nảy sinh trước sau giai đoạn phát triển Đó thiếu rà sốt chi tiết mặt kỹ thuật (thiết kế, chương trình, tài liệu ) xem xét lại mặt quản lý (đề cương, kinh phí, lịch trình ) cách khách quan từ bên ngồi + Sự thay đổi cơng tác thành viên tham gia dự án nguyên nhân phải xem xét + Thiếu chuẩn mực, qui định trình phát triển làm cho dự án bị thất bại mức độ + Nhiều người tham gia dự án chưa đẩy nhanh tốc độ mà có cịn làm cho dự án chậm phải thêm việc đào tạo, huấn luyện, thêm việc giao tiếp người tức thêm thời gian kinh phí - Trong giai đoạn kết thúc: + Khi đến thời hạn cuối cùng, hết kinh phí mà chuyện chưa xong, u cầu dự án thường bị thoả hiệp Người ta nghĩ phần (lớn) cơng việc hồn thành Thế nhưng, nhiều người dùng phải hồn tất tồn đáp ứng yêu cầu họ + Một số ứng dụng tạo khơng có rà lỗi cẩn thận Điều gây nên ấn tượng ban đầu khơng hay gây khó khăn cho việc đưa vào sử dụng Tài liệu giảng dạy môn: Công nghệ phần mềm 117 + Một số hệ thống đưa không đáp ứng tiêu kỹ thuật đề + Nếu chi phí cho việc bảo trì q lớn hệ thống bị ngừng hoạt động Trong nhiều trường hợp, thời điểm mà chứng minh khơng có ích lợi mà tiếp tục dự án nên mạnh dạng xem xét đến việc phải ngừng dự án lại 7.3 Các nhiệm vụ hoạt động QLDA 7.3.1 Quản lý thời gian dự án Đối với dự án phải xác định thời hạn tối đa phải hồn thành, cụ thể phải có thời điểm bắt đầu thời điểm kết thúc Thời điểm bắt đầu vấn đề giải đặt Thời điểm kết thúc hạn cuối mà dự án phải hoàn thành Thời điểm phải xác định rõ ràng, khơng dự án không kết thúc 7.3.2 Quản lý kinh phí dự án Mọi dự án phải xác định kinh phí tối đa, hay nói khác khoản tiền tối đa mà dự án sử dụng Mỗi dự án CNTT phải xác định tổng dự tốn kinh phí cho tồn q trình thực hiện, phân bổ theo năm giai thực 7.3.3 Quản lý nguồn nhân lực dự án Là tất người tham gia vào dự án Mỗi dự án phải xác định danh sách người tham gia, từ mức quản lý dự án đến người thực hiện, triển khai 7.3.4 Quản lý kết chuyển giao dự án Là kết dự án hay nói khác sản phẩm cuối dự án Mục tiêu dự án thông thường giải vấn đề việc tạo kết Các kết mục tiêu thiết phải viết rõ ràng, khơng mục đích dự án khơng đạt được; tạo kết sai khác khơng hài lịng 7.4 Phân loại dự án Dự án thực tế đa dạng, phân loại theo nhiều cách khác nhau: Dự án lớn: Được đặc trưng tổng kinh phí huy động lớn, số lượng bên tham gia đông, thời gian dàn trải, qui mơ rộng lớn Chúng địi hỏi phải thiết lập cấu trúc tổ chức riêng biệt, với mức phân cấp trách nhiệm khác nhau, đề quy chế hoạt động phương pháp kiểm tra chặt chẽ Dự án trung bình nhỏ: Khơng địi hỏi kinh phí nhiều, thời gian ấn định ngắn, không phức tạp Kinh nghiệm nước cho thấy dự án trung bình nhỏ dự án cỡ 15 người năm Tài liệu giảng dạy môn: Công nghệ phần mềm 118 Về lý thuyết, quản lý dự án lớn hay nhỏ theo phương pháp luận Dự án lớn gọi chương trình; chương trình thường phân thành nhiều dự án nhỏ Trong trường hợp tồn nhiều mức quản lý dự án khác nhau, để phân biệt gọi người quản lý tên khác người quản lý chương trình, người quản lý dự án, người điều hành dự án, giám đốc dự án, nhóm trưởng, Thậm chí, người tham gia vào dự án phải biết cách tổ chức quản lý cơng việc mà giao 7.5 Ước lượng Công việc người quản lý dự án ước lượng - ước lượng kích cỡ, chi phí, thời gian tiến hành dự án Việc thơng thường tiến hành cách phân rã phần mềm cần phát triển thành khối nhỏ áp dụng kinh nghiệm (các thơng số kích cỡ, chi phí, lực nhân viên ) phần mềm phát triển để ước lượng, đánh giá công việc Một mơ hình ước lượng hay dùng mơ hình COCOMO - Constructive Cost Model ước lượng chi phí từ số dịng lệnh Dùng mơ hình ta ước lượng thơng số sau: b - Nỗ lực phát triển E = aL - Thời gian phát triển T = cE d - Số người tham gia N = E /T Trong a, b, c, d tham số tùy thuộc vào loại dự án (xem bảng bên dưới) Điểm đáng ý từ nỗ lực phát triển suy thời gian số người tham gia vào dự án Bảng COCOMO - Các tham số sở Các bước tiến hành COCOMO sau: - Thiết lập kiểu dự án (organic: đơn giản, semi-detached: trung bình, embeded: phức tạp) - Xác lập module ước lượng dịng lệnh - Tính lại số dịng lệnh sở tái sử dụng - Tính nỗ lực phát triển E cho module - Tính lại E dựa độ khó dự án (mức độ tin cậy, kích cỡ CSDL, yêu cầu tốc Tài liệu giảng dạy môn: Công nghệ phần mềm 119 độ, nhớ, ) - Tính thời gian số người tham gia Cần nhớ đo phần mềm công việc khó khăn do: - Hầu hết thơng số không đo cách trực quan - Rất khó thẩm định thơng số - Khơng có mơ hình tổng qt - Các kỹ thuật đo cịn thay đổi Chúng ta khơng thể kiểm sốt q trình sản xuất phần mềm khơng ước lượng (đo) Một mơ hình ước lượng nghèo nàn khơng có mơ hình phải liên tục ước lượng lại dự án tiến triển 7.6 Quản lý nhân Chi phí (trả cơng) người phần chi phí xây dựng phần mềm Ngoài ra, lực người phát triển phần mềm lại biến thiên, kéo theo phức tạp tính tốn chi phí Phát triển phần mềm tiến hành theo nhóm Kích thước tốt nhóm từ đến ngưòi Phần mềm lớn thường xây dựng nhiều nhóm nhỏ Một nhóm phát triển gồm loại thành viên sau: - Người phát triển - Chuyên gia miền ứng dụng - Người thiết kế giao diện - Thủ thư phần mềm (quản lý cấu hình phần mềm) - Người kiểm thử Một nhóm phát triển cần có người quản lý, người có vai trị lãnh đạo mặt kỹ thuật Một đặc trưng làm việc theo nhóm trao đổi thông tin (giao tiếp) thành viên nhóm Thời gian dùng cho việc giao tiếp chiếm đến nửa tổng thời gian dành cho phát triển phần mềm Ngồi ra, thời gian khơng dùng cho phát triển sản phẩm chiếm phần lớn thời gian cịn lại người lập trình Một người đồng thời làm việc cho nhiều nhóm (dự án) phần mềm khác Điều làm cho việc tính tốn giá thành phần mềm phức tạp Cần ghi nhớ, sản xuất phần mềm thì: - Năng lực thành viên không đồng - Người tốt (nhất) sản xuất lần trung bình, người khơng cho kết Tài liệu giảng dạy môn: Công nghệ phần mềm 120 - Một số cơng việc q khó người Khơng nên tăng số thành viên cách vô ý thức, làm tăng phức tạp giao tiếp thành viên, khiến công việc nhiều chậm lại Một số việc (phức tạp, đăc thù) nên để người làm 7.7 Quản lý cấu hình Quản lý cấu hình phần mềm (cịn gọi quản lý mã nguồn) công việc quan trọng sản xuất phần mềm Mã nguồn (và liệu) sản phẩm dự án phần mềm Quản lý cấu hình tự động hóa thơng qua cơng cụ Nhiệm vụ cơng cụ quản lý là: - Lưu trữ mã nguồn - Tạo điểm truy cập (phiên thống nhất) cho người lập trình sửa đổi, thêm bớt mã nguồn Do dễ dàng: - Kiểm sốt tính thống mã nguồn - Kiểm sốt sửa đổi, lý sửa đổi, lý lịch lần sửa đổi - Dễ dàng lưu trữ truy cập tới phiên khác phần mềm - Tối ưu hóa vùng đĩa cần thiết cho lưu trữ Phương thức hoạt động công cụ là: - Quản lý tập chung (mã nguồn, tư liệu, công cụ phát triển ) - Các tệp tạo lần nhất, phiên sửa đổi ghi lại sai phân gốc - Sử dụng phương pháp CheckOut/CheckIn (CheckOut: thực lấy mã nguồn từ sở liệu để thao tác với file liệu /CheckIn: Thực để lưu lại thay đổi liệu đưa vào sở liệu), sửa đổi tệp Thông thường, người phát triển muốn sửa đổi mã nguồn thực thao tác CheckOut tệp Khi tệp bị CheckOut người phát triển khác mở tệp dạng đọc Khi kết thúc sửa đổi ghi tệp vào sở liệu, người sửa đổi tiến hành CheckIn để thông báo kết thúc cơng việc sửa đổi, đồng thời ghi lại thông tin liên quan (lý sửa đổi ) đến sửa đổi Dữ liệu lưu trữ dự án thông thường bao gồm: - Mã nguồn - Dữ liệu - Tư liệu Tài liệu giảng dạy môn: Công nghệ phần mềm 121 - Công cụ phát triển (chương trình dịch ), thường cần để đảm bảo tương thích với phiên cũ, để đảm bảo chương trình tạo lại (khi sửa lỗi ) phân phát cho khách hàng - Các ca kiểm thử Một số công cụ quản lý cấu hình phổ biến RCS, CVS HĐH Solaris SourceSafe Microsoft 7.8 Quản lý rủi ro Quản lý rủi ro công việc đặc biệt quan trọng khó khăn phát triển phần mềm Có nguyên nhân (rủi ro) sau dẫn đến chấm dứt dự án: - Chi phí phát triển cao - Quá chậm so với lịch biểu - Tính so với yêu cầu Quản lý rủi ro bao gồm cơng việc sau: - Dự đốn rủi ro - Đánh giá khả xảy thiệt hại - Tìm giải pháp khắc phục Dưới rủi ro thường xảy phát triển phần mềm phương pháp khắc phục chúng: • Thiếu người phát triển: Sử dụng người tốt nhất; xây dựng nhóm làm việc; đào tạo người • Kế hoạch, dự tốn khơng sát thực tế: Ước lượng phương pháp khác nhau; lọc, loại bỏ yêu cầu khơng quan trọng • Phát triển sai chức năng: Chọn phương pháp phân tích tốt hơn; phân tích tính tổ chức/mơ hình nghiệp vụ khách hàng • Phát triển sai giao diện: Phân tích thao tác người dùng; tạo kịch cách dùng; tạo mẫu • Yêu cầu cao: Lọc bớt yêu cầu; phân tích chi phí/lợi ích • Thay đổi u cầu liên tục: Áp dụng thiết kế che dấu thông tin; phát triển theo mơ hình tiến hóa Kết chương Như vậy, nghiên cứu qua chương hình dung được: Quản lý dự án phần mềm tập hợp công việc thực tập thể (có thể có chun mơn khác nhau, thực cơng việc khác nhau, thời gian tham gia dự án khác nhau) nhằm đạt kết dự kiến, thời gian dự kiến, với kinh phí dự kiến Quản lý dự Tài liệu giảng dạy môn: Công nghệ phần mềm 122 án phần mềm hoạt động lập kế hoạch, giám sát điều khiển tài nguyên dự án (ví dụ kinh phí, người), thời gian thực hiện, rủi ro quy trình thực dự án nhằm đảm bảo thành công cho dự án Quản lý dự án phần mềm cần đảm bảo cân ba yếu tố: thời gian, tài nguyên chất lượng Ba yếu tố gọi tam giác dự án  Câu hỏi (bài tập) củng cố: Thế QLDA CNTT; Bộ ba ràng buộc dự án gì? Để đảm bảo ba theo anh chị phải làm nào? Có lọai dự án? Nguyên nhân dẫn đến dự án thất bại? Là nhà QLDA anh chị đưa biện pháp nhằm khắc phục nguyên nhân Bài tập thực hành Áp dụng kiến thức môn học để xây dựng phần mềm theo yêu câu sau theo quy trình phần mềm: Quản lý trung tâm giới thiệu việc làm sinh viên Lưu trữ: Các thông tin - Sinh viên đăng ký tìm việc: Họ tên, ngày sinh, địa chỉ, tình hình sức khỏe, trình học tập cấp, cơng việc đảm nhận, yêu cầu tìm việc - Đơn vị đăng ký tìm người: Tên, địa chỉ, người đại diện, công việc yêu cầu tuyển dụng - Giới thiệu việc làm: Sinh viên, đơn vị, công việc, tình trạng Tra cứu: Sinh viên tra cứu cơng việc - Loại cơng việc - Mức lương - Hình thức làm việc - Nơi làm việc Đơn vị tuyển dụng tra cứu sinh viên - Bằng cấp chuyên mơn - Sức khỏe - Phương tiện làm việc Tính tốn: - Các cơng việc thích hợp cho sinh viên đăng ký làm việc - Các sinh viên thích hợp cho công việc cần tuyển dụng đơn vị Kết xuất: Tài liệu giảng dạy môn: Công nghệ phần mềm 123 - Danh sách sinh viên đăng ký theo công việc - Danh sách số lượng sinh viên đăng ký theo loại công việc - Danh sách đơn vị tuyển dụng theo công việc - Danh sách số lượng đơn vị tuyển dụng theo cơng việc - Thống kê tình hình giới thiệu việc làm thực năm Thi trắc nghiệm máy tính Lưu trữ: Các thơng tin - Thí sinh dự thi: Họ tên, môn thi, ngày thi, địa chỉ, đề thi, làm, phòng thi - Câu hỏi trắc nghiệm: Nội dung câu hỏi, cầu trả lời có, đáp án, mức độ khó, thang điểm, mơn tương ứng Tính tốn: - Phát sinh đề thi tương đương cho đề thi chọn cho mơn thi (đề thi tương có câu hỏi trắc nghiệm có số thứ tự khác trật tự câu trả lời khác nhau) - Tính điểm thi cho thí sinh: Tổng điểm câu hỏi với thang điểm tương ứng Kết xuất: - Danh sách thí sinh theo phòng thi - Đề thi - Bài làm thí sinh với điểm số - Danh sách kết thi môn thi - Thống kê kết thi theo mức theo môn thi - Thống kê kết thi theo câu hỏi Quản lý học sinh trường phổ thông trung học Lưu trữ: Các thông tin - Học sinh: Họ, tên, lớp, ngày sinh, giới tính, địa chỉ, thành phần, kết học tập, điểm danh Tra cứu: Thông tin học sinh Tính tốn: - Điểm trung bình mơn học theo học kỳ: Tính theo điểm hình thức kiểm tra (15 phút: hệ số 1, tiết hệ số 2, thi học kỳ: hệ số 3) - Điểm trung bình học kỳ 1, học kỳ 2, năm (học kỳ hệ số 1, học kỳ hệ số 2) - Xếp loại: Xuất sắc điểm trung bình năm ≥ 9.0 khơng có mơn có điểm trung bình 7.5 Tiên tiến điểm trung bình năm ≥ 7.5 khơng có mơn có điểm Tài liệu giảng dạy mơn: Cơng nghệ phần mềm 124 trung bình 6.0 Đạt yêu cầu điểm trung bình năm ≥ khơng có mơn có điểm trung bình Khơng đạt u cầu có môn Kết xuất: - Danh sách học sinh theo lớp - Phiếu điểm cho học sinh - Bảng điểm môn bảng điểm tổng kết cho lớp - Thống kê xếp lọai học sinh tòan trường niên khóa Quản lý thuê bao điện thoại Lưu trữ: Các thông tin - Các hợp đồng thuê bao điện thoại (Khách hàng, loại thuê bao, máy điện thoại) - Các gọi (Máy điện thoại, Ngày, Giờ, Thời gian, Nơi gọi đến) Tính tốn: - Số tiền phải trả máy điện thoại tháng: • Tiền thuê bao hàng tháng (phụ thuộc vào loại thuê bao với định mức riêng) • Tiền cước phí trả thêm (hụ thuộc vào thời gian gọi, số phút gọi, nơi gọi đến) - Tính cơng nợ khách hàng khách hàng chưa toán tiền điện thoại Kết xuất: - Hóa đơn tính tiền điện thoại cho khách hàng tháng - Danh sách khách hàng chưa toán tiền điện thoại - Thống kê nơi gọi đến, thời điểm gọi theo khu vực tháng Quản lý tài khoản ngân hàng Lưu trữ: - Các tài khoản: Khách hàng, lọai tài khỏan, số tiền, lọai tiền, ngày gởi, tình trạng - Quá trình gửi rút tài khỏan: Khách hàng, ngày số tiền, hình thức - Các qui định lãi suất tỷ giá Tra cứu: Tài khoản theo tiêu chuẩn - Mã số - Khách hàng - Loại tài khoản - Ngày mở, ngày đóng Tính tốn: Tài liệu giảng dạy mơn: Cơng nghệ phần mềm 125 - Lãi suất cho tài khoản đến kỳ hạn hay khách hàng rút trước kỳ hạn (chỉ không kỳ hạn) Kết xuất: - Danh sách biến động tài khoản - Danh sách tài khoản số dư theo loại tài khoản - Tình hình gửi, rút tiền theo loại tài khoản - Số dư ngân hàng theo ngày tháng Phần mềm quản lý giải vơ địch bóng đá Lưu trữ: Các thơng tin - Các đội bóng tham gia giải: Tên đội bóng, tên huấn luyện viên, cầu thủ, sân nhà - Lịch thi đấu: đội tham dự, sân, thời gian - Kết trận đấu: Trọng tài, tỷ số, khán giả, cầu thủ sân đội vị trí tương ứng, việc ghi bàn, phạt thẻ Tra cứu: Cầu thủ, đội bóng Tính tốn: - Tính điểm cho đội: trận thắng điểm, trận hòa điểm, trận thua điểm - Xếp hạng cho đội: Dựa vào tiêu chuẩn: tổng số điểm, tổng số bàn thắng, hiệu số, đối kháng trực tiếp, bốc thăm Kết xuất: - Danh sách cầu thủ theo đội, vị trí - Lịch thi đấu - Bảng xếp hạng đội bóng - Tổng kết việc ghi bàn giải - Tình hình phạt thẻ đội bóng Bài tập lớn (đồ án môn học) Học viên chọn đề tài gợi ý sau để thực (hoặc học viên tự đề xuất đề tài): Phần mềm quản lý thư viện Quản lý đồ án – Niên luận Đăng ký môn học học phí Quản lý cơng tác thực hành tin học Quản lý lương sản phẩm Quản lý sở sản xuất chất lượng sản phẩm Tài liệu giảng dạy môn: Công nghệ phần mềm 126 Yêu cầu chung 2.1 Phân tích trạng yêu cầu Hiện trạng - Giới thiệu giới thực liên quan - Mơ tả qui trình cơng việc liên quan đến đề tài - Mô tả mẫu biểu có liên quan - Mơ tả qui định ràng buộc có liên quan - Mơ tả qui định cơng thức tính có liên quan u cầu Danh sách công việc hỗ trợ thực máy tính (dựa theo tóm tắt u cầu thu thập được) 2.2 Mơ hình hóa u cầu Mơ hình luồng liệu theo u cầu - Sơ đồ luồng liệu cho yêu cầu - Mô tả chi tiết cho sơ đồ - Sơ đồ luồng liệu chung cho toàn hệ thống 2.3 Thiết kế phần mềm Thiết kế liệu + Sơ đồ logic + Mơ hình quan hệ thực thể + Danh sách thành phần sơ đồ Stt Tên Loại Ý nghĩa Ghi + Danh sách thuộc tính thành phần Tên thành phần: Stt Tên Loại Kiểu Miền giá trị Ý nghĩa Khóa Khóa phụ Thiết kế giao diện Stt Mã số Loại Ý nghĩa Ghi + Mô tả chi tiết hình - Nội dung Tài liệu giảng dạy môn: Công nghệ phần mềm 127 - Danh sách biến cố xử lý tương ứng hình Biến cố Stt Ý nghĩa Xứ lý tương ứng Mã số xử lý Thiết kế xử lý + Danh sách xử lý (Các xử lý quan trọng) Mã số Stt Loại Ý nghĩa Ghi 2.4 Cài đặt thử nghiệm Cài đặt + Danh sách tình trạng cài đặt chức (mức độ hoàn thành) Chức Stt Mức độ hoàn thành Ý nghĩa Thử nghiệm + Nội dung bảng liệu + Một số test-case chạy thử nghiệm + Các báo biểu hình số liệu tương ứng 2.5 Hướng dẫn sử dụng hệ thống 2.6 Tổng kết + Các kết thực + Đánh giá ưu khuyết điểm + Hướng mở rộng tương lai Tài liệu giảng dạy môn: Công nghệ phần mềm 128 Tài liệu tham khảo  Tài liệu tham khảo để biên soạn nội dung môn học [1] Kent Beck, Extreme Programming Explained, Addison-Wasley, 2000 [2] Bruce Eckel, Thinking in Java, 3rd ed., 2002 [3] Mike Gancarz, The Unix Philosophy, Digital Press, 1994 [4] Roger S Pressman (dịch: Ngô Trung Việt), Kỹ nghệ phần mềm, Tập I, II, III, NXB Giáo dục, 1997 [5] Walker Royce, Software Project Management - A Unified Framework, Addison-Wesley, 1998 [6] Stephen R Schach, Classical and Object-Oriented Software Engineering with UML and C++, 4th ed., McGraw-Hill, 1999 [7] Ian Sommerville, Software Engineering, 6th ed., Addison-Wasley, 2001 [8] Đỗ Văn Nhơn, Nguyễn Thị Thanh Trúc, Nguyễn Trác Thức, Giáo trình nhập mơn cơng nghệ phần mềm, NXB Đại học Quốc gia Tp Hồ Chí Minh, NXB 2007 [9] Nguyễn Quốc Toản, Bài giảng Nhập mơn Cơng trình học phần mềm, Khoa Cơng nghệ, 1999 [10] Lê Đức Trung, Công nghệ phần mềm, NXB Khoa học Kỹ thuật, 2001 [11] Ngô Trung Việt, Nguyễn Kim Ánh (biên soạn), Nhập môn Công nghệ phần mềm, NXB Khoa học kỹ thuật, 2003 [12] Nguyễn Văn Vỵ, Phân tích thiết kế hệ thống thơng tin đại, NXB Thống kê, 2002  Tài liệu tham khảo đề nghị cho học viên: [1] Đỗ Văn Nhơn, Nguyễn Thị Thanh Trúc, Nguyễn Trác Thức, Giáo trình nhập môn công nghệ phần mềm, NXB Đại học Quốc gia Tp Hồ Chí Minh, 2007 [2] Ngơ Trung Việt, Nguyễn Kim Ánh (biên soạn), Nhập môn Công nghệ phần mềm, NXB Khoa học kỹ thuật, 2003 Tài liệu giảng dạy môn: Công nghệ phần mềm 129 ... 122 Tài liệu giảng dạy môn: Công nghệ phần mềm v Chương PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM  Mục tiêu học tập: Sau học xong chương người có thể: - Trình bày tổng quan phần mềm công nghệ phần mềm -. .. hoảng phần mềm? ?? Cuộc khủng hoảng phần mềm Tài liệu giảng dạy môn: Công nghệ phần mềm thể yếu tố chính: - Số lượng phần mềm tăng vọt (do phát triển phần cứng: tăng khả năng, giá thành hạ) - Có nhiều... logic - Các phần mềm: WinA&D, Analyst Pro,… Tài liệu giảng dạy môn: Công nghệ phần mềm 23 1.6.3 Phần mềm hỗ trợ thiết kế - Công việc hỗ trợ • Soạn thảo mơ hình logic; • Ánh xạ vào mơ hình vật lý -

Ngày đăng: 12/08/2021, 15:43

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN