Giáo trình Nhập môn Kỹ nghệ phần mềm Phần 1 - ĐH CNTT&TT Thái Nguyên

Tải giáo trình Nhập môn Kỹ nghệ phần mềm phần 1. Tài liệu cung cấp kiến thức tổng quan về quy trình phát triển, phân tích, thiết kế và kiểm thử.

Chuyên ngành

Kỹ nghệ phần mềm

Người đăng

Ẩn danh

Thể loại

Giáo trình

2011

84
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khái Niệm Cơ Bản Về Kỹ Nghệ Phần Mềm

Kỹ nghệ phần mềm là lĩnh vực khoa học máy tính chuyên nghiên cứu các phương pháp, công cụ và quy trình để phát triển phần mềm chất lượng cao. Phần mềm được định nghĩa là hệ thống các chương trình máy tính có khả năng thực thi trên các thiết bị điện tử nhằm hỗ trợ người dùng hoàn thành các nhiệm vụ cụ thể. Chương trình máy tính là một trình tự các chỉ thị được viết theo ngôn ngữ lập trình để hướng dẫn máy tính thực hiện công việc theo yêu cầu. Sự khác biệt giữa phần mềm và chương trình nằm ở quy mô: phần mềm là tập hợp nhiều chương trình cùng hoạt động theo một hệ thống. Mục tiêu chính của kỹ nghệ phần mềm là cải thiện chất lượng, giảm chi phí và thời gian phát triển phần mềm thông qua các quy trình tiêu chuẩn hóa và quản lý chuyên môn.

1.1. Định Nghĩa Chương Trình và Phần Mềm

Chương trình máy tính là một tập hợp các lệnh được sắp xếp logic nhằm giải quyết một vấn đề cụ thể. Phần mềm không chỉ bao gồm code mà còn bao gồm tài liệu, hướng dẫn sử dụng và dữ liệu liên quan. Mỗi phần mềm ứng dụng được thiết kế để hỗ trợ một lĩnh vực chuyên môn nhất định như quản lý tài chính, thiết kế đồ họa hay quản lý học sinh sinh viên.

1.2. Vai Trò và Ý Nghĩa của Kỹ Nghệ Phần Mềm

Kỹ nghệ phần mềm giúp các tổ chức phát triển phần mềm một cách có hệ thống và hiệu quả. Nó cung cấp các quy trình chuẩn, phương pháp đã chứng minhcông cụ hỗ trợ để đảm bảo chất lượng sản phẩm cuối cùng. Thông qua các kỹ thuật này, chi phí phát triển được giảm thiểu, rủi ro được kiểm soát, và thời gian ra mắt sản phẩm được rút ngắn đáng kể.

II. Quy Trình Phát Triển Phần Mềm Cơ Bản

Quy trình phát triển phần mềm là một chuỗi các bước được sắp xếp logic từ lúc khởi tạo dự án cho đến khi bảo trì và nâng cấp. Các bước cơ bản trong xây dựng phần mềm bao gồm: thu thập yêu cầu, phân tích yêu cầu, thiết kế hệ thống, cài đặt, kiểm thử và triển khai. Mỗi giai đoạn đóng vai trò quan trọng và có mục tiêu riêng biệt. Phân tích và đặc tả yêu cầu là bước đầu tiên để hiểu rõ nhu cầu của khách hàng. Thiết kế phần mềm bao gồm thiết kế kiến trúc, thiết kế cơ sở dữ liệu và thiết kế giao diện người dùng. Cài đặt là việc viết code dựa trên thiết kế, trong khi kiểm thử phần mềm đảm bảo sản phẩm hoạt động đúng theo yêu cầu.

2.1. Các Bước Chính Trong Xây Dựng Phần Mềm

Thu thập yêu cầu là quá trình lắng nghe và ghi nhận nhu cầu của khách hàng. Phân tích yêu cầu giúp làm rõ và mô hình hóa các yêu cầu này. Thiết kế tạo ra kế hoạch chi tiết cho việc xây dựng. Cài đặt chuyển đổi thiết kế thành code thực tế. Kiểm thử xác minh tính đúng đắn của phần mềm. Triển khai đưa phần mềm vào sử dụng thực tế.

