Tải bản đầy đủ (.pdf) (49 trang)

Giáo trình mô đun Công nghệ phần mềm (Nghề: Tin học ứng dụng - Trình độ: Trung cấp) - Trường CĐ Kinh tế - Kỹ thuật Bạc Liêu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.79 MB, 49 trang )

UỶ BAN NHÂN DÂN TỈNH BẠC LIÊU
TRƯỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT
Ý ẢNH BẰNG PHOTOSHOP
NGÀNH/NGHỀ: TIN HỌC ỨNG DỤNG
TRÌNH ĐỘ:

GIÁO TRÌNH

MƠN HỌC/MƠ ĐUN: CƠNG NGHỆ PHẦN MỀM
NGÀNH/NGHỀ: TIN HỌC ỨNG DỤNG
TRÌNH ĐỘ: TRUNG CẤP

Ban hành kèm theo Quyết định số:
/QĐ-… ngày…….tháng….năm
......... …………........... của……………………………….

BẠC LIÊU, NĂM 2021


LỜI NĨI ĐẦU
Cơng nghệ phần mềm là một ngành khơng thể thiếu được trong lĩnh vực Công
nghệ thông tin. Ngày nay, chúng ta có thể sản xuất ra các hệ thống phần mềm lớn và
hữu ích là nhờ phần lớn vào sự phát triển của Công nghệ phần mềm.
Môn học này giúp học sinh có thể hiểu được những yêu cầu công việc cần
phải làm ở mỗi giai đoạn của quy trình, để có thể đảm trách cơng việc ở một trong
các giai đoạn làm phần mềm.
Trong phạm vi đề cương bài giảng môn Công nghệ phần mềm sẽ giới thiệu
chi tiết hơn nữa là các nội dung về vòng đời phần mềm, các mơ hình phát triển phần
mềm và các pha cần thực hiện trong quá trình xây dựng một hệ thống phần mềm,
bao gồm: lập kế hoạch, khảo sát, phân tích, thiết kế, cài đặt, kiểm thử, tích hợp, bảo
trì … Để từ đó, giúp học sinh có được những khái niệm căn bản về Công nghệ phần


mềm và có khả năng áp dụng để xây dựng một hệ thống phần mềm cụ thể.
Mặc dầu có cố gắng nhưng đề cương bài giảng vẫn còn nhiều hạn chế nên đề
cương khơng tránh khỏi những thiếu sót, rất mong nhận được sự đóng góp ý kiến
của người đọc.
Bạc Liêu, ngày 06 tháng 10 năm 2021

Trang 2


MỤC LỤC
BÀI 1 ......................................................................................................................... 5
BÀI MỞ ĐẦU ........................................................................................................... 5
1. Một số khái niệm ........................................................................................................ 5
1.1. Phần mềm ............................................................................................................ 5
1.3. Công nghệ Phần mềm ........................................................................................... 7
1.4. Khoa học Máy tính và Cơng nghệ hệ thống ............................................................. 8
2. Các đặc tính phần mềm ............................................................................................... 8
3. Tiêu chí của một phần mềm tốt .................................................................................... 9

Bài 2 ........................................................................................................................ 11
QUY TRÌNH XÂY DỰNG PHẦN MỀM .............................................................. 11
1. Một số quy trình xây dựng phần mềm ......................................................................... 11
1.1. Mơ hình thác nước .............................................................................................. 11
1.2. Mơ hình bản mẫu................................................................................................ 12
1.3. Mơ hình phát triển lặp lại, tăng dần ...................................................................... 12
1.4. Mơ hình xoắn ốc ................................................................................................ 13
2. Các hoạt động trong quy trình xây dựng phần mềm ...................................................... 14
2.1. Đặc tả phần mềm ................................................................................................ 14
2.2. Thiết kế và cài đặt .............................................................................................. 15
2.3. Đánh giá phần mềm ............................................................................................ 16

2.4. Cải tiến phần mềm .............................................................................................. 16

Bài 3 ........................................................................................................................ 18
PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU .................................................................. 18
1. Xác định yêu cầu ...................................................................................................... 18
1.1. Yêu cầu ............................................................................................................. 18
1.2. Phân loại yêu cầu................................................................................................ 18
2. Quy trình xác định yêu cầu ........................................................................................ 21
2.1. Phân tích khả thi ................................................................................................. 21
2.2. Phát hiện và phân tích yêu cầu ............................................................................. 22
3. Đánh giá yêu cầu ...................................................................................................... 25
3.1. Khái niệm đặc tả................................................................................................. 26
3.2. Tại sao phải đặc tả .............................................................................................. 27
3.3. Phân loại các kỹ thuật đặc tả ................................................................................ 27

Bài 4 ........................................................................................................................ 29
THIẾT KẾ PHẦN MỀM......................................................................................... 29
1. Qui trình thiết kế....................................................................................................... 29
1.1. Khái niệm thiết kế .............................................................................................. 29
1.2. Vai Trò .............................................................................................................. 29
1.3. Nguyên lý thiết kế .............................................................................................. 30
1.4. Cấu trúc thiết kế ................................................................................................. 30
1.5. Phân rã hệ thống ................................................................................................. 30
1.6. Các đặc điểm trong thiết kế phần mềm.................................................................. 31
2. Thiết kế kiến trúc ...................................................................................................... 33
2.1. Các vấn đề thiết kế kiến trúc ................................................................................ 33
2.2. Các đặc điểm của kiến trúc hệ thống ..................................................................... 33
3. Thiết kế giao diện người dùng .................................................................................... 34

Bài 5 ........................................................................................................................ 36

KIỂM THỬ PHẦN MỀM ....................................................................................... 36
1. Một số khái niệm ...................................................................................................... 36
2. Quy trình kiểm thử phần mềm .................................................................................... 37
Trang 3


