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

Báo cáo thực nghiệm môn nhập môn công nghệ phần mềm đề tài hoàn thiện tài liệu phân tích đặc tảphần mềm cho website bán quần áo

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 (933.93 KB, 38 trang )

lOMoARcPSD|39474592

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

-----🙞🙞🙞🙞🙞-----

BÁO CÁO THỰC NGHIỆM
MÔN NHẬP MÔN CÔNG NGHỆ PHẦN MỀM

Đề Tài: Hồn thiện tài liệu phân tích đặc tả
phần mềm cho website bán quần áo

Giảng viên hướng dẫn:
Nhóm thực hiện:

Hà Nội, Tháng 12 năm 2022

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

LỜI MỞ ĐẦU

Ngày nay khi nhắc tới khoa học kĩ thuật chúng ta khơng thể khơng nhắc tới một
nghành khoa học có tuổi dời cịn rất ít nhưng lại đạt được những thành tựu to lớn và
ứng dụng rộng rãi đó là : Công Nghệ Thông Tin. Hiện nay ngành khoa học này đã có
những bước phát triển mang tính đột phá ở cả chiều rộng và chiều sâu. Xã hội phát
triển, máy tính điện tử khơng cịn là phương tiện q hiếm như ngày xưa nữa mà đang
ngày càng trở thành một công cụ thông dụng phục vụ cho công việc và giải trí của con
người. Nó khơng chỉ là ở cơng sở mà cịn ở trong từng gia đình. Đứng trước những


cạnh tranh gay gắt trong vai trị thơng tin, các doanh nghiệp và các tổ chức đang tìm
mọi cách, mọi cơ hội, biện pháp để xây dựng cho mình một hệ thống thơng tin hồn
thiện nhằm tin học hố các hoạt động tác nghiệp của doanh nghiệp mình, giúp cho
doanh nghiệp phát triển mạnh mẽ hơn nữa. Song song với sự phát triển của máy tính
điện tử thì mạng máy tính cũng đã và đang bùng nổ. Nếu như trước đây thì người truy
nhập mạng máy tính là rất ít, cịn ngày nay, sự giao tiếp máy tính đã trở thành một
thành phần cơ bản trong cấu trúc hạ tầng của chúng ta. Mạng được dùng trong mọi
khía cạnh của lĩnh vực kinh doanh, bao gồm : quảng cáo, sản xuất, lập hố đơn, hệ
thống kế tốn…Chính vì vậy đã dẫn tới giảm bớt khâu lao động thủ công và thời gian
thực hiện cơng việc. Qua đó chúng ta dễ dàng nhận ra tầm quan trọng và tính tất yếu
của thương mại trên internet vào những năm của thế kỷ tới.

Hiện nay, Website bán hàng trực tuyến giúp việc bán hàng trở nên nhanh chóng
và tiện lợi hơn, tất cả các khâu bán hàng đều được gói gọn trong một website từ khâu
trưng bày sản phẩm (mơ tả, hình ảnh sản phẩm, giá bán), ký hợp đồng đến thanh toán,
giao hàng và chăm sóc khách hàng sau khi họ đã mua hàng. Điểm nổi bật của hình
thức bán hàng qua website so với Facebook, Zalo là quy trình bán hàng khép kín từ A
đến Z, khách hàng có thể chọn hàng và thanh toán trực tuyến qua thẻ ngân hàng, thẻ
Visa, thẻ thanh tốn nội địa… ngay trên website rất nhanh chóng và tiện lợi nhờ các
tính năng như giỏ hàng, cổng thanh toán trực tuyến. Việc ứng dụng những thành quả
của khoa học công nghệ vào trong đời sống, trong công tác là hết sức thiết yếu. Qua
quá trình tìm hiểu qua các tài liệu, thông tin thực tế, được sự đồng ý của giảng viên
hướng dẫn khoa Công nghệ thông tin trường Đại học công nghiệp Hà Nội, chúng em

2

Downloaded by nhim nhim ()

lOMoARcPSD|39474592


thực hiện hoàn thiện “Tài liệu phân tích đặc tả phần mềm cho website bán quần áo
CANIFA”.

Đề tài được thực hiện với kinh nghiệm thực tế chưa có nhiều, kiến thức làm
báo cáo cịn hạn chế nên cịn tồn tại nhiều thiếu sót và chưa chính xác, chúng em rất
mong nhận được sự giúp đỡ, ý kiến đóng góp quý báu để có được đề tài hồn thiện
hơn. Sau cùng, chúng em bày tỏ lịng biết ơn đến thầy cô trong khoa Công nghệ thông
tin – Trường Đại học Công Nghiệp Hà Nội, đặc biệt là gửi lời cảm ơn sâu sắc tới cô
Nguyễn Thị Mỹ Bình đã truyền đạt những kiến thức quý báu cho Nhóm 1 nói riêng,
cả lớp Nhập mơn cơng nghệ phần mềm nói chung. Và đây chắc chắn sẽ là những kiến
thức quý báu, là hành trang để chúng em có thể vững bước sau này.

Chúng em xin chân thành cảm ơn!

