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

TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM. Giảng viên: ThS. Trần Mạnh Thắng

65 2 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ề Công Nghệ Phần Mềm
Người hướng dẫn ThS. Trần Mạnh Thắng
Định dạng
Số trang 65
Dung lượng 465,67 KB

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

Nội dung

Việc sản xuất phần mềm có tính đặcthù riêng và rất khác so với các quá trình sản xuất thông thường khác; • Để sản xuất ra một sản phẩm phần mềm thì phải có nhiều người tham gia và phảitr

Trang 1

BÀI 1 TỔNG QUAN

Trang 2

TÌNH HUỐNG DẪN NHẬP

 Có những mô hình nào để công ty STT có thể thực hiện được công việc quản lý

và kiểm tra quá trình sản xuất phần mềm một cách có hiệu quả?

• Công ty STT là một công ty phần mềm lớn chuyên sản xuất các phần mềm thươngmại và các phần mềm theo đơn đặt hàng Việc sản xuất phần mềm có tính đặcthù riêng và rất khác so với các quá trình sản xuất thông thường khác;

• Để sản xuất ra một sản phẩm phần mềm thì phải có nhiều người tham gia và phảitrải qua rất nhiều giai đoạn cũng như sử dụng nhiều các tiện ích khác nhau trongquá trình sản xuất;

• Có nhiều quá trình sản xuất phần mềm để cho công ty STT áp dụng theo quytrình kiểm tra giám sát và đáp ứng được một tiêu chuẩn đã được công nhận

Trang 3

MỤC TIÊU

Nắm được tổng quan về công nghệ phần mềm;

Trình bày được vai trò của kiểm thử và đảm bảo chất lượng phần mềm;

Trình bày được các mô hình vòng đời phần mềm tiêu biểu;

Trình bày các công đoạn kiểm thử phần mềm;

Xây dựng một ví dụ đơn giản xử dụng một mô hình vòng đời phần mềm

Trang 5

1 CÁC ĐỊNH NGHĨA

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

1.2 Tại sao phải kiểm thử và quản lý chất lượng phần mềm?

Trang 6

 Các chương trình chứa các dòng lệnh chỉ thị cho máy tính thực hiện một

công việc nào đó;

 Là một tập hợp các chương trình và dữ liệu phục vụ cho một công việc

được tin học hóa nào đó như:

 Phần mềm quản lý các dịch vụ bay;

 Phần mềm điều khiển lò phản ứng hạt nhân;

 Phần mềm điều khiển dịch vụ mobile phone

 Trong công nghệ phần mềm:

Phần mềm = Các chương trình + dữ liệu + các tài liệu liên quan

Trang 7

Đặc trưng của phần mềm:

• Không mòn, cũ nhưng thoái hoá theo thời gian;

• Không được tạo ra từ các mẫu có sẵn;

• Phần mềm là 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 như sản xuất, dịch vụ, giải trí,điều hành cũng như hội nhập;

• Các nền kinh tế phụ thuộc rất lớn vào phần mềm;

Trang 8

• Các hệ điều hành: Các Driver (chương trình điều khiển), các Monitor, các hệ quản lýtệp, các hệ thống quản lý thư viện chương trình và chương trình dịch, các hệ thốngquản lý mạng máy tính, các ngôn ngữ lập trình như PASCAL, C, C++, Visual Basic,FORTRAN, ADA

• Các phần mềm hệ thống như: Các chương trình soạn thảo văn bản, các chương trìnhđiều khiển các thiết bị ngoại vi, các chương trình mở rộng chức năng quản lý tệp: Sắpxếp, sao chép, cập nhật, các chương trình đồ hoạ, các giao diện thân thiện giữangười sử dụng và hệ điều hành;

• Hệ quản trị cơ sở dữ liệu, quản lý tri thức và các chương trình mở rộng tương ứng;

• Các phần mềm ứng dụng như: Các hệ tự động hoá quản lý chương trình, các hệ tựđộng hoá thiết kế, các hệ thống dạy học, các hệ thống tự học,…;

• Các chương trình tiện ích – Utilities và trò chơi Games: Các chương trình xử lý bảngtính điện tử, các chương trình chuyển đổi (tiền dịch) ngôn ngữ, dịch chéo, khôi phụccác chương trình chống và diệt virus máy tính, các chương trình trò chơi giải trí,…

CÁC LOẠI PHẦN MỀM

Trang 9

CÔNG NGHỆ PHẦN MỀM

• Công nghệ phần mềm (Software Engineering): Là cách sử dụng phối hợp các

công nghệ cần thiết để tạo ra các sản phẩm phần mềm

