81
1 CÔNG NGHỆ PHẦN MỀM GIỚI THIỆU TỔNG QUAN VỀ CNPM Bài 1: Thời gian: 6 tiết KHOA CÔNG NGHỆ THÔNG TIN Giảng viên: ThS. Dƣơng Thành Phết Email: [email protected] Website: http://www.thayphet.net Tel: 0918158670 facebook.com/DuongThanhPhet

Bài 1: GIỚI THIỆU TỔNG QUAN VỀ CNPM - thayphet.netthayphet.net/application/upload/products/01.Bai01.GioithieuTQveCNPM.pdf · hướng dẫn cho phép từng bước thực

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

1

CÔNG NGHỆ PHẦN MỀM

GIỚI THIỆU TỔNG QUAN VỀ CNPM Bài 1:

Thời gian: 6 tiết

KHOA CÔNG NGHỆ THÔNG TIN

Giảng viên: ThS. Dƣơng Thành Phết

Email: [email protected]

Website: http://www.thayphet.net

Tel: 0918158670

facebook.com/DuongThanhPhet

2

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

NỘI DUNG

1. Các khái niệm cơ bản

2. Quy trình công nghệ phần mềm

3. Các phương pháp xây dựng phần mềm

4. Công cụ & môi trường phát triển phần mềm

5. Yêu cầu đối với kỹ sư phần mềm.

3

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1. CÁC KHÁI NIỆM CƠ BẢN

1.1.1. Phần mềm

1.1.2. Chất lượng phần mềm

1.1.3. Công nghệ Phần mềm

4

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.1. PHẦN MỀM

Chương trình máy tính: Các chỉ thị để máy tính làm việc.

Phần mềm: Các chương trình hỗ trợ thực hiện công iệc

theo lĩnh vực chuyên ngành.

Nhiệm vụ chính yếu của phần mềm: Thực hiện các công

việc dễ dàng và nhanh chóng.

Hoạt động của phần mềm: Mô phỏng lại các họat động

của thế giới thực.

Quá trình sử dụng một phần mềm: Thực hiện các công

việc trên máy tính để hoàn tất công việc.

Các khái niệm

5

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.1. PHẦN MỀM

Lớp phần mềm: Các phần mềm cùng lĩnh vực họat động.

Mục tiêu của ngành công nghệ phần mềm: Xây dựng

được các phần mềm có chất lượng, dễ dàng tích hợp.

Các khái niệm(tt)

6

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Nhóm 1: Phần mềm hệ thống.

Đảm nhận công việc tích hợp và điều khiển các thiết bị

phần cứng,

Tạo ra môi trường thuận lợi để các phần mềm khác và

người sử dụng thao tác trên đó

1.1.1. PHẦN MỀM

Phân loại:

7

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Nhóm 2: Phần mềm ứng dụng:

Được dùng để thực hiện công việc xác định,

Một chương trình đơn giản (như chương trình xem

ảnh)

Hay một nhóm các chương trình cùng tương tác với

nhau để thực hiện một công vịệc (như chương trình xử

lý bảng tính, chương trình xử lý văn bản ...)

1.1.1. PHẦN MỀM

Phân loại:

8

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Ngoài ra, phần mềm còn được chia làm 2 loại :

Sản phẩm đại trà: Phát triển để bán ra ngoài thị

trường.

Sản phẩm theo đơn đặt hàng: Phát triển theo yêu cầu

cho khách hàng riêng lẻ.

Ví dụ: Phần mềm chuyên dụng cho doanh nghiệp …

1.1.1. PHẦN MỀM

Phân loại:

9

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Thành phần Giao tiếp (giao diện)

Các phương thức về nhập/xuất dữ liệu và hình thức

trình bày, tổ chức lưu trữ dữ liệu

Mục tiêu đưa dữ liệu từ thế giới bên ngoài vào phần

mềm và ngược lại.

Tiếp nhận yêu cầu cần thực hiện, cung cấp nguồn dữ

liệu liên quan đến việc đó,…

Trình bày các kết quả thực hiện các yêu cầu cho người

dùng .

1.1.1. PHẦN MỀM

Kiến trúc phần mềm (gồm 3 thành phần):

10

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Thành phần dữ liệu

Các chức năng chuyên về đọc ghi dữ liệu cùng với mô

hình tổ chức dữ liệu tương ứng.

Mục tiêu chính là chuyển đổi dữ liệu giữa bộ nhớ chính

và bộ nhớ phụ. Cụ thể:

o Cho phép lưu trữ các kết quả đã xử lý.

