1. Trang chủ
  2. » Thể loại khác

Tổng quan về phần mềm và công nghệ phần mềm

45 3 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

Tiêu đề Tổng quan về phần mềm và công nghệ phần mềm
Trường học Đại Học Công Nghệ Thông Tin Và Truyền Thông
Chuyên ngành Phần Mềm Và Công Nghệ Phần Mềm
Thể loại Giáo trình
Năm xuất bản N/A
Thành phố Hà Nội
Định dạng
Số trang 45
Dung lượng 626,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đặc trưng của phần mềm 2  Được kỹ nghệ engineered hay phát triển developed, không phải được chế tạo manufactured  Chế tạo: Biến đổi vật liệu thành sản phẩm  Kỹ nghệ: Phân tích, thiết

Trang 1

Tổng quan về phần mềm và công nghệ phần

mềm

CHƯƠNG 1

Trang 4

1.1 Một số khái niệm cơ bản (1)

 Phần mềm máy tính (Computer Software): 3 phần

Chương trình (mã nguồn + mã máy)

Các cấu trúc dữ liệu (cấu trúc làm việc + cấu trúc lưu trữ)

Các tài liệu liên quan (hướng dẫn sử dụng, tham khảo

kỹ thuật, tài liệu phát triển).

 Ví dụ:

Phần mềm soạn thảo văn bản của Microsoft – MSWord

 Chương trình: winword.exe

 Dữ liệu: doc files, bitmaps, auto shapes, wordarts, charts,

 Tài liệu hướng dẫn: Help

Phần mềm chat Yahoo! Messenger

Trang 5

Công nghệ phần mềm 5

1.1 Một số khái niệm cơ bản (2)

 Hệ thống phần mềm (Software System):

Tập (hệ thống) các phần mềm có thể hợp tác để thực hiện chức năng lớn hơn

 Mỗi phần mềm thực hiện một công việc

 Kết hợp các công việc để hoàn thành nhiệm vụ chung

Mỗi phần mềm trong hệ thống còn được gọi là phân hệ/ hệ thống con (subsystem) hay module phần mềm.

Ví dụ

 Có thể xem MSWord là một hệ thống phần mềm bao gồm

 Module soạn thảo cơ bản

 Module kiểm tra chính tả, ngữ pháp và sửa lỗi

 Module xử lý công thức toán học và các ký tự đặc biệt

 Module tìm kiếm, thay thế văn bản

 Module tính toán excel

 Module email, tạo website

Trang 6

 1.2 Tầm quan trọng của phần mềm

Trang 7

Công nghệ phần mềm 7

1.2 Tầm quan trọng của phần mềm

(1)

 Phần mềm - Linh hồn của các hệ thống máy tính

 Có vai trò nền tảng của mọi hoạt động xã hội

Trang 8

1.2 Tầm quan trọng của phần mềm

(2)

 Sự phụ thuộc của các nền kinh tế vào phần mềm

Thu, chi từ phần mềm chiếm tỷ trọng đáng kể trong GDP của các nước phát triển

 Thế giới có >7 triệu kỹ sư CNTT tạo ra 600 tỷ $/ năm

 Chi phí cho phần mềm năm 2000 lên tới 770 tỷ $

Trang 9

Phong cách công nghiệp

Tăng năng suất, chất lượng

Trang 10

Hàng không: PM điều khiển không lưu

Ngân hàng: PM giao dịch, liên ngân hàng

Giáo dục: PM chấm thi trắc nghiệm, PM quản lý đào tạo

Trang 12

Mang tính logic nhiều hơn tính vật lý

Nhiều khái niệm khác nhau, khó hiểu

Không nhìn thấy  muốn hiểu phải tư duy trừu tượng

 Khắc phục lỗi không đơn giản bằng cách sửa chữa hay thay thế mà phải thay đổi chính thiết kế và cài đặt thiết kế mới

Không có thành phần để thay thế như đối với phần cứng, mà phải sửa đổi lại

Trang 13

Công nghệ phần mềm 13

1.3 Đặc trưng của phần mềm (2)

 Được kỹ nghệ (engineered) hay phát triển (developed), không phải được chế tạo (manufactured)

Chế tạo: Biến đổi vật liệu thành sản phẩm

Kỹ nghệ: Phân tích, thiết kế, tạo và kiểm thử sản phẩm

Phát triển: Làm tăng trưởng

Khó kiểm soát chất lượng phần mềm tại các khâu trung gian

Khó dự đoán trước hiệu năng của phần mềm

Trang 14

