Công nghệ phần mềm

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

pdf13 trang | Chia sẻ: Mr Hưng | Lượt xem: 940 | Lượt tải: 0download
Nội dung tài liệu Công nghệ phần mềm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
15/09/2011 1 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 Môn: Công Nghệ Phần Mềm 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 15/09/2011 2 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 15/09/2011 3 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 15/09/2011 4 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ú 1 Thành phần giao diện Hàm nhập Hàm xuất Nhập yêu cầu, dữ liệu nguồn, xuất kết quả đã xử lý Cần xác định hình thức nhập/xuất và tổ chức dữ liêu tương ứng 2 Thành phần xử lý Hàm kiểm tra Hàm xử lý Kiểm tra tính hợp lệ dữ liệu. Xử lý tính toán phát sinh, biến đổi trên dữ liệu Sử dụng hàm nhập, hàm đọc, hàm xuất, hàm ghi 3 Thành phần dữ liệu Hàm đọc Hàm ghi Đọc dữ liệu từ bộ nhớ phụ vào bộ nhớ chính. Ghi dl từ bộ nhớ chính vào bộ nhớ phụ Cần xác định cách thức tổ chức lưu trữ dữ liệu GV: Nguyễn Văn Danh 15/09/2011 5 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 15/09/2011 6 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 15/09/2011 7 1. Qui trình công nghệ phần mềm GV: Nguyễn Văn Danh 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. 1.2. Một số mô hình triển khai xây dựng phần mềm GV: Nguyễn Văn Danh 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 yêu cầu Xác định chính xác các yêu cầu đặt ra cho phần mềm Thông tin về các hoạt động của thế giới thực. Danh sách các yêu cầu, cùng với các thông tin mô tả chi tiết về các yêu cầu. Lập trình Tạo lập phần mềm mong muốn theo yêu cầu Danh sách các yêu cầu cùng thông tin liên quan Chương trình thực hiện được trên máy tính. 15/09/2011 8 1.2.1.2 Mô hình thác nước 3 giai đoạn GV: Nguyễn Văn Danh Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao Xác định yêu cầu Xác định chính xác các yêu cầu đặt ra cho phần mềm Thông tin về các hoạt động của thế giới thực. Danh sách các yêu cầu, cùng với các thông tin mô tả chi tiết về các yêu cầu. Thiết kế Mô tả các thành phần của phần mềm Danh sách các yêu cầu cùng thông tin liên quan Mô tả thành phần giao diện. Mô tả thành phần xử lý. Mô tả thành phần dữ liệu. Lập trình Tạo lập phần mềm mong muốn theo yêu cầu Mô hình phần mềm Chương trình phần mềm nguồn với cấu trúc cơ sở dữ liệu tương ứng. 1.2.1.3 Mô hình thác nước 4 giai đoạn GV: Nguyễn Văn Danh Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao Xác định yêu cầu Xác định chính xác các yêu cầu đặt ra cho phần mềm Thông tin về các hoạt động của thế giới thực. Danh sách các yêu cầu, cùng với các thông tin mô tả chi tiết về các yêu cầu. Phân tích Mô tả thế giới thực thông qua các mô hình Danh sách các yêu cầu cùng thông tin liên quan Mô hình xử lý( hệ thống các công việc cùng với quan hệ giữa chúng). Mô hình dữ liệu(ERD) Thiết kế Mô tả các thành phần của phần mềm trước khi cài đặt Mô hình thế giới thực Mô tả thành phần giao diện. Mô tả thành phần xử lý. Mô tả thành phần dữ liệu. Lập trình Tạo lập phần mềm mong muốn theo yêu cầu Mô hình phần mềm Chương trình phần mềm nguồn với cấu trúc cơ sở dữ liệu tương ứng. 15/09/2011 9 1.2.1.4 Mô hình thác nước 5 giai đoạn GV: Nguyễn Văn Danh Xác định YC Phân tích Thiết kế Triển khai Vận hành Bảo trì Thời gian Bước 1.2.1.4 Mô hình thác nước 5 giai đoạn GV: Nguyễn Văn Danh Giai đoạn Mục tiêu Kết quả nhận được Kết quả chuyển giao Xác định yêu cầu Xác định chính xác các yêu cầu đặt ra cho phần mềm Thông tin về các hoạt động của thế giới thực. Danh sách các yêu cầu, cùng với các thông tin mô tả chi tiết về các yêu cầu. Phân tích Mô tả thế giới thực thông qua các mô hình trước khi thiết kế Danh sách các yêu cầu cùng thông tin liên quan Mô hình xử lý( hệ thống các công việc cùng với quan hệ giữa chúng). Mô hình dữ liệu(ERD) Thiết kế Mô tả các thành phần của phần mềm trước khi cài đặt Mô hình thế giới thực Mô tả thành phần giao diện. Mô tả thành phần xử lý. Mô tả thành phần dữ liệu. Triển khai Tạo lập phần mềm mong muốn theo yêu cầu. Kiểm tra độ tin cậy chương trình Mô hình phần mềm Danh sách các yêu cầu cần cho việc kiểm tra PM Chương trình phần mềm nguồn với cấu trúc cơ sở dữ liệu tương ứng. Bảo trì Đảm bảo phần mềm vận hành tốt. Phần mềm đã hoàn thành Các phản ảnh của khách hàng trong quá trình sử dụng phần mềm. 15/09/2011 10 1.2.2 Mô hình bản mẫu phần mềm GV: Nguyễn Văn Danh 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 Đánh giá Mẫu hoàn chỉnh HT đã hoàn chỉnh? Hoàn chỉnh dự án từ mẫu Sử dụng thêm pp vò g đời Loại bỏ mẫu Hạn chế Tồi Tốt Chưa Tốt 1.2.3 Mô hình xoắn ốc GV: Nguyễn Văn Danh Risk analys is Risk analysis Risk analysis Risk analysis Proto- type 1 Prototype 2 Prototype 3 Opera- tional protoype Concept of Operation Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unit test Integr ation testAcceptance testService Develop, verify next-level product Evaluate alternatives identify, resolve risks Determine objectives alternatives and constraints Plan next phase Integration and test plan Development plan Requirements plan Life-cycle plan REVIEW 15/09/2011 11 2. Các phương pháp phát triển phần mềm GV: Nguyễn Văn Danh 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. 2. Các phương pháp phát triển phần mềm GV: Nguyễn Văn Danh 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” 15/09/2011 12 2.3 Các phương pháp xây dựng phần mềm GV: Nguyễn Văn Danh 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. 2.3.2 Cách tiến hành: GV: Nguyễn Văn Danh 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) 15/09/2011 13 GV: Nguyễn Văn Danh 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 2.3.2 Cách tiến hành: 3. Công cụ và môi trường phát triển phần mềm GV: Nguyễn Văn Danh 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

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

  • pdfbaigiangnhapmoncongnghephanmemtruonglytutrong_1804.pdf
Tài liệu liên quan