o Cho phép truy xuất lại các dữ liệu đã lưu trữ phục

vụ cho các hàm xử lý tương ứng.

1.1.1. PHẦN MỀM

Kiến trúc phần mềm (gồm 3 thành phần):

11

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Thành phần xử lý

Các chức năng về xử lý tính toán, biến đổi dữ liệu.

Kiểm tra tính hợp lệ của dữ liệu nguồn theo ràng buộc

Xử lý tạo kết quả mong đợi theo quy định

Xuất kết quả qua giao diện hay lưu trữ lại

1.1.1. PHẦN MỀM

Kiến trúc phần mềm (gồm 3 thành phần):

12

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.1. PHẦN MỀM

Kiến trúc phần mềm (gồm 3 thành phần):

TT Thành phần Hàm Ý nghĩa Ghi chú

1 Thành phần

giao diện

Hàm nhập Nhập yêu cầu, dữ liệu

nguồn.

Cần xác định hình

thức nhập/xuất và tổ

chức dữ liệu tương

ứng Hàm xuất Xuất kết quả đã xử lý

2 Thành phần

xử lý

Hàm kiểm tra Kiểm tra tính hợp lệ của

dữ liệu.

Sử dụng hàm nhập,

đọc

Hàm xử lý Xử lý tính toán, phát sinh,

biến đổi trên dữ liệu

Sử dụng hàm nhập,

đọc, xuất, ghi

3 Thành phần

dữ liệu

Hàm đọc Đọc dữ liệu từ bộ nhớ

phụ vào bộ nhớ chính. Cần xác định cách

thức tổ chức lưu trữ

dữ liệu Hàm ghi Ghi dữ liệu từ bộ nhớ

chính vào bộ nhớ phụ

13

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

«Phần mềm tốt là phần mềm phải đáp ứng các chức

năng theo yêu cầu, có hiệu năng tốt, có khả năng bảo

trì, đáng tin cậy, và được người sử dụng chấp nhận».

Đáp ứng các tính chất sau:

Tính đúng đắn

Tính tiến hóa

Tính hiệu quả

Tính tiện dụng

Tính tương thích

Tính tái sử dụng

14

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

Tính đúng đắn:

Thực hiện đầy đủ và chính xác các yêu cầu.

Tính đúng đắn xác định trên cơ sở:

Tính đúng đắn của giải pháp xử lý / thuật toán,

Tính đúng đắn của tập mã lệnh hoặc nội dung của

chương trình,

Tính đúng đắn qua kiểm thử, việc áp dụng chương

trình trong một khoảng thời gian dài, trên diện rộng và

với tần suất sử dụng cao,

Tính tương đương của chương trình với thuật toán,

15

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

Tính tiến hóa

Sản phẩm có thể mở rộng, tăng cường về mặt chức

năng dễ dàng,

Người dùng khai báo thay đổi về quy định với phần

mềm tùy theo thay đổi trong thế giới thực liên quan

(như thay công thức tiền phạt …)

16

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

Tính hiệu quả:

Hiệu quả kinh tế, ý nghĩa, giá trị thu được.

Hiệu quả sử dụng (tốc độ xử lý của phần mềm …)

Hiệu quả kỹ thuật (tối ưu tài nguyên của máy tính:

CPU, bộ nhớ, không gian xử lý …)

17

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

Tính tiện dụng:

Tính cơ động và linh hoạt của sản phẩm

Cảm nhận (về mặt tâm lý) của người dùng về:

Dễ học, có giao diện trực quan tự nhiên.

Các chức năng của sản phẩm dễ thao tác …

18

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

Tính tƣơng thích:

Khả năng trao đổi dữ liệu với các phần mềm khác (như:

nhận danh sách nhân viên từ tập tin Excel …),

Gồm Giao tiếp nội bộ và giao tiếp bên ngoài.

19

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

Tính tái sử dụng:

Có thể áp dụng cho nhiều lĩnh vực theo nhiều chế độ

làm việc khác nhau,

Áp dụng về mặt kỹ thuật hay phối hợp về mặt sử dụng

với các phần mềm khác.

20

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.2. CHẤT LƢỢNG PHẦN MỀM

Tóm lại:

CHẤT LƢỢNG PHẦN MỀM

Tính đúng đắn

Tính tiến hóa

Tính hiệu quả

Tính tiện

dụng

Tính tương thích

Tính tái sử

dụng

21

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.3. CÔNG NGHỆ PHẦN MỀM

Sự ra đời:

Từ 1950, máy tính điện tử ra đời, các phần mềm được

