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

giáo trình công nghệ phần mềm

241 435 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

Định dạng
Số trang 241
Dung lượng 5,4 MB

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

Nội dung

Thành phần giao diện : - Tiếp nhận các yêu cầu về việc sử dụng phần mềm của người sử dụng như chọn công việc nhập dữ liệu nguồn dụng như chọn công việc,nhập dữ liệu nguồn, … - Trình b

Trang 1

GIÁO TRÌNH:

CÔNG NGHỆ PHẦN MỀM

T ầ T ấ Mi h

Trang 4

Nộ d Nội dung

Trang 5

CHƯƠNG 1:

CÔNG NGHỆ PHẦN MỀM

Trang 6

¾ Mục tiêu

Trang 7

Mục tiêu :

trong công nghệ phần mềm

trong công nghệ phần mềm.

Trang 8

6 Các công cụ và môi trường phát triển phần mềm

6 Các công cụ và môi trường phát triển phần mềm.

Trang 9

1.1 Lược sử

Qua các giai đoạn :

Giai đoạn I : Thời kỳ thế hệ thứ nhất của MTĐT ( Thập niên 50.)

Mô tả d à á đặ t

Mô tả dựa vào các đặc trưng:

a) Quan điểm : Lập trình là một hoạt động nghệ thuật, dựa trên cảm

Trang 10

2 Giải quyết khủng hoảng:

-Thay đổi quan điểm nghiên cứu , đối tượng nghiên

cứu, phương pháp nghiên cứu,

3 Các thành quả:

Trang 11

1.1 Lược sử (tt)

Giai đoạn thứ 3 : ( Từ giữa những năm 70 đến nay ) :

Đặc trưng :

Hệ thông phân bố nhiều máy tính mỗi máy thực hiện một chức

- Hệ thông phân bố - nhiều máy tính, mỗi máy thực hiện một chức năng tương tranh và liên lạc với máy khác.

- Sự phát triển nhanh của các máy tính cá nhân.

Trang 12

1.2 Phần mềm (Software)

1 Khái niệm.

Phần mềm là hệ thống các chương trình thực hiện được trên máy tính nhằm hổ trợ cho các nhà chuyên môn trong từng lãnh vực chuyên ngành thực hiện tốt các thao tác nghiệp vụ của mình

‘ Lĩnh vực chuyên ngành : Mọi mặt trong đời sống xã hội như giáo

dục, quốc phòng, giải trí, kinh doanh,

‘ Nhà chuyên môn ( nguời sử dụng) : Người hoặc bộ phận tham gia

hoạt động vào các lĩnh vực tương ứng.

‘ Thao tác nghiệp vụ : Các công việc trong thế giới thực được

chuyển vào lĩnh vực tương ứng.

Trang 13

1.2 Phần mềm (tt)

3 Cá thà h hầ hầ ề

3 Các thành phần phần mềm.

a Thành phần giao diện :

- Tiếp nhận các yêu cầu về việc sử dụng phần mềm của người sử

dụng ( như chọn công việc nhập dữ liệu nguồn )

dụng ( như chọn công việc,nhập dữ liệu nguồn, …)

- Trình bày kết quả phần mềm thực hiện.

- Điều khiển phần mềm hoạt động.

b Thà h hầ ử lý

b Thành phần xử lý :

- Kiểm tra tính hợp lệ của dữ liệu nguồn.

- Tra cứu, Tính toán, biến đổi cho ra kết quả.

Trang 14

‘ Là tập các chương trình phục vụ cho các chương trình khác như :

trình biên dịch, các trình tiện ích xử lý tệp, Hệ điều hành .

Trang 16

1 2 Phần mềm (tt)

5 Chất lượng phần mềm (các tiêu chuẩn phần mềm) :

a Tính đúng đắn : Không có sự cố, Đúng với yêu cầu thiết kế.

b Tính tiến hóa : Có thể thay đổi mở rộng các yêu cầu chức năng của

phần mềm.

c Tính tiện dụng : Dễ học, dễ sử dụng.