2.2. Các Mô Hình Triển Khai Xây Dựng Phần Mềm

Mô hình thác nước là phương pháp tuần tự truyền thống. Mô hình xoáy kết hợp yếu tố tái lặp để giảm rủi ro. Mô hình Agile nhấn mạnh sự linh hoạt và giao tiếp liên tục. Mô hình bản mẫu phát triển một phiên bản thử nghiệm trước để xác nhận yêu cầu. Mỗi mô hình có ưu điểm riêng phù hợp với các loại dự án khác nhau.

III. Các Phương Pháp Và Công Cụ Phát Triển

Các phương pháp xây dựng phần mềm bao gồm phương pháp cấu trúc, hướng đối tượnghướng chức năng. Phương pháp hướng đối tượng hiện nay được sử dụng phổ biến vì khả năng tái sử dụng code và dễ bảo trì. Phương pháp hướng chức năng tập trung vào các chức năng mà hệ thống cần thực hiện. Công cụ phát triển phần mềm bao gồm các IDE (Integrated Development Environment), trình soạn thảo code, trình biên dịch, và các công cụ quản lý dự án. Phần mềm hỗ trợ thực hiện các giai đoạn giúp tự động hóa các công việc, từ quản lý yêu cầu đến kiểm thử tự động. Phần mềm hỗ trợ tổ chức và quản lý giúp đội ngũ làm việc hiệu quả hơn thông qua truy vấn tiến độ, phân công công việc và quản lý tài nguyên.

3.1. Phương Pháp Xây Dựng Phần Mềm Phổ Biến

Phương pháp cấu trúc chia hệ thống thành các mô-đun nhỏ dễ quản lý. Phương pháp hướng đối tượng sử dụng các class, objectkế thừa để mô hình hóa thế giới thực. Phương pháp hướng chức năng xác định tất cả các chức năng cần thiết và cách chúng tương tác. Phương pháp Agile nhấn mạnh phản hồi từ khách hàng và cải tiến liên tục.

3.2. Công Cụ và Môi Trường Phát Triển

IDE (Integrated Development Environment) như Visual Studio, Eclipse, JetBrains cung cấp môi trường tích hợp để viết, biên dịch và gỡ lỗi code. Công cụ quản lý phiên bản như Git giúp theo dõi các thay đổi code. Công cụ kiểm thử tự động đảm bảo chất lượng code. Công cụ phân tích tĩnh phát hiện lỗi tiềm ẩn trước khi chạy chương trình.

IV. Chất Lượng Phần Mềm Và Tiêu Chuẩn

Chất lượng phần mềm được đánh giá dựa trên nhiều tiêu chí như tính chính xác, tính đáng tin cậy, tính hiệu năng, tính bảo mật và tính khả dụng. Tính chính xác đảm bảo phần mềm hoạt động đúng theo đặc tả yêu cầu. Tính đáng tin cậy là khả năng phần mềm hoạt động ổn định không gặp lỗi trong thời gian dài. Tính hiệu năng liên quan đến tốc độ xử lý và sử dụng tài nguyên hiệu quả. Tính bảo mật bảo vệ dữ liệu khỏi truy cập trái phép. Tính khả dụng là mức độ dễ sử dụng của giao diện người dùng. Tiêu chuẩn quốc tế như ISO/IEC 9126 định nghĩa các thuộc tính chất lượng cần đạt được. Việc áp dụng các quy trình kiểm chứng từ các bước đầu giúp đảm bảo chất lượng cuối cùng của sản phẩm.

4.1. Các Tiêu Chí Đánh Giá Chất Lượng

Tính chính xác chức năng kiểm tra xem phần mềm có thực hiện đúng tất cả yêu cầu hay không. Tính hiệu quả bao gồm tốc độ thực thi và mức sử dụng bộ nhớ. Tính bảo trì đánh giá mức độ dễ sửa đổi và cập nhật code. Tính mở rộng xác định khả năng mở rộng chức năng trong tương lai. Tính tương thích đảm bảo phần mềm chạy trên các nền tảng khác nhau.

4.2. Tiêu Chuẩn Và Quy Trình Kiểm Chứng

