Bài giảng Công nghệ phần mềm - Chương 1: Tổng quan về CNPM - Nguyễn Văn Danh

pdf 13 trang huongle 7650
Bạn đang xem tài liệu "Bài giảng Công nghệ phần mềm - Chương 1: Tổng quan về CNPM - Nguyễn Văn Danh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_1_tong_quan_ve_cnpm_nguy.pdf

Nội dung text: Bài giảng Công nghệ phần mềm - Chương 1: Tổng quan về CNPM - Nguyễn Văn Danh

  1. 15/09/2011 Môn: Công Nghệ Phần Mềm Trường CĐ-KT Lý Tự Trọng Khoa Công Nghệ Thông Tin Giáo trình tham khảo: Nhập môn công nghệ phần mềm của Nguyễn Tiến Huy – ĐH-KHTN GV: Nguyễn Văn Danh Chương I: Tổng quan về CNPM Sinh viên biết các khái niệm cơ bản về công nghệ phần mềm, quy trình xây dựng phần mềm.  Phần mềm và lớp phần mềm  Kiến trúc các thành phần của phần mềm  Công nghệ phần mềm  Qui trình công nghệ phần mềm  Phương pháp và công cụ phát triển phần mềm GV: Nguyễn Văn Danh 1
  2. 15/09/2011 I. Phần mềm và lớp phần mềm 1. Phần mềm. Định nghĩa: là hệ thống các chương trình được thực hiện trên máy tính 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 các thao tác nghiệp vụ của mình.( Đây là quan điểm của các người sử dụng phần mềm). - Nhà chuyên môn - Lĩnh vực chuyên nghành - Thao tác nghiệp vụ GV: Nguyễn Văn Danh 2. Lớp phần mềm Là hệ thống các phần mềm trên cùng lĩnh vực hoạt động nào đó chúng có cấu trúc & chức năng giống nhau. GV: Nguyễn Văn Danh 2
  3. 15/09/2011 3. Phân loại phần mềm Có nhiều cách phần loại phần mềm khác nhau. Phân loại dụa trên mục đích của người sử dụng phần mềm( trên góc độ người sử dụng) & phân loại dựa trên mục đích tạo lập phần mềm. Phân loại dựa trên mục đích sử dụng phần mềm:  Phần mềm hệ thống  Phần mềm khoa học kỹ thuật  Phần mềm nhúng  Phần mềm ứng dụng web  Phần mềm thương mại ( Quản lý tiền lương, QL nhân viên) GV: Nguyễn Văn Danh II. Phân loại phần mềm phân loại dựa trên mục đích tạo lập (góc độ người lập trình)  Phần mềm theo hơp đồng: là phần mềm viết ra cho một khách hàng cụ thể với các yêu cầu cụ thể, có thời gian và chi phí cụ thể và phải có trách nhiệm bảo trì phần mềm  Phần mềm khung: Là phần mềm được tạo ra nhằm nhanh chóng triển khai một phần mềm theo hợp đồng được tiện lợi. Đây là phần mềm khong đưa cho người sử dụng và có những đăc điểm như sau: không có khách hàng cụ thể, không có yêu cầu cụ thể.  Phần mềm đóng gói: Là phần mềm đươc làm ra để bán rộng rãi cho mọi người. Đặc điểm là khong có khách hàng cụ thể, không có các yêu cầu cụ thể, không bảo trì mà chỉ có phân bản nâng cấp. GV: Nguyễn Văn Danh 3
  4. 15/09/2011 III. Kiến trúc phần mềm GV: Nguyễn Văn Danh III. Kiến trúc phần mềm Bảng tóm tắt các hàm cùng ý nghĩa tương ứng: STT Thành phần Hàm Ý Nghĩa Ghi Chú Nhập yêu cầu, dữ Cần xác định hình thức Thành phần Hàm nhập 1 liệu nguồn, xuất kết nhập/xuất và tổ chức dữ giao diện Hàm xuất quả đã xử lý liêu tương ứng Kiểm tra tính hợp lệ Thành phần xử Hàm kiểm tra dữ liệu. Xử lý tính Sử dụng hàm nhập, hàm 2 lý Hàm xử lý toán phát sinh, biến đọc, hàm xuất, hàm ghi đổi trên dữ liệu Đọc dữ liệu từ bộ nhớ phụ vào bộ nhớ Thành phần dữ Hàm đọc Cần xác định cách thức tổ 3 chính. Ghi dl từ bộ liệu Hàm ghi chức lưu trữ dữ liệu nhớ chính vào bộ GV: Nguyễn Văn Danh nhớ phụ 4
  5. 15/09/2011 IV. Chất lượng phần mềm Một phần mềm được đánh giá có chất lượng tuỳ vào những yếu tố sau:  Tính đúng đắn: chạy tốt, chạy đúng theo yêu cầu người sử dụng.  Tính tiến hoá: là khả năng đáp ứng của phần mềm khi qui định của nghiệp vụ thay đổitheo thời gian, hoặc tốc độ thực hiện theo máy móc.  Tính hiệu quả: Việc chiếm bộ nhớ trong hay bộ nhớ ngoài sao cho hiệu quả.  Tính tương thích: Là khả năng tương tác giữa phần mềm với các phần mềm khác.  Tính tiện dụng: Phần mềm dễ học dễ sử dụng, thân thiện với người dùng Trong 5 tính chất trên, tính chất nào là quan trọng nhất. GV: Nguyễn Văn Danh V. Công nghệ phần mềm  Bauer(1969): Việc thiết lập và sử dụng các nguyên lý công nghệ đúng đắn để thu được phần mềm một cách kinh tế vừa tin cậy vừa làm việc hiệu quả trên các máy thực.  Ghezzi(1991) Một lĩnh vực của khoa học máy tính liên quan đến việc xây dựng các phần mềm vừa lớn vừa phức tạp bởi một hay một số nhóm kỹ sư.  Sommervile(1995): là lĩnh vực liên quan đến lý thuyết, phương pháp và công cụ dùng cho phát triển phần mềm. GV: Nguyễn Văn Danh 5
  6. 15/09/2011 V. Công nghệ phần mềm  Kawamura(1995): là lĩnh vực học vấn về các kỹ thuật, phương pháp luận công nghệ học trong toàn bộ quy trình phát triển phần mềm nhằm nâng cao cả chất và lượng của sản xuất phần mềm.  Pressman(1995): là bộ môn tích hợp cả qui trình, các phương pháp, các công cụ để phát triển phần mềm máy tính. Ta có thể đưa định nghĩa tóm tắt như sau: Công nghệ phần mềm là một nghà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 trong khoảng thời gian và chi phí hợp lý. GV: Nguyễn Văn Danh VI. Đối tượng nghiên cứu CNPM đưa ra 3 đối tượng nghiên cứu chính:  Quy trình công nghệ phần mềm: o Là hệ thống các giai đoạn mà quá trình phát triển phần mềm trải qua. o Cần xác định rõ mục tiêu, kết quả nhận được, kết quả chuyển giao.  Phương pháp phát triển phần mềm: hệ thống các hướng dẫn để thực hiện một giai đoạn nào đó.  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. GV: Nguyễn Văn Danh 6
  7. 15/09/2011 1. Qui trình công nghệ phần mềm 1.1. Các bước cơ bản xây dựng phần mềm: 1.1.1 Xác định: Hình thành đề tài ước lượng công việc. Khách hàng muốn gì? Thu thập thông tin. 1.1.2 Phát triển:  Xây dựng chương trình. Kiểm tra tính đúng đắn. 1.1.3 Bảo trì( vận hành)  Giúp chương trình chạy ổn định với điều kiện mới. Làm phù hợp với hiện tại. GV: Nguyễn Văn Danh 1.2. Một số mô hình triển khai xây dựng phần mềm 1.2.1 Mô hình thác nước 1.2.1.1 Mô hình thác nước 2 giai đoạn Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao Xác định chính xác Thông tin về các hoạt Danh sách các yêu cầu, các yêu cầu đặt ra cho động của thế giới thực. cùng với các thông tin Xác định yêu phần mềm mô tả chi tiết về các yêu cầu cầu. Tạo lập phần mềm Danh sách các yêu cầu Chương trình thực hiện mong muốn theo yêu cùng thông tin liên quan được trên máy tính. Lập trình cầu GV: Nguyễn Văn Danh 7
  8. 15/09/2011 1.2.1.2 Mô hình thác nước 3 giai đoạn Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao Xác định chính xác Thông tin về các hoạt Danh sách các yêu cầu, Xác định yêu các yêu cầu đặt ra cho động của thế giới thực. cùng với các thông tin cầu phần mềm mô tả chi tiết về các yêu cầu. Mô tả các thành phần Danh sách các yêu cầu Mô tả thành phần giao của phần mềm cùng thông tin liên quan diện. Thiết kế Mô tả thành phần xử lý. Mô tả thành phần dữ liệu. Tạo lập phần mềm Mô hình phần mềm Chương trình phần mềm mong muốn theo yêu nguồn với cấu trúc cơ sở Lập trình cầu dữ liệu tương ứng. GV: Nguyễn Văn Danh 1.2.1.3 Mô hình thác nước 4 giai đoạn Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao Xác định chính xác các Thông tin về các hoạt động Danh sách các yêu cầu, Xác định yêu yêu cầu đặt ra cho phần của thế giới thực. cùng với các thông tin mô tả cầu mềm chi tiết về các yêu cầu. Mô tả thế giới thực thông Danh sách các yêu cầu Mô hình xử lý( hệ thống các qua các mô hình cùng thông tin liên quan công việc cùng với quan hệ Phân tích giữa chúng). Mô hình dữ liệu(ERD) Mô tả các thành phần của Mô hình thế giới thực Mô tả thành phần giao diện. phần mềm trước khi cài Mô tả thành phần xử lý. Thiết kế đặt Mô tả thành phần dữ liệu. Tạo lập phần mềm mong Mô hình phần mềm Chương trình phần mềm muốn theo yêu cầu nguồn với cấu trúc cơ sở dữ Lập trình liệu tương ứng. GV: Nguyễn Văn Danh 8
  9. 15/09/2011 1.2.1.4 Mô hình thác nước 5 giai đoạn Bước Xác định YC Phân tích Thiết kế Triển khai Vận hành Bảo trì Thời gian GV: Nguyễn Văn Danh 1.2.1.4 Mô hình thác nước 5 giai đoạn Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao Xác định chính xác các Thông tin về các hoạt động Danh sách các yêu cầu, Xác định yêu yêu cầu đặt ra cho phần của thế giới thực. cùng với các thông tin mô tả cầu mềm chi tiết về các yêu cầu. Mô tả thế giới thực thông Danh sách các yêu cầu Mô hình xử lý( hệ thống các qua các mô hình trước cùng thông tin liên quan công việc cùng với quan hệ Phân tích khi thiết kế giữa chúng). Mô hình dữ liệu(ERD) Mô tả các thành phần của Mô hình thế giới thực Mô tả thành phần giao diện. Thiết kế phần mềm trước khi cài Mô tả thành phần xử lý. đặt Mô tả thành phần dữ liệu. Tạo lập phần mềm mong Mô hình phần mềm Chương trình phần mềm muốn theo yêu cầu. Danh sách các yêu cầu cần nguồn với cấu trúc cơ sở dữ Triển khai Kiểm tra độ tin cậy cho việc kiểm tra PM liệu tương ứng. chương trình Đảm bảo phần mềm vận Phần mềm đã hoàn thành Các phản ảnh của khách Bảo trì hành tốt. hàng trong quá trình sử dụng phần mềm. GV: Nguyễn Văn Danh 9
  10. 15/09/2011 1.2.2 Mô hình bản mẫu phần mềm Khảo sát, thu thập thông tin sơ bộ Xây dựng mẫu ban đầu Làm mịn mẫu Khảo sát, lấy ý kiến người dùng Tồi Hạn chế Loại bỏ mẫu Đánh giá Tốt Mẫu hoàn chỉnh Sử dụng Chưa HT đã Tốt Hoàn chỉnh thêm pp hoàn chỉnh? dự án GV: Nguyễnvòng Văn đờ Danhi từ mẫu 1.2.3 Mô hình xoắn ốc Determine objectives Evaluate alternatives alternatives and identify, resolve risks constraints Risk analysis Risk analysis Risk analysis Opera- Prototype 3 tional Prototype 2 protoype Risk analysis Proto- REVIEW type 1 Requirements plan Simulations, models, benchmarks Life-cycle plan Concept of Operation S/W requirements Product design Detailed design Development Requirement plan validation Code Unit test Integration Design and test plan V&V Integr ation Plan next phase Acceptance test Service test Develop, verify next-level product GV: Nguyễn Văn Danh 10
  11. 15/09/2011 2. Các phương pháp phát triển phần mềm 2.1 Tổng quan: có nhiều phương pháp phát triển phần mềm. Mỗi PP có những hướng dẫn cụ thể các công việc cần thực hiện trong từng giai đoạn trong qui trình xây dựng phần mềm. GV: Nguyễn Văn Danh 2. Các phương pháp phát triển phần mềm 2.2 Phân loại: Gồm 2 loại dựa vào tính chất của công việc:  Phương pháp xây dựng:  Phương pháp hướng chức năng.  Phương pháp hướng dữ liệu.  Phương pháp hướng đối tượng.  Phương pháp tổ chức quản lý:  Xây dựng phương án  Tổ chức nhân sự  Ước lượng rủi ro  Lập và theo dõi kế hoạch triển khai Chúng ta chỉ quan tâm đến các phương pháp xây dựng. Phần còn lại anh chị tham khảo giáo trình” Quản lý dự án xây dựng các hệ thống thông tin” GV: Nguyễn Văn Danh 11
  12. 15/09/2011 2.3 Các phương pháp xây dựng phần mềm 2.3.1 Cách tiếp cận: a. Từ trên xuống: Đây là cách giải quyết vấn đề theo hướng phân tích. Ta bắt đầu từ những thành phần chính của hệ thống sau đó các thành phần này sẽ được phân tích thành các phần chi tiết và cụ thể hơn. Quá trình này tiếp diễn cho đến khi đáp ứng ý muốn của nhà xây dựng phần mềm. b. Từ dưới lên: Ngược lại với PP trên, giải quyết theo hướng tổng hợp. GV: Nguyễn Văn Danh 2.3.2 Cách tiến hành: 2.3.2.1 Phương pháp hướng chức năng:  Áp dụng nguyên lý chia để trị  Chia các công việc lớn mà hệ thống cần thực hiện thành các công việc nhỏ hơn và độc lập nhau. 2.3.2.2 Phương pháp hướng dữ liệu:  Chú trọng nhiều đến thành phần dữ liệu trong hệ thống.  Tách dữ liệu ra khỏi quá trình xử lí.  Tách biệt cơ sở dữ liệu và các ứng dụng (tổ chức cơ sở dữ liệu riêng) GV: Nguyễn Văn Danh 12
  13. 15/09/2011 2.3.2 Cách tiến hành: 2.3.2.3 Phương pháp hướng đối tượng:  Một hệ thống phần mềm là tập hợp các đối tượng có khả năng tương tác với nhau.  Hệ thống được chia thành các đối tượng bao gồm cả dữ liệu và xử lý -> cả hệ thống là sự ghép nối các đối tượng bằng truyền thông GV: Nguyễn Văn Danh 3. Công cụ và môi trường phát triển phần mềm 3.1 Khái niệm: Các công cụ và môi trường là các phần mềm hỗ trợ chính người phát triển trong quá trình xây dựng phần mềm. 3.2 Phần mềm hỗ trợ thực hiện các giai đoạn: 3.2.1 Hỗ trợ phân tích: Win A&D, Analyst Pro, 3.2.2 Phần mềm hỗ trợ thiết kế: Quick UML, Power Designer , Oracle Designer, 3.2.3 Phần mềm hỗ trợ lập trình: 3.2.4 Phần mềm kiểm chứng 3.2.5 Phần mềm lập kế hoạch GV: Nguyễn Văn Danh 13