tạo với số lượng rất ít, chủ yếu cho quốc phòng.

Đến 1960, phần mềm được tạo nhiều và ứng dụng rộng

rãi trong nhiều lĩnh vực.

Đến 1968 “cuộc khủng hoảng phần mềm” do:

Số lượng phần mềm tăng nhanh do sự phát triển

của phần cứng tăng khả năng xử lý, giá thành rẻ

Các phần mềm dùng mắc nhiều khuyết điểm như:

Thiếu chính xác, không ổn định, bảo trì nâng cấp

khó khăn, khó chuyển đổi dữ …

22

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.3. CÔNG NGHỆ PHẦN MỀM

Sự ra đời(tt):

Một hội nghị được triệu tập và đưa ra kết luận :

Tăng số lượng phần mềm sẽ tiếp diễn trong tương lai.

Các khuyết điểm của phần mềm do phương pháp và

cách thức tiến hành xây dựng:

Cảm tính: Mỗi cá nhân theo một cách thức riêng.

Thô sơ, đơn giản: Chỉ tập trung vào việc lập trình

không quan tâm các giai đoạn trước khi lập trình

(khảo sát hiện trạng, phân tích yêu cầu, thiết kế …).

Thủ công: Công cụ hỗ trợ chính khi xây dựng phần

mềm chỉ là trình biên dịch (compiler)

23

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.3. CÔNG NGHỆ PHẦN MỀM

Sự ra đời(tt):

Hội nghị đã khai sinh ngành khoa học mới là Công nghệ

Phần mềm với nhiệm vụ chính là nghiên cứu về các

phương pháp tiến hành xây dựng phần mềm.

24

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.3. CÔNG NGHỆ PHẦN MỀM

Định nghĩa:

“CNPM là một lĩnh vực nghiên cứu của tin học nhằm đề

xuất các nguyên lý, phương pháp, công cụ, cách tiếp cận

phục vụ cho việc thiết kế, hiện thực các phần mềm đạt

được đầy đủ các yêu cầu về chất lượng phần mềm”

Hay:

CNPM là một ngành khoa học nghiên cứu về 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ý.

25

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.3. CÔNG NGHỆ PHẦN MỀM

Đối tƣợng nghiên cứu:

Quy trình CNPM: Hệ thống các giai đoạn phát triển

phần mềm, xác định rõ mục tiêu, kết quả chuyển giao

cho giai đoạn kết tiếp.

Phƣơng pháp phát triển phần mềm: Hệ thống các

hướng dẫn cho phép từng bước thực hiện các giai

đoạn trong quy trình CNPM.

Công cụ và môi trƣờng phát triển phần mềm: Hệ

thống các phần mềm trợ giúp.

26

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.3. CÔNG NGHỆ PHẦN MỀM

Sự khác biệt giữa CNPM và khoa học máy tính

KHMT đề cập đến lý

thuyết và những vấn đề

cơ bản;

CNPM đề cập đến các hoạt

động xây dựng và đưa ra

một phần mềm hữu ích.

Khi phần mềm càng được phát triển mạnh thì các lý

thuyết của khoa học máy tính vẫn không đủ để đóng vai

trò là nền tảng hoàn thiện cho CNPM.

27

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.1.3. CÔNG NGHỆ PHẦN MỀM

Sự khác biệt giữa CNPM và công nghệ hệ thống(CNHT)

CNHT liên quan tới tất cả

khía cạnh của quá trình

phát triển hệ thống:

P.Cứng, P.Mềm và CN xử

lý. Kỹ sư hệ thống phải

thực hiện đặc tả, thiết kế,

tích hợp và triển khai.

CNPM là một phần của

quy trình này, có liên

quan tới việc phát triển

hạ tầng phần mềm, ứng

dụng và CSDL trong hệ

thống.

28

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.2. QUY TRÌNH CÔNG NGHỆ PHẦN MỀM

1.2.1. Bƣớc Xác định

Đây là bước hình thành dự án

Xác định được vai trò của phần mềm, ước lượng

công việc, lập lịch biểu và phân chia công việc.

Xác định được yêu cầu của khách hàng. Các yêu

cầu được thu thập đầy đủ, phân tích rộng và sâu.

Công cụ sử dụng: Là các sơ đồ phản ánh các thành

phần của hệ thống và mối liên quan giữa chúng.

29

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.2. QUY TRÌNH CÔNG NGHỆ PHẦN MỀM

1.2.2. Bƣớc Phát triển

Đặc tả: Dùng ngôn ngữ đặc tả mô tả những yếu tố

