Bài giảng Các mẫu thiết kế hướng đối tượng - Chương 1: Tổng quan về phát triển phần mềm

 Chương 1 : Tổng quan về phát triển phần mềm

.1 Máy tính số và 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 của việc phát triển phần mềm

1.5 Các hoạt ₫ộng chức năng trong 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 về nắm bắt yêu cầu

1.8 Kết chương

 

pdf 46 trang phuongnguyen 8540
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Các mẫu thiết kế hướng đối tượng - Chương 1: Tổng quan về phát triển phần mềm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Các mẫu thiết kế hướng đối tượng - Chương 1: Tổng quan về phát triển phần mềm

Bài giảng Các mẫu thiết kế hướng đối tượng - Chương 1: Tổng quan về phát triển phần mềm
 Chương 1
 Tổng quan về phát triển phần mềm
 1.1 Máy tính số và 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 của việc phát triển phần mềm
 1.5 Các hoạt ₫ộng chức năng trong 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 về 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 Môn : Các mẫu thiết kế hướng ₫ối tượng
Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
© 2010 Slide 1
I. Máy tính số và công dụng 
 Các thiết bị cụ thể hóa : Con người thông minh hơn các ₫ộng vật
 khác nhiều. Ta ₫ã chế tạo ngày càng nhiều công cụ, thiết bị ₫ể
 hỗ trợ mình trong hoạt ₫ộng. Trong giai ₫oạn dài ban ₫ầu, ta chế
 tạo theo hướng cụ thể hóa, nghĩa là mỗi công cụ, thiết bị chỉ thực
 hiện ₫ược 1 vài công việc cụ thể nào ₫ó. Thí dụ, cây chổi ₫ể
 quét, radio ₫ể bắt và nghe ₫ài audio... Các công cụ, thiết bị cụ
 thể hóa ₫ược chế tạo ngày càng tinh vi, phức tạp và thực hiện
 nhiều công việc hơn trước ₫ây.
 Khuyết ₫iểm của thiết bị cụ thể hóa là mỗi thiết bị chỉ giải quyết 1
 công việc. Trong cuộc sống, ta cần thực hiện rất nhiều công việc,
 do ₫ó ta phải chế tạo rất nhiều thiết bị và việc này không có dấu
 hiệu chấm dứt.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 2
I. Máy tính số và công dụng 
 Thiết bị tổng quát hóa - Máy tính số (digital computer) : nó cũng
 là 1 thiết bị, nhưng thay vì chỉ thực hiện 1 vài chức năng cụ thể,
 sát với nhu cầu ₫ời thường của con người, nó có thể thực hiện 1
 số hữu hạn các chức năng cơ bản (tập lệnh), mỗi lệnh rất sơ khai
 chưa giải quyết trực tiếp ₫ược nhu cầu ₫ời thường nào của con
 người, nhưng nếu chúng ta biết cách tổ chức, sắp xếp các lệnh
 với ₫ộ dài nhất ₫ịnh và thứ tự nhất ₫ịnh thì ₫oạn lệnh này sẽ giải
 quyết ₫ược công việc có nghĩa mà con người cần. Cơ chế thực
 hiện các lệnh là tự ₫ộng, bắt ₫ầu từ lệnh ₫ược chỉ ₫ịnh nào ₫ó rồi
 tuần tự từng lệnh kế tiếp cho ₫ến lệnh cuối cùng. Danh sách các
 lệnh ₫ược thực hiện này ₫ược gọi là chương trình.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 3
I. Máy tính số và công dụng 
 Bất kỳ công việc (bài toán) ngoài ₫ời nào cũng có thể ₫ược chia
 thành trình tự nhiều công việc nhỏ hơn. Trình tự các công việc
 nhỏ này ₫ược gọi là giải thuật giải quyết công việc ngoài ₫ời. Mỗi
 công việc nhỏ hơn cũng có thể ₫ược chia nhỏ hơn nữa nếu nó
 còn phức tạp,... công việc ngoài ₫ời có thể ₫ược miêu tả bằng 1
 trình tự các lệnh máy (chương trình ngôn ngữ máy).
 Ưu₫iểmcủamáytínhsốlàtachỉcầnchếtạo1lần,rồitheothời
 gian ta nhờ nó chạy những chương trình (phần mềm) khác nhau
 ₫ể thực hiện các bài toán khác nhau.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 4
