Giáo trình Công nghệ phần mềm - Chương 1: Tổng quan Công nghệ phần mềm - Phạm Thị Vương

1. Lập trình viên đưa ra đoạn mã mà anh ta tin rằng không hề có lỗi 2. Kiểm tra chất lượng sản phẩm, phát hiện 20 lỗi. 3. Lập trình viên sửa 10 lỗi và gửi e-mail tới phòng Thử nghiệm sản phẩm về 10 "vấn đề" còn lại mà anh ta nhất định cho rằng không phải là lỗi.

pdf46 trang | Chia sẻ: huongthu9 | Lượt xem: 437 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Công nghệ phần mềm - Chương 1: Tổng quan Công nghệ phần mềm - Phạm Thị Vương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PTV Tổng quan Công nghệ phần mềm GVLT: ThS Phạm Thi Vương Tài liệu tham khảo • Trần Minh Triết, bài giảng Nhập môn CNPM, ĐH KHTN, ĐH QG TPHCM. • Nguyễn Tấn Trần Minh Khang, bài giảng Nhập môn CNPM, ĐH KHTN, ĐH QG TPHCM. • Nguyễn Văn Vỵ, bài giảng Kỹ nghệ phần mềm, ĐH Công nghệ, ĐH QG HN. • Nguyễn Việt Hà, bài giảng Kỹ nghệ phần mềm, ĐH Công nghệ, ĐH QG HN. • Vũ Diệu Hương, bài giảng Kỹ nghệ phần mềm, ĐH Công nghệ, ĐH QG HN. 17-Sep-09 SE - PTV 2 Nội dung Một số khái niệm cơ bản Công nghệ phần mềm Quy trình công nghệ phần mềm Add Your Text in here Add Your Text in here 17-Sep-09 3SE - PTV Khái niệm về phần mềm • Ví dụ: xét một số phần mềm sau – Phần mềm quản lý học sinh cấp 3. – Phần mềm quản lý thư viện. – Phần mềm quản lý nhà sách. – Phần mềm quản lý khách sạn. – Phần mềm quản lý phòng mạch tư. – Phần mềm quản lý sổ tiết kiệm. – Phần mềm quản lý bán vé chuyến bay. – Phần mềm xếp thời khóa biểu – . 17-Sep-09 SE - PTV 4 Khái niệm về phần mềm • Được xem xét ở hai góc độ – Góc nhìn người dùng – Góc nhìn chuyên viên tin học 17-Sep-09 SE - PTV 5 Phần mềm là gì? Khái niệm về phần mềm • Phần mềm dưới góc nhìn của người sử dụng – Chương trình thực thi được trên máy tính hoặc các thiết bị chuyên dụng khác – Nhằm hỗ trợ cho các nhà chuyên môn trong từng lĩnh vực chuyên ngành thực hiện tốt hơn các thao tác nghiệp vụ của mình 17-Sep-09 SE - PTV 6 Khái niệm về phần mềm • Môi trường triển khai phần mềm: – Máy tính: Desktop, Laptop, Tablet PC – Thiết bị chuyên dụng: • Thiết bị di động: PDA, Pocket PC, ĐTDĐ • Các thiết bị chuyên dụng khác: set-top box, router,... • Hỗ trợ làm tốt hơn các thao tác nghiệp vụ: – Tin học hóa nghiệp vụ hiện đang làm thủ công – Cải tiến chức năng nghiệp vụ hiện đang được thực hiện trên máy tính – Đề ra, xây dựng và triển khai chức năng nghiệp vụ mới 17-Sep-09 SE - PTV 7 Khái niệm về phần mềm • Phần mềm dưới góc nhìn của chuyên viên Tin học – Đây là một hệ thống bao gồm 3 thành phần cơ bản: • Thành phần giao tiếp • Thành phần xử lý • Thành phần lưu trữ  Cần được xây dựng để thực hiện theo yêu cầu của người sử dụng 17-Sep-09 SE - PTV 8 Khái niệm về phần mềm • Thành phần giao tiếp (Giao diện): – Cho phép nhập/xuất thông tin cùng với hình thức trình bày/giao tiếp tương ứng. – Nhằm đưa thông tin từ thế giới thực bên ngoài phần mềm (người sử dụng, các thiết bị, phần mềm khác) vào bên trong, hoặc ngược lại – Cho phép tiếp nhận các yêu cầu về việc sử dụng phần mềm từ người sử dụng, từ các thiết bị thu thập dữ liệu, hoặc từ các phần mềm khác – Cho phép trình bày các kết quả của việc thực hiện các yêu cầu cho người dùng hoặc điều khiển hoạt động các thiết bị điều khiển. 17-Sep-09 SE - PTV 9 Khái niệm về phần mềm • Thành phần xử lý: – Kiểm tra tính hợp lệ của thông tin nguồn được cung cấp từ người dùng theo các quy định ràng buộc trong thế giới thực – Tiến hành xử lý cho ra kết quả mong đợi theo quy định tính toán có sẵn trong thế giới thực – Hoặc tiến hành xử lý theo thuật giải tự đề xuất 17-Sep-09 SE - PTV 10 Khái niệm về phần mềm • Thành phần xử lý(tt): – Việc xử lý dựa trên thông tin nguồn từ người sử dụng cung cấp – Việc xử lý cho ra kết quả có thể dùng để xuất cho người dùng xem qua thành phần giao diện, hay lưu trữ lại qua thành phần lưu trữ, hoặc cả hai 17-Sep-09 SE - PTV 11 Khái niệm về phần mềm • Thành phần xử lý(tt): – thành phần xử lý là hệ thống chuyên xử lý tính toán, biến đổi dữ liệu • Dùng thông tin nguồn từ thành phần giao diện (chức năng nhập) hay thành phần dữ liệu (chức năng đọc) • Kiểm tra tính hợp lệ (chức năng kiểm tra) và sau đó tiến hành xử lý (chức năng xử lý) – nếu cần thiết • Cho ra kết quả sẽ được trình bày thông qua thành phần giao diện (chức năng xuất) hoặc lưu trữ lại trong thành phần dữ liệu (chức năng ghi) 17-Sep-09 SE - PTV 12 Khái niệm về phần mềm • Thành phần lưu trữ (thành phần dữ liệu) – Cho phép lưu trữ lại (chức năng ghi) các kết quả đã xử lý – Cho phép truy xuất lại (chức năng đọc) các dữ liệu đã lưu trữ phục vụ cho các hàm xử lý tương ứng thành phần dữ liệu là hệ thống chuyên đọc ghi dữ liệu cùng với mô hình tổ chức lưu trữ dữ liệu tương ứng – Mục tiêu chính của thành phần này là chuyển đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ 17-Sep-09 SE - PTV 13 Khái niệm về lớp phần mềm • Phân lớp theo mục đích sử dụng: – Lớp phần mềm quản lý học sinh – Lớp phần mềm đánh cờ – Lớp phần mềm giải bài tập – Phần mềm soạn thảo văn bản – ... 17-Sep-09 SE - PTV 14 Khái niệm về lớp phần mềm • Phân lớp theo mục tiêu tạo lập – Lớp phần mềm theo hợp đồng – Lớp phần mềm khung – Lớp phần mềm đóng gói 17-Sep-09 SE - PTV 15 Khái niệm về lớp phần mềm • Lớp phần mềm – Lớp phần mềm là hệ thống các phần mềm trên cùng một lĩnh vực hoạt động nào đó – Do cùng lĩnh vực hoạt động nên các phần mềm cùng lớp thường có cấu trúc và chức năng tương tự nhau 17-Sep-09 SE - PTV 16 Mục tiêu của ngành Công nghệ Phần mềm • Xây dựng được phần mềm có chất lượng • Dễ dàng xây dựng phần mềm mới từ các phần mềm có sẵn cùng lớp 17-Sep-09 SE - PTV 17 18 Chất lượng phần mềm Phần mềm Con người Phần cứng Phần mềm khác Tính đúng đắn Tính đúng đắn: - Đầy đủ - Chính xác Dưới góc nhìn của Người sử dụng 19 Chất lượng phần mềm Phần mềm Con người Phần cứng Phần mềm khác Tính tiện dụng Tính tiện dụng: - Dễ học - Dễ sử dụng - Giao diện trực quan - Tự nhiên Tính đúng đắn Dưới góc nhìn của Người sử dụng 20 Chất lượng phần mềm Phần mềm Con người Phần cứng Phần mềm khác Tính hiệu quả Tính hiệu quả: - Tối ưu sử dụng CPU* - Tối ưu sử dụng bộ nhớ* - Tối ưu sử dụng thiết bị Tính đúng đắn Tính tiện dụng Dưới góc nhìn của Người sử dụng 21 Chất lượng phần mềm Phần mềm Con người Phần cứng Phần mềm khác Tính tương thích Tính tương thích: - Import/Export dữ liệu - Tương tác Tính đúng đắn Tính tiện dụng Tính hiệu quả Dưới góc nhìn của Người sử dụng 22 Chất lượng phần mềm Phần mềm Con người Phần cứng Phần mềm khác Tính tiến hóa Tính tiến hóa: một trong các tính chất quan trọng nhất được quan tâm xem xét trong ngành Công nghệ Phần mềm Tính đúng đắn Tính tiện dụng Tính hiệu quả Tính tương thích Dưới góc nhìn của Người sử dụng 23 Chất lượng phần mềm Phần mềm Con người Phần cứng Phần mềm khác Tính tiến hóa Tính đúng đắn Tính tiện dụng Tính hiệu quả Tính tương thích Dưới góc nhìn của Người sử dụng Chất lượng phần mềm việc kiểm tra các thành phần phù hợp với yêu cầu phần mềm là dễ dàng nhất có thể được khi có sự không phù hợp (so với yêu cầu) trong quá trình kiểm tra một thành phần, việc phát hiện chính xác “vị trí lỗi” và sửa lỗi là nhanh nhất có thể được khi cần nâng cấp, cải tiến một thành phần (theo yêu cầu mới), việc cập nhật phần mềm là nhanh, chính xác nhất có thể được và đặc biệt là cố gắng hạn chế ảnh hưởng đến các thành phần khác Tính dễ kiểm tra Tính dễ sửa lỗi Tính dễ bảo trì 17-Sep-09 24SE - PTV Góc nhìn Chuyên viên tin học Chất lượng phần mềm các thành phần đã thực hiện có thể dùng lại trong các phần mềm cùng lớp (hoặc cùng lĩnh vực) với thời gian và công sức ít nhất có thể được Tính tái sử dụng 17-Sep-09 25SE - PTV Góc nhìn Chuyên viên tin học Phát triển của Công nghệ phần mềm • Hệ thống đa chương trình và đa nguời dùng • Bắt đầu cuộc “khủng hoảng” phần mềm Giai đoạn 2 (từ giữa 1960 đến giữa 1970) Giai đoạn 3 (từ giữa 1970 đến giữa 1980) Xử lý theo lô, xử lý tập trung, ít xử lý phân tán, ít sửa đổi phần mềm Giai đoạn 1 (1950 – giữa 1960) 17-Sep-09 26SE - PTV Phát triển của Công nghệ phần mềm • Phần cứng ngày càng phát triển • Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày càng phức tạp, công nghệ ngày càng phát triển • Sự phát triển và sử dụng rộng rãi máy tính cá nhân • Sự phát triển của các công ty phần mềm Giai đoạn 4 (từ giữa 1980 đến nay) Giai đoạn 3 (từ giữa 1970 đến giữa 1980) 17-Sep-09 27SE - PTV Cuộc khủng hoảng phần mềm • Số lượng các phần mềm tăng vọt (do sự phát triển của phần cứng: tăng khả năng, giá thành hạ) • Có quá nhiều khuyết điểm trong các phần mềm được dùng trong xã hội: – Thực hiện không đúng yêu cầu (tính toán sai, không ổn định) – Thời gian bảo trì nâng cấp quá lâu, chi phí cao, hiệu quả thấp – Khó sử dụng, Thực hiện chậm – Không chuyển đổi dữ liệu giữa các phần mềm – 17-Sep-09 SE - PTV 28 Cuộc khủng hoảng phần mềm • Một số kết luận – Việc tăng vọt số lượng phần mềm là điều hợp lý và sẽ còn tiếp diễn – Các khuyết điểm của phần mềm có nguồn gốc chính từ phương pháp, cách thức và quy trình tiến hành xây dựng phần mềm • Cảm tính: mỗi người theo một phương pháp riêng • Thô sơ, đơn giản: chỉ tập trung vào việc lập trình mà ít quan tâm đến các công việc cần làm khác (khảo sát hiện trạng, phân tích yêu cầu, thiết kế) • Thủ công: còn thiếu các công cụ hỗ trợ quy trình phát triển 17-Sep-09 SE - PTV 29 Công nghệ phần mềm • Công nghệ phần mềm là ngành khoa học nghiên cứu về việc xây dựng các phần mềm có chất lượng cao trong thời gian và chi phí thực hiện hợp lý 17-Sep-09 SE - PTV 30 Phương pháp Công cụ Quy trình Công nghệ phần mềm Công nghệ phần mềm • Các đối tượng nghiên cứu của Công nghệ phần mềm – Quy trình công nghệ phần mềm • Hệ thống các giai đoạn mà quá trình phát triển phần mềm phải trải qua – Phương pháp phát triển phần mềm • Hệ thống các hướng dẫn cho phép từng bước thực hiện một giai đoạn nào đó trong quy trình phần mềm 17-Sep-09 SE - PTV 31 Công nghệ phần mềm • Các đối tượng nghiên cứu của Công nghệ phần mềm • Công cụ và Môi trường phát triển phần mềm – Hệ thống các phần mềm trợ giúp trong lĩnh vực xây dựng phần mềm – Hỗ trợ các chuyên viên tin học trong các bước xây dựng phần mềm theo một phương pháp nào đó với một quy trình được chọn trước 17-Sep-09 SE - PTV 32 Qui trình Công nghệ phần mềm 33 Phần mềm Yêu cầu phần mềm Lập trình Thiết kế Lập trình Phân tích Thiết kế Lập trình Phân tích Thiết kế Lập trình Kiểm tra 1 2 3 4 Qui trình Công nghệ phần mềm • Phân tích: Mô tả mức phát thảo các thành phần của phần mềm (đã có yêu cầu) • Thiết kế: Mô tả mức chi tiết các thành phần của phần mềm (đã phân tích) • Lập trình: Thực hiện các thành phần của phần mềm (đã thiết kế) • Kiểm tra: kiểm chứng các thành phần của phần mềm (đã thực hiện) 17-Sep-09 SE - PTV 34 35 Quy trình thác nước Xác định Yêu cầu Phân tích Thiết kế Cài đặt Kiểm chứng Triển khai Khảo sát Hiện trạng Waterfall Các hoạt động trong thế giới thực Các yêu cầu Mô hình Thế giới thực Mô hình phần mềm Phần mềm Phần mềm “chất lượng” 36 Quy trình thác nước cải tiến Xác định Yêu cầu Phân tích Thiết kế Cài đặt Kiểm chứng Triển khai Khảo sát Hiện trạng 37 Quy trình Prototype Xác định yêu cầu “Thiết kế nhanh” Xây dựng Prototype Đánh giá và xác định rõ yêu cầu Phát triển phần mềm 38 Quy trình xoắn ốc Tiếp xúc Khách hàng Lập kế hoạch Phân tích rủi ro Phân tích, thiết kế Xây dựng và triển khai Đánh giá của khách hàng 39 Quy trình phát triển lặp  Chúng ta có thể chia nhỏ phần mềm ra làm nhiều giai đoạn thay vì làm một lần từ đầu đến cuối. Vòng đời phần mềm 1. Lập trình viên đưa ra đoạn mã mà anh ta tin rằng không hề có lỗi 2. Kiểm tra chất lượng sản phẩm, phát hiện 20 lỗi. 3. Lập trình viên sửa 10 lỗi và gửi e-mail tới phòng Thử nghiệm sản phẩm về 10 "vấn đề" còn lại mà anh ta nhất định cho rằng không phải là lỗi. 17-Sep-09 SE - PTV 40 Vòng đời phần mềm(tt) 4. Phòng thử nghiệm sản phẩm e-mail lại rằng 5 trong số 10 đoạn sửa lỗi không hoạt động và đính kèm danh sách 15 lỗi mới. 5. Phòng tiếp thị gởi thông báo rằng họ đã hoàn tất khâu quảng bá cho sản phẩm. Giám đốc gọi điện xuống hỏi về tiến độ công việc và củng cố tinh thần "chiến sỹ". Phòng phát hành cử nhân viên đến nhận đĩa nguồn phần mềm. Phòng tiếp thị thông báo trên truyền hình và báo chí về việc hoãn lại ngày phát hành sản phẩm vài tuần... 17-Sep-09 SE - PTV 41 Vòng đời phần mềm(tt) 6. Ơn trời! Cuối cùng sản phẩm cũng được phát hành 7. Trong vòng một tuần, người sử dụng phát hiện ra 137 lỗi mới. 8. Lập trình viên phụ trách phát triển sản phẩm đã xin nghỉ phép 17-Sep-09 SE - PTV 42 Vòng đời phần mềm(tt) 9. Một nhóm "cứu nạn" gồm nhiều lập trình viên kỳ cựu được thành lập khẩn cấp. Sau một tuần làm việc cật lực, họ đã "thanh toán" hết 137 lỗi, nhưng lại được thông báo về 456 lỗi mới. 10. Mọi người tổng kết được 783 lỗi trong chương trình 17-Sep-09 SE - PTV 43 Vòng đời phần mềm(tt) 11.Giám đốc ngồi tại bàn giấy xem xét các báo cáo và quyết định thuê một lập trình viên mới toanh để xây dựng lại phần mềm từ đống đổ nát ban đầu 17-Sep-09 SE - PTV 44 Vòng đời phần mềm(tt) • Lập trình viên mới đưa ra đoạn mã mà anh ta tin rằng không hề có lỗi. • Kiểm tra chất lượng sản phẩm, phát hiện 20 lỗi. • .. 17-Sep-09 SE - PTV 45 PTV Thank You!

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_cong_nghe_phan_mem_chuong_1_tong_quan_cong_nghe_p.pdf