1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Công nghệ phần mềm ứng dụng: Bài 1 - ThS. Thạc Bình Cường

58 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 3,87 MB

Nội dung

Bài giảng Công nghệ phần mềm ứng dụng - Bài 1: Giới thiệu chung về công nghệ học phần mềm được biên soạn với các nội dung đó là khái niệm về phần mềm; kỹ nghệ phần mềm, xây dựng quy trình phát triển phần mềm, vòng đời phần mềm; khái quát các trường hợp cụ thể của phần mềm hệ thống, phần mềm ứng dụng.

CÔNG NGHỆ PHẦN MỀM ỨNG DỤNG Giảng viên: ThS Thạc Bình Cường v1.0015112208 BÀI GIỚI THIỆU CHUNG VỀ CƠNG NGHỆ HỌC PHẦN MỀM Giảng viên: ThS Thạc Bình Cường v1.0015112208 MỤC TIÊU BÀI HỌC • • Trình bày khái niệm phần mềm; kỹ nghệ phần mềm, xây dựng quy trình phát triển phần mềm Vòng đời phần mềm Khái quát trường hợp cụ thể phần mềm hệ thống, phần mềm ứng dụng v1.0015112208 CÁC KIẾN THỨC CẦN CĨ • • • Tin học đại cương; Ngơn ngữ lập trình; Phân tích thiết kế hệ thống thông tin v1.0015112208 HƯỚNG DẪN HỌC • • • • • Sinh viên đọc tài liệu tham khảo Tìm hiểu ví dụ doanh nghiệp sử dụng công nghệ thông tin nào? So sánh giá trị phần mềm phần cứng ngày thay đổi vai trò với Đọc tìm hiểu khái niệm trừu tượng thơng qua mơ hình, hình vẽ minh họa Dựa vào ví dụ hàng khơng, thuế, ngân hàng, giáo dục Để thấy rõ vai trò quy trình cơng nghệ phần mềm v1.0015112208 CẤU TRÚC NỘI DUNG 1.1 v1.0015112208 Phần mềm 1.2 Các vấn đề liên quan đến phần mềm 1.3 Công nghệ học phần mềm 1.1 PHẦN MỀM v1.0015112208 1.1.1 Định nghĩa chung phần mềm 1.1.2 Kiến trúc phần mềm 1.1.3 Khái niệm 1.1.4 Đặc tính chung phần mềm 1.1.5 Thế phần mềm tốt 1.1.6 Các ứng dụng phần mềm 1.1.1 ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM • Phần mềm (Software - SW) khái niệm đối nghĩa với phần cứng (Hardware HW), nhiên, khái niệm tương đối • Từ xưa, SW thứ cho không bán kèm theo máy (HW) • Dần dần, giá thành SW ngày cao cao HW • Các đặc tính SW HW: HW SW Vật “cứng” Vật “mềm” Kim loại Kỹ thuật sử dụng Vật chất Trừu tượng Hữu hình Vơ hình Sản xuất cơng nghiệp máy móc Sản xuất người Định lượng Định tính Hỏng hóc, hao mịn Khơng hao mịn v1.0015112208 1.1.1 ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM • Định nghĩa 1: Các lệnh (chương trình máy tính) thực cung cấp chức kết mong muốn Các cấu trúc liệu làm cho chương trình thao tác thơng tin thích hợp Các tư liệu mơ tả thao tác cách sử dụng chương trình • SW đối nghĩa với HW:  Vai trò SW ngày thể trội;  Máy tính hộp khơng có SW;  Ngày nay, SW định chất lượng hệ thống máy tính, chủ đề cốt lõi, trung tâm hệ thống máy tính;  Hệ thống máy tính gồm HW SW • Định nghĩa 2: Trong hệ thống máy tính, trừ bỏ thiết bị loại phụ kiện phần cịn lại phần mềm (SW)  Nghĩa hẹp: SW dịch vụ chương trình để tăng khả xử lý phần cứng máy tính (như hệ điều hành - OS)  Nghĩa rộng: SW tất kỹ thuật ứng dụng để thực dịch vụ chức cho mục đích phần cứng  Không SW SW ứng dụng  Phải gồm khả năng, kinh nghiệm thực tiễn kỹ kỹ sư (người chế phần mềm)  Là tất kỹ thuật làm cho sử dụng phần cứng máy tính đạt hiệu cao v1.0015112208 1.1.1 ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM (tiếp theo) • Phần mềm gì?  Nhóm kĩ thuật, phương pháp luận:  Các khái niệm trình tự cụ thể hóa hệ thống;  Các phương pháp tiếp cận giải vấn đề;  Các trình tự thiết kế phát triển chuẩn hóa;  v1.0015112208 Các phương pháp đặc tả yêu cầu, thiết kế hệ thống, thiết kế chương trình, kiểm thử, tồn quy trình quản lý phát triển phần mềm Nhóm kỹ thuật, phương pháp luận Nhóm chương trình Nhóm tư liệu Kinh nghiệm kỹ sư, know-how 10 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) Mức (Xác định): • Tính chất:  Lập tài liệu tiến trình tiêu chuẩn việc phát triển bảo trì phần mềm có tổ chức, bao gồm cơng nghệ phần mềm, tiến trình quản lý, tiến trình tích hợp với (nghĩa đầu tiến trình đầu vào tiến trình tiếp theo)  Một tiến trình xác định tốt gồm có tính chất có tiêu chuẩn, đầu vào, tiêu chuẩn thủ tục rõ ràng để tiến hành cơng việc, kiểm tra đầu • Các KPA:  Organization Process Focus (tập trung vào tiến trình tổ chức);  Organization Process Definition (định nghĩa tiến trình tổ chức);  Training Program (chương trình tập huấn);  Integrated Software Management (quản lý phần mềm tích hợp);  Software Product Engineering (công nghệ sản xuất phần mềm);  Intergroup Coordination (kết hợp nhóm);  Peer Reviews (rà sốt ngang hàng) v1.0015112208 44 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) Mức (Quản lý): • Tính chất: Mục tiêu điều khiển tiến trình Các tiến trình phần mềm quản lý để vận hành ổn định, an tồn Có đánh giá phần mềm chất lượng, hiệu hoạt động tiến trình Do tiến trình ổn định đánh giá nên có trường hợp ngoại lệ, xác định rõ nguyên nhân gây biến đổi • Các KPA Quantitative Process Management (quản lý tiến trình định lượng): Software Quality Management (quản lý chất lượng phần mềm) Mức (Tối ưu hóa): • Tính chất: Tiếp tục cải tiến tiến trình, xác định điểm mạnh điểm yếu tiến trình, có khả phân tích khiếm khuyết, xác định nguyên nhân gây khó tránh khiếm khuyết • Các KPA:  Defect Prevention (phòng chống khiếm khuyết);  Technology Change Management (quản lý thay đổi cơng nghệ) v1.0015112208 45 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) v1.0015112208 46 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) • Cơng nghệ học hệ thống/thơng tin mơ hình hóa (System/Information engineering and modeling): Thiết lập yêu cầu, ánh xạ số tập yêu cầu sang phần mềm trình tương tác phần cứng, người sở liệu • Phân tích u cầu (Requirements analysis): Hiểu lĩnh vực thơng tin, chức năng, hành vi, tính giao diện phần mềm phát triển Cần phải tạo tư liệu bàn thảo với khách hàng, người dùng • Thiết kế (Design): q trình nhiều bước với thuộc tính khác chương trình: cấu trúc liệu, kiến trúc phần mềm, biểu diễn giao diện chi tiết thủ tục (thuật tốn) Cần tư liệu hóa phần quan trọng cấu hình phần mềm • Tạo mã/lập trình (Code generation/programming): Chuyển thiết kế thành chương trình máy tính ngơn ngữ Nếu thiết kế chi tiết hóa lập trình túy học • Kiểm thử (Testing): Kiểm tra chương trình module logic bên chức bên ngoài, nhằm phát lỗi đảm bảo với đầu vào xác định cho kết mong muốn • Hỗ trợ/bảo trì (Support/Maintenance): Đáp ứng thay đổi, nâng cấp phần mềm phát triển thay đổi môi trường, nhu cầu v1.0015112208 47 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) • Điểm yếu mơ hình tuyến tính:  Thực tế dự án tn theo dịng mơ hình, mà thường có lặp lại (như mơ hình Boehm)  Khách hàng tun bố rõ ràng xong hết yêu cầu  Khách hàng phải có lịng kiên nhẫn chờ đợi thời gian định có sản phẩm Nếu phát lỗi nặng thảm họa v1.0015112208 48 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) c Mơ hình chế thử Nghe Khách khách trình bày Tạo Tạo/sửa / sửa mẫu Khách kiểm tra mẫu Khi rõ mục đích chung chung phần mềm, chưa rõ chi tiết đầu vào hay xử lý chưa rõ yêu cầu đầu Dùng “Hệ sơ khai” để thu thập yêu cầu người dùng qua thiết kế nhanh Các giải thuật, kỹ thuật dùng làm mẫu chưa nhanh, chưa tốt, miễn có mẫu để thảo luận gợi yêu cầu người dùng v1.0015112208 49 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) d Mơ hình phát triển ứng dụng nhanh (Rapid Application Development - RAD) • Là quy trình phát triển phần mềm gia tăng, tăng dần bước (Incrimental software development) với chu trình phát triển ngắn (60-90 ngày) • Xây dựng dựa hướng thành phần (Component-based construction) với khả tái sử dụng (reuse) • Gồm số nhóm (teams), nhóm làm RAD theo pha: mơ hình nghiệp vụ, mơ hình liệu, mơ hình xử lý, tạo ứng dụng, kiểm thử đánh giá Team #3 Team #2 Business Modeling Data Modeling Business Process Modeling Modeling Application Data Team #1 Generation Modeling Testing & Business Process Turnover Modeling Modeling Application Generation Data Modeling Testing & Turnover Process Modeling Application Generation Testing & Turnover 60 - 90 days v1.0015112208 50 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) • Data modeling: Các đối tượng liệu cần để hỗ trợ nghiệp vụ (business) Định nghĩa thuộc tính đối tượng xác lập quan hệ đối tượng • Process modeling: Các đối tượng liệu chuyển sang luồng thông tin thực chức nghiệp vụ Tạo mô tả xử lý đễ cập nhật (thêm, sửa, xóa, khơi phục) đối tượng liệu • Application Generation: Dùng kỹ thuật hệ để tạo phần mềm từ thành phần có sẵn tạo thành phần tái dụng lại sau Dùng công cụ tự động để xây dựng phần mềm • Testing and Turnover: Kiểm thử thành phần kiểm chứng giao diện (các thành phần cũ kiểm thử dùng lại) • Hạn chế RAD:  Cần nguồn nhân lực dồi để tạo nhóm cho chức chính;  Yêu cầu hai bên giao kèo thời gian ngắn phải có phần mềm hồn chỉnh, thiếu trách nhiệm bên dễ làm dự án đổ vỡ;  RAD tốt cho ứng dụng, với ứng dụng khơng thể module hóa địi hỏi tính cao;  Mạo hiểm kỹ thuật cao khơng nên dùng RAD v1.0015112208 51 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) • Data modeling: Các đối tượng liệu cần để hỗ trợ nghiệp vụ (business) Định nghĩa thuộc tính đối tượng xác lập quan hệ đối tượng • Process modeling: Các đối tượng liệu chuyển sang luồng thông tin thực chức nghiệp vụ Tạo mô tả xử lý đễ cập nhật (thêm, sửa, xóa, khơi phục) đối tượng liệu • Application Generation: Dùng kỹ thuật hệ để tạo phần mềm từ thành phần có sẵn tạo thành phần tái dụng lại sau Dùng công cụ tự động để xây dựng phần mềm • Testing and Turnover: Kiểm thử thành phần kiểm chứng giao diện (các thành phần cũ kiểm thử dùng lại) • Hạn chế RAD:  Cần nguồn nhân lực dồi để tạo nhóm cho chức chính;  Yêu cầu hai bên giao kèo thời gian ngắn phải có phần mềm hồn chỉnh, thiếu trách nhiệm bên dễ làm dự án đổ vỡ;  RAD tốt cho ứng dụng, với ứng dụng khơng thể module hóa địi hỏi tính cao;  Mạo hiểm kỹ thuật cao khơng nên dùng RAD v1.0015112208 52 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) e Các mơ hình tiến hóa: gia tăng, xoắn ốc, xoắn WINWIN • Phần lớn hệ phần mềm phức tạp tiến hóa theo thời gian: môi trường thay đổi, yêu cầu phát sinh thêm, hồn thiện thêm chức năng, tính • Các mơ hình tiến hóa có tính lặp lại Kỹ sư phần mềm tạo phiên ngày hồn thiện hơn, phức tạp • Các mơ hình: incremental, spiral, WINWIN spiral, concurrent development model Mơ hình gia tăng • Kết hợp mơ hình ý tưởng lặp lại chế mẫu • Sản phẩm lõi với yêu cầu hệ thống phát triển • Các chức với yêu cầu khác phát triển thêm sau (gia tăng) • Lặp lại quy trình để hồn thiện dần v1.0015112208 53 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) v1.0015112208 54 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) v1.0015112208 55 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) v1.0015112208 56 1.3.3 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM (tiếp theo) v1.0015112208 57 TÓM LƯỢC CUỐI BÀI Trong tìm hiểu nội dung sau: • Bản chất phần mềm; • Khủng hoảng phần mềm; • Cơng nghệ học phần mềm: định nghĩa, vịng đời phần mềm quy trình phát triển phần mềm v1.0015112208 58 ... cơng nghệ phần mềm v1.0 015 112 208 CẤU TRÚC NỘI DUNG 1. 1 v1.0 015 112 208 Phần mềm 1. 2 Các vấn đề liên quan đến phần mềm 1. 3 Công nghệ học phần mềm 1. 1 PHẦN MỀM v1.0 015 112 208 1. 1 .1 Định nghĩa chung phần. .. phần mềm 1. 1.2 Kiến trúc phần mềm 1. 1.3 Khái niệm 1. 1.4 Đặc tính chung phần mềm 1. 1.5 Thế phần mềm tốt 1. 1.6 Các ứng dụng phần mềm 1. 1 .1 ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM • Phần mềm (Software - SW)... năm 19 60 Đầu năm 19 70 13 Cuối năm 19 70 45 APPOLO (1 Bill.$) SPACE SHUTTLE v1.0 015 112 208 31 1.2 .1 KHỦNG HOẢNG PHẦN MỀM LÀ GÌ • So sánh chi phí cho phần cứng, phần mềm v1.0 015 112 208 32 1. 3 CÔNG NGHỆ

Ngày đăng: 07/05/2021, 13:01