của chương trình: Giá trị nhập/ xuất/biến đổi,

Quan tâm giá trị vào/ra không quan tâm đến cấu trúc

và nội dung các thao tác cần thực hiện.

Xây dựng: Chuyển các đặc tả chương trình thành

sản phẩm phần mềm dựa trên NNLT cụ thể.

Kiểm thử: Chứng minh tính đúng đắn của chương

trình với các tập dữ liệu thử nghiệm khác nhau dựa

vào kết quả thu để đánh giá chương trình, nhằm kiểm

tra để phát hiện lỗi của chương trình....

30

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.2. QUY TRÌNH CÔNG NGHỆ PHẦN MỀM

1.2.3. Bƣớc Bảo trì (Vận hành)

Công tác quản lý việc triển khai và sử dụng PM.

Tất cả kết quả phân tích, thiết kế, hiện thực và hồ

sơ liên quan phải được lưu trữ và quản lý phục vụ

cho công việc bảo trì PM, trong suốt quá trình sống.

31

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3. MỘT SỐ MÔ HÌNH TRIỂN KHAI

1.3.1 Mô hình Thác nước

1.3.2 Mô hình Bản mẫu Phần mềm

1.3.3 Mô hình Xoắn ốc

Có nhiều dạng mô hình khác nhau để triển khai các

bước trong quá trình phát triển phần mềm.

Mỗi mô hình sẽ chia vòng đời của phần mềm khác

nhau, để đảm bảo quy trình phát triển thành công.

32

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.1. MÔ HÌNH THÁC NƢỚC

Mô hình tuần tự tuyến tính. Một trong các mô hình đầu

tiên và phổ biến.

Chia quá trình phát triển PM thành những giai đoạn

tuần tự nối tiếp. Mỗi giai đoạn có mục đích nhất định.

Kết quả của giai đoạn trước là đầu vào cho giai đoạn

tiếp theo sau. Mô hình thác nước có 5 giai đoạn:

33

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Xác định yêu cầu: Tiến hành khi có nhu cầu xây dựng PM.

Mục tiêu: Xác định chính xác các yêu cầu cho P.Mềm.

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

Kết quả chuyển giao: Các yêu cầu (công việc sẽ thực

hiện trên máy tính) cùng với các thông tin mô tả chi tiết

về các yêu cầu (cách thức thực hiện)

1.3.1. MÔ HÌNH THÁC NƢỚC

34

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Phân tích: Tiến hành ngay sau việc xác định yêu cầu.

Mục tiêu: Mô tả yêu cầu bằng mô hình

Kết quả nhận: Các yêu cầu cùng thông tin liên quan.

Kết quả chuyển giao:

Mô hình xử lý (các công việc và Quan hệ)

Mô hình dữ liệu (các thông tin được sử dụng và QH)

Mô hình khác (không gian, thời gian, con người…)

1.3.1. MÔ HÌNH THÁC NƢỚC

35

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Thiết kế: Tiến hành sau khi kết thúc việc phân tích.

Mục tiêu: Mô tả các thành phần của phần mềm.

Kết quả 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: Các hàm/CTDL.

Mô tả thành phần xử lý: Các hàm kiểm tra xử lý.

Mô tả thành phần dữ liệu: Các hàm đọc/ghi...

1.3.1. MÔ HÌNH THÁC NƢỚC

36

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Hiện thực: Tiến hành ngay sau kết thúc việc thiết kế.

Mục tiêu: Tạo lập phần mềm theo yêu cầu.

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

Kết quả chuyển giao: Chương trình nguồn của phần

mềm với CTDL tương ứng và chương trình thực hiện.

1.3.1. MÔ HÌNH THÁC NƢỚC

37

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Kiểm thử: Tiến hành sau kết quả hiện thực (lập trình).

Mục tiêu: Tăng độ tin cậy của phần mềm.

Kết quả nhận: các yêu cầu, mô hình phần mềm,…

Kết quả chuyển giao: Phần mềm có độ tin cậy cao.

1.3.1. MÔ HÌNH THÁC NƢỚC

38

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Bảo trì: Công việc của giai đoạn bao gồm việc cài đặt và

vận hành phần mềm trong thực tế.

Mục tiêu: Đảm bảo phần mềm vận hành tốt

Kết quả nhận: Phần mềm đã hoàn thành

Kết quả chuyển giao: Các phản ánh của khách hàng

trong quá trình sử dụng.

1.3.1. MÔ HÌNH THÁC NƢỚC

39

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Nhận xét:

Dễ phân chia quá trình xây dựng PM thành những giai

