Sau khi học xong chương này người học có thể hiểu về 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.
16/02/2014 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 Nguyễn Tiến Huy – ĐH-KHTN GV: Nguyễn Văn Danh Chương I: Tổng quan CNPM Sinh viên biết khái niệm cơng nghệ phần mềm, quy trình xây dựng phần mềm Phần mềm lớp phần mềm Kiến trúc thành phần 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 công cụ phát triển phần mềm GV: Nguyễn Văn Danh I Phần mềm lớp phần mềm Phần mềm Định nghĩa: hệ thống chương trình thực máy tính nhằm hỗ trợ cho nhà chuyên môn lĩnh vực chuyên ngành thực tốt thao tác nghiệp vụ mình.( Đây quan điểm 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 16/02/2014 Lớp phần mềm Là hệ thống phần mềm lĩnh vực hoạt động chúng có cấu trúc & chức giống GV: Nguyễn Văn Danh Phân loại phần mềm Có nhiều cách phần loại phần mềm khác Phân loại dụa mục đích người sử dụng phần mềm( góc độ người sử dụng) & phân loại dựa mục đích tạo lập phần mềm Phân loại dựa 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 mục đích tạo lập (góc độ người lập trình) Phần mềm theo hơp đồng: phần mềm viết cho khách hàng cụ thể với yêu cầu cụ thể, có thời gian chi phí cụ thể phải có trách nhiệm bảo trì phần mềm Phần mềm khung: Là phần mềm tạo nhằm nhanh chóng triển khai phần mềm theo hợp đồng tiện lợi Đây phần mềm khong đưa cho người sử dụng có đăc điểm sau: khơng có khách hàng cụ thể, khơng có u cầu cụ thể Phần mềm đóng gói: Là phần mềm đươc làm để bán rộng rãi cho người Đặc điểm khong có khách hàng cụ thể, khơng có u cầu cụ thể, khơng bảo trì mà có phân nâng cấp GV: Nguyễn Văn Danh 16/02/2014 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 hàm ý nghĩa tương ứng: STT Thành phần Hàm Ý Nghĩa Ghi Chú Thành phần giao diện Hàm nhập Hàm xuất Nhập yêu cầu, liệu nguồn, xuất kết xử lý Cần xác định hình thức nhập/xuất tổ chức liêu tương ứng Thành phần xử lý Hàm kiểm tra Hàm xử lý Kiểm tra tính hợp lệ liệu Xử lý tính tốn phát sinh, biến đổi liệu Sử dụng hàm nhập, hàm đọc, hàm xuất, hàm ghi Thành phần liệu Hàm đọc Hàm ghi Đọc liệu từ nhớ phụ vào nhớ Ghi dl từ nhớ vào nhớ phụ Cần xác định cách thức tổ chức lưu trữ liệu GV: Nguyễn Văn Danh IV Chất lượng phần mềm Một phần mềm đánh giá có chất lượng tuỳ vào yếu tố sau: Tính đắn: chạy tốt, chạy theo yêu cầu người sử dụng Tính tiến hố: khả đáp ứng phần mềm qui định nghiệp vụ thay đổitheo thời gian, tốc độ thực theo máy móc Tính hiệu quả: Việc chiếm nhớ hay nhớ ngồi cho hiệu Tính tương thích: Là khả tương tác phần mềm với 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 tính chất trên, tính chất quan trọng GV: Nguyễn Văn Danh 16/02/2014 V Công nghệ phần mềm Bauer(1969): Việc thiết lập sử dụng nguyên lý công nghệ đắn để thu phần mềm cách kinh tế vừa tin cậy vừa làm việc hiệu máy thực Ghezzi(1991) Một lĩnh vực khoa học máy tính liên quan đến việc xây dựng phần mềm vừa lớn vừa phức tạp hay số nhóm kỹ sư Sommervile(1995): lĩnh vực liên quan đến lý thuyết, phương pháp công cụ dùng cho phát triển phần mềm GV: Nguyễn Văn Danh V Công nghệ phần mềm Kawamura(1995): lĩnh vực học vấn kỹ thuật, phương pháp luận công nghệ học tồn quy trình phát triển phần mềm nhằm nâng cao chất lượng sản xuất phần mềm Pressman(1995): mơn tích hợp qui trình, phương pháp, công cụ để phát triển phần mềm máy tính Ta đưa định nghĩa tóm tắt sau: Công nghệ phần mềm nghành khoa học nghiên cứu việc xây dựng phần mềm có chất lượng khoảng thời gian chi phí hợp lý GV: Nguyễn Văn Danh VI Đối tượng nghiên cứu CNPM đưa đối tượng nghiên cứu chính: Quy trình cơng nghệ phần mềm: o Là hệ thống giai đoạn mà 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 nhận được, kết chuyển giao Phương pháp phát triển phần mềm: hệ thống hướng dẫn để thực giai đoạn Công cụ môi trường phát triển phần mềm: Hệ thống phần mềm trợ giúp lĩnh vực xây dựng phần mềm GV: Nguyễn Văn Danh 16/02/2014 Qui trình cơng nghệ phần mềm 1.1 Các bước 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 đắ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 Làm phù hợp vớ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 giai đoạn Giai đoạn Xác định yêu cầu Lập trình Mục tiêu Kết nhận Kết chuyển giao Xác định xác yêu cầu đặt cho phần mềm Thông tin hoạt động giới thực Danh sách yêu cầu, với thông tin mô tả chi tiết yêu cầu Tạo lập phần mềm mong muốn theo yêu cầu Danh sách yêu cầu thông tin liên quan Chương trình thực máy tính GV: Nguyễn Văn Danh 1.2.1.2 Mơ hình thác nước giai đoạn Giai đoạn Mục tiêu Xác định yêu cầu Xác định xác yêu cầu đặt cho phần mềm Thông tin hoạt động giới thực Kết nhận Danh sách yêu cầu, với thông tin mô tả chi tiết yêu cầu Mô tả thành phần phần mềm Danh sách yêu cầu 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 liệu Tạo lập phần mềm mong muốn theo 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 sở liệu tương ứng Thiết kế Lập trình Kết chuyển giao GV: Nguyễn Văn Danh 16/02/2014 1.2.1.3 Mô hình thác nước giai đoạn Giai đoạn Xác định yêu cầu Kết nhận Kết chuyển giao Xác định xác yêu cầu đặt cho phần mềm Mục tiêu Thông tin hoạt động giới thực Danh sách yêu cầu, với thông tin mô tả chi tiết yêu cầu Mô tả giới thực thông qua mơ hình Danh sách u cầu thơng tin liên quan Mơ hình xử lý( hệ thống cơng việc với quan hệ chúng) Mơ hình liệu(ERD) Mô tả thành phần phần mềm trước cài đặt Mơ hình 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 liệu Tạo lập phần mềm mong muốn theo 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 sở liệu tương ứng Phân tích Thiết kế Lập trình GV: Nguyễn Văn Danh 1.2.1.4 Mơ hình thác nước 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 giai đoạn Giai đoạn Kết nhận Kết chuyển giao Xác định yêu cầu Xác định xác yêu cầu đặt cho phần mềm Thông tin hoạt động giới thực Danh sách yêu cầu, với thông tin mô tả chi tiết u cầu Phân tích Mơ tả giới thực thơng qua mơ hình trước thiết kế Danh sách yêu cầu thông tin liên quan Mô hình xử lý( hệ thống cơng việc với quan hệ chúng) Mơ hình liệu(ERD) Mơ tả thành phần phần mềm trước cài đặt Mơ hình giới thực Thiết kế Mơ tả thành phần giao diện Mô tả thành phần xử lý Mô tả thành phần 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 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 sở liệu tương ứng Đả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 khách hàng trình sử dụng phần mềm Bảo trì Mục tiêu GV: Nguyễn Văn Danh 16/02/2014 1.2.2 Mơ hình mẫu phần mềm Khảo sát, thu thập thông tin sơ 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 Loại bỏ mẫu Tồi Hạn chế Đánh giá Tốt Mẫu hoàn chỉnh Sử dụng thêm pp vòngVăn đời GV: Nguyễn Danh Chưa HT hoàn chỉnh? Hoàn chỉnh dự án từ mẫu Tốt 1.2.3 Mơ hình xoắn ốc Determine objectives alternatives and constraints Risk analysis Evaluate alternatives identify, resolve risks Risk analysis Risk analysis REVIEW Requirements plan Life-cycle plan Development plan Plan next phase Integration and test plan Prototype Prototype Risk analysis Prototype Operational protoype Simulations, models, benchmarks Concept of Operation S/W requirements Requirement validation Product design Detailed design Code Unit test Design V&V Integr ation test Acceptance test Develop, verify Service next-level product GV: Nguyễn Văn Danh 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ó hướng dẫn cụ thể công việc cần thực giai đoạn qui trình xây dựng phần mềm GV: Nguyễn Văn Danh 16/02/2014 Các phương pháp phát triển phần mềm 2.2 Phân loại: Gồm loại dựa vào tính chất cơng việc: Phương pháp xây dựng: Phương pháp hướng chức Phương pháp hướng 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 Ước lượng rủi ro Lập theo dõi kế hoạch triển khai Chúng ta quan tâm đến phương pháp xây dựng Phần lại anh chị tham khảo giáo trình” Quản lý dự án xây dựng hệ thống thông tin” GV: Nguyễn Văn Danh 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ừ xuống: Đây cách giải vấn đề theo hướng phân tích Ta thành phần hệ thống sau thành phần phân tích thành phần chi tiết cụ thể Quá trình tiếp diễn đáp ứng ý muốn nhà xây dựng phần mềm b Từ lên: Ngược lại với PP trên, giải 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ông việc lớn mà hệ thống cần thực thành công việc nhỏ độc lập 2.3.2.2 Phương pháp hướng liệu: Chú trọng nhiều đến thành phần liệu hệ thống Tách liệu khỏi q trình xử lí Tách biệt sở liệu ứng dụng (tổ chức sở liệu riêng) GV: Nguyễn Văn Danh 16/02/2014 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 tập hợp đối tượng có khả tương tác với Hệ thống chia thành đối tượng bao gồm liệu xử lý -> hệ thống ghép nối đối tượng truyền thông GV: Nguyễn Văn Danh Công cụ môi trường phát triển phần mềm 3.1 Khái niệm: Các công cụ môi trường phần mềm hỗ trợ người phát triển q trình xây dựng phần mềm 3.2 Phần mềm hỗ trợ thự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 ... triển phần mềm: hệ thống hướng dẫn để thực giai đoạn Công cụ môi trường phát triển phần mềm: Hệ thống phần mềm trợ giúp lĩnh vực xây dựng phần mềm GV: Nguyễn Văn Danh 16 /02/2 014 Qui trình cơng nghệ. .. đắ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 Làm phù hợp vớ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... cơng nghệ phần mềm 1. 1 Các bước 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