Giáo trình Kỹ nghệ phần mềm - TS. Hoàng Xuân Thảo (ĐH Kinh doanh và Công nghệ)

Tải trọn bộ giáo trình Kỹ nghệ phần mềm của TS. Hoàng Xuân Thảo. Tài liệu cung cấp kiến thức tổng quan về quy trình sản xuất phần mềm chuyên nghiệp.

Chuyên ngành

Kỹ nghệ Phần mềm

Người đăng

Ẩn danh

Thể loại

Giáo trình

2018

65
13
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à một lĩnh vực quan trọng trong công nghệ thông tin, tập trung vào việc thiết kế, phát triển và bảo trì các sản phẩm phần mềm chất lượng cao. Giáo trình kỹ nghệ phần mềm cung cấp cách nhìn tổng quan về toàn bộ quy trình sản xuất phần mềm, từ khâu lập kế hoạch cho đến bảo trì. Phần mềm được định nghĩa là sự kết hợp giữa chương trình máy tính, cấu trúc dữ liệu và tài liệu liên quan. Ngày nay, phần mềm được ứng dụng phổ biến trong mọi lĩnh vực đời sống, tạo nên sự thay đổi đáng kể trong cuộc sống con người. Việc tạo ra được một phần mềm hiệu quả và đạt chất lượng là rất quan trọng, đòi hỏi phải áp dụng các phương pháp luận và kỹ thuật khoa học.

1.1. Định nghĩa phần mềm và kỹ nghệ phần mềm

Phần mềm bao gồm ba thành phần chính: chương trình máy tính thực hiện để ra kết quả mong muốn, cấu trúc dữ liệu hỗ trợ thao tác phù hợp, và các tài liệu liên quan. Kỹ nghệ phần mềm là ngành học cung cấp các phương pháp, tiến trình và công cụ để quản lý, xây dựng và bảo trì phần mềm một cách có tổ chức và khoa học.

1.2. Đặc trưng của phần mềm hiện đại

Phần mềm được phát triển thông qua kỹ nghệ hóa, chứ không chế tạo theo nghĩa cổ điển. Phần mềm không hỏng đi nhưng suy thoái theo thời gian. Phần lớn sản phẩm phần mềm được xây dựng theo đơn đặt hàng riêng lẻ, hiếm khi được lắp ráp từ các thành phần có sẵn.

II. Tiến trình và giai đoạn phát triển phần mềm

Tiến trình kỹ nghệ phần mềm trải qua nhiều giai đoạn phát triển khác nhau, từ những năm 1950 đến hiện nay. Mỗi giai đoạn đặc trưng bởi các công nghệ và phương pháp phát triển riêng. Giáo trình kỹ nghệ phần mềm được cấu trúc theo 7 chương chính, bao gồm: phân tích yêu cầu, thiết kế, lập trình, kiểm thử và bảo trì. Sự phát triển của phần mềm gắn liền với sự tiến bộ của công nghệ phần cứng và nhu cầu xã hội. Trong giai đoạn từ những năm 1950 đến 1960, phần mềm mang tính chuyên dụng với môi trường phát triển cá nhân. Đến những năm 1980-1990, phương pháp phát triển hướng cấu trúc đạt đến mức hoàn thiện.

2.1. Giai đoạn phát triển sơ kỳ 1950 1970

Giai đoạn này năng lực phần cứng còn hạn chế, phần lớn phần mềm được thiết kế theo đơn đặt hàng chuyên dụng. Môi trường phát triển mang tính cá nhân, tiến trình phần mềm không rõ ràng. Giai đoạn giữa 1960-1970 chứng kiến sự phát triển phần mềm đa chương trình, đa người dùng.

2.2. Giai đoạn phát triển hiện đại 1980 nay

