1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 1 cnpm vũ thị thúy hà (1)

94 0 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 đề Giới thiệu Công nghệ Phần Mềm
Người hướng dẫn TS. Vũ Thị Thúy Hà
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ phần mềm
Thể loại Bài giảng
Định dạng
Số trang 94
Dung lượng 3,31 MB

Nội dung

cnpmChương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1) Chương 1 cnpm vũ thị thúy hà (1)

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÀI GIẢNG MÔN

Công nghệ phần mềm

Mã môn học: TEL1393 (02TC)

Giảng viên: TS Vũ Thị Thúy Hà

Bộ môn: Kỹ thuật dữ liệu - Khoa ĐTVT

Email: havt@ptit.edu.vn

Trang 2

Công nghệ phần mềm

Trang 3

Mục tiêu môn học CNPM

3

Kiến thức: Cung cấp cho sinh viên các khái niệm cơ bản và

phương pháp kỹ thuật trong quá trình phát triển phần mềm theo các giai đoạn dựa trên vòng đời phát triển phần mềm Ngoài ra học phần còn cung cấp cho sinh viên nắm được các vấn đề liên quan trong quá trình phát triển phần mềm như công nghệ mới, sử dụng tài nguyên, nguồn nhân lực,

Kỹ năng: Trang bị cho sinh viên kỹ năng áp dụng các phương

pháp kỹ thuật để phát triển phần mềm thực tế Giúp sinh viên có thể sử dụng các công cụ để biểu diễn, vẽ sơ đồ các pha phát triển phần mềm, hiểu được các kỹ thuật phát triển phần mềm, phối hợp giữa các pha và công việc trong tiến trình phát triển phần mềm thống nhất.

Trang 4

CHƯƠNG 1 GIỚI THIỆU CÔNG NGHỆ PHẦN MỀM

Trang 5

Tài liệu môn học

Học liệu bắt buộc:

Công nghệ phần mềm Bài giảng của bộ môn Kỹ thuật Dữ liệu Học viện Công nghệ Bưu chính Viễn thông.

Slide bài giảng

Học liệu tham khảo:

- Nhập môn công nghệ phần mềm Bài giảng Học viện CNBCVT.

- Phân tích và thiết kế hệ thống thông tin Bài giảng Học viện CNBCVT.

- R S Pressman, B R Maxim, Software Engineerings Mc-Graw Hill

Education, 8th Edition, 2015.

- Ian Sommerville, Software Engineering Pearson, 10th Edition, 2016.

Trang 6

Hình thức kiểm tra Tỷ lệ đánh

giá

Đặc điểm đánh

giá

- Tham gia học tập trên lớp (đi học đầy đủ, tích cực thảo luận) 10% Cá nhân

Đánh giá kết quả học tập

Trang 7

 Điểm bài tập lớn theo nhóm 20%

 Thời gian môn học 2TC/30 tiết/08 tiết bài

tập

Trang 8

CHƯƠNG 1 GIỚI THIỆU CÔNG NGHỆ PHẦN MỀM

Khái niệm phần mềm

Định nghĩa phần mềm Ứng dụng phần mềm Công nghệ phần mềm

Nguyên lí phần mềm Các tiến trình phần mềm Thực hành công nghệ phần mềm Phát triển phần mềm

Khái niệm phần mềm hướng đối tượng

Khái niệm lớp và đối tượng Thuộc tính, hành động, phương pháp và dịch vụ Khái niệm phân tích và thiết kế hướng đối tượng

Trang 9

Định nghĩa chung về phần mềm

• Phần mềm (Software - SW) như một khái niệm đối

nghĩa với phần cứng (Hardware - HW), tuy nhiên, đây

là 2 khái niệm tương đối

• Từ xưa, SW như thứ được cho không hoặc bán kèm theo máy (HW)

• Dần dần, giá thành SW ngày càng cao và nay cao hơn HW

2

Trang 10

Các đặc tính của SW và HW

Trang 12

Định nghĩa 2

• Trong một hệ thống máy tính, nếu trừ bỏ đi các thiết bị và các loại phụ kiện thì phần còn lại chính là phần mềm (SW)

• Nghĩa hẹp: SW là dịch vụ chương trình để tăng khả năng xử

lý của phần cứng của máy tính (như hệ điều hành - OS)

