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

Bài Giảng Slide Công Nghệ Phần Mềm

209 21 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 đề Bài Giảng Slide Công Nghệ Phần Mềm
Người hướng dẫn Ths. Bùi Thị Thanh
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Phần Mềm
Thể loại bài giảng
Định dạng
Số trang 209
Dung lượng 2,72 MB

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

Nội dung

Quy trình xây dựng và phát triển phần mềm một cách có hệ thống và khoa học . Hiểu được các giai đoạn trong xây dựng và phát triển phần mềm như : Đặc tả yêu cầu , Phân tích , Thiết kế , Kiểm thử , Cài đặt và Bảo trì . Sinh viên có kỹ năng về lập kế hoạch, ước lượng thời gian và chi phí cho phần mềm . + Sinh viên có kỹ năng quản lý chất lượng phần mềm một cách khoa học . Nhận thức rõ giá trị và tầm quan trọng của phần mềm và công nghệ phần mềm trong hệ thống máy tính .

Trang 1

Lớp 1705HTTT Giảng viên: Ths Bùi Thị Thanh

Trang 2

Kiến thức

+ Sau khi học xong học phần Công nghệ phần mềm sinh viên có kiến thức về phần mềm, đặc điểm của phần mềm, chu kỳ sống của phần mềm Quy trình xây dựng

và phát triển phần mềm một cách có hệ thống và khoa học

+ Sinh viên hiểu được các giai đoạn trong xây dựng và phát triển phần mềm như: đặc tả yêu cầu, phân tích, thiết kế, kiểm thử, cài đặt và bảo trì

Mục tiêu học phần

Trang 3

Nhận thức rõ giá trị và tầm quan trọng của phần mềm

và công nghệ phần mềm trong hệ thống máy tính

Mục tiêu học phần

Trang 5

 Kiểm tra thường xuyên: Đánh giá sự chuyên cần và thái độ

học tập của sinh viên Sinh viên phải tham dự tối thiểu

80% tổng số giờ của học phần Điểm kiểm tra đánh giá

định kỳ mới được dự thi kết thúc học phần

 Kiểm tra đánh giá định kỳ: tự luận, điểm kiểm tra đánh giá định kỳ mới được dự thi kết thúc học phần

Thi kết thúc học phần: Theo hình thức vấn đáp lý thuyết

– Bài tập lớn (không sử dụng tài liệu)

Kiểm tra đánh giá

Trang 6

6.1 Học liệu học bắt buộc

[1] Lương Mạnh Bá, Cơ sở Công nghệ phần mềm,

(2010), NXB Khoa học & Kỹ thuật

[2] Lê Đức Trung , Công nghệ phần mềm, (2005) NXB

Thông tin và truyền thông

6.2 Học liệu tham khảo:

[3] Software Engineering (ninth edition), Ian

Sammerville

[4] TS Lê Văn Phùng, Kỹ nghệ phần mềm, (2014) NXB

Thông tin và truyền thông.

Tài liệu tham khảo

Trang 7

Chương 1 Tổng quan về CNPM

Chương 2 Mô hình vòng đời phần mềm Chương 3 Quy trình xây dựng phần mềm Chương 4 Quản lý phần mềm

Nội dung học phần

Trang 9

-Phần mềm (software) là một tập hợp các câu lệnh được

viết bằng ngôn ngữ lập trình, nhằm tự động thực hiện một số các chức năng giải quyết một bài toán nào đó

- Phần mềm thường được mô tả với 3 bộ phận cấu thành chính

• Tập các lệnh

• Các cấu trúc dữ liệu

• Các tài liệu

1.1 Một số khái niệm

Trang 10

Ba bộ phận cấu thành chính của PM

Tập các lệnh (ctr máy tính) khi được thực hiện sẽ

cung cấp những chức năng và kết quả mong muốn

Cấu trúc dữ liệu: làm cho ctr thao tác hiệu quả với

các thông tin thích hợp và nội dung thông tin được số hóa

Các tài liệu: để mô tả thao tác, cách sử dụng và bảo trì

phần mềm

1.1 Một số khái niệm

Trang 11