d Tí h hiệ ả Ki h tế tố độ bộ hớ

d Tính hiệu quả : Kinh tế, tốc độ, bộ nhớ.

e Tính khoa học : Về nội dung, hình thức

f Tính độc lập : Độc lập với thiết bị, với cấu trúc đối tượng phần mềm

quản lý.

Trang 17

1 2 Phần mềm (tt)

1.2 Phần mềm (tt).

6 Một số thuật ngữ liên quan:

- Phát triển phần mềm (Software development)

Tiến trình xây dựng phần mềm từ khi bắt đầu lập kếhoạch dự án phần mềm cho đến khi chuyển giao sảnphẩm

- Ứng dụng (Application).Ứng dụng (Application)

Tập các chương trình thực hiện tự động trên máy tính một số nhiệm vụ

- Kỹ sư phần mềm ( Software Engineer)

- Kỹ sư phần mềm ( Software Engineer)

Người áp dụng kiến thức phát triển phần mềm vào việc

tổ chức xây dựng một cách có hệ thống các ứng dụng.Người dùng (User )

- Người dùng (User )

Trang 18

1.3 Công nghệ phần mềm (Software Engineering )

1 Định nghĩa CNPM.

‘ Công nghệ :

Là cách sử dụng các công cụ, kỹ thuật trong việc giải quyết một bài t á à đó

bài toán nào đó.

‘ Công nghệ phần mềm là ngành khoa học nghiên cứu các nguyên

lý, các phương pháp,các công cụ, các thủ tục phục vụ cho việc xây dựng các phần mềm có chất lượng trong khoảng thời gian và chi phí hợp lý.

2 Các đối tượng nghiên cứu của CNPM.

a Qui trình công nghệ phần mềm

Hệ thố á i i đ t tiế t ì h hát t iể hầ ề

Hệ thống các giai đoạn trong tiến trình phát triển phần mềm

Trang 19

1.3 Công nghệ phần mềm (Software Engineering) (tt)

3 Các yếu tố trong CNPM.

a Con nguời :

Bao gồm : Nhà quản lý, nhà phân tích hệ thống, kỹ sư phần mềm,

ời kiể đị h hất l lậ t ì h iê ời dù khá h

người kiểm định chất lượng, lập trình viên, người dùng khách hàng,…

Cấu trúc nhóm tuỳ theo quy mô : nhóm nhỏ hoạt động có hiệu quả khoảng 5 – 8 người (tích hợp các khả năng có thể hổ trợ nhau).

Trang 20

1.3 Công nghệ phần mềm (Software Engineering )(tt)

Trang 21

1.4 Các qui trình công nghệ.

( ô hì h á ì h há ể hầ ề )

( Mô hình các quy trình phát triển phần mềm)

1 Mô hình tuần tự tuyến tính ( Linear Sequential Model)

( Các tên gọi khác :

- Mô hình thác nước (Waterfall Model)

ổ ể

- Vòng đời cổ điển (Classical life cycle) )

a Xác định yêu cầu bài toán

( mô tả dạng văn bản).

‘ M tiê Chỉ á ê ầ à hầ ề hải â d

‘ Mục tiêu : Chỉ ra các yêu cầu mà phần mềm phải xây dựng.

‘ Kết quả tiếp nhận : Thông tin về các hoạt động của thể giới thực.

‘ Kết quả chuyển giao ( cho giai đoạn sau ):

- Danh sách các yêu cầu

- Danh sách các yêu cầu.

- Thông tin chi tiết về các yêu cầu.

- Các qui định liên quan.

Trang 22

dạng mô hình ( Mô hình thế giới thực).

‘ Kết quả tiếp nhận : Kết quả chuyển giao của giai đoạn xác định

yêu cầu.

‘ Kết quả chuyển giao ( cho giai đoạn sau ):

‘ Kết quả chuyển giao ( cho giai đoạn sau ):

- Mô hình xử lý : Hệ thống các công việc trong thế giới thực cùng với quan hệ giữa chúng.

