Nhập môn Công nghệ Phần mềm - Giáo trình Nguyễn Thế Dũng, ĐHSP Huế

Tổng quan về công nghệ phần mềm cho người mới bắt đầu. Bao gồm các nguyên tắc cơ bản, phương pháp phát triển và ứng dụng trong thực tế. Giúp xây dựng nền tảng

Chuyên ngành

Sư phạm Tin học

Người đăng

Ẩn danh

Thể loại

Giáo trình

2014

213
0
0

Phí lưu trữ

55 Point

Tóm tắt

I. Tổng quan về nhập môn công nghệ phần mềm

Nhập môn công nghệ phần mềm là môn học nền tảng cho sinh viên ngành Tin học. Môn học trang bị kiến thức về quá trình tạo ra một phần mềm hoàn chỉnh. Người học hiểu rõ phần mềm không chỉ là dòng lệnh. Phần mềm là một hệ thống logic phức tạp, vô hình và khó hiểu. Công nghệ phần mềm nghiên cứu cách xây dựng phần mềm có chất lượng cao. Mục tiêu là giảm chi phí và đảm bảo tiến độ. Nội dung môn học bao gồm bảy chương cốt lõi. Các chương đi từ tổng quan, quy trình phát triển đến phân tích yêu cầu. Tiếp theo là thiết kế, lập trình, kiểm thử và bảo trì. Mỗi giai đoạn có vai trò riêng trong vòng đời sản phẩm. Sinh viên Sư phạm Tin học tiếp cận môn học theo hướng thực tiễn. Họ nắm bắt khái niệm cơ bản và phương pháp luận hiện đại. Nhập môn công nghệ phần mềm tạo cầu nối giữa lý thuyết và ứng dụng. Kiến thức này phục vụ cho việc giảng dạy và phát triển nghề nghiệp sau này.

1.1. Khái niệm và vai trò của công nghệ phần mềm

Công nghệ phần mềm là ngành kỹ thuật áp dụng nguyên lý có hệ thống vào việc phát triển phần mềm. Ngành học hướng đến sản phẩm chất lượng, đáng tin cậy và dễ bảo trì. Phần mềm khác hẳn phần cứng. Phần mềm vô hình và mang tính logic cao. Việc xây dựng phần mềm đòi hỏi tư duy trừu tượng. Vai trò của công nghệ phần mềm là kiểm soát sự phức tạp. Nó giúp đội ngũ làm việc hiệu quả hơn. Quy trình rõ ràng giảm thiểu rủi ro thất bại. Nhờ đó, sản phẩm đáp ứng đúng yêu cầu khách hàng và đạt tiêu chuẩn kỹ thuật.

1.2. Cấu trúc nội dung của môn học

Môn học được tổ chức thành bảy chương liên kết chặt chẽ. Chương đầu giới thiệu tổng quan về công nghệ phần mềm. Các chương sau trình bày quy trình phát triển và phân tích yêu cầu. Phần thiết kế và lập trình chiếm vị trí trung tâm. Kiểm thử và bảo trì khép lại vòng đời sản phẩm. Phần quản lý dự án được tách riêng thành học phần độc lập. Mỗi chương kết thúc bằng câu hỏi ôn tập và bài tập. Cách trình bày này giúp sinh viên dễ học và nắm vững kiến thức. Người học có cái nhìn rộng hơn về thực tiễn ngành.

II. Phân tích các đặc trưng và thách thức của phần mềm