• Các công việc cơ bản để xây dựng phần mềm:

Trang 10

• Công nghệ phần mềm (Software Engineer) được đặc trưng bởi tập hợp các

phương pháp để phát triển một phần mềm hay còn gọi là tiến trình phần mềm

(Software Process);

• Công nghệ phần mềm không chỉ là việc lập trình để có một sản phẩm phần

mềm mà là tập hợp của việc triển khai nhiều giai đoạn để dẫn tới việc lập trình;

• Với một dự án phần mềm bất kỳ đều phải phân bổ công việc, kiểm tra quá trình

phát triển, thử nghiệm và đảm bảo chất lượng phần mềm khi hoàn tất

ĐẶC TRƯNG CỦA CÔNG NGHỆ PHẦN MỀM

Trang 11

• Mục đích chính của công nghệ phần mềm là sản xuất ra các phần mềm có chấtlượng như đảm bảo tốc độ, dễ sử dụng, cấu trúc, dễ hiểu, …

• Hai yếu tố chất lượng phần mềm:

 Những yếu tố chất lượng bên ngoài:

 Là yếu tố mà người dùng có thể nhận biết được như tốc độ nhanh, ổnđịnh, dễ sử dụng, dễ thích nghi,

 Là mục đích cuối cùng của một sản phẩm phần mềm

 Những yếu tố chất lượng bên trong:

 Là những yếu tố mà chỉ những người làm tin học chuyên nghiệp mới biếtđược như tính đơn thể, dễ đọc, dễ hiểu,…

 Là mấu chốt để đạt được những yếu tố chất lượng bên ngoài

MỤC ĐÍCH CỦA CÔNG NGHỆ PHẦN MỀM

Trang 12

1.2 TẠI SAO PHẢI KIỂM THỬ VÀ QUẢN LÝ CHẤT LƯỢNG PHẦN MỀM

Tiêu chuẩn của một sản phẩm phần mềm:

Trang 14

• Mục tiêu của công nghệ phần mềm là:

 Sản xuất ra các phần mềm không có lỗi;

 Hoàn thành đúng thời hạn;

 Kinh phí cho phép;

 Thỏa mãn yêu cầu khách hàng;

 Dễ sửa đổi khi người sử dụng cần

• Để đạt được những điều này các kỹ sư phần mềm của STT nói riêng và các công typhần mềm khác nói chung là phải được trang bị các kỹ năng về kỹ thuật cũng như

về quản lý Các kỹ năng này không chỉ thể hiện khi viết chương trình, mà phải được

áp dụng trong các pha xây dựng phần mềm, bắt đầu từ khảo sát yêu cầu kháchhàng cho đến giai đoạn bảo trì

MỤC TIÊU CỦA CÔNG NGHỆ PHẦN MỀM

Trang 15

• Mặc dù được tự động hoá một phần bởi các công cụ Tuy nhiên, rất nhiều công đoạntrong quá trình sản xuất phần mềm vẫn được thực hiện bởi con người

 Vẫn có khả năng xảy ra lỗi;

• Lỗi có thể xảy ra trong tất cả các giai đoạn của công nghệ sản xuất phần mềm

 Do đó phải kiểm thử trước khi chính thức sử dụng;

• Hạn chế chi phí cho các thất bại do lỗi gây ra sau này;

• Có kế hoạch tốt nâng cao chất lượng suốt quá trình phát triển phần mềm;

• Kiểm thử là yếu tố quyết định của quản lý chất lượng phần mềm

TẠI SAO PHẢI KIỂM THỬ PHẦN MỀM?

Trang 16

Câu hỏi trắc nghiệm

1 Phần mềm chỉ bao gồm chương trình?

2 Trong các sản phẩm sau đây, sản phẩm nào không phải phần mềm?

a Trình soạn thảo văn bản b Hệ điều hành windows xp

3 Phần mềm được làm bởi đội ngũ kỹ sư có trình độ cao thì không cần kiểm thử?

4 Đâu không phải là mục tiêu của công nghệ phần mềm?

a Sản xuất phần mềm không có lỗi b Hoàn thành đúng thời hạn

c Thỏa mãn yêu cầu khách hàng d Phần mềm có dung lượng lớn

5 Hai yếu tố chất lượng phần mềm là gì?

6 Phát biểu nào là sai về tiêu chuẩn của một phần mềm?

Trang 17

2 CÁC MÔ HÌNH VÒNG ĐỜI PHẦN MỀM

2.1 Khái niệm

2.2 Tiến trình phát triển phần mềm

2.3 Các mô hình vòng đời phần mềm

Trang 18

2.1 KHÁI NIỆM