- Công nghệ (technology) là nói tới cách thức

hay phương pháp để làm một việc gì đó, cụ thể

hoặc trừu tượng, có áp dụng các thành tựu của khoa học và được thực hiện một cách có hệ

thống

1.1 Một số khái niệm

Trang 12

1.1 Một số khái niệm

Trang 13

Khoa học (science) là hệ thống các tri thức do con

người khám phá ra Khoa học tập trung vào việc tìm hiểu và rút ra các quy luật thực tế (của tự nhiên và cuả con người) Các quy luật này thường phát biểu dưới dạng định lý, các mệnh đề,…

1.1 Một số khái niệm

Trang 14

-Kỹ thuật (technique) là chỉ ra cách thức tiến hành một

công việc cụ thể nào đó Cách làm này thường áp dụng kiến thức khoa học và được hệ thống thành các bước sao

cho mọi người đều có thể học và làm theo

-Công nghiệp (industry) là khái niệm bao chùm cả một

ngành lớn, trong đó bên cạnh các yếu tố kỹ nghệ còn có thêm các yếu tố khác như kinh tế, tài chính, tổ chức xã hội

1.1 Một số khái niệm

Trang 15

- Phần cứng (hardware) là các thiết bị cấu kiện mang

tính vật lý, có thể tiếp xúc được như máy in, ổ đĩa, máy quét,

-Chương trình (program): Phần mềm là 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 đó Trong công nghệ phần mềm thì phần mềm không chỉ là các chương trình, dữ liệu, mà còn gồm cả các tài liệu liên quan như các thiết kế, hướng dẫn sử dụng

1.1 Một số khái niệm

Trang 16

Phần mềm = chương trình + tài liệu

- Công nghệ phần mềm: là cách làm phần mềm tuân

theo nguyên tắc của công nghệ truyền thống

- Vòng đời phần mềm (software life-cycle) là các bước

mà một phần mềm 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 development) là 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

1.1 Một số khái niệm

Trang 17

- Người phát triển (software developer) là tên gọi

chung của những người tham gia xây dựng phần mềm

- Nhóm đảm bảo chất lượng phần mềm (software

quality assurance group = SQA group): nhóm chuyên kiểm tra chất lượng phần mềm, kiểm tra kết quả của giai đoạn xây dựng phần mềm

1.1 Một số khái niệm

Trang 18

Quy trình phần mềm (software process) là cách thức

làm ra phần mềm, bao gồm vòng đời phần mềm, các công cụ và những người phát triển phần mềm

-Pha (phase) là một giai đoạn trong quá trình xây

dựng phần mềm VD: pha xác định yêu cầu, pha

phân tích,

1.1 Một số khái niệm

Trang 19

Xác định Yêu cầu (requirements) là pha đầu tiên

trong quá trình xây dựng phần mềm Pha này thường

có tên gọi là tìm hiểu khái niệm (concept exploration) Trong đó người phát triển và khách hàng ngồi lại với nhau Khách hàng nêu ra những yêu cầu mà phần mềm phải có, còn những người phát triển ghi chép lại

1.1 Một số khái niệm

Trang 20

Đặc tả /phân tích (analysis): trên cơ sở của những yêu cầu của khách hàng, người phát triển mô tả lại chính xác hơn các yêu cầu mà phần mềm phải có (cách mô

tả này có tính chuyên môn)

Phân tích hệ thống (system analysis): người ta thường gộp 2 pha yêu cầu và pha phân tích thành một pha gọi là phân tích hệ thống

1.1 Một số khái niệm

Trang 21

Thiết kế (design) là pha tiếp theo đặc tả Căn cứ vào

tài liệu đặc tả, pha này mô tả cách thức mà phần mềm thực hiện các công việc cụ thể Pha này thường có 2 phần: thiết kế kiến trúc và thiết kế chi tiết

Cài đặt (implementation) hay mã hóa code, hay lập

trình (programming): là viết chương trình bằng một ngôn ngữ cụ thể nào đó

1.1 Một số khái niệm

Trang 22

- Tích hợp (integration): là kết nối các phần chương