3

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

MỤC LỤC
A. TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM...........................................................4

I. ĐỊNH NGHĨA VÀ ĐẶC TÍNH CỦA SẢN PHẨM PHẦN MỀM.........................................4
1. Định nghĩa phần mềm..........................................................................................................................4
2. Phân loại và đặc tính của sản phẩm phần mềm.................................................................................4

II. ĐỊNH NGHĨA VÀ CÁC ĐẶC TRƯNG CỦA CÔNG NGHỆ PHẦN MỀM....................7
1. Định nghĩa Công nghệ phần mềm Công Nghệ Phần Mềm...............................................................7
2. Các đặc trưng của Công nghệ phần mềm..........................................................................................8


III. MƠ HÌNH PHÁT TRIỂN PHẦN MỀM............................................................................8
1. Các công đoạn trong phát triển phần mềm........................................................................................8
2. Các mơ hình phát triển phần mềm...................................................................................................10

IV. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM...15
B. TÀI LIỆU PHÂN TÍCH ĐẶC TẢ YÊU CẦU PHẦN MỀM............................................17

I. GIỚI THIỆU..........................................................................................................................17
1. Mục tiêu...............................................................................................................................................17
2. Phạm vi................................................................................................................................................18
3. Thuật ngữ và các từ viết tắt...............................................................................................................18
4. Tài liệu tham khảo..............................................................................................................................19
5. Mô tả tài liệu.......................................................................................................................................19

II. TỔNG QUAN VỀ PHẦN MỀM.......................................................................................20
1. Giới thiệu chung về sản phẩm...........................................................................................................20
2. Chức năng của phần mềm.................................................................................................................20
3. Đối tượng người dùng........................................................................................................................24
4. Các ràng buộc.....................................................................................................................................25
5. Giả định và phụ thuộc........................................................................................................................25

III. ĐẶC TẢ YÊU CẦU PHẦN MỀM....................................................................................25
1. Các yêu cầu giao diện bên ngoài........................................................................................................25
2. Yêu cầu chức năng..............................................................................................................................29
3. Yêu cầu về hiệu năng..........................................................................................................................33

4

Downloaded by nhim nhim ()


lOMoARcPSD|39474592

A. TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM

I. ĐỊNH NGHĨA VÀ ĐẶC TÍNH CỦA SẢN PHẨM PHẦN MỀM
1. Định nghĩa phần mềm
- Chương trình máy tính là một trình tự các chỉ thị
(lệnh) để hướng dẫn máy tính làm việc nhằm hoàn
thành một cơng việc nào đó do con người yêu cầu.
- Phần mềm là một hệ thống các chương trình có thể
thực hiện trên máy tính nhằm hỗ trợ các nhà chuyên
môn trong từng lĩnh vực chuyên ngành thực hiện tốt
nhất các thao tác nghiệp vụ của mình.
- Nhiệm vụ chính yếu của phần mềm là cho phép các nhà
chuyên môn thực hiện các công việc của họ trên máy
tính dễ dàng và nhanh chóng hơn so với khi thực hiện
cùng cơng việc đó trong thế giới thực.
- Hoạt động của mọi phần mềm là sự mô phỏng lại các
họat động của thế giới thực trong một góc độ thu hẹp
nào đó trên máy tính. Q trình sử dụng một phần mềm
chính là q trình người dùng thực hiện các công việc
trên máy tính để hồn tất một công việc tương đương
trong thế giới thực.
2. Phân loại và đặc tính của sản phẩm phần mềm
2.1 Phân loại sản phẩm phần mềm
Generic Product: là sản phẩm đóng gói và bán rộng rãi
trên thị trường.
Bespoke Product: là sản phẩm được phát triển theo
yêu cầu đặc thù của từng khách hàng.

Ngồi ra có thể phân chia phần mềm theo miền ứng dụng
như sau:
a. Phần mềm hệ thống
- Là một tập hợp các chương trình được viết để phục vụ
cho các chương trình khác

5

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

- Xử lý các cấu trúc thông tin phức tạp nhưng xác định
(trình biên dịch, trình soạn thảo, tiện ích quản lý tệp)

- Đặc trưng bởi tương tác chủ yếu với phần cứng máy tính
- Phục vụ nhiều người dùng
- Cấu trúc dữ liệu phức tạp và nhiều giao diện ngoài
b. Phần mềm thời gian thực
Phần mềm điều phối, phân tích hoặc kiểm soát các
sự kiện thế giới thực ngay khi chúng xuất hiện được
gọi là phần mềm thời gian thực. Điển hình là các
phần mềm điều khiển các thiết bị tự động. Phần
mềm thời gian thực bao gồm các thành tố:
- Thành phần thu thập dữ liệu để thu và định dạng thông

tin từ mơi trường ngồi
- Thành phần phân tích để biến đổi thông tin theo yêu cầu của

ứng dụng

- Thành phần kiểm sốt hoặc đưa ra đáp ứng mơi trường ngồi
- Thành phần điều phối để điều hòa các thành phần khác