3. Các phương pháp kiểm thử phần mềm ........................................................................ 40
4. Nguyên lý kiểm thử phần mề ..................................................................................... 42
4.1 Kiểm thử đưa ra lỗi .............................................................................................. 43
4.2 Kiểm thử cạn kiệt là không thể.............................................................................. 43
4.3 Kiểm thử càng sớm càng tốt ................................................................................. 43
4.4 Sự tập trung của lỗi.............................................................................................. 43
4.5 Nghịch lý thuốc trừ sâu ........................................................................................ 44
4.6. Kiểm thử phụ thuộc vào ngữ cảnh ........................................................................ 44
4.7. Khơng có lỗi – Sai lầm ........................................................................................ 44
BÀI 6 .......................................................................................................................... 45
TRIỂN KHAI VÀ BẢO TRÌ ......................................................................................... 45
1. Khái niệm............................................................................................................. 45
2. Các hình thái bảo trì .............................................................................................. 45
3. Trình tự nghiệp vụ bảo trì....................................................................................... 46
4. Những khó khăn trong bảo trì ................................................................................. 48

TÀI LIỆU THAM KHẢO ....................................................................................... 48

Trang 4


BÀI 1
BÀI MỞ ĐẦU
Giới thiệu:

MỤC TIÊU:
+ Trình bày được các khái niệm cơ bản về công nghệ phần mềm và phân loại
phần mềm.
+ Nêu đặc tính và tiêu chí của một phần mềm.
+ Phân loại các phần mềm ứng dụng trong thực tế.
+ Nhận định quy trình hoạt động của công nghệ phầm mềm.
+ Sau khi học nội dung này học sinh ứng dụng phần mềm phù hợp trong thị
trường công nghệ.
1. Một số khái niệm
1.1. Phần mềm
1.1.1. Khái niệm
Phần mềm là các Chương trình máy tính và những tài liệu liên quan đến nó
như: các u cầu, mơ hình thiết kế, tài liệu hướng dẫn sử dụng… Do đó, chúng ta
thấy rằng đặc điểm của phần mềm là trừu tượng.
Trong cách nhìn này, người ta tiếp cận theo quan điểm hệ thống. Mức trên
nhất, phần mềm là một hệ thống phức tạp, dưới nó là các hệ thống con. Và dưới các
hệ thống con là các Chương trình và dưới nữa là các mô đun và các thủ tục con.
Hệ thống

Hệ thống con

Hệ thống con

Các tệp chính

Job unit


Bài trình


Bài trình

Jobstep unit

Tệp trung gian


Mơ đun

Đối số

Mơ đun
Đối số

Thủ tục con

Member unit

Common Module

Hình 1.1. Kiến trúc phân cấp phần mềm

Trang 5


Phần mềm (software): là một tập hợp các câu lệnh được viết bằng một hoặc
nhiều 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 tốn nào đó.
1.1.2. Các sản phẩm phần mềm
Chia thành 2 loại:

- Sản phẩm đại trà
Ví dụ:

Hình 1.2: Sản phẩm đại trà phần mềm kế toán.
- Sản phẩm theo đơn đặt hàng.
Ví dụ: Phần mềm quản lý nhà trường;
Phần mềm kiểm định chất lượng vắc xin, sinh phẩm;
Phần mềm quản lý thi trắc nghiệm;
Hệ thống nhận gửi công văn qua mạng.
- Một phần mềm mới có thể được tạo ra bằng cách phát triển các Chương trình
mới, thay đổi và điều chỉnh các hệ thống phần mềm đại trà hoặc tái sử dụng lại các
phần mềm đã tồn tại.
- Phần mềm là một sản phẩm dùng cho tính tốn, tạo, quản lý, thu nhận, biến
đổi, thể hiện hay là truyền thông tin.
- Phần mềm là một phương tiện tạo sản phẩm.
- Hỗ trợ hay cung cấp trực tiếp chức năng hệ thống.
- Điều khiển những Chương trình khác (hệ điều hành).
- Thực hiện trong truyền thông (phần mềm mạng).
1.2. Phân loại phần mềm
Phân loại phần mềm được định nghĩa như sự định hướng các công việc của
một ứng dụng, ví dụ như theo kiểu hướng giao dịch, hỏi đáp, trợ giúp quyết định...
1.2.1. Phần mềm hệ thống
Phần mềm với chức năng cung cấp môi trường thao tác dễ dàng cho người sử
dụng nhằm tăng hiệu năng xử lý của phần cứng, quản lý các tiến trình, các tài nguyên
Trang 6


của hệ thống, ví dụ như các Hệ điều hành các máy tính, Hệ điều hành mạng, … Rõ
ràng với loại phần mềm này thì yêu cầu quan trọng là tính chính xác, độ ổn định cao
và tính dung lỗi.

1.2.2. Phần mềm ứng dụng
Dùng để xử lý nghiệp vụ thích hợp nào đó như quản lý, kế tốn, . . ., đáp ứng
yêu cầu nghiệp vụ người dùng. Người ta nói những phần mềm này là phần mềm làm
ra sản phẩm thông tin.
Một cách phân loại khác:
- Phần mềm hệ thống;
- Phần mềm thời gian thực;
- Phần mềm nghiệp vụ;
- Phần mềm tính tốn Khoa học và Kỹ thuật;
- Phần mềm nhúng.
1.3. Công nghệ Phần mềm
Khái niệm về Công nghệ phần mềm được đưa ra lần đầu tiên vào năm 1968
tại hội nghị thảo luận về khủng hoảng phần mềm. Công nghệ phần mềm đề cập tới
các lý thuyết, phương pháp và công cụ để xây dựng phần mềm chuyên nghiệp, mang
lại lợi nhuận cao.
Hoạt động từ thủ công đến cơng nghệ:
Từ thủ cơng
Chương trình nhỏ
Khơng chun nghiệp
1 người làm
Người sử dụng - người phát triển
Tiến trình phát triển đơn giản