trình đã viết thành một phần mềm thống nhất và chạy thử, hiệu chỉnh cho đến khi chạy tốt Pha này gọi là kiểm thử

- Bảo trì (maintenance): đôi khi được gọi là hỗ trợ

1.1 Một số khái niệm

Trang 23

- Bảo trì: Sản phẩm được sử dụng để thực hiện các công việc đã

đặt ra trước đó Trong quá trình này có thể xảy ra các sự cố:

đó có thể là các lỗi chương trình chưa được loại trừ hết, hay kết quả không được như khách hàng mong đợi

- Người ta phân công bảo trì thành 2 loại: bảo trì sửa lỗi và

bảo trì cập nhật

1.1 Một số khái niệm

Trang 24

- Bảo trì sửa lỗi như tên gọi của nó, là sửa các lỗi có thể

vẫn còn xuất hiện khi chạy chương trình

- Bảo trì cập nhật được chia làm 2 loại: bảo trì hoàn thiện

và bảo trì thích nghi Bảo trì hoàn thiện là sửa đổi phần mềm theo ý khách hàng để nâng cao hiệu quả Bảo trì

thích nghi là sửa đổi để phần mềm thích nghi với môi

trường mới

1.1 Một số khái niệm

Trang 25

 1955-1970: tính toán và quản lý rời rạc, quản lý nhỏ Đặc tả những yêu cầu của khách hàng lúc đó còn dùng ngôn ngữ tự nhiên thông thường

 1971-1985: lúc này đã có nhu cầu xây dựng các phần mềm thời gian thực

 Từ 1986 đến nay: đây là thời kỳ của máy vi tính PC, thời nối mạng tầm rộng, mạng toàn cầu Internet

1.2 Lịch sử

Trang 26

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, đƣợc hoàn thành đúng thời hạn với kinh phí cho phép, và thỏa mãn yêu cầu khách hàng Hơn nữa, phần mềm

phải dễ sửa đổi khi cần thiết

Để đạt được điều này yêu cầu kỹ sư phần mềm phải làm những gì?

“ Công nghệ phần mềm” liệu có lợi ích gì, có thực

sự cần thiết đối với những người phát triển phần mềm không?

1.3 Phạm vi

Trang 27

Để xây dựng một phần mềm có khoa học ta thực hiện nhƣ sau:

Phần mềm xây dựng theo đơn đặt hàng Như vậy cần

có một ngôn ngữ chung giữa người xây dựng phần mềm

và khách hàng

Phần mềm thường do nhiều người xây dựng Cần có một cách thức diễn đạt các công việc sao cho mỗi kỹ sư phần mềm đều có thể trao đổi dễ dàng ý tưởng và công việc của mình với các kỹ sư trong nhóm làm việc

1.3 Phạm vi

Trang 29

CNPM nhìn từ góc độ lịch sử

 1955-1970: tính toán và quản lý rời rạc, quản lý nhỏ Đặc

tả những yêu cầu của khách hàng lúc đó còn dùng ngôn ngữ tự nhiên thông thường

 1971-1985: lúc này đã có nhu cầu xây dựng các phần mềm thời gian thực

 Từ 1986 đến nay: đây là thời kỳ của máy vi tính PC, thời nối mạng tầm rộng, mạng toàn cầu Internet

1.3 Phạm vi

Trang 30

Mô hình thác đổ (waterfall): mô hình này bao gồm

7 giai đoạn như sau:

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

Phân tích (đặc tả) (Analysis or specification phase)

Thiết kế (Design phase)

Cài đặt (implementation phase)

Tích hợp (Integration phase)

Bảo trì (Maintenance phase)

Thôi sử dụng (Retirement)

Mô hình vòng đời

Trang 31

Trong thực tế, có thể một vài pha được bỏ qua hoặc được thay thế bởi các pha khác Ví dụ người ta hợp nhất 2 pha đầu tiên thành pha hệ thống Người ta lại cho rằng việc tích hợp phải được thực hiện trong quá trình cài đặt, cài đặt xong thì phải có thời gian kiểm thử,

Mô hình vòng đời

Trang 32

Với phần mềm lớn, nhiều người viết thì việc tích hợp