sao cho có thể duy trì việc đáp ứng thời gian thực
Hệ thống thời gian thực phải đáp ứng những ràng buộc
thời gian chặt chẽ.

c. Phần mềm nghiệp vụ
- Là các phần mềm phục vụ các hoạt động
kinh doanh hay các nghiệp vụ của tổ chức,
doanh nghiệp.

- Đây có thể coi là lĩnh vực ứng dụng phần
mềm lớn nhất. Điển hình là các hệ thống
thông tin quản lý gắn chặt với Cơ sở dữ liệu
(CSDL), các ứng dụng tương tác như xử lý
giao tác cho các điểm bán hàng.

d. Phần mềm khoa học và công nghệ
- Được đặc trưng bởi các thuật tốn (tính tốn trên ma
trận số, mô phỏng...).
- Thường địi hỏi phần cứng có năng lực tính tốn cao.

e. Phần mềm nhúng
- Nằm trong bộ nhớ chỉ đọc và được dùng để điều khiển

6

Downloaded by nhim nhim ()


lOMoARcPSD|39474592

các sản phẩm và hệ thống cho người dùng và thị trường
công nghiệp.
- Có các đặc trưng của phần mềm thời gian thực và phần mềm
hệ thống.
f. Phần mềm máy tính cá nhân
- Bùng nổ từ khi xuất hiện máy tính cá nhân, giải quyết
các bài toán nghiệp vụ nhỏ như xử lý văn bản, trang
tính, đồ họa, quản trị CSDL nhỏ...
- Yếu tố giao diện người-máy rất được chú trọng.
g. Phần mềm trí tuệ nhân tạo
- Dùng các thuật toán phi số để giải quyết các vấn đề
phức tạp mà tính tốn hay phân tích trực tiếp khơng
quản lý nổi
- Các ứng dụng chính là: hệ chuyên gia (hệ cơ sở tri
thức), nhận dạng (hình ảnh và tiếng nói), chứng minh
định lý và chơi trị chơi, mơ phỏng.
Ngồi ra, chúng ta cịn có thể kể đến một dạng phần
mềm đặc biệt là phần mềm phục vụ kỹ nghệ phần
mềm. Đó là các phần mềm như chương trình dịch,
phần mềm gỡ rối, các cơng cụ hỗ trợ phân tích thiết
kế (CASE)... Các phần mềm này có thể xuất hiện
dưới dạng phần mềm máy tính cá nhân, phần mềm
hệ thống hoặc là phần mềm nghiệp vụ.

2.2 Các đặc tính quan trọng của sản phẩm phần mềm
Phần mềm thông thường được định nghĩa bao gồm:

- Các lệnh máy tính nhằm thực hiện các chức năng xác định

- Các cấu trúc dữ liệu cho phép chương trình thao tác với dữ liệu
- Các tài liệu giúp cho người dùng có thể vận hành

được phần mềm Bốn thuộc tính chủ chốt mà một hệ
phần mềm tốt phải có là:

 Có thể bảo trì được (Maintainability): phần mềm
tuổi thọ dài phải được viết và được lập tư liệu sao
cho việc thay đổi có thể tiến hành được mà khơng
quá tốn kém. Đây được coi là đặc tính chủ chốt
nhất của một phần mềm tốt. Để có thể bảo trì
được, phần mềm phải có một thiết kế tốt có tính
modun hóa cao, được viết bằng ngôn ngữ bậc cao

7

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

và được lập tài liệu (tài liệu phân tích, thiết kế,
chú thích mã nguồn, hướng dẫn người dùng...) đầy
đủ.
 Đáng tin cậy (Reliablity): phần mềm phải thực
hiện được điều mà người tiêu dùng mong mỏi và
không thất bại nhiều hơn những điều đã được đặc
tả. Điều này có nghĩa là phần mềm phải thỏa mãn
được nhu cầu của người dùng. Để đạt được yếu tố
đáng tin cậy, trước tiên người phát triển cần phải
hiểu một cách đúng đắn yêu cầu của người dùng

và sau đó cần thỏa mãn được các yêu cầu này
bằng các thiết kế và cài đặt tốt.
 Có hiệu quả (Efficiency): phần mềm khi hoạt động
phải khơng lãng phí tài nguyên hệ thống như bộ
nhớ, bộ xử lý. Nếu phần mềm chạy quá chậm hay
địi hỏi q nhiều bộ nhớ... thì dù có được cài đặt
rất nhiều chức năng cũng sẽ không được đưa vào
sử dụng. Tuy nhiên, ngoại trừ các phần mềm
nhúng hay thời gian thực đặc biệt, người ta thường
khơng cực đại hóa mức độ hiệu quả vì rằng việc
đó có thể phải dùng đếm các kỹ thuật đặc thù và
cài đặt bằng ngôn ngữ máy khiến cho chi phí tăng
cao và phần mềm rất khó thay đổi (tính bảo trì
kém).
 Dễ sử dụng (Usability): giao diện người sử dụng
