Bài giảng Nhập môn Công nghệ phần mềm - Chương I: Tổng quan về công nghệ phần mềm
Bạn đang xem tài liệu "Bài giảng Nhập môn Công nghệ phần mềm - Chương I: Tổng quan về công nghệ phần mềm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_nhap_mon_cong_nghe_phan_mem_chuong_i_tong_quan_ve.pdf
Nội dung text: Bài giảng Nhập môn Công nghệ phần mềm - Chương I: Tổng quan về công nghệ phần mềm
- Chương 1 Tổng quan về cơng nghệ phầnmềm 1.1 Máy tính số và cơng dụng 1.2 Chương trình máy tính 1.3 Các mụctiêuchínhyếucủaviệc xây dựng phầnmềm 1.4 Các hoạt ₫ộng chứcnăng trong phát triểnphầnmềm 1.5 Qui trình phát triểnphầnmềm 1.6 Cơng nghệ phầnmềm 1.7 Kếtchương Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 1 I. Máy tính số và cơng dụng Các thiếtbị cụ thể hĩa : Con ngườithơngminhhơncác₫ộng vật khác nhiều. Trong cuộcsống, họ₫ãchế tạo ngày càng nhiều cơng cụ, thiếtbị₫ểhỗ trợ mình trong hoạt ₫ộng. Các cơng cụ, thiếtbị do con ngườichế tạongàycàngtinhvi, phứctạpvàthực hiện nhiều cơng việchơntrước ₫ây. Mỗi cơng cụ, thiếtbị thường chỉ thựchiện ₫ược 1 vài cơng việccụ thể nào ₫ĩ. Thí dụ, cây chổi ₫ể quét, radio ₫ể bắt và nghe ₫ài audio Ta gọicácthiếtbị này là thiếtbị cụ thể hĩa. Khuyết ₫iểmcủathiếtbị cụ thể hĩa là mỗithiếtbị chỉ giảiquyết1 cơng việc. Trong cuộcsống, ta cầnthựchiệnrất nhiều cơng việc, do ₫ĩtaphảichế tạorất nhiềuthiếtbị và việc này khơng cĩ dấu hiệuchấmdứt Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 2
- I. Máy tính số và cơng dụng Thiếtbị tổng quát hĩa - Máy tính số (digital computer) : nĩ cũng là 1 thiếtbị, nhưng thay vì chỉ thựchiện 1 vài chứcnăng cụ thể, sát với nhu cầu ₫ờithường của con người, nĩ cĩ thể thựchiện1 số hữuhạncácchứcnăng cơ bản(tậplệnh), mỗilệnh rấtsơ khai chưagiảiquyếttrựctiếp ₫ượcnhucầu ₫ờithường nào của con người. Cơ chế thựchiệncáclệnh là tự₫ộng, bắt ₫ầutừ lệnh ₫ược chỉ₫ịnh nào ₫ĩrồituầntự từng lệnh kế tiếpcho₫ếnlệnh cuối cùng. Danh sách các lệnh ₫ượcthựchiệnnày₫ượcgọilàchương trình. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 3 I. Máy tính số và cơng dụng Bấtkỳ cơng việc (bài tốn) ngồi ₫ời nào cũng cĩ thể ₫ượcchia thành trình tự nhiều cơng việcnhỏ hơn. Trình tự các cơng việc nhỏ này ₫ượcgọilàgiảithuậtgiải quyết cơng việcngồi₫ời. Mỗi cơng việcnhỏ hơncũng cĩ thể ₫ượcchianhỏ hơnnữanếunĩ cịn phứctạp, ⇒ cơng việc ngồi ₫ờicĩthể₫ượcmiêutả bằng 1 trình tự các lệnh máy (chương trình ngơn ngữ máy). Ưu ₫iểmcủa máy tính số là ta chỉ cầnchế tạo1 lần, rồi theo thời gian ta nhờ nĩ chạynhững phầnmềm khác nhau ₫ể thựchiện các bài tốn khác nhau. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 4
- I. Máy tính số và cơng dụng Vấn ₫ề mấuchốtcủaviệc dùng máy tính giải quyếtcơngviệc ngồi ₫ờilàlậptrình(₫ượchiểu nơm na là qui trình xác ₫ịnh trình tự₫úng các lệnh máy ₫ể thựchiệncơngviệc). Cho ₫ến nay, lập trìnhlàcơngviệccủa con người(vớisự trợ giúp ngày càng nhiều của máy tính). Với cơng nghệ phầncứng hiện nay, ta chỉ cĩ thể chế tạocácmáy tính mà tậplệnh máy rấtsơ khai, mỗilệnh máy chỉ cĩ thể thực hiện 1 cơng việcrấtnhỏ và ₫ơngiản ⇒ cơng việc ngồi ₫ời thường tương ₫ương vớitrìnhtự rấtlớn (hàng triệu) các lệnh máy ⇒ Lậptrìnhbằng ngơn ngữ máy rấtphứctạp, tốn nhiềuthời gian, cơng sức, kếtquả rấtkhĩbảo trì, phát triển. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 5 I. Máy tính số và cơng dụng Ta muốncĩmáyluậnlývớitậplệnh (₫ược ₫ặctả bởi ngơn ngữ lậptrình) caocấpvàgầngủihơnvới con người. Ta thường hiện thực máy này bằng 1 máy vậtlý+ 1 chương trình dịch. Cĩ 2 loại chương trình dịch : trình biên dịch (compiler) và trình thơng dịch (interpreter). Gọi ngơn ngữ máy vậtlýlàN0. Trìnhbiêndịch ngơn ngữ N1 sang ngơn ngữ N0 sẽ nhận ₫ầuvàolàchương trình ₫ượcviếtbằng ngơn ngữ N1, phân tích từng lệnh N1 rồichuyển thành danh sách các lệnh ngơn ngữ N0 cĩ chứcnăng tương ₫ương. Để viết chương trình dịch từ ngơn ngữ N1 sang N0 dễ dàng, ₫ộ phứctạp củatừng lệnh ngơn ngữ N1 khơng quá cao so vớitừng lệnh ngơn ngữ N0. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 6
- I. Máy tính số và cơng dụng Sau khi cĩ máy luậnlýhiểu ₫ược ngơn ngữ luận lý N1, ta cĩ thể ₫ịnh nghĩavàhiệnthựcmáyluận lý N2 theo cách trên và tiếptục ₫ến khi ta cĩ 1 máy luậnlýhiểu ₫ược ngơn ngữ Nm rấtgầngũi với con người, dễ dàng miêu tả giảithuậtcủa bài tốn cầngiải quyết Nhưng qui trình trên chưacĩ₫iểmdừng, vớiyêucầu ngày càng caovàkiếnthức ngày càng nhiều, ngườitatiếptục ₫ịnh nghĩa những ngơn ngữ mớivớitậplệnh ngày càng gầngũihơnvớicon người ₫ể miêu tả giảithuật càng dễ dàng, gọnnhẹ và trong sáng hơn. Hiện nay, ta thường viếtphầnmềmbằng các ngơn ngữ cấpcao như Java, C# Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 7 II. Chương trình máy tính — Phầnmềm Chương trình máy tính là mộtgiảithuậtcụ thể₫ểgiảiquyết cơng việc ngồi ₫ờimàmỗicơngviệc trong giảithuật ₫ượcmiêutả bằng 1 lệnh máy cụ thể. Chương trình máy tính cĩ thể là chương trình ngơn ngữ máy, nĩ cĩ thể chạytrựctiếpbởiCPU phầncứng củamáy. Chương trình máy tính cũng cĩ thể là chương trình ngơn ngữ cấp cao như C, C++, C#, Java, Trong trường hợpnàytaphảidùng chương trình dịch nĩ ra chương trình ngơn ngữ máy cĩ hành vi tương ₫ương trướckhicĩthể nhờ CPU máy tính chạytrựctiếp nĩ. Đốivớicácứng dụng lớnvàphứctạp, ta nên chọnngơnngữ cấp cao nhất ₫ể xây dựng nĩ. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 8
- II. Phầnmềm-FAQ 1. Phầnmềmlàgì? Chương trình máy tính và các tài liệukếthợp. Phầnmềmcĩthể ₫ượcviết theo yêu cầucánhân hay theo thị trường tổng quát. 2. Phầnmềmtốt cĩ các tính Nĩ phảicungcấpcácchứcnăng và ₫ộ hiệuquả chấtgì? hoạt ₫ộng theo yêu cầu, phảidễ bảo trì, sử dụng, hiệuchỉnh và nâng ấp. 3. Cơng nghệ phầnmềmlàgì Lĩnh vựckỹ thuật liên quan ₫ếnmọihoạt ₫ộng viết ? phầnmềm. 4. Các hoạt ₫ộng kỹ thuật Đặctả yêu cầu, phát triểnphầnmềm, kiểm ₫ịnh chính ₫ể viếtphầnmềmlàgì? phầnmềm, duy trì sự tiếntriểnphầnmềm. 5. Sự khác biệtgiữacơng Khoa học máy tính tậptrungvề lý thuyết và thơng nghệ phầnmềmvàkhoahọc tin nềntảng, cơng nghệ phầnmềm liên quan ₫ến máytínhlàgì? thựctiển phát triểnvàphânphốiphầnmềmhữu dụng. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 9 II. Phầnmềm-FAQ 6. Sự khác biệtgiữacơng Kỹ thuậthệ thống thiên về các lĩnh vực phát triển nghệ phầnmềmvàkỹ thuật hệ thống dựa trên máy tính như phầncứng, phần hệ thống là gì ? mềm; cơng nghệ phầnmềmchỉ là 1 phầncủakỹ thuậthệ thống. 7. Những thách thức chính Phầnmềmcầnviết ngày càng ₫adạng và phức trong cơng nghệ phầnmềmlà tạphơn, user muốnphầnmềm ₫ược phân phối gì ? ngày càng sớmhơnvàphảicĩ₫ộ tin cậycaohơn. 8. Chi phí phát triểnphần Khoảng 60% là phát triển, 40% kiểmthử. Đốivới mềmnhư thế nào ? phầnmềm cá nhân hĩa, chi phí tiếntriểnphần mềmsẽ vượt xa chi phí viếtphầnmềmlần ₫ầu. 9. Phương pháp và kỹ thuật Phụ thuộc vào tính chấtphầnmềmmàphương phát triểnphầnmềmnàolà pháp và kỹ thuậtnàosẽ thích hợpnhất. tốtnhất? Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 10
- II. Phầnmềm-FAQ 10. Web cĩ ảnh hưởng gì ₫ến Nhờ web, ta cĩ thể dùng nhiềudịch vụ phầnmềm cơng nghệ phầnmềm? cĩ sẵn, ta dễ dàng phát triểncáchệ thống phân tán dựavàodịch vụ. Việc phát triểnhệ thống dựa vào Web dẫn ₫ến nhiềutiếnbộ quan trọng về ngơn ngữ lậptrìnhvàvề₫ộsử dụng lạiphầnmềm Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 11 II. Phầnmềm—Phânloại Tùy vào gĩc nhìn mà ta phân loạiphầnmềmnhư thế nào. Thí dụ, nếudựa vào cách thứchoạt ₫ộng củaphầnmềm ₫ốivớingười dùng nĩ thì ta cĩ thể phân phầnmềmra2 loạisau: Phầnmềm ₫ại chúng : ₫ượcviết và bán cho bấtkỳ khách hàng nào muốn dùng chúng. Thí dụ như phầnmềm ₫ồ họa PhotoShop, tool quảnlýdự án, phầnmềmCAD Phầnmềm cá nhân hĩa : ₫ượcviết cho khách hàng ₫ặcbiệt, riêng lẻ theo yêu cầu riêng củahọ. Thí dụ hệ thống ₫iều khiển nhúng, phầnmềm ₫iềukhiển khơng lưu, phầnmềm kiểm sốt giao thơng. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 12
- II. Phầnmềm—Phânloại Nếudựavàokhả năng thay ₫ổi hành vi củaphầnmềm ₫ốivới người dùng nĩ thì ta cĩ thể phân phầnmềmra2 loạisau: Phầnmềmcụ thể hĩa hĩa : luơn cung cấp các tính năng và hành vi cố₫ịnh, cho dù ₫ượcchạybởiaivàlầnthứ mấy. Phầnmềmtổng quát hĩa : cĩ thể thay ₫ổi tính năng và hành vi theo thờigianvàtheoyêucầutừng người dùng. Thí dụ MS Word cĩ thể là phầnmềmsoạnthảovănbản, nhưng user cĩ thể cá nhân hĩa theo thờigian₫ể biếnnĩthànhứng dụng cĩ chứcnăng bấtkỳ. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 13 II. Phầnmềm—Phânloại Nếudựa vào tài nguyên mà phân mềm dùng thì ta cĩ thể phân phầnmềmra2 loạisau: Phầnmềmchạytrênmáy₫ơn: chỉ dùng những tài nguyên trên 1 máy trong qua trình hoạt ₫ộng. Phầnmềmmạng hay phân tán : dùng nhiều tài nguyên ở nhiều máy khác nhau ₫ể hoạt ₫ộng. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 14
- II. Phầnmềm—Phânloại Nếudựavàolĩnh vựcxử lýthìtacĩthể cĩ những loạiphầnmềm sau : Hệ₫iềuhành: làphầnmềmquản lý các tài nguyên cấpthấp (thường là phầncứng), che dấu các tính chấtvậtlýcủa chúng (thường rất khĩ hiểuvàsử dụng), rồicungcấplạimột interface sử dụng chúng vớicáclợi ₫iểmnhư an tồn, tin cậy, thân thiện, hiệuquả và nhấtlà₫ộclậpvới tính chấtvậtlýcủa tài nguyên ₫ượcsử dụng. Ngườitacịngọi HĐH là máy ảo (máy luậnlý) Chương trình dịch : sẽ dịch các file mã nguồn sang dạng mã máy tương ₫ương (thường ₫ược link lại thành file khả thi - *.exe). Mỗilầnchạy ứng dụng, ta chỉ kích hoạt file khả thi. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 15 II. Phầnmềm—Phânloại Ứng dụng văn phịng : Cho phép ngườidùngthựchiện1 số chứcnăng thơng thường liên quan ₫ếnvăn phịng. Microsoft Office là ứng dụng văn phịng ₫ượcsử dụng phổ biếnnhất. Open Office là ứng dụng vănphịngmãnguồnmở nhưng yếu hơnvàthiếu ổn ₫ịnh hơn). Ứng dụng nghiệpvụ & Database server : Ứng dụng nghiệpvụ thựchiệncácyêucầu nghiệpvụ trong các cơ quan, ₫ơnvị như quản lý nhân viên, quảnlýtàisản, quảnlý₫iểm, quảnlý bệnh nhân và bệnh án, Trong hầuhếtcácứng dụng nghiệp vụ, dữ liệucầnlưutrữ và xử lý là rấtlớn. Vấn ₫ề lưutrữ và quảnlýnhững dữ liệulớnsaochonhất quán, an tồn tin cậy, ₫ịi hỏi nhiềukiếnthức chuyên sâu và nhiềuthờigian cơng sứchiệnthực. Database server giải phĩng ngườilập trình khỏi các cơng việc liên quan ₫ến database. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 16
- II. Phầnmềm—Phânloại Biên tập& chơi multimedia : Multimedia là dữ liệu ₫aphương tiệnnhư vănbản, hình ảnh, âm thanh, film, Dữ liệu ₫a phương tiệngiúpngười dùng thích thú hơn khi nghiên cứuvề 1 vấn ₫ề nào ₫ĩ. Các ứng dụng biên tậpdữ liệu ₫aphương tiện cho phép ta xây dựng, thêm/bớt/hiệuchỉnh thơng tin và file ₫aphương tiệntương ứng. Thí dụ trình Photoshop cho ta xử lý ảnh tĩnh, SoundGold cho phép ta xử lý âm thanh, Photo Premiere chotabiêntập film Các ứng dụng chơi multimedia chophépngười dùng tham khảo file multimedia ₫ãcĩ. Thídụ trình Window Multimedia Player của Microsoft cho ta chơihầu hếtcác₫ịnh dạng file multimedia khác nhau từảnh tĩnh, âm thanh hay film. File multimedia cầnchơicĩthể nằmtrênmáy ₫ơn hay trên 1 server multimedia nào ₫ĩtrongmạng Internet Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 17 II. Phầnmềm—Phânloại Game : Game (ứng dụng trị chơi) là những ứng dụng dễ lơi cuốnngười dùng nhất. Cĩ 2 thể loại game phổ biến: game hành ₫ộng và game trí tuệ. Các ứng dụng trên mạng Internet : Thường ứng dụng mạng dùngmơhìnhhoạt ₫ộng client/server, mỗi module sẽ₫ĩng vai trị hoặc server, hoặc client. Module server sẽ quảnlýcác tài nguyên liên quan trên máy mình ₫ang chạy và cung cấp dịch vụ truy xuất các tài nguyên này cho các module ở các máy khác. Module client sẽ chạy trên máy người dùng, cung cấpgiaotiếpsử dụng thân thiện, dễ dàng, an tồn, Các module server/client cửa1 ứng dụng mạng thường tuân thủ 1 giao thứcxác₫ịnh nào ₫ĩ. Giao thức (protocol) là tậpcác thơng báo request/reply cùng ₫ịnh dạng cụ thể củatừng thơng báo mà client/server sẽ gởi/nhận cho nhau. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 18
- II. Phầnmềm—Phânloại Các ứng dụng CAD (Computer-Aided Design) : Giúp người thiếtkế xây dựng/hiệuchỉnh bảnthiếtkế trựctiếptrênmáy tính vớisự giám sát/kiểm sốt/trợ giúp ngày càng nhiềucủa phầnmềm, nhờ₫ĩ ta cĩ nhanh ₫ượcbảnthiếtkế₫úng ₫ắn, khoa học, bài bản, Bảnvẽ cĩ thể₫ược phân tích tự₫ộng ₫ể xác ₫ịnh mộtsố thơng tin cầnthiết. CAD ₫ược dùng ₫ể thiết kế chi tiếtcơ khí, mạch ₫iệntử, tàu thủy, xe hơi, nhà cửa, quần áo, Mộtsố phầnmềmtiêubiểu: OrCAD, AutoCAD, Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 19 II. Phầnmềm—Phânloại Ứng dụng CAM (Computer-Aided Manufacture) : Phầnmềm dùng máy tính hỗ trợ quá trình sảnxuấtvàchế tạolinh kiện/thiếtbị. Mộtsố dạng CAM như Robot cơng nghiệp, CNC, CAD/CAM, hệ thống ₫iềukhiển Robot cơng nghiệp thay thế con người trong việcthựchiện 1 cơng việccụ thể xác ₫ịnh. Robot cĩ 3 thành phần chính : tay máy, bộ₫iềukhiểnvàbộ cung cấpnăng lượng. Robot cĩ khả năng cảmnhậnmơi trường xung quanh (nhờ các sensor) và ₫áp ứng kịpthờivới sự thay ₫ổitrạng thái củamơitrường. CNC (Computer numerical control) ₫ượcsử dụng rộng rãi trong các thiếtbị máy, nĩ ₫iềukhiểnhoạt ₫ộng củamáydựatrênchương trình viếtsẵn. Mạch vi xử lý sẽ thu thậpcácthơngtin liênquan (thơng qua các mạch D/A), dựa trên thơng tin thu thập ₫ược, nĩ ₫iềukhiểnthiếtbị máy thay ₫ổi hành vi theo sự tác ₫ộng Khoac Khoaủa học& bên Kỹ thu ngồi.ật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 20
- II. Phầnmềm—Phânloại Ứng dụng nhúng (embedded apllications) : Là các ứng dụng ₫ượccài₫ặtvào1 thiếtbị cụ thể cĩ trang bị máy tính số với các tài nguyên hạnchế. Nhiệmvụ của ứng dụng nhúng là ₫iềukhiển quá trình hoạt ₫ộng củathiếtbị. Thí dụ chương trình ₫iềukhiểnmáyin laser, máyvẽ, máy photocopy, máy giặt, Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 21 II. Phầnmềm—Phânloại Mơ hình hĩa & mơ phỏng : Mơ hình hĩa ₫ược dùng ₫ể xem xét, phân tích hoặclênkế hoạch cho một cơng việcphứctạp. Mơ hình hĩa thường dùng các cơng thức tốn học ₫ể mơ tả một cơng việchay một quá trình phứctạp. Ví dụ : s = 0.5 at2 vớis làquảng ₫ường ₫i ₫ược, a là gia tốcvàt làthờigian. Mơ phỏng dùng máy tính ₫ể mơ hình hĩa và xem xét hệ thống : Kiểm tra, An tồn, Dự₫ốn, Nhanh chĩng và linh hoạt. Thường phầnmềm mơ hình hĩa & mơ phỏng ₫ượcsử dụng nhiều trong các lĩnh vực Giao thơng, Xã hộihọc, Dự₫ốn thời tiế, Thủylựchọc, Sinh học, Giáo dụchọc, Mơ hình 3 chiều. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 22
- III. Các mụctiêucủaviệc phát triểnphầnmềm Hiện nay, phầnmềmthường phảicĩnhiều tính năng hữudụng và dễ dàng sử dụng. Do ₫ĩ ₫ộ phứctạpthường cao, hơnnữa phầnmềmsẽ ₫ược dùng lâu dài qua nhiềuthế hệ user, trong quá trình dùng cĩ thể phầnmềmcần ₫ượcnângcấphiệuchỉnh theo yêu cầumới phát sinh. Ta dùng thuậtngữ “phát triểnphầnmềm” (software development) ₫ể chỉ tấtcả các hoạt ₫ộng giúp phầnmềmtồntạivàpháttriển theo thời gian. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 23 III. Các mụctiêucủaviệc phát triểnphầnmềm Chi phí “phát triểnphầnmềm” : Thường rấtlớnvàchiếmphầnrấtlớn trong chi phí xây dựng và duy trì hệ thống tính tốn, cao hơnnhiềuso với chi phí trang bị phầncứng. Chi phí duy trì tính hữudụng củaphầnmềm theo thờigiansử dụng thường rấtcaoso với chi phí xây dựng phiên bản ₫ầu tiên củaphầnmềm. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 24
- III. Các mụctiêucủaviệc phát triểnphầnmềm Phát triểnphầnmềmcần ₫ạtcácmục tiêu chính sau ₫ây : Phầnmềmphảithựchiện ₫úng và ₫ủ các chứcnăng ₫ề ra (tính ₫úng ₫ắnvàtin cậycủaphầnmềm). Đây là yêu cầuvề chứcnăng. Mỗichứcnăng phảithựchiện 1 cách hiệuquả, tin cậy trong thờigianqui ₫ịnh Đây là yêu cầuphi chứcnăng. Tốn chi phí thấpnhất, thời gian nhanh nhất ₫ể cĩ phầnmềm chạy ₫ược, dùng ₫ược. Ít khi cần thay ₫ổitheothờigianvàyêucầumớiphátsinh(₫ể hạnchế chi phí nâng cấp, hiệuchỉnh). Nếucĩthìchỉ cần thay ₫ổiítnhất-> tốithiểu chi phí hiệuchỉnh, nâng cấp. Nếucầnthay₫ổi, nâng cấp thì phầnmềmhiện hành phảihỗ trợ tối ₫achoviệc thay ₫ổi, nâng cấp này -> tốithiểu chi phí hiệuchỉnh, nâng cấp. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 25 IV. Các hoạt ₫ộng chứcnăng ⊂ phát triểnphầnmềm Việc phát triểnphầnmềm ₫ượctiến hành theo nhiềuchukỳ, trong mỗichukỳ ta phảithựchiện các hoạt ₫ộng chứcnăng sau ₫ây : Nắmbắt yêu cầu Requirements Phân tích yêu cầu Analysis Lậptàiliệuchotừng kếtquả Thiếtkế (dùng ngơn ngữ₫ặcdụng) Design Hiệnthực Implementation Kiểmthử Test Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 26
- IV. Các hoạt ₫ộng chứcnăng ⊂ phát triểnphầnmềm Nắmbắtyêucầu (Requirements) : Nhiệmvụ của workflow này là xác ₫ịnh chính xác, rõ ràng và ₫ầy ₫ủ các thơng tin sau liên quan ₫ếnchương trình : các chứcnăng củachương trình cần ₫áp ứng, mỗichứcnăng cầnxác₫ịnh rõ phụcvụ cho ai, họ cung cấp thơng tin gì ở dạng nào cho phầnmềm, phầnmềmxuấtkếtquả gì và ở dạng nào chương trình sẽ tương tác với các thành phần nào : loạingười nào, phầnmềm nào, thiếtbị nào, Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 27 IV. Các hoạt ₫ộng chứcnăng ⊂ phát triểnphầnmềm Phân tích yêu cầu (Analysis) : Nhiệmvụ của workflow này là phát họasơ lượccáchgiải quyếttừng chứcnăng củachương trình. Thường ta dựavàophương pháp phân tích từ trên xuống : Nội dung củaphương pháp này là xét xem, muốngiảiquyết vấn ₫ề nào ₫ĩthìcầnphải làm những cơng việcnhỏ hơnnào. Mỗi cơng việcnhỏ hơntìm₫ượclại ₫ược phân thành những cơng việcnhỏ hơnnữa, cứ như vậycho₫ến khi những cơng việcphải làm là những cơng việcthật ₫ơngiản, cĩ thể thực hiệndễ dàng. Thí dụ việchọclấybằng kỹ sư CNTT khoa CNTT ĐHBK TP.HCM cĩ thể bao gồm 9 cơng việcnhỏ hơnlàhọctừng học kỳ từ 1 tới9, họchọckỳ i là họcn mơnhọccủahọckỳ₫ĩ, học1 mơnhọclàhọcm chương củamơn₫ĩ, Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 28
- IV. Các hoạt ₫ộng chứcnăng ⊂ phát triểnphầnmềm Thiếtkế (Design) : Nhiệmvụ của workflow này là chi tiếthĩa cách giảiquyếttừng chứcnăng củachương trình ₫ếnmức ₫ộ dễ dàng viết code nhấtcĩthể cĩ. Nếu1 người làm, ta lặpthiếtkế từng chứcnăng theo 1 thứ tự xác ₫ịnh. Hiệnthực (Implementation) : Nhiệmvụ của workflow này là dịch bảnthiếtkế chi tiết thành mã nguồncủa ngơn ngữ lập trình xác ₫ịnh, từ₫ĩdịch ra mã máy ₫ể tạo thành chương trình khả thi cĩ thể chạytrênmáytính. Nếu1 ngườilàm, talặphiệnthựctừng chứcnăng thiếtkế (hay từng phầnnhỏ củachứcnăng) theo 1 thứ tự xác ₫ịnh. Kiểmthử (Testing) : Nhiệmvụ của workflow này kiểmtravàthử nghiệmchương trình thựcthixemnĩcĩlỗi khơng, nếucĩthìlỗi cụ thể nằm ở lệnh nào, tạisaobị lỗivàsữalỗi. Nếu1 ngườilàm, ta lặpkiểmthử từng hàm chứcnăng theo 1 thứ tự xác ₫ịnh. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 29 IV. Các hoạt ₫ộng chứcnăng ⊂ phát triểnphầnmềm Lậptàiliệuchotừng hoạt ₫ộng chứcnăng : Thựchiệnmỗi workflow sẽ tạoranhiềukếtquả, ta phảiquản lý, bảotrìcáckết quả này theo thờigiannhằmphụcvụ cho việcnghiêncứu, hiệu chỉnh, nâng cấpphầmmềm sau này. Một trong các việcquảnlý, bảotrìcáckếtquả tạo ₫ượclàlậptàiliệu. Ta phải dùng 1 ngơn ngữ thích hợp ₫ể lậptàiliệuchocáckếtquả sao cho việcquản lý, bảo trì, chuyểngiaophầnmềm ₫ượcdễ dàng, tin cậyvàhiệu quả Hiện nay, ngơn ngữ mơ hình UML (Unified Modeling Language) ₫ượcsử dụng rấtphổ biến ₫ể ₫ặctả, quảnlýcáctài liệu trong quá trình phát triểnphầnmềm. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 30
- V. Qui trình phát triểnphầnmềm Nĩi nơm na là trình tự các cơng việcmàtaphảituânthủ thực hiện ₫ể xây dựng và duy trì phầnmềmhữudụng theo thời gian. Cĩ nhiều qui trình phát triểnphầnmềm khác nhau ₫ã ₫ược ₫ề nghị và sử dụng. Mỗi qui trình cĩ những ưu, nhược ₫iểmriêngvà thích hợp trong từng loạiphầnmềmcụ thể. Cho dù dùng qui trình phát triểnphầnmềm nào thì cũng phải thựchiện các hoạt ₫ộng chứcnăng ₫ã ₫ượcgiớithiệu ở các slide trước, chỉ cĩ ₫ềucáchthứcvàthời ₫iểmthựchiện chúng như thế nào mà thơi. Các hoạt ₫ộng chứcnăng phảilàmlànắmbắtyêu cầuphầnmềm, phân tích yêu cầu, thiếtkế (kiếntrúcvàchi tiết), hiệnthực, kiểmthử và chuyển giao cho user. Mơ hình của qui trình phát triểnphầnmềmlàsự diễntả trừu tượng về qui trình ₫ĩ theo 1 vài gĩc nhìn xác ₫ịnh. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 31 V. Qui trình phát triểnphầnmềm Mơ hình phát triển thác nước (waterfall model). Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 32
- V. Qui trình phát triểnphầnmềm Mơ hình phát triển prototype (Incremental development model). Xây dưng prototype Thaoluậnvơi khach hang Đanh gia cua khach hang Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 33 V. Qui trình phát triểnphầnmềm Mơ hình phát triểnxoắn ốc (spiral development model). Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 34
- V. Qui trình phát triểnphầnmềm Mơ hình phát triểntăng tiến (Incremental development model). Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 35 V. Qui trình phát triểnphầnmềm Qui trình RUP (Rational Unified Process) : qui trình phát triển phầnmềmhợpnhấtcủa hãng Rational, do hãng Rational khởi xướng và duy trì. Nĩ dựatrênviệc dùng và kếthợpcác₫ốitượng ₫ể cấu thành phầnmềm. Nĩ cĩ nhiều ưu ₫iểmso với các qui trình khác, do ₫ĩ ₫ược dùng chủ yếuhiện nay trong các cơng ty phát triểnphầnmềm. Trong các chương cịn lại, ta sẽ tập trung giớithiệu các thơng tin cơ bảnvàchínhyếucủa qui trình phát triển này. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 36
- VI. Cơng nghệ phầnmềm Thuậtngữ “Cơng nghệ phầnmềm” (Software engineering) ₫ể nĩi về cáclýthuyết, phương pháp, qui trình và tiệních₫ượcdùng trong việc phát triểnphầnmềm chuyên nghiệphầutốithiểuchi phí, nâng cao tính ₫úng ₫ắn, bềnvững củaphầnmềm. Trong các nội dung của cơng nghệ phầnmềm thì qui trình phát triểnphầnmềmlàchủ yếunhất. Trong các qui trình phát triển ₫ược dùng thì hiệntại qui trình RUP ₫ượcdùngphổ biếnnhất. Qui trình này dựatrênnềntảng hướng ₫ốitượng. Ngơn ngữ UML sẽ₫ược dùng ₫ể ₫ặctả hầuhếtcáctàiliệutạora trong qui trình phát triểnRUP. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 37 VII. Kếtchương Chương này ₫ãgiớithiệuchochúngtabức tranh tồn cụcvề thiếtbị tổng quát hĩa là máy tính số, cách thứcnhờ máy tính thực hiện dùm 1 bài tốn, chi phí xây dựng và duy trì phầnmềm, các hoạt ₫ộng chứcnăng củapháttriểnphầnmềm, qui trình phát triểnphầnmềm và ý nghĩacủathuậtngữ cơng nghệ phầnmềm. Khoa Khoa học& Kỹ thuật Máy tính Mơn : Nhập mơn Cơng nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về cơng nghệ phầnmềm © 2010 Slide 38