I. Máy tính số và công dụng 
 Vấn ₫ề mấu chốt của việc dùng máy tính giải quyết công việc
 ngoài ₫ời là lập trình (₫ược hiểu nôm na là qui trình xác ₫ịnh trình
 tự ₫úng các lệnh máy ₫ể thực hiện công việc). Cho ₫ến nay, lập
 trình là công việc của con người (với sự trợ giúp ngày càng nhiều
 của máy tính).
 Với công nghệ phần cứng hiện nay, ta chỉ có thể chế tạo các máy
 tính mà tập lệnh máy rất sơ khai, mỗi lệnh máy chỉ có thể thực
 hiện 1 công việc rất nhỏ và ₫ơn giản công việc ngoài ₫ời
 thường tương ₫ương với trình tự rất lớn (hàng triệu) các lệnh máy 
 Lập trình bằng ngôn ngữ máy rất phức tạp, tốn nhiều thời gian,
 công sức, kết quả rất khó bảo trì, phát triển.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 5
I. Máy tính số và công dụng 
 Ta muốn có máy luận lý với tập lệnh cao cấp và gần gủi hơn với
 con người (₫ược ₫ặc tả bởi ngôn ngữ lập trình). Ta hiện thực máy
 này bằng 1 máy có sẵn (lúc ₫ầu là máy vật lý) + 1 chương trình
 dịch.
 Gọi ngôn ngữ máy vật lý là N0. Trình biên dịch ngôn ngữ N1 sang
 ngôn ngữ N0 sẽ nhận ₫ầu vào là chương trình ₫ược viết bằng
 ngôn ngữ N1, phân tích từng lệnh N1 rồi chuyển thành danh sách
 các lệnh ngôn ngữ N0 có chức năng 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
 của từng lệnh ngôn ngữ N1 không quá cao so với từng lệnh ngôn
 ngữ N0.
 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).
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 6
I. Máy tính số và công dụng 
 Sau khi có máy luận lý hiểu ₫ược ngôn ngữ luận lý N1, ta có thể
 ₫ịnh nghĩa và hiện thực máy luận lý N2 theo cách trên và tiếp tục
 ₫ến khi ta có 1 máy luận lý hiểu ₫ược ngôn ngữ Nm rất gần gũi
 với con người, dễ dàng miêu tả giải thuật của bài toán cần giải
 quyết...
 Nhưng qui trình trên chưa có ₫iểm dừng, với yêu cầu ngày càng
 cao và kiến thức ngày càng nhiều, người ta tiếp tục ₫ịnh nghĩa
 những ngôn ngữ mới với tập lệnh ngày càng gần gũi hơn với con
 người ₫ể miêu tả giải thuật càng dễ dàng, gọn nhẹ và trong sáng
 hơn.
 Hiện nay, ta thường viết phần mềm bằng các ngôn ngữ cấp cao
 như Java, C#...
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 7
II. Chương trình máy tính – Phần mềm
 Chương trình máy tính là một giải thuật cụ thể ₫ể giải quyết công
 việc ngoài ₫ời mà mỗi công việc trong giải thuật ₫ược miêu tả
 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ạy trực tiếp bởi CPU phần cứng của má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ợp này ta phải dù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ước khi có thể nhờ CPU máy tính chạy trực tiếp nó.
 Đối với các ứng dụng lớn và phức tạp, ta nên chọn ngôn ngữ cấp
 cao nhất ₫ể xây dựng nó.
 Hiện ta ₫ã xây dựng và dùng rất nhiều chương trình trên nhiều
 lĩnh vực của ₫ời sống xã hội.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 8
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 như thế nào. Thí dụ,
 nếu dựa vào cách thức hoạt ₫ộng của phần mềm ₫ối với người
 dùng nó thì ta có thể phân phần mềm ra 2 loại sau :
 . Phần mềm ₫ại chúng : ₫ược viết và bán cho bất kỳ khách
 hàng nào muốn dùng chúng. Thí dụ như 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 của 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 Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 9