Công nghệ
Dự án lớn.
Chuyên nghiệp
Nhiều người làm
Khách hàng và nhà cung cấp
Tiến trình phát triển phức tạp


Như vậy, “Cơng nghệ phần mềm là lĩnh vực khoa học về các phương pháp
luận, kỹ thuật và cơng cụ tích hợp trong quy trình sản xuất và vận hành phần
mềm nhằm tạo ra phần mềm với những chất lượng mong muốn”.
4 tầng (Hình 1.3): tầng chất lượng, tầng quy trình, tầng phương pháp và tầng
cơng cụ.
Cơng cụ
Phương pháp
Qui trình
Tiêu điểm chất lượng

Hình 1.3: Các tầng của Công nghệ phần mềm
Trang 7


- Công cụ phần mềm nhằm cung cấp các hỗ trợ tự động, bán tự động cho quy
trình và phương pháp phần mềm. Khi các cơng cụ được tích hợp, thơng tin tạo bởi
các cơng cụ này có thể được sử dụng bởi các cơng cụ khác, ví dụ như thiết kế có sự
hỗ trợ.
- Phương pháp phần mềm nhằm cung cấp các kỹ thuật để chế tác phần mềm
bao gồm:
+ Phân tích yêu cầu người dùng;
+ Thiết kế hệ thống;
+ Lập trình;
+ Kiểm thử;
+ Khai thác;
+ Bảo trì.
- Là các quy trình đúng kỷ luật và có định lượng được áp dụng cho sự phát
triển, thực thi và bảo trì các hệ thống thiên về phần mềm.
Tập trung vào quy trình, sự đo lường, sản phẩm, tính đúng thời gian và chất
lượng.

* Gồm 3 giai đoạn lớn:
- Giai đoạn xác định: Phân tích hệ thống, hoạch định đề tài, phân tích yêu cầu.
- Giai đoạn phát triển: Thiết kế phần mềm, sinh mã, kiểm tra phần mềm.
- Giai đoạn bảo trì: Sửa lỗi, thay đổi mơi trường thực thi, tăng cường.
1.4. Khoa học Máy tính và Cơng nghệ hệ thống
- Khoa học máy tính đề cập tới lý thuyết và những vấn đề cơ bản; cịn cơng
nghệ phần mềm đề cập tới các hoạt động xây dựng và đưa ra một phần mềm hữu
ích.
- Khi sự phát triển của phần mềm trở lên mạnh mẽ 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 hồn thiện cho cơng nghệ
phần mềm.
- Cơng nghệ hệ thống (hay cịn gọi là Kỹ nghệ hệ thống) liên quan tới tất cả các
khía cạnh của q trình phát triển hệ thống dựa vào máy tính bao gồm: phần cứng,
phần mềm, và công nghệ xử lý. Công nghệ phần mềm chỉ là một phần của quy trình
này, nó có liên quan tới việc phát triển hạ tầng phần mềm, điều khiển, các ứng dụng
và cơ sở dữ liệu trong hệ thống.
2. Các đặc tính phần mềm
Phần mềm là một loại sản phẩm và có những đặc thù riêng. Người ta thường
lưu tâm đến các đặc tính sau:
- Là hàng hóa vơ hình, khơng nhìn thấy được.
- Chất lượng phần mềm: khơng mịn đi mà có xu hướng tốt lên sau mỗi lần có
lỗi được phát hiện và sửa chữa.
Trang 8


- Phần mềm vốn chứa lỗi tiềm tàng, theo quy mơ càng lớn thì khả năng chứa
lỗi càng cao.
- Lỗi phần mềm dễ được phát hiện bởi người ngoài.
- Chức năng của phần mềm thường biến hóa, thay đổi theo thời gian và theo
nơi sử dụng.

- Hiệu ứng làn sóng trong thay đổi phần mềm.
- Phần mềm vốn chứa ý tưởng và sáng tạo của tác giả/nhóm tác giả làm ra nó.
- Cần khả năng “tư duy nhị phân” trong xây dựng, phát triển phần mềm.
- Phần mềm có thể sao chép rất đơn giản.
3. Tiêu chí của một phần mềm tốt
- Để đánh giá chất lượng phần mềm, người ta đưa ra các tiêu chí như hình 1.4.

Tính dễ hiểu

Các chỉ tiêu cơ bản

Thời gian (Phần cứng phát triển)

Hình 1.4: Tiêu chí một phần
mềm tốt

Trang 9


Câu hỏi bài 1:
1. Khái niệm phần mềm là gì? Phân loại phần mềm?
2. Khái niệm về công nghệ phần mềm?
3. Phân biệt sự khác nhau giữa công nghệ phần mềm, khoa học máy tính và
cơng nghệ hệ thống.
4. Nêu những đặc tính của phần mềm.
5. Tiêu chí phần mềm tốt là gì?

Trang 10



Bài 2
QUY TRÌNH XÂY DỰNG PHẦN MỀM
GIỚI THIỆU
MỤC TIÊU:
+ Trình bày quy trình của các mơ hình xây dựng phần mềm.
+ Trình bày các hoạt động trong quy trình xây dựng phần mềm.
+ Phân biệt các mơ hình xây dựng phần mềm và lựa chọn loại mơ hình xây
dựng phần mềm phù hợp với yêu cầu của khách hàng.
+ Phân tích các hoạt động trong quy trình xây dựng phần mềm.
+ Sau khi học nội dung này học sinh ứng dụng chọn đúng mơ hình xây dựng
mà khách hàng u cầu.
1. Một số quy trình xây dựng phần mềm
1.1. Mơ hình thác nước
Tìm hiểu và phân tích u cầu
Thiết kế hệ thống và phần mềm

