lOMoARcPSD| 58968691
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM
VIỆN ĐÀO TẠO SAU ĐẠI HỌC
MÔN: CÔNG NGHỆ PHẦN MỀM
Ngành: CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn: ThS. Nguyễn Kim Hưng
Học viên thực hiện: Quách Đình Nhân
Mã BSKT: 25CT001
TP. Hồ Chí Minh, 2025
lOMoARcPSD| 58968691
2
Mục lục
1. Tìm hiểu các qui trình Công Nghệ Phần Mềm hiện nay .................................................... 2
1.1. Mô hình Thác nước (Waterfall Model) ..................................................................................... 2
1.2. Mô hình Xoắn ốc (Spiral Model) ............................................................................................... 3
1.3. Mô hình tiến hoá (Evolutionary Process Model) ..................................................................... 4
1.4. Mô hình lặp (Iterative Model) ................................................................................................... 5
2. Mô hình Agile ........................................................................................................................ 6
2.1. Mô hình Agile là gì ...................................................................................................................... 6
2.2. Các đặc trưng của mô hình Agile .............................................................................................. 7
2.3. Values và Principles .................................................................................................................... 8
2.3.1. 4 Values .................................................................................................................................................... 8
2.3.2. 12 Principles ............................................................................................................................................. 8
2.4. Các phương pháp Agile .............................................................................................................. 9
2.4.1. Scrum ....................................................................................................................................................... 9
2.4.2. Kanban: .................................................................................................................................................. 10
2.4.3. Extreme Programming (XP): .................................................................................................................. 10
2.5. Các bước trong mô hình Agile ................................................................................................. 11
2.6. Một số ưu nhược điểm .............................................................................................................. 11
2.6.1. Nhược điểm ............................................................................................................................................ 11
2.6.2. Ưu điểm: ................................................................................................................................................. 12
2.6.3. Phân tích chi tiết mô hình Scrum trên Jira .............................................................................................. 12
3. Chi tiết các bước sử dụng Jira quản lý dự án .................................................................... 13
3.1. Giới thiệu dự án: ....................................................................................................................... 13
3.2. Các bước thực hiện trong Scrum trên Jira: ........................................................................... 13
3.2.1. Thiết lập Jira ........................................................................................................................................... 13
3.2.2. Xác định product Backlog ...................................................................................................................... 14
3.2.3. Lập kế hoạch Sprint ................................................................................................................................ 15
3.2.4. Thực hiện Sprint ..................................................................................................................................... 16
3.2.5. Sprint review & Retrospective ............................................................................................................... 19
4. Tài liệu tham khảo .............................................................................................................. 20
1. Tìm hiểu các qui trình Công Nghệ Phần Mềm hiện nay
1.1. Mô hình Thác nước (Waterfall Model)
- Các pha của mô hình thác nước bao gồm:
Phân tích và xác định các yêu cầu
lOMoARcPSD| 58968691
3
Thiết kế hệ thống và phần mềm
Cài đặt và kiểm thử đơn vị
Tích hợp và kiểm thử hệ thống
Vận hành và bảo trì
- Trong hình thác nước, các pha trên phải được thực hiện một cách
tuần tự trước sau không quay lại; kết thúc pha trước rồi mới được
thực hiện pha tiếp theo.
- Nhược điểm: thiếu linh hoạt, khó thay đổi pha trước sau khi đã bắt đầu
pha tiếp theo.
- Ưu điểm: mô hình thác nước giúp dễ dàng quản lý và theo dõi tiến độ,
và đặc biệt phù hợp với các dự án yêu cầuràng và không thay đổi
nhiều.
Hình 1.1: Royce Final Model
1.2. Mô hình Xoắn ốc (Spiral Model)
- Mô hình xoắn ốc là phương pháp phát triển phần mềm được đề xuất bởi
Barry Boehm vào năm 1986. Mô hình này phối hợp các yếu tố của mô
hình Thác nước và mô hình lặp, quy trình phát triển phần mềm được
biểu diễn như một vòng xoắn ốc.
- Các pha trong qui trình xoắn ốc bao gồm:
Determine Objectives ( Thiết lập mục tiêu)
lOMoARcPSD| 58968691
4
Identify and resolve risks ( xác định và xử lý rủi ro)
Development and Test ( Phát triển và kiểm thử)
Phan the next Iteration ( Lập kế hoặc cho pha tiếp theo)
Hình 1.2: Spiral model (Boehm, 1988)
- Khuyết điểm: Do chú trọng vào phân tích rủi ro phải lập kế hoạch
liên tục, hình xoắn c có thể phải yêu cầu chi phí nguồn lực cao hơn
các hình phát triển phần mềm khác. Spiral model thích hợp nhất cho
các dán phức tạp và dài hạn, thể không hiệu quả cho các dự án nhỏ,
thời gian triển khai ngắn.
- Ưu điểm: Nhờ vào việc liên tục đánh giá và xử lý rủi ro trong các vòng
lặp giúp dự án phát triển ổn định và tránh được các sự cố không mong
muốn. Mô hình có tính linh hoạt cao dễ dàng thích nghi với những thay
đổi từ khách hàng.
1.3. Mô hình tiến hoá (Evolutionary Process Model)
- Mô hình tiến hoá là mô hình xây dựng phần mềm trong đó sản phẩm
được phát triển và hoàn thiện qua từng bước nhỏ và lặp đi lặp lại. Mỗi
phiên bản của phần mềm sẽ được phát triển dựa trên yêu cầu và phản
lOMoARcPSD| 58968691
5
hổi từ phiên bản trước, sau đó tinh chỉnh cho đến khi thoả mãn yêu
cầu của khách hàng.
- Phương pháp thực hiện mô hình tiến hoá:
Phát triển thăm dò: Mục đích là để làm việc với khách hàng từ
những yêu cầu ràng sơ bộ ban đầu sau đó dần dần được bổ sung
những yêu cầu mới cho đến khi khách hàng được thoả mãn.
Loại bỏ mẫu thử: Mục đích nhằm tìm hiểu các yêu cầu của hệ
thống. Phương pháp này bắt đầu từ những yêu cầu không ràng
ít thông tin. Các mẫu thử được xây dựng và đưa tới người dùng,
sau đó đánh giá phân loại những yêu cầu thực sự cần thiết. N
vậy mẫu thử chỉ dùng để xác định rõ yêu cầu của người sử dụng.
Hình 1.3: Mô hình xây dựng tiến triển.
1.4. Mô hình lặp (Iterative Model)
- Mô hình lặp là phương pháp phát triển phần mềm mà trong đó phần
mềm được phát triển qua một chuỗi các vòng lặp. Mỗi vòng lặp sản
xuất ra một phiên bản của sản phẩm, sau mỗi vòng lặp sản phẩm
thể được đánh giá và cải thiện dựa trên phản hồi của khách hàng.
- Các Pha của mô hình lặp:
Lập kế hoạch và xác định yêu cầu
Phát triển và thiết kế phần mềm
lOMoARcPSD| 58968691
6
Kiểm thử và đánh giá
Điều chỉnh và cải tiến
Tiến hành các vòng lặp tiếp theo
Hình 1.4: Mô hình lặp
- Các loại mô hình lặp bao gồm
Mô hình tăng trưởng
RUP (Rational Unified Process)
Mô hình Agile
- Ưu điểm: Mô hình lặp cho phép các yêu cầu thay đổi trong quá
trình phát tiển mà không ảnh hưởng tới tiến độ. Mỗi vòng lặp cho
ra một sản phẩm mà người dùng có thể dùng được ngay, giúp người
dùng kiểm tra đánh giá từ ngay giai đoạn đầu của dự án, giúp đội
ngũ phát triển phát hiện lỗi và xử lý kịp thời.
2. Mô hình Agile
2.1. Mô hình Agile là
Mô hình Agile là một phương pháp phát triển phần mềm linh hoạt và có
tính chất lặp đi lặp lại (iterative). Mô hình Agile dựa trên việc chia nhỏ qui trình
phát triển thành các vòng lặp ngắn, gọi là Sprint (hoặc Iteration). Mỗi vòng lặp
này thường kéo dài từ một đến bốn tuần và bao gồm tất cả các công đoạn từ
phân tích, thiết kế, lập trình, kiểm thử đến hoàn thiện chức năng của phần mềm.
lOMoARcPSD| 58968691
7
Mục tiêu chính của Agile là cung cấp sản phẩm có giá trị sớm nhất có thể và cải
tiến sản phẩm liên tục dựa trên phản hồi của khách hàng.
Hình 2.1: Mô hình Agile
2.2. Các đặc trưng của mô hình Agile
Các đặc trưng chính của mô hình Agile bao gồm:
Linh hoạt và thích ứng: Agile cho phép thay đổi yêu cầu trong suốt q
trình phát triển phần mềm, giúp dễ dàng thích nghi với sự thay đổi và yêu
cầu của khách hàng.
Tập trung vào con người: Agile đề cao sự hợp tác giữa các thành viên
trong nhóm phát triển và các bên liên quan. Đội ngũ phát triển thường
xuyên giao tiếp để hiểu rõ yêu cầu và đạt được mục tiêu chung.
Lập kế hoạch và phát triển theo vòng lặp: Phát triển phần mềm được
chia thành các vòng lặp ngắn (Sprints) giúp nhóm dễ dàng kiểm tra, đánh
giá, và điều chỉnh sản phẩm.
Phản hồi liên tục: Phản hồi từ khách hàng và người sử dụng được thu
thập thường xuyên, đảm bảo rằng sản phẩm đáp ứng đúng nhu cầu thực tế
của người dùng.
lOMoARcPSD| 58968691
8
Chất lượng cao: Agile nhấn mạnh việc duy trì chất lượng phần mềm
trong suốt quá trình phát triển, qua đó giúp phát hiện sớm lỗi và đảm bảo
sản phẩm ổn định và đáng tin cậy.
2.3. Values và Principles
2.3.1. 4 Values
Individuals and interactions over processes and tools ( Con người
và sự tương tác quan trọng hơn quy trình và công cụ)
Working software over comprehensive documentation ( Phần mềm
hoạt động quan trọng hơn tài liệu chi tiết)
Customer collaboration over contract negotiation ( Hợp tác với
khách hàng quan trọng hơn thương thảo hợp đồng)
Responding to change over following a plan ( Phản ứng với thay
đổi quan trọng hơn tuân thủ kế hoạch)
2.3.2. 12 Principles
Sự hài lòng của khách hàng thông qua việc cung cấp phần mềm có
giá trị và sẵn sàng sử dụng ngay từ giai đoạn đầu.
Chấp nhận thay đổi yêu cầu dù ở bất kỳ giai đoạn nào của phát
triển, ngay cả khi phần mềm đã gần hoàn thiện.
Thường xuyên cung cấp phần mềm hoạt động được, vài tuần thay
vì vài tháng.
Hợp tác chặt chẽ giữa nhà phát triển và khách hàng.
Xây dựng các nhóm phát triển tự quản lý có năng lực và được tin
tưởng.
Giao tiếp trực tiếp giữa các thành viên trong nhóm phát triển và
khách hàng.
lOMoARcPSD| 58968691
9
Đảm bảo phần mềm hoạt động tốt là yếu tố quan trọng.
Tổ chức phát triển phần mềm phải có khả năng duy trì một tốc
độ phát triển ổn định và bền vững.
Phát triển bền vững, có khả năng xây dựng một nhịp độ ổn định.
Chú trọng vào Kỹ thuật và thiết kế tốt nhất.
Tạo ra một mã nguồn đơn giản và dễ hiểu.
Tạo ra một môi trường làm việc có động lực, nơi các thành viên
trong nhóm được khuyến khích và hỗ trợ.
Đội ngũ thường xuyên tự đánh giá và điều chỉnh để trở nên hiệu
quả hơn.
2.4. Các phương pháp Agile
Một số phương pháp Agile phổ biến hiện nay bao gồm:
2.4.1. Scrum
Scrum là phương pháp phổ biến trong Agile, tập trung vào việc quản
lý dự án qua các vòng lặp gọi là Sprint, mỗi Sprint kéo dài từ 1-4
tuần. Scrum nhấn mạnh vào việc phân chia công việc thành các phần
nhỏ và giao tiếp thường xuyên trong suốt quá trình phát triển.
Hình 2.2: Scrum Framework
lOMoARcPSD| 58968691
10
2.4.2. Kanban:
Kanban là phương pháp quản lý công việc trực quan, sử dụng bảng Kanban
để theo dõi tiến độ trạng thái của từng tác vụ. Kanban không phân chia thành
các Sprint như Scrum, tập trung vào việc cải thiện tiến trình công việc liên tục.
Hình 2.3: Kanban Board
2.4.3. Extreme Programming (XP):
Extreme Programming tập trung vào việc phát triển phần mềm có chất
lượng cao bằng cách sử dụng các kỹ thuật lập trình như Pair Programming, Unit
Test, và cải tiến mã nguồn liên tục.
Hình 2.4: Planning and Feedback loops in Extreme Programming
lOMoARcPSD| 58968691
11
2.5. Các bước trong mô hình Agile
Các bước trong mô hình Agile có thể được mô tả như sau:
1. Lập kế hoạch và xác định yêu cầu: Xác định các yêu cầu của sản phẩm
và lập kế hoạch cho các Sprint tiếp theo.
2. Phát triển và thiết kế phần mềm: Thiết kế và phát triển các tính năng
nhỏ trong mỗi Sprint.
3. Kiểm thử phần mềm: Kiểm tra các tính năng đã phát triển để đảm bảo
chúng hoạt động đúng như yêu cầu.
4. Phản hồi từ khách hàng: Thu thập phản hồi từ khách hàng và điều chỉnh
sản phẩm dựa trên yêu cầu thay đổi.
5. Tái lập kế hoạch cho Sprint tiếp theo: Dựa trên phản hồi và kết quả
kiểm thử, lập kế hoạch cho Sprint tiếp theo.
6. Lặp lại quá trình cho đến khi hoàn thành: Tiếp tục các vòng lặp cho
đến khi phần mềm hoàn thiện và đáp ứng tất cả các yêu cầu của khách
hàng.
2.6. Một số ưu nhược điểm
2.6.1. Nhược điểm
Khó khăn trong việc quản lý các dự án lớn: Agile có thể gặp khó khăn
khi áp dụng cho các dự án lớn hoặc khi có sự tham gia của nhiều nhóm
phát triển.
Cần nhiều tương tác giữa các bên liên quan: Agile yêu cầu sự tương tác
liên tục giữa các bên, điều này có thể trở nên phức tạp nếu các bên liên
quan không có khả năng tham gia thường xuyên.
Không phù hợp với tất cả loại dự án: Các dự án có yêu cầu rất cụ thể
hoặc không có sự thay đổi nhiều có thể không phù hợp với mô hình Agile.
lOMoARcPSD| 58968691
12
Phương pháp Agile khá phức tạp nên đòi hỏi có sự đào tạo và hướng dẫn
cụ thể
Thiếu tài liệu hướng dẫn: mô hình này chú trọng vào việc sản phẩm hoạt
động tốt hơn là tài liệu hướng dẫn, điều này có thể gây khó khăn trong việc
bảo trì hoặc phát triển trong tương lai.
2.6.2. Ưu điểm:
Linh hoạt và dễ thay đổi: Agile cho phép dễ dàng thay đổi yêu cầu trong
quá trình phát triển mà không làm gián đoạn dự án.
Phản hồi nhanh chóng từ khách hàng: Phản hồi từ khách hàng được thu
thập ngay sau mỗi vòng lặp, giúp đội ngũ phát triển điều chỉnh và cải tiến
sản phẩm kịp thời.
Cải thiện chất lượng phần mềm: Việc kiểm thử và cải tiến liên tục giúp
phát hiện và sửa lỗi sớm, tăng cường chất lượng phần mềm.
Giao tiếp tốt giữa các bên liên quan: Các cuộc họp hàng ngày và các
sprint review giúp duy trì giao tiếp và hợp tác chặt chẽ giữa đội ngũ phát
triển và khách hàng.
Tiết kiệm thời gian và chi phí: Bằng cách phát triển theo từng phần nhỏ
và hoàn thiện chúng dần dần, Agile giúp tiết kiệm chi phí so với việc phát
triển phần mềm một lần cho toàn bộ sản phẩm.
2.6.3. Phân tích chi tiết mô hình Scrum trên Jira
Mô hình Scrum bao gồm các vai trò chính:
Product Owner (Chủ sở hữu sản phẩm): Người chịu trách nhiệm xác
định và quản lý các yêu cầu của sản phẩm.
Scrum Master: Người đảm bảo rằng nhóm Scrum tuân theo các quy trình
Scrum và loại bỏ các trở ngại.
lOMoARcPSD| 58968691
13
Development Team (Nhóm phát triển): Nhóm các kỹ sư phần mềm làm
việc để phát triển sản phẩm.
Các thành phần chính trong Scrum:
Sprints: Các chu kỳ phát triển ngắn (thường từ 1-4 tuần), tại đó nhóm
phát triển tập trung vào việc hoàn thành các nhiệm vụ được xác định
trước.
Product Backlog: Danh sách ưu tiên các yêu cầu, tính năng và công việc
cần thực hiện cho sản phẩm.
Sprint Backlog: Danh sách các công việc nhóm phát triển sẽ thực hiện
trong một Sprint.
Daily Standup: Cuộc họp ngắn mỗi ngày để đội ngũ trao đổi về tiến độ
và các vấn đề gặp phải.
Sprint Review: Cuộc họp sau mỗi Sprint để trình bày kết quả đạt được
nhận phản hồi từ các bên liên quan.
Sprint Retrospective: Cuộc họp để đánh giá các quy trình làm việc và
tìm cách cải thiện trong Sprint tiếp theo.
3. Chi tiết các bước sử dụng Jira quản lý dự án
3.1. Giới thiệu dự án:
Tên dự án: Nâng cấp dịch vụ khách hàng trên website
3.2. Các bước thực hiện trong Scrum trên Jira:
3.2.1. Thiết lập Jira
- Tạo một dự án mới trên Jira với template Scrum
- Cấu hình Backlog và Sprint ban đầu
- Thiết lập các trạng thái công việc
lOMoARcPSD| 58968691
14
Hình 3.1: Tạo Project với template Scrum
3.2.2. Xác định product Backlog
- Xác định 2 Epic chính:
Improve Customer service Increase product page conversion -
Các Story:
Provide live chat as feature
Create a video based Knowledge base
Create a review based system for collecting and showing reviews
Hình 3.2: Tạo các story
- Task trong giai đoạn này:
Add Whatsapp chat to our Website
lOMoARcPSD| 58968691
15
Add Facebook messenger chat to our Website
Hình 3.3: Tạo các Tasks
Hình 3.4: Link Tasks to Story
3.2.3. Lập kế hoạch Sprint
- Sprint 1: Hoàn thành hai task Add Whatsapp chat and Facebook
Messenger chat (2 tuần)
- Sprint 2: Create a video based knowledge base ( 2 tuần)
- Sprint 2: Create a review based system ( 2 tuần)
lOMoARcPSD| 58968691
16
Hình 3.5: Tạo Sprint 1
Hình 3.6: Edit Sprint
3.2.4. Thực hiện Sprint
- Mỗi ngày nhóm họp ngắn 15phút để cập nhật tiến độ
- Các thành viên cập nhật trạng thái công việc trên Jira
lOMoARcPSD| 58968691
17
Hình 3.7: Cập nhật trạng thái công việc
Hình 3.8: Board view
lOMoARcPSD| 58968691
18
Hình 3.9: List view
Hình 3.10: Issues view: quan sát được chi tiết tất cả các work item
lOMoARcPSD| 58968691
19
Hình 3.11: Project page: nơi mà team member trao đổi về Project.
3.2.5.Sprint review & Retrospective
- Retrospective, nhóm sẽ đánh giá các quy trình và công cụ sử dụng
trong Sprint, và tìm cách cải thiện cho Sprint tiếp theo. Trên Jira, bạn
có thể tạo các tickets để theo dõi các cải tiến trong quy trình làm
việc hoặc vấn đề cần giải quyết.
Hình 3.12: Project page – Retrospective
lOMoARcPSD| 58968691
20
4. Tài liệu tham khảo
1. Nguyễn Chánh Thành, Bài giảng Công nghệ Phần mềm, 2014.
2. Nguyễn Kim Hưng, Slide bài giảng Lý thuyết công nghệ phần mềm.
3. "What is Agile?". Agile Alliance. 29 June 2015. Retrieved 16 July 2024.
4. Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim
Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken
Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward
Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001).
"Manifesto for Agile Software Development". Agile Alliance.
Retrieved 14 June 2010.