phải phù hợp với khả năng và kiến thức của người
dùng, có các tài liệu hướng dẫn và các tiện ích trợ
giúp. Đối tượng chính của các phần mềm nghiệp
vụ thường là người khơng am hiểu về máy tính,
họ sẽ xa lánh các phần mềm khó học, khó sử
dụng.
Có thể thấy rõ, việc tối ưu hóa đồng thời các thuộc
tính này là rất khó khăn. Các thuộc tính có thể mẫu
thuẫn lẫn nhau, ví dụ như tính hiệu quả và tính dễ
sử dụng, tính bảo trì. Quan hệ giữa chi phí cải tiến
và hiệu quả đối với từng thuộc tính khơng phải là
tuyến tính. Nhiều khi một cải thiện nhỏ trong bất kỳ
thuộc tính nào cũng có thể là rất đắt.

Một khó khăn khác của việc phát triển phần mềm là


8

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

rất khó định lượng các thuộc tính của phần mềm.
Chúng ta thiếu các độ đo và các chuẩn về chất
lượng phần mềm. Vấn đề giá cả phải được tính đến
khi xây dựng một phần mềm. Chúng ta sẽ xây dựng
được một phần mềm dù phức tạp đến đâu nếu
khơng hạn chế về thời gian và chi phí. Điều quan
trọng là chúng ta phải xây dựng một phần mềm tốt
với một giá cả hợp lý và theo một lịch biểu được
định trước.

II. ĐỊNH NGHĨA VÀ CÁC ĐẶC TRƯNG CỦA CÔNG NGHỆ PHẦN MỀM

1. Định nghĩa Công nghệ phần mềm Công Nghệ Phần Mềm

- Là sự thiết lập và sử dụng các nguyên tắc khoa học
nhằm mục đích tạo ra các phần mềm một cách kinh
tế mà các phần mềm đó hoạt động hiệu quả và tin
cậy trên các máy tính.

- Là một quy trình có hệ thống được sử dụng trong
quá trình phân tích, thiết kế, hiện thực, kiểm tra và
bảo trì để bảo đảm các sản phẩm phần mềm được
sản xuất và hoạt động: hiệu quả, tin cậy, hữu dụng,

nâng cấp dễ dàng (modificable), khả chuyển
(portable), khả kiểm tra (testable), cộng tác được với
các hệ thống khác (interoperable) và vận hành đúng
(correct).

2. Các đặc trưng của Công nghệ phần mềm

- Efficiency: Phần mềm được sản xuất trong thời gian và điều kiện
vừa phải. Phần mềm vận hành đúng mức độ yêu cầu về công việc
và thời gian.

- Reliablity: Phần mềm vận hành ổn định và tương tác được với các
hệ thống ứng dụng

- Usability: Phần mềm có thể dùng được bởi người sử dụng và với
môi trường mà người sử dụng đang có. Chú ý tới giao diện, điều
kiện hệ thống,…

- Modifiability: Phần mềm có thể được thay đổi dể dàng, nhanh
chóng khi yêu cầu của người sử dụng thay đổi.

- Portability: Phần mềm có thể chuyển đổi dễ dàng sang các hệ

9

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

thống khác mà không cần phải điều chỉnh lớn. Chỉ cần recompile

nều cần thiết là tốt nhất.
- Testability: Phần mềm có thể được kiểm tra dễ dàng. Tốt nhất là
được modul hóa.
- Reusability: Phần mềm hay một phần có thể được tái sử dụng cho
các ứng dụng khác. Các modul có thiết kế tốt, độc lập và giao tiến
đơn giản, cả về tình tương thích cơng nghệ phát triển
- Maintainability: thiết kế của phần mềm có thể được hiểu dễ dàng
cũng như chuyển giao thuận tiện cho người khác trong quá trình
điều chỉnh, nâng cấp hay thay đổi theo yêu cầu.
- Interoperability: Phần mềm vận hành ổn định và đúng như mong
đợi. Trên hệ thống nhiều người dùng (multi users) phần mềm vẫn
hoạt động được với các vận hành khác của hệ thống.
- Correctness: Phần mềm phải tính tốn đúng và tạo ra kết quả đúng
và đúng với mục tiêu ứng dụng của người dùng.

III. MƠ HÌNH PHÁT TRIỂN PHẦN MỀM

1. Các công đoạn trong phát triển phần mềm

Các cơng đoạn chính tổng qt bao gồm 4 giai đoạn:

- Giai đoạn đặc tả: xác định các tính năng và điều kiện hoạt
động của hệ thống. (thu thập yêu cầu và phân tích)

- Giai đoạn phát triển: Thiết kế phần mềm (software design), viết
code (code generation)

- Giai đoạn kiểm tra: kiểm tra phần mềm (software testing),
kiểm tra tính hợp lý của phần mềm.


- Giai đoạn bảo trì: Sửa lỗi (correction), thay đổi mơi
trường thực thi (adaptation), tăng cường (enhancement)

a) Đặc tả

 Đây là bước hình thành bài tốn hoặc đề tài. Ở bước
này quản trị dự án hoặc phân tích viên hệ thống phải
biết được vai trò của phần mềm cần phát triển trong
hệ thống, đồng thời phải ước lượng công việc, lập
lịch biểu và phân công công việc.

 Bên cạnh đó chúng ta phải biết người đặt hàng