Từ cuối những năm 1970 đến 1990, mạng máy tính phát triển mạnh, tăng nhu cầu quản lý dữ liệu. Phương pháp hướng đối tượng dần thay thế hướng chức năng. Các công cụ CASE giúp tăng năng suất và chất lượng phần mềm đáng kể.

III. Nội dung chính của giáo trình kỹ nghệ phần mềm

Giáo trình kỹ nghệ phần mềm bản đầy đủ được biên soạn dành cho sinh viên chuyên ngành công nghệ thông tin tại các trường đại học. Nội dung giáo trình tập trung vào các khối kiến thức cốt lõi: quản lý dự án phần mềm, phân tích yêu cầu, thiết kế phần mềm, lập trình, kiểm thửbảo trì. Mỗi chương được thiết kế để cung cấp cách nhìn tổng quan về từng giai đoạn trong quy trình sản xuất phần mềm. Giáo trình kết hợp kinh nghiệm giảng dạy thực tiễn với các tài liệu nghiên cứu, giúp sinh viên hiểu rõ về phương pháp luận, tiến trình và kỹ thuật quản lý phần mềm một cách khoa học.

3.1. Quản lý dự án và yêu cầu phần mềm

Quản lý dự án phần mềm bao gồm các hoạt động lập kế hoạch, theo dõi và kiểm soát dự án. Phân tích yêu cầu phần mềm là bước quan trọng để xác định nhu cầu khách hàng, tạo tài liệu đặc tả yêu cầu rõ ràng. Quá trình này sử dụng kỹ thuật làm bản mẫu để xác minh yêu cầu.

3.2. Thiết kế lập trình và kiểm thử

Thiết kế phần mềm bao gồm thiết kế kiến trúc và giao diện người dùng. Lập trình phần mềm yêu cầu áp dụng phong cách lập trình tốt, tránh lỗi và hướng đến hiệu quả. Kiểm thử là giai đoạn quan trọng với kế hoạch, phương pháp và chiến lược kiểm thử khác nhau.

IV. Bảo trì phần mềm và ứng dụng thực tiễn

Bảo trì phần mềm là giai đoạn cuối nhưng rất quan trọng trong vòng đời sản phẩm phần mềm. Đây là quá trình sửa lỗi, cập nhật tính năng và cải thiện hiệu năng sau khi phần mềm đã triển khai. Khả năng bảo trì của phần mềm phụ thuộc vào chất lượng thiết kế ban đầu và tài liệu kỹ thuật. Các công việc bảo trì bao gồm: xử lý lỗi phát sinh, thêm chức năng mới, cải tiến hiệu suất. Giáo trình kỹ nghệ phần mềm cung cấp kiến thức toàn diện giúp sinh viên hiểu rõ từng khía cạnh, từ lý thuyết đến thực hành, để trở thành những chuyên gia phần mềm chất lượng cao.

4.1. Định nghĩa và đặc điểm bảo trì phần mềm

Bảo trì phần mềm là tập hợp các hoạt động thực hiện sau khi sản phẩm đã triển khai. Đặc điểm bảo trì bao gồm: phần mềm không hỏng nhưng suy thoái theo thời gian, yêu cầu liên tục cập nhật và cải thiện. Khả năng bảo trì cao giúp giảm chi phí và thời gian bảo trì lâu dài.

4.2. Công việc bảo trì và hiệu ứng lề

Các công việc bảo trì chính bao gồm: sửa lỗi, thêm chức năng mới, cải thiện hiệu suất. Hiệu ứng lề của bảo trì là những thay đổi không mong muốn có thể phát sinh. Tài liệu hoàn chỉnh và quy trình bảo trì rõ ràng là chìa khóa thành công.

21/12/2025

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