1.3 Đặc trưng của phần mềm (3)

 Phần mềm thoái hóa (wear out) theo thời gian

Không bị tác động vật lý của môi trường như: bụi, nhiệt độ, chấn động -> không bị hỏng

 Phần cứng bị hỏng khi dùng lâu do tác động của môi trường -> thay thế

Luôn phải đối mặt với những thay đổi : yêu cầu thay đổi, bổ sung chức năng… -> thoái hóa vì không đáp ứng được yêu cầu bổ sung, yêu cầu sửa đổi.

Trang 15

Công nghệ phần mềm 15

1.3 Đặc trưng của phần mềm (4)

 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 phần mềm nền (hệ điều hành,…)

 Thiết bị phần cứng

Trang 16

1.3 Đặc trưng của phần mềm (5)

 Là sản phẩm của tập thể

Quy mô phần mềm ngày càng lớn

Thời gian bàn giao sản phẩm ngắn

Năng suất nhóm không tỷ lệ thuận với số thành viên

- Trao đổi thông tin lớn

- Khó kiểm soát chất lượng

- Rủi ro về mặt nhân sự rất dễ xảy ra (một thành viên quan trọng của nhóm có thể không tiếp tục hợp tác…)

Trang 17

Công nghệ phần mềm 17

1.3 Chất lượng sản phẩm phần

mềm

 Chất lượng (Quality) bao gồm:

Chức năng (functions) phần mềm thực hiện hay dịch vụ

(services) được phần mềm cung cấp

Sử dụng được (Usability)

 Dùng được và có ích

 Cần có giao diện tốt và đủ tài liệu hướng dẫn

Bảo trì được (Maintainability)

 Có thể sửa đổi khi yêu cầu thay đổi

Tin cậy (Dependability)

 An toàn (safety): Không gây thiệt hại cho hệ thống hoặc thiệt hại kinh

tế cho đơn vị sử dụng khi xuất hiện lỗi

 An ninh (Security): Bảo đảm không bị phá hoại vô tình hoặc cố ý

Hiệu suất (Efficiency)

 Sử dụng tài nguyên vừa phải, cho kết quả nhanh

Chi phí thấp (Low cost)

 Chi phí để phát triển

 Giá bán

Khó có thể thỏa mãn tất cả các tính chất, cần phải biết, với từng hệ thống, tính chất nào quan trọng hơn để ưu tiên cho tính chất đó

Trang 18

 1.4 Phân loại phần mềm

Trang 19

 Tương tác nhiều với phần cứng

 Sử dụng bởi nhiều người đồng thời

 Thao tác tương tranh, cần phải lập lịch

 Chia sẻ tài nguyên

 Dữ liệu có cấu trúc phức tạp

 Nhiều giao diện ngoài

 Các phần mềm thuộc loại này chủ yếu do các hãng lớn sản xuất và thường phải liên kết với các sản xuất phần cứng

 Ví dụ:

 Hệ điều hành (Operating System)

 Trình điều khiển (driver)

Phần mềm giải trí (Entertainment Software)

Trang 20

 Các hệ thống điều khiển dây chuyền sản xuất, hệ thống nhà

ga, giữ cân bằng tốc độ sản xuất điện năng, giữ ổn định mức độ phản ứng lò hạt nhât, cân bằng nhiệt độ…

 Tương lai sẽ có nhiều phần mềm loại này vì máy móc tự động hóa ngày càng được sử dụng nhiều.

Thường phải kết hợp với điện tử, viễn thông.

Trang 21

Công nghệ phần mềm 21

1.4 Phân loại phần mềm (3)

 Theo tính năng (3)

Phần mềm nghiệp vụ (Business software)

 Xử lý thông tin nghiệp vụ

 Ví dụ

 GIS, MISs, Word, Exel, Photoshop, AutoCAD…

 E-something (eMail, eLearning, eCommerce, eGovernment )

Phần mềm công cụ hay tiện ích (Tools and Utilities)

 Tạo công cụ để phát triển phần mềm hay sử dụng khai thác phần cứng

 Phục vụ cho đông đảo người sử dụng (để khai thác máy tính) và nhà phát triển (để phát triển phần mềm)

 Ví dụ

 Utilities(NC, Disk Doctor, File Management, Ghost, Virtual Driver…)

 Program Editors (Virsual NET Studio, Editplus, Jcreator, Dreamweaver…)

 Model Editors/Debugers (Rational Rose, MEF, MDF, ArgolUML, Database Designer)

 Implement Facilities (Code Converter, Java toolkits, …)