muốn gì. Các yêu cầu cần phải được thu thập đầy đủ
và được phân tích theo chiều ngang (rộng) và chiều

10

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

dọc (sâu). Công cụ sử dụng chủ yếu ở giai đoạn
này là các lược đồ, sơ đồ phản ánh rõ các thành
phần của hệ thống và mối liên quan giữa chúng với
nhau.

b) Phát triển

 Dựa vào các nội dung đã xác định được, nhóm phát
triển phần mềm dùng ngơn ngữ đặc tả hình thức

(dựa trên các kiến trúc toán học) hoặc phi hình
thức (tựa ngôn ngữ tự nhiên) hoặc kết hợp cả hai
để mơ tả những yếu tố sau đây của chương trình:

- Giá trị nhập, giá trị xuất.
- Các phép biến đổi
- Các yêu cầu cần đạt được ở mỗi điểm của chương trình.
 Phần đặc tả chỉ quan tâm chủ yếu đến giá trị vào,
ra chứ 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.

 Sau bước thiết kế là bước triển khai các đặc tả
chương trình thành một sản phẩm phần mềm dựa
trên một ngơn ngữ lập trình cụ thể. Trong giai đoạn
này các lập trình viên sẽ tiến hành cài đặt các thao
tác cần thiết để thực hiện đúng các yêu cầu đã
được đặc tả.

c) Kiểm tra

 Sau giai đoạn phát triển là chúng ta cần phải
chứng minh tính đúng đắn của chương trình sau
khi đã tiến hành cài đặt. Tuy nhiên thông thường ở
bước này chúng ta coi các chương trình như những
hộp đen. Vấn đề đặt ra là xây dựng một cách có
chủ đích các tập dữ liệu nhập khác nhau để giao
cho chương trình thực hiện rồi dựa vào kết quả
thu được để đánh giá chương trình. Cơng việc như
trên được gọi là kiểm thử chương trình.


 Cơng việc kiểm thử nhằm vào các mục tiêu sau:
- Kiểm tra để phát hiện lỗi của chương trình. Lưu ý rằng
kiểm thử không đảm bảo tuyệt đối tính đúng đắn của
chương trình do bản chất quy nạp khơng hồn tồn của cách

11

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

làm.
- Kiểm tra tính ổn định, hiệu quả cũng như khả năng tối đa của

chương trình.
 Tùy theo mục đích mà người ta thiết kế các tập dữ

liệu thử sao cho có thể phủ hết các trường hợp
cần quan tâm.
d) Bảo trì
 Cơng việc quản lý việc triển khai và sử dụng phần
mềm cũng là một vấn đề cần được quan tâm trong
qui trình phát triển phần mềm. Trong quá trình xây
dựng phần mềm, tồn bộ các kết quả phân tích,
thiết kế, cài đặt và hồ sơ liên quan cần phải được
lưu trữ và quản lý cẩn thận nhằm đảm bảo cho
công việc được tiến hành một cách hiệu quả
nhất và phục vụ cho công việc bảo trì phần mềm
về sau.
 Như vậy công việc quản lý không chỉ dừng lại trong

quá trình xây dựng phần mềm mà trái lại còn phải
được tiến hành liên tục trong suốt quá trình sống
của nó.

2. Các mơ hình phát triển phần mềm

Tùy theo quy mô và cơng nghệ phát triển, có các mơ hình
sản xuất khác nhau.

- Mơ hình tuần tự tuyến tính- waterfall
- Mơ hình bản mẫu
- Mơ hình xoắn ốc
- Mơ hình tiếp cận lặp
- Mơ hình Agile
- Mơ hình scrum
Mỗi mơ hình phù hợp với trình độ phát triển, quy mô
sản phẩm và yêu cầu ràng buộc cụ thể về thời gian
và tính chất của hệ thống.
2.1 Mơ hình tuần tự tuyến tính WaterFall
● Mô tả

12

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

- Đây được coi như là mơ hình phát triển phần
mềm đầu tiên được sử dụng.


- Mơ hình này áp dụng tuần tự các giai đoạn của
phát triển phần mềm.

- Đầu ra của giai đoạn trước là đầu vào của giai
đoạn sau. Giai đoạn sau chỉ được thực hiện khi
giai đoạn trước đã kết thúc. Đặc biệt không được
quay lại giai đoạn trước để xử lý các yêu cầu khi
muốn thay đổi.

● Các pha trong mô hình:
- Requirement gathering: Thu thập và phân tích
yêu cầu được ghi lại vào tài liệu đặc tả yêu cầu
trong giai đoạn này.
- System Analysis: Phân tích thiết kế hệ thống
phần mềm, xác định kiến trúc hệ thống tổng thể
của phần mềm.
- Coding: Hệ thống được phát triển theo từng unit
và được tích hợp trong giai đoạn tiếp theo. Mỗi
Unit được phát triển và kiểm thử bởi dev được
gọi là Unit Test.
- Testing: Cài đặt và kiểm thử phần mềm. Công
việc chính của giai đoạn này là kiểm tra và sửa
tất cả những lỗi tìm được sao cho phần mềm
hoạt động chính xác và đúng theo tài liệu đặc tả
yêu cầu.
- Implementation: Triển khai hệ thống trong môi
trường khách hàng và đưa ra thị trường.
- Operations and Maintenance: Bảo trì hệ thống
khi có bất kỳ thay đổi nào từ phía khách hàng,
người sử dụng.