mở đầu, tổ chức thực hiện dự án, phân tích rủi ro, các yêu cầu về nguồn lực, bảng phân rã công việc, lịch trình dự án, cơ chế điều hành và báo cáo, các kế hoạch phụ trợ. Tiến trình tổng quát lập kế hoạch. Bước xác định dự án có thể xem là giai đoạn tiền kế hoạch: xác định phạm vi và xuất phẩm, tiếp cận chiến lược rủi ro. - Lập bảng phân rã công việc: đội dự án và người quản lý xác định các nhiệm vụ (gói công việc) cần thực hiện để tạo ra các sản phẩm.

- Xác định trình tự công việc: đặt các gói công việc theo một tiến trình có trình tự trước - sau. - Ước lượng các gói công việc: mỗi gói công việc có ước lượng công lao động, số trang thiết bị và thời gian cần thiết để thực hiện. - Lập lịch biểu ban đầu: tính toán thời gian thực hiện dự án, thời gian bắt đầu sớm nhất và kết thúc muộn nhất của từng công việc. - Gán nguồn lực công việc: sau khi gán nguồn lực, cần chính xác hóa lịch biểu khi tính đến các ràng buộc về nguồn lực.

Các nhiệm vụ được lập lịch sao cho tối ưu hóa việc sử dụng lao động và các nguồn lực khác. 16 Kỹ nghệ phần mềm 2. Quản lý cấu hình. Quản lý cầu hình (còn gọi là quản lý mã nguồn) là một công việc quan trọng trong sản xuất phần mềm.

Quản lý cầu hình được tự động hóa thông qua các công cụ. Nhiệm vụ chính của công cụ quản lý là: - Lưu trữ mã nguồn, dữ liệu, tài liệu. - Tạo điểm truy cập duy nhất (đảm bảo tính thống nhất của mã nguồn) cho người lập trình sửa đổi, thêm bớt mã nguồn. Do đó chúng ta có thể dễ dàng: - Kiểm soát được tính thống nhất của mã nguồn.

