You are on page 1of 32

PHÂN TÍCH NGHIỆP VỤ THỰC CHIẾN

Chủ đề:
Các quy trình phát triển phần mềm

Phan Hải Hằng


NỘI DUNG CHÍNH

Các quy trình phát triển phần mềm

Công việc của BA trong sản xuất phần mềm

Các kỹ năng của BA


Quy trình phát triển phần mềm là gì?

Quy trình phát triển phần mềm là một cấu trúc bao gồm tập hợp các thao tác và các kết
quả tương quan sử dụng trong việc phát triển để sản xuất ra một sản phẩm phần mềm.

Các hoạt động cơ bản của quy trình phát triển phần mềm:
- Đặc tả phần mềm: Định nghĩa được các chức năng, điều kiện hoạt động của phần
mềm.
- Phát triển phần mềm: Là quá trình xây dựng các chức năng của phần mềm.
- Đánh giá phần mềm: Phầm mềm phải được đánh giá để chắc chắn rằng ít nhất
có thể thực hiện những gì mà tài liệu đặc tả yêu cầu.
- Tiến hóa phần mềm: Đây là quá trình hoàn thiện các chức năng cũng như giao
diện để ngày càng hoàn thiện phần mềm cũng như các yêu cầu đưa ra từ phía
khách hàng.
Quy định Pháp luật về quy trình sản xuất phần mềm

Theo Điều 3 Thông tư 13/2020/TT-BTTTT, các công đoạn trong quy trình sản xuất sản
phẩm phần mềm quy định bao gồm 07 công đoạn
3. Lập
1. Xác 2. Phân 4. Kiểm
trình, tra, thử
định tích và
viết mã nghiệm
yêu cầu thiết kế lệnh phần mềm
5.
H
o
à
n
t
6.
Cài
đặ
7.
P
h
át
h
à
t,
hi ch n
uy
ệ ển h,
n, gia p
o,
đ hư h
ó ớn â
g
n dẫ n
g n p
sử
g dụ h
ói ng, ối
bả
s o s
ả trì, ả
bả
n o n
p hà p
nh
h sả h
ẩ n ẩ
ph
m ẩm m
p ph p
ần
h m h
ầ ề ầ
m
n n
m m
ề ề
m m
Mô hình phát triển phần mềm dạng thác nước (Waterfall)

Đặc điểm: Các pha được thực hiện


theo trật tự nghiêm ngặt, không có
sự quay lui hay nhảy vượt pha

Áp dụng:
- Dự án nhỏ, ngắn hạn
- Dự án ít có sự thay đổi yêu
cầu, và không có những yêu
cầu không rõ ràng
Các giai đoạn của mô hình thác nước

- Yêu cầu: xác định các yêu cầu chức năng và phi chức
năng mà hệ thống phần mềm cần có. Kết quả của giai
đoạn này là tài liệu đặc tả yêu cầu
- Phân tích hệ thống: phân tích, thiết kế hệ thống để đáp
ứng yêu cầu của khách hàng
- Coding: thực hiện xây dựng sản phẩm dựa trên tài liệu
đặc tả yêu cầu và tài liệu thiết kế hệ thống
- Testing: kiểm thử hệ thống. Cuối giai đoạn sẽ tổ chức
kiểm thử chấp nhận của khách hàng (UAT)
- Triển khai: đưa hệ thống vào môi trường của khách
hàng.
- Cài đặt và bảo trì: Cấu hình, cài đặt, đào tạo cho khách
hàng
Ưu – nhược điểm của mô hình thác nước

Ưu điểm Nhược điểm


• Dễ sử dụng, dễ tiếp cận • Rất khó khi quay lại một
• Các giai đoạn được xác giai đoạn nào đó
định rõ ràng • Ít linh hoạt, phạm vi
• Xác nhận ở từng giai điều chỉnh khó khăn,
đoạn, đảm bảo sớm tốn kém
phát hiện ra lỗi
Mô hình phát triển phần mềm chữ V

Đặc điểm:
- Đây là mô hình mở rộng của mô hình thác
nước
- Kết hợp giai đoạn thử nghiệm với từng giai
đoạn phát triển tương ứng
- Mô hình có tính kỷ luật cao, giai đoạn tiếp
theo chỉ bắt đầu sau khi hoàn thành giai
đoạn trước

Áp dụng cho dự án có:


• Yêu cầu được xác định rõ ràng.
• Xác định sản phẩm ổn định.
• Công nghệ không thay đổi và được hiểu rõ bởi nhóm dự án.
• Không có yêu cầu không rõ ràng hoặc không xác định.
• Dự án ngắn.
Ưu – nhược điểm của mô hình chữ V

Ưu điểm Nhược điểm


