



















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