- Mô hình dữ liệu : Hệ thống thông tin cùng với quan hệ giữa

chúng.

Trang 23

1.4 Các qui trình công nghệ (tt)

c Thiết kế phần mềm :

‘ Mục tiêu : Tạo ra mô hình phần mềm (các thành phần phần mềm ).

‘ Kết quả tiếp nhận : Mô hình thế giới thực.

‘ Kết quả chuyển giao :

- Mô tả thành phần giao diện

- Mô tả thành phần xử lý.

Mô tả thà h hầ dữ liệ

- Mô tả thành phần dữ liệu.

- Mô tả kiến trúc phần mềm.

Trang 24

1.4 Các qui trình công nghệ (tt)

d Mã hóa.

‘ Mục tiêu : Tạo ra phần mềm đúng theo yêu cầu.

‘ Kết quả tiếp nhận : Mô hình phần mềm

‘ Kết quả tiếp nhận : Mô hình phần mềm.

‘ Kết quả chuyển giao :

Trang 25

1.4 Các qui trình công nghệ (tt)

e Kiểm chứng.

‘ Mục tiêu : Nâng cao độ tin cậy của phần mềm.

‘ Kết quả tiếp nhận : Phần mềm Mô hình phần mềm danh sách các

‘ Kết quả tiếp nhận : Phần mềm, Mô hình phần mềm, danh sách các

yêu cầu.

‘ Kết quả chuyển giao :

Phầ ề đã đ khẳ đị h ề hất l

- Phần mềm đã được khẳng định về chất lượng.

Trang 26

‘ Kết quả chuyển giao :

‘ Kết quả chuyển giao :

- Phần mềm đã hoạt động ổn định.

- Phần mềm đã được nâng cấp.

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 Mô hình này cơ bản dựa trên tài liệu nhất là trongcá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ỗicác hoạt động xây dựng phần mềm theo trình tự rõ ràng

Trang 29

Nhược điểm:

ƒ Đòi hỏi tất cả yêu cầu phần mềm phải được xác định rõràng ngay từ đầu dự án Nhưng đa số dự án cho thấy yêucầu phần mềm thường ẩn chứa các điểm không chắchắ

Nói chung, mô hình này thường ẩn chứa nhiều rủi ro mà

Trang 30

1.4 Các qui trình công nghệ (tt)

2 Mô hình tạo mẫu (Prototyping Model) :

a Tập hợp yêu cầu : Kỹ sư PM và khách hàng cùng xác định

các yêu cầu (được biết) các qui định liên quan

các yêu cầu (được biết), các qui định liên quan

b Thiết kế nhanh : Thiết kế những yêu cầu đã được biết để

tạo một bản mẫu sơ bộ

c Đánh giá của khách hàng : Bản mẫu được khách hàng

đánh giá để làm rõ thêm các yêu cầu khác của hệ thống

d Làm mịn bản mẫu : Thiết kế lại bản mẫu đã được kháchị ạ ợ

Trang 31

1.4 Các qui trình công nghệ (tt)

Tập hợp yêu cầu

và làm mịn

Thiết kế nhanh

Sản phẩm

Trang 32

Ưu điểm:

‘ Người sử dụng sớm hình dung ra chức năng và đặc điểmcủa hệ thống

‘ Cải thiện sự liên lạc giữa nhà phát triển và người sử dụng

Trang 33

Nhược điểm:

‘ Prototype thường được làm nhanh, thậm chí vội vàng,theo kiểu "hiện thực - sửa" và có thể thiếu sự phân tíchđánh giá một cách cẩn thận tất cả khía cạnh liên quan đến

hệ thống cuối cùng

‘ Nói chung mô hình này vẫn chưa thể cải thiện được việcloại trừ khoảng cách giữa yêu cầu và ứng dụng cuối cùng

Trang 34

1.4 Các qui trình công nghệ (tt)

3 Mô hình xoắn ốc ( Spiral Model )

a. Xác định mục tiêu, giải pháp,ràng buộc

b. Phân tích rủi ro

Trang 35