• Vòng đời phần mềm (Software Life-Cycle) là các bước mà một phần mềm phải

trải qua, bắt đầu từ khảo sát nhu cầu khách hàng cho đến khi phần mềm

không còn được sử dụng;

• Phát triển phần mềm (Software Developement) quá trình xây dựng phần mềm

từ bắt đầu cho đến khi chuyển giao cho khách hàng;

• Pha (Phase) là một giai đoạn trong quá trình xây dựng phần mềm Ví dụ pha

xác định yêu cầu, pha phân tích

Trang 19

2.2 TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM

Tiến trình phần mềm (Software Process):

• Hay còn gọi là quy trình phần mềm là một tập các hoạt động có cấu trúc nhằmphát triển và tiến hóa một phần mềm;

• Quy trình này là sự kết hợp mô hình vòng đời phần mềm, các công cụ được sửdụng và quan trọng hơn hết, là những người xây dựng nên phần mềm đó;

• Các công ty phần mềm khác nhau có các quy trình phần mềm khác nhau;

• Một tiến trình cụ thể phải trả lời được các câu hỏi: Làm gì, khi nào, ai làm, nhưthế nào, bằng gì, ở đâu, kết quả và tiêu chí đánh giá?

Trang 20

Các giai đoạn chính của một tiến trình

CÁC GIAI ĐOẠN CHÍNH CỦA MỘT TIẾN TRÌNH

Giai đoạn xác định yêu cầu: Hệ thống làm gì, những ràng buộc nó cần tuân thủ?

Xác định các tính năng và điều kiện hoạt động của hệ thống (thu thập yêu cầu vàphân tích):

• Phân tích hệ thống: Vai trò phần mềm trong hệ thống, phác họa và chọn phương

án khả thi;

• Lập kế hoạch: Ước lượng, lập lịch, tổ chức;

• Phân tích yêu cầu: Các yêu cầu cụ thể (chức năng, ràng buộc);

• Đặc tả yêu cầu: Kiến trúc, giao diện, xử lý, dữ liệu

Xác định yêu cầu

Phát triển

Thẩm đinh

Trang 21

Các giai đoạn chính của một tiến trình

CÁC GIAI ĐOẠN CHÍNH CỦA MỘT TIẾN TRÌNH

Xác định yêu cầu

Phát triển

Thẩm đinh

Giai đoạn phát triển: Tạo ra phần mềm như thế nào?

• Thiết kế phần mềm (Software Design): Chuyển các yêu cầu thành các bản thiết

kế hệ thống như nó tồn tại;

• Mã hóa (Code Generation): Chuyển thiết kế thành chương trình hay còn gọi là

viết code

Trang 22

Các giai đoạn chính của một tiến trình

CÁC GIAI ĐOẠN CHÍNH CỦA MỘT TIẾN TRÌNH

Xác định yêu cầu

Phát triển

Thẩm đinh

Giai đoạn thẩm định: Kiểm tra phần mềm (Software Testing):

• Kiểm tra tính hợp lý của phần mềm;

• Kiểm thử: Sửa lỗi, hoàn thiện;

• Tài liệu: Hướng dẫn sử dụng, tham khảo kỹ thuật và phát triển hệ thống

Trang 23

Các giai đoạn chính của một tiến trình

CÁC GIAI ĐOẠN CHÍNH CỦA MỘT TIẾN TRÌNH

Xác định yêu cầu

Phát triển

Thẩm đinh

Giai đoạn vận hành và bảo trì:

• Sửa lỗi(Correction): Đảm bảo vận hành trong suốt;

• Thích nghi (Adaptation): Với môi trường (kỹ thuật, nghiệp vụ);

• Tăng cường (Enhancement): Để hoàn thiện hệ thống khi đưa vào sử dụng;

• Nâng cao: Hoàn thiện chức năng, phát triển dự phòng;

• Thêm mới: Thêm các chức năng mới

Trang 24

Mô hình tiến trình hay mô hình vòng đời: Là cách biểu diễn trừu tượng tiến trình phầnmềm theo một cách nhìn cụ thể nào đó.

Công việc 1.1.1

Công việc 2.1.1

Giai đoạn 1 Giai đoạn 2 Giai đoạn 3

Trang 25

2.3 CÁC MÔ HÌNH VÒNG ĐỜI PHẦN MỀM

• Tùy theo quy mô và công nghệ phát triển, có các mô hình sản xuất khácnhau Sau đây là một số mô hình vòng đời phần mềm tiêu biểu:

 Mô hình thác nước (Waterfall model);

 Mô hình phát triển tiến hóa (Evolutionary);

 Mô hình xoắn ốc (Spiral);

 Mô hình lặp và tăng dần (Iterative and Incremental);

 Mô hình làm bản mẫu (Prototype);

 Mô hình phát triển ứng dụng nhanh (RAD);