là rất quan trọng và nên để tách riêng thành một pha, còn với phần mềm vừa và nhỏ thì nên kết hợp cài đặt

và tích hợp thành một pha, trong đó bao hàng cả tích hợp

PM nhỏ Yêu cầu Đặc tả Thiết kế Cài đặt và tích hợp Bảo trì Thôi sử

dụng

PM lớn Yêu cầu Đặc tả Thiết kế Cài đặt Tích hợp Bảo trì Thôi sử

dụng

Mô hình vòng đời

Trang 33

Từ năm 1975-1985, phương pháp hướng cấu trúc

(structured paradigm) ra đời, đánh dấu một sự thay đổi

trong kỹ thuật phần mềm Kỹ thuật này bao gồm: phân

tích hệ thống có cấu trúc, phân tích dòng dữ liệu, lập trình cấu trúc và kiểm thử theo cấu trúc

Phương pháp này xem dữ liệu là quan trọng nhất

Phương pháp hướng cấu trúc

Trang 34

+ Không hỗ trợ việc kế thừa

Các chương trình hướng cấu trúc phụ thuộc chặt chẽ vào cấu trúc dữ liệu và bài toán cụ thể

+ Không phù hợp cho phát triển các phần mềm lớn

+ khó quản lý mối quan hệ giữa các modul và khó kiểm thử và bảo trì

Trang 35

Nhược điểm của phương pháp này:

 Phương pháp lập trình hướng cấu trúc không phù hợp với những phần mềm chứa khoảng trên 5000 dòng lệnh

 Khi xây dựng phần mềm, dự kiến về trung bình thì kinh phí bảo trì chiếm khoảng 2/3 tổng kinh phí

Ƣ u và nhƣợc điểm

Trang 36

Phương pháp hướng đối tượng: xem dữ liệu và hành

động đều quan trọng như nhau Người ta xem đối tượng

là thành phần của một phần mềm trong đó bao gồm dữ liệu và các hành động thao tác trên dữ liệu ấy

Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mối quan hệ và tương tác giữa chúng

Phương pháp hướng đối tượng

Trang 37

+ Đóng gói che giấu thông

tin làm cho hệ thống tin cậy

luồng dữ liệu do có nhiều luồng dữ liệu ở đầu vào + Giải thuật lại không phải

là vấn đề trọng tâm của phương pháp này

Trang 38

Tài khoản ngân hàng là một ví dụ về đối tượng Dữ liệu của đối tượng là số dư tài khoản Các hành động tác động lên số dư tài khoản là việc gửi tiền, rút tiền và tính số dư Theo quan điểm hướng đối tượng thì tài khoản ngân hàng là một đối tượng bao gồm 3 thành phần trên Ta có thể biểu diễn các phương pháp này trong các hình sau đây:

Ví dụ

Trang 39

Thông báo (a) Phương pháp cấu trúc (b) Phương pháp hướng đối tượng

Trang 40

Sự khác biệt được thể hiện trong cách thức đối tượng vận hành Trong phương pháp cấu trúc, số dư tài khoản được khai báo sao cho các hành động gủi tiền, rút tiền, hay tính toán số dư có thể tác động lên nó Đây là thao tác bên ngoài Như vậy, ngoài 3 hành động trên, số dư có thể bị thay đổi bởi một thao tác khác

So sánh sự tính toán tài khoản ngân hàng bằng 2

phương pháp

Trang 41

Trong phương pháp HĐT thì số dư chỉ chịu tác động của 3 thao tác của đối tượng Bên ngoài nếu muốn biết thông tin về số dư thì chỉ có thể gửi thông báo đến đối tượng

VD: Nếu khách hàng gửi 10$ thì sẽ gửi thông báo và kích hoạt hàm gửi tiền, hàm gửi tiền sẽ tăng số dư lên 10&

So sánh sự tính toán tài khoản ngân hàng bằng 2

phương pháp

Trang 42

Ƣ u điểm:

 Thể hiện trong quá trình bảo trì phần mềm

 Phương pháp HĐT được thiết kế tốt thì các đối tượng