● Ứng dụng:
- Các dự án nhỏ, ngắn hạn.
- Các dự án có ít thay đổi về u cầu và khơng có
những yêu cầu không rõ ràng.

13

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

2.2 Mơ hình bản mẫu

● Mô tả:

- Prototype là một mơ hình phát triển phần mềm được
phát triển dựa trên các yêu cầu hệ thống. Dựa vào bản
prototype mà khách hàng có cái nhìn tổng quan về hệ
thống thực tế.

- Prototype là một ý tưởng hay cho các hệ thống phức
tạp và lớn mà khơng có quy trình thủ cơng để giúp xác
định các yêu cầu.

- Prototype thường khơng phải là hệ thống hồn chỉnh
và nhiều chi tiết không được xây dựng trong bản
prototype. Mục tiêu là cung cấp một hệ thống với chức
năng tổng thể


● Các pha trong mơ hình:

- Yêu cầu thu thập và phân tích: Được xác định càng chi
tiết càng tốt. vấn đề này thường bao gồm việc phỏng
vấn 1 số người dùng đại diện cho tất cả các phòng ban
hoặc những khía cạnh của hệ thống hiện có.

- Thiết kế nhanh: Khi có yêu cầu, thiết kế sơ bộ hoặc
thiết kế nhanh cho hệ thống được tạo ra. Nó khơng
phải là một thiết kế chi tiết và chỉ bao gồm những khía
cạnh quan trọng của hệ thống, đưa ra ý tưởng về hệ
thống cho người dùng. một thiết kế nhanh chóng giúp
phát triển nguyên mẫu.

- Đánh giá của người dùng: Tiếp đây, hệ thống được đề
xuất được trình bày cho người dùng để đánh giá kỹ
lưỡng mẫu thử nghiệm để nhận ra điểm mạnh và điểm
yếu của nó như các gì sẽ được thêm vào hoặc loại bỏ.
Nhận xét và đề xuất được thu thập từ khách hàng và
được cung cấp cho nhà phát triển.

- Tinh chỉnh nguyên mẫu: Khi người dùng đánh giá
nguyên mẫu và nếu anh ta không hài lòng, nguyên
mẫu hiện nay được tinh chỉnh theo yêu cầu. Đó là, 1
mẫu thử nghiệm mới được phát triển với thông tin bổ
sung do khách hàng cung cấp. Nguyên mẫu mới được
đánh giá giống như nguyên mẫu trước đó. Q trình

14


Downloaded by nhim nhim ()

lOMoARcPSD|39474592

này tiếp tục cho đến khi tất cả những yêu cầu được chỉ
định bởi khách hàng được đáp ứng. Khi người dùng hài
lòng với mẫu thử nghiệm được phát triển, một hệ
thống cuối cùng được phát triển dựa trên nguyên mẫu
cuối cùng.
- Sản phẩm kỹ sư: một khi những yêu cầu được đáp ứng
hoàn toàn, người dùng chấp nhận nguyên mẫu cuối
cùng. Hệ thống cuối cùng được đánh giá kỹ lưỡng, Sau
đây là bảo trì định kỳ thường xuyên để ngăn ngừa thất
bại quy mô lớn và giảm thiểu thời gian chết.
- Nguyên mẫu Trước tiên được sửa đổi, dựa trên những ý
kiến được cung cấp bởi mọi người áp dụng, và 1
nguyên mẫu thứ 2 của hệ thống mới được xây dựng.
● Ứng dụng:
- Sử dụng khi hệ thống cần có nhiều tương tác với người
dùng cuối.
- Các hệ thống trực tuyến, giao diện web có lượng
tương tác rất cao với người dùng cuối, phù hợp nhất
với mô hình Prototype.
- Bản prototype phải đảm bảo rằng người dùng cuối liên
tục tương tác với hệ thống và cung cấp phản hồi cần
cải tiến về bản prototype đó để tạo ra một hệ thống có
thể sử dụng được
2.3 Mơ hình xoắn ốc
● Mô tả:
- Là mơ hình kết hợp giữa các tính năng của mơ hình

prototyping và mơ hình thác nước.
- Mô hình xoắn ốc được ưa chuộng cho các dự án lớn,
đắt tiền và phức tạp.
- Mơ hình này sử dụng những giai đoạn tương tự như mô
hình thác nước, về thứ tự, plan, đánh giá rủi ro, ….
● Các pha trong mơ hình
- Objective identification- Thiết lập mục tiêu: xác định
mục tiêu, đối tượng cho từng pha của dự án.

15

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