• Nghĩa rộng: SW là tất cả các kỹ thuật ứng dụng để thực hiện những dịch vụ chức năng cho mục đích nào đó bằng phần cứng

5

Trang 13

SW theo nghĩa rộng

• Không chỉ SW cơ bản và SW ứng dụng

• Phải gồm cả khả năng, kinh nghiệm thực tiễn và kỹ

năng của kỹ sư (người chế ra phần mềm): Know-how of Software Engineer

• Là tất cả các kỹ thuật làm cho sử dụng phần cứng

máy tính đạt hiệu quả cao

6

Trang 14

Phần mềm là gì ?

7

Nhóm các

Kỹ thuật, Phương pháp

• Các trình tự thiết kế và phát triển được chuẩn hóa

• 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ử, toàn bộ quy trình quản lý phát triển phần mềm

Trang 15

Phần mềm là gì ?

Nhóm các

Kỹ thuật, Phương pháp

• Phần mềm cơ bản: với chức năng 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 năng xử lý của phần cứng (ví dụ như OS

là 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 nào đó (quản lý,

kế toán, ), phần mềm đóng gói, phần mềm của người dùng,

8

Trang 16

Phần mềm là gì ?

9

Nhóm các

Kỹ thuật, Phương pháp

• Để viết ra phần mềm với độ tin cậy cao cần tạo ra các tư liệu chất lượng cao: đặc tả yêu cầu, mô tả thiết kế từng loại, điều kiện kiểm thử, thủ tục vận hành, hướng dẫn thao tác

Trang 17

Phần mềm là gì ?

10

Nhóm các

Kỹ thuật, Phương pháp

và kỹ năng (know-how) của người/nhóm tác giả

• Khả năng hệ thống hóa trừu tượng

Trang 18

dụng, …

Trang 19

Vai trò của PM

19

• Hầu hết các hoạt động trong tất cả các lĩnh vực của cácQuốc gia (nhất là các nước phát triển) đều phụ thuộcvào PM

• PM tạo ra sự khác biệt trong các tổ chức

– Phong cách làm việc, năng xuất lao động, thương hiệu,

Trang 20

Một số ví dụ về vai trò củaPM

20

• Amazon.com

– Thương mại điện tử

– Chỉ sử dụng 10% nhân lực so với các doanh nghiệp bán lẻ khác

– Cơchế quản lý khách hàng và tiếp thị hiệuquả

• Walmart

– Hệ thống bán lẻ hàng đầu của Mỹ

– Hệ thống quản lý kho siêu hiệu quả

• …

Trang 21

Các đặc trưng của PM

• Không mòn cũ nhưng thoái hóa theo thời gian

– Không bị hỏng như phần cứng/các thiết bịvật lý

– Môi trường sử dụng, nhu cầu thay đổi, lỗi phát sinh

do nâng cấp, …

21

Trang 22

Các đặc trưng của PM

Trang 23

• Không được lắp ráp từ mẫu có sẵn

– Không có danh mục chi tiết cho trước

– Sản phẩm đặt hàng theo yêu cầu riêng

• Phức tạp, khó hiểu, vô hình

• Luôn luôn thay đổi (thay đổi là bản chất củaPM)

– Nghiệp vụ thay đổi, nhu cầu con người thay đổi

– Lỗi phát sinh (do đảm bảo chất lượng chưa tốt, …)

– Môi trường vận hành thay đổi (phần cứng, hệ điều hành)

• Được phát triển theo nhóm

– Yêu cầu kỹ năng khác nhau

– Nhu cầu bàn giao nhanh

Trang 24

Phân loại PM (theo chức năng)

• Phần mềm công cụ (CASE tools)

– Hỗ trợ tự động hóa một/một số pha/ bướctrong quá

trình phát triển PM

Trang 25

Phân loại PM (theo chức năng)

Trang 26

Phân loại khác (theo lĩnh vực ứng dụng)

• PM trí tuệ nhân tạo

• PM dựa trên nền Web, trên thiết bị di động,…

Trang 27

PM ỨNG DỤNG VÀ PM HỆ THỐNG

Trang 28

PM ỨNG DỤNG VÀ PM HỆ THỐNG

Trang 29

PM ỨNG DỤNG VÀ PM HỆ THỐNG

Trang 30

Phân loại PM

Trang 31

• Phần mềm máy cá nhân (Personal computer SW)

• Phần mềm trên Web (Web-based SW)

• Phần mềm trí tuệ nhân tạo (AI SW)

33

Trang 32

Đặc trưng gần đây

Trang 33

Các chỉ tiêu cơ bản

• Phản ánh đúng yêu cầu người dùng (tính hiệu quả

- effectiveness)

• Chứa ít lỗi tiềm tàng

• Giá thành không vượt quá giá ước lượng ban đầu

• Dễ vận hành, sử dụng

• Tính an toàn và độ tin cậy cao

30

Trang 34

Dễ hiểu

• Kiến trúc và cấu trúc thiết kế dễ hiểu

• Dễ kiểm tra, kiểm thử, kiểm chứng

• Dễ bảo trì

• Có tài liệu (mô tả yêu cầu, điều kiện kiểm thử,

vận hành, bảo trì, FAQ, ) với chất lượng cao

Tính dễ hiểu: chỉ tiêu ngày càng quan trọng

32

Trang 35

Các tiêu chí về tính hiệu quả

35

• Đáp ứng thời gian

– Khả năng đưa ra kết quả, một thời gian xử lý và một

tốc độ thông lượng hợp lý khi nó thực hiệncông việc của mình, dưới một điều kiện làm việc xácđịnh

• Sửdụngtài nguyên

– Khả năng của phần mềm có thể sử dụng một lượng, một loại tài nguyên hợp lý để thực hiện công việc trong những điều kiện cụthể

Trang 36

• Hiệu suất thời gian tốt (efficiency):

– Độ phức tạp tính toán thấp (Time complexity)

– Thời gian quay vòng ngắn (Turn Around Time: TAT)

– Thời gian hồi đáp nhanh (Response time)

• Sử dụng tài nguyên hữu quả: CPU, RAM, HDD, Internet

resources,

31

Các tiêu chí về tính hiệu quả

Trang 38

Mô hình chất lượng cho chất lượng

38

Trang 39

Tiến hóa PM và thách thức

39

• Thay đổi là bản chất củaPM

• PM bị thay đổi khi nào và thay đổi như thếnào?

– Một yêu cầu cũ bị sửa hoặc loạibỏ

– Một yêu cầu mới phát sinh

– Lỗi phát sinh

– Môi trường của PM thay đổi

• Môi trường PM: Hệ điều hành, các hệ thống tương tác, …

• Môi trường phầncứng

• Thay đổi: trong quá trình phát triển và trong quá trình sử dụng ( bảo trì )

Trang 40

Nguyên nhân của thay đổi

• Nhu cầu con người ngày càng cao và phức tạp

• Nghiệp vụ của các tổ chức cũng thườngxuyên thay

đổi/tái cấu trúc

• Môi trường PM thường xuyên thay đổi

Trang 41

Thách thức đặt ra từ tiếnhóa

41

• Tăngchi phí cho quá trình phát triển (rework)

• Tăng chi phí cho doanh nghiệp trong quá trình bảo trì(chi phí bảo trì gấp nhiều lần chi phí phát triển)

• Phát sinh nhiều vấn đề lớn (kỹ thuật, ứng dụng,…)

• Làm thế nào để phát triển các SP PM có khả năngbảo trì với chi phí thấp và thời gian ngắn đang làmột thách thức rất lớn và chưa có giải pháp thỏađáng

Trang 42

Những khó khăn trong sản xuất phần mềm

 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 (khách hàng)

Sau khi bàn giao sản phẩm dễ phát sinh những trục trặc (troubles)

 Với những phần mềm 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 đó

 Phương pháp luận thiết kế không nhất quán

Thiết kế theo cách riêng (của công ty, nhóm), thì sẽ dẫn đến suy giảm chất lượng phần mềm (do phụ thuộc quá nhiều vào con người)

 Không có chuẩn về việc tạo tư liệu quy trình sản xuất phần mềm

Đặc tả không rõ ràng sẽ làm giảm chất lượng phần mềm

Trang 43

Không kiểm thử tính đúng đắn của phần mềm ở từng giai đoạn mà chỉ kiểm ở giai đoạn cuối và phát hiện ra lỗi

thường bàn giao sản phẩm không đúng hạn

• Coi trọng việc lập trình hơn khâu thiết kế

giảm chất lượng phần mềm

• Coi thường việc tái sử dụng phần mềm (software reuse)

giảm năng suất lao động

• Phần lớn các thao tác trong quy trình phát triển phần mềm do con người thực hiện

giảm năng suất lao động

• Không chứng minh được tính đúng đắn của phần mềm

giảm độ tin cậy của phần mềm

Những khó khăn trong sản xuất phần mềm

Trang 44

Chuẩn về một phần mềm tốt không thể đo được một cách định lượng

Không thể đánh giá được một hệ thống đúng đắn hay không

• Đầu tư nhân lực lớn vào bảo trì

giảm hiệu suất lao động của nhân viên

• Công việc bảo trì kéo dài

giảm chất lượng của tư liệu và ảnh hưởng xấu đến những việc khác

• Quản lý dự án lỏng lẻo

quản lý lịch trình sản xuất phần mềm không rõ ràng

• Không có tiêu chuẩn để ước lượng nhân lực và dự toán

làm kéo dài thời hạn và vượt kinh phí của dự án

Những khó khăn trong sản xuất phần mềm

Trang 45

GIỚI THIỆU CHUNG VỀ CÔNG NGHỆ PHẦN MỀM

Trang 46

Sự tiến triển của các phương pháp thiết kế phần mềm

Trang 47

Sự tiến triển của các phương pháp thiết kế phần mềm

Trang 49

Hình thái sản xuất Phần mềm

Trang 50

Một số định nghĩa vềSE

50

Software Engineering (SE)

• SE là thiết lập và sử dụng các nguyên lý công nghệ

đúng đắn để được phần mềm một cách kinhtế, vừa

tin cậy vừa làm việc hiệu quả trên các máy thực

[Bauer 1969]

• SE là 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 phần

Trang 51

Một số định nghĩa vềSE

51

Software Engineering (SE)

• IEEE [1993]: CNHPM là

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

được lượng hóa trong phát triển, vận hành và bảo trì phần mềm;

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

• Pressman [1995]: CNHPM là bộ môn tích hợp cả quy 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

Trang 52

Một số định nghĩa vềSE

52

Software Engineering (SE)

• Sommerville [1995]: CNHPM là lĩnh vực liên quan đến lý

thuyết, phương pháp và công cụ dùng cho phát triển phần mềm

• K Kawamura [1995]: CNHPM là lĩnh vực học vấn về các kỹ thuật, phương pháp luận công nghệ học (lý luận và kỹ thuật được hiện thực hóa trên những nguyên tắc, nguyên lý nào đó) trong toàn bộ quy trình phát triển phần mềm nhằm nâng cao cả chất và lượng của sản xuất phần mềm

Trang 53

Công nghệ học PM

53

Công nghệ học phần mềm là lĩnh vực khoa học về các phương pháp luận, kỹ thuật và công cụ tích hợp trong quy trình sản xuất và vận hành phần mềm nhằm tạo ra phần mềm với những chất lượng mong muốn

[ Software Engineering is a scientific field to deal with

methodologies, techniques and tools integrated in software

production-maintenance process to obtain software with desired

qualities]

Trang 54

Công nghệ học PM

54

• Như các ngành công nghệ học khác, CNHPM cũng

lấy các phương pháp khoa học làm cơ sở

• Các kỹ thuật về thiết kế, chế tạo, kiểm thử và bảo trì

phần mềm đã được hệ thống hóa thành phương pháp luận và hình thành nên CNHPM

• Toàn bộ quy trình quản lý phát triển phần mềm gắn

với khái niệm vòng đời phần mềm, được mô hình

hóa với những kỹ thuật và phương pháp luận trở

thành các chủ đề khác nhau trong CNHPM

Trang 55

Công nghệ học PM

55

• Trong vòng đời phần mềm không chỉ có chế tạo mà

bao gồm cả thiết kế, vận hành và bảo dưỡng (tính

quan trọng của thiết kế và bảo dưỡng)

• Trong khái niệm phần mềm, không chỉ có chương

trình mà cả tư liệu về phần mềm

• Cách tiếp cận công nghệ học (khái niệm công nghiệp

hóa) thể hiện ở chỗ nhằm nâng cao năng suất (tính

năng suất) và độ tin cậy của phần mềm, đồng thời

giảm chi phí giá thành

Trang 56

Công nghệ học PM

56

• Là ngành công nghiệp liên quan đến mọi khíacạnh của việc phát triển phần mềm (thu thập, phântích và đặc tả; thiết thế, lập trình, kiểm thử, chuyểngiao, vận hành và bảo trì, …)

• Kỹ nghệ: xây dựng PM bằng cách ứng dụng các lýthuyết, phương pháp, công cụ một cách chọn lọc và

cố gắng tạo ra các giải pháp giải quyết vấn đề ngay

cả khi không có lý thuyết và công cụ để áp dụng

Trang 57

Software life-cycle

57

• Vòng đời phần mềm là thời kỳ tính từ khi phần mềm được sinh (tạo) ra cho đến khi chết đi (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến khi loại bỏ không đâu dùng)

• Quy trình phần mềm (vòng đời phần mềm) được phân chia

thành các pha chính: phân tích, thiết kế, chế tạo, kiểm thử, bảo trì Biểu diễn các pha có khác nhau theo mô hình.

Mọi sản phẩm phần mềm đều có vòng đời.

• Vòng đời thường khá dài — một số sản phẩm phần mềm đã “tồn tại”

được 30 năm.

• Vòng đời có thể được rút ngắn do tiến bộ công nghệ

Trang 58

Các pha- Software life-cycle

• Kiểm thử — vận hành hệ thống để tìm và loại bỏ các khiếm khuyết

• Bảo trì — sửa chữa và nâng cấp sản phẩm sau khi khách hàng triển khai

Trang 59

Mô hình vòng đời phần mềm

59

• Quá trình là một tập hợp các hoạt động , với các đầu vào và đầu

ra được xác định rõ ràng, để hoàn thành một số nhiệm vụ.

• Mô hình vòng đời là một mô tả về một quá trình thực hiện một sản phẩm phần mềm trong toàn bộ hoặc một phần vòng đời của nó.

 Các mô hình vòng đời có xu hướng tập trung vào các pha chính của chu kỳ và mối quan hệ của chúng với các pha khác.

 Các nghiên cứu gần đây về quy trình phần mềm đã xem xét chi tiết nhiều khía cạnh của việc phát triển và bảo trì.

 Mô hình vòng đời là một mô tả quy trình phần mềm

Trang 60

Mô hình vòng đời phần mềm Waterfall model

60

Trang 61

Phương pháp luận cho mỗi pha

Software life-cycle

61

Trang 62

Quy trình phát triển phần mềm

Trang 63

Capability Maturity Model (CMM by SEI)

Tháng 11 năm 1986 viện Công nghệ phần mềm SEI

(Software Engineering Institute) đưa ra khung sườn và các khái niệm liên quan để giúp cải thiện Quy trình sản xuất

Trang 64

Capability Maturity Model (CMM by SEI)

Trang 65

Capability Maturity Model (CMM by SEI)

Trang 66

Mô hình 5 mức của CMM

Trang 67

Mô hình 5 mức của CMM

Trang 68

Mô hình 5 mức của CMM

Trang 69

Mô hình 5 mức của CMM

Trang 70

Mô hình 5 mức của CMM

Trang 71

Các yếu tố cơ bản của SE

Trang 72

72

• Quy trình quản lý và phát triển

– Trình tự thực hiện các công việc – Tài liệu, sản phẩm cần bàn giao và cách thức thực hiện

– Mốc thời gian (milestones) và sản phẩm đưara (theo chuẩn)

Trang 73

THỦTỤC

Trang 74

74

• Cách làm cụ thể để xây dựng phầnmềm

• Mỗi giai đoạn có phương pháp riêng

– Phân tích (nắm bắt yêu cầu, đặc tả yêu cầu)

– Thiết kế (kiến trúc, giao diện, dữ liệu)

– Lập trình (cấu trúc, hướng đối tượng)

– Kiểm thử (hộp đen, hộp trắng, hồi quy)

– Quản lý dự án (PERT, COCOMO) ((Program

Evaluation and Review Technique), (Constructive Cost Model))

Trang 76

YÊU CẦU ĐỐI VỚI KỸ SƯ PHẦN MỀM

• Quy trình xây dựng phần mềm được thực hiện trong

một môi trường chuyên nghiệp và đòi hỏi tuân thủ các nguyên tắc một cách chính xác.

• Những kỹ sư phần mềm phải coi công việc của họ là

trách nhiệm to lớn, chứ không đơn thuần chỉ là việc ứng dụng kỹ thuật.

• Kỹ sư phần mềm phải ứng xử trung thực và cách làm

của họ phải rất chuyên nghiệp và đúng quy tắc.

Ngày đăng: 19/03/2024, 22:10