Phần mềm mang nhiều đặc trưng khiến việc phát triển trở nên khó khăn. Phần mềm là sản phẩm logic, không phải vật thể vật lý. Tính vô hình làm cho việc đo lường tiến độ rất khó. Quy mô càng lớn thì khả năng chứa lỗi tiềm tàng càng cao. Lỗi của phần mềm dễ bị người ngoài phát hiện. Phần lớn phần mềm được xây dựng từ đầu. Chúng ít khi được lắp ráp từ các thành phần có sẵn. Phần mềm không có danh mục thành phần cố định như phần cứng. Mỗi sản phẩm thường được đặt hàng theo yêu cầu riêng của khách hàng. Yêu cầu phần mềm thay đổi theo môi trường cụ thể. Môi trường gồm phần cứng, phần mềm nền, con người và tổ chức. Những yếu tố này không thể định dạng từ trước. Chúng lại thay đổi thường xuyên trong suốt quá trình. Hậu quả là chi phí phát triển cao và khó kiểm soát lịch biểu. Việc hiểu rõ các thách thức giúp nhóm phát triển chủ động ứng phó.

2.1. Tính phức tạp và vô hình của phần mềm

Phần mềm là hệ thống logic chứa nhiều khái niệm khác nhau. Các khái niệm này liên kết với nhau theo cách trừu tượng. Để hiểu phần mềm cần tư duy logic sâu sắc. Phần mềm không nhìn thấy được vì không phải vật thể vật lý. Tính vô hình gây khó khăn cho việc quản lý và kiểm soát. Người quản lý khó đánh giá khối lượng công việc đã hoàn thành. Sự phức tạp tăng nhanh theo quy mô dự án. Càng nhiều dòng lệnh thì càng nhiều mối liên kết tiềm ẩn. Đây là nguồn gốc của nhiều lỗi khó phát hiện trong sản phẩm.

2.2. Khó khăn trong bảo trì và ước lượng chi phí

Bảo trì phần mềm phức tạp hơn bảo trì phần cứng rất nhiều. Không có sẵn phần thay thế cho bộ phận bị lỗi. Nhóm phát triển phải tạo ra một module mới hoàn toàn. Thông thường chỉ nhà sản xuất mới sửa chữa được hỏng hóc. Việc ước lượng chi phí bảo trì rất khó chính xác. Phần mềm có thể lỗi thời so với hệ thống mà nó phục vụ. Yêu cầu mới liên tục phát sinh theo thời gian sử dụng. Những yếu tố này khiến chi phí toàn vòng đời tăng cao. Lập kế hoạch bảo trì cẩn thận giúp giảm thiểu rủi ro.

III. Quy trình và mô hình phát triển phần mềm

Quy trình phát triển phần mềm là tập hợp các hoạt động có tổ chức. Nó dẫn dắt sản phẩm từ ý tưởng đến khi vận hành. Quy trình chung gồm đặc tả, thiết kế, triển khai và thẩm định. Mỗi giai đoạn tạo ra sản phẩm đầu ra cụ thể. Có nhiều mô hình phát triển phần mềm được sử dụng. Mỗi mô hình phù hợp với một loại dự án khác nhau. Mô hình thác nước tuần tự và dễ quản lý. Mô hình làm bản mẫu giúp làm rõ yêu cầu sớm. Mô hình xoắn ốc tập trung vào quản lý rủi ro. Mô hình tiến hóa và tăng trưởng giao sản phẩm theo từng phần. Phát triển ứng dụng nhanh rút ngắn thời gian giao hàng. Việc chọn đúng mô hình có ý nghĩa lớn cho dự án. Quyết định này ảnh hưởng đến cách tham gia và quản lý. Công cụ CASE hỗ trợ tự động hóa nhiều nhiệm vụ trong quy trình. Chúng giúp nâng cao năng suất và chất lượng sản phẩm.

3.1. Các mô hình tiến trình phổ biến

Mô hình thác nước thực hiện các pha một cách tuần tự. Mỗi pha hoàn thành trước khi pha sau bắt đầu. Mô hình làm bản mẫu xây dựng phiên bản thử nghiệm sớm. Khách hàng phản hồi để hoàn thiện yêu cầu. Mô hình xoắn ốc lặp lại các vòng và đánh giá rủi ro. Mô hình tăng trưởng chia sản phẩm thành nhiều phần nhỏ. Mỗi phần được giao và tích hợp dần. Ngoài ra còn có mô hình hình thức hóa và hướng đối tượng. Mỗi mô hình có đặc trưng và phạm vi áp dụng riêng biệt.

