Tập bài giảng Công nghệ phần mềm (Phần 1)

Tập bài giảng Công nghệ phần mềm  
MỤC LỤC  
Phạm Hùng Phú-Nguyễn Văn Thẩm  
i
 
Tập bài giảng Công nghệ phần mềm  
ii  
Phạm Hùng Phú-Nguyễn Văn Thẩm  
Tập bài giảng Công nghệ phần mềm  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
iii  
Tập bài giảng Công nghệ phần mềm  
iv  
Phạm Hùng Phú-Nguyễn Văn Thẩm  
Tập bài giảng Công nghệ phần mềm  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
v
Tập bài giảng Công nghệ phần mềm  
vi  
Phạm Hùng Phú-Nguyễn Văn Thẩm  
Tập bài giảng Công nghệ phần mềm  
BẢNG KÍ HIỆU  
Kí hiệu  
CNTT  
DBA  
EIS  
Ý nghĩa  
Công nghệ thông tin  
Database Administrator  
Excutive Information System  
Decision Supports System  
Group DSS  
DSS  
GDSS  
ES  
Expert Systems  
RAD  
FPA  
Rapid Application Development  
Function point analysis  
Data Flow Diagram  
DFD  
ERD  
FHD  
LTCT  
LTHĐT  
EP  
Entity - Relation Diagram  
Function Hiarachy Diagram  
Lập trình cấu trúc  
Lập trình hƣớng đối tƣợng  
Equivalence Partitioning  
Boundary Value Analysis  
Control Flow Graph  
BVA  
CFG  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
vii  
 
Tập bài giảng Công nghệ phần mềm  
CÁC DANH MỤC HÌNH  
viii  
Phạm Hùng Phú-Nguyễn Văn Thẩm  
 
Tập bài giảng Công nghệ phần mềm  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
ix  
Tập bài giảng Công nghệ phần mềm  
x
Phạm Hùng Phú-Nguyễn Văn Thẩm  
Tập bài giảng Công nghệ phần mềm  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
xi  
Tập bài giảng Công nghệ phần mềm  
CÁC DANH MỤC BẢNG  
xii  
Phạm Hùng Phú-Nguyễn Văn Thẩm  
 
Tập bài giảng Công nghệ phần mềm  
LỜI NÓI ĐẦU  
Ngày nay, tất cả các nƣớc phát triển đều phụ thuộc chủ yếu vào các hệ thống phần  
mềm. Và càng ngày càng có nhiều hệ thống đƣợc kiểm soát bởi phần mềm. Do đó,  
việc xây dựng và bảo trì hệ thống phần mềm một cách hiệu quả là yêu cầu cần thiết đối  
với nền kinh tế toàn cầu và của từng quốc gia. Môn học Công nghệ phần mềm là môn  
học cung cấp cho sinh viên các kiến thức cơ bản về lý thuyết và thực tiễn của công  
nghệ phần mềm. Để giúp sinh viên các ngành thuộc lĩnh vực Công nghệ thông tin  
trƣờng Đại học Sƣ phạm Kỹ thuật Nam Định học tốt hơn môn học này và vận dụng để  
triển khai xây dựng một phần mềm hoàn thiện thì việc xuất bản “Tập bài giảng Công  
nghệ phần mềm” là rất cần thiết.  
Tập bài giảng đƣợc chia làm 9 chƣơng:  
Chƣơng 1. Tổng quan về Công nghệ phần mềm  
Chƣơng 2. Tiêu chuẩn của sản phẩm phần mềm  
Chƣơng 3. Quản lý dự án  
Chƣơng 4. Xác định và phân tích yêu cầu  
Chƣơng 5. Thiết kế phần mềm  
Chƣơng 6. Cài đặt phần mềm  
Chƣơng 7. Kiểm tra chất lƣợng phần mềm  
Chƣơng 8. Bảo trì phần mềm và quản lý thay đổi phần mềm  
Chƣơng 9. Đóng gói phần mềm  
Mỗi chƣơng trong tập bài giảng đều hệ thống hóa các kiến thức cơ bản, cần  
thiết. Tƣơng ứng với mỗi nội dung kiến thức đều có các ví dụ minh họa cụ thể, gán với  
các ứng dụng thực tiễn. Đặc biệt, cuối tập bài giảng, tác giả đƣa ra một số bài tập làm  
thêm để sinh viên vận dụng củng cố lại kiến thức và kỹ năng.  
Với phần lý thuyết chi tiết, đầy đủ đƣợc trình bày một cách khoa học, logic và  
phần bài tập để củng cố kiến, chúng tôi hy vọng rằng tập bài giảng này sẽ mang lại cho  
bạn đọc nhiều điều bổ ích.  
Trong quá trình biên soạn, tập bài giảng không tránh khỏi những sai sót, rất  
mong đồng nghiệp và các em sinh viên góp ý kiến để tập bài giảng ngày càng đƣợc  
hoàn thiện hơn. Mọi sự đóng góp ý kiến xin gửi về Văn phòng Khoa Công nghệ thông  
tin-Trƣờng Đại học Sƣ phạm Kỹ thuật Nam Định-Phƣờng Lộc Hạ-Tp Nam Định.  
Nhóm biên soạn  
Phạm Hùng Phú- Nguyễn Văn Thẩm  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
xiii  
 