• Câu hỏi đặt ra là mô hình nào tốt hơn?

• => Mỗi mô hình phù hợp với trình độ phát triển, quy mô sản phẩm và

Trang 26

thống và

kiểm thử đơn vị

Kiểm thử tích hợp và

hệ thống Vận hành và

bảo trì

Mô hình thác nước – Waterfall model

Trang 27

• Đưa ra lần đầu tiên bởi W.W Royce vào năm 1970;

• Quá trình phát triển phần mềm được coi như một dòng chảy trải qua các pha;

• Các pha trên phải được thực hiện một cách tuần tự; kết thúc pha trước, rồi mớiđược thực hiện pha tiếp theo;

• Có sự tách biệt giữa các pha;

• Đặt nền móng cho các phương pháp phân tích, thiết kế, kiểm tra

ĐẶC ĐIỂM CỦA MÔ HÌNH THÁC NƯỚC

Trang 28

• Ưu điểm:

 Các giai đoạn được định nghĩa, với đầu vào và đầu ra rõ ràng;

 Quy định tốt về tài liệu cho mỗi giai đoạn Mô hình này cơ bản dựa trên tài liệunhất là trong các giai đoạn đầu, đầu vào và đầu ra đều là tài liệu;

 Sản phẩm phần mềm được hình thành thông qua chuỗi các hoạt động xây dựngphần mềm theo trình tự rõ ràng;

 Đưa ra được mô hình mẫu về các bước mà phần mềm phải trải qua;

 Được sử dụng rộng rãi nhất trong công nghệ phần mềm

ƯU NHƯỢC ĐIỂM CỦA MÔ HÌNH THÁC NƯỚC

• Nhược điểm:

 Rất khó khăn trong việc thay đổi các pha đã được thực hiện;

 Chậm, rất khó áp dụng với các dự án lớn, phức tạp;

 Rất dễ gây ra hiện tượng tắc nghẽn;

 Yêu cầu khách hàng phải có đặc tả rất chính xác và đầy đủ ngay từ ban đầu;

 Người sử dụng không có cơ hội tham gia trong suốt thời gian của các giai đoạntrung gian từ thiết kế cho đến kiểm thử;

Trang 29

ỨNG DỤNG

• Yêu cầu phải được định nghĩa rất rõ ràng, chi tiết và hầu như không thay đổi, thườngxuất phát từ sản phẩm đã đạt mức ổn định;

• Yêu cầu mới bổ sung (nếu có) cũng phải được xác định rõ ràng, đầy đủ từ đầu dự án;

• Đội ngũ thực hiện quen thuộc và hiểu rõ tất cả yêu cầu của dự án, và có nhiều kinhnghiệm với các công nghệ được dùng để phát triển sản phẩm;

• Dự án phải gần như không có rủi ro

Trang 30

2.3.2 MÔ HÌNH PHÁT TRIỂN TIẾN HÓA (EVOLUTIONARY)

Mô hình phát triển tiến hoá (Evolutionary)

Đặc tả

Phát triển

Thẩm định

Đặc tả khái quát

Phiên bản khởi đầu

Phiên bản trung gian Phiên bản cuối cùng

Trang 31

ĐẶC ĐIỂM CỦA MÔ HÌNH TIẾN HOÁ

• Mô hình xây dựng tiến triển dựa trên ý tưởng xây dựng một mẫu thử ban đầu và đưacho người sử dụng xem xét Sau đó, tinh chỉnh mẫu thử qua nhiều phiên bản cho đếnkhi thoả mãn yêu cầu của người sử dụng thì dừng lại;

• Là một dạng dựa trên mô hình mẫu;

• Mô hình tiến hóa xây dựng nhiều phiên bản mẫu liên tiếp nhau;

• Những phiên bản mẫu trước sẽ được xây dựng với mục tiêu có thể tái sử dụng trongnhững phiên bản sau;

• Một số phần của hệ thống phần mềm có thể đuợc xây dựng sớm ngay từ giai đoạnthực hiện phân tích yêu cầu và thiết kế

Trang 32

Có hai phương pháp để thực hiện mô hình này:

• Phương pháp 1: Phát triển thăm dò

 Mục đích là để làm việc với khách hàng và để đưa ra hệ thống cuối cùng từnhững đặc tả sơ bộ ban đầu;

 Phương pháp này thường bắt đầu thực hiện với những yêu cầu được tìm hiểu rõràng và sau đó, bổ sung những đặc điểm mới được đề xuất bởi khách hàng;

 Cuối cùng, khi các yêu cầu của người sử dụng được thoả mãn thì cũng là lúcchúng ta đã xây dựng xong hệ thống