Tiêu chuẩn ISO/IEC 9126 định rõ các yếu tố chất lượng phần mềm. Tiêu chuẩn ISO/IEC 9001 áp dụng quản lý chất lượng trong quá trình phát triển. Quy trình Code Review kiểm tra chất lượng code trước khi nhập vào hệ thống chính. Kiểm thử đơn vị, kiểm thử tích hợpkiểm thử hệ thống đảm bảo mọi lớp hoạt động đúng.

22/12/2025

Trích đoạn nội dung tài liệu

Chương 1 TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM 1. Các khái niệm cơ bản 1. Các khái niệm Chương trình máy tính là một trình tự các chỉ thị để hướng dẫn máy tính làm việc nhằm hoàn thành một công việc nào đó do con người yêu cầu. Phần mềm là một hệ thống các chương trình có thể thực hiện trên máy tính nhằm hỗ trợ các nhà chuyên môn trong từng lĩnh vực chuyên ngành thực hiện tốt nhất các thao tác nghiệp vụ của mình.

Nhiệm vụ chính yếu của phần mềm là cho phép các nhà chuyên môn thực hiện các công việc của họ trên máy tính dễ dàng và nhanh chóng hơn so với khi thực hiện cùng công việc đó trong thế giới thực. Hoạt động của mọi phần mềm là sự mô phỏng lại các họat động của thế giới thực trong một góc độ thu hẹp nào đó trên máy tính. Quá trình sử dụng một phần mềm chính là quá trình người dùng thực hiện các công việc trên máy tính để hoàn tất một công việc tương đương trong thế giới thực. Lớp phần mềm là hệ thống các phần mềm trên cùng lĩnh vực họat động nào đó.

Do cùng lĩnh vực họat động nên các phần mềm này thường có cấu trúc và chức năng (công việc mà người dùng thực hiện trên máy tính) tương tự nhau. Mục tiêu của ngành Kỹ nghệ phần mềmlà hướng đến không những xây dựng được các phần mềm có chất lượng mà còn cho phép xây dựng dễ dàng một phần mềm mới từ các phần mềm đã có sẵn trong cùng kĩnh vực (thậm chí trong các lĩnh vực khác).1: Các phần mềm và lớp phần mềm tương ứng STT Lớp phần mềm Các phần mềm 1 Hỗ trợ giải bài tập Lượng giác, hình học, giải tích, số học, … 2 Trò chơi Cờ carô, cờ tướng, cờ vua, xếp hình, … 3 Xếp lịch biểu Thi đấu, thời khóa biểu, hội nghị, … 4 Xét tuyển Nhân sự, học sinh lớp 10… 5 Bình chọn Sản phẩm, cầu thủ, … 6 Quản lý học sinh Mầm non, trung học, trung tâm… 7 Bán hàng Thuốc tây, vật liệu xây dựng, máy tính 8 Quản lý thuê bao Điện, điện thoại, nước, … 9 Cho mượn Sách, truyện, phim, … 4 1. Phân loại Phần mềm hệ thống là những phần mềm đảm nhận công việc tích hợp và điều khiển các thiết bị phần cứng đồng thời tạo ra môi trường thuận lợi để các phần mềm khác và người sử dụng có thể thao tác trên đó như một khối thống nhất mà không cần phải quan tâm đến những chi tiết kỹ thuật phức tạp bên dưới như cách thức trao đổi dữ liệu giữa bộ nhớ chính và đĩa, cách hiển thị văn bản lên màn hình,. Phần mềm ứng dụng là những phần mềm được dùng để thực hiện một công việc xác định nào đó.