Tập bài giảng Công nghệ phần mềm  
Chƣơng 1  
TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM  
Khái niệm về công nghệ phần mềm đƣợc đƣa ra lần đầu tiên vào năm 1968 tại hội  
nghị thảo luận về khủng hoảng phần mềm. Công nghệ phần mềm đề cập tới các lý  
thuyết, phƣơng thức và công cụ để xây dựng phần mềm chuyên nghiệp, mang lại lợi  
nhuận cao.  
Trong chƣơng đầu tiên, chúng ta sẽ tìm hiểu về một số khái niệm cơ bản có liên  
quan tới phần mềm và công nghệ phần mềm. Từ đó, chúng ta có những hiểu biết cơ  
bản để tiếp tục nghiên cứu các chƣơng tiếp theo. Ngoài ra, quy trình xây dựng phần  
mềm đòi hỏi phải tuân thủ các nguyên tắc vô cùng chặt chẽ. Do đó, chúng ta sẽ tìm  
hiểu về những yêu cầu căn bản đối với một kỹ sƣ phần mềm.  
1.1. Các khái niệm cơ bản  
Các giai đoạn phát triển sản phẩm phần mềm  
- Giai đoạn 1 (từ 1950 đến giữa 1960): Xử lý theo lô, xử lý tập trung, ít xử lý phân  
tán, ít sửa đổi phần mềm.  
- Giai đoạn 2 (từ giữa 1960 đến giữa 1970)  
+ Hệ thống đa chƣơng trình và đa nguời dùng  
+ Bắt đầu cuộc “khủng hoảng” phần mềm  
- Giai đoạn 3 (từ giữa 1970 đến giữa 1980)  
+ Sự phát triển và sử dụng rộng rãi máy tính cá nhân  
+ Sự phát triển của các công ty phần mềm  
- Giai đoạn 4 (từ giữa 1980 đến nay)  
+ Phần cứng ngày càng phát triển  
+Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày càng phức tạp,  
công nghệ ngày càng phát triển…  
Ngày nay, sự phát triển phần mềm ngày càng thực sự khó kiểm soát đƣợc; các dự  
án phần mềm thƣờng kéo dài và vƣợt quá chi phí cho phép. Những nhà lập trình  
chuyên nghiệp phải cố gắng hoàn thành các dự án phần mềm một cách có chất lƣợng,  
đúng hạn trong chi phí cho phép. Cuộc khủng hoảng phần mềm xảy ra là do:  
- Số lƣợng các phần mềm tăng vọt (do sự phát triển của phần cứng: tăng khả năng,  
giá thành hạ)  
- Có quá nhiều khuyết điểm trong các phần mềm đƣợc dùng trong xã hội:  
+ Thực hiện không đúng yêu cầu (tính toán sai, không ổn định…)  
+ Thời gian bảo trì nâng cấp quá lâu, chi phí cao, hiệu quả thấp  
+ Khó sử dụng, thực hiện chậm  
Phạm Hùng Phú-Nguyễn Văn Thẩm  
1
   