- Alternate evaluation- Đánh giá và giảm thiểu rủi ro:
đánh giá rủi ro và thực hiện các hành động để giảm
thiểu rủi ro.

- Product development- Phát triển sản phẩm: Lựa chọn
mơ hình phù hợp để phát triển hệ thống.

- Next phase planning- Lập kế hoạch: đánh giá dự án và
lập kế hoạch cho pha tiếp theo.

● Ứng dụng:

- Mơ hình này thường được sử dụng cho các ứng dụng
lớn và các hệ thống được xây dựng theo các giai đoạn
nhỏ hoặc theo các phân đoạn.


2.4 Mô hình tiếp cận lặp

● Mơ tả:
- Mơ hình Iterative (hay Iterative and Incremental) được
đề xuất dựa trên ý tưởng thay vì phải xây dựng và
chuyển giao hệ thống một lần thì sẽ đượ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. Quá trình này được lặp lại, tạo ra một
phiên bản mới của phần mềm vào cuối mỗi lần.
- Ý tưởng cơ bản đằng sau phương pháp này là pháp
triển một hệ thống thông qua các chu kỳ lặp đi lặp lại
(Iterative) và theo các phần nhỏ hơn tại một thời điểm
(Incremental).

● Các pha trong mơ hình:
- Requirement: Phân tích và định nghĩa yêu cầu phần
mềm.
- Build 1: Triển khai đơn giản với một tập nhỏ các yêu
cầu.
- Build 2: Cải tiến phiên bản trước đó bằng cách bổ sung
thêm các yêu cầu để tạo ra một phiên bản mới.
- Build 3: Giai đoạn cuối xây dựng được một phiên bản
phần mềm hoàn thiện với đầy đủ các yêu cầu phần
mềm.

● Ứng dụng:
- Yêu cầu chính phải được xác định; tuy nhiên, một số
chức năng hoặc yêu cầu cải tiến có thể phát triển theo


16

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

thời gian.
- Một công nghệ mới đang được sử dụng và đang được

học tập bởi nhóm phát triển trong khi làm việc trong
dự án.
- Phù hợp cho các dự án lớn và nhiệm vụ quan trọng.

2.5 Mơ hình Agile

● Mơ tả:
- Agile là một phương pháp phát triển phần mềm linh
hoạt mà chu trình của nó thể hiện ở các vịng đời con
liên tiếp nhau.
- Kết quả trong từng vòng đời con sẽ được phát hành
với một chức năng được hoàn thành.
- Agile là một tập hợp các phương thức phát triển lặp và
tăng dần trong đó các yêu cầu và giải pháp được phát
triển thông qua sự liên kết cộng tác giữa các nhóm tự
quản và liên chức năng.
- Agile là cách thức làm phần mềm linh hoạt để làm sao
đưa sản phẩm đến tay người dùng càng nhanh càng
tốt càng sớm càng tốt và được xem như là sự cải tiến
so với những mô hình cũ.


● Các pha trong mơ hình:
- Agile chia sản phẩm thành các bản xây dựng gia tăng
nhỏ.
- Các bản dựng này được cung cấp trong các lần lặp lại.
Mỗi lần lặp lại thường kéo dài từ khoảng một đến ba
tháng.
- Mỗi lần lặp Agile thực hiện các nhóm chức năng chéo
trên các lĩnh vực như:
 Lập kế hoạch
 Phân tích yêu cầu
 Thiết kế
 Code
 Kiểm thử đơn vị
 Kiểm thử chấp nhận
- Xuất bản sản phẩm.

● Ứng dụng:
- Agile phù hợp để thực hiện các dự án linh hoạt, thay
đổi theo thời đại và cập nhật thông tin liên tục giúp
cho sản phẩm tới tay khách hàng là sản phẩm thời

17

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

thượng nhất.


2.6 Mơ hình scrum

● Mô tả:
- Được xây dựng dựa trên những nguyên tắc của Agile.
- Phương pháp Scrum đơn giản hóa quy trình để phát
triển phần mềm đáp ứng các nhu cầu nghiệp vụ.
- Dựa trên cơ chế lặp và sự tăng trưởng.
- Mơ hình Scrum hoạt động dựa trên ba ngun lý cốt
lõi như sau:
 Transparency (sự minh bạch)
 Inspection (sự thanh tra)
 Adaptation (sự thích nghi)

● Các pha trong mơ hình:
- Chia các yêu cầu ra làm theo từng giai đoạn. Mỗi 1
giai đoạn(sprint) chỉ làm 1 số lượng yêu cầu nhất định.
- Mỗi một sprint thường kéo dài từ 1 tuần đến 4 tuần
(không dài hơn 1 tháng).
- Đầu sprint sẽ lên kế hoạch làm những yêu cầu nào.
Sau đó, sẽ thực hiện code và test. Cuối sprint là 1 sản
phẩm hoàn thiện cả code lẫn test có thể demo và
chạy được.
- Hoàn thành sprint 1, tiếp tục làm sprint 2, sprint... cho
đến khi hoàn thành hết các yêu cầu.
- Trong mỗi 1 sprint thì sẽ có họp hàng ngày – daily
meeting từ 15 – 20 phút. Mỗi thành viên sẽ báo cáo:
Hôm qua tôi đã làm gì? Hơm nay tơi sẽ làm gì? Có gặp
khó khăn gì khơng?