II. Phần mềm – Phân loại 
 Nếu dựa vào khả năng thay ₫ổi hành vi của phần mềm ₫ối với
 người dùng nó thì ta có thể phân phần mềm ra 2 loại sau :
 . Phần mềm cụ thể hóa hóa : luôn cung cấp các tính năng và
 hành vi cố ₫ịnh, cho dù ₫ược chạy bởi ai và lần thứ mấy.
 . Phần mềm tổng quát hóa : có thể thay ₫ổi tính năng và hành
 vi theo thời gian và theo yêu cầu từng người dùng. Thí dụ MS
 Word có thể là phần mềm soạn thảo văn bản, nhưng user có
 thể cá nhân hóa theo thời gian ₫ể biến nó thành ứng dụng có
 chức năng bất kỳ.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 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 thì ta có thể phân
 phần mềm ra 2 loại sau :
 . Phần mềm chạy trên máy ₫ơn : chỉ dùng những tài nguyên
 trên 1 máy trong 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 nhau ₫ể hoạt ₫ộng.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 11
II. Phần mềm – Phân loại
 Nếu dựa vào lĩnh vực xử lý thì ta có thể có những loại phần mềm
 sau :
 . Hệ ₫iều hành : là phần mềm quản lý các tài nguyên cấp thấp
 (thường là phần cứng), che dấu các tính chất vật lý của chúng
 (thường rất khó hiểu và sử dụng), rồi cung cấp lại một
 interface sử dụng chúng với các lợi ₫iểm như an toàn, tin cậy,
 thân thiện, hiệu quả và nhất là ₫ộc lập với tính chất vật lý của
 tài nguyên ₫ược sử dụng. Người ta còn gọi HĐH là máy ảo
 (máy luận lý)..
 . 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ỗi lần chạ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 : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 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 hiện 1 số
 chức năng thông thường liên quan ₫ến văn phòng. Microsoft
 Office là ứng dụng văn phòng ₫ược sử dụng phổ biến nhất.
 Open Office là ứng dụng văn phòng mã nguồn mở nhưng yếu
 hơn và thiếu ổn ₫ịnh hơn).
 . Ứng dụng nghiệp vụ & Database server : Ứng dụng nghiệp vụ
 thực hiện các yêu cầu nghiệp vụ trong các cơ quan, ₫ơn vị
 như 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 và bệnh án,... Trong hầu hết các ứng dụng nghiệp
 vụ, dữ liệu cần lưu trữ và xử lý là rất lớn. Vấn ₫ề lưu trữ và
 quản lý những dữ liệu lớn sao cho nhất quán, an toàn tin
 cậy,... ₫òi hỏi nhiều kiến thức chuyên sâu và nhiều thời gian
 công sức hiện thực. Database server giải phóng người lậ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 : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 13
II. Phần mềm – Phân loại
 . Biên tập & chơi multimedia : Multimedia là dữ liệu ₫a phương
 tiện như 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ú hơn khi nghiên cứu về
 1 vấn ₫ề nào ₫ó. Các ứng dụng biên tập dữ 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 và
 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 của Microsoft cho ta chơi hầu
 hết các ₫ịnh dạng file multimedia khác nhau từ ảnh tĩnh, âm
 thanh hay film. File multimedia cần chơi có thể nằm trên máy
 ₫ơn hay trên 1 server multimedia nào ₫ó trong mạng Internet
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 14
II. Phần mềm – Phân loại
 . Game : Game (ứng dụng trò chơi) là những ứng dụng dễ lôi
 cuốn ngườ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ùng mô hình hoạt ₫ộng client/server, mỗi module sẽ ₫óng
 vai trò hoặc server, hoặc client. Module server sẽ quản lý 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ấp giao tiếp sử dụng thân thiện, dễ dàng, an toàn,... Các
 module server/client cửa 1 ứng dụng mạng thường tuân thủ 1
 giao thức xác ₫ịnh nào ₫ó. Giao thức (protocol) là tập các
 thông báo request/reply cùng ₫ịnh dạng cụ thể của từ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 : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 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 bản thiết kế trực tiếp trên máy
 tính với sự giám sát/kiểm soát/trợ giúp ngày càng nhiều của
 phần mềm, nhờ ₫ó ta có nhanh ₫ược bản thiết kế ₫úng ₫ắn,
 khoa học, bài bản,... Bản vẽ có thể ₫ược phân tích tự ₫ộng ₫ể
 xác ₫ịnh một số thông tin cần thiết. CAD ₫ược dùng ₫ể thiết
 kế chi tiết cơ 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 Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 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ợ quá trình sản xuất và chế tạo linh kiện/thiết
 bị. Một số dạng CAM như Robot công nghiệp, CNC, CAD/CAM,
 hệ thống ₫iều khiển... Robot công nghiệp thay thế con người
 trong việc thực hiện 1 công việc cụ thể xác ₫ịnh. Robot có 3
 thành phần chính : tay máy, bộ ₫iều khiển và bộ cung cấp năng
 lượng. Robot có khả năng cảm nhận môi trường xung quanh (nhờ
 các sensor) và ₫áp ứng kịp thời với sự thay ₫ổi trạng thái của môi
 trường. CNC (Computer numerical control) ₫ược sử dụng rộng rãi
 trong các thiết bị máy, nó ₫iều khiển hoạt ₫ộng của máy dựa trên
 chương trình viết sẵn. Mạch vi xử lý sẽ thu thập các thông tin liên
 quan (thông qua các mạch D/A), dựa trên thông tin thu thập
 ₫ược, nó ₫iều khiển thiết bị máy thay ₫ổi hành vi theo sự tác ₫ộng
 của bên ngoài.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 17
