ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM (tiếp theo) Nhóm các kỹ thuật, phương pháp luận Nhóm các chương trình Nhóm các tư liệu.. Kinh nghiệm kỹ sư, know-how.[r]
(1)CÔNG NGHỆ PHẦN MỀM ỨNG DỤNG
(2)BÀI 1
GIỚI THIỆU CHUNG VỀ
CÔNG NGHỆ HỌC PHẦN MỀM
(3)• 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
(4)CÁC KIẾN THỨC CẦN CĨ
• Tin học đại cương; • Ngơn ngữ lập trình;
(5)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
(6)CẤU TRÚC NỘI DUNG
Các vấn đề liên quan đến phần mềm 1.2
Phần mềm 1.1
(7)1.1 PHẦN MỀM
1.1.1 Định nghĩa chung
về 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
(8)1.1.1 ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM
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
• 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
(9)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
(10)1.1.1 ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM (tiếp theo) 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
• 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;
(11)1.1.1 ĐỊNH NGHĨA CHUNG VỀ PHẦN MỀM (tiếp theo)
Nhóm chương trình:
Là phần giao diện với phần cứng, tạo thành từ nhóm lệnh thị cho máy tính biết trình tự thao tác xử lý liệu
Phần mềm bản: Với chức cung cấp môi trường thao tác dễ dàng cho người sử dụng nhằm tăng hiệu xử lý phần cứng (ví dụ OS chương trình hệ thống)
Phần mềm ứng dụng: Dùng để xử lý nghiệp vụ thích hợp (quản lý, kế tốn…), phần mềm đóng gói, phần mềm người dùng…
Nhóm tư liệu:
Những tư liệu hữu ích, có giá trị cao cần thiết để phát triển, vận hành bảo trì phần mềm
Để chế phần mềm với độ tin cậy cao cần tạo tư liệu chất lượng cao: đặc tả yêu cầu, mô tả thiết kế loại, điều kiện kiểm thử, thủ tục vận hành, hướng dẫn thao tác
(12)1.1.2 KIẾN TRÚC PHẦN MỀM
a Phần mềm nhìn từ cấu trúc phân cấp
• Mức hệ thống (system), hệ thống (subsystems) • Dưới hệ thống chương trình
(13)1.1.2 KIẾN TRÚC PHẦN MỀM
b Phần mềm nhìn từ cấu trúc thủ tục
• Hai yếu tố cấu thành phần mềm: Phương diện cấu trúc;
Phương diện thủ tục
• Cấu trúc phần mềm: Biểu thị kiến trúc chức mà phần mềm có điều kiện phân cấp chức (thiết kế cấu trúc)
• Thiết kế chức năng: Theo chiều đứng (càng sâu phức tạp) chiều ngang (càng rộng nhiều chức năng, qui mô lớn)
(14)1.1.2 KIẾN TRÚC PHẦN MỀM
• Thủ tục (procedure) phần mềm:
Là quan hệ trình tự mà phần mềm có
Thuật tốn với phép lặp, rẽ nhánh, điều khiển luồng xử lý (quay lùi hay bỏ qua)
Là cấu trúc lơgic biểu thị chức có phần mềm trình tự thực chúng
(15)1.1.3 KHÁI NIỆM
(16)1.1.3 KHÁI NIỆM a Tính Module
• Là khả phân chia phần mềm thành module ứng với chức năng, đồng thời cho phép quản lý tổng thể: Khái niệm phân chia trộn (partion and merge)
• Hai phương pháp phân chia module theo chiều:
Sâu (depth, thẳng đứng): Điều khiển phức tạp dần;
Rộng (width, nằm ngang): Module phụ thuộc dần
(17)1.1.3 KHÁI NIỆM
b Chi tiết hóa bước
• Cách tiếp cận từ xuống (top-down approach)
Trừu tượng hóa mức cao: Thế giới bên ngoài;
Trạng thái chưa rõ ràng
Trừu tượng hóa mức trung gian: Xác định yêu cầu đặc tả;
Những định nghĩa yêu cầu
Trừu tượng hóa mức thấp:
Từng lệnh chương trình được; Chi tiết hóa bước Ngơn ngữ chương trình Đặc tả yêu cầu
(18)1.1.3 KHÁI NIỆM
• Ví dụ: Trình tự giải vấn đề từ mức thiết kế chương trình đến mức lập trình
Bài tốn: Từ nhóm N số khác tăng dần, tìm số có giá trị K (nhập từ ngồi vào) in vị trí
Giải bước từ khái niệm đến chi tiết hóa câu lệnh ngơn ngữ lập trình
Chọn giải thuật tìm kiếm nhị phân (phương pháp nhị phân) Cụ thể hóa thủ tục qua chức năng:
Bài toán cho Nhập giá trị K
Nhận giá trị nhóm N số
(19)1.1.3 KHÁI NIỆM (tiếp theo)
(20)1.1.3 KHÁI NIỆM (tiếp theo)
Bắt đầu Đọc K
Nhận giá trị cho mảng chiều A(I), (I =1, 2, ,.N) MIN =
MAX = N
DO WHILE (Có giá trị K khơng, MIN > MAX) Lấy MID = (MIN + MAX) /
IF A(MID) > K THEN
MAX = MID - ELSE
IF A(MID) < K THEN
MIN = MID + ELSE
In giá trị MID ENDIF
ENDIF