Preview text:

lOMoAR cPSD| 58968691
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM
VIỆN ĐÀO TẠO SAU ĐẠI HỌC
MÔN: CÔNG NGHỆ PHẦN MỀM Ngành: CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn: ThS. Nguyễn Kim Hưng
Học viên thực hiện: Quách Đình Nhân Mã BSKT: 25CT001 TP. Hồ Chí Minh, 2025 lOMoAR cPSD| 58968691 Mục lục
1. Tìm hiểu các qui trình Công Nghệ Phần Mềm hiện nay .................................................... 2
1.1. Mô hình Thác nước (Waterfall Model) ..................................................................................... 2
1.2. Mô hình Xoắn ốc (Spiral Model) ............................................................................................... 3
1.3. Mô hình tiến hoá (Evolutionary Process Model) ..................................................................... 4
1.4. Mô hình lặp (Iterative Model) ................................................................................................... 5
2. Mô hình Agile ........................................................................................................................ 6
2.1. Mô hình Agile là gì ...................................................................................................................... 6
2.2. Các đặc trưng của mô hình Agile .............................................................................................. 7
2.3. Values và Principles .................................................................................................................... 8
2.3.1. 4 Values .................................................................................................................................................... 8
2.3.2. 12 Principles ............................................................................................................................................. 8
2.4. Các phương pháp Agile .............................................................................................................. 9
2.4.1. Scrum ....................................................................................................................................................... 9
2.4.2. Kanban: .................................................................................................................................................. 10
2.4.3. Extreme Programming (XP): .................................................................................................................. 10
2.5. Các bước trong mô hình Agile ................................................................................................. 11
2.6. Một số ưu nhược điểm .............................................................................................................. 11
2.6.1. Nhược điểm ............................................................................................................................................ 11
2.6.2. Ưu điểm: ................................................................................................................................................. 12
2.6.3. Phân tích chi tiết mô hình Scrum trên Jira .............................................................................................. 12
3. Chi tiết các bước sử dụng Jira quản lý dự án .................................................................... 13
3.1. Giới thiệu dự án: ....................................................................................................................... 13
3.2. Các bước thực hiện trong Scrum trên Jira: ........................................................................... 13
3.2.1. Thiết lập Jira ........................................................................................................................................... 13
3.2.2. Xác định product Backlog ...................................................................................................................... 14
3.2.3. Lập kế hoạch Sprint ................................................................................................................................ 15
3.2.4. Thực hiện Sprint ..................................................................................................................................... 16
3.2.5. Sprint review & Retrospective ............................................................................................................... 19
4. Tài liệu tham khảo .............................................................................................................. 20
1. Tìm hiểu các qui trình Công Nghệ Phần Mềm hiện nay
1.1. Mô hình Thác nước (Waterfall Model)
- Các pha của mô hình thác nước bao gồm:

Phân tích và xác định các yêu cầu 2 lOMoAR cPSD| 58968691
Thiết kế hệ thống và phần mềm
Cài đặt và kiểm thử đơn vị
Tích hợp và kiểm thử hệ thống Vận hành và bảo trì
- Trong mô hình thác nước, các pha trên phải được thực hiện một cách
tuần tự trước sau và không quay lại; kết thúc pha trước rồi mới được
thực hiện pha tiếp theo.
- Nhược điểm: thiếu linh hoạt, khó thay đổi pha trước sau khi đã bắt đầu pha tiếp theo.
- Ưu điểm: mô hình thác nước giúp dễ dàng quản lý và theo dõi tiến độ,
và đặc biệt phù hợp với các dự án có yêu cầu rõ ràng và không thay đổi nhiều.
Hình 1.1: Royce Final Model
1.2. Mô hình Xoắn ốc (Spiral Model)
- Mô hình xoắn ốc là phương pháp phát triển phần mềm được đề xuất bởi
Barry Boehm vào năm 1986. Mô hình này phối hợp các yếu tố của mô
hình Thác nước và mô hình lặp, quy trình phát triển phần mềm được
biểu diễn như một vòng xoắn ốc.
- Các pha trong qui trình xoắn ốc bao gồm:
Determine Objectives ( Thiết lập mục tiêu) 3 lOMoAR cPSD| 58968691
Identify and resolve risks ( xác định và xử lý rủi ro)
Development and Test ( Phát triển và kiểm thử)
Phan the next Iteration ( Lập kế hoặc cho pha tiếp theo)
Hình 1.2: Spiral model (Boehm, 1988)
- Khuyết điểm: Do chú trọng vào phân tích rủi ro và phải lập kế hoạch
liên tục, mô hình xoắn ốc có thể phải yêu cầu chi phí nguồn lực cao hơn
các mô hình phát triển phần mềm khác. Spiral model thích hợp nhất cho
các dự án phức tạp và dài hạn, có thể không hiệu quả cho các dự án nhỏ,
thời gian triển khai ngắn.
- Ưu điểm: Nhờ vào việc liên tục đánh giá và xử lý rủi ro trong các vòng
lặp giúp dự án phát triển ổn định và tránh được các sự cố không mong
muốn. Mô hình có tính linh hoạt cao dễ dàng thích nghi với những thay đổi từ khách hàng.
1.3. Mô hình tiến hoá (Evolutionary Process Model)
- Mô hình tiến hoá là mô hình xây dựng phần mềm trong đó sản phẩm
được phát triển và hoàn thiện qua từng bước nhỏ và lặp đi lặp lại. Mỗi
phiên bản của phần mềm sẽ được phát triển dựa trên yêu cầu và phản 4 lOMoAR cPSD| 58968691
hổi từ phiên bản trước, sau đó tinh chỉnh cho đến khi thoả mãn yêu cầu của khách hàng.
- Phương pháp thực hiện mô hình tiến hoá:
Phát triển thăm dò: Mục đích là để làm việc với khách hàng từ
những yêu cầu rõ ràng sơ bộ ban đầu sau đó dần dần được bổ sung
những yêu cầu mới cho đến khi khách hàng được thoả mãn.
Loại bỏ mẫu thử: Mục đích nhằm tìm hiểu các yêu cầu của hệ
thống. Phương pháp này bắt đầu từ những yêu cầu không rõ ràng
và ít thông tin. Các mẫu thử được xây dựng và đưa tới người dùng,
sau đó đánh giá và phân loại những yêu cầu thực sự cần thiết. Như
vậy mẫu thử chỉ dùng để xác định rõ yêu cầu của người sử dụng.
Hình 1.3: Mô hình xây dựng tiến triển.
1.4. Mô hình lặp (Iterative Model)
- Mô hình lặp là phương pháp phát triển phần mềm mà trong đó phần
mềm được phát triển qua một chuỗi các vòng lặp. Mỗi vòng lặp sản
xuất ra một phiên bản của sản phẩm, sau mỗi vòng lặp sản phẩm có
thể được đánh giá và cải thiện dựa trên phản hồi của khách hàng.
- Các Pha của mô hình lặp:
Lập kế hoạch và xác định yêu cầu
Phát triển và thiết kế phần mềm 5 lOMoAR cPSD| 58968691 Kiểm thử và đánh giá
Điều chỉnh và cải tiến
Tiến hành các vòng lặp tiếp theo
Hình 1.4: Mô hình lặp
- Các loại mô hình lặp bao gồm Mô hình tăng trưởng
RUP (Rational Unified Process) Mô hình Agile
- Ưu điểm: Mô hình lặp cho phép các yêu cầu thay đổi trong quá
trình phát tiển mà không ảnh hưởng tới tiến độ. Mỗi vòng lặp cho
ra một sản phẩm mà người dùng có thể dùng được ngay, giúp người
dùng kiểm tra đánh giá từ ngay giai đoạn đầu của dự án, giúp đội
ngũ phát triển phát hiện lỗi và xử lý kịp thời. 2. Mô hình Agile
2.1. Mô hình Agile là gì
Mô hình Agile là một phương pháp phát triển phần mềm linh hoạt và có
tính chất lặp đi lặp lại (iterative). Mô hình Agile dựa trên việc chia nhỏ qui trình
phát triển thành các vòng lặp ngắn, gọi là Sprint (hoặc Iteration). Mỗi vòng lặp
này thường kéo dài từ một đến bốn tuần và bao gồm tất cả các công đoạn từ
phân tích, thiết kế, lập trình, kiểm thử đến hoàn thiện chức năng của phần mềm. 6 lOMoAR cPSD| 58968691
Mục tiêu chính của Agile là cung cấp sản phẩm có giá trị sớm nhất có thể và cải
tiến sản phẩm liên tục dựa trên phản hồi của khách hàng. Hình 2.1: Mô hình Agile
2.2. Các đặc trưng của mô hình Agile
Các đặc trưng chính của mô hình Agile bao gồm: •
Linh hoạt và thích ứng: Agile cho phép thay đổi yêu cầu trong suốt quá
trình phát triển phần mềm, giúp dễ dàng thích nghi với sự thay đổi và yêu cầu của khách hàng. •
Tập trung vào con người: Agile đề cao sự hợp tác giữa các thành viên
trong nhóm phát triển và các bên liên quan. Đội ngũ phát triển thường
xuyên giao tiếp để hiểu rõ yêu cầu và đạt được mục tiêu chung. •
Lập kế hoạch và phát triển theo vòng lặp: Phát triển phần mềm được
chia thành các vòng lặp ngắn (Sprints) giúp nhóm dễ dàng kiểm tra, đánh
giá, và điều chỉnh sản phẩm. •
Phản hồi liên tục: Phản hồi từ khách hàng và người sử dụng được thu
thập thường xuyên, đảm bảo rằng sản phẩm đáp ứng đúng nhu cầu thực tế của người dùng. 7 lOMoAR cPSD| 58968691 •
Chất lượng cao: Agile nhấn mạnh việc duy trì chất lượng phần mềm
trong suốt quá trình phát triển, qua đó giúp phát hiện sớm lỗi và đảm bảo
sản phẩm ổn định và đáng tin cậy.
2.3. Values và Principles 2.3.1. 4 Values
Individuals and interactions over processes and tools ( Con người
và sự tương tác quan trọng hơn quy trình và công cụ)
Working software over comprehensive documentation ( Phần mềm
hoạt động quan trọng hơn tài liệu chi tiết)
Customer collaboration over contract negotiation ( Hợp tác với
khách hàng quan trọng hơn thương thảo hợp đồng)
Responding to change over following a plan ( Phản ứng với thay
đổi quan trọng hơn tuân thủ kế hoạch) 2.3.2. 12 Principles
Sự hài lòng của khách hàng thông qua việc cung cấp phần mềm có
giá trị và sẵn sàng sử dụng ngay từ giai đoạn đầu.
Chấp nhận thay đổi yêu cầu dù ở bất kỳ giai đoạn nào của phát
triển, ngay cả khi phần mềm đã gần hoàn thiện.
Thường xuyên cung cấp phần mềm hoạt động được, vài tuần thay vì vài tháng.
Hợp tác chặt chẽ giữa nhà phát triển và khách hàng.
Xây dựng các nhóm phát triển tự quản lý có năng lực và được tin tưởng.
Giao tiếp trực tiếp giữa các thành viên trong nhóm phát triển và khách hàng. 8 lOMoAR cPSD| 58968691
Đảm bảo phần mềm hoạt động tốt là yếu tố quan trọng.
Tổ chức phát triển phần mềm phải có khả năng duy trì một tốc
độ phát triển ổn định và bền vững.
Phát triển bền vững, có khả năng xây dựng một nhịp độ ổn định.
Chú trọng vào Kỹ thuật và thiết kế tốt nhất.
Tạo ra một mã nguồn đơn giản và dễ hiểu.
Tạo ra một môi trường làm việc có động lực, nơi các thành viên
trong nhóm được khuyến khích và hỗ trợ.
Đội ngũ thường xuyên tự đánh giá và điều chỉnh để trở nên hiệu quả hơn.
2.4. Các phương pháp Agile
Một số phương pháp Agile phổ biến hiện nay bao gồm: 2.4.1. Scrum
Scrum là phương pháp phổ biến trong Agile, tập trung vào việc quản
lý dự án qua các vòng lặp gọi là Sprint, mỗi Sprint kéo dài từ 1-4
tuần. Scrum nhấn mạnh vào việc phân chia công việc thành các phần
nhỏ và giao tiếp thường xuyên trong suốt quá trình phát triển.
Hình 2.2: Scrum Framework 9 lOMoAR cPSD| 58968691 2.4.2. Kanban:
Kanban là phương pháp quản lý công việc trực quan, sử dụng bảng Kanban
để theo dõi tiến độ và trạng thái của từng tác vụ. Kanban không phân chia thành
các Sprint như Scrum, mà tập trung vào việc cải thiện tiến trình công việc liên tục.
Hình 2.3: Kanban Board
2.4.3. Extreme Programming (XP):
Extreme Programming tập trung vào việc phát triển phần mềm có chất
lượng cao bằng cách sử dụng các kỹ thuật lập trình như Pair Programming, Unit
Test, và cải tiến mã nguồn liên tục.
Hình 2.4: Planning and Feedback loops in Extreme Programming 10 lOMoAR cPSD| 58968691
2.5. Các bước trong mô hình Agile
Các bước trong mô hình Agile có thể được mô tả như sau:
1. Lập kế hoạch và xác định yêu cầu: Xác định các yêu cầu của sản phẩm
và lập kế hoạch cho các Sprint tiếp theo.
2. Phát triển và thiết kế phần mềm: Thiết kế và phát triển các tính năng nhỏ trong mỗi Sprint.
3. Kiểm thử phần mềm: Kiểm tra các tính năng đã phát triển để đảm bảo
chúng hoạt động đúng như yêu cầu.
4. Phản hồi từ khách hàng: Thu thập phản hồi từ khách hàng và điều chỉnh
sản phẩm dựa trên yêu cầu thay đổi.
5. Tái lập kế hoạch cho Sprint tiếp theo: Dựa trên phản hồi và kết quả
kiểm thử, lập kế hoạch cho Sprint tiếp theo.
6. Lặp lại quá trình cho đến khi hoàn thành: Tiếp tục các vòng lặp cho
đến khi phần mềm hoàn thiện và đáp ứng tất cả các yêu cầu của khách hàng.
2.6. Một số ưu nhược điểm
2.6.1. Nhược điểm
Khó khăn trong việc quản lý các dự án lớn: Agile có thể gặp khó khăn
khi áp dụng cho các dự án lớn hoặc khi có sự tham gia của nhiều nhóm phát triển.
Cần nhiều tương tác giữa các bên liên quan: Agile yêu cầu sự tương tác
liên tục giữa các bên, điều này có thể trở nên phức tạp nếu các bên liên
quan không có khả năng tham gia thường xuyên.
Không phù hợp với tất cả loại dự án: Các dự án có yêu cầu rất cụ thể
hoặc không có sự thay đổi nhiều có thể không phù hợp với mô hình Agile. 11 lOMoAR cPSD| 58968691
Phương pháp Agile khá phức tạp nên đòi hỏi có sự đào tạo và hướng dẫn cụ thể
Thiếu tài liệu hướng dẫn: mô hình này chú trọng vào việc sản phẩm hoạt
động tốt hơn là tài liệu hướng dẫn, điều này có thể gây khó khăn trong việc
bảo trì hoặc phát triển trong tương lai. 2.6.2. Ưu điểm:
Linh hoạt và dễ thay đổi: Agile cho phép dễ dàng thay đổi yêu cầu trong
quá trình phát triển mà không làm gián đoạn dự án.
Phản hồi nhanh chóng từ khách hàng: Phản hồi từ khách hàng được thu
thập ngay sau mỗi vòng lặp, giúp đội ngũ phát triển điều chỉnh và cải tiến sản phẩm kịp thời.
Cải thiện chất lượng phần mềm: Việc kiểm thử và cải tiến liên tục giúp
phát hiện và sửa lỗi sớm, tăng cường chất lượng phần mềm.
Giao tiếp tốt giữa các bên liên quan: Các cuộc họp hàng ngày và các
sprint review giúp duy trì giao tiếp và hợp tác chặt chẽ giữa đội ngũ phát triển và khách hàng.
Tiết kiệm thời gian và chi phí: Bằng cách phát triển theo từng phần nhỏ
và hoàn thiện chúng dần dần, Agile giúp tiết kiệm chi phí so với việc phát
triển phần mềm một lần cho toàn bộ sản phẩm.
2.6.3. Phân tích chi tiết mô hình Scrum trên Jira
Mô hình Scrum bao gồm các vai trò chính: •
Product Owner (Chủ sở hữu sản phẩm): Người chịu trách nhiệm xác
định và quản lý các yêu cầu của sản phẩm. •
Scrum Master: Người đảm bảo rằng nhóm Scrum tuân theo các quy trình
Scrum và loại bỏ các trở ngại. 12 lOMoAR cPSD| 58968691 •
Development Team (Nhóm phát triển): Nhóm các kỹ sư phần mềm làm
việc để phát triển sản phẩm.
Các thành phần chính trong Scrum: •
Sprints: Các chu kỳ phát triển ngắn (thường từ 1-4 tuần), tại đó nhóm
phát triển tập trung vào việc hoàn thành các nhiệm vụ được xác định trước. •
Product Backlog: Danh sách ưu tiên các yêu cầu, tính năng và công việc
cần thực hiện cho sản phẩm. •
Sprint Backlog: Danh sách các công việc nhóm phát triển sẽ thực hiện trong một Sprint. •
Daily Standup: Cuộc họp ngắn mỗi ngày để đội ngũ trao đổi về tiến độ
và các vấn đề gặp phải. •
Sprint Review: Cuộc họp sau mỗi Sprint để trình bày kết quả đạt được và
nhận phản hồi từ các bên liên quan. •
Sprint Retrospective: Cuộc họp để đánh giá các quy trình làm việc và
tìm cách cải thiện trong Sprint tiếp theo.
3. Chi tiết các bước sử dụng Jira quản lý dự án
3.1. Giới thiệu dự án:
Tên dự án: Nâng cấp dịch vụ khách hàng trên website
3.2. Các bước thực hiện trong Scrum trên Jira:
3.2.1. Thiết lập Jira
- Tạo một dự án mới trên Jira với template Scrum
- Cấu hình Backlog và Sprint ban đầu
- Thiết lập các trạng thái công việc 13 lOMoAR cPSD| 58968691
Hình 3.1: Tạo Project với template Scrum
3.2.2. Xác định product Backlog - Xác định 2 Epic chính:
Improve Customer service Increase product page conversion - Các Story: Provide live chat as feature
Create a video based Knowledge base
Create a review based system for collecting and showing reviews
Hình 3.2: Tạo các story
- Task trong giai đoạn này:
Add Whatsapp chat to our Website 14 lOMoAR cPSD| 58968691
Add Facebook messenger chat to our Website
Hình 3.3: Tạo các Tasks
Hình 3.4: Link Tasks to Story
3.2.3. Lập kế hoạch Sprint
- Sprint 1: Hoàn thành hai task Add Whatsapp chat and Facebook Messenger chat (2 tuần)
- Sprint 2: Create a video based knowledge base ( 2 tuần)
- Sprint 2: Create a review based system ( 2 tuần) 15 lOMoAR cPSD| 58968691
Hình 3.5: Tạo Sprint 1 Hình 3.6: Edit Sprint
3.2.4. Thực hiện Sprint
- Mỗi ngày nhóm họp ngắn 15phút để cập nhật tiến độ
- Các thành viên cập nhật trạng thái công việc trên Jira 16 lOMoAR cPSD| 58968691
Hình 3.7: Cập nhật trạng thái công việc Hình 3.8: Board view 17 lOMoAR cPSD| 58968691 Hình 3.9: List view
Hình 3.10: Issues view: quan sát được chi tiết tất cả các work item 18 lOMoAR cPSD| 58968691
Hình 3.11: Project page: nơi mà team member trao đổi về Project.
3.2.5.Sprint review & Retrospective
- Retrospective, nhóm sẽ đánh giá các quy trình và công cụ sử dụng
trong Sprint, và tìm cách cải thiện cho Sprint tiếp theo. Trên Jira, bạn
có thể tạo các tickets để theo dõi các cải tiến trong quy trình làm
việc hoặc vấn đề cần giải quyết.
Hình 3.12: Project page – Retrospective 19 lOMoAR cPSD| 58968691
4. Tài liệu tham khảo
1. Nguyễn Chánh Thành, Bài giảng Công nghệ Phần mềm, 2014.
2. Nguyễn Kim Hưng, Slide bài giảng Lý thuyết công nghệ phần mềm.
3. "What is Agile?". Agile Alliance. 29 June 2015. Retrieved 16 July 2024.
4. Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim
Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken
Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward
Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001).
"Manifesto for Agile Software Development". Agile Alliance.
Retrieved 14 June 2010. 20