II. Phần mềm – Phân loại
 . Ứng dụng nhúng (embedded apllications) : Là các ứng dụng
 ₫ược cài ₫ặt vào 1 thiết bị cụ thể có trang bị máy tính số với
 các tài nguyên hạn chế. Nhiệm vụ của ứng dụng nhúng là
 ₫iều khiển quá trình hoạt ₫ộng của 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 Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 18
II. Phần mềm – Phân loạ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ặc lên kế hoạch cho một công việc phức tạp.
 Mô hình hóa thường dùng các công thức toán học ₫ể mô tả
 một công việc hay một quá trình phức tạp. Ví dụ : s = 0.5 at2
 với s là quảng ₫ường ₫i ₫ược, a là gia tốc và t là thời gian. 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 toàn, Dự ₫oán, Nhanh chóng và linh hoạt.
 Thường phần mềm mô hình hóa & mô phỏng ₫ược sử dụng
 nhiều trong các lĩnh vực Giao thông, Xã hội học, Dự ₫oán thời
 ... CM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 22
IV. Các mục tiêu của việc phát triển phần mềm
 Chi phí "phát triển phần mềm" :
 . Thường rất lớn và chiếm phần rất lớn trong chi phí xây dựng
 và duy trì hệ thống tính toán, cao hơn nhiều so với chi phí
 trang bị phần cứng.
 . Chi phí duy trì tính hữu dụng của phần mềm theo thời gian sử
 dụng thường rất cao so với chi phí xây dựng phiên bản ₫ầu
 tiên của phần mềm.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 23
IV. Các mục tiêu của việc phát triển phần mềm
 Phát triển phần mềm cần ₫ạt 2 mục tiêu lớn sau ₫ây :
 . Mục tiêu trước mắt:
 Mục tiêu về chức năng : Phần mềm phải thực hiện ₫úng và
 ₫ủ các chức năng ₫ề ra (tính ₫úng ₫ắn và tin cậy của phần
 mềm). Đây là yêu cầu về chức năng.
 Mục tiêu phi chức năng : Mỗi chức năng phải thực hiện 1
 cách hiệu quả, tin cậy trong thời gian qui ₫ịnh... Tốn chi phí
 thấp nhất, thời gian nhanh nhất ₫ể có phần mềm chạy
 ₫ược, dùng ₫ược...
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 24
IV. Các mục tiêu của việc phát triển phần mềm
 Phát triển phần mềm cần ₫ạt 2 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 và theo yêu cầu mới 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 thì chỉ cần thay ₫ổi ít nhất ->
 tối thiểu chi phí hiệu chỉnh, nâng cấp.
 Nếu cần thay ₫ổi, nâng cấp thì phần mềm hiện hành phải
 hỗ trợ tối ₫a cho việc thay ₫ổi, nâng cấp này -> 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 Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 25