3.2. Vai trò của công cụ CASE

Công cụ CASE hỗ trợ tự động hóa quy trình phần mềm. Các công cụ đơn trợ giúp những nhiệm vụ riêng rẽ. Ví dụ như kiểm tra nhất quán, soạn thảo và tạo mô hình. Bàn thợ trợ giúp một pha của tiến trình phát triển. Môi trường phát triển trợ giúp toàn bộ tiến trình. Công cụ CASE giúp tích hợp các đơn vị ở nhiều mức. Chúng phân loại theo loại hoạt động cụ thể. Nhờ đó, đội ngũ tiết kiệm thời gian và giảm sai sót. Chất lượng sản phẩm cuối cùng được nâng cao rõ rệt.

IV. Ứng dụng và kết luận về công nghệ phần mềm

Kiến thức nhập môn công nghệ phần mềm có giá trị thực tiễn cao. Sinh viên áp dụng nó vào việc phát triển sản phẩm thực tế. Quy trình rõ ràng giúp dự án đạt mục tiêu đúng hạn. Việc nắm vững các mô hình giúp lựa chọn phương pháp phù hợp. Đối với sinh viên Sư phạm Tin học, môn học phục vụ giảng dạy. Họ truyền đạt tư duy hệ thống cho học sinh phổ thông. Công nghệ phần mềm còn là nền tảng cho các học phần nâng cao. Quản lý dự án phần mềm kế thừa trực tiếp kiến thức này. Hiểu đặc trưng phần mềm giúp kiểm soát chi phí và rủi ro. Phương pháp luận khoa học nâng cao chất lượng sản phẩm. Ngành công nghệ phần mềm thay đổi nhanh theo thời gian. Người học cần liên tục cập nhật công nghệ mới. Tư duy nền tảng vẫn giữ nguyên giá trị qua các thời kỳ. Nhập môn công nghệ phần mềm mở ra con đường phát triển nghề nghiệp. Đây là bước khởi đầu vững chắc cho mọi kỹ sư phần mềm tương lai.

4.1. Ứng dụng trong thực tiễn và giảng dạy

Kiến thức công nghệ phần mềm áp dụng rộng rãi trong nhiều lĩnh vực. Doanh nghiệp dùng quy trình chuẩn để phát triển sản phẩm. Đội ngũ phối hợp hiệu quả nhờ phương pháp luận chung. Đối với sinh viên Sư phạm, môn học hỗ trợ công tác giảng dạy. Họ hướng dẫn học sinh tư duy logic và giải quyết vấn đề. Các bài tập cuối chương gắn liền với tình huống thực tế. Người học rèn luyện kỹ năng phân tích và thiết kế. Nền tảng này giúp họ tự tin tham gia dự án phần mềm. Giá trị ứng dụng thể hiện rõ trong môi trường làm việc hiện đại.

4.2. Định hướng học tập và phát triển

Người học nên xây dựng nền tảng vững từ môn nhập môn. Việc nắm chắc khái niệm cơ bản là điều kiện tiên quyết. Sau đó, họ tiếp tục với các học phần chuyên sâu hơn. Quản lý dự án và kiến trúc phần mềm là hướng đi tự nhiên. Công nghệ luôn thay đổi nên cần cập nhật liên tục. Người học theo dõi xu hướng và công cụ mới. Thực hành thường xuyên củng cố kiến thức lý thuyết. Tham gia dự án thực tế mang lại kinh nghiệm quý giá. Tư duy hệ thống và kỷ luật là chìa khóa thành công lâu dài.

21/04/2026

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

