Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 1: Khái niệm về phần mềm

Tạo sinh các thành phần

?Các thành phần vận hành đ-ợc

­ Mã nguồn, mã máy, cấu trúc dữ liệu: tự động hóa đ-ợc

?Các thành phần không vận hành

­Các phần còn lại: hầu nh-ch-a đ-ợc tự động hóa

? Nhu cầu vàkhả năng tự động hóa

­Làm thủ công làtất yếu

­ Mong muốn tự động hóa càng nhiều càng tốt

­ Tự động hóa khi có thể hình thức hóa

­Làm tàI liệu làcực nhọc, nh-ng khó tự động

pdf39 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2471 | Lượt tải: 3download
Tóm tắt nội dung Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 1: Khái niệm về phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
, không phảI hệ thống tổng thể
Use case
Tr−ờng hợp 
sử dụng − ?
Bộ mụn Cụng nghệ phần mềm – ĐHCN 14
Nguyễn Văn Vỵ
Đặc tr−ng của phần mềm
„ Thay đổi lμ bản chất
ƒ Lμ mô hình thế giới thực thay đổi theo thời gian
 Môi tr−ờng nghiệp vụ thay đổi 
 Nhu cầu con ng−ời thay đổi 
ắ Thay đổi để đáp ứng ng−ời dùng 
ƒ Thay đổi thích ứng với môi tr−ờng vận hμnh
− Các hệ phần mềm nền (hệ điều hμnh,..)
− Thiết bị phần cứng (chip,..)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 15
Nguyễn Văn Vỵ
■ Cần phát triển theo nhóm
 Quy mô cμng lớn & yêu cầu kỹ năng khác nhau 
 Nhu cầu bμn giao nhanh
 Năng suất nhóm không tỷ lệ với số thμnh viên
(1 ng−ời giỏi > 5 lần ng−ời trung bình)
Vấn đề
™ Trao đổi thông tin lớn (10000 email/ngμy)
™ Khó kiểm soát vμ đồng bộ
™ Khó tăng tốc độ = cách thêm ng−ời
™ Cá nhân ảnh h−ởng lớn lên kết quả nhóm
Đặc tr−ng của phần mềm
Bộ mụn Cụng nghệ phần mềm – ĐHCN 16
Nguyễn Văn Vỵ
Phân loại phần mềm
Ba cách phân loại:
1. Theo mức độ hoμn thiện
2. Theo chức năng thực hiện
3. Theo lĩnh vực ứng dụng
-
1
2 3
SOFT-
WARE
Bộ mụn Cụng nghệ phần mềm – ĐHCN 17
Nguyễn Văn Vỵ
„ Ch−ơng trình
1 ng−ời viết, 1 ng−ời dùng (ng−ời viết ≡ ng−ời dùng)
mục đích thu thập, xử lý số liệu (dùng 1 lần)
không tμi liệu, không kiểm thử triệt để
„ Sản phẩm phần mềm
nhiều ng−ời viết, nhiều ng−ời dùng
độ phức tạp cao, đồng bộ, an toμn, an ninh
™ Kinh nghiệm viết ch−ơng trình nhỏ không áp dụng cho 
sản phẩm lớn
Phân loại theo mức hoμn thiện
Bộ mụn Cụng nghệ phần mềm – ĐHCN 18
Nguyễn Văn Vỵ
Tớnh phức tạp tặng nhanh (9 lần) từ :
chương trỡnh -> sản phẩm-> hệ thống
Phân loại theo mức hoμn thiện
Ch−ơng trình
Sản phẩm
hệ thống
x3
x3
x3x3
Ch−ơng trình
hệ thống
Sản phẩm
Yêu tố
ng−ời 
dùng
Yêu tố
ng−ời 
dùng
Yêu tố
môI 
tr−ờng
cμI đặt
Bộ mụn Cụng nghệ phần mềm – ĐHCN 19
Nguyễn Văn Vỵ
Phân loại theo chức năng
1. Phần mềm hệ thống
2. Phần mềm nghiệp vụ
ƒ Điều hμnh hoạt động máy tính, thiết bị & ch−ơng 
trình (OS)
ƒ Trợ giúp các tiện ích (tổ chức tệp, nén, dọn đĩa..)
ƒ Trợ giúp các hoạt động nghiệp vụ khác nhau.
ƒ Có số l−ợng lớn, đa dạng
ƒ Phân lμm hai loại theo cách lμm:
-
Bộ mụn Cụng nghệ phần mềm – ĐHCN 20
Nguyễn Văn Vỵ
Phân loại theo chức năng 
y Sản phẩm đặt hμng
– Sản xuất theo đơn đặt hμng (HTTT quản lý...)
– đơn chiếc, yêu cầu đặc thù (nhận dạng)
y Sản phẩm chung (software pakages)
– bán rộng rãi (office)
– thỏa mãn yêu cầu chung số lớn người dùng
™ Mỗi loại có cách thức tiếp cận riêng, nhất lμ ở 1 
số các b−ớc ặ chi phí, thời gian khác nhau
Comercial
softwware
Comercial
softwware
Bộ mụn Cụng nghệ phần mềm – ĐHCN 21
Nguyễn Văn Vỵ
Phân loại theo chức năng 
3. Phần mềm công cụ (Tools, CASE)
ƒ Trợ giúp cho quá trình phát triển phần mềm
ƒ Các ngôn ngữ lập trình (soạn thảo, dịch, gỡ rối,..)
ƒ Công cụ trợ giúp 1 , nhiều giai đoạn phát triển 
(phân tích, thiế kế, quản lý dự án, kiểm thử,..)
Developer2000, Powerdesigner, WINER,
Mcrosoft Project Management,
-
Bộ mụn Cụng nghệ phần mềm – ĐHCN 22
Nguyễn Văn Vỵ
Phân loại theo lĩnh vực ứng dụng
1. Phần mềm hệ thống
2. Phần mềm thời gian thực 
ƒ Phục vụ cho các ch−ơng trình khác
ƒ T−ơng tác trực tiếp với phần cứng
ƒ Phục vụ nhiều ng−ời dùng
ƒ Thu thập, xử lí các dữ kiện thế giới thực
ƒ Đáp ứng yêu cầu chặt chẽ về thời gian
-
 thu thập dữ liệu
 phân tích dữ liệu
 kiểm soát, điều khiển
 điều phối