Phần mềm ứng dụng có thể chỉ gồm một chương trình đơn giản như chương trình xem ảnh, hoặc một nhóm các chương trình cùng tương tác với nhau để thực hiện một công vịệc nào đó như chương trình xử lý bản tính, chương trình xử lý văn bản,. Kiến trúc phần mềm Sau khi đã có các khái niêm cơ bản nhất về phần mềm, tiếp sau đây chúng ta sẽ đi sâu vào tìm hiểu cấu trúc chi tiết các cấu trúc chi tiết các thành phần bên trong phần mềm. Phần mềm bao gồm 3 thành phần: a) Thành phần giao tiếp (giao diện) Cho phép tiếp nhận các yêu cầu về việc muốn thực hiện và cung cấp các dữ liệu nguồn liên quan đến công việc đó hoặc từ các thiết bị thu thập dữ liệu (cân, đo nhiệt độ, tế bào quang học, …) Cho phép trình bày các kết quả của việc thực hiện các yêu cầu cho người dùng (kết quả của công việc khi thực hiện trên máy tính) hoặc điều khiển họat động các thiết bị điều khiển (đóng mở cửa, bật mở máy,…) Một cách tổng quát thành phần giao tiếp là hệ thống các hàm chuyên về việc nhập/xuất dữ liệu (hàm nhập/xuất) cùng với hình thức trình bày và tổ chức lưu trữ dữ liệu tương ứng, mục tiêu chính của các hàm này là đưa dữ liệu từ thế giới bên ngoài phần mềm vào bên trong hoặc ngược lại. Trong phạm vi giáo trình này chỉ giới hạn xét đến giao tiếp với người sử dụng phần mềm và khi đó có tên gọi cụ thể hơn là thành phần giao diện.

b) Thành phần dữ liệu Cho phép lưu trữ lại (hàm ghi) các kết quả đã xử lý (việc mượn sách đã được kiểm tra hợp lệ, bảng lương tháng đã được tính) trên bộ nhớ phụ với tổ chức lưu trữ được xác định trước (tập tin có cấu trúc, tập tin nhị phân, cơ sở dữ liệu). 5 Cho phép truy xuất lại (hàm đọc) các dữ liệu đã lưu trữ phục vụ cho các hàm xử lý tương ứng. Một cách tổng quát thành phần dữ liệu là hệ thống các hàm chuyên về đọc ghi dữ liệu (hàm đọc/ghi) cùng với mô hình tổ chức dữ liệu tương ứng. Mục tiêu chính của các hàm này là chuyển đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ.

c) Thành phần xử lý Kiểm tra tính hợp lệ của các dữ liệu nguồn được cung cấp từ người dùng theo các quy trình ràng buộc trong thế giới thực (chỉ cho mượn tối đa 3 quyển sách, mỗi lớp học có tối đa 50 học sinh, …) Tiến hành xử lý cho ra kết quả mong đợi theo quy định tính toán có sẵn trong thế giới thực (quy tắc tính tiền phạt khi trả sách trễ, quy tắc tính tiền điện, quy tắc trả góp khi mua nhà…) hoặc theo thuật giải tự đề xuất (xếp thời khóa biểu tự động, nén ảnh,…) Việc xử lý dựa trên dữ liệu nguồn từ người sử dụng cung cấp (tính nghiệm phương trình bậc 2 dựa trên các hệ số đã nhập) hoặc dữ liệu lưu trữ đã có sẵn (tính tồn kho tháng dựa trên các phiếu nhập xuất đã lưu trữ…) hoặc cả hai (tính tiền phạt dựa trên ngày trả sách được nhập vào và thông tin về loại sách đã được lưu trữ…) tùy vào xử lý cụ thể. Tương tự, việc xử lý cho ra kết quả có thể dùng để xuất cho người dùng xem qua thành phần giao diện (trình bày nghiệm, xuất tiền phạt), hay cùng có thể lưu trữ lại qua thành phần dữ lịêu (sổ sách hiện đang được mượn của một độc giả…) hoặc cả hai (bảng lương, bảng tồn kho…) Một cách tổng quát, thành phần xử lý là hệ thống các hàm chuyên về xử lý tính toán, biến đổi dữ liệu. Các hàm này sẽ dùng dữ liệu nguồn từ các hàm trong thành phần giao diện (hàm nhập) hay thành phần dữ liệu (hàm đọc dữ liệu) kiểm tra tính hợp lệ (hàm kiểm tra) và sau đó tiến hành xử lý (hàm xử lý) nếu cần thiết để cho ra kết quả mà sẽ được trình bày cho người dùng xem qua các hàm trong thành phần giao diện (hàm xuất) hoặc lưu trữ lại qua các hàm trong thành phần dữ liệu (hàm ghi).2: Danh sách các hàm cùng ý nghĩa tương ứng STT Thành Hàm Ý nghĩa Ghi chú Cần xác định hình thức Thành phần Hàm nhập Nhập yêu cầu, dữ liệu nguồn. 1 nhập/xuất và tổ chức giao diện Hàm xuất Xuất kết quả đã xử lý dữ liệu tương ứng Sử dụng hàm nhập, Kiểm tra tính hợp lệ của dữ liệu.