PHƯƠNG PHÁP ĐỂ THỰC HIỆN MÔ HÌNH TIẾN HOÁ

• Phương pháp 2: Loại bỏ mẫu thử

 Mục đích là để tìm hiểu các yêu cầu của hệ thống;

 Phương pháp này thường bắt đầu với những yêu cầu không rõ ràng và ít thôngtin Các mẫu thử sẽ được xây dựng và chuyển giao tới cho người sử dụng;

 Từ đó, ta có thể phân loại những yêu cầu nào là thực sự cần thiết và lúc này mẫuthử không còn cần thiết nữa;

Trang 33

ƯU NHƯỢC ĐIỂM CỦA MÔ HÌNH TIẾN HOÁ

 Thường thì với mô hình này, tính chặt chẽ, minh bạch của qui trình kém;

 Chỉ nên áp dụng với những hệ thống có tương tác ở mức độ nhỏ hoặc vừa; trên

Trang 34

ỨNG DỤNG CỦA MÔ HÌNH TIẾN HOÁ

• Dùng cho các hệ thống nhỏ và vừa: Các chi phí khi thay đổi hệ thống là khôngquá lớn khi cần phải thay đổi sau khi thực hiện Prototype;

• Phần GUI của những hệ thống lớn; những hệ thống cần chu kỳ phát triển ngắn;

• Cần sự cấp bách về thời gian triển khai ngắn Hệ thống cần được đưa vào ứngdụng từng phần trong khoảng thời gian nhất định;

• Trong trường hợp những hệ thống mà việc đặc tả các yêu cầu là rất khó và không

rõ ràng ngay từ đầu;

• Đội ngũ phát triển không quen thuộc với lĩnh vực của dự án

Trang 35

2.3.3 MÔ HÌNH XOẮN ỐC

Giao tiếp khách hàng

Nâng cấp Làm mới Khái niệm

Trang 36

ĐẶC ĐIỂM CỦA MÔ HÌNH XOẮN ỐC

• Mô hình xoắn ốc do Barry Boehm đề xuất năm 1988;

• Mô hình xoắn ốc là sự kết hợp tính lặp của mô hình bản mẫu và tính hệ thống của môhình thác nước;

• Đặt trọng tâm phân tích rủi ro và xem xét kế hoạch để giải quyết chúng, thông quanhiều chu kỳ con nối tiếp được lặp liên tiếp dựa trên bản chất của mô hình lặp;

• Trong mô hình này, việc phân tích và giải quyết những vấn đề có rủi ro cao tập trungvào thiết kế từng khía cạnh cụ thể chứ không dựa vào việc xử lý các vấn đề một cáchchung chung;

• Mô hình mô tả sự phát triển của phần mềm qua các giai đoạn tiến hoá, mỗi giai đoạnđược coi như một mô hình thác đổ:

 Ban đầu người ta chưa định nghĩa hệ thống một cách chi tiết, mà chỉ chú ý đếnnhững đặc trưng nổi bật nhất;

 Sau đó phần đặc trưng này được xây dựng và khách hàng xem xét, có ý kiến;

 Cùng những thông tin phản hồi từ khách hàng, người phát triển trở lại thực hiệncác đặc trưng với mức độ chi tiết hơn

Trang 37

ĐẶC ĐIỂM CỦA MÔ HÌNH XOẮN ỐC (tiếp theo)

• Bản chất mô hình xoắn ốc là bắt đầu từ những cái khái quát nhất rồi đi dần đếnchi tiết Trong quá trình đó có lập kế hoạch cho từng giai đoạn làm chi tiết hóasản phẩm và phân tích rủi ro;

• Ví dụ: Khi biên soạn tài liệu theo cách thức "xoắn ốc”, ban đầu nêu các khái niệmchung, về sau đi sâu dần vào các chi tiết;

• Mô hình này với các giai đoạn lặp theo chu kỳ xoay vòng, trong đó mỗi chu kỳbao gồm 4 giai đoạn con như sau:

 Xác định mục tiêu chất lượng cho sản phẩm được thực hiện, đồng thời xácđịnh sự lựa chọn mua, tái sử dụng hay tự thiết kế và hiện thực các thànhphần của hệ thống;

 Phân tích sự lựa chọn và các rủi ro có thể xảy ra Việc này được thực hiện bởinhiều hoạt động khác nhau thông qua làm mẫu hay mô phỏng;

Ngày đăng: 09/03/2022, 23:21

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w