NGUYỄN THẾ DŨNG NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Trƣờng Đại học Sƣ phạm - Đại học Huế Huế, tháng 11 năm 2014 1 Giáo trình này được viết bởi Nguyễn Thế Dũng, giảng viên Khoa Tin học, Trường Đại học Sư phạm - Đại học Huế. Giáo trình này được dùng để giảng dạy và học tập học phần: Nhập môn Công nghệ phần mềm. Mã số: TINS4392 2 Lời nói đầu Nhập môn Công nghệ phần mềm là môn học bắt buộc trong khung chương trình của hầu hết sinh viên ngành Sư phạm Tin học. Hiện nay đã có khá nhiều tài liệu về môn học này. Tuy vậy chúng phần lớn được trình bày dưới dạng sách chuyên khảo, do đó sinh viên rất khó khăn trong việc học môn này. Bên cạnh đó với các đặc thù của sinh viên ngành Sư phạm, nên việc học tập môn học mang nặng tính lý thuyết đối với sinh viên. Ngay từ đầu giáo trình, chúng tôi đưa ra mục tiêu và tóm tắt nội dung học phần mà khung chương trình đã quy định để làm rõ mục đích cần đạt được khi học môn học này của sinh viên Sư phạm Tin học so với sinh viên các ngành chuyên về Công nghệ phần mềm. Cuối các chương mục, chúng tôi đưa vào phần ôn tập chương cùng các câu hỏi và bài tập nhằm giúp sinh viên dễ học tập và có một cái nhìn rộng hơn về thực tiễn hay các vấn đề mở mà giáo trình chưa đề cập đến do giới hạn khuôn khổ. Do trong khung chương trình, phần quản lý dự án phần mềm được tách riêng thành một học phần gồm 2 tín chỉ, nên giáo trình sẽ không bao gồm phần này như thường thấy trong một số giáo trình khác. Giáo trình được chia thành 7 chương. Tổng quan về công nghệ phần mềm; Chương 2. Qui trình phát triển phần mềm; Chương 3. Phân tích và đặc tả yêu cầu; Chương 4. Thiết kế; Chương 5. Lập trình; Chương 6. Kiểm thử; Chương 7. Triển khai và bảo trì. 3 Trong quá trình biên soạn giáo trình này, chúng tôi có tham khảo một số tài liệu của một số tác giả khác nhằm mang lại những kiến thức phong phú, phù hợp nhất cho sinh viên, nhưng có thể chưa kịp liên hệ được với chính các tác giả ấy. Mong các Thầy, cô vì sự học của các sinh viên mà niệm tình bỏ quá. Tác giả chân thành cảm ơn các thầy cô Hà Viết Hải, Lê Văn Tường Lân, Nguyễn Thị Hoàng Anh… đã góp ý cho bản thảo rất tận tình. Đồng thời xin chân thành cảm ơn quý Thầy Cô khác cũng đã giúp đỡ chúng tôi rất nhiều. Chúng tôi cũng gửi lời cảm ơn đến rất nhiều bạn sinh viên đã giúp chúng tôi sưu tầm các tư liệu làm cơ sở để hoàn thành giáo trình này. Giáo trình không tránh khỏi những thiếu sót và đặc biệt là sự thiếu cập nhật thông tin đối với một môn học có tính thời sự công nghệ này. Rất mong sự góp ý, đánh giá, nhận xét của quý Thầy Cô, các bạn Sinh viên… để giáo trình được hoàn thiện hơn. Xin chân thành cảm ơn. Huế, ngày 10 tháng 09 năm 2014 Nguyễn Thế Dũng Khoa Tin học – ĐHSP Huế.com http://sites.com/site/nguyenthedunghue/ 4 Dưới đây là trích dẫn mục tiêu và tóm tắt nội dung của học phần được khung chương trình đào tạo giáo viên Tin học Trung học phổ thông do Bộ Giáo dục và Đào tạo ban hành năm 2007. Mục tiêu học phần NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giúp cho sinh viên nắm được quá trình phát triển một phần mềm một cách hiệu quả, mang tính công nghiệp và hiểu được những khái niệm cơ bản thuộc lĩnh vực này. Trên cơ sở đó sinh viên có định hướng đúng đắn khi học tập nghiên cứu các môn khác cũng như đi sâu vào nghiên cứu và thực hành làm phần mềm. Tóm tắt nội dung học phần NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Nội dung môn học bao gồm: các quy trình xây dựng và đánh giá một phần mềm; vận dụng để xây dựng được những phần mềm cỡ nhỏ đáp ứng thực tế công việc và các đề án. 5 MỤC LỤC CHƢƠNG 1. TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM . Một số khái niệm . Nhân tố con người và phân loại nghề nghiệp trong công nghệ phần mềm. Sản phẩm phần mềm – đặc trưng và phân loại. QUI TRÌNH PHÁT TRIỂN PHẦN MỀM. Qui trình phát triển phần mềm . Mô hình phát triển phần mềm . Trợ giúp tự động hoá phát triển . PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU . Đại cương về phân tích và đặc tả yêu cầu. Phân tích và đặc tả yêu cầu . Nguyên lý phân tích và mô hình hóa . Đặc tả yêu cầu . Thẩm định yêu cầu . Làm bản mẫu trong quá trình phân tích . Định dạng đặc tả yêu cầu . Quản lý yêu cầu . Phân tích và đặc tả yêu cầu theo mô hình tiến trình hợp nhất (Unified Process Model) . Khái niệm về thiết kế phần mềm . Thiết kế hướng chức năng . Thiết kế kiến trúc . Thiết kế giao diện người dùng . Thiết kế thủ tục . Thiết kế hướng đối tượng . LẬP TRÌNH . Ngôn ngữ lập trình . Phong cách lập trình . Kỹ thuật lập trình . Lập trình hướng hiệu quả thực hiện . Đại cương về kiểm thử phần mềm . Các mức độ kiểm thử. Các hoạt động kiểm thử . Chiến thuật kiểm thử phần mềm . Kỹ thuật kiểm thử . Kiểm thử hướng đối tượng . Chứng minh toán học tính đúng đắn của chương trình . TRIỂN KHAI VÀ BẢO TRÌ . Triển khai phần mềm . Hiện thực và triển khai phần mềm được xây dựng theo mô hình hướng đối tượng . 200 7 DANH MỤC BIỂU BẢNG Hình 1. Các thành phần của phần mềm. Kỹ nghệ phần mềm. Vòng đời phát triển hệ thống . Các giai đoạn và các sản phẩm cơ bản của từng giai đoạn tƣơng ứng . Mô hình thác nƣớc. Mô hình xoắn ốc. Mô hình tăng trƣởng . Mô hình RAD . Mô hình phát triển dựa trên cấu phần . Các hoạt động của phân tích và đặc tả yêu cầu . Qui trình xác định yêu cầu . Mô hình xoắn ốc của qui trình xác định yêu cầu . Qui trình nắm bắt yêu cầu . Các mô hình của bƣớc mô hình hóa yêu cầu. Tiến trình phân tích và thiết kế hƣớng đối tƣợng . Mô hình use-case cho bài toán quản lý học tập tại một trung tâm. Các hoạt động thiết kế phần mềm . Hoạt động thiết kế và sản phẩm tƣơng ứng . Số lƣợng module và chi phí tích hợp module . Mô hình kiến trúc dữ liệu tập trung . Kiến trúc khách dịch vụ (Client-Server Architecture) . Mô hình kiến trúc phân tầng . Kiến trúc gọi và trả lại . Mô hình điều khiển quảng bá . Mô hình điều khiển hƣớng ngắt . Tạo kiến trúc từ biểu đồ DFD . Phân hoạch dọc kiến trúc . Phân hoạch ngang kiến trúc . Chuyển đổi luồng chuyển đổi . Chuyển đổi luồng giao dịch . Các bƣớc thực hiện thiết kế giao diện . Các mức độ kiểm thử . Mô hình chữ V . Các hoạt động kiểm thử . Mô hình chữ V . Ký hiệu của thành phần . Quan hệ liên kết giữa các node . Qui trình quản lý bảo trì . Các hoạt động chính của bảo trì . Các giai đoạn kiểm thử và các công việc tƣơng ứng . Bảng thống kê chi phí cho quá trình bảo trì (nguồn [8]) . Các độ đo đƣợc sử dụng trong bảo trì . 209 9 BẢNG ĐỐI CHIẾU THUẬT NGỮ VIỆT – ANH Phần mềm Software Kỹ thuật thế hệ thứ Fourth 4 generation technique Phần cứng Hardware Bàn thợ Workbenches Công nghệ phần Software Đo điểm chuẩn Benchmarking mềm Technology Kỹ nghệ phần Software Phương pháp cùng Joint mềm Engineering phát triển ứng dụng Application Design CASE Computer-Aided Sơ đồ phân rã chức Function Software năng Decomposition Engineering Diagram Đặc tả yêu cầu Software Mô hình tiến trình Unified Process phần mềm Requirement hợp nhất Model Specification Bảo trì Maintenance Luồng giao dịch Transaction Flow Thiết kế kiến trúc Architectural Mẫu hình thức Stereotype Design Cài đặt Implementation Kiểm thử Testing Triển khai phần Software Dò mã Code browser mềm Deployment 10 CHƢƠNG 1. TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM Mục đích Trình bày các khái niệm thiết yếu của Công nghệ phần mềm như định nghĩa, đối tượng nghiên cứu, con người, sản phẩm… Yêu cầu Biết được những khái niệm thiết yếu trong Công nghệ phần mềm. Biết được tổ chức nhân sự và vai trò của từng thành viên trong nhóm phát triển phần mềm. Biết được các loại tài liệu kỹ thuật. Một số khái niệm Thuật ngữ phần mềm (software) cần được hiểu trong sự đối chiếu với thuật ngữ phần cứng (hardware) được đưa ra trong ngành điện tử. Theo đó phần cứng (hardware) là những thiết bị có thể sờ mó, cầm nắm, trong khi đó phần mềm là những gì làm cho các thiết bị vô tri vô giác đó có thể hoạt động được. Phần mềm trong Tin học có thể được hiểu bao gồm: - Tập các lệnh máy tính nhằm thực hiện các chức năng xác định; - Các cấu trúc dữ liệu cho phép chương trình thao tác với dữ liệu; - Các tài liệu giúp cho người dùng có thể vận hành được phần mềm. Trong một hệ thống máy tính, nếu trừ bỏ đi các thiết bị và các loại phụ kiện thì phần còn lại chính là phần mềm. Theo nghĩa hẹp: Phần mềm là tập các chương trình dịch vụ để tăng khả năng xử lý của phần cứng của máy tính (như hệ điều hành - OS). Theo nghĩa rộng: Phần mềm là tất cả các kỹ thuật ứng dụng để thực hiện những dịch vụ chức năng cho mục đích nào đó bằng phần cứng. Nếu hiểu theo nghĩa rộng thì phần mềm bao gồm các nhóm minh họa như dưới đây: 11 Hình 1. Các thành phần của phần mềm Nhóm các kỹ thuật, phương pháp luận Bao gồm: Các khái niệm và trình tự cụ thể hóa một hệ thống; Các phương pháp tiếp cận giải quyết vấn đề; Các trình tự thiết kế và phát triển được chuẩn hóa; Các phương pháp đặc tả yêu cầu, thiết kế hệ thống, thiết kế chương trình, kiểm thử, toàn bộ quy trình quản lý phát triển phần mềm. Nhóm các chương trình Đó là phần giao diện với phần cứng, tạo thành từ các nhóm lệnh chỉ thị cho máy tính biết trình tự thao tác xử lý dữ liệu. Phần mềm cơ bản: với chức năng cung cấp môi trường thao tác dễ dàng cho người sử dụng nhằm tăng hiệu năng xử lý của phần cứng (ví dụ như các hệ điều hành, các chương trình hệ thống). Phần mềm ứng dụng: dùng để xử lý nghiệp vụ thích hợp nào đó (quản lý, kế toán,.), phần mềm đóng gói, phần mềm của người dùng,.

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