● Ứng dụng:

- Mơ hình Scrum được ứng dụng rộng rãi trong tất cả
các quy mô dự án nhưng chủ yếu là những dự án lớn,
phát triển bởi những tập đồn cơng nghệ lớn với quy
mơ nhân sự khổng lồ và có khả năng thực hiện nhiều
tác vụ.

IV. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA CÁC MƠ HÌNH PHÁT TRIỂN
PHẦN MỀM

Tên mơ hình Ưu điểm Nhược điểm

Mơ hình thác nước - - Dễ sử dụng, dễ tiếp cận, - Ít linh hoạt, phạm vi

18

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

Waterfall model dễ quản lý. điều chỉnh hạn chế.
- Sản phẩm phát triển - Rất khó để đo lường sự
theo các giai đoạn được phát triển trong từng giai
xác định rõ ràng. đoạn.
- Xác nhận ở từng giai - Mơ hình khơng thích
đoạn, đảm bảo phát hiện hợp với những dự án dài,
sớm các lỗi. đang diễn ra, hay những
dự án phức tạp, có nhiều
thay đổi về yêu cầu trong
vòng đời phát triển.
- Khó quay lại khi giai

đoạn nào đó đã kết thúc.

Mơ hình xoắn ốc - Spiral - Tốt cho các hệ phần - Manager cần có kỹ
model mềm quy mô lớn. năng tốt để quản lý dự án,
- Dễ kiểm soát các mạo đánh giá rủi ro kịp thời.
hiểm ở từng mức tiến - Chi phí cao và mất
hóa. nhiều thời gian để hoàn
- Đánh giá thực tế hơn thành dự án.
như là một quy trình làm - Phức tạp và khơng thích
việc, bởi vì những vấn đề hợp với các dự án nhỏ và
quan trọng đã được phát ít rủi ro.
hiện sớm hơn. - Yêu cầu thay đổi
thường xuyên dẫn đến lặp
vô hạn.
- Chưa được dùng rộng
rãi.

Mơ hình bản mẫu - - Phù hợp cho các dự án - Trên thực tế bản

Prototyping model mà các yêu cầu khó xác prototype có thể làm tăng

định và độ tin cậy vào sự phức tạp của hệ thống

các yêu cầu đã nêu là vì phạm vi của hệ thống

thấp. có thể mở rộng hơn các

- Người dùng tích cực kế hoạch ban đầu.

tham gia vào quá trình - Bản mẫu này được


phát triển phần mềm từ chính khách hàng nhận

đó sẽ hiểu rõ hơn về hệ xét đánh giá, nếu bản

thống đang được phát prototype mà khách hàng

triển. khơng hài lịng phải làm

- Lỗi có thể được phát lại gây tốn thời gian và

hiện sớm và được fix công sức.

sớm hơn.

- Người dùng sẽ dễ dàng

nhận thấy những điểm

bất cập và đưa ra các giải

pháp để giải quyết sớm

19

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

hơn.

- Tránh tình trạng bị thiếu
mất chức năng của hệ
thống.
- Những chức năng phức
tạp gây khó hiểu được
xác định và giải thích
sớm hơn.
- Xác thực được yêu cầu
của hệ thống từ đó thực
hiện nhanh hơn nhưng
không đầy đủ chức năng
của ứng dụng.

Mơ hình tiếp cận lặp - - Một số chức năng phần - Cần nhiều tài nguyên
Iterative model mềm có thể được phát hơn.
triển nhanh chóng và sớm - Các vấn đề về kiến trúc
được đưa vào sử dụng hoặc thiết kế hệ thống có
trong vòng đời. thể phát sinh.
- Kết quả thu được sớm - Khơng thích hợp cho
và theo định kỳ. các dự án nhỏ.
- Có thể lập kế hoạch - Sự phức tạp trong quản
phát triển song song. lý là nhiều hơn.
- Ít tốn kém hơn để thay - Cần có nguồn lực có kỹ
đổi phạm vi/yêu cầu, hỗ năng cao để phân tích rủi
trợ thay đổi yêu cầu; ro.
- Dễ dàng kiểm tra và gỡ - Tiến độ dự án phụ thuộc
lỗi trong quá trình lặp lại nhiều vào giai đoạn phân
nhỏ hơn. tích rủi ro.
- Một số chức năng phần
mềm có thể được phát

triển nhanh chóng và
sớm.
được đưa vào sử dụng
trong vòng đời.
- Kết quả thu được sớm
và theo định kỳ.
- Có thể lập kế hoạch
phát triển song song.
- Ít tốn kém hơn để thay
đổi phạm vi/yêu cầu, hỗ
trợ thay đổi yêu cầu;
- Dễ dàng kiểm tra và gỡ
lỗi trong quá trình lặp lại
nhỏ hơn.

20

Downloaded by nhim nhim ()


×