Bộ mụn Cụng nghệ phần mềm – ĐHCN 23
Nguyễn Văn Vỵ
3. Phần mềm nghiệp vụ (business software)
• Xử lí thông tin nghiệp vụ, gắn với CSDL
 Xử lý các giao tác (mạng bán hμng...)
 Lĩnh vực ứng dụng rất lớn (hệ điều khiển vũ trụ)
4. Phần mềm khoa học kỹ thuật (scientific softwares)
• Dùng huật toán phức tạp (vật lí, mô phỏng)
 Năng lực tính toán cao
Phân loại theo lĩnh vực ứng dụng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 24
Nguyễn Văn Vỵ
5. Phần mềm nhúng (embeded software)
• Chỉ đọc ra khi thiết bị khởi động, 
 Thực hiện chức năng hạn chế (điều khiển sản phẩm)
 Lμ sự kết hợp giữa hệ thống vμ thời gian thực
Phân loại theo lĩnh vực ứng dụng
6. Phần mềm máy tính cá nhân
• Các bμi toán nghiệp vụ nhỏ, học tập, giảI trí 
 Giao diện đồ họa phát triển
 Có nhu cầu rất cao
Bộ mụn Cụng nghệ phần mềm – ĐHCN 25
Nguyễn Văn Vỵ
7. Phần mềm trí tuệ nhân tạo (Intelligent Softwares)
• Dùng các thuật toán phi số (logic): suy luận, tìm kiếm
 Hệ chuyên gia, nhận dạng, trò chơi...
8. Phần mềm dựa trên nền web (Web-based Softwares) 
 Cung cấp dịch vụ khai thác thông tin trên web.
 Ch−ơng trình khai thác lμ chung (browser) 
Phân loại theo lĩnh vực ứng dụng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 26
Nguyễn Văn Vỵ
Tiến hóa và thách thức
‰ Phần mềm tiến hóa cùng tiến bộ của phần cứng:
ƒ Về quy mô, sự phức tạp vμ tốc độ
ƒ Về chức năng vμ mức hoμn thiện 
‰ Công nghệ không ngừng phát triển, nhu cầu tăng
ắ Khó khăn, thách thức ngμy cμng nhiều
Bộ mụn Cụng nghệ phần mềm – ĐHCN 27
Nguyễn Văn Vỵ
Tiến hóa phần mềm
ƒ Ch−ơng trinh nhỏ, tính toán chuyên dụng
ƒ Xử lí số, theo lô
ƒ Ngôn ngữ: mã máy, hợp ngữ, đặc thù cho từng máy
ƒ Tiêu chí đánh giá:
 Tính nhanh
 Giải đ−ợc bμi toán lớn (dùng bộ nhớ hiệu quả)