Thành phần Hàm kiểm tra hàm đọc. Sử dụng 2 Xử lý tính toán, phát sinh,biến xử lý Hàm xử lý hàm nhập, hàm đọc, đổi trên dữ liệu hàm xuất, hàm ghi Đọc dữ liệu từ bộ nhớ phụ vào Cần xác định cáchh Thành phần Hàm đọc bộ nhớ chính. 3 thức tổ chức lưu trữ dữ liệu Hàm ghi Ghi dữ liệu từ bộ nhớ chính dữ liệu vào bộ nhớ phụ 1. Chất lượng phần mềm 1.

Tính đúng đắn Tính đúng đắn của phần mềm được thể hiện ở chổ sản phẩm đó thực hiện đầy đủ và chính xác các yêu cầu của người dùng. Tính đúng đắn ở đây cần phải hiểu theo nghĩa rộng là chương trình cần phải thực hiện được trong cả những trường hợp mà dữ liệu đầu vào là không hợp lệ. Ví dụ, nếu một trong số các chức năng của phần mềm là sắp xếp một tập tin có số lượng mẫu tin tùy ý theo một cột tùy ý theo chiều tăng hoặc giảm thì những trường hợp sau là vi phạm tính đúng đắn của chương trình:  Không thể thực hiện được(treo máy) khi tập tin rỗng (không có mẫu tin nào).  Không thể thực hiện hoặc thực hiện nhưng cho kết quả sai khi các mẫu tin có hơn 100 cột hoặc có quá nhiều mẫu tin.

 Không thể thực hiện hoặc cho kết quả sai khi các cột có chiều dài lớn hơn 125 bytes  Không thể sắp xếp theo chiều tăng dần….  Tính đúng đắn của một sản phẩm phần mềm được xác minh qua các căn cứ sau đây : 7  Tính đúng đắn của thuật toán.  Tính tương đương của chương trình với thuật toán. Thuật toán có thể đúng nhưng chương trình lập ra không tương đương với thuật toán nên khi thực hiện sẽ cho kết quả sai.

 Tính đúng đắn của chương trình có thể được chứng minh trực tiếp trong văn bản của chương trình.  Tính đúng đắn cũng có thể được khẳng định dần qua việc kiểm thử, áp dụng  Chương trình trong một khoảng thời gian dài trên diện rộng và với tần suất sử dụng cao. Tính tiến hóa Cho phép người dùng có thể khai báo các thay đổi về qui định với phần mềm tùy theo các thay đổi trong thế giới thực liên quan (thay qui định về số sách mượn tối đa, công thức tính tiền phạt, công thức tính tiền điện…) Sản phẩm có thể mở rộng, tăng cường về mặt chức năng một cách dễ dàng. Tính hiệu quả Tính hiệu quả của một sản phẩm phần mềm được xác định qua các tiêu chuẩn sau: Hiệu quả kinh tế hoặc ý nghĩa, giá trị thu được do áp dụng sản phẩm đó.

Tốc độ xử lý của phần mềm (v) tính bằng tỉ lệ giữa khối lượng đối tượng cần phải xử lý (m) và tổng thời gian (t) cần thiết để xử lý các đối tượng đó. Sử dụng tối ưu tài nguyên của máy tính (CPU, bộ nhớ…) 1. Tính tiện dụng Sản phẩm phải tính đến những yếu tố tâm lý sau đây của người dùng: Dễ học, có giao diện trực quan tự nhiên. Tính tương thích Trao đổi dữ liệu với các phần mềm khác có liên quan (nhận danh mục sách từ tập tin Excel, gửi báo cáo tổng kết năm học đến phần mềm WinFax, …) Giao tiếp nội bộ Giao tiếp bên ngoài 8 1.

Tính tái sử dụng Sản phẩm phần mềm có thể áp dụng cho nhiều lĩnh vực theo nhiều chế độ làm việc khác nhau. Các phần mềm cùng lớp Các phần mềm khác lớp 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