là những phần độc lập, ít phụ thuộc nhau Do đó, dễ phân chia công việc cho nhiều người thực hiện

 Cũng nhờ tính độc lập của các đối tượng mà khả

năng sử dụng lại phương pháp HĐT cao hơn

Ư u và nhược của phương pháp HĐT

Trang 43

Phương pháp cấu trúc Phương pháp HĐT

modul, và thiết kế chi tiết, tức là

thiết kế chi tiết các modul)

3 Thiết kế HĐT (thiết kế chi tiết các đối tượng)

4 Lập trình HĐT

5 Tích hợp

6 Bảo trì

7 Thôi sử dụng

So sánh giữa 2 phương pháp Cấu trúc và phương pháp

Hướng đối tượng

Trang 44

 Trong phương pháp cấu trúc, pha phân tích trả lời câu hỏi:

“phần mềm làm gì?”, còn pha thiết kế trả lời câu hỏi: “làm như thế nào?” Pha thiết kế gồm 2 pha con: thiết kế kiến trúc (phần mềm được chia thành các modul như thế nào?) và thiết kế chi tiết (mối modul được thiết kế như thế nào?)

 Với phương pháp HĐT, trong pha phân tích, ngoài việc xác định phần mềm sẽ làm những gì (như phương pháp cấu trúc) còn phải xác định các đối tượng trong phần mềm là những đối tượng nào?; trong pha thiết kế không phải xác định các đối tượng nữa, mà chỉ cần thiết kế chi tiết các đối tượng

So sánh sự tính toán tài khoản ngân hàng bằng 2

phương pháp

Trang 45

 Như vậy, trong phương pháp HĐT các bước chuyển tiếp

từ pha này sang pha khác mịn hơn, và do đó giảm được các lỗi trong quá trình phát triển

So sánh sự tính toán tài khoản ngân hàng bằng 2

phương pháp

Trang 46

 Từ những năm đầu 1950 – 1960

- Phần cứng liên tục thay đổi

- Phần mềm được coi là nghệ thuật, chưa có phương pháp hệ thống Phát triển phần mềm chưa được quản

 Thời kỳ tiếp theo (từ 1960 đến 1970)

- Hệ thống đa lập trình và đa người sử dụng dẫn đến khái niệm mới tương tác về người máy

- Tiến bộ lưu trữ trực tuyến dẫn đến thế hệ đầu tiên của

hệ quản trị CSDL

Lịch sử phát triển phần mềm

Trang 47

- Chi phí phần mềm có khuynh hướng lớn hơn chi phí mua máy tính

Lịch sử phát triển phần mềm

Trang 48

 Thời kỳ sau năm 1990

- kỹ nghệ hướng đối tượng là cách tiếp cận mới đang nhanh chóng thay thế nhiều cách tiếp cận phát triển phần mềm truyền thống trong các lĩnh vực ứng dụng

- Hệ chuyên gia và phần mềm trí tuệ nhân tạo: chuyển

từ phòng thí nghiệm sang thực tế

- Hướng tới phát triển phần mềm dựa trên công nghệ khoa học và tin cậy hơn như là kỹ nghệ phần mềm hướng thành phần

Lịch sử phát triển phần mềm

Trang 49

1.2.1 Phân loại phần mềm

1.2 Các tiêu chuẩn của phần mềm

1 • Theo vai trò chức năng

2 • Theo lĩnh vực ứng dụng

Trang 50

Phân loại theo vai trò – chức năng

- Phần mềm hệ thống (system software): là tập hợp

các chương trình thực hiện chức năng quản lý và

điều khiển các nguồn nhân lực của máy tính và các chương trình khác nhau chạy trên máy tính Chúng

bao gồm các hệ điều hành, các hệ tiện ích hệ thống

1.2.1 Phân loại phần mềm

Ngày đăng: 16/01/2022, 16:13

HÌNH ẢNH LIÊN QUAN

Sơ đồ tương ứng giữa vòng đời dự án và kiểm thử - Bài Giảng Slide Công Nghệ Phần Mềm
Sơ đồ t ương ứng giữa vòng đời dự án và kiểm thử (Trang 172)

TỪ KHÓA LIÊN QUAN