đoạn độc lập.

Các dự án lớn ít khi tuân theo dòng chảy tuần tự của

mô hình (cần lặp lại các bước để nâng chất lượng,

khách hàng ít tuyên bố hết các yêu cầu trong giai đoạn

phân tích).

Rất khó thay đổi khi đã thực hiện xong một giai đoạn,

khó thay đổi các yêu cầu theo ý khách hàng.

Phương pháp này chỉ thích hợp đã hiểu rất rõ các yêu

cầu của khách hàng, những thay đổi sẽ được giới hạn.

1.3.1. MÔ HÌNH THÁC NƢỚC

40

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

Chú ý:

Mô hình thác nước có thể được cải tiến bằng cách cho

phép quay lui khi phát hiện lỗi trong giai đoạn phía trước.

1.3.1. MÔ HÌNH THÁC NƢỚC

41

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.2. MÔ HÌNH BẢN MẪU

Tương tự như mô hình thác nước với việc bổ sung

vào giai đoạn thực hiện phần mềm mẫu.

Có thể tiến hành lặp lại mà không nhất thiết theo trình

tự nhất định.

42

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.2. MÔ HÌNH BẢN MẪU

Ngay sau giai đoạn Xác định yêu cầu phân tích, sẽ

đưa ra một bản thiết kế sơ bộ

Tiếp theo tiến hành hiện thực bản mẫu đầu tiên, rồi

chuyển cho người sử dụng.

Bản mẫu này chỉ nhằm để mô tả cách thức phần mềm

hoạt động cũng như cách người dùng tương tác.

43

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.2. MÔ HÌNH BẢN MẪU

Người dùng sau khi xem xét sẽ phản hồi thông tin cần

thiết lại cho nhóm phát triển.

Nếu người dùng đồng ý với bản mẫu, nhóm phát triển

sẽ tiến hành hiện thực. Ngược lại, phải quay lại giai

đoạn xác định yêu cầu.

Lặp lại liên tục cho đến khi người sử dụng đồng ý với

bản mẫu do nhà phát triển đưa ra.

44

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.2. MÔ HÌNH BẢN MẪU

Là một hướng tiếp cận tốt khi các yêu cầu chưa rõ

ràng.

Tính cấu trúc không cao dễ mất tin tưởng của khách

hàng, và thiếu tầm nhìn của cả quy trình;

Chỉ nên áp dụng với những hệ thống có tương tác ở

mức độ nhỏ/vừa; một phần của hệ thống lớn; hoặc có

thời gian chu kỳ tồn tại ngắn.

45

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.2. MÔ HÌNH XOẮN ỐC

Là sự kết hợp của mô hình bản mẫu thiết kế và mô

hình thác nước được lặp lại nhiều lần.

46

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.2. MÔ HÌNH XOẮN ỐC

Ở lần lặp tiếp theo, hệ thống sẽ được tìm hiểu và xây

dựng hoàn thiện hơn ở lần lặp trước đó

Yêu cầu của người dùng ngày càng rõ ràng hơn, và

các bản mẫu phần mềm ngày một hoàn thiện hơn.

47

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.3.2. MÔ HÌNH XOẮN ỐC

Ngoài ra, ở cuối mỗi lần lặp sẽ có thêm công đoạn

phân tích mức độ rủi ro để quyết định xem có nên đi

tiếp theo hướng này hay không.

Mô hình này phù hợp với các hệ thống phần mềm lớn

do có khả năng kiểm soát rủi ro ở từng bước tiến hóa.

48

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.1. Khái niệm

Để xây dựng PM có thể áp dụng nhiều phương pháp.

Mỗi phương pháp:

Có ưu khuyết điểm riêng, phù hợp riêng từng loại

phần mềm.

Có các hướng dẫn cụ thể những công việc cần

thực hiện trong từng giai đoạn

Quy định những cách thức khác nhau để trình bày

các kết quả thu được; để các thành viên tham gia

có thể trao đổi thông tin trong việc xây dựng PM.

49

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.2. Phân loại

Các phương pháp xây dựng P.Mềm chia 2 nhóm :

Phương pháp xây dựng: Phương pháp hướng

chức năng; hướng dữ liệu; hướng đối tượng

Phương pháp tổ chức quản lý: Xây dựng phương

án, Tổ chức nhân sự, Ước lượng rủi ro-chi phí,

Lập và theo dõi kế hoạch triển khai.

50

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiếp cận từ trên xuống (top-down)

Cách giải quyết vấn đề theo hướng phân tích.

Bắt đầu với những thành phần chính của hệ thống.