Thiết kế và cài đặt kiểm thử từng phần
Tích hợp và kiểm thử hệ thống

Khai thác và bảo trì

Hình 2.1. Mơ hình thác nước
1.1.1. Tìm hiểu và phân tích các yêu cầu
Người sử dụng hệ thống và người phát triển hệ thống bàn bạc, trao đổi với
nhau để thiết lập mục đích, ràng buộc và các dịch vụ của hệ thống phần mềm, lĩnh
hội được những địi hỏi của bài tốn.
1.1.2. Thiết kế hệ thống và phần mềm
Tiến trình thiết kế hệ thống phân chia các yêu cầu thành các hệ thống phần
cứng, phần mềm và thiết lập một kiến trúc hệ thống toàn bộ. Việc thiết kế phần mềm
bao gồm việc thể hiện các chức năng hệ thống phần mềm để biến đổi thành các

Chương trình khả thi.

Trang 11


1.1.3. Cài đặt và kiểm thử từng phần
Trong giai đoạn này, các đơn vị Chương trình hay tập hợp các Chương trình
được kiểm thử lần lượt sao cho thỏa mãn các đặc tả tương ứng.
1.1.4. Tích hợp và kiểm thử hệ thống
Các đơn vị Chương trình được tích hợp và kiểm thử như là một hệ thống đầy
đủ để đảm bảo các yêu cầu đặt ra ban đầu. Sau giai đoạn này, hệ thống phần mềm
được giao cho khách hàng.
1.1.5. Khai thác và bảo trì
Đây là một pha dài nhất của chu kỳ sống. Hệ thống được cài đặt và đưa vào
sử dụng thực tế. Việc bảo trì bao gồm việc khắc phục những sai sót xảy ra đã khơng
xuất hiện trong các giai đoạn trước đó của chu kỳ sống. Việc tối ưu hóa các dịch vụ
của hệ thống được xem như là những yêu cầu mới được phát hiện.
1.2. Mơ hình bản mẫu
Thơng thường, khách hàng sẽ đưa ra mục tiêu của họ một cách chung chung
mà họ không biết hoặc không đưa ra một cách cụ thể những thơng tin vào, thơng tin
ra và các tiến trình xử lý chúng. Thêm vào đó, chúng ta cũng khơng thể khơng quan
tâm đến thuật tốn sử dụng, tính tương thích của sản phẩm phần mềm với mơi trường
của nó như: phần cứng, hệ điều hành...Trong trường hợp này, mô hình mẫu có thể
là sự lựa chọn tốt hơn cho người lập trình.
Phác thảo
nét chính

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


Sử dụng
phần mềm

S

Hệ thống
thích hợp
Đ

Chuyển
giao
phần mềm

Hình 2.2: Mơ hình tiếp cận kiểu bản mẫu
Mơ hình mẫu là một cách để phá vỡ sự khắt khe, cứng nhắc trong chu trình
tuần tự của dự án. Tuy vậy, trong mơ hình mẫu, sử dụng sai làm hỏng phân tích và
thiết kế, khơng bao giờ hồn thiện được mẫu thành các ứng dụng thực sự là các vấn
đề cần quan tâm. Thêm vào đó là hệ thống có thể khơng bao giờ được chuẩn hóa,
chi tiết của việc xử lý, việc kiểm tra tính hợp lệ của dữ liệu và các địi hỏi kiểm tốn
có thể bị bỏ quên trong việc đưa mẫu vào sản xuất.
1.3. Mô hình phát triển lặp lại, tăng dần
Mơ hình được chia thành nhiều vòng, tăng dần. Mỗi vòng là một phần kết quả
của một chức năng được yêu cầu.
Các yêu cầu của người sử dụng được đánh thứ tự ưu tiên. u cầu nào có thứ
tự ưu tiên càng cao thì càng ở trong những vòng phát triển sớm hơn.
Trang 12


VD : xử lý từ


Hình 2.3: Mơ hình phát triển, tăng dần.
Các bước lặp đầu tập trung vào yêu cầu của phần mềm và thiết lập một kiến
trúc ổn định cho hệ thống.
Các bước sau tập trung vào việc xây dựng sản phẩm để cuối cùng chuyển sang
giai đoạn kiểm tra hệ thống.
Mỗi bước hiện thực một phần cụ thể trong tồn bộ u cầu của hệ thống.
1.4. Mơ hình xoắn ốc
Mơ hình này được Boehm đưa ra nên đơi lúc cịn được gọi là mơ hình
Boehm's. Nó có thể xem là sự kết hợp giữa mơ hình thác nước và mơ hình mẫu và
đồng thời thêm một thành phần mới, phân tích rủi ro. Bao gồm bốn hoạt động chính:
- Xác định mục tiêu, tương tác và ràng buộc.
- Phân tích các lựa chọn và các chỉ định/giải quyết rủi ro.
- Phát triển sản phẩm.
- Đánh giá kết quả xây dựng.
Mơ hình được tóm tắt như sau:

Hình 2.4: Mơ hình xoắn ốc
Trong vịng đầu tiên của xoắn ốc, mục đích, lựa chọn, các ràng buộc được
định nghĩa và các nguy cơ được xác định và phân tích. Nếu phân tích các lỗi chỉ ra
rằng có một vài u cầu khơng chắc chắn, tạo mẫu có thể được tiến hành để giúp đỡ
Trang 13