1.4 Các qui trình công nghệ (tt)

Tập hợp yêu cầu

dựa trên yêu cầu ban đầu

Kế hoạch Phân tích rủi ro

Phân tích rủi ro dựa trên phản ứng khách hàng

chỉnh Bản mẫu ban đầu Đánh giá của

Trang 36

Ưu điểm:

‘ Phân tích đánh giá rủi ro được xem xét như một phần thiết yếu trong mỗi vòng xoắn để tăng mức

độ tin cậy của dự án.

‘ Cho phép thay đổi tùy theo điều kiện thực tế dự

i ỗi ắ

án tại mỗi vòng xoắn.

Đây chính là mô hình tổng quát nhất, có thể xem

h là ô hì h tổ h á ô hì h khá

như là mô hình tổng hợp các mô hình khác.

Trang 37

Nhược điểm:

‘ Phức tạp và không phù hợp cho dự án nhỏ với ít rủi ro

‘ Cần có kỹ năng tốt về phân tích rủi ro

Trang 38

1.4 Các qui trình công nghệ (tt)

5 Nhận xét chung về các qui trình công nghệ

Tiến trình phát triển phần mềm bao gồm ba giai đoan cơ bản :

* Giai đoạn xác định :

Tập trung vào “làm cái gì ?” , bao gồm : Phân tích hệthông, lập kế hoạch dự án, phân tích yêu cầu

* Giai đoạn phát triển :

Tập trung vào “làm thế nào ?” , bao gồm : Thiết kế, mã hóa kiểm thử

hóa, kiểm thử

Trang 39

ƒ Chức năng được phân rã theo một hệ thống cấu trúc.

ƒ Tạo ra các mô hình chức năng, mô hình dữ liệu,

ƒ Ưu điểm:

9 Đơn giản, dẽ hiểu

9 Người phát triển phần mềm phân rã được chức năng, thấy được quá

trình họat động của phần mềm.

ƒ Khuyết điểm:

9 Khi chức năng bị thay đổi sẽ dẫn tới cấu trúc phần mềm thay đổi

9 Nhược điểm cơ bản là sự tách biệt giữa các chức năng và dữ liệu làm

Trang 40

1.5 Các phương pháp phát triển phần mềm

2 Phương pháp Hướng đối tượng :

ƒ Cấu trúc thông tin trong hệ thống thông tin là ít thay đổi

ƒ Khái niệm đối tượng được dùng để mô tả thông tinKhái niệm đối tượng được dùng để mô tả thông tin

ƒ Đối tượng: Dữ liệu – Tác vụ

9 Tăng cường tính tái sử dụng: Giữa vào quan hệ kế

thừa, làm giảm chi phí xây dựng lại

9 Tăng cường tính mở rộng: Không ảnh hưởng đến

cấu trúc thông tin do mở rộng chức năng có thể thực

Trang 41

1.6 Công cụ phát triển phần mềm

1.6 Công cụ phát triển phần mềm

ƒ Hệ thống phần mềm hổ trợ quá trình phát triển phầnphần mềm, hay trong từng giai đoạn gọi là CASE Tools( Computer Aided Software Engineering Tools) :

ƒ Chức năng của CASE trong mối giai đoạn phát triển PM

Giai đoạn Chức năng

Giai đoạn Chức năng

Phân tích - Soạn thảo sơ đồ: DFD, ERD,

Thiết kế - Sọan thảo sơ đồ quan hệ

- Phát sinh CSDL,

Mã hóa - Soạn thảo chương trình

- Trình dịch,

Trang 42

1.7 Các nội dung cơ bản của công nghệ phần mềm

1 Phân tích yêu cầu phần mềm (Software Requirement).

2 Thiết kế phần mềm (Software Design).

3 Xây dựng phần mềm (Software Construction).

4 Kiểm thử phần mềm (Software Testing).

5 Bảo dưỡng phần mềm (Software Evolution and Maintenance)

6 Quản lý cấu hình phần mềm (Software Configuration Management).

