You are on page 1of 11

Phần mềm là một tập quy tắc xử lý thể hiện thành chương trình (mã lệnh

+ dữ liệu) được cài đặt vào phần cứng phù hợp để tự thực hiện một vài
công việc thay con người.
Dưới góc nhìn của người sử dụng, phần mềm là:
 Chương trình thực thi được trên máy tính hoặc các thiết bị chuyên
dụng khác; 
Nhằm hỗ trợ cho các nhà chuyên môn trong từng lĩnh vực và thực
hiện tốt hơn các thao tác nghiệp vụ.
Góc nhìn của nhà phát triển:
Là một hệ thống bao gồm 3 thành phần cơ bản:
Giao tiếp;
o Xử lý;
o Lưu trữ.
được xây dựng để thực hiện theo yêu cầu của người dùng.

Theo định nghĩa của IEEE, phần mềm bao gồm các thành phần:
o Chương trình máy tính (code);
o Các thủ tục;
o Tài liệu;
o Dữ liệu cần thiết cho sự vận hành của hệ thống.
ĐẶC ĐIỂM CỦA PHÀN MỀM
-Không có tính chất vật lý ( vô hình ...)
- Không bị hao mòn chỉ bị lạc hậu
- Sao chép được
-Sự thay đổi linh hoạt
-Phần mềm được sử dụng qua các versions
VD VỀ PHẦN MỀM HỆ THÔNG : win7, 8 , 10 ,linux
Vd về phần mềm ứng dụng word , excel , youtobe
Vd về phần mềm trí tuệ nhân tạp chat gpt, whisper,
Codex...
I mô hình thác nước
Các pha của mô hình thác nước
- là mô hình đầu tiên được giới thiệu vào năm 1970
- được gọi là mô hình vòng đời tuần tự tuyến tính
- cách tiếp cận vòng đời phát triển hệ thống (SDLC) sớm nhất sử dụng để
phát triển phần mềm
2 các pha trong mô hình
1) Thu thập và phân tích yêu cầu
2) Thiết kế hệ thống
3) Thực hiện
4) Tích hợp và kiểm thử
5) Triển khai hệ thống
6) Bảo trì
3 Đánh giá hệ thống
- mô hình thác nước minh họa quá trình phát triển phần mềm theo dòng
tuần tự tuyến tín giai đoạn sau chỉ được bắt đầu nếu giai đoạn trước hoàn
thành
- Tất cả các giai đoạn được xếp tầng vơis nhau trong đó tiến trình được
xem như chảy đều đặn qua các giai đoạn từ trên xuống dưới
- Giai đoạn tiếp theo chỉ được thực hiện sau khi đạt được mục tiêu xác
định ở giai đoạn trước
- Các giai đoạn không được phép chồng chéo lên nhau
*Ưu điểm
- đơn giản, dễ hiểu , dễ sd
- dễ quản lý
- mỗi giai đoạn có nhiệm vụ và 1 quy trình cụ thể phù hợp với dự án nhỏ
và ngắn hạn
- các giai đoạn được xác định rõ ràng
-ấn định được các mốc thời gian quan trọng
-dễ dàng sắp xếp các công việc
- Quá trình và kết quả được ghi chép đầy đủ
*Nhược điểm
- Rủi ro cao, không chắc chắn
- không phải là một mô hình tốt cho các dự án phức tạp và hướng đối
tượng
- kém hiệu quả cho các dự án dài
- không phù hợp với yêu cầu các dự án mà có nguy cơ thay đổi
- Không thể đáp ứng với sản phẩm có yêu cầu thay đổi linh hoạt
- sự điều chỉnh trong phạm vi vòng đời có thể kết thúc một dự án
*Mô hình này thích hợp với :
-yêu cầu được ghi chép đầy đủ , rõ ràng , ổn định
- định nghĩa sản phẩm ổn định
- không mang tính linh hoạt
- nguồn lực đầy đủ kỹ thuật chuyên môn cần thiết để hỗ trợ sp
- dự án ngắn hạn
II MÔ HÌNH CẬN LẶP Iterative

-3.1. Giới thiệu mô hình Mô hình tiếp cận lặp (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ả 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 vào cuối mỗi lần
- Ý tưởng cơ bản đằng sau phương pháp này là phát 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).
3.2 Các pha
1. Triển khai đơn giản với một tập nhỏ các yêu cầu.
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.
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
*DÁNH GIÁ
 Trong quá trình phát triển phần mềm, các lần lặp lại chu trình phát
