1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng môn học Kỹ nghệ phần mềm: Bài 2 - PGS.TS. Nguyễn Văn Vỵ

50 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Định dạng
Số trang 50
Dung lượng 614,22 KB

Nội dung

Trang 1

Bộ môn Công nghệ phần mềm- Khoa CNTT- ĐHCNEmail: vynv@coltech.vnu.vn

Kỹ nghệ phần mềm

Software Engeneering

Trang 2

NguyễnVănVỵ

Nội dung

Bài 2: Kỹ nghệ phần mềm

„ Định nghĩa vμ khái niệm„ Lịch sử phát triển

Trang 3

NguyễnVănVỵ

TÀI LiỆU THAM KHẢO

1.Nguyễn Văn Vỵ, Nguyễn Việt Hà Giỏo trỡnh kỹ nghệ phần

mềm Nhà xuất bản Đại học Quốc gia Hà nội, 2008

2.Grady Booch, James Rumbaugh, Ivar Jacobson The Unified

Modeling language User Guid Addison-Wesley, 1998.

3.M Ould Managing Software Quality and Business Risk, John

Wiley and Sons, 1999.

4.Roger S.Pressman, Software Engineering, a Practitioner’s

Approach Fifth Edition, McGraw Hill, 2001.

5.Ian Sommerville, Software Engineering Sixth Edition,

Addison-Wasley, 2001.

6.Nguyễn Văn Vỵ Phõn tớch thiết kế hệ thống thụng tin hiện đại

Hướng cấu trỳc và hướng đối tượng, NXB Thống kờ, 2002, Hà

Trang 4

NguyễnVănVỵ

Các định nghĩa kỹ nghệ phần mềm