Sau đó, được phân tích thành các thành phần chi

tiết và cụ thể hơn.

Quá trình phân tích sẽ kết thúc khi kết quả thu

được có mức độ phức tạp đúng với ý muốn.

51

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiếp cận từ dƣới lên (bottom-up)

Cách giải quyết vấn đề theo hướng tổng hợp

(ngược lại với phương pháp từ trên xuống).

Tiến hành xây dựng những thành phần chi tiết dự

tính là sẽ có trong hệ thống.

Sau đó, sẽ kết hợp các thành phần chi tiết này lại

với nhau để tạo nên các thành phần chính.

52

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành phƣơng pháp hƣớng chức năng

Thực hiện dựa trên các chức năng mà hệ thống

cần thực hiện, chú trọng đến thành phần xử lý với

các thao tác tính toán, phát sinh, biến đổi …

Phương pháp chung để giải quyết vấn đề là áp

dụng nguyên lý “chia để trị”.

Sẽ chia các công việc lớnhành các công việc nhỏ

hơn để ta có thể tiến hành xây dựng hoàn chỉnh

53

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành phƣơng pháp hƣớng chức năng

Chú trọng cách giải quyết vấn đề nhưng không có

khả năng che dấu các thông tin trạng thái.

Dẫn đến các chức năng trong hệ thống sẽ không

tương thích khi thực hiện thay đổi các thông tin.

Cách tiếp cận này chỉ thích hợp khi trong hệ thống có

rất ít thông tin cần phải quản lý và chia sẻ giữa các

chức năng với nhau.

54

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành Phƣơng pháp Hƣớng Chức năng

Để mô hình hóa cách xử lý thông tin, ta dùng lƣợc

đồ dòng dữ liệu (DFD, Data Flow Diagrams)

55

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành Phƣơng pháp Hƣớng Dữ liệu

Phương pháp Hướng DL chú trọng nhiều đến thành

phần DL cần phải xử lý là tổ chức dữ liệu, khối lượng

lưu trữ, tốc độ truy xuất …

Bắt đầu với việc thiết kế các CTDL, sau đó mới tiến

hành thiết kết các thao tác để vận hành.

Chỉ thích hợp cho loại phần mềm có chức năng chính

là lưu trữ và thao tác trên các loại dữ liệu.

Hạn chế là không quan tâm đến các chức năng mà hệ

thống cần phải đáp ứng, có khả năng không có đầy đủ

các chức năng cần thiết.

56

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành Phƣơng pháp Hƣớng Dữ liệu

Kết quả thu được sau khi thiết kế theo phương pháp

hướng dữ liệu là mô hình thực thể kết hợp (Entity

Relationship Diagram, ERD)

57

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành Phƣơng pháp Hƣớng Đối tƣợng

Là sự kết hợp của PP Hướng Dữ liệu và PP Hướng

Chức năng.

Chú trọng đến cả thành phần dữ liệu và chức năng

của hệ thống.

Một hệ thống phần mềm là tập hợp các đối tượng có

khả năng tương tác với nhau. Các đối tượng chính là

những sự vật và hiện tượng vật lý.

Mỗi đối tượng có dữ liệu riêng và các thao tác mà đối

tượng có thể thực hiện.

58

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành Phƣơng pháp Hƣớng Đối tƣợng

Các đối tượng liên lạc, trao đổi thông tin bằng cách

gửi các thông điệp. các thông điệp xử lý được gọi là

giao diện của đối tượng.

Khi đó mọi thao tác liên quan đến các đối tượng được

phải thực hiện thông qua giao diện của đối tượng.

59

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.4. CÁC PHƢƠNG PHÁP XÂY DỰNG P.MỀM

1.4.3. Các phƣơng pháp xây dựng phần mềm

Cách tiến hành Phƣơng pháp Hƣớng Đối tƣợng

Điều này giúp ta đảm bảo rằng các thông tin bên trong

các đối tượng đưọc bảo vệ một cách chắc chắn.

60

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.5. C.CỤ & M.TRƢỜNG PHÁT TRIỂN P.MỀM

1.5.1. Mở đầu

Là các phần mềm hỗ trợ trong quá trình xây dựng PM-

CASE (Computer Aided Software Engineering tool).

Hỗ trợ cho một/một số giai đoạn gọi là môi trƣờng phát

triển phần mềm (SDE, Software Development

Environment), gồm 2 hình thức chính:

Cho phép lưu / cập nhật kết quả chuyển giao với

phương pháp nào đó.