- Kiểm soát được sự sửa đổi, lý do của sự sửa đổi, lý lịch các lần sửa đổi. - Dễ dàng lưu trữ và truy cập tới các phiên bản khác nhau của 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ủa các công cụ này là: - Quản lý tập chung (mã nguồn, tư liệu, công cụ phát triển.

- Các tệp được tạo một lần duy nhất, các phiên bản sửa đổi chỉ ghi lại sai phân đối với bản gốc. - Sử dụng phương pháp check out/check in khi sửa đổi tệp. 17 Kỹ nghệ phần mềm Chương 3: Phân tích và đặc tả yêu cầu phần mềm 3. Giới thiệu chung.

Phân tích và đặc tả yêu cầu là bước kỹ thuật đầu tiên trong tiến trình kỹ nghệ phần mềm. Công việc ở bước này là tìm hiểu xem chúng ta phải phát triển cái gì, chứ không phải là phát triển như thế nào. Đích cuối cùng của khâu phân tích là tạo ra đặc tả yêu cầu, là tài liệu ràng buộc giữa khách hàng và người phát triển và là cơ sở của hợp đồng. Hoạt động phân tích yêu cầu là hoạt động phối hợp giữa khách hàng và người phân tích.

Hoạt động phân tích và đặc tả yêu cầu yêu cầu giữ một vai trò đặc biệt quan trọng trong phát triển phần mềm, giúp cho đảm bảo chất lượng của phần mềm (phần mềm đáng tin cậy). Phần mềm đáng tin cậy có nghĩa là phải thực hiện được chính xác, đầy đủ yêu cầu của người sử dụng. Nếu phân tích và đặc tả yêu cầu không tốt dẫn đến hiểu lầm yêu cầu thì việc sửa chữa sẽ trở nên rất tốn kém. Chi phí để sửa chữa sai sót về yêu cầu sẽ tăng lên gấp bội nếu như sai sót đó được phát hiện muộn, ví dụ như ở bước thiết kế hay mã hóa.

Khái niệm phân tích yêu cầu. Thiết lập các dịch vụ mà hệ phải cung cấp và các ràng buộc hệ phải tuân theo khi hoạt động. Việc phân tích, nắm bắt yêu cầu thường gặp các khó khăn như: - Các yêu cầu thường mang tính đặc thù của tổ chức đặt hàng nó, do đó nó thường khó hiểu, khó định nghĩa và không có chuẩn biểu diễn. - Các hệ thống thông tin lớn có nhiều người sử dụng thì các yêu cầu thường rất đa dạng và có các mức ưu tiên khác nhau, thậm chí mâu thuẫn lẫn nhau.

- Người đặt hàng nhiều khi là các nhà quản lý, không phải là người dùng thực sự do đó việc phát biểu yêu cầu thường không chính xác. Các mức yêu cầu: Các yêu cầu phải thể hiện được “những cái mà hệ sẽ làm”, chứ không phải hệ sẽ làm những việc đó như thế nào. Yêu cầu thường được mô tả ở nhiều mức chi tiết khác nhau phục vụ cho các đối tượng đọc khác nhau. Các mức đó có thể là: - Xác định yêu cầu: mô tả trừu tượng mức cao của yêu cầu, hướng vào đối tượng người đọc là người sử dụng, người quản lý.

- Đặc tả yêu cầu: mô tả mức chi tiết về yêu cầu, hướng vào đối tượng người đọc là các kỹ sư phần mềm (người phát triển), kỹ sư hệ thống (sẽ làm việc bảo trì). 18 Kỹ nghệ phần mềm 3. Tiến trình hình thành các yêu cầu.1: Tiến trình hình thành các yêu cầu 3.1 Nghiên cứu khả thi. Đây là giai đoạn có tầm quan trọng đặc biệt, vì nó liên quan đến việc lựa chọn giải pháp.

Người phân tích phải làm rõ được các điểm mạnh và điểm yếu của hệ thống cũ, đánh giá được mức độ, tầm quan trọng của từng vấn đề, định ra các vấn đề cần phải giải quyết. Sau đó người phân tích phải định ra một vài giải pháp có thể (sơ bộ) và so sánh cân nhắc các điểm tốt và không tốt của các giải pháp đó (như tính năng của hệ thống, giá cả cài đặt, bảo trì, việc đào tạo người sử dụng. Mọi dự án đều khả thi khi nguồn tài nguyên vô hạn và thời gian vô hạn. Nhưng việc xây dựng hệ thống lại phải làm với sự hạn hẹp về tài nguyên và khó (nếu không phải là không hiện thực) bảo đảm đúng ngày bàn giao.

Trong giai đoạn nghiên cứu khả thi, chúng ta tập trung vào bốn lĩnh vực quan tâm chính: a. Khả thi về kinh tế. Chi phí phát triển cần phải cân xứng với lợi ích mà hệ thống được xây dựng đem lại. Tính khả thi về kinh tế thể hiện trên các nội dung sau: - Khả năng tài chính của tổ chức cho phép thực hiện dự án.

- Lợi ích mà dự án phát triển hệ thống phần mềm mang lại đủ bù đắp chi phí phải bỏ ra xây dựng nó. - Tổ chức chấp nhận được những chi phí thường xuyên khi hệ thống hoạt động. Khả thi về kỹ thuật. 19 Kỹ nghệ phần mềm Xem xét khả năng kỹ thuật hiện tại có đủ đảm bảo thực hiện giải pháp công nghệ dự định áp dụng hay không như: có sẵn các nhân viên kỹ thuật, các tài nguyên cần thiết về phần cứng, phần mềm đáp ứng cho việc phát triển dự án phần mềm không.

Khả thi về pháp lý. Nghiên cứu và đưa ra phán quyết về có hay không sự xâm phạm, vi phạm pháp luật hay khó khăn pháp lý từ việc xây dựng và vận hành hệ thống. Tính khả thi pháp lý bao gồm một phạm vi rộng các mối quan tâm kể cả hợp đồng, nghĩa vụ pháp lý, sự vi phạm và vô số các bẫy pháp lý khác mà thường là các nhân viên kỹ thuật không biết tới. Khả thi về hoạt động.

Đánh giá tính khả thi của việc vận hành hệ thống. Trong mỗi phương án cần xem xét hệ thống có thể vận hành trôi chảy hay không trong khuôn khổ tổ chức và điều kiện quản lý mà tổ chức đó (người dùng, khách hàng) có. Mức độ các phương án được xem xét tới trong nghiên cứu khả thi thường bị giới hạn bởi các ràng buộc về chi phí và thời gian.2 Phân tích yêu cầu. Sau giai đoạn nghiên cứu khả thi của pha “phân tích và nắm bắt yêu cầu” là giai đoạn “phân tích yêu cầu”.

Trong giai đoạn này, các kỹ sư phát triển phần mềm làm việc với khách hàng sử dụng hệ thống để tìm ra các vấn đề: phạm vi ứng dụng của hệ phần mềm, các dịch vụ mà hệ phải cung cấp, các ràng buộc mà hệ phải tuân theo… Quá trình phân tích yêu cầu đòi hỏi sự tham gia của nhiều người như: người sử dụng hệ thống và các cấp quản lý của họ, những người bị ảnh hưởng bởi việc cài đặt hệ, các kỹ sư phát triển hoặc bảo trì các hệ khác có liên quan,… Phân tích yêu cầu là một công việc hết sức khó khăn vì các nguyên nhân sau: - Khách hàng thường không biết rõ thực sự họ muốn gì, hoặc họ không thể trình bày một cách rõ ràng ý tưởng của họ. Họ cũng có thể đưa ra những đề nghị không thực tế vì họ không biết rõ những chi phí thực sự cho các đề nghị này. - Những người tham gia vào quá trình phân tích yêu cầu phía khách hàng thường phát biểu các yêu cầu theo ngôn ngữ của riêng họ mang tính chất nghiệp vụ. Các kỹ sư phần mềm thường không có nhiều kinh nghiệm trong lĩnh vực của khách hàng.

- Phía khách hàng có thể phát biểu các yêu cầu theo những cách khác nhau. Các kỹ sư phải phát hiện ra những điểm chung cũng như sự mâu thuẫn giữa chúng. 20 Kỹ nghệ phần mềm a. Tiến trình phân tích yêu cầu: Hình 3.1 Tiến trình phân tích yêu cầu - Hiểu phạm vi: hiểu phạm vi ứng dụng của phần mềm.

- Thu thập yêu cầu: các nhà phân tích làm việc với những người tham gia quá trình phân tích yêu cầu phía khách hàng, nhằm tìm ra yêu cầu thực sự của họ. - Phân loại yêu cầu: các yêu cầu được thu thập ban đầu chưa có cấu trúc sẽ được tổ chức và phân chia lại sao cho phù hợp và mang tính hệ thống. - Giải quyết xung đột: nhằm dung hòa các yêu cầu khi chúng có sự xung đột. - Ưu tiên hóa: các nhà phân tích phải trao đổi với khách hàng để tìm ra nhữn yêu cầu quan trọng nhất.

- Thẩm định yêu cầu: các yêu cầu được kiểm tra đễ xem chúng đã đầy đủ, bền vững và thực sự phù hợp với điều mà khách hàng mong muốn hay chưa. Các kỹ thuật được sử dụng trong phân tích yêu cầu: phỏng vấn, bảng câu hỏi, nghiên cứu các tài liệu, quan sát thực tế, phân tích thiết kế nhóm JAD,… b. Chúng ta tạo ra các mô hình để thu được hiểu biết rõ hơn về thực thể thực tế cần xây dựng. Khi thực thể là một vật lý (như toà nhà, máy bay, máy móc) thì ta có thể xây dựng một mô hình giống hệt về hình dạng, nhưng nhỏ hơn về qui mô.

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