1. Trang chủ
  2. » Tất cả

Tài liệu giảng dạy môn công nghệ phần mềm nguyễn khắc quốc

20 0 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

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 lưu trữ lại qua thành phần lịêu Một cách tổng quát, thành phần xử lý hệ thống hàm chun xử lý tính tốn, biến đổi liệu Các hàm dùng liệu nguồn từ hàm thành phần giao diện (hàm nhập) hay thành phần liệu (hàm đọc liệu) kiểm tra tính hợp lệ (hàm kiểm tra) sau tiến hành xử lý (hàm xử lý) cần thiết kết mà trình bày cho người dùng xem qua hàm thành phần giao diện (hàm xuất) lưu trữ lại qua hàm thành phần liệu (hàm ghi) 1.1.5 Quá trình tạo phần mềm a Về mặt thiết kế Tùy theo mức độ phức tạp phần mềm, người thiết kế phần mềm nhiều dùng đến phương tiện để tạo mẫu thiết kế theo ý muốn (chẳng hạn sơ đồ khối, lưu đồ, thuật tốn mã giả), sau mẫu mã hố ngơn ngữ lập trình trình dịch chuyển thành khối lệnh (module) hay/và tệp khả thi Tập hợp tệp khả thi khối lệnh tạo thành phần mềm Thường phần mềm tạo thành, hồn hảo phần mềm phải điều chỉnh hay sửa chữa từ khâu thiết kế khâu tạo thành phiên phần mềm số lần Một phần mềm thơng thường tương thích với hay vài hệ điều hành, tùy theo cách thiết kế, cách viết mã nguồn ngơn ngữ lập trình dùng b Sản xuất phát triển Việc phát triển đưa thị trường phần mềm đối tượng nghiên cứu môn kỹ nghệ phần mềm hay cịn gọi cơng nghệ phần mềm (Software Engineering) Bộ môn nghiên cứu phương pháp tổ chức, cách thức sử dụng nguồn tài nguyên, qui trình sản xuất, với mối liên hệ với thị trường, liên hệ yếu tố với Tối ưu hố qui trình sản xuất phần mềm đối tượng ưu tiên xem xét môn 1.2 Công nghệ phần mềm 1.2.1 Lịch sử đời Vào năm 1950, máy tính đời thức (khơng dùng phịng thí nghiệm mà bắt đầu ứng dụng họat động xã hội) phần mềm đời với số lượng cịn chủ yếu phục vụ cho lĩnh vực tính tốn (đặc biệt quốc phòng) Đến năm 1960, trãi qua 10 năm phát triển số lượng phần mềm tăng lên nhiều ứng dụng rộng rãi nhiều lĩnh vực Vào thời điểm phát sinh vấn đề mà chuyên gia gọi “cuộc khủng 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 hạn chế phần mềm dùng xã hội + Thực khơng u cầu (tính tốn sai, khơng ổn định…) + Thời gian bảo trì, nâng cấp lâu, tốn chi phí cao, hiệu thấp + Khó sử dụng + Thực chậm + Khó chuyển đổi liệu phần mềm… - Việc tăng vọt số lượng phần mềm điều hợp lý điều tiếp diễn - Các hạn chế phần mềm có nguồn gốc từ phương pháp, cách thức tiến hành xây dựng phần mềm: + Cảm tính: Mỗi người theo phương pháp riêng + Thô sơ, đơn giản: Chỉ tập trung vào việc lập trình mà quan tâm đến cơng việc cần làm khác trước lập trình (khảo sát trạng, phân tích u cầu, thiết kế…) + Thủ cơng: Cơng cụ hỗ trợ xây dựng phần mềm trình biên dịch Với kết luận trên, hội nghị đề xuất khai sinh ngành khoa học Cơng nghệ phần mềm với nhiệm vụ nghiên cứu phương pháp tiến hành xây dựng phần mềm 1.2.2 Định nghĩa Công nghệ phần mềm lĩnh vực nghiên cứu tin học nhằm đề xuất nguyên lý, phương pháp, công cụ, cách tiếp cận phục vụ cho việc thiết kế, cài đặt sản phấm phần mềm đạt đầy đủ yêu cầu chất lượng phần mềm Do trình tiến hóa ngành cơng nghệ phần mềm nên khái niệm thay đổi theo thời gian Hơn lĩnh vực nên phụ thuộc nhiều vào quan điểm chủ quan người khác nhau: - Bauer (1969) Việc thiết lập sử dụng nguyên lý công nghệ đắn để thu phần mềm cách kinh tế vừa tin cậy vừa hiệu máy thực - Ghezzi (1991) Là lĩnh vực khoa học máy tính liên quan đến việc xây dựng phần mềm vừa lớn vừa phức tạp hay nhóm kỹ sư - IEEE (1993) Việc áp dụng phương pháp tiếp cận có hệ thống, lượng hóa phát triển, vận hành bảo trì phần mềm - Sommervile (1995) Là lĩnh vực liên quan đến lý thuyết, phương pháp công cụ dùng cho phát triển phần mềm Tài liệu giảng dạy môn: Công nghệ phần mềm - Pressman (1995) Là mơn tích hợp qui trình, phương pháp, cơng cụ để phát triển phần mềm máy tính Có thể định nghĩa tóm tắt cơng nghệ phần mềm sau: “cơng nghệ phần mềm ngành khoa học nghiên cứu việc xây dựng phần mềm có chất lượng khoảng thời gian chi phí hợp lý” 1.2.3 Mục tiêu nghiên cứu Mục tiêu nghiên cứu Công nghệ phần mềm tìm phương pháp, cơng cụ nhằm xây dựng phần mềm có chất lượng, thời gian chi phí hợp lý Cơng nghệ phần mềm trình gồm loạt bước chứa đựng yếu tố chủ chốt: - Phương pháp - Công cụ - Thủ tục Các yếu tố giúp người quản lý kiểm sốt tiến trình phát triển phần mềm, cung cấp cho người kỹ sư phần mềm tảng để xây dựng phần mềm chất lượng cao theo cách thức hiệu quả, giới hạn định a Các phương pháp Chỉ cách làm mặt kỹ thuật để xây dựng phần mềm, sử dụng bước: Lập kế hoạch, ước lượng dự án, phân tích yêu cầu hệ thống phần mềm, thiết kế cấu trúc liệu, kiến trúc chương trình thủ tục thuật tốn, mã hóa, kiểm thử bảo trì… Các phương pháp cho cơng nghệ phần mềm thường dùng ký pháp đồ họa hay hướng ngôn ngữ đặc biệt, cách thức thực tập tiêu chuẩn chất lượng sản phẩm phần mềm b Các công cụ Cung cấp hỗ trợ tự động hay bán tự động để phát triển phần mềm theo phương pháp khác Khi cơng cụ tích hợp đến mức thơng tin chúng tạo dùng cho cơng cụ khác hệ thống hỗ trợ phát triển phần mềm thiết lập gọi cơng nghệ phần mềm có máy tính hỗ trợ (CASE - Computer Aided Software Engineering) c Các thủ tục Các thủ tục kết nối phương pháp công cụ lại với làm cho chúng sử dụng hợp lý hạn trình phát triển phần mềm Các thủ tục bao gồm: - Xác định trình tự phương pháp áp dụng cho dự án - Tạo sản phẩm cần bàn giao (tài liệu báo cáo, mẫu, ) cần cho việc kiểm soát để Tài liệu giảng dạy môn: Công nghệ phần mềm đảm bảo chất lượng điều hòa thay đổi - Xác định cột mốc mà thời điểm có sản phẩm định bàn giao người quản lý phần mềm nắm tiến độ kiểm soát kết 1.2.4 Đối tượng nghiên cứu Hướng đến việc xây dựng phần mềm có chất lượng nêu, ngành công nghệ phần mềm đưa đối tượng nghiên cứu chính: Qui trình cơng nghệ, Phương pháp phát triển, Công cụ môi trường phát triển phần mềm - Qui trình cơng nghệ phần mềm: Hệ thống giai đoạn mà trình phát triển phần mềm phải trải qua Với giai đoạn cần xác định rõ mục tiêu, kết nhận từ giai đoạn trước kết chuyển giao cho giai đoạn - Phương pháp phát triển phần mềm: Hệ thống hướng dẫn cho phép bước thực giai đoạn qui trình cơng nghệ phần mềm - Cơng cụ môi trường phát triển phần mềm: Hệ thống phần mềm trợ giúp lĩnh vực xây dựng phần mềm Các phần mềm hỗ trợ kỹ sư tin học bước xây dựng phần mềm theo phương pháp với qui trình chọn trước 1.3 Qui trình phát triển phần mềm Để xây dựng phần mềm có chất lượng trình phát triển phải trãi qua nhiều giai đoạn Mỗi giai đoạn có mục tiêu kết chuyển giao xác định Trình tự thực giai đoạn chu kỳ sống phần mềm Nói cách khác, chu kỳ sống phần mềm khoảng thời gian mà sản phẩm phần mềm phát triển, sử dụng mở rộng sản phẩm phần mềm khơng cịn sử dụng Chu kỳ sống phần mềm phân chia phân chia thành pha như: Xác định, phát triển, kiểm thử, bảo trì (vận hành) Phạm vi thứ tự pha khác tùy theo mơ hình cụ thể Có nhiều mơ hình tiếp cận khác để triển khai bước trình phát triển phần mềm Mỗi mơ hình chia vịng đời phần mềm theo cách khác nhằm đảm bảo qui trình phát triển phần mềm dẫn đến thành công Sau đây, xem xét số cách tiếp cận (cịn gọi mơ hình hay khn cảnh) tiến 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) Vào năm 1970 báo mình, Royce mô tả dạng khái niệm mà ngày cơng nhận với tên gọi “mơ hình thác nước” Mơ hình thác nước mơ hình phổ biến áp dụng trình phát triển phần mềm Mơ hình Tài liệu giảng dạy môn: Công nghệ phần mềm chia trình phát triển phần mềm thành giai đoạn nối tiếp Qui trình phát triển giống dòng chảy, với pha thực theo trật tự nghiêm ngặt Mỗi giai đoạn có mục đích định Kết cuả giai đoạn trước thông tin đầu vào cho giai đoạn Tùy theo qui mô phần mềm cần phát triển mà mơ hình thác nước có biến thể khác sau: * Qui trình giai đoạn: Là qui trình đơn giản Theo qui trình việc phát triển phần mềm trãi qua giai đoạn: i) Xác định yêu cầu: Được tiến hành có yêu cầu việc xây dựng phần mềm + Mục tiêu: Xác định xác yêu cầu đặt cho phần mềm xây dựng + Kết nhận: Thông tin hoạt động giới thực + Kết chuyển giao: Danh sách yêu cầu (công việc thực máy tính) với thơng tin miêu tả chi tiết yêu cầu (cách thức thực giới thực) ii) Lập trình (cài đặt): Được tiến hành sau kết thúc việc xác định yêu cầu + Mục tiêu: Tạo lập phần mềm mong muốn theo yêu cầu + Kết nhận: Danh sách yêu cầu thơng tin có liên quan + Kết chuyển giao: Chương trình nguồn phần mềm với cấu trúc sở liệu tương ứng (nếu cần thiết) chương trình thực máy tính (chương trình nguồn biên dịch) * Qui trình giai đoạn: Là qui trình cải tiến qui trình giai đoạn cách bổ sung thêm giai đoạn trung gian xác định yêu cầu lập trình (có sửa đổi) i) Xác định u cầu: Được tiến hành có yêu cầu việc xây dựng phần mềm + Mục tiêu: Xác định xác yêu cầu đặt cho phần mềm xây dựng + Kết nhận: Thông tin hoạt động giới thực + Kết chuyển giao: Danh sách yêu cầu (công việc thực máy tính) với thơng tin miêu tả chi tiết yêu cầu (cách thức thực giới thực) ii) Thiết kế: Được tiến hành sau kết thúc việc xác định yêu cầu + Mục tiêu: Mô tả thành phần phần mềm (mơ hình phần mềm) trước tiến hành cài đặt + Kết nhận: Danh sách yêu cầu thông tin liên quan + Kết chuyển giao: ƒ Mô tả thành phần giao diện: Các hàm nhập/xuất, cấu trúc liệu nhập/xuất ƒ Mô tả thành phần xử lý: Các hàm kiểm tra xử lý ƒ Mô tả thành phần liệu: Các hàm đọc/ ghi, tổ chức lưu trữ nhớ phụ Tài liệu giảng dạy môn: Công nghệ phần mềm iii) Lập trình (cài đặt): Được tiến hành sau kết thúc việc thiết kế + Mục tiêu: Tạo lập phần mềm theo yêu cầu + Kết nhận: Mô hình phần mềm + Kết chuyển giao: Chương trình nguồn phần mềm với cấu trúc sở liệu tương ứng (nếu cần thiết) chương trình thực máy tính (chương trình nguồn biên dịch) * Qui trình giai đoạn: Là qui trình cải tiến qui trình phía trước cách bổ sung thêm giai đoạn xác định yêu cầu thiết kế (có sửa đổi) i) Xác định yêu cầu: Được tiến hành có yêu cầu việc xây dựng phần mềm + Mục tiêu: Xác định xác yêu cầu đặt cho phần mềm xây dựng + Kết nhận: Thông tin hoạt động giới thực + Kết chuyển giao: Danh sách yêu cầu (công việc thực máy tính) với thơng tin miêu tả chi tiết yêu cầu (cách thức thực giới thực) ii) Phân tích: Được tiến hành sau kết thúc việc xác định yêu cầu + Mục tiêu: Mô tả lại giới thực thơng qua mơ hình (mơ hình giới thực) trước thiết kế + Kết nhận: Danh sách u cầu thơng tin có liên quan + Kết chuyển giao: Mơ hình xử lý (hệ thống công việc giới thực với quan hệ chúng) Mơ hình liệu (hệ thống loại thông tin sử dụng giới thực với quan hệ chúng) Các mơ hình khác (khơng gian, thời gian, người…) cần thiết iii) Thiết kế: Được tiến hành sau kết thúc việc phân tích + Mục tiêu: Mơ tả thành phần phần mềm (mơ hình phần mềm) trước tiến hành cài đặt + Kết nhận: Mơ hình giới thực + Kết chuyển giao: Mô tả thành phần giao diện: Các hàm nhập/xuất, cấu trúc liệu nhập/xuất Mô tả thành phần xử lý: Các hàm kiểm tra xử lý Mô tả thành phần liệu: Các hàm đọc/ghi, tổ chức lưu trữ nhớ phụ iv) Lập trình (cài đặt): Được tiến hành sau kết thúc việc thiết kế + Mục tiêu: Tạo lập phần mềm theo yêu cầu + Kết nhận: Mơ hình phần mềm Tài liệu giảng dạy môn: Công nghệ phần mềm + Kết chuyển giao: Chương trình nguồn phần mềm với cấu trúc sở liệu tương ứng (nếu cần thiết) chương trình thực máy tính (chương trình nguồn biên dịch) * Qui trình giai đoạn: Qui trình gộp giai đoạn xác định phân tích thành giai đoạn Cải tiến lại qui trình phía trước cách bổ sung thêm giai đoạn sau giai đoạn lập trình nhằm tăng cường độ tin cậy phần mềm i) Xác định yêu cầu: Được tiến hành có nhu cầu việc xây dựng phần mềm + Mục tiêu: Xác định xác yêu cầu đặt cho phần mềm xây dựng + Kết nhận: Thông tin hoạt động giới thực + Kết chuyển giao: Danh sách yêu cầu (công việc thực máy tính) với thông tin miêu tả chi tiết yêu cầu (cách thức thực giới thực) ii) Phân tích: Được tiến hành sau kết thúc việc xác định yêu cầu + Mục tiêu: Mô tả lại giới thực thơng qua mơ hình (mơ hình giới thực) trước thiết kế + Kết nhận: Danh sách yêu cầu thông tin có liên quan + Kết chuyển giao: Mơ hình xử lý (hệ thống công việc giới thực với quan hệ chúng) Mơ hình liệu (hệ thống loại thông tin sử dụng giới thực với quan hệ chúng) Các mơ hình khác (khơng gian, thời gian, người…) cần thiết iii) Thiết kế: Được tiến hành sau kết thúc việc phân tích + Mục tiêu: Mơ tả thành phần phần mềm (mơ hình phần mềm) trước tiến hành cài đặt + Kết nhận: Mơ hình giới thực + Kết chuyển giao: Mô tả thành phần giao diện: Các hàm nhập/xuất, cấu trúc liệu nhập/xuất Mô tả thành phần xử lý: Các hàm kiểm tra xử lý Mô tả thành phần liệu: Các hàm đọc/ ghi, tổ chức lưu trữ nhớ phụ iv)Lập trình (cài đặt): Được tiến hành sau kết thúc việc thiết kế + Mục tiêu: Tạo lập phần mềm theo u cầu + Kết nhận: Mơ hình phần mềm + Kết chuyển giao: Chương trình nguồn phần mềm với cấu trúc sở liệu tương ứng (nếu cần thiết) chương trình thực máy tính (chương trình nguồn Tài liệu giảng dạy mơn: Công nghệ phần mềm 10 biên dịch) v)Kiểm thử: Được tiến hành sau có kết (từng phần) việc lập trình + Mục tiêu: Tăng độ tin cậy phần mềm + Kết nhận: Danh sách u cầu Mơ hình phần mềm ƒ Phần mềm + Kết chuyển giao: Phần mềm với độ tin cậy cao (đã tìm sửa lỗi) vi) Bảo trì phát triển: Cơng việc giai đoạn bao gồm việc cài đặt vận hành phần mềm thực tế + Mục tiêu: Đảm bảo phần mềm vận hành tốt + Kết nhận: Phần mềm hoàn thành + Kết chuyển giao: Các phản ánh khách hàng trình sử dụng phần mềm Phân tích Thiết kế Mã hóa Kiểm thử Bảo trì phát triển Hình 1.1: Mơ hình thác nước (vịng đời cổ điển) * Nhận xét: Mơ hình thác nước giúp dễ dàng phân chia trình xây dựng phần mềm thành giai đoạn hồn toàn độc lập Tuy nhiên, dự án lớn tn theo dịng chảy mơ hình thường phải lặp lại bước để nâng cao chất lượng Hơn nữa, khách hàng phát biểu hết yêu cầu giai đoạn phân tích Mơ hình có hạn chế khó thực thay đổi thực xong giại đoạn Điều làm cho việc xây dựng phần mềm khó thay đổi yêu cầu theo ý muốn khách hàng Do đó, phương pháp thích hợp cho trường hợp mà hiểu rõ yêu cầu khách hàng Tài liệu giảng dạy mơn: Cơng nghệ phần mềm 11 Chú ý: Mơ hình thác nước cải tiến cách cho phép quay lui phát lỗi giai đoạn phía trước Tuy nhiên, đến giai đoạn cuối mà phát lỗi xuất phát từ giai đoạn đầu chi phí thời gian khắc phục, sửa đổi tốn Chính vậy, cần thực xác, đầy đủ từ giai đoạn đầu 1.3.2 Mơ hình làm mẫu (Prototype) Cách tiếp cận làm mẫu cách tiếp cận tốt khi: - Mục tiêu tổng quát cho phần mềm xác định, chưa xác định rõ đầu vào (Input) đầu (Output) - Người phát triển chưa chắn hiệu thuật tốn, tính thích nghi với hệ điều hành hay giao diện người - máy cần có Khi có mẫu, người phát triển dùng chương trình có hay công cụ phần mềm trợ giúp để sinh chương trình làm việc Làm mẫu tạo mơ hình cho phần mềm cần xây dựng Mơ hình có dạng: Bản mẫu giấy hay máy tính, mơ tả giao diện người-máy nhằm mục đích làm cho người dùng hiểu cách tương tác xuất Bản mẫu cài đặt tập chức phần mềm mong đợi Bản mẫu chương trình thực phần hay tất chức mong muốn mức sơ lược cần cải tiến thêm tính khác tùy theo khả phát triển Trước hết người phát triển khách hàng gặp xác định mục tiêu tổng thể cho phần mềm, xác định yêu cầu biết, miền cần khảo sát thêm Tiếp theo giai đoạn thiết kế nhanh, tập trung vào việc biểu diễn khía cạnh phần mềm thấy người dùng (input output), xây dựng mẫu Người dùng đánh giá làm mịn yêu cầu cho phần mềm Tiến trình lặp lặp lại mẫu thoả mãn yêu cầu khách hàng, đồng thời giúp người phát triển hiểu kỹ nhu cầu cần phải thực (hình 1.2) Một biến thể mơ hình mơ hình thăm dị, yêu cầu cập nhật liên tục mẫu tiến hóa liên tục để trở thành sản phẩm cuối Mơ hình làm mẫu có số vấn đề như: • Do hồn thiện dần (tiến hóa) mẫu, phần mềm nhiều có tính cấu trúc khơng cao, dẫn đến khó kiểm sốt, khó bảo trì • Khách hàng nhiều thất vọng với việc phát triển phần mềm họ nhầm tưởng mẫu sản phẩm cuối hướng tới người sử dụng Khách hàng khơng dành Tài liệu giảng dạy môn: Công nghệ phần mềm 12 nhiều thời gian công sức vào việc đánh giá mẫu Kết thúc Bắt đầu Sản phẩm Tổng hợp cuối yêu cầu Thiết kế Làm mịn nhanh yêu cầu Đánh giá khách hàng Xây dựng mẫu Hình 1.2: Mơ hình làm mẫu 1.3.3 Mơ hình xoắn ốc Mơ hình xoắn ốc Boehm đưa năm 1988 Mơ hình đưa thêm vào việc phân tích yếu tố rủi ro Q trình phát triển chia thành nhiều bước lặp lại, bước bắt đầu việc phân tích rủi ro tạo mẫu, cải tạo phát triển mẫu, duyệt lại, tiếp tục (hình 1.3) Nội dung bước gồm bốn hoạt động chính: - Lập kế hoạch: Xác định mục tiêu, giải pháp ràng buộc - Phân tích rủi ro: Phân tích phương án xác định/giải rủi ro - Kỹ nghệ: Phát triển sản phẩm “mức tiếp theo” - Đánh giá: Đánh giá khách hàng kết kỹ nghệ Với lần lặp xoắn ốc (bắt đầu từ tâm), phiên hồn thiện dần Nếu phân tích rủi ro yêu cầu không chắn mẫu sử dụng giai đoạn kỹ nghệ; mơ hình mơ khác dùng để làm rõ vấn đề làm mịn yêu cầu Tại vòng xoắn ốc, phân tích rủi ro phải đến định “tiếp tục hay dừng” Nếu rủi ro q lớn dừng dự án Mơ hình xoắn ốc có số vấn đề khó thuyết phục khách hàng lớn cách tiếp cận tiến hóa kiểm sốt Nó địi hỏi tri thức chun gia đánh giá rủi ro xác dựa tri thức chuyên gia mà đạt thành công Mô hình xoắn ốc địi hỏi lực quản lý cao, khơng quản lý tốt dễ rơi vào trạng thái sửa đổi cục Tài liệu giảng dạy môn: Công nghệ phần mềm 13 ... 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. .. ả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 ... 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

Ngày đăng: 02/03/2023, 07:51

Xem thêm:

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

TÀI LIỆU LIÊN QUAN