triển phần mềm có thể cùng diễn ra. Quá trình này có thể được mô tả
như là một cách tiếp cận "tiếp thu tiến hóa" hoặc "xây dựng gia tăng".
 Trong mô hình gia tăng này, toàn bộ yêu cầu được chia thành nhiều
bản dựng khác nhau. Trong mỗi lần lặp lại, mô-đun phát triển trải qua
các giai đoạn yêu cầu, thiết kế, triển khai và thử nghiệm. Mỗi bản
phát hành tiếp theo của mô-đun bổ sung chức năng cho bản phát hành
trước đó. Quá trình tiếp tục cho đến khi hệ thống hoàn chỉnh đã sẵn
sàng theo yêu cầu
 Chìa khóa để sử dụng thành công mô hình Iterative là xác nhận
nghiêm ngặt các yêu cầu, xác minh & kiểm tra từng phiên bản của
phần mềm so với các yêu cầu đó trong mỗi chu kỳ của mô hình.
 - Mô hình Iterative thích hợp với dự án phần mềm có:
- Các yêu cầu của hệ thống được xác định hoàn chỉnh và rõ ràng.
- Các yêu cầu chính phải được xác định trước khi thực hiện các giai đoạn
lặp; tuy nhiên, một số chức năng hoặc các cải tiến được yêu cầu có thể
phát triển theo thời gian.
❖ Ưu điểm:
➢ 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;
 Các vòng trước đóng vai trò là mẫu thử để giúp tìm hiểu thêm các yêu
cầu ở những vòng tiếp theo
 Thời gian cho các pha đầu ít hơn
 Phù hợp với các dự án lớn , quan trọng
 Phần mềm sớm được đưa vào sử dụng để tạo điều kiện thuận lợi cho
việc nhận các đánh giá phản hồi của khách hàng
❖ Nhược điểm:
➢ Cần nhiều tài nguyên hơn;
➢ Các vấn đề về kiến trúc hoặc thiết kế hệ thống có thể phát sinh;
➢ Không thích hợp cho các dự án nhỏ;
➢ Sự phức tạp trong quản lý là nhiều hơn;
➢ Cần có nguồn lực có kỹ năng cao để phân tích rủi ro;
➢ Tiến độ dự án phụ thuộc nhiều vào giai đoạn phân tích rủi ro
III MÔ HÌNH TẠO MẪU PHẦN MỀM Prototyping
1 Giới thiệu mô hình
- Mô hình Tạo mẫu phần mềm (Software Prototype model) hay mô hình
bản mẫu (Prototyping) đề cập đến việc xây dựng các nguyên mẫu ứng
dụng phần mềm hiển thị chức năng của sản phẩm đang được phát triển,
nhưng có thể không thực sự giữ logic chính xác của phần mềm gốc.
-Tạo mẫu phần mềm đang trở nên rất phổ biến như một mô hình phát
triển phần mềm, vì nó cho phép hiểu các yêu cầu của khách hàng ở giai
đoạn phát triển ban đầu.
-Prototyping được sử dụng để cho phép người dùng đánh giá các đề xuất
của nhà phát triển và thử chúng trước khi triển khai.
2 Các pha của mô hình
Mô tả 3 giai đoạn trong mô hình Prototyping:
- Nge khách trình bày;
- Tạo/sửa bản mẫu;
- Khách kiểm tra bản mẫu
1. Thu thập và phân tích yêu cầu
2. ❖ Thiết kế nhanh
3. Xây dựng nguyên mẫu
4. Đánh giá của khách hàng
5. Tinh chế sản phẩm
6. Sản phẩm của kỹ sư
3 Đánh giá
ƯU ĐIỂM
-Cho phép thực hiện các giao diện thực tế thoản mãn yêu cầu của khách
hàng với hệ thống phát triển
- Cho phép nhận đánh giá, phàn hồi về chức năng của hệ thống
- Nâng cao khả năng phát hiện lỗi và sự cố
- giảm thời gian và chi phí
Nhược điểm
-tăng độ phức tạp của hệ thống
- Người dùng có thể bị nhầm lẫn giữa nguyên mẫu và hệ thống thực tế.
-❖ Rủi ro phân tích yêu cầu không đủ do phụ thuộc quá nhiều vào
nguyên mẫu.
V Mô hình xoắn ốc Spiral
1 giới thiệu mô hình
- được bary boehm đề cập đến năm 1986
- Mô hình xoắn ốc này là sự kết hợp giữa mô hình quá trình phát triển lặp
đi lặp lại và mô hình phát triển tuyến tính tuần tự
-kết hợp ý tưởng phát triển lặp đi lặp lại có hệ thống, được kiểm soát của
mô hình thác nước.
-Nó cho phép phát hành gia tăng sản phẩm hoặc cải tiến gia tăng thông
qua mỗi lần lặp lại theo vòng xoắn ốc.
Đường phát triển xoắn ốc, tính từ trong ra được phân chia thành các
nhiệm vụ:
➢ Phát triển ý tưởng (Concept Development)
➢ Phát triển hệ thống (System Development)
➢ Cải tiến hệ thống (System Enhencement)
➢ Bảo trì hệ thống (System Maintenance)
2 Các pha trong mô hình
về mô hình xoắn ốc với 6 vùng làm việc:
❖ Liên hệ, giao tiếp với khách hàng:
❖ Lập kế hoạch: ước tính; lập kế hoạch
❖ Phân tích rủi ro;
❖ Thực thi kỹ thuật:
❖ Xây dựng và phát hành
❖ Đánh giá hệ thống
mô hình xoắn ốc với 5 vùng làm việc:

❖ Liên hệ, giao tiếp với khách hàng


❖ Lập kế hoạch: ước tính; lập kế hoạch
❖ Mô hình hóa
❖ Xây dựng và phát hành
❖ Triển khai
mô hình xoắn ốc với 4 vùng làm việc:
❖ Xác định mục tiêu và xác định các giải pháp thay thế:
❖ Xác định và giải quyết Rủi ro
❖ Phát triển phiên bản tiếp theo của Sản phẩm
❖ Xem xét và lập kế hoạch cho Giai đoạn tiếp theo
3 ĐÁNH GIÁ
- Spiral chú trọng vào phân tích rủi ro dự án
-Mỗi giai đoạn trong mô hình được bắt đầu với yêu cầu/mục tiêu thiết kế
và kết thúc với việc khách hàng kiểm tra tiến độ của từng giai đoạn.
- Mô hình sử dụng prototyping như một cơ chế giảm rủi ro
-Mỗi giai đoạn trong mô hình được bắt đầu với yêu cầu/mục tiêu thiết kế
và kết thúc với việc khách hàng kiểm tra tiến độ của từng giai đoạn.
-Mô hình xoắn ốc được gọi là Meta model vì nó thay thế tất cả các mô
hình SDLC khác.
-Nó duy trì cách tiếp cận có tính hệ thống, giống như mô hình vòng đời
(Life Cycle - Model) nhưng kết hợp nó thành một framework lặp lại và
được phản ánh nhiều hơn từ thế giới thực
Mô hình Spiral thích hợp với dự án phần mềm:
➢ Khi dự án có quy mô lớn.
➢ Khi việc đánh giá (phân tích) các chi phí và các rủi ro là quan trọng.
➢ Bất cứ lúc nào cũng có thể có yêu cầu thay đổi từ phía khách hàng.
➢ Khi dự án được yêu cầu release thường xuyên.
➢ Khi yêu cầu không rõ ràng và phức tạp.
➢ Đối với các dự án có độ rủi ro từ trung bình đến cao.
➢ Những người sử dụng không chắc chắn về các nhu cầu của họ.
➢ Các yêu cầu phần mềm phức tạp và lớn.
➢ Cần phát triển một dòng sản phẩm mới (New product line).
➢ Khi có các thay đổi quan trọng (cần nghiên cứu và khảo sát cẩn thận)
Ưu điểm:
➢ Xử lý rủi ro:
➢ Tốt cho các dự án lớn:
➢ Tính linh hoạt trong Yêu cầu
➢ Sự hài lòng của khách hàng
Nhược điểm
➢ Phức tạp
➢ Chi phí cao
➢ Phụ thuộc quá nhiều vào Phân tích rủi ro:
➢ Khó khăn trong việc quản lý thời gian:
VI Phương pháp phát triển phần mềm linh hoạt
1. Giới thiệu về phương pháp Agile

2.

