Chương Tổng quan phát triển 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 & phần mềm 1.3 Đời sống phần mềm 1.4 Các mục tiêu việc phát triển phần mềm 1.5 Các hoạt ₫ộng chức phát triển phần mềm 1.6 Qui trình phát triển phần mềm 1.7 Vài thông tin nắm bắt yêu cầu 1.8 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển 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 Ta ₫ã chế tạo ngày nhiều công cụ, thiết bị ₫ể hỗ trợ hoạt ₫ộng Trong giai ₫oạn dài ban ₫ầu, ta chế tạo theo hướng cụ thể hóa, nghĩa công cụ, thiết bị thực ₫ược vài công việc cụ thể ₫ó Thí dụ, chổi ₫ể quét, radio ₫ể bắt nghe ₫ài audio Các công cụ, thiết bị cụ thể hóa ₫ược chế tạo ngày tinh vi, phức tạp thực nhiều công việc trước ₫ây 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 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide I Máy tính số công dụng Thiết bị tổng quát 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, biết cách tổ chức, xếp lệnh với ₫ộ dài ₫ịnh thứ tự ₫ịnh ₫oạn lệnh giải ₫ược công việc có nghĩa mà người cần 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide I Máy tính số công dụng Bất kỳ công việc (bài toán) ₫ờ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 ₫ời Mỗi công việc nhỏ ₫ược chia nhỏ phức tạp, công việc ₫ờ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 chương trình (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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển 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 ₫ờ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 ₫ờ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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển 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 cao cấp gần gủi với người (₫ược ₫ặc tả ngôn ngữ lập trình) Ta thực máy máy có sẵn (lúc ₫ầu máy vật lý) + chương trình dịch 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 Có loại chương trình dịch : trình biên dịch (compiler) trình thông dịch (interpreter) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển 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 toá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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển 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 ₫ờ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 Hiện ta ₫ã xây dựng dùng nhiều chương trình nhiều lĩnh vực ₫ời sống xã hội Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 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 soá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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 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 : 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 10 II Phần mềm – Phân loại Nếu dựa vào tài nguyên 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 11 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 12 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 13 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 14 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 15 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 soá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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 16 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 bên Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 17 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 18 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 toán học ₫ể mô tả công việc hay 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 toàn, Dự ₫oá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 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 19 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 III Đời sống phần mềm time Cycle Cycle Cycle Cycle Cycle i Cycle n Phase Inception Prelim Iteration Elaboration Arch Iteration Release Construction Dev Dev Iteration Iteration Transition Trans Iteration Release Release Release Release Release Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Release Release Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 20 III Đời sống phần mềm Đời sống phần mềm (software life) : từ lúc xuất lần ₫ầu ₫ến tác giả không hỗ trợ (có thể dùng nhiều người) Chu kỳ (Cycle) : ₫ơn vị ₫o lường ₫ời sống, bắt ₫ầu có yêu cầu (ban ₫ầu hay mới) cần giải ₫ến có version giải tốt yêu cầu ₫ó Công ₫oạn (Phase) : hoạt ₫ộng chức nhỏ cần thực chu kỳ, thí dụ nằm bắt yêu cầu (Inception), phân tích thiết kế (Elaboration), thực kiểm thử (Construction), chuyển giao (transition) Bước lặp (Iteration) : hoạt ₫ộng, dù ngắn hay dài, dù nhỏ hay lớn, ₫ều phải lặp nhiều lần theo chế tăng tiến ₫ể ₫ạt ₫ến mục tiêu ₫ề Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 21 IV 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ệ người dùng, 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 22 IV 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 toá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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 23 IV 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 lớn sau ₫ây : Mục tiêu trước mắt: Mục tiêu chức : 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ục tiêu phi chức : Mỗi chức phải thực cách hiệu quả, tin cậy thời gian qui ₫ịnh Tốn chi phí thấp nhất, thời gian nhanh ₫ể có phần mềm chạy ₫ược, dùng ₫ược Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 24 IV 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 lớn sau ₫ây : Mục tiêu lâu dài : Không cần thay ₫ổi theo thời gian theo yêu cầu phát sinh (₫ể hạn chế chi phí nâng cấp, hiệu chỉnh) Nếu trường hợp cần hiệu chỉnh, nâng cấp 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 25 V 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 26 V 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 27 V 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 28 V 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 29 V 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 30 VI 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 tuân 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 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 31 VI 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 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 32 VI Qui trình phát triển 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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 33 VI Qui trình phát triển phần mềm RUP Qui trình phát triển ? Nói theo kiể thực dụng qui trình phát triển gồm tất tài liệu miêu tả (who) tham gia, người phải làm (what), công việc ₫ược làm (when), làm làm theo cách (how) ₫ể ₫ạt miêu tiêu ₫ề Các yêu cầu ban ₫ầu hay yêu cầu phần mềm Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Qui trình phát triển phần mềm Hệ thống phần mềm ban ₫ầu hay hệ thống Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 34 VI Qui trình phát triển phần mềm RUP Artfacts : miêu tả kết ₫ược tạo sau hoạt ₫ộng chức hay sau bước lặp ₫ó Ta phải trì artifacts theo thời gian Artifacts thường ₫ược miêu tả nhiều ₫ịnh dạng hy ngôn ngữ khác nhau, ₫ó ngôn ngữ UML ₫ược dùng chủ yếu Tùy theo mức ₫ộ ta có Vision, Baseline Architecture, initial capability, product release (version) Workers : tất phần tử tham gia phát triển phần mềm, cho dù họ Ở ₫ây ta quan tâm chủ yếu ₫ến vai trò worker, không quan tâm ₫ến người cụ thể số lượng người cụ thể Thí dụ architects, analysts, designers, implementers, testers,§ Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 35 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 VI Qui trình phát triển phần mềm RUP Phases Core Workflows Inception Elaboration Construction Transition Requirements An iteration in the elaboration phase Analysis Design Implementation Test P r e lim in a ry Ite tio n (s ) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 ite r #1 ite r #2 ite r #n ite r #n+1 ite r #n +2 ite r #m ite r #m +1 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 36 VI Qui trình phát triển phần mềm RUP UML diagrams provide views into each model Requirements Use Case Model Analysis Model Analysis Design Model Design Depl Model Impl Model Implementation Each workflow is associated with one or more models Test Model Test Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 37 VI Qui trình phát triển phần mềm RUP Use Case Model Analysis Model Design Model Use Case Diagrams Class Diagrams Object Diagrams Component Diagrams Deployment Diagrams Sequence Diagrams Depl Model Collaboration Diagrams Impl Model Statechart Diagrams Test Model Activity Diagrams Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 38 VI Qui trình phát triển phần mềm RUP Use Case Model Analysis Model Design Model Use Case Diagrams Class Diagrams Component Diagrams Deployment Diagrams Object Diagrams Incl subsystems and packages Sequence Diagrams Depl Model Collaboration Diagrams Impl Model Statechart Diagrams Test Model Activity Diagrams Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 39 VI Qui trình phát triển phần mềm RUP Use Case Model Analysis Model Design Model Use Case Diagrams Class Diagrams Component Diagrams Deployment Diagrams Sequence Diagrams Depl Model Incl active classes and components Collaboration Diagrams Impl Model Statechart Diagrams Test Model Activity Diagrams Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Object Diagrams Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 40 VI Qui trình phát triển phần mềm RUP Use Case Diagrams Use Case Model Class Diagrams Analysis Model Component Diagrams Deployment Diagrams Design Model Depl Model Impl Model Test Model Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Object Diagrams Test model refers to all other models and uses corresponding diagrams Sequence Diagrams Collaboration Diagrams Statechart Diagrams Activity Diagrams Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 41 VII Vài thông tin nắm bắt yêu cầu Nắm bắt yêu cầu (Requirements) xác ₫ịnh xác, rõ ràng ₫ầy ₫ủ yêu cầu chức phi chức chương trình cầ xây dựng Sau nắm bắt ₫ược yêu cầu, ta phải lập tài liệu ₫ể ₫ặc tả yêu cầu ₫ó Ta dùng use-case bảng ₫ặc tả use-case ₫ể ₫ặc tả yêu cầu chức Ta dùng kịch thuộc tính chất lượng ₫ể miêu tả thuộc tính chất lượng phần mềm tương ứng Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 42 VII Vài thông tin nắm bắt yêu cầu Thí dụ ta ₫ặc tả yêu cầu chức ₫ăng ký khóa học SV bảng ₫ặc tả chức sau (xem file Word ₫ính kèm) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 43 VII Vài thông tin nắm bắt yêu cầu Thí dụ ta ₫ặc tả yêu cầu tính dễ hiệu chỉnh chương trình kịch thuộc tính chất lượng sau ₫ây : Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 44 VII Vài thông tin nắm bắt yêu cầu Các yêu cầu chức phi chức nắm bắt ₫ược ₫ược dùng làm thông tin ₫ầu vào cho hoạt ₫ộng phân tích thiết kế Hoạt ₫ộng phân tích thiết kế gồm mảng : Phân tích thiết kế kiến trúc tổng thể chương trình Phân tích thiết kế chức cụ thể Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 45 VIII Kết chương Chương ₫ã giới thiệu cho tranh toàn cục thiết bị tổng quát hóa máy tính số, cách thức nhờ máy tính thực dùm toá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 : Phân tích & thiết kế phần mềm hướng ₫ối tượng Chương : Tổng quan phát triển phần mềm Slide 46