nhà phát triển và khách hàng. Mô phỏng và các mơ hình khác có thể được sử dụng
để xác định vấn đề và làm mịn các yêu cầu.
Khách hàng đánh giá công việc và đưa ra các gợi ý. Trên cơ sở ý kiến đó, phần
tiếp theo của lập kế hoạch và phân tích lỗi xuất hiện.
Mơ hình xoắn ốc hiện nay là mơ hình hướng tiếp cận hiện thực nhất để phát
triển các hệ thống lớn. Nó sử dụng mơ hình mẫu như là cơ chế loại trừ lỗi, cho phép
nhà phát triển áp dụng mơ hình mẫu tại mỗi chu trình phát triển. Nó kế thừa cách

tiếp cận hệ thống từng bước từ chu kỳ sống cổ điển nhưng kết hợp với quá trình lặp
lại phù hợp với thực tế.
Giống như các quy trình khác, mơ hình xoắn ốc không phải là công cụ vạn
năng. Đối với những hệ thống lớn, khó có thể điều khiển sự tiến hóa của phần mềm.
Nó địi hỏi phải có kỹ năng đánh giá lỗi. Cuối cùng là cần phải có thêm thời gian để
kiểm nghiệm phương pháp mới này.
2. Các hoạt động trong quy trình xây dựng phần mềm
2.1. Đặc tả phần mềm
Đặc tả phần mềm (hay còn gọi là kỹ thuật xác định yêu cầu) là quy trình tìm
hiểu và định nghĩa những dịch vụ nào được yêu cầu và các ràng buộc trong quá trình
vận hành và xây dựng hệ thống.
Quy trình xác định yêu cầu bao gồm bốn pha chính:
- Nghiên cứu khả thi:
+ Nghiên cứu khả thi giúp xác định những yêu cầu của người sử dụng có
thoả mãn những cơng nghệ hiện tại hay khơng.
+ Về góc độ kinh doanh, xác định hệ thống đưa ra có mang lại lợi nhuận
khơng.
+ Việc nghiên cứu khả thi nên được thực hiện một cách nhanh chóng và
khơng q tốn kém.
- Phân tích và rút ra các yêu cầu:
+ Đưa ra các yêu cầu hệ thống thông qua một số phương pháp như: quan
sát hệ thống hiện tại, phỏng vấn và thảo luận với người sử dụng, phân tích nhiệm vụ,
phân tích tài liệu hoặc hệ thống cũ…v.v.
+ Có thể phải xây dựng một hoặc nhiều mơ hình hệ thống và các mẫu thử.
- Đặc tả yêu cầu:
Pha này sẽ tư liệu hố những thơng tin thu thập được. Có hai loại yêu cầu cần
được xác định:
+ Yêu cầu của người sử dụng: các yêu cầu của người dùng thường diễn
đạt bằng ngôn ngữ tự nhiên, các biểu đồ.
+ Yêu cầu hệ thống: chức năng, dịch vụ và các ràng buộc vận hành của hệ

thống. Nó có thể trở thành bản hợp đồng giữa khách hàng và nhà sản xuất.
- Đánh giá yêu cầu:
Trang 14


Pha này sẽ kiểm tra lại các yêu cầu xem chúng có đúng thực tế hay khơng, có
thống nhất khơng, có đầy đủ khơng. Nếu phát hiện ra lỗi thì ta phải chỉnh sửa các lỗi
này.

Hình 2.5: Quy trình xác định yêu cầu
2.2. Thiết kế và cài đặt
Thiết kế phần mềm là quá trình thiết kế cấu trúc phần mềm dựa trên những tài
liệu đặc tả. Hoạt động thiết kế bao gồm những cơng việc chính sau:
- Thiết kế kiến trúc: Các hệ thống con cấu thành lên hệ thống cần xây dựng và
mối quan hệ giữa chúng.
- Đặc tả trừu tượng: Đặc tả hệ thống với những hệ thống con.
+ Thiết kế giao diện.
+ Thiết kế thành phần.
+ Thiết kế cấu trúc dữ liệu.
+ Thiết kế thuật toán: thuật tốn thiết kế chi tiết và chính xác.

Hình 2.6: Mơ hình chung của quy trình thiết kế
- Cài đặt là quy trình chuyển đổi từ tài liệu đặc tả hệ thống thành một hệ thống
thực, có thể vận hành được và phải loại bỏ các lỗi của Chương trình.
Trang 15


Người lập trình phải tự kiểm lỗi trước khi thực hiện các phương pháp đánh
giá.
Sau khi cài đặt phần mềm, chúng ta phải đánh giá sản phẩm trước và sau khi

xuất xưởng?
Vai trò của việc đánh giá phần mềm?
2.3. Đánh giá phần mềm
- Phần mềm phải được đánh giá và thẩm định để đảm bảo rằng nó đã thoả mãn
tất cả các yêu cầu.
- Đánh giá phần mềm hay còn gọi là kiểm tra và thẩm định được sử dụng để
chỉ ra rằng hệ thống đã thực hiện theo đúng các đặc tả và thoả mãn mọi yêu cầu của
khách hàng không.
- Để thẩm định cần phải kiểm thử hệ thống.
Quy trình kiểm thử gồm các pha sau:
+ Kiểm thử thành phần (đơn vị).
+ Kiểm thử hệ thống.
+ Kiểm thử chấp thuận.
Khi chuyển giao hệ thống cho khách hàng thì quy trình kiểm thử beta sẽ được
thực hiện. Những lỗi được khách hàng cung cấp sẽ được chỉnh sửa và tiếp tục kiểm
thử beta hoặc chuyển giao thực sự cho khách hàng.

Hình 2.7: Quy trình kiểm thử
2.4. Cải tiến phần mềm
- Phần mềm cần phải cải tiến và điều chỉnh để phù hợp với những thay đổi về
yêu cầu hệ thống.
- Khi các yêu cầu hệ thống thay đổi theo sự thay đổi của các yêu cầu nghiệp
vụ thì phần mềm phải cải tiến và thay đổi để hỗ trợ khách hàng.
- Thơng thường chi phí để bảo trì và cải tiến thường đắt hơn nhiều so với chi
phí xây dựng phần mềm.