„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 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 (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 mềm (Sommerville [1995])

Trang 5

NguyễnVănVỵ

„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

Trang 6

NguyễnVănVỵ

Lịch sử của kỹ nghệ phần mềm

„Đề x−ớng, hình thμnh (70s)

Các ph−ơng pháp lập trình vμ cấu trúc dữ liệu

Khái niệm về tính mơđun

Khái niệm sơ đồ khối, lập trình top-downLập trình có cấu trúc (Dijkstra)

ph−ơng pháp chia mơdun một ch−ơng trình

Trang 7

NguyễnVănVỵ„Tăng tr−ởng (nửa đầu 80s)

ắXuất hiện các ph−ơng pháp phát triển hệ thống

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

ƒphân tích, thiết kế h−ớng cấu trúc (biểu đồ luồng, )

ắCác bộ công cụ phát triển

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

ƒbộ khởi tạo ch−ơng trình, kiểm thử

ƒcác ngơn ngữ bậc cao

ắBắt đầu quan tâm đến quản lý

ƒCác độ do phần mềm

ƒQuản lý theo thống kê

Trang 8

NguyễnVănVỵ

Lịch sử của kỹ nghệ phần mềm

„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

ƒNhiều mơ hình h−ớng cấu trúc triển khai, chuẩn hóa

ƒCASE hoμn thiện, đạt mức tự động hóa cao

ƒNgơn ngữ thế hệ 4 ra đời (LIPS, PROLOG, )

ƒCông nghệ h−ớng đối t−ợng bắt đầu phát triển:Quy trình RUP, UML, Các cơng cụ đầy đủ (ROSE, JIBULDER, )

Trang 9

NguyễnVănVỵ

Lịch sử của kỹ nghệ phần mềm

„Phát triển (từ giữa 80s)

ắPhát triển công nghệ đối t−ợng

 Kho dữ liệu, CSDL đối t−ợng, đa ph−ơng tiện

 Định h−ớng sử dụng lại: thμnh phần, mẫu, Framework

 Công nghệ Web: web services

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

Trang 10

NguyễnVănVỵCác yếu tố cơ bản của - SE„Tổng hợp: Kỹ nghệ phần mềm Lμ một q trình kỹ nghệ tích hợp:yThủ tục (procedures)yPh−ơng pháp (methods)yCông cụ (tools)

Trang 11

NguyễnVănVỵ

Các thủ tục -Procedures

„Qui trình phát triển vμ quản lý:

ƒXác định trình tự thực hiện các công việc

ƒXác định các tμi liệu, sản phẩm cần bμn giao, vμ cách thức thực hiện

ƒĐịnh các mốc thời gian (millestones) vμ sản

phẩn đ−a ra (theo các chuẩn)

ắCó thể ở mức chung cho nhiều dự án

Trang 12

NguyễnVănVỵ

Các ph−ơng pháp -methods

„Cách lμm cụ thể để xây dựng phần mềm

„Mỗi cơng đoạn có ph−ơng pháp riêng:

• Phân tích (xác định, đặc tả yêu cầu)

• Thiết kế(đặc tả kiến trúc, giao diện, dữ liêu, thủ tục)

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

• Kiểm thử (hộp đen, hộp trắng, áp lực, hồi quy, luồn sợi)

Trang 13

NguyễnVănVỵ

„Nội dung ph−ơng pháp th−ờng bao gồm:

yCác phân tử mơ hình: mô tả khái niệmyCác ký pháp: đặc tả phần tử

yCác quy tắc: liên kết các phân tử mơ hìnhyQuy trình xây dựng: trình tự tạo 1 mơ hình

yLời khun, cách dùng: cho mơ hình tốt vμ dùng nó

Trang 14

NguyễnVănVỵluồng dữ liệukho dữ liệutiến trìnhƒ Vẽ luồng dữ liệu mức 0 từ mơ hình nghiệp vụƒ Vẽ biểu đồ mức i: từ mỗi tiến trình mức i-1 ch−a làcơ sở- Tiến trình l là duy nhất- Các luồng vào 1 tiến

trình phải # các luồng ra

Trang 15

NguyễnVănVỵ

Ví dụ: Biểu đồ luồng dữ liệu mức 0 bμi tốn trơng gửi xe 0HệthốngKháchDS thực thểa xxxxb xxxxc xxxxd xxxxe xxxxf xxxxabcdef1 RCURC2 RRUC3 RR01233.0giải quyết sựcốt.t xe

nét đỏ lμ phần thay thế hay thêm vμo

2.0trả xekháchvé xe"không g.q."

phiếu chibiên bản

Trang 16

NguyễnVănVỵ

Các công cụ -tools

„Trợ giúp tự động/bán tự động ph−ơng pháp

„Computer Aided Software Engineering CASE

các công cụ trợ giúp các công đoạn khác nhau tiến trình phát triển phần mềm

„Các ngơn ngữ lập trình

cơng cụ sinh giao diện (C Builder, )

hỗ trợ phân tích, thiết kế (Rwin, Modeler(Oracle Designer, Rational Rose, )

trợ giúp lập trình: compiler, debugger

trợ giúp quản lý: project management

Trang 17

NguyễnVănVỵ

Các công cụ -tools

Trang 18

NguyễnVănVỵ

Vòng đời phát triển hệ thống phần mềm

(systems development life cycle - SDCL)

„Lμ các hoạt độngtừ khi đ−ợc đặt hàng, phát triển, sử dụng đến khi bị loại bỏ nó

„Vịng đời chia thμnh các giai đoạn chính :

ắ xác định yêu cầu,ắ triển khai,

ắ kiểm thử,

ắ Vận hành, bảo trì và lặp lại

Trang 19

NguyễnVănVỵ

Vịng đời phát triển phần mềm

„Tùy mơ hình áp dụng, phân chia các pha, các

b−ớc có thể khác nhau : từ 3đến 20b−ớc

Xác định yêu cầuTriền khaiKiểm thử

Vận hành - Bảo trì

Trang 20

NguyễnVănVỵ

Các b−ớc chung nhất phát triển

Trang 21

NguyễnVănVỵXác định yêu cầuXác định: Hệ thống lμm gi?Những rμng buộc gì nó cần tn thủ? Phân tích hệ thống vai trị phần mềm trong hệ thống phác hoạ & chọn ph−ơng án khả thi

 Lập kế hoạch

−ớc l−ợng, lập lịch, tổ chức, b−ớc đi, sản phẩm

 Phân tích yêu cầu

ƒ cácyêu cầu cụ thể (chức năng, rμng buộc)

Trang 22

NguyễnVănVỵ

Phát triển

Tạo ra phần mềm nh− thế nào?

  Thiết kế (design)

dịch yêu cầu thμnh bản thiết kế HT nh− nó tồn tại

(mơi tr−ờng, kiến trúc, dữ liệu, xử lý, giao diện)

  M∙ hóa (coding)

Chuyển thiết kế thμnh ch−ơng trình (của1 ngơn ngữ)

  Kiểm thử (testing)

sửa lỗi, hoμn thiện ch−ơng trình (kiểm thử đơn vị, tích hợp,

Trang 23

NguyễnVănVỵ

Vận hμnh, bảo trì

Hịan thiện hệ thống sau khi đ−a vào hoạt động?

  Sửa lỗi: để vận hμnh thơng suốt

  Thích nghi: với môi tr−ờng (kỹ thuật, nghiệp vụ) đã thay đổi để hoạt động hiệu quả

  Nâng cao: Hoμn thiện chức năng, phát triển dựphịng

Trang 24

NguyễnVănVỵ

Tiến trình phần mềm

„Tiến trình phần mềm (software process) lμ một tập các hoạt động có cấu trúc nhằm phát triển vμ tiến hóa 1 phần mềm

„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ả? tiêu chí đánh giá?

Đặc tr−ng

 Gắn với mỗi dự án

 Có cấu trúc xác định (cơng việc, trình tự, cơng cụ,

Trang 25

NguyễnVănVỵ

Tiến trình phần mềm

Các hoạt động chínhcủa mọi tiến trình

ƒ Xác định yêu cầu:định rõ yêu cầu sản phẩm

ƒPhát triển:tạo ra sản phẩm

ƒThẩm định:phần mềm đáp ứng đ−ợc yêu cầu khơng?

ƒTiến hóa phần mềm:thay đổi nhằm đáp ứng u cầu thay đổi (người dùng, môi trường)

Trang 26

NguyễnVănVỵ

Tiến trình phần mềm

1.Xác định yêu cầu (Requirements)

Trang 29

NguyễnVănVỵ

4.Tiến hóa phần mềm (Evolution)

đội phát triểnThẩm địnhHệ thống phần mềm đáp ứng yêu cầufile.exefile.comHệ thống phần mềm đ−ợc tiến hóafile.exefile.comfile.com

mơi tr−ờng thay đổi

Trang 30

NguyễnVănVỵ

Mơ hình tiến trình phần mềm

„Mơ hình tiến trình (software process model)

cách biểu diễn trừu t−ợng tiến trình phần mềm theo cách nhìn cụ thể.Cơng việc 1Cơng việc 2Cụng việc 1.1.1Công việc 1.1Cụng việc 1.2Cụng việc 2.1Cụng việc 2.1.1TIẾN TRèNH CỤ THỂ

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

Trang 31

NguyễnVănVỵ

Chi phí của kỹ nghệ phần mềm

ắ Chi phí kỹ nghệ phần mềm:lμ các

khoản chi liên quan đến toμn bộ sự phát triển

ắ Chi phí phụ thuộc:

ƒLoại hệ thống (đơn giản, phức tạp)

ƒYêu cầu đặt ra (nhiều, ít, cao, thấp)

ƒMức độ hoμn thiện (hiệu năng, độ tin cây, an toμn, )

ƒNăng lực của tổ chức (nhân lực, cơng nghệ, cơng cụ, kỹ năng có đ−ợc)

Trang 32

NguyễnVănVỵ

Chi phí của kỹ nghệ phần mềm

Chi phớ phỏt triển tiến húa

đặc tảthiết kếphỏt triểnkiểm thử tớch hợp

0255075100

Phõn bố chi phớ phỏt triển (nói chung)

262338

13

đặc tảphỏt triển tiến húakiểm thử hệ thống

0255075100

Trang 33

NguyễnVănVỵ

Chi phí của kỹ nghệ phần mềm

Chi phí hệ có vịng đời dμi

phỏt triển hệ thốngtiến húa hệ thống

0255075100

2575

đặc tảphỏt triểnkiểm thử hệ thống

0255075100

chi phớ phỏt triển sản phẩm trực tuyến

3557

Trang 34

NguyễnVănVỵQuy mơ phần mềm„Kích cỡ phần mềm ảnh h−ởng lớn đến chi phí„Kích cỡ th−ờng đo bằng số dịng lệnh„Kích cỡ phần mềm phụ thuộc:• Bμi tốn• Thiết kế• Ngơn ngữ lập trình (& trình độ ng−ời lập)

Trang 37

NguyễnVănVỵ

Tính bảo trì đ−ợc

 Kiến trúc tốt: kết dính chặt, ghép nối lỏng (dễ đọc, dễ

sửa, dễ phát triển, ảnh h−ởng cục bộ)

 cμi đặt bằng ngôn ngữ bậc cao (dễ đọc, viết nhanh)

 tμi liệu đầy đủ, tốt (dễ theo dõi, dễ hiểu, có cơ sở sửa, )

 Có tuổi thọ cao, phụ vụ nhiều

 Chi phí bảo trì thấp ặ cho hiệu quả

"Phần mềm ln có u cầu sửa đổi“

Trang 38

NguyễnVănVỵ

Đáng tin cậy

„Đáp ứng đ−ợc nhu cầu ng−ời sử dụng

Đảm bảo các chức năng cần

 Ôn định, thời gian lμm việc không lỗi lớn Cho kết quả xác đáng

„Phần mềm có ít khiếm khuyết về: lỗi lập trình

Trang 39

NguyễnVănVỵ

Tính hiệu quả

„Khơng sử dụng lãng phí tμi ngun phần cứng

Để tối −u hóa cần:

 Đòi hỏi bộ nhớ lớn Đòi hỏi tốc độ cao

 Chiếm không gian đĩa lớn,

 dùng ngôn ngữ bậc thấp

 truy cập trực tiếp đến thiết bị sử dụng thuật toán viết gọn

Cần tối ưu hợp lý

Trang 40

NguyễnVănVỵ

Tiện dụng, tinh vi

„Giao diện phù hợp với trình độ của ng−ời dùng

„Học nhanh, nhớ lâu, dễ thao tác

„Có đủ tμi liệu & nhiều tiện ích, trợ giúp thông minh

Trang 41

NguyễnVănVỵ

Cần cân đối, thỏa hiệp giữa các u cầu

•Khó tối −u đồng thời các thuộc tính

giá cả, hiệu quả>>> <<<dễ bảo trì, sử dụng, sự tinh viChi phí cho tối −u khơng tuyến tính (lμ hμm mũ)

Trang 42

NguyễnVănVỵ

Kỹ nghệ hệ thống(System Engineering)

„Kỹ nghệ hệ thốnglμ toμn bộ công việcphát triển hệthống dựa trên máy tính (computer based system):

Trang 43

NguyễnVănVỵ

Kỹ nghệ hệ thống

„Đặc tính nổi trội của hệ thống dựa trên máy tính

• Thuộc tính chức năng: điều khiển 1 hệ

• Thuộc tính phi chức năng: độ tin cậy, an toμn

Mμ:

từng bộ pbận khơng thể có đ−ợc

quyết định đến toμn hệ thống

„Kỹ nghệ hệ thốngliên quan đến:

• áp dụng các ngun lý tích hợp

Trang 44

NguyễnVănVỵ

Kỹ nghệ hệ thống

Trang 45

NguyễnVănVỵ

Khái niệm liên quan - Khoa học máy tính

(Computer Sience)

ắ Khoa học máy tínhliên quan đến những vấn đề lý thuyết vμ nền tảng cho máy tính vμ phần mềm

ắ Kỹ nghệ phần mềmliên quan đến thực tiễn của việc phát triển vμ xuất ra các phần mềm hiệu quả

Trang 46

NguyễnVănVỵKiến trúc vμphần cứng máy tínhHạ tầng các hệ thốngcông nghệvμ ph pháp phần mềmCác công nghệ ứng dụngtơ chức vμcác HTTTCác lĩnh vực tính tốn

(computing curricula 11/2004 -ACM, AIS, IEEE)

Lý thuyết, ứng dung

SE

CS

Trang 47

NguyễnVănVỵ

„Mỗi lĩnh vực tínnh tốn đ−ợc giới hạn bằng một vùng với biên có màu sau:

Trang 48

NguyễnVănVỵ

Câu hỏi ôn tập

1)Định nghĩa kỹ nghệ phần mềm -SE?

2)Các giai đoạn lịch sử phát triển SE? đặc tr−ng của mỗi giai đoạn (sản phẩm, ph−ơng pháp, công cụ, quản lý vμ tổ chức lμm việc)?

3)Giải thích nội dung các yếu tố cơ bản trong SE? Lấy ví dụ minh hoạ về ph−ơng pháp, cơng cụ?

4)Tiến trình phần mềm lμ cái gì? Các b−ớc chung nhất của tiến trình lμ gì?

Trang 49

NguyễnVănVỵ

Câu hỏi ơn tập

6)Trình bμy một số mơ hình tiến trình cơ bản (nội dung, −u, nh−ợc, thích hợp khi nμo)?

7)Chi phí của SE gồm những thμnh phần nμo? nó phụ thuộc vμo những cái gì?

8)Kỹ nghệ hệ thống lμ gì? Quan hệ với kỹ nghệ phần mềm ra sao?

9)Các thuộc tính của phần mềm đ−ợc kỹ nghệ tốt?

Trang 50

NguyễnVănVỵ

Ngày đăng: 14/10/2023, 22:08

TỪ KHÓA LIÊN QUAN