Trang 22

1.4 Phân loại phần mềm (4)

 Theo kiểu ứng dụng

Winform

 Chạy trên các máy đơn, mạng ngang hàng

 Giao diện windows,

 Một người sử dụng

 Ví dụ

 MS Offices, MS Visual Studio, Yahoo! Messenger…

Webform

 Thực hiện theo mô hình khách - chủ (client-server),

 Giao diện web

 Nhiều người sử dụng đồng thời

 Ví dụ

Trang 23

 Có thể winform hoặc webform.

 Ví dụ

 Client-server: Websites,

 Peer-to-peer: Chat,…

Trang 24

1.4 Phân loại phần mềm (6)

 Theo giải thuật chương trình

Phần mềm trí tuệ nhân tạo

 Sử dụng các giải thuật không tuần tự của TTNT (AI) (mạng nơron, logic

mờ, máy học…) để giải quyết những bài toán phức tạp không thể giải quyết được bằng thuật toán thông thường trong thời gian cho phép

Trang 25

 Tự đầu tư hoàn toàn trong khi phát triển.

Phù hợp cho các doanh nghiệp lớn, lâu năm

Trang 26

1.5 Sự tiến hóa của phần mềm (1)

 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 của người sử dụng

Trang 28

1.5 Sự tiến hóa của phần mềm (3)

 Giai đoạn 2: 1960 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ô và thời gian thực

Xuất hiện lưu trữ dữ liệu

Ngôn ngữ có cấu trúc: PL1, Algol 60, Fortran,

Trang 29

Công nghệ phần mềm 29

1.5 Sự tiến hóa của phần mềm (4)

 Giai đoạn 3: đến năm 1990

Phần mềm cá nhân + mạng, hệ lớn, chia sẻ được

Xuất hiện 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, logic

Trang 30

1.5 Sự tiến hóa của phần mềm (5)

 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

Website, Hệ chuyên gia, trí tuệ nhân tạo, phần mềm nhúng,…

Internet phát triển

CSDL hướng đối tượng, kho dữ liệu

Ngôn ngữ: hướng đối tượng, logic, trực quan

Tiêu chí đánh giá

 Tiện dụng

 Tin cậy

 Dễ bảo trì

Trang 32

Những rủi ro dẫn đến hủi hoặc đình trệ tăng nhanh cùng với việc tăng của kích thước các ứng dụng (Capers Jones):

 65% các HT lớn (>1,000,000 LOC) bị hủitrước khi hoàn thành

 50% các HT ướclượng sai kích thước > 1/2 million LOC

 25 % các dự án > 100,000 LOC

Tỷ lệ thất bại của các dự án lớn là >20% (Capers Jones)

Sau khi khảo sát 8,000 dự án IT, Standish Group cho biết khoảng 30% bị hủi trước khi hoàn thành

Trang 33

Công nghệ phần mềm 33

1.6 Thực trạng và thách thức PTPM

(2)

 Thực trạng (2)

NATO Software Engineering Conference, Germany, 1968

Thống kê của chính phủ Mỹ về các dự án SW của Bộ quốc phòng, 1970.

Dự án phần mềm của US defence

0 0.5 1 1.5 2 2.5 3 3.5

Paid for but not received Delivered but not used or reworkedAbandoned

Used after change

Used as delivered

Trang 34

1.6 Thực trạng và thách thức PTPM

(3)

 Thực trạng (3)

Thống kê của Standish Group (2006)

 Có tới 50% trong số các dự án phần mềm thất bại

 Chỉ có 16.2% dự án là hoàn thành đúng hạnvànằmtrong giớihạn ngân sách, đáp ứng tất cả tính năng và đặc tính như cam kết ban đầu

 Có 52.7% dự án được hoàn thành và đi vào hoạt động nhưng không hoàn thành đúng hạn và bội chi, thêm nữa không đáp ứng đầy đủ tính năng và đặc tính như thiết kế ban đầu

 Và có 31.1% dự án thất bại trước khi được hoàn thành

 -> hơn 83.8% dự án thất bại hoặc không đáp ứngnhững yêu cầu ban đầu

 2/3 dự án được hoàn thành vượt quá thời gian và kinh phí dự kiến (Capers Jones) [bad

estimates?]

 2/3 dự án được hoàn thành là có độ tin cậy và chất lượng thấp trong một

Trang 35

Khủng hoảng là gì ? [Webster’s Dict.]

 Điểm ngoặt trong tiến trình của bất kỳ cái gì; thời điểm, giai đoạn hoặc biến cố quyết định hay chủ chốt

 Điểm ngoặt trong quá trình diễn biến bệnh khi trở nên rõ ràng bệnh nhân sẽ sống hay chết

