Bài giảng Nhập môn Công nghệ phần mềm: Chương 1 - Tổng quan về công nghệ phần mềm bao gồm những nội dung về máy tính số và công dụng; chương trình máy tính; các mục tiêu chính yếu của việc xây dựng phần mềm; hoạt động chức năng trong phát triển phần mềm; qui trình phát triển phần mềm; công nghệ phần mềm.
Chương Tổng quan công nghệ phần mềm 1.1 Máy tính số cơng dụng 1.2 Chương trình máy tính 1.3 Các mục tiêu yếu việc xây dựng phần mềm 1.4 Các hoạt ₫ộng chức phát triển phần mềm 1.5 Qui trình phát triển phần mềm 1.6 Công nghệ phần mềm 1.7 Kết chương Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide I Máy tính số cơng dụng Các thiết bị cụ thể hóa : Con người thông minh ₫ộng vật khác nhiều Trong sống, họ ₫ã chế tạo ngày nhiều cơng cụ, thiết bị ₫ể hỗ trợ hoạt ₫ộng Các công cụ, thiết bị người chế tạo ngày tinh vi, phức tạp thực nhiều công việc trước ₫ây Mỗi công cụ, thiết bị thường thực ₫ược vài công việc cụ thể ₫ó Thí dụ, chổi ₫ể qt, radio ₫ể bắt nghe ₫ài audio Ta gọi thiết bị thiết bị cụ thể hóa Khuyết ₫iểm thiết bị cụ thể hóa thiết bị giải công việc Trong sống, ta cần thực nhiều công việc, ₫ó ta phải chế tạo nhiều thiết bị việc khơng có dấu hiệu chấm dứt… Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide I Máy tính số cơng dụng Thiết bị tổng qt hóa - Máy tính số (digital computer) : thiết bị, thay thực vài chức cụ thể, sát với nhu cầu ₫ời thường người, thực số hữu hạn chức (tập lệnh), lệnh sơ khai chưa giải trực tiếp ₫ược nhu cầu ₫ời thường người Cơ chế thực lệnh tự ₫ộng, bắt ₫ầu từ lệnh ₫ược ₫ịnh ₫ó lệnh cho ₫ến lệnh cuối Danh sách lệnh ₫ược thực ₫ược gọi chương trình Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide I Máy tính số cơng dụng Bất kỳ cơng việc (bài tốn) ngồi ₫ời ₫ược chia thành trình tự nhiều cơng việc nhỏ Trình tự cơng việc nhỏ ₫ược gọi giải thuật giải công việc ngồi ₫ời Mỗi cơng việc nhỏ ₫ược chia nhỏ cịn phức tạp, ⇒ cơng việc ngồi ₫ời ₫ược miêu tả trình tự lệnh máy (chương trình ngơn ngữ máy) Ưu ₫iểm máy tính số ta cần chế tạo lần, theo thời gian ta nhờ chạy phần mềm khác ₫ể thực toán khác Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide I Máy tính số cơng dụng Vấn ₫ề mấu chốt việc dùng máy tính giải cơng việc ngồi ₫ời lập trình (₫ược hiểu nơm na qui trình xác ₫ịnh trình tự ₫úng lệnh máy ₫ể thực công việc) Cho ₫ến nay, lập trình cơng việc người (với trợ giúp ngày nhiều máy tính) Với cơng nghệ phần cứng nay, ta chế tạo máy tính mà tập lệnh máy sơ khai, lệnh máy thực công việc nhỏ ₫ơn giản ⇒ cơng việc ngồi ₫ời thường tương ₫ương với trình tự lớn (hàng triệu) lệnh máy ⇒ Lập trình ngơn ngữ máy phức tạp, tốn nhiều thời gian, cơng sức, kết khó bảo trì, phát triển Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan cơng nghệ phần mềm Slide I Máy tính số cơng dụng Ta muốn có máy luận lý với tập lệnh (₫ược ₫ặc tả ngôn ngữ lập trình) cao cấp gần gủi với người Ta thường thực máy máy vật lý + chương trình dịch Có loại chương trình dịch : trình biên dịch (compiler) trình thơng dịch (interpreter) Gọi ngơn ngữ máy vật lý N0 Trình biên dịch ngơn ngữ N1 sang ngơn ngữ N0 nhận ₫ầu vào chương trình ₫ược viết ngơn ngữ N1, phân tích lệnh N1 chuyển thành danh sách lệnh ngôn ngữ N0 có chức tương ₫ương Để viết chương trình dịch từ ngôn ngữ N1 sang N0 dễ dàng, ₫ộ phức tạp lệnh ngôn ngữ N1 không cao so với lệnh ngôn ngữ N0 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide I Máy tính số cơng dụng Sau có máy luận lý hiểu ₫ược ngơn ngữ luận lý N1, ta ₫ịnh nghĩa thực máy luận lý N2 theo cách tiếp tục ₫ến ta có máy luận lý hiểu ₫ược ngôn ngữ Nm gần gũi với người, dễ dàng miêu tả giải thuật tốn cần giải Nhưng qui trình chưa có ₫iểm dừng, với yêu cầu ngày cao kiến thức ngày nhiều, người ta tiếp tục ₫ịnh nghĩa ngôn ngữ với tập lệnh ngày gần gũi với người ₫ể miêu tả giải thuật dễ dàng, gọn nhẹ sáng Hiện nay, ta thường viết phần mềm ngôn ngữ cấp cao Java, C# Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide II Chương trình máy tính — Phần mềm Chương trình máy tính giải thuật cụ thể ₫ể giải cơng việc ngồi ₫ời mà công việc giải thuật ₫ược miêu tả lệnh máy cụ thể Chương trình máy tính chương trình ngơn ngữ máy, chạy trực tiếp CPU phần cứng máy Chương trình máy tính chương trình ngơn ngữ cấp cao C, C++, C#, Java,… Trong trường hợp ta phải dùng chương trình dịch chương trình ngơn ngữ máy có hành vi tương ₫ương trước nhờ CPU máy tính chạy trực tiếp Đối với ứng dụng lớn phức tạp, ta nên chọn ngôn ngữ cấp cao ₫ể xây dựng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide II Phần mềm - FAQ Phần mềm ? Chương trình máy tính tài liệu kết hợp Phần mềm ₫ược viết theo yêu cầu cá nhân hay theo thị trường tổng quát Phần mềm tốt có tính chất ? Nó phải cung cấp chức ₫ộ hiệu hoạt ₫ộng theo yêu cầu, phải dễ bảo trì, sử dụng, hiệu chỉnh nâng ấp Công nghệ phần mềm ? Lĩnh vực kỹ thuật liên quan ₫ến hoạt ₫ộng viết phần mềm Các hoạt ₫ộng kỹ thuật Đặc tả yêu cầu, phát triển phần mềm, kiểm ₫ịnh ₫ể viết phần mềm gì? phần mềm, trì tiến triển phần mềm Sự khác biệt công nghệ phần mềm khoa học máy tính ? Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Khoa học máy tính tập trung lý thuyết thông tin tảng, công nghệ phần mềm liên quan ₫ến thực tiển phát triển phân phối phần mềm hữu dụng Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide II Phần mềm - FAQ Sự khác biệt công nghệ phần mềm kỹ thuật hệ thống ? Kỹ thuật hệ thống thiên lĩnh vực phát triển hệ thống dựa máy tính phần cứng, phần mềm; cơng nghệ phần mềm phần kỹ thuật hệ thống Những thách thức Phần mềm cần viết ngày ₫a dạng phức công nghệ phần mềm tạp hơn, user muốn phần mềm ₫ược phân phối ? ngày sớm phải có ₫ộ tin cậy cao Chi phí phát triển phần mềm ? Khoảng 60% phát triển, 40% kiểm thử Đối với phần mềm cá nhân hóa, chi phí tiến triển phần mềm vượt xa chi phí viết phần mềm lần ₫ầu Phương pháp kỹ thuật phát triển phần mềm tốt ? Phụ thuộc vào tính chất phần mềm mà phương pháp kỹ thuật thích hợp Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 10 II Phần mềm - FAQ 10 Web có ảnh hưởng ₫ến cơng nghệ phần mềm ? Nhờ web, ta dùng nhiều dịch vụ phần mềm có sẵn, ta dễ dàng phát triển hệ thống phân tán dựa vào dịch vụ Việc phát triển hệ thống dựa vào Web dẫn ₫ến nhiều tiến quan trọng ngơn ngữ lập trình ₫ộ sử dụng lại phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 11 II Phần mềm — Phân loại Tùy vào góc nhìn mà ta phân loại phần mềm Thí dụ, dựa vào cách thức hoạt ₫ộng phần mềm ₫ối với người dùng ta phân phần mềm loại sau : Phần mềm ₫ại chúng : ₫ược viết bán cho khách hàng muốn dùng chúng Thí dụ phần mềm ₫ồ họa PhotoShop, tool quản lý dự án, phần mềm CAD… Phần mềm cá nhân hóa : ₫ược viết cho khách hàng ₫ặc biệt, riêng lẻ theo yêu cầu riêng họ Thí dụ hệ thống ₫iều khiển nhúng, phần mềm ₫iều khiển không lưu, phần mềm kiểm sốt giao thơng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 12 II Phần mềm — Phân loại Nếu dựa vào khả thay ₫ổi hành vi phần mềm ₫ối với người dùng ta phân phần mềm loại sau : Phần mềm cụ thể hóa hóa : ln cung cấp tính hành vi cố ₫ịnh, cho dù ₫ược chạy lần thứ Phần mềm tổng quát hóa : thay ₫ổi tính hành vi theo thời gian theo yêu cầu người dùng Thí dụ MS Word phần mềm soạn thảo văn bản, user cá nhân hóa theo thời gian ₫ể biến thành ứng dụng có chức Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 13 II Phần mềm — Phân loại Nếu dựa vào tài ngun mà phân mềm dùng ta phân phần mềm loại sau : Phần mềm chạy máy ₫ơn : dùng tài nguyên máy qua trình hoạt ₫ộng Phần mềm mạng hay phân tán : dùng nhiều tài nguyên nhiều máy khác ₫ể hoạt ₫ộng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 14 II Phần mềm — Phân loại Nếu dựa vào lĩnh vực xử lý ta có loại phần mềm sau : Hệ ₫iều hành : phần mềm quản lý tài nguyên cấp thấp (thường phần cứng), che dấu tính chất vật lý chúng (thường khó hiểu sử dụng), cung cấp lại interface sử dụng chúng với lợi ₫iểm an toàn, tin cậy, thân thiện, hiệu ₫ộc lập với tính chất vật lý tài nguyên ₫ược sử dụng Người ta gọi HĐH máy ảo (máy luận lý) Chương trình dịch : dịch 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ỗi lần chạy ứng dụng, ta kích hoạt file khả thi Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 15 II Phần mềm — Phân loại Ứng dụng văn phòng : Cho phép người dùng thực số chức thông thường liên quan ₫ến văn phòng Microsoft Office ứng dụng văn phòng ₫ược sử dụng phổ biến Open Office ứng dụng văn phòng mã nguồn mở yếu thiếu ổn ₫ịnh hơn) Ứng dụng nghiệp vụ & Database server : Ứng dụng nghiệp vụ thực yêu cầu nghiệp vụ quan, ₫ơn vị quản lý nhân viên, quản lý tài sản, quản lý ₫iểm, quản lý bệnh nhân bệnh án, Trong hầu hết ứng dụng nghiệp vụ, liệu cần lưu trữ xử lý lớn Vấn ₫ề lưu trữ quản lý liệu lớn cho quán, an toàn tin cậy, ₫òi hỏi nhiều kiến thức chuyên sâu nhiều thời gian cơng sức thực Database server giải phóng người lập trình khỏi cơng việc liên quan ₫ến database Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 16 II Phần mềm — Phân loại Biên tập & chơi multimedia : Multimedia liệu ₫a phương tiện văn bản, hình ảnh, âm thanh, film, Dữ liệu ₫a phương tiện giúp người dùng thích thú nghiên cứu vấn ₫ề ₫ó Các ứng dụng biên tập liệu ₫a phương tiện cho phép ta xây dựng, thêm/bớt/hiệu chỉnh thông tin file ₫a phương tiện tươ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 cho ta biên tập film Các ứng dụng chơi multimedia cho phép người dùng tham khảo file multimedia ₫ã có Thí dụ trình Window Multimedia Player Microsoft cho ta chơi hầu hết ₫ịnh dạng file multimedia khác từ ảnh tĩnh, âm hay film File multimedia cần chơi nằm máy ₫ơn hay server multimedia ₫ó mạng Internet Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 17 II Phần mềm — Phân loại Game : Game (ứng dụng trò chơi) ứng dụng dễ lơi người dùng Có thể loại game phổ biến : game hành ₫ộng game trí tuệ Các ứng dụng mạng Internet : Thường ứng dụng mạng dùng mơ hình hoạt ₫ộng client/server, module ₫óng vai trị server, client Module server quản lý tài nguyên liên quan máy ₫ang chạy cung cấp dịch vụ truy xuất tài nguyên cho module máy khác Module client chạy máy người dùng, cung cấp giao tiếp sử dụng thân thiện, dễ dàng, an toàn, Các module server/client cửa ứng dụng mạng thường tuân thủ giao thức xác ₫ịnh ₫ó Giao thức (protocol) tập thơng báo request/reply ₫ịnh dạng cụ thể thông báo mà client/server gởi/nhận cho Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 18 II Phần mềm — Phân loại Các ứng dụng CAD (Computer-Aided Design) : Giúp người thiết kế xây dựng/hiệu chỉnh thiết kế trực tiếp máy tính với giám sát/kiểm sốt/trợ giúp ngày nhiều phần mềm, nhờ ₫ó ta có nhanh ₫ược thiết kế ₫úng ₫ắn, khoa học, bản, Bản vẽ ₫ược phân tích tự ₫ộng ₫ể xác ₫ịnh số thông tin cần thiết CAD ₫ược dùng ₫ể thiết kế chi tiết khí, mạch ₫iện tử, tàu thủy, xe hơi, nhà cửa, quần áo,… Một số phần mềm tiêu biểu: OrCAD, AutoCAD,… Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 19 II Phần mềm — Phân loại Ứng dụng CAM (Computer-Aided Manufacture) : Phần mềm dùng máy tính hỗ trợ trình sản xuất chế tạo linh kiện/thiết bị Một số dạng CAM Robot công nghiệp, CNC, CAD/CAM, hệ thống ₫iều khiển Robot công nghiệp thay người việc thực công việc cụ thể xác ₫ịnh Robot có thành phần : tay máy, ₫iều khiển cung cấp lượng Robot có khả cảm nhận mơi trường xung quanh (nhờ sensor) ₫áp ứng kịp thời với thay ₫ổi trạng thái môi trường CNC (Computer numerical control) ₫ược sử dụng rộng rãi thiết bị máy, ₫iều khiển hoạt ₫ộng máy dựa chương trình viết sẵn Mạch vi xử lý thu thập thông tin liên quan (thông qua mạch D/A), dựa thơng tin thu thập ₫ược, ₫iều khiển thiết bị máy thay ₫ổi hành vi theo tác ₫ộng Môn : Nhập môn Công nghệ phần mềm Khoa Khoa họcbên & Kỹ thuật Máy tính ngồi Trường ĐH Bách Khoa Tp.HCM © 2010 Chương : Tổng quan công nghệ phần mềm Slide 20 II Phần mềm — Phân loại Ứng dụng nhúng (embedded apllications) : Là ứng dụng ₫ược cài ₫ặt vào thiết bị cụ thể có trang bị máy tính số với tài nguyên hạn chế Nhiệm vụ ứng dụng nhúng ₫iều khiển trình hoạt ₫ộng thiết bị Thí dụ chương trình ₫iều khiển máy in laser, máy vẽ, máy photocopy, máy giặt, Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 21 II Phần mềm — Phân loại Mơ hình hóa & mơ : Mơ hình hóa ₫ược dùng ₫ể xem xét, phân tích lên kế hoạch cho công việc phức tạp Mơ hình hóa thường dùng cơng thức tốn học ₫ể mơ tả cơng việc hay q trình phức tạp Ví dụ : s = 0.5 at2 với s quảng ₫ường ₫i ₫ược, a gia tốc t thời gian Mơ dùng máy tính ₫ể mơ hình hóa xem xét hệ thống : Kiểm tra, An tồn, Dự ₫ốn, Nhanh chóng linh hoạt Thường phần mềm mơ hình hóa & mơ ₫ược sử dụng nhiều lĩnh vực Giao thông, Xã hội học, Dự ₫oán thời tiế, Thủy lực học, Sinh học, Giáo dục học, Mơ hình chiều Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 22 III Các mục tiêu việc phát triển phần mềm Hiện nay, phần mềm thường phải có nhiều tính hữu dụng dễ dàng sử dụng Do ₫ó ₫ộ phức tạp thường cao, phần mềm ₫ược dùng lâu dài qua nhiều hệ user, q trình dùng phần mềm cần ₫ược nâng cấp hiệu chỉnh theo yêu cầu phát sinh Ta dùng thuật ngữ “phát triển phần mềm” (software development) ₫ể tất hoạt ₫ộng giúp phần mềm tồn phát triển theo thời gian Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 23 III Các mục tiêu việc phát triển phần mềm Chi phí “phát triển phần mềm” : Thường lớn chiếm phần lớn chi phí xây dựng trì hệ thống tính tốn, cao nhiều so với chi phí trang bị phần cứng Chi phí trì tính hữu dụng phần mềm theo thời gian sử dụng thường cao so với chi phí xây dựng phiên ₫ầu tiên phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 24 III Các mục tiêu việc phát triển phần mềm Phát triển phần mềm cần ₫ạt mục tiêu sau ₫ây : Phần mềm phải thực ₫úng ₫ủ chức ₫ề (tính ₫úng ₫ắn tin cậy phần mềm) Đây yêu cầu chức Mỗi chức phải thực cách hiệu quả, tin cậy thời gian qui ₫ịnh… Đây yêu cầu phi chức Tốn chi phí thấp nhất, thời gian nhanh ₫ể có phần mềm chạy ₫ược, dùng ₫ược Ít cần thay ₫ổi theo thời gian yêu cầu phát sinh (₫ể hạn chế chi phí nâng cấp, hiệu chỉnh) Nếu có cần thay ₫ổi -> tối thiểu chi phí hiệu chỉnh, nâng cấp Nếu cần thay ₫ổi, nâng cấp phần mềm hành phải hỗ trợ tối ₫a cho việc thay ₫ổi, nâng cấp -> tối thiểu chi phí hiệu chỉnh, nâng cấp Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 25 IV Các hoạt ₫ộng chức ⊂ phát triển phần mềm Việc phát triển phần mềm ₫ược tiến hành theo nhiều chu kỳ, chu kỳ ta phải thực hoạt ₫ộng chức sau ₫ây : Nắm bắt yêu cầu Requirements Phân tích yêu cầu Analysis Thiết kế Design Lập tài liệu cho kết (dùng ngôn ngữ ₫ặc dụng) Hiện thực Implementation Kiểm thử Test Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 26 IV Các hoạt ₫ộng chức ⊂ phát triển phần mềm Nắm bắt yêu cầu (Requirements) : Nhiệm vụ workflow xác ₫ịnh xác, rõ ràng ₫ầy ₫ủ thơng tin sau liên quan ₫ến chương trình : chức chương trình cần ₫áp ứng, chức cần xác ₫ịnh rõ phục vụ cho ai, họ cung cấp thơng tin dạng cho phần mềm, phần mềm xuất kết dạng nào… chương trình tương tác với thành phần : loại người nào, phần mềm nào, thiết bị nào, Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 27 IV Các hoạt ₫ộng chức ⊂ phát triển phần mềm Phân tích yêu cầu (Analysis) : Nhiệm vụ workflow phát họa sơ lược cách giải chức chương trình Thường ta dựa vào phương pháp phân tích từ xuống : Nội dung phương pháp xét xem, muốn giải vấn ₫ề ₫ó cần phải làm công việc nhỏ Mỗi công việc nhỏ tìm ₫ược lại ₫ược phân thành cơng việc nhỏ nữa, cho ₫ến công việc phải làm công việc thật ₫ơn giản, thực dễ dàng Thí dụ việc học lấy kỹ sư CNTT khoa CNTT ĐHBK TP.HCM bao gồm cơng việc nhỏ học học kỳ từ tới 9, học học kỳ i học n môn học học kỳ ₫ó, học mơn học học m chương mơn ₫ó, Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 28 IV Các hoạt ₫ộng chức ⊂ phát triển phần mềm Thiết kế (Design) : Nhiệm vụ workflow chi tiết hóa cách giải chức chương trình ₫ến mức ₫ộ dễ dàng viết code có Nếu người làm, ta lặp thiết kế chức theo thứ tự xác ₫ịnh Hiện thực (Implementation) : Nhiệm vụ workflow dịch thiết kế chi tiết thành mã nguồn ngơn ngữ lập trình xác ₫ịnh, từ ₫ó dịch mã máy ₫ể tạo thành chương trình khả thi chạy máy tính Nếu người làm, ta lặp thực chức thiết kế (hay phần nhỏ chức năng) theo thứ tự xác ₫ịnh Kiểm thử (Testing) : Nhiệm vụ workflow kiểm tra thử nghiệm chương trình thực thi xem có lỗi khơng, có lỗi cụ thể nằm lệnh nào, bị lỗi sữa lỗi Nếu người làm, ta lặp kiểm thử hàm chức theo thứ tự xác ₫ịnh Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 29 IV Các hoạt ₫ộng chức ⊂ phát triển phần mềm Lập tài liệu cho hoạt ₫ộng chức : Thực workflow tạo nhiều kết quả, ta phải quản lý, bảo trì kết theo thời gian nhằm phục vụ cho việc nghiên cứu, hiệu chỉnh, nâng cấp phầm mềm sau Một việc quản lý, bảo trì kết tạo ₫ược lập tài liệu Ta phải dùng ngôn ngữ thích hợp ₫ể lập tài liệu cho kết cho việc quản lý, bảo trì, chuyển giao phần mềm ₫ược dễ dàng, tin cậy hiệu Hiện nay, ngơn ngữ mơ hình UML (Unified Modeling Language) ₫ược sử dụng phổ biến ₫ể ₫ặc tả, quản lý tài liệu trình phát triển phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Công nghệ phần mềm Chương : Tổng quan cơng nghệ phần mềm Slide 30 V Qui trình phát triển phần mềm Nói nơm na trình tự cơng việc mà ta phải tn thủ thực ₫ể xây dựng trì phần mềm hữu dụng theo thời gian Có nhiều qui trình phát triển phần mềm khác ₫ã ₫ược ₫ề nghị sử dụng Mỗi qui trình có ưu, nhược ₫iểm riêng thích hợp loại phần mềm cụ thể Cho dù dùng qui trình phát triển phần mềm phải thực hoạt ₫ộng chức ₫ã ₫ược giới thiệu slide trước, có ₫ều cách thức thời ₫iểm thực chúng mà Các hoạt ₫ộng chức phải làm nắm bắt yêu cầu phần mềm, phân tích yêu cầu, thiết kế (kiến trúc chi tiết), thực, kiểm thử chuyển giao cho user Mơ hình qui trình phát triển phần mềm diễn tả trừu tượng qui trình ₫ó theo vài góc nhìn xác ₫ịnh Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 31 V Qui trình phát triển phần mề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 Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 32 V Qui trình phát triển phần mềm Mơ hình phát triển prototype (Incremental development model) Xây dưng prototype Thao luaän vơi khach hang Đanh gia cua khach hang Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Công nghệ phần mềm Chương : Tổng quan cơng nghệ phần mềm Slide 33 V Qui trình phát triển phần mềm Mơ hình phát triển xoắn ốc (spiral development model) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 34 V Qui trình phát triển phần mềm Mơ hình phát triển tăng tiến (Incremental development model) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 35 V Qui trình phát triển phần mềm Qui trình RUP (Rational Unified Process) : qui trình phát triển phần mềm hợp hãng Rational, hãng Rational khởi xướng trì Nó dựa việc dùng kết hợp ₫ối tượng ₫ể cấu thành phần mềm Nó có nhiều ưu ₫iểm so với qui trình khác, ₫ó ₫ược dùng chủ yếu công ty phát triển phần mềm Trong chương cịn lại, ta tập trung giới thiệu thơng tin yếu qui trình phát triển Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 36 VI Công nghệ phần mềm Thuật ngữ “Công nghệ phần mềm” (Software engineering) ₫ể nói lý thuyết, phương pháp, qui trình tiện ích ₫ược dùng việc phát triển phần mềm chuyên nghiệp hầu tối thiểu chi phí, nâng cao tính ₫úng ₫ắn, bền vững phần mềm Trong nội dung công nghệ phần mềm qui trình phát triển phần mềm chủ yếu Trong qui trình phát triển ₫ược dùng qui trình RUP ₫ược dùng phổ biến Qui trình dựa tảng hướng ₫ối tượng Ngôn ngữ UML ₫ược dùng ₫ể ₫ặc tả hầu hết tài liệu tạo qui trình phát triển RUP Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 37 VII Kết chương Chương ₫ã giới thiệu cho tranh tồn cục thiết bị tổng qt hóa máy tính số, cách thức nhờ máy tính thực dùm tốn, chi phí xây dựng trì phần mềm, hoạt ₫ộng chức phát triển phần mềm, qui trình phát triển phần mềm ý nghĩa thuật ngữ công nghệ phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Mơn : Nhập mơn Cơng nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 38 ... xây dựng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp. HCM © 2 010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide II Phần mềm - FAQ Phần mềm ? Chương trình... ₫ộ sử dụng lại phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp. HCM © 2 010 Mơn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 11 II Phần mềm — Phân... chất phần mềm mà phương pháp kỹ thuật thích hợp Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp. HCM © 2 010 Môn : Nhập môn Công nghệ phần mềm Chương : Tổng quan công nghệ phần mềm Slide 10