Phát sinh ra kết quả chuyển giao cho giao đoạn sau.

61

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.5. C.CỤ & M.TRƢỜNG PHÁT TRIỂN P.MỀM

1.5.2. Phần mềm hỗ trợ thực hiện các giai đoạn

Phần mềm hỗ trợ phân tích:

Soạn thảo các mô hình, Ánh xạ vào mô hình luận lý

Các phần mềm: WinA&D, Analyst Pro, Rational

Rose …

Phần mềm hỗ trợ thiết kế:

Soạn thảo các mô hình luận lý, Ánh xạ vào mô hình

vật lý

Các phần mềm: Power Designer, Oracle Designer,

Rational Rose …

62

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.5. C.CỤ & M.TRƢỜNG PHÁT TRIỂN P.MỀM

Phần mềm hỗ trợ lập trình:

Quản lý các phiên bản (dữ liệu, chương trình

nguồn, giao diện), biên dịch

Các phần mềm: Visual Studio Net (Basic, C#,

C++), Borland …

Phần mềm hỗ trợ kiểm chứng:

Phát sinh tự động các bộ dữ liệu thử nghiệm, phát

hiện lỗi

Các phần mềm: WinRuner, QuickTestPro …

63

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.5. C.CỤ & M.TRƢỜNG PHÁT TRIỂN P.MỀM

1.5.3. Phần mềm hỗ trợ tổ chức, quản lý việc triển khai

Phần mềm xây dựng phƣơng án:

Tạo lập phương án, dự đoán rủi ro, tính chi phí

Các phần mềm: MS Project, Visio, Rational Rose …

Phần mềm lập kế hoạch

Xác định các công việc, phân công, lập lịch biểu,

theo dõi thực hiện

Các phần mềm: MS Project, Visio

64

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

1.6. 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.

65

http://www.thayphet.net C

ÔN

G N

GH

Ệ P

HẦ

N M

ỀM

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

Một số nguyên tắc mà kỹ sư PM phải thực hiện:

Sự tin cẩn: Tạo được sự tin cẩn từ phía nhân viên và

khách hàng.

Năng lực: Không nên trình bày sai khả năng của mình,

không nên nhận những công việc vượt quá khả năng.

Các quyền về tài sản trí tuệ: Nên quan tâm về tài sản

trí tuệ, bằng sáng chế, quyền tác giả ….

Lạm dụng máy tính: Không nên sử dụng các kỹ năng

của mình để gây ảnh hưởng tới người khác (phát tán

virus), làm những việc tầm thường (chơi Game)...

66

http://www.thayphet.net

66

TÓM TẮT

1. Những khái niệm:

Phần mềm (khái niệm, phân loại, kiến trúc)

Chất lượng phần mềm (tính đúng đắn, tính tiến

hóa, tính hiệu quả, tính tiện dụng, tính tương

thích, tính tái sử dụng)

CN phần mềm (nguồn gốc, định nghĩa …)

2. Quy trình CNPM: Bước xác định; Bước phát triển;

Bước bảo trì

3. Một số mô hình triển khai xây dựng phần mềm

(Thác nước, Bản mẫu Phần mềm, Xoắn ốc)

67

http://www.thayphet.net

67

TÓM TẮT

4. Các phương pháp xây dựng phần mềm:

Tổng quan (Khái niệm, Phân loại),

Phương pháp xây dựng phần mềm (Cách tiếp

cận, tiến hành)

5. Công cụ & môi trường phát triển phần mềm

Phần mềm hỗ trợ thực hiện các giai đoạn (phân

tích, thiết kế, lập trình, kiểm chứng)

Phần mềm hỗ trợ tổ chức, quản lý việc triển khai

(Xây dựng phương án, Lập kế hoạch)

6. Yêu cầu đối với kỹ sư phần mềm: Sự tin cẩn, năng

lực, quyền tài sản trí tuệ.

68

http://www.thayphet.net

68

BÀI TẬP

1. Phụ lục A trang 170

2. Phụ lục B trang 179

69

http://www.thayphet.net

69

TRẮC NGHIỆM

1/. Công nghệ phần mềm có từ tiếng Anh là

A/. software engineering

B/. engineering software

C/. software testing

D/. software developer

70

http://www.thayphet.net

70

TRẮC NGHIỆM

2/. Mục tiêu của công nghệ phần mềm là để:

A/. Thực thi phần cứng tốt hơn

B/. Chỉnh sửa lỗi phần mềm

C/. Có thể sử dụng lại phần mềm

D/. Tạo sản phẩm phần mềm chất lượng hơn