Trang 16


Hình 2.8: Cải tiến phần mềm

Câu hỏi Bài 2:
Câu 1: Hãy nêu tóm tắt các mơ hình của q trình phần mềm. Đánh giá ưu
điểm, nhược điểm của từng mô hình?
Câu 2: Trình bày các hoạt động trong quy trình xây dựng phần mềm.
Câu 3: Nêu các hướng phát triển phần mềm.

Trang 17


Bài 3
PHÂN TÍCH VÀ ĐẶC TẢ U CẦU
GIỚI THIỆU
Quy trình xác định yêu cầu là đưa ra các tài liệu yêu cầu của hệ thống. Quy
trình xác định yêu cầu biến đổi phụ thuộc vào miền ứng dụng, con người và tổ chức
xây dựng yêu cầu. Tuy nhiên, những quy trình này vẫn có chung một số hoạt động
sau: phát hiện yêu cầu, phân tích yêu cầu, đánh giá yêu cầu và quản lý yêu cầu.
MỤC TIÊU:
+ Trình bày quy trình của các mơ hình xây dựng phần mềm.
+ Trình bày các hoạt động trong quy trình xây dựng phần mềm.
+ Phân biệt các mơ hình xây dựng phần mềm và lựa chọn loại mơ hình xây
dựng phần mềm phù hợp với yêu cầu của khách hàng.
+ Phân tích các hoạt động trong quy trình xây dựng phần mềm.
+ Sau khi học nội dung này học sinh làm việc độc lập hoặc theo nhóm và kỹ
lưỡng trong giải quyết những vấn đề phân tích và đặc tả khi trao đổi với khách hàng.
1. Xác định yêu cầu
- Giúp cho người phát triển nắm vững yêu cầu của người sử dụng.
- Giúp để phạm vi hỗ trợ của hệ thống cho người sử dụng và quản lý sự thay
đổi yêu cầu.
- Dùng để hoạch định kế hoạch phát triển dự án, tính chi phí.
1.1. Yêu cầu

- Yêu cầu là: Một yêu cầu có thể là từ một phát biểu mức trừu tượng rất cao
về dịch vụ hay hệ thống cho đến một đặc tả toán học rất chi tiết.
- Yêu cầu là: Năng lực của phần mềm mà người sử dụng được mục đích xác
định năng lực của phần mềm cần có nhằm thỏa mãn một hợp đồng, một chuẩn, một
đặc tả.
1.2. Phân loại yêu cầu
- Mức độ yêu cầu:
+ Yêu cầu người sử dụng: Các phát biểu bằng ngôn ngữ tự nhiên (và các
sơ đồ) về dành cho khách hàng.
+ u cầu hệ thống: Tài liệu có cấu trúc mơ tả chi tiết các dịch vụ của hệ
thống là hợp đồng giữa khách hàng và người phát triển.
+ Đặc tả phần mềm: Mô tả chi tiết về phần mềm, nhằm phục vụ cho thiết
kế, mã dành cho người phát triển.
- Phân loại: Các yêu cầu của hệ thống phần mềm thường được chia thành ba
loại:
+ Yêu cầu chức năng
+ Yêu cầu phi chức năng
Trang 18


+ Yêu cầu miền ứng dụng
1.2.1. Yêu cầu chức năng
- Yêu cầu chức năng cho biết hệ thống sẽ làm gì, chức năng hoặc các dịch vụ
của hệ thống một cách chi tiết.
- Một số yêu cầu chức năng:
+ Chức năng tính tốn;
+ Chức năng lưu trữ;
+ Chức năng tìm kiếm;
+ Chức năng kết xuất;
+ Chức năng backup, restore;

+ Chức năng đa người dùng;
+ Chức năng đa phương tiện;
+ Chức năng mơ phỏng.
- Mơ tả chức năng của hệ thống.
Ví dụ: Người sử dụng có thể tìm kiếm các tài liệu dựa trên từ khóa chứa trong
tài liệu hoặc tên tài liệu.
- Quá trình hệ thống cần cung cấp cho người sử dụng phương tiện hiển thị dễ
dàng các tài liệu từ cơ sở dữ liệu.
- Hệ thống phải đọc được các định dạng khác văn bản (text), pdf, doc.
- Sự khơng chính xác của u cầu:
+ u cầu khơng được phát biểu chính xác, u cầu có thể được hiểu các
cách khác nhau bởi người sử dụng và người phát triển.
Ví dụ: Hiển thị dễ dàng:
Người sử dụng: có thể hiện các loại tài liệu khác nhau.
Người phát triển: cung cấp giao diện hiển thị tài liệu ở chế độ văn bản.
- Trên nguyên tắc, yêu cầu phải thỏa mãn:
+ Đầy đủ yêu cầu phải mô tả, đầy đủ các chức năng cần thiết gắn bó.
+ Các yêu cầu chức năng phải không mâu thuẩn lẫn nhau trong thực tế.
Khơng đơn giản để có được u cầu đầy đủ và gắn bó, có thể trong q trình
phát triển, các vấn đề được phát hiện và chỉnh sửa yêu cầu.
1.2.2. Yêu cầu phi chức năng
- Yêu cầu phi chức năng không đề cập trực tiếp tới các chức năng cụ thể của
hệ thống.
- Yêu cầu phi chức năng thường xác định:
+ Độ tin cậy, thời gian đáp ứng, tính tiến hóa, tính tương thích, các u
cầu về lưu trữ…
Trang 19


+ Các chuẩn được sử dụng, các công cụ CASE, ngơn ngữ lập trình…