• Khó quản lý kiểm soát rủi ro, rủi
• Đây là một mô hình có tính kỷ
luật cao và các giai đoạn được ro cao.
hoàn thành cùng một lúc. • Không phải là một mô hình tốt
• Hoạt động tốt cho các dự án nhỏ, cho các dự án phức tạp và hướng
khi các yêu cầu được hiểu rất rõ. đối tượng.
• Đơn giản và dễ hiểu và dễ sử
• Mô hình kém cho các dự án dài
dụng, dễ quản lý.
và đang diễn ra.
• Không thích hợp cho các dự án
có nguy cơ thay đổi yêu cầu
trung bình đến cao.
Mô hình phát triển phần mềm dạng xoắn ốc

Đặc điểm: Quy trình phát triển định


hướng rủi ro cho dự án phần mềm. Dựa
trên mô hình rủi ro riêng biệt của từng dự
án mà mô hình xoắn ốc đưa ra cách áp
dụng các yếu tố của 1 hoặc nhiều mô hình
xử lý như thác nước, gia tốc, mẫu tiến
hóa…

Áp dụng cho các dự án lớn, đắt tiền,


phức tạp. Hoặc các dự án chia
thành nhiều giai đoạn nhỏ, chia
thành các phân đoạn.
Các giai đoạn của mô hình xoắn ốc

•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.
•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.
Ưu – nhược điểm của mô hình xoắn ốc

Ưu điểm Nhược điểm


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

Đặc điểm:

- Một mô hình được lặp đi lặp lại từ khi start cho

đến khi làm đầy đủ spec

- Thay vì phát triển phần mềm từ đặc tả rồi mới bắt

đầu thực thi thì mô hình này có thể review dần dần

để đi đến yêu cầu cuối cùng.

- Quy trình phát triển được lặp đi lặp lại cho mỗi

một version của sản phẩm trong mỗi chu kỳ.

Áp dụng cho dự án có:


- 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 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
Ưu – nhược điểm của mô hình tiếp cận lặp

Ưu điểm Nhược điểm


• Xây dựng và hoàn thiện các bước sản • Yêu cầu tài nguyên nhiều.
phẩm theo từng bước.
• Các vấn đề về thiết kế hoặc kiến trúc hệ
• Thời gian làm tài liệu sẽ ít hơn so với thống có thể phát sinh bất cứ lúc nào.
thời gian thiết kế.
• Yêu cầu quản lý phức tạp hơn.
• Một số chức năng làm việc có thể được
• Tiến độ của dự án phụ thuộc nhiều vào
phát triển nhanh chóng và sớm trong
giai đoạn phân tích rủi ro.
vòng đời.
• Ít tốn kém hơn khi thay đổ phạm vi, yêu
cầu.
• Dễ quản lý rủi ro.
• Trong suốt vòng đời, phần mềm được
sản xuất sớm để tạo điều kiện cho khách
hàng đánh giá và phản hồi.
Mô hình phát triển phần mềm tăng trưởng

Đặc điểm:

- Chia sản phẩm ra thành nhiều phần

- Chu kỳ được chia thành các module nhỏ, dễ

quản lý

- Mỗi module sẽ đi qua các yêu cầu về thiết kế,

thực hiện, … như 1 vòng đời phát triển thông

thường.

Áp dụng cho dự án có:


- Yêu cầu đã được mô tả, định nghĩa và hiểu một cách rõ ràng.
- Khách hàng có nhu cầu về sản phẩm sớm.
Ưu – nhược điểm của mô hình Agile

Ưu điểm Nhược điểm

• Không thích hợp để xử lý các phụ thuộc


• Tăng cường tình thần làm việc nhóm và phức tạp.
trao đổi công việc hiệu quả. • Có nhiều rủi ro về tính bền vững, khả
• Các chức năng được xây dựng nhanh năng bảo trì và khả năng mở rộng.
chóng và rõ ràng, dế quản lý. • Cần một team có kinh nghiệm.
• Dễ dàng bổ sung, thay đổi yêu cầu. • Phụ thuộc rất nhiều vào sự tương tác rõ
• Quy tắc tối thiểu, tài liệu dễ hiểu, dễ sử ràng của khách hàng.
dụng. • Chuyển giao công nghệ cho các thành
viên mới trong nhóm có thể khá khó
khăn do thiếu tài liệu..
Mô hình phát triển phần mềm Agile

Đặc điểm:
- Phát triển phần mềm linh hoạt, làm sao để

phần mềm đến tay người dùng càng nhanh

càng tốt.
- Các yêu cầu và giải pháp dựa trên sự kết hợp

của các function


- Trong Agile, các tác vụ được chia thành các

khung thời gian nhỏ để cung cấp các tính năng

cụ thể cho bản phát hành cuối

Ứng dụng:
- Có thể được sử dụng với bất kỳ loại hình dự án nào, nhưng cần sự tham gia và tính
tương tác của khách hàng.
- Sử dụng khi khách hàng yêu cầu chức năng sẵn sàng trong khoảng thời gian ngắn.
Ưu – nhược điểm của mô hình tăng trưởng

Ưu điểm Nhược điểm


• Phát triển nhanh chóng. • Cần lập kế hoạch và thiết kế tốt.
• Mô hình này linh hoạt hơn, ít tốn kém • Tổng chi phí là cao hơn so với mô hình
hơn khi thay đổi phạm vi và yêu cầu. thác nước.
• Dễ dàng hơn trong việc kiểm tra và sửa
lỗi.
Mô hình phát triển phần mềm Scrum