71

http://www.thayphet.net

71

TRẮC NGHIỆM

3/. Theo thống kê từ những thách thức đối

với CNPM thì lỗi nhiều nhất là do:

A/. Kiểm tra và bảo trì

B/. Thiết kế

C/. Lập trình

D/. Phân tích yêu cầu

72

http://www.thayphet.net

72

TRẮC NGHIỆM

4/. Kỹ sư phần mềm không cần

A/. Kiến thức về phân tích thiết kế hệ thống.

B/. Kiến thức về cơ sở dữ liệu.

C/. Lập trình thành thạo bằng một ngôn ngữ

lập trình.

D/. Kinh nghiệm quản lý dự án phần mềm.

73

http://www.thayphet.net

73

TRẮC NGHIỆM

5/. SDLC là viết tắt của:

A. Spiral Development Linear Cycle

B. System Development Life Cycle

C. Software Development Line Cycle

D. Sequential Development Linear Cycle

74

http://www.thayphet.net

74

TRẮC NGHIỆM

6/. Nếu yêu cầu là dễ hiểu và xác định được

thì mô hình nào là thích hợp nhất để phát

triển hệ thống:

A. Mô hình thác nước (waterfall model)

B. Mô hình bản mẫu (prototyping)

C. Mô hình xoắn ốc (spiral model)

D. Mô hình phát triển nhanh (RAD)

75

http://www.thayphet.net

75

TRẮC NGHIỆM

7/. Hình ảnh minh họa sau thể hiện các hoạt động

của mô hình phát triển phần mềm nào?

A. Mô hình bản mẫu(prototyping)

B. Mô hình thác nước (waterfall model)

C. Mô hình xoắn ốc (spiral model)

D. Mô hình phát triển nhanh (RAD)

76

http://www.thayphet.net

76

TRẮC NGHIỆM

8/. Mô hình prototyping là:

A. Mô hình rất thích hợp khi các yêu cẩu hệ thống được

xác định rõ ràng

B. Mô hình thường dùng khi khách hàng không thể xác

định được yêu cầu rõ ràng

C. Mô hỉnh tốt nhất cho những dự án có nhiều đội phát

triển cùng tham gia

D. Mô hình nhiều rủi ro nên ít khi tạo ra sản phẩm có

giá trị

77

http://www.thayphet.net

77

TRẮC NGHIỆM

9/. Hình ảnh minh họa sau thể hiện các hoạt động

của mô hình phát triển phần mềm nào?

A. Mô hình bản mẫu(prototyping)

B. Mô hình thác nước (waterfall model)

C. Mô hình xoắn ốc (spiral model)

D. Mô hình phát triển nhanh (RAD)

78

http://www.thayphet.net

78

TRẮC NGHIỆM

9/. Hình ảnh minh họa sau thể hiện các hoạt động

của mô hình phát triển phần mềm nào?

A. Mô hình bản mẫu(prototyping)

B. Mô hình thác nước (waterfall model)

C. Mô hình xoắn ốc (spiral model)

D. Mô hình phát triển nhanh (RAD)

79

http://www.thayphet.net

79

TRẮC NGHIỆM

10/. Hình ảnh minh họa sau thể hiện các hoạt

động của mô hình phát triển phần mềm nào?

A. Mô hình bản mẫu(prototyping)

B. Mô hình thác nước (waterfall model)

C. Mô hình xoắn ốc (spiral model)

D. Mô hình phát triển nhanh (RAD)

80

http://www.thayphet.net

80

TRẮC NGHIỆM

11/. Mô hình phát triển phần mềm mà tiến trình

tiến hoá vốn cặp đôi bản chất lặp của làm bản

mẫu với các khía cạnh hệ thống và có kiểm soát

của mô hình trình tự tuyến tính. Là mô hình phát

triển phần mềm nào sau đây?

A. Mô hình tăng trưởng (incremental model)

B. Mô hình kĩ thuật thế hệ thứ tư (Fourth

generation techniques - 4GT)

C. Mô hình xoắn ốc (spiral model)

D. Mô hình RAD (Rapid application development)

81

http://www.thayphet.net

81

TRẮC NGHIỆM

12/. Phương pháp xây dựng phần mềm mà cách giải quyết

vấn đề theo hướng phân tích, Bắt đầu với những thành

phần chính của hệ thống., Sau đó, được phân tích thành

các thành phần chi tiết và cụ thể hơn.

A. Cách tiếp cận từ dưới lên

B. Cách tiếp cận từ trên xuống

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

D. Phương pháp hướng dữ liệu