- Các u cầu phi chức năng xuất hiện là do:
+ Yêu cầu của người sử dụng.
+ Ràng buộc về ngân sách.
+ Các chính sách của tổ chức sử dụng hệ thống.
+ Yêu cầu tương thích giữa phần cứng và phần mềm.
+ Các tác nhân ngoài khác…
- Phân loại các yêu cầu phi chức năng như sau:
+ Các yêu cầu về sản phẩm: Hiệu năng, khả năng sử dụng, độ tin cậy…
+ Các yêu cầu của tổ chức sử dụng hệ thống: thời gian bàn giao, yêu cầu
phù hợp với hệ thống cũ…
+ Các yêu cầu ngoài: Được xác định từ các tác nhân từ bên ngoài như các
yêu cầu về luật pháp, yêu cầu tôn trọng tính riêng tư, về đạo đức…
Mục tiêu: Đối với những yêu cầu phi chức năng mập mờ trong tài liệu đặc tả
yêu cầu thường bổ sung các mục tiêu.

Hình 3.1: Phân loại các yêu cầu phi chức năng
Ví dụ:
- Yêu cầu về sản phẩm: Phần mềm chỉ nên yêu cầu tối đa 256 MB bộ nhớ.
- Yêu cầu về tổ chức: Tiến trình phát triển phải đáp ứng chuẩn DO178 (lĩnh
vực phát triển phần mềm hàng không).
Trang 20


- u cầu bên ngồi: Hệ thống khơng được để lộ thông tin cá nhân của khách
hàng.
Những yêu cầu phi chức năng khó phát biểu chính xác, nó có thể mơ hồ.
1.2.3. Yêu cầu miền ứng dụng
Yêu cầu miền ứng dụng được xác định từ miền ứng dụng của hệ thống nó
phản ánh các thuộc tính và ràng buộc của miền ứng dụng.
Nó có thể là yêu cầu chức năng hoặc phi chức năng.

- Một số vấn đề liên quan đến yêu cầu miền ứng dụng:
+ Các yêu cầu cần được biểu diễn phù hợp với lĩnh vực ứng dụng.
+ Các chuyên gia có hiểu biết về lĩnh vực riêng, nhưng khó trình bày
những u cầu một cách rõ ràng và mang tính kỹ thuật.
Ví dụ: Trong hệ thống quản lý thư viện do vấn đề bản quyền và tài liệu được
xóa ngay.
2. Quy trình xác định u cầu
Mục tiêu của quy trình xác định yêu cầu là đưa ra các tài liệu yêu cầu của hệ
thống.
Quy trình xác định yêu cầu biến đổi phụ thuộc vào miền ứng dụng, con người
và tổ chức xây dựng yêu cầu.
Những bước chính: phát hiện yêu cầu, phân tích yêu cầu, đánh giá yêu cầu và
quản lý yêu cầu.
2.1. Phân tích khả thi
Phân tích khả thi thường tập trung vào:
- Xác định hệ thống có đóng góp vào mục tiêu của tổ chức hay khơng.
- Kiểm tra xem hệ thống có thể được xây dựng bằng cách sử dụng công nghệ
hiện tại và ngân sách cho phép.
- Kiểm tra xem liệu hệ thống có được tích hợp với các hệ thống đang sử dụng
hay khơng.
- Những câu hỏi đặt ra để phân tích khả thi:
+ Nếu hệ thống khơng được cài đặt thì sao?
+ Vấn đề xử lý hiện tại như thế nào?
+ Hệ thống đề xuất sẽ trợ giúp theo cách thức nào?
+ Những rắc rối về việc tích hợp là gì?
+ Có cần kỹ thuật mới khơng?
+ Địi hỏi có kỹ năng, những kỹ năng gì?
+ Hệ thống cần hỗ trợ những tiện ích gì?

Trang 21



2.2. Phát hiện và phân tích yêu cầu
Nhân viên kỹ thuật và khách hàng cùng hợp tác để xác định miền ứng dụng,
các dịch vụ mà hệ thống cung cấp, hiệu năng của hệ thống, các ràng buộc vận hành
của hệ thống…
- Stakeholder là những người có liên quan tới tổ chức:
+ Người sử dụng cuối.
+ Người quản lý.
+ Người phụ trách kỹ thuật.
+ Chuyên gia lĩnh vực…
Ví dụ: Hệ thống ATM có các những người có liên quan tới tổ chức: Khách
hàng của ngân hàng, đại diện của các ngân hàng khác, người quản lý ngân hàng,
nhân viên ngân hàng, người quản trị cơ sở dữ liệu (CSDL), người quản lý bảo mật,
kỹ sư bảo trì phần cứng và phần mềm…
- Việc phát hiện và tìm hiểu yêu cầu của stakeholder thường gặp khó khăn vì:
+ Stakeholder khơng biết những gì mà họ thật sự mong muốn.
+ Stakeholder mơ tả các yêu cầu theo thuật ngữ của họ.
+ Những stakeholder khác nhau có thể có các yêu cầu xung đột nhau.
+ Những yếu tố tổ chức và quyền lực có thể ảnh hưởng tới các yêu cầu
hệ thống.
Các yêu cầu có thể thay đổi trong suốt q trình phân tích, những stakeholder
mới xuất hiện, mơi trường nghiệp vụ thay đổi.
Các hoạt động của quy trình
2.2.1. Khung nhìn
Khung nhìn được chia thành 3 loại chính:
- Khung nhìn tương tác: là những người hoặc hệ thống khác tương tác với hệ
thống. Trong hệ thống ATM, khách hàng và cơ sở dữ liệu tài khoản là những khung
nhìn tương tác.
- Khung nhìn gián tiếp: là những stakeholder không sử dụng hệ thống trực