Đặc điểm:
- 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?
- Scrum là mô hình hướng khách hàng
(Customer oriented).
Các nhân tố tạo nên quy trình Scrum

Tổ chức (Organization):
- Tổ chức nhóm dự án và Roles: Vai trò.
- Product Owner: Người sở hữu sản phẩm.
- ScrumMaster: Người điều phối.
- Development Team: Nhóm phát triển.
Tài liệu (Atifacts): đó chính là các kết quả đầu ra.
- Product Backlog: Danh sách các chức năng cần phát triển cho mỗi giai đoạn.
- Sprint Backlog: Danh sách các chức năng cần phát triển của sản phẩm.
- Estimation:Kết quả ước lượng của team.
Qui trình(Process): Qui định cách thức vận hành của SCRUM.
- Sprint Planning meeting: Hoạch định cho mỗi giai đoạn.
- Review: Tổng kết cho mỗi giai đoạn.
- Daily Scrum Meeting: Review hàng ngày.
Tổ chức dự án

+ Product Owner
Product Owner là người sở hữu sản phẩm, người quyết định sản phẩm có những chức năng
nào và là người quyết định Product Backlog.
Thông thường Role này được khách hàng hoặc người đại diện cho khách hàng đảm nhận.
+ Scrum Master
Scrum Master là người đảm bảo các qui trình của Scrum được thực hiện đúng và thuận lợi.
+ Development Team
Một nhóm từ 4-7 kỹ sư phần mềm chịu trách nhiệm phát triển sản phẩm.
Nhóm dự án phải làm việc với Product Owner để quyết định những gì sẽ làm trong Sprint
(giai đoạn) này và kết quả sẽ ra sao. Thảo luận để đưa ra các giải pháp, ước lượng thời gian
thực hiện công việc, họp đánh giá kết quả công việc.
+ Product Backlog
Product Backlog là danh sách các chức năng cần được phát triển của sản phẩm.
Danh sách này do Product Owner quyết định.Thường xuyên được cập nhật để đáp ứng được
nhu cầu thay đổi của khách hàng và dự án.
Ưu – nhược điểm của mô hình Scrum

Ưu điểm Nhược điểm

• Trình độ của nhóm cần có một kỹ năng


• Một người có thể thực hiện nhiều việc ví nhất định.
dụ như dev có thể test.
• Phải có sự hiểu biết về mô hình aglie.
• Phát hiện lỗi sớm.
• Có khả năng áp dụng được cho những • Khó khăn trong việc xác định ngân sách
dự án mà yêu cầu khách hàng không rõ và thời gian.
ràng ngay từ đầu
• Luôn nghe ý kiến phản hồi từ khách hàng
và thay đổi theo nên thời gian sẽ kéo dài.
• Vai trò của PO rất quan trọng, PO là
người định hướng sản phẩm. Nếu PO
làm không tốt sẽ ảnh hưởng đến kết quả
chung.
Công việc của BA trong sản xuất phần mềm
Xác định yêu cầu dự án

- Xác định dự án

- Xác định kế hoạch thực hiện dự án

- Xác định các stakeholder


Khơi gợi yêu cầu

Khơi gợi yêu cầu (Elicitation)

- Sử dụng các phương pháp/kỹ thuật để có thể lấy


được yêu cầu từ khách hàng.
Phân tích yêu cầu

Mục tiêu:

- Xác định vấn đề thực sự của khách hàng


- Xác định yêu cầu thực sự của khách hàng
- Những thứ khách hàng cần ưu tiên
Tài liệu hóa

- Đưa toàn bộ thông tin phân tích vào tài liệu


- Quản lý tài liệu
- Phương pháp áp dụng khi tài liệu hóa:
- Tận dụng các template có sẵn
- Dùng ngôn ngữ mô hình hóa
Các giai đoạn khác

Giai đoạn thiết kế (Design)


• Thu thập/làm rõ thêm yêu cầu
• Phối hợp cùng team làm tài liệu thiết kế

Giai đoạn phát triển (Develop)

• Hỗ trợ team phát triển sản phẩm

Giai đoạn kiểm thử (Test)


• Test nội bộ (có thể)
• Thực hiện UAT (User Acceptance Test)

Hoàn thiện sản phẩm (Deploy)

• Hướng dẫn sử dụng hệ thống

Bảo trì (Maintain)

• Hỗ trợ khách hàng


BA, PO, PM

BA – Business Analyst PO – Product Owner PM – Project Manager

Tập trung vào cung cấp


giá trị hoặc ROI -
Tập trung vào chất lượng Return On Investment Tập trung vào tốc
và xây dựng dự án (Tỉ lệ lợi nhuận ròng độ để cung cấp sản
trên tổng chi phí đầu phẩm đúng tiến độ
tư)
Lưu ý quan trọng

Hiệu quả đầu ra quan trọng hơn phương pháp nào

You might also like