Tập bài giảng Công nghệ phần mềm  
+ Không chuyển đổi dữ liệu giữa các phần mềm  
- Việc tăng vọt số lƣợng phần mềm là điều hợp lý và sẽ còn tiếp diễn  
- Các khuyết điểm của phần mềm có nguồn gốc chính từ phƣơng pháp, cách thức  
và quy trình tiến hành xây dựng phần mềm:  
+ Cảm tính: mỗi ngƣời theo một phƣơng pháp riêng  
+ Thô sơ, đơn giản: chỉ tập trung vào việc lập trình mà ít quan tâm đến các công  
việc cần làm khác (khảo sát hiện trạng, phân tích yêu cầu, thiết kế…)  
+ Thủ công: còn thiếu các công cụ hỗ trợ quy trình phát triển.  
Mục tiêu của công nghệ phần mềm là tạo ra những phần mềm tốt, giảm đến tối  
thiểu những may rủi có thể gây cho các ngƣời liên quan. Trong quá trình đề cập, chúng  
ta sử dụng các thuật ngữ:  
Phần mềm là gì ? Đƣợc xem xét ở hai góc độ:  
Phần mềm dƣới góc nhìn của ngƣời sử dụng: Chƣơng trình thực thi đƣợc trên máy  
tính hoặc các thiết bị chuyên dụng khác. Nhằm hỗ trợ cho các nhà chuyên môn trong  
từng lĩnh vực chuyên ngành thực hiện tốt hơn các thao tác nghiệp vụ của mình.  
- Môi trƣờng triển khai phần mềm:  
+ Máy tính: Desktop, Laptop, Tablet PC…  
+ Thiết bị chuyên dụng: Thiết bị di động: PDA, Pocket PC, ĐTDĐ; Các thiết bị  
chuyên dụng khác: set-top box, router,...  
- Hỗ trợ làm tốt hơn các thao tác nghiệp vụ:  
+ Tin học hóa nghiệp vụ hiện đang làm thủ công  
+ Cải tiến chức năng nghiệp vụ hiện đang đƣợc thực hiện trên máy tính  
+ Đề ra, xây dựng và triển khai chức năng nghiệp vụ mới  
Phần mềm dƣới góc nhìn của chuyên viên Tin học. Đây là một hệ thống bao gồm  
ba thành phần cơ bản:  
- Thành phần giao tiếp (Thành phần giao diện):  
+ Cho phép tiếp nhận các yêu cầu về việc sử dụng phần mềm từ ngƣời sử dụng, từ  
các thiết bị thu thập dữ liệu, hoặc từ các phần mềm khá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 hoạt động các thiết  
bị điều khiển (đóng/mở cửa, dừng hay cho chuyển động…)  
+ Một cách tổng quát, thành phần giao tiếp cho phép nhập/xuất thông tin cùng với  
hình thức trình bày/giao tiếp tƣơng ứng.  
+ Mục tiêu chính của thành phần này là đƣa thông tin từ thế giới thực bên ngoài  
phần mềm (ngƣời sử dụng, các thiết bị, phần mềm khác…) vào bên trong, hoặc ngƣợc  
lại.  
- Thành phần xử lý:  
2
Phạm Hùng Phú-Nguyễn Văn Thẩm  
Tập bài giảng Công nghệ phần mềm  
+ Kiểm tra tính hợp lệ của thông tin nguồn đƣợc cung cấp từ ngƣời dùng theo các  
quy định ràng buộc trong thế giới thực. Ví dụ: chỉ cho mƣợn tối đa 3 quyển sách, mỗi  
lớp học không quá 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 hoặc tiến hành xử lý theo thuật giải tự đề xuất.  
+ Việc xử lý dựa trên thông tin nguồn từ ngƣời sử dụng cung cấp. Ví dụ: tính  
nghiệm phƣơng trình bậc 2 dựa trên các hệ số nhập vào hoặc dữ liệu lƣu trữ có sẵn;  
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ữ.  
+ 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, hay lƣu trữ lại qua thành phần lƣu trữ, hoặc cả hai.  
+ Một cách tổng quát, thành phần xử lý là hệ thống chuyên xử lý tính toán, biến đổi  
dữ liệu. Dùng thông tin nguồn từ thành phần giao diện (chức năng nhập) hay thành  
phần dữ liệu (chức năng đọc); Kiểm tra tính hợp lệ (chức năng kiểm tra) và sau đó tiến  
hành xử lý (chức năng xử lý) - nếu cần thiết. Để cho ra kết quả sẽ đƣợc trình bày thông  
qua thành phần giao diện (chức năng xuất) hoặc lƣu trữ lại trong thành phần dữ liệu  
(chức năng ghi)  
- Thành phần lƣu trữ (thành phần dữ liệu):  
+ Cho phép lƣu trữ lại (chức năng ghi) các kết quả đã xử lý. Ví dụ: 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  
+ Cho phép truy xuất lại (chức năng đọ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 chuyên đọc ghi dữ liệu cùng  
với mô hình tổ chức lƣu trữ dữ liệu tƣơng ứng. Mục tiêu chính của thành phần này là  
chuyển đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ. Do đó, cần đƣợc xây dựng để  
thực hiện theo yêu cầu của ngƣời sử dụng.  
Phần mềm (software): là một tập hợp các câu lệnh đƣợc viết bằng một hoặc nhiều  
ngôn ngữ lập trình, nhằm tự động thực hiện một số các chức năng giải quyết một bài  
toán nào đó.  
Công nghệ (engineering): là cách sử dụng các công cụ, các kỹ thuật trong cách giải  
quyết một vấn đề nào đó.  
Công nghệ phần mềm (Software Engineering): là việc áp dụng các công cụ, các kỹ  
thuật một cách hệ thống trong việc phát triển các ứng dụng dựa trên máy tính. Đó  
chính là việc áp dụng các quan điểm, các tiến trình có kỷ luật và lƣợng hoá đƣợc, có  
bài bản và hệ thống để phát triển, vận hành và bảo trì phần mềm.  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
3
Tập bài giảng Công nghệ phần mềm  
Công nghệ phần mềm (Software Engineering) là các hoạt động bao gồm: phát  
triển, đƣa vào hoạt động, bảo trì, và loại bỏ phần mềm một cách có hệ thống. Các kỹ  
sƣ phần mềm sẽ đƣợc cung cấp với các kỹ thuật, công cụ cơ bản nhằm phát triển các  
hệ thống phần mềm.  
Nhƣ vậy, công nghệ phần mềm là lĩnh vực nghiên cứu của tin học, nhằm đề xuất  
các nguyên lý, phƣơng pháp, công cụ, cách tiếp cận và phƣơng tiện phục vụ cho việc  
thiết kế và cài đặt các sản phẩm phần mềm có chất lƣợng.  
Theo quan điểm của nhiều nhà nghiên cứu, có thể nhìn công nghệ phần mềm là  
một mô hình đƣợc phân theo ba tầng mà tất cả các tầng này đều nhằm tới mục tiêu  
chất lƣợng, chi phí, thời hạn phát triển phần mềm.  
Mô hình đƣợc phân theo ba tầng của công nghệ phần mềm đƣợc mô tả nhƣ sau:  
Hình 1.1. Mô hình ba tầng  
Ở đây tầng quy trình (process) liên quan tới vấn đề quản trị phát triển phần mềm  
nhƣ lập kế hoạch, quản trị chất lƣợng, tiến độ, chi phí, mua bán sản phẩm phụ, cấu  
hình phần mềm, quản trị sự thay đổi, quản trị nhân sự (trong môi trƣờng làm việc  
nhóm), việc chuyển giao, đào tạo, tài liệu. Nhƣ vậy, tầng quy trình bao gồm hệ thống  
các giai đoạn mà quá trình phát triển phần mềm phải trải qua, với mỗi giai đoạn cần  
xác định rõ: Mục tiêu, kết quả nhận từ giai đoạn trƣớc đó, kết quả chuyển giao cho giai  
đoạn kế tiếp. Các giai đoạn có thể đƣợc mô tả nhƣ sau  
Hình 1.2. Tầng quy trình (process)  
4
Phạm Hùng Phú-Nguyễn Văn Thẩm  
   
Tập bài giảng Công nghệ phần mềm  
+ Phân tích: Mô tả mức phát thảo các thành phần của phần mềm (đã có yêu cầu)  
+ Thiết kế: Mô tả mức chi tiết các thành phần của phần mềm (đã có yêu cầu)  
+ Lập trình: Thực hiện các thành phần của phần mềm (đã thiết kế)  
+ Kiểm tra: kiểm chứng các thành phần của phần mềm (đã thực hiện)  
Tầng phƣơng pháp (methods) hay cách thức, công nghệ, kỹ thuật để làm phần  
mềm: liên quan đến tất cả các công đoạn phát triển hệ thống nhƣ nghiên cứu yêu cầu,  
thiết kế, lập trình, kiểm thử và bảo trì. Phƣơng pháp dựa trên những nguyên lý cơ bản  
nhất cho tất cả các lĩnh vực công nghệ kể cả các hoạt động mô hình hoá và kỹ thuật  
mô tả. Nhƣ vậy, tầng phƣơng pháp bao gồm hệ thống các hƣớng dẫn cho phép từng  
bƣớc thực hiện một giai đoạn nào đó trong quy trình phần mềm.  
Tầng công cụ (tools) liên quan đến việc cung cấp các phƣơng tiện hỗ trợ tự động  
hay bán tự động cho các tầng quá trình và phƣơng pháp (công nghệ). Nhƣ vậy, tầng  
công cụ bao gồm hệ thống các phần mềm trợ giúp trong lĩnh vực xây dựng phần mềm,  
hỗ trợ các chuyên viên tin học trong các bƣớc xây dựng phần mềm theo một phƣơng  
pháp nào đó với một quy trình đƣợc chọn trƣớc.  
Qua sơ đồ trên, ta thấy rõ công nghệ phần mềm là một khái niệm đề cập không chỉ  
tới các công nghệ và công cụ phần mềm mà còn tới cả cách thức phối hợp công nghệ,  
phƣơng pháp và công cụ theo các quy trình nghiêm ngặt để làm ra sản phẩm có chất  
lƣợng.  
1.2. Kỹ sƣ phần mềm  
Quy trình xây dựng phần mềm đƣợc thực hiện trong một môi trƣờng chuyên  
nghiệp và đòi hỏi tuân thủ các nguyên tắc một cách chính xác. Do đó, những kỹ sƣ  
phần mềm phải coi công việc của họ là trách nhiệm to lớn, chứ không đơn thuần chỉ là  
việc ứng dụng kỹ thuật.  
Kỹ sƣ phần mềm phải ứng xử trung thực và cách làm của họ phải rất chuyên  
nghiệp và đúng quy tắc. Một số nguyên tắc cần thiết mà một kỹ sƣ phần mềm phải  
thực hiện:  
- Sự tin cậy: Kỹ sƣ phần mềm phải tạo đƣợc sự tin cậy từ phía nhân viên và khách  
hàng.  
- Năng lực: Kỹ sƣ phần mềm không nên trình bày sai khả năng của mình, không  
nên nhận những công việc vƣợt quá khả năng của mình.  
- Các quyền về tài sản trí tuệ: Kỹ sƣ phần mềm nên quan tâm về các tài sản trí tuệ  
đƣợc bảo hộ nhƣ: bằng sáng chế, quyền tác giả, … để đảm bảo rằng tất cả tài sản trí  
tuệ của nhân viên và khách hàng đều đƣợc bảo hộ.  
- Lạm dụng máy tính: Kỹ sƣ phần mềm không nên sử dụng các kỹ năng của mình  
để gây ảnh hƣởng tới ngƣời khác. Lạm dụng máy tính có thể đƣợc hiểu là những việc  
Phạm Hùng Phú -Nguyễn Văn Thẩm  
5
 
Tập bài giảng Công nghệ phần mềm  
tầm thƣờng. Ví dụ chơi điện tử trên máy tính của ngƣời khác đến những vấn đề  
nghiêm trọng, chẳng hạn phát tán virus.  
Vấn đề về tính chuyên nghiệp và đúng quy tắc đối với kỹ sƣ phần mềm quan trọng  
tới mức một số tổ chức ở Mỹ đã hợp tác để phát triển bản Code of Ethics gồm 8 quy  
tắc liên quan đến ứng xử và cách ra quyết định của các kỹ sƣ phần mềm chuyên  
nghiệp.  
Kỹ sƣ phần mềm (Software engineer): là một ngƣời biết cách áp dụng rộng rãi  
những kiến thức về cách phát triển ứng dụng vào việc tổ chức phát triển một cách có  
hệ thống các ứng dụng. Công việc của ngƣời kỹ sƣ phần mềm là: đánh giá, lựa chọn,  
sử dụng những cách tiếp cận có tính hệ thống, chuyên biệt, rõ ràng trong việc phát  
triển, đƣa vào ứng dụng, bảo trì, và thay thế phần mềm.  
Do đặc điểm nghề nghiệp, ngƣời kỹ sƣ phần mềm phải có những kỹ năng cơ bản  
nhƣ:  
- Định danh, đánh giá, cài đặt, lựa chọn một phƣơng pháp luận thích hợp và các  
công cụ CASE.  
- Biết cách sử dụng các mẫu phần mềm (prototyping).  
- Biết cách lựa chọn ngôn ngữ, phần cứng, phần mềm.  
- Quản lý cấu hình, lập sơ đồ và kiểm soát việc phát triển của các tiến trình.  
- Lựa chọn ngôn ngữ máy tính và phát triển chƣơng trình máy tính.  
- Đánh giá và quyết định khi nào loại bỏ và nâng cấp các ứng dụng.  
Mục tiêu của kỹ sƣ phần mềm là sản xuất ra các sản phẩm có chất lƣợng cao và  
phù hợp với các quy trình phát triển chuẩn mực. Các quy trình bao gồm:  
- Việc phát triển (Development): Đƣợc bắt đầu từ khi quyết định phát triển sản  
phẩm phần mềm và kết thúc khi sản phẩm phần mềm đƣợc chuyển giao cho ngƣời sử  
dụng.  
- Việc sử dụng (Operations): Là việc xử lý, vận hành hằng ngày sản phẩm phần  
mềm.  
- Việc bảo trì (Maintenance): Thực hiện những thay đổi mang tính logic đối với hệ  
thống và chƣơng trình để chữa những lỗi cố định, cung cấp những thay đổi về công  
việc, hoặc làm cho phần mềm đƣợc hiệu quả hơn.  
- Việc loại bỏ (Retirement): Thƣờng là việc thay thế các ứng dụng hiện thời bởi các  
ứng dụng mới.  
1.3. Nhân tố con ngƣời trong ngành công nghiệp phần mềm  
Đối với một sản phẩm phần mềm, một ngƣời không thể hoàn thành mà là kết quả  
lao động của một nhóm ngƣời, gọi đó là nhóm phát triển phần mềm. Mỗi thành viên  
trong nhóm không đƣợc vị kỷ, thành quả lao động của nhóm đƣợc xen nhƣ là thành  
quả chung và phải tuyệt đối trung thành với nhóm.  
6
Phạm Hùng Phú-Nguyễn Văn Thẩm  
 
Tải về để xem bản đầy đủ
pdf 137 trang yennguyen 21340 Free
Bạn đang xem 20 trang mẫu của tài liệu "Tập bài giảng Công nghệ phần mềm (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftap_bai_giang_cong_nghe_phan_mem_phan_1.pdf