7 Q ả lý ô hệ hầ ề (S ft E i i M t)

7 Quản lý công nghệ phần mềm (Software Engineering Management)

8 Qui trình công nghệ phần mềm (Software Engineering Process)

9 Cơ sở hạ tầng công nghệ phần mềm (Software Engineering

Infrastructure) as uc u e)

Trang 43

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

1 Phân tích yêu cầu phần mềm.

ắ Khâu phân tích yêu cầu phần mềm liên quan tới việc thu thập, phân tích vμ quản lý các yêu cầu về phần mềm Mục đích của khâu nμy lμ phải đặc tả đ−ợc một cách rõ rμng các yêu cầu về tính năng sử dụng

phải đặc tả đ−ợc một cách rõ rμng các yêu cầu về tính năng sử dụng,

về kỹ thuật vμ chất l−ợng của phần mềm.

ắ Kiến thức về lĩnh vực nμy đ−ợc phân thμnh năm chủ đề sau:

- Quy trình công nghệ ‘Phân tích yêu cầu’

(Requirement Engineering Process)

- Xác định yêu cầu (Requirement Elicitation)

- Phân tích yêu cầu (Requirement Analysis)

- Hợp thức hóa yêu cầu (Requirement Validation)

- Quản lý yêu cầu (Requirement Management)

Trang 44

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

ắ Trong lĩnh vực nμy, các chủ đề kiến thức sau đã đ−ợc đề cập tới:

- Kiến thức cơ bản về thiết kế phần mềm (Software Design Basic Concepts)

- Kiến trúc phần mềm (Software Architecture)

- Chất l−ợng Thiết kế phần mềm (Software Design Quality)

Trang 45

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

3 Xây dựng phần mềm

ắ Xây dựng phần mềm lμ một khâu cơ bản của CNPM; lập trình viên phải xây dựng được phần mềm thỏa mãn yêu cầu đã được đặc tả vμ tuân thủ bản thiết kế của phần mềm Việc xây dựng phần mềm thường trải qua các bước sau : viết chương trình, kiểm tra vμ hợp thức hóa.

ắ Việc phân loại kiến thức được thực hiện theo hai góc độ (bổ sung cho nhau) về Xây dựng phần mềm Theo góc độ thứ nhất, có ba kiểu giao diện xây dựng phần mềm (Software Construction Interface) :

- Ngôn ngữ (Linguistic Construction Methods) Ngô gữ ( gu st c Co st uct o et ods)

- Toán học (Formal Construction Methods)

- Hiển thị (Visual Construction Methods)

Trang 46

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

ắ Theo góc độ thứ hai, mỗi kiểu nμy lại được phân loại theo bốn nguyên tắc tổ chức cơ bản có ảnh hưởng lớn tới cách thức tiến hμnh xây dựng phần mềm :

p

- Giảm độ phức tạp (Reduction in Complexity)

- Dự đoán trước những sự khác biệt (Anticipation of Diversity)

- Cấu trúc việc hợp thức hóa (Structuring for Validation)

- Áp dụng các tiêu chuẩn (Use of External Standards) Áp dụng các tiêu chuẩn (Use of External Standards).

Trang 47

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

4 Kiểm thử phần mềm

ắ Mục đích của Kiểm thử phần mềm lμ nhằm xác định xem phần mềm

có hoạt động theo đúng như yêu cầu đã được đặc tả hay không Việc kiểm tra phải được tiến hμnh một cách bμi bản tuân thủ theo một quy trình định trước Kỹ thuật kiểm thử vμ mức độ kiểm thử phải được lựa chọn dựa theo đặc trưng của từng phần mềm cũng như theo yêu cầu của dự án phát triển phần mềm.

ắ Liê tới lĩ h ự μ á hủ đề kiế thứ đã đượ á

ắ Liên quan tới lĩnh vực nμy, các chủ đề kiến thức sau đã được xác

định:

- Kiến thức cơ bản về Kiểm thử phần mềm (Basic Concepts and Definitions)

ể ử ầ ề