™Công nghệ: bóng điện tử (tính chậm, bộ nhớ nhỏ)
a1. Giai đoạn 1: 1950ặ 1960
Bộ mụn Cụng nghệ phần mềm – ĐHCN 28
Nguyễn Văn Vỵ
Giai đoạn 2: ặ giữa thập kỷ 70
ƒ Lμ sản phẩm: Đa nhiệm, đa ng−ời sử dụng
ƒ Xử lý số, ký tự, theo lô & thời gian thực
ƒ Xuất hiện l−u trữ trực tuyến (CSDL)
ƒ Ngôn ngữ: có cấu trúc: PL1, Algol 60, Fortran, COBOL
ƒ Tiêu chí đánh giá:
ắ Tính nhanh 
ắ Giải đ−ợc bμi toán lớn
ắ Nhiều ng−ời dùng
™ Công nghệ: bán dẫn (tính nhanh hơn, bộ nhớ khá), CSDL 
™ Yêu cầu bảo trì (sửa lỗi, thích nghi)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 29
Nguyễn Văn Vỵ
Giai đoạn 3: ặ1990
ƒ Phần mềm cá nhân + mạng, hệ lớn, chia sẻ đ−ợc
ƒ Ra đời phần mềm nhúng 
ƒ Xử lý số, ký tự, âm thanh, hình ảnh; theo lô, thời 
gian thực, phân tán, song song
ƒ Truy nhập dữ liệu phát triển, cả từ xa
ƒ Ngôn ngữ: bậc cao, h−ớng đối t−ợng, lôgic
ƒ Tiêu chí:
• Tiện dụng
• Tin cậy
• Dễ bảo trì
™ Công nghệ: mạch tích hợp lớn, 
vi mạch, các cấu hình mang, 
internet, CSDL quan hệ
Bộ mụn Cụng nghệ phần mềm – ĐHCN 30
Nguyễn Văn Vỵ
Giai đoạn 4: từ 1990 đến nay
ƒ Phần mềm lớn, tinh vi, tin cậy, h−ớng ng−ời dùng
ƒ Hệ chuyên gia, trí tuệ nhân tạo, phần mềm nhúng, 
webservice sử dụng rộng rãi, internet mở rộng
ƒ CSDL h−ớng đối t−ợng, kho dữ liệu phát triển
ƒ Ngôn ngữ: h−ớng đối t−ợng, thế hệ thứ 4, visual 
ƒ Tiêu chí đánh giá:
• Tiện dụng, tinh vi
• Tin cậy
• Dễ bảo trì
™ Công nghệ: vi mạch siêu tích 
hợp, internet, mạng không dây tốc 
độ cao, h−ớng đối t−ơng, web
Bộ mụn Cụng nghệ phần mềm – ĐHCN 31
Nguyễn Văn Vỵ
Tiêu chí phần mềm tốt hiện nay
Phần mềm tốt có thể nhìn nhận từ hai phía:
ƒ Ng−ời dùng:
• Đủ chức năng nghiệp vụ
• Dễ sử dụng, tinh vi (tính thông minh)
• Tin cậy, an toμn
ƒ Nhμ phát triển
• Dễ bảo trì
Bộ mụn Cụng nghệ phần mềm – ĐHCN 32
Nguyễn Văn Vỵ
Khó khăn vμ thách thức 
b1. Thực trạng sản phẩm, phát triển
ƒ 16%: DA đỳng lịch, trong ngõn sỏch, sản phẩm 
chất lượng
ƒ 31%: DA bị ngừng
ƒ 53% DA vượt ngõn sỏch, quỏ hạn, ít tớnh năng.
ƒ 995, Mỹ chi 81 tỷ$ cho dự ỏn bị hủy,
59 tỷ$ thờm cho dự ỏn sai kế hoạch.
[ Theo: Standish Group. The CHAOS Report, 1995
 research/chaos
Bộ mụn Cụng nghệ phần mềm – ĐHCN 33
Nguyễn Văn Vỵ
„ Công nghiệp phần mềm trở thμnh ngμnh khổng lồ
Phí phát triển OS 360 (1963~1966) : 200 triệu$
Chi cho phần mềm (2000) : 770 tỉ$ (tăng 12%/năm)
„ Năng suất lập trình vẫn thấp
phát triển mang tính thủ công, giá thμnh cao
vấn đề chất l−ợng trở thμnh trọng tâm
Thực trạng sản phẩm, phát triển
Bộ mụn Cụng nghệ phần mềm – ĐHCN 34
Nguyễn Văn Vỵ
„ Phần mềm bản chất lμ phức tạp 
„ Yêu cầu tăng về số l−ợng, quy mô, sự tiện ích
ắ Nhu cầu phần mềm tăng gần 20% năm
ắ Windows 2K : 100 M dòng lệnh
„ Sự tiến bộ nhanh phần mềm vμ phần cứng: 
hạ tầng, môi tr−ờng thay đổi:
ắ Window98, 2000, 2003,..
ắ Năng lực máy tăng gấp 2 sau 18 tháng (More)
Bản chất của vấn đề
Bộ mụn Cụng nghệ phần mềm – ĐHCN 35
Nguyễn Văn Vỵ
Lý do chính
Lý do
Năng lực máy tính ngμy cμng mạnh
Các hệ thống đ−ợc liên kết lại ngμy cμng lớn
Thế giới thau đổi nhanh (cả nghiệp vụ, công nghệ)
Ham muốn ng−ời dùng ngμy cμng nhiều
ặ Yêu cầu tiến hóa phần mềm là tất yếu
Bộ mụn Cụng nghệ phần mềm – ĐHCN 36
Nguyễn Văn Vỵ
Thách thức đối với phần mềm
„ Phần mềm lμm ra <<< nhu cầu
„ Khai thác fần mềm <<< tiềm năng phần cứng
„ Bảo trì hệ cũ lạc hậu để sử dụng cực kỳ khó khăn
™ Công nghệ: Cần có công nghệ, công cụ hiện đại để
phát triển phần mềm
™ Quản lý: cần có ph−ơng pháp thích hợp (CMM, 
CMMI, RMM)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 37
Nguyễn Văn Vỵ
Tóm tắt
„ Phần mềm gồm: ch−ơng trình, cấu trúc dữ liêu, tμi liệu
„ Phân loại: theo mức hoμn thiện, chức năng vμ lĩnh vực ứmg dụng
„ Phần mềm quan trọng: tạo nên sự khác biệt của tổ chức, có vai 
trò lớn trong các hệ thống, nền kinh tế vμ các lĩnh vực xã hội.
„ Phần mềm tiến hóa không ngừng: quy mô, xử lý, tiện ích
„ Phát triển phần mềm lμ công việc phức tạp, rủi ro
 lμ phần tử logic, không trực quan, khó kiểm soát chất l−ợng 
 không định hình tr−ớc, khó dự đoán hiệu năng 
 lμm còn thủ công, phụ thuộc vμo con ng−ời
 chịu ảnh h−ớng lớn từ môI tr−ờng -> nhiều rủi ro
„ Cần áp dụng các ph−ơng pháp tiên tiến (công nghệ + quản lý)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 38
Nguyễn Văn Vỵ
Câu hỏi ôn tập
1. Định nghĩa phần mềm? 
2. Tầm quan trọng của phần mềm? (mức đô: hệ thống, cá
nhân, tổ chức, quốc gia, ứng dụng)?
3. Các đặc tr−ng của phần mềm vμ giảI thích?
4. Các loại phần mềm? Giải thích nội dung mỗi loại?
5. Phân biệt ch−ơng trình  sản phẩm? 
6. Tiến hóa phần mềm t−ơng ứng với công nghệ, nhu cầu?
7. Khó khăn phát triển phần mềm(bản chất, sự thay đổi môi 
tr−ờng kỹ thuật, nghiệp vụ, xã hội)?
8. Thách thức đối với phát triển phần mềm? (nhu cầu, bảo trì, 
thời gian, giá cả, khả năng phần cứng)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 39
Nguyễn Văn Vỵ
Câu hỏi và thảo luận

File đính kèm:

  • pdfBài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 1 Khái niệm về phần mềm.pdf