-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
- là một tập hợp các phương thức phát triển lặp và tăng dần
-đư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 phương pháp Agile phổ biến:
➢ Scrum
➢ Phát triển phần mềm thích ứng (ASD)
➢ Phương pháp phát triển hệ thống động (DSDM)
➢ Phát triển theo hướng tính năng (FDD)
➢ Phát triển phần mềm tinh gọn (LSD).
Triết lý của Agile:
➢ Cá nhân & tương tác hơn là quy trình & công cụ;
➢ Cung cấp phần mềm chạy tốt hơn là bộ tài liệu hoàn chỉnh;
➢ Cộng tác với khách hàng, hơn là sự thương lượng trong hợp đồng; ➢
Thích ứng với thay đổi, hơn là tuân thủ theo kế hoạch.
12 nguyên tắc Agile
➢ Thỏa mãn yêu cầu của khách hàng
➢ Sẵn sàng cho những thay đổi
➢ Cung cấp phần mềm hoạt động được trong thời gian ngắn
➢ Cộng tác cùng làm việc
➢ Tạo động lực làm việc
➢ Đối thoại trực tiếp
➢ Phần mềm chạy được là thước đo chính của tiến độ dự án.
➢ Phát triển bền vững và duy trì việc phát triển liên tục
➢ Liên tục quan tâm đến kỹ thuật và thiết kế để tăng cường tính linh
hoạt’
➢ Đơn giản
➢ Nhóm tự tổ chức
➢ Tự phản ánh thường xuyên
Các dự án áp dụng được Agile Model:
➢ Khi dự án có những thay đổi cần thiết phải thực hiện;
➢ Các yêu cầu mới ít ảnh hưởng tới lịch trình dự án;
➢ Phát triển dự án phần mềm cần có có sự linh động.
Ưu điểm
➢ Khách hàng thường xuyên có cơ hội thấy và trải nghiệm thực tế sản
phẩm
➢ Khách hàng có nhận thức mạnh mẽ về quyền sở hữu
➢ Với phương pháp quản lý Agile, sản phẩm có thể chuyển giao nhanh
với những tính năng hoàn thiện cơ bản
➢ Sự phát triển tập trung vào người dùng
Nhược điểm
➢ Phụ thuộc vào khách hàng:
➢ Mô hình Agile thật sự hiệu quả khi các team member hoàn toàn tập
trung vào dự án
➢ Ảnh hưởng tới tiến độ dự án
➢ Phát sinh chi phí dự án
VI SCRUM
1. Giới thiệu mô hình
-được xây dựng dựa trên những nguyên tắc của Agile.
-đơ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.
-Những dự án áp dụng Scrum được phát triển qua một chuỗi các vòng
sprint lặp lại mỗi 1-4 tuần
Mô hình Scrum hoạt động dựa trên ba nguyên lý cốt lõi như sau:
 sự minh bạch
 sự kiểm tra
 sự thích nghi
7.2. Nhóm Scrum
(1) Product Owner (Chủ Sản phẩm),
(2) Nhóm phát triển (Development Team)
(3) Scrum Master
7.3. Sprint trong Scrum
-Sprint trong Scrum là khoảng thời gian mà Nhóm Scrum tiến hành tất cả
các hoạt động cần thiết để sản xuất được một phần tăng trưởng có khả
năng chuyển giao được.
-Sprint được đóng khung thời gian, có độ dài không quá một tháng và
nhất quán trong suốt quá trình phát triển
-Sprint ngắn gia tăng tính thích ứng với thay đổi và giảm thiểu rủi ro
nhưng tăng chi phí quản lý (thời gian cho các cuộc họp tăng lên). Các
Sprint diễn ra liên tiếp nhau mà không bị gián đoạn.
-Trong suốt Sprint:
✓ Không cho phép bất kì sự thay đổi nào ảnh hưởng đến Mục tiêu
Sprint
✓ Thành phần Nhà Phát triển được giữ nguyên
✓ Mục tiêu chất lượng không được cắt giảm
✓ Phạm vi có thể được làm rõ và tái thương lượng giữa Product
Owner và Nhà Phát triển.
7.4. Đánh giá
Ưu điểm
 (1) Chất lượng tốt hơn:
 Giảm Thời gian Đưa ra Thị trường
 Khách hàng hài lòng hơn:
 Tinh thần nhóm cao hơn
 Gia tăng sự kiểm soát với dự án
 Giảm thiểu rủi ro
 Cải thiện sự minh bạch của tiến độ dự án
 Chuẩn đánh giá chính xác hơn
 Gia tăng việc cộng tác và sự sở hữu
 Lợi nhuận từ đầu tư (ROI) cao hơn

You might also like