Trang 36

1.6 Thực trạng và thách thức PTPM

(5)

 Một số yếu tố ảnh hưởng đến khủng hoảng

PM càng lớn sẽ kéo theo phức tạp hóa và tăng chi phí phát triển

Đổi vai trò giá thành phần mềm và phần cứng

Công sức cho bảo trì càng tăng thì chi phí cho Backlog càng lớn

Nhân lực chưa đáp ứng được nhu cầu phần mềm

Những phiền hà của phần mềm gây ra những vấn đề

xã hội

…(?)

Trang 37

Công nghệ phần mềm 37

1.6 Thực trạng và thách thức PTPM

(6)

 Những khó khăn trong phát triển PM (1)

Không có phương pháp mô tả rõ ràng định nghĩa yêu cầu của người dùng, sau khi bàn giao sản phẩm dễ phát sinh những trục trặc

Với những PM quy mô lớn, tư liệu đặc tả đã cố định thời gian dài  khó đáp ứng nhu cầu thay đổi của người dùng một cách kịp thời trong thời gian đó

Nếu không có phương pháp luận thiết kế nhất quán mà thiết kế theo cách riêng  suy giảm chất lượng PM

Nếu không có chuẩn về làm tư liệu quy trình sản xuất PM, thì những đặc tả không rõ ràng sẽ làm giảm chất lượng PM

Nếu không kiểm thử tính đúng đắn của PM ở từng giai đoạn mà chỉ kiểm ở giai đoạn cuối và phát hiện ra lỗi, thì thường bàn giao sản phẩm không đúng hạn

Nếu coi trọng việc lập trình hơn khâu thiết kế thì thường dẫn đến làm giảm chất lượng PM

Trang 38

1.6 Thực trạng và thách thức PTPM

(7)

 Những khó khăn trong phát triển PM (2)

Nếu coi thường việc tái sử dụng PM, thì năng suất lao động sẽ giảm

Phần lớn trong quy trình phát triển PM có nhiều thao tác do con người thực hiện  vậy năng suất lao động thường bị giảm

Không chứng minh được tính đúng đắn của PM  độ tin cậy của

Trang 39

càng tăng,…

Trang 40

 1.7 Tổng quan về công nghệ phần mềm

Khái niệm

Lịch sử phát triển

Trang 41

Công nghệ phần mềm 41

 Khái niệm

Bauer [1969]: SE là 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 1 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.

Parnas [1987]: SE là việc xây dựng phần mềm nhiều phiên bản bởi nhiều người.

Sommerville [1995]: SE là một nguyên lý kỹ nghệ liên quan đến tất cả các mặt ( lý thuyết,phương pháp và công

cụ ) của sản phần mềm

IEEE [1993]:

1 việc áp dụng phương pháp tiếp cận có hệ thống, bài bản và được

2 nghiên cứu các phương pháp tiếp cận được dùng trong (1)

Pressman [1995]: SE 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

1.7 Tổng quan về công nghệ phần mềm

(1)

Trang 43

 Khái niệm về tính môđun

 Khái niệm thiết kế,lập trình top-down, chi tiết hóa từng bước(N With)

Trang 44

1.7 Tổng quan về công nghệ phần mềm

(4)

 Lịch sử phát triển (2): Tăng trưởng (nửa đầu 80s)

thống

 công nghệ CSDL (mô hình quan hệ)

 phân tích, thiết kế hướng cấu trúc

 công cụ trợ giúp phân tích thiết kế

 bộ khởi tạo chương trình (biên dịch)

 Các ngôn ngữ bậc cao (FoxPro, SQL )

mềm

Trang 45

Công nghệ phần mềm 45

1.7 Tổng quan về công nghệ phần mềm

(5)

Lịch sử phát triển (3): Phát triển (từ giữa 80s)

Hoàn thiện công nghệ cấu trúc, ra đời công nghệ đối

tượng

Công nghệ hướng đối tượng bắt đầu phát triển:

 Quy trình RUP

 Ngôn ngữ mô hình hóa thống nhất(UML)

 Các công cụ phần mềm đầy đủ (ROSE, JIBULDER, )

Sử dụng lại chiếm vị trí quan trọng trong phát triển

Phát triển các mô hình quản lý

Nhiều công cụ trợ giúp quản lý dự án hoàn thiện

Ngày đăng: 15/12/2022, 16:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w