V. Các hoạt ₫ộng chức năng  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ỳ,
 trong mỗi chu kỳ ta phải thực hiện các hoạt ₫ộng chức năng sau
 ₫ây :
 Nắm bắt yêu cầu
 Requirements
 Phân tích yêu cầu
 Analysis
 Lập tài liệu cho từng kết quả
 Thiết kế (dùng ngôn ngữ đặc dụng)
 Design
 Hiện thực
 Implementation
 Kiểm thử
 Test
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 26
V. Các hoạt ₫ộng chức năng  phát triển phần mềm
 Nắm bắt yêu cầu (Requirements) : Nhiệm vụ 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
 ₫ến chương trình :
 . các chức năng của chương trình cần ₫áp ứng, mỗi chức năng
 cần xác ₫ịnh rõ phục vụ cho ai, họ cung cấp thông tin gì ở
 dạng nào cho phần mềm, phần mềm xuất kết quả 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ạ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 Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 27
V. Các hoạt ₫ộng chức năng  phát triển phần mềm
 Phân tích yêu cầu (Analysis) : Nhiệm vụ của workflow này là phát
 họa sơ lược cách giải quyết từng chức năng của chương trình.
 Thường ta dựa vào phương pháp phân tích từ trên xuống :
 . Nội dung của phương pháp này là xét xem, muốn giải quyết
 vấn ₫ề nào ₫ó thì cần phải làm những công việc nhỏ hơn nào.
 Mỗi công việc nhỏ hơn tìm ₫ược lại ₫ược phân thành những
 công việc nhỏ hơn nữa, cứ như vậy cho ₫ến khi những công
 việc phải làm là những công việc thật ₫ơn giản, có thể thực
 hiện dễ dàng.
 . Thí dụ việc học lấy bằng kỹ sư CNTT khoa CNTT ĐHBK
 TP.HCM có thể bao gồm 9 công việc nhỏ hơn là học từng học
 kỳ từ 1 tới 9, học học kỳ i là học n môn học của học kỳ ₫ó,
 học 1 môn học là học m chương của môn ₫ó,...
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 28
V. Các hoạt ₫ộng chức năng  phát triển phần mềm
 Thiết kế (Design) : Nhiệm vụ của workflow này là chi tiết hóa
 cách giải quyết từng chức năng của chương trình ₫ến mức ₫ộ dễ
 dàng viết code nhất có thể có. Nếu 1 người làm, ta lặp thiết kế
 từng chức năng theo 1 thứ tự xác ₫ịnh.
 Hiện thực (Implementation) : Nhiệm vụ của workflow này là dịch
 bản thiết kế chi tiết thành mã nguồn củ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ạy trên máy tính. Nếu 1 người làm, ta lặp hiện thực từng
 chức năng thiết kế (hay từng phần nhỏ của chức năng) theo 1 thứ
 tự xác ₫ịnh.
 Kiểm thử (Testing) : Nhiệm vụ của workflow này kiểm tra và thử
 nghiệm chương trình thực thi xem nó có lỗi không, nếu có thì lỗi
 cụ thể nằm ở lệnh nào, tại sao bị lỗi và sữa lỗi. Nếu 1 người làm,
 ta lặp kiểm thử từng hàm chức năng theo 1 thứ tự xác ₫ịnh.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 29
V. Các hoạt ₫ộng chức năng  phát triển phần mềm
 Lập tài liệu cho từng hoạt ₫ộng chức năng : Thực hiện mỗi
 workflow sẽ tạo ra nhiều kết quả, ta phải quản lý, bảo trì các kết
 quả này 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 này. Một trong các việc quản lý,
 bảo trì các kết quả tạo ₫ược là lập tài liệu. Ta phải dùng 1 ngôn
 ngữ thích hợp ₫ể lập tài liệu cho các kết quả sao cho việc quản
 lý, bảo trì, chuyển giao phần mềm ₫ược dễ dàng, tin cậy và hiệu
 quả... Hiện nay, ngôn ngữ mô hình UML (Unified Modeling
 Language) ₫ược sử dụng rất phổ biến ₫ể ₫ặc tả, quản lý các tài
 liệu trong quá trình phát triển phần mềm.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 30