- Các mức kiểm thử phần mềm (Test Levels)

- Kỹ thuật kiểm thử (Test Techniques)

- Các phương pháp đo lường liên quan tới Kiểm thử phần mềm (Test Related Measures)

Trang 48

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

5 Bảo trỡ (Bảo dưỡng) phần mềm

ắ Bao gồm các hoạt động liên quan tới việc sửa đổi phầnmềm sau khi đã được bμn giao như: sửa chữa lỗi, bổ sungợ g , gthêm các tính năng, nâng cấp hiệu năng hay cải tiến chophù hợp với một môi trường vận hμnh mới Bản chất củacác hoạt động bảo trỡ không hoμn toμn giống như các hoạt

Trang 49

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

ắ Kiến thức cơ bản về bảo trỡ phần mềm được phân thμnhcác chủ đề sau:

9 Các hoạt động bảo trỡ (Maintenance Activities)

9 Quy trình trỡ (Maintenance Process)

9 Tổ chức bảo trỡ (Organization Aspect of Maintenance)

(Maintenance Cost and Maintenance Cost Estimation)

9 Các phương pháp đo lường trong bảo trỡ (Maintenance Measurements)

Trang 50

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

6 Quản lý cấu hình phần mềm

ắ Nhằm mục đích quản lý tất cả các ‘phần tử’ liên quan tới việc triển khai một dự án phần mềm Ví dụ nh−: báo cáo về yêu cầu phần mềm, bản thiết kế, các phiên bản khác nhau của một phần mềm, các báo cáo tiến độ, công cụ phát triển v.v., Việc khởi tạo, sửa chữa hay bổ sung các phần tử nμy phải đ−ợc quản lý một cách có hệ thống, duy trì

đ−ợc tính thống nhất, vμ cho phép truy cứu đ−ợc trong suốt quá trình triển khai dự án.

Trang 51

1.7 Cỏc nội dung cơ bản của cụng nghệ phần mềm

ắ Kiến thức về quản lý cấu hình đã đ−ợc xác định vμ phânthμnh các chủ đề nh− sau:

9 Quy trình quản lý cấu hình phần mềm (Software Configuration Quy trình quản lý cấu hình phần mềm (Software Configuration

Management Process)

9 Xác định cấu hình phần mềm (Software Configuration Identification)

9 Giám sát cấu hình phần mềm (Software Configuration Control)

9 Báo cáo hiện trạng cấu hình phần mềm (Software Configuration Status Accounting)

9 Kiểm tra cấu hình phần mềm (Software Configuration Auditing)

9 Quản lý việc phát hμnh vμ chuyển giao phần mềm (Software Release Management and Delivery)

Ngày đăng: 03/12/2014, 00:28

HÌNH ẢNH LIÊN QUAN

1. Sơ đồ luồng dữ liệu DFD ( Data Flow Diagram) : - giáo trình công nghệ phần mềm
1. Sơ đồ luồng dữ liệu DFD ( Data Flow Diagram) : (Trang 85)
3. Sơ đồ tổng quát cho từng loại yêu cầu: - giáo trình công nghệ phần mềm
3. Sơ đồ tổng quát cho từng loại yêu cầu: (Trang 92)
Sơ đồ luồng - giáo trình công nghệ phần mềm
Sơ đồ lu ồng (Trang 126)
Bảng : DOC GIA - giáo trình công nghệ phần mềm
ng DOC GIA (Trang 143)
Bảng : MUON_SACH - giáo trình công nghệ phần mềm
ng MUON_SACH (Trang 145)
Bảng mới (ưu tiên 2) - giáo trình công nghệ phần mềm
Bảng m ới (ưu tiên 2) (Trang 147)
Sơ đồ logic ( Có 4 bảng ) : - giáo trình công nghệ phần mềm
Sơ đồ logic ( Có 4 bảng ) : (Trang 155)
Sơ đồ dòng chảy - giáo trình công nghệ phần mềm
Sơ đồ d òng chảy (Trang 200)

TỪ KHÓA LIÊN QUAN

w