tiếp nhưng có ảnh hưởng tới hệ thống. Trong hệ thống ATM, nhân viên quản lý và
bảo mật là những khung nhìn gián tiếp.
- Khung nhìn miền ứng dụng: là những đặc điểm và ràng buộc của miền ứng
dụng. Trong hệ thống ATM, các chuẩn để giao tiếp giữa nhiều ngân hàng.
Ta có thể phát hiện khung nhìn dựa trên:
- Người cung cấp và người nhận các dịch vụ của hệ thống.
- Các hệ thống tương tác trực tiếp với hệ thống cần xây dựng.
- Các chuẩn và các quy tắc.
- Các yêu cầu khác : yêu cầu phi chức năng, nghiệp vụ, Marketing…
Trang 22


Hình 3.2: Khung nhìn của hệ thống
2.2.2. Phỏng vấn
Phỏng vấn hình thức hoặc phi hình thức là một trong những phần quan trọng
nhất của quy trình xác định yêu cầu.
Những người xác định yêu cầu sẽ đặt ra các câu hỏi cho stakeholder về hệ
thống hiện tại họ đang sử dụng và hệ thống sẽ được xây dựng.
Phỏng vấn được chia thành hai loại:
- Phỏng vấn đóng: Tập các câu hỏi đã được định nghĩa trước và có nhiều đáp
án để stakeholder lựa chọn trả lời.
- Phỏng vấn mở: Tất cả các vấn đề không được xác định trước và stakeholder
phải tự giải thích và phát biểu theo quan điểm của mình.
Trong thực tế, chúng ta thường trộn lẫn phỏng vấn đóng và mở.
Ví dụ:
- Bước 1: Những câu hỏi căn bản, ngữ cảnh bất kỳ
+ Ai là người đưa đến những yêu cầu?
+ Ai là người sử dụng giải pháp ?
+ Giải pháp thành công sẽ mang đến những lợi ích gì?
+ Có thể có cách khác để thực hiện giải pháp?

- Bước 2: Nhằm hiểu sâu hơn vấn đề
+ Giải pháp tốt sẽ có output như thế nào?
+ Những vấn đề giải pháp cần giải quyết?
+ Hãy cho biết môi trường của giải pháp?
+ Những vấn đề về thực thi và những ràng buộc ảnh hưởng?
- Bước 3: Những câu hỏi về hiệu quả của việc gặp gỡ.
Trang 23


+ Bạn là người được quyền trả lời những câu hỏi nhằm xây dựng giải
pháp?
+ Câu trả lời của bạn có chính thức khơng ?
+ Câu hỏi của tơi có phù hợp với vấn đề mà bạn đang gặp ?
+ Tôi đã hỏi quá nhiều câu hỏi ?
+ Những ai có thể cung cấp những thơng tin thêm?
+ Tơi có nên hỏi bạn những điều gì khác?
- Một phỏng vấn tốt:
+ Thu thập được tất cả các hiểu biết về công việc phải làm của
stakeholder.
+ Nắm rõ họ tương tác với hệ thống như thế nào.
Chúng ta thường gặp khó khăn vì khơng thể hiểu được các thuật ngữ của miền
ứng dụng, việc diễn đạt.
- Để phỏng vấn thành công, người phỏng vấn nên:
+ Cởi mở, sẵn sàng lắng nghe người mua hàng.
+ Khơng có định kiến.
+ Đưa ra những câu hỏi gợi mở, thân thiện.
+ Luôn cung cấp thông tin phản hồi.
+ Hạn chế ghi chép.
+ Có kế hoạch kết thúc.
+ Tóm tắt nội dung, yêu cầu hiệu chỉnh.

+ Cho biết ngày họ nhận báo cáo.
2.2.3. Đặc tả bằng ngôn ngữ tự nhiên
Đặc tả yêu cầu của hệ thống bằng ngôn ngữ tự nhiên thường gặp một số vấn
đề sau:
- Khơng rõ ràng: Ngơn ngữ tự nhiên có thể diễn đạt phong phú nhưng thiếu
chính xác.
- Quá mềm dẻo: với cùng một vấn đề nhưng có nhiều cách khác nhau để đặc
tả.
- Thiếu tính cấu trúc.
2.2.4. Kịch bản
Chúng ta thường hiểu một vấn đề thông qua kịch bản để phát hiện ra các yêu
cầu hệ thống.
Kịch bản là những ví dụ thực tế về cách sử dụng hệ thống, bao gồm:
+ Mô tả trạng thái khởi động.
+ Mô tả luồng sự kiện thông thường.
Trang 24


+ Mô tả Thông tin về các hành động đồng thời khác.
+ Mơ tả trạng thái khi kịch bản hồn thành.
+ Mơ tả những gì có thể đi tới lỗi.
Ví dụ: Use-case là một chức năng thường được mô tả bằng kịch bản dựa vào
UML. Một tập hợp các use-case sẽ mơ tả tất cả các tương tác có thể trong hệ thống.
Biểu đồ trình tự để bổ sung các thơng tin chi tiết cho use-case.

Hình 3.3: mơ hình quản lý thư viện và quản lý thẻ ATM.
3. Đánh giá yêu cầu
- Xác định những yêu cầu được trình bày có phù hợp với những gì khách hàng
thật sự muốn.
- Chi phí cho những lỗi về yêu cầu rất cao: Chi phí cho việc sửa lỗi yêu cầu

sau khi xuất xưởng cao 100 lần chi phí sữa lỗi lúc cài đặt.
- Trong quá trình đánh giá yêu cầu, chúng ta phải kiểm tra các yêu cầu ở những
thuộc tính sau:
+ Nhất quán: có yêu cầu nào xung đột nhau hay khơng?
+ Hồn thiện: tất cả các u cầu của khách hàng đã được xác định đầy đủ
chưa?
Trang 25


×