VI. Qui trình phát triển phần mềm 
 Nói nôm na là trình tự các công việc mà ta phải tuân thủ thực
 hiện ₫ể xây dựng và duy 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 nhau ₫ã ₫ược ₫ề
 nghị và sử dụng. Mỗi qui trình có những ưu, nhược ₫iểm riêng và
 thích hợp trong từng loại phần mềm cụ thể.
 Cho dù dùng qui trình phát triển phần mềm nào thì cũng phải
 thực hiện các hoạt ₫ộng chức năng ₫ã ₫ược giới thiệu ở các slide
 trước, chỉ có ₫ều cách thức và thời ₫iểm thực hiện chúng như thế
 nào mà thôi. Các hoạt ₫ộng chức năng phải làm là 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 và chi tiết),
 hiện thực, kiểm thử và chuyển giao cho user.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 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 nhất của hãng Rational, do hãng Rational khởi
 xướng và duy trì. Nó dựa trên việc dùng và kết hợp các ₫ối tượng
 ₫ể cấu thành phần mềm. Nó có nhiều ưu ₫iểm so với các qui
 trình khác, do ₫ó ₫ược dùng chủ yếu hiện nay trong các công ty
 phát triển phần mềm. Trong các chương còn lại, ta sẽ tập trung
 giới thiệu các thông tin cơ bản và chính yếu của qui trình phát
 triển này.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 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
 về các lý thuyết, phương pháp, qui trình và tiện ích ₫ược dùng
 trong 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 của phần mềm.
 Trong các nội dung của công nghệ phần mềm thì qui trình phát
 triển phần mềm là chủ yếu nhất.
 Trong các qui trình phát triển ₫ược dùng thì hiện tại qui trình RUP
 ₫ược dùng phổ biến nhất. Qui trình này dựa trên nền tảng hướng
 ₫ối tượng.
 Ngôn ngữ UML sẽ ₫ược dùng ₫ể ₫ặc tả hầu hết các tài liệu tạo ra
 trong qui trình phát triển RUP.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 33
VI. Qui trình phát triển phần mềm RUP
 Qui trình phát triển là gì ? Nói theo kiể thực dụng thì qui trình phát
 triển gồm tất cả tài liệu miêu tả những ai (who) tham gia, mỗi
 người phải làm gì (what), mỗi công việc sẽ ₫ược làm khi nào
 (when), khi làm thì làm theo cách nào (how) ₫ể ₫ạt miêu tiêu ₫ề
 ra.
 Các yêu cầu Hệ thống phần 
 ban ₫ầu hay Qui trình phát triển mềm ban ₫ầu 
 yêu cầu mới về hay hệ thống kế 
 phần mềm
 phần mềm tiếp
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 34
VI. Qui trình phát triển phần mềm RUP 
 Artifacts : miêu tả mọi kết quả ₫ược tạo ra sau 1 hoạt ₫ộng chức
 năng hay sau 1 bước lặp nào ₫ó. Ta phải duy trì artifacts theo
 thời gian. Artifacts thường ₫ược miêu tả dưới nhiều ₫ịnh dạng hy
 ngôn ngữ khác nhau, trong ₫ó ngôn ngữ UML ₫ược dùng chủ yếu
 nhất. Tùy theo mức ₫ộ ta có Vision, Baseline Architecture, initial
 capability, product release (version).
 Workers : tất cả phần tử tham gia phát triển phần mềm, cho dù
 họ là ai. Ở ₫ây ta quan tâm chủ yếu ₫ến vai trò của worker, chứ
 không quan tâm ₫ến người cụ thể và số lượng người cụ thể. Thí
 dụ architects, analysts, designers, implementers, testers,
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 35
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
 Preliminary iter. iter. iter. iter. ite r. iter. iter.
 Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 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 Analysis
 Model
 Design Design Depl.
 Model Model
 Implementation Impl.
 Model
 Each workflow is 
 associated with one or 
 more models.
 Test
 Test Model
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 37
VI. Qui trình phát triển phần mềm RUP
 Use Case
 Use Case Diagrams
 Model
 Class Object
 Diagrams Diagrams
 Analysis Component
 Model Diagrams
 Deployment
 Design Diagrams
 Model
 Sequence
 Diagrams
 Depl.
 Model Collaboration
 Diagrams
 Impl. Statechart
 Model Diagrams
 Activity
 Test
 Model Diagrams
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 38
VI. Qui trình phát triển phần mềm RUP
 Use Case
 Use Case Diagrams
 Model
 Class Object
 Diagrams Diagrams
 Analysis Component
 Model Diagrams
 Incl. subsystems 
 Deployment and packages
 Design Diagrams
 Model
 Sequence
 Diagrams
 Depl.
 Model Collaboration
 Diagrams
 Impl. Statechart
 Model Diagrams
 Activity
 Test
 Model Diagrams
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 39
VI. Qui trình phát triển phần mềm RUP
 Use Case
 Diagrams
 Use Case
 Model
 Class Object
 Diagrams Diagrams
 Analysis Component
 Model Diagrams
 Deployment
 Design Diagrams
 Model
 Sequence
 Diagrams Incl. active classes 
 and components
 Depl.
 Model Collaboration
 Diagrams
 Impl. Statechart
 Model Diagrams
 Activity
 Test
 Model Diagrams
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 40
VI. Qui trình phát triển phần mềm RUP
 Use Case
 Use Case Diagrams
 Model
 Class Object
 Diagrams Diagrams
 Analysis Component
 Model Diagrams
 Deployment
 Design Diagrams
 Model
 Test model refers Sequence
 to all other models Diagrams
 Depl. and uses 
 Model
 corresponding Collaboration
 Diagrams
 diagrams 
 Impl. Statechart
 Model Diagrams
 Activity
 Test
 Model Diagrams
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 41
VII. Vài thông tin về nắm bắt yêu cầu 
 Nắm bắt yêu cầu (Requirements) là xác ₫ịnh chính xác, rõ ràng
 và ₫ầy ₫ủ các yêu cầu chức năng và phi chức năng của chương
 trình cầ xây dựng. Sau khi nắm bắt ₫ược từng yêu cầu, ta phải
 lập tài liệu ₫ể ₫ặc tả yêu cầu ₫ó.
 Ta dùng use-case và bảng ₫ặc tả use-case ₫ể ₫ặc tả yêu cầu
 chức năng.
 Ta dùng kịch bản 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 Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 42
VII. Vài thông tin về nắm bắt yêu cầu 
 Thí dụ ta có thể ₫ặc tả yêu cầu chức năng ₫ăng ký khóa học của
 SV bằng bảng ₫ặc tả chức năng như sau (xem file Word ₫ính
 kèm).
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 43
VII. Vài thông tin về nắm bắt yêu cầu 
 Thí dụ ta có thể ₫ặc tả yêu cầu về tính dễ hiệu chỉnh của chương
 trình bằng kịch bản thuộc tính chất lượng sau ₫ây :
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 44
VII. Vài thông tin về nắm bắt yêu cầu 
 Các yêu cầu chức năng và phi chức năng nắm bắt ₫ược sẽ ₫ược
 dùng làm thông tin ₫ầu vào cho hoạt ₫ộng phân tích và thiết kế.
 Hoạt ₫ộng phân tích và thiết kế gồm 2 mảng chính :
 . Phân tích và thiết kế kiến trúc tổng thể của chương trình
 . Phân tích và thiết kế từng chức năng cụ thể
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 45
VIII. Kết chương 
 Chương này ₫ã giới thiệu cho chúng ta bức tranh toàn cục về
 thiết bị tổng quát hóa là máy tính số, cách thức nhờ máy tính thực
 hiện dùm 1 bài toán, chi phí xây dựng và duy trì phần mềm, các
 hoạt ₫ộng chức năng của phát triển phần mềm, qui trình phát
 triển phần mềm và ý nghĩa của thuật ngữ công nghệ phần mềm.
 Khoa Khoa học & Kỹ thuật Máy tính Môn : Các mẫu thiết kế hướng ₫ối tượng
 Trường ĐH Bách Khoa Tp.HCM Chương 1 : Tổng quan về phát triển phần mềm
 © 2010 Slide 46

File đính kèm:

  • pdfbai_giang_cac_mau_thiet_ke_huong_doi_tuong_chuong_1_tong_qua.pdf