Quy trình phát triển phần mềm với SDLC
Trang 1Phương Pháp Mô Hình Hóa
Quy Trình Phát Triển Phần Mềm Với
SDLC
GV:ThS Nguyễn Công Hoan
Thành Viên Nhóm:
Trang 2Quy trình phát triển phần mềm (SDLC) 1
Trang 4SDLC (Software Development Life
Cycle) là gì?
• SDLC là một chuỗi các hoạt động để phát triển và
thực hiện một hệ thống thông tin
• SDLC rất hữu ích khi xây dựng một hệ thống phức
tạp
Trang 6Tại sao cần hiểu về SDLC?
• Không có những quy trình và phương pháp phù hợp thì rất dễ làm chậm trễ dự án và mất nhiều kinh phí hơn
• Dễ dàng hơn trong việc bảo trì nâng cấp và mở rộng phần mềm
• Cải thiện chất lượng công việc và cải thiện hiệu năng làm việc
Trang 7Điều gì xảy ra với SDLC?
• Phát triển phần mềm ngày nay không còn là công
Trang 8Các giai đoạn chính trong SDLC
• Phân tích tính khả thi (Feasibility analysis):
• Phân tích yêu cầu và đặc tính kỹ thuật (Requirement
analysis and specification)
• Thiết kế (Design).
• Mã hóa (Coding).
• Kiểm thử (Testing).
• Bảo trì (Maintenance).
Trang 9Mô hình RAD (Rapid Application
Trang 10Mô hình RAD (Rapid Application
Trang 11RAD: Mô hình nghiệp vụ
• Luồng thông tin được mô hình hóa để trả lời các câu hỏi:
-Thông tin nào điều khiển xử lý nghiệp vụ?
- Thông tin gì được sinh ra?
- Ai sinh ra nó?
- Thông tin đi đến đâu?
- Ai xử lý chúng?
Trang 12RAD: Mô hình tiến trình và dữ liệu
• Data modeling: Các đối tượng dữ liệu cần để hỗ trợ
nghiệp vụ (business) Định nghĩa các thuộc tính của từng đối tượng và xác lập quan hệ giữa các đối tượng
• Process modeling: Các đối tượng dữ liệu được
chuyển sang luồng thông tin thực hiện chức năng
nghiệp vụ Tạo mô tả xử lý để cập nhật (thêm, sửa,
xóa, khôi phục) từng đối tượng dữ liệu
Trang 13
RAD: Tự sinh ứng dụng và kiểm thử
• Application Generation: Dùng các kỹ thuật thế hệ thứ
4 để tạo phần mềm từ các thành phần có sẵn hoặc tạo
ra các thành phần có thế tái sử dụng sau này Dùng
các công cụ tự động để xây dựng phần mềm
• Testing and Turnover: Kiểm thử các thành phần mới
và kiểm chứng mọi giao diện (các thành phần cũ đã
được dùng thử và dùng lại)
Trang 14Điểm mạnh của RAD là gì?
• Thời gian phát triển giảm nhờ dùng công cụ
• Nhanh chóng cho phép hình dung ra sản phẩmNhanh chóng cho phép hình dung ra sản phẩm
• Dùng hiệu quả các framework và công cụ đóng gói Nhanh chóng cho phép hình dung ra sản phẩm
(off-the-shelf tools and frameworks)
• Giảm rủi ro nhờ có sự tham gia của khách hàngNhanh chóng cho phép hình dung ra sản phẩm
Trang 15RAD: Điểm yếu
• Nhanh chóng cho phép hình dung ra sản phẩmNgười phát triển phải có kỹ năng và được huấn luyện tốt cho việc sử dụng công cụ và thời gian phát triển nhanh
• Rủi ro không thể hoàn thành được dự án
• Không tốt với những ứng dụng không thể môđun hóa hoặc đòi hỏi tính năng cao
Trang 16Khi nào sử dụng RAD?
• Hệ thống dễ dàng phân chia module và có thể mở rộng
• Hệ thống mà những yêu cầu được biết rõ và hợp lýNhanh chóng cho phép hình dung ra sản phẩm
• Người dùng có thể tham gia tốt qua toàn bộ chu kỳNhanh chóng cho phép hình dung ra sản phẩm
sống (life cycle)
• Dự án có thời gian phát triển ngắnNhanh chóng cho phép hình dung ra sản phẩm
• Những thành phần sử dụng lại có sẵn trong kho phần Nhanh chóng cho phép hình dung ra sản phẩm
mềm
• Những hệ thống nhỏ, những hệ thống không có tính Nhanh chóng cho phép hình dung ra sản phẩm
Trang 18 Như một dòng chảy tuần tự, tuyến tính
Một giai đoạn được bắt đầu khi hoàn tất giai đoạn trước nó
Trang 20Trả lời được câu hỏi:
gian đáp ứng, lưu trữ, tương thích
Xác định yêu cầu
Trang 21 Tạo sơ đồ lớp các đối tượng sẽ
sử dụng trong chương trình
Phân tích
Trang 22Một bản thiết kế tốt là chìa khóa
dẫn đến sự thành công
Nhìn thấu các yêu cầu và khả
năng trong từng phần thiết kế
Xác định đăc trưng của giải
pháp
Thiết kế
Trang 26Quy trình kiểm thử
phần có thể la một chức năng hoặc đối tượng, một nhóm các thực thể gắn kết nhau…
hàng để kiểm tra hệ thống có đáp ứng tất cả các yêu cầu khách hàng hay không
Trang 28Cải tiến phần mềm
• Khi các yêu cầu hệ thống thay đổi theo sự
thay đổi của các yêu cầu nghiệp vụ thì phần mềm phải cải tiến và thay đổi để hỗ trợ
khách hàng
• Thông thường chi phí để bảo trì và cải tiến
thường đắt hơn nhiều so với chi phí xây
dựng phần mềm
Trang 29Ưu nhược điểm của mô hình
Trang 30Nhược điểm:
• Không quay lui được
• Mất nhiều thời gian
• Thiết kế phải rõ ràng khi dự án bắt đầu
• Không thấy được sự tiến hóa của sản phẩm
• Đôi khi dự án bị chậm trễ, mất nhiều kinh phí
• Không thể phát triển tiếp sau khi phát hành sản
Trang 31Những dự án nào nên tiến hành theo
mô hình waterfall?
bởi mô hình này đòi hỏi sự chính xác ngay từ đầu
định được yêu cầu cụ thể, chính xác ngay từ đầu và ít
có khả năng thay đổi
của họ chủ yếu theo mô hình truyền thống (waterfall)
Trang 32So sánh WATERFALL và RAD
• Thường sử dụng cho các hệ thống, phần mềm nhỏ
Trang 33Khác nhau:
Trang 34Câu hỏi
• 1, SDLC là gì?
• 2, Có mấy giai đoạn chính trong SDLC?
• 3, Mô hình RAD thường được sử dụng khi nào?
• 4, Mô hình thác nước thường được sử dụng khi nào?
Trang 351,SDLC là gì?
• SDLC là một chuỗi các hoạt động của nhà phân tích, nhà thiết kế, người phát triển, người sử dụng để phát triển và thực hiện một hệ thống thông tin
Trang 362, Có mấy giai đoạn chính trong
SDLC?
Có 6 giai đoạn chính trong SDLC:
• Phân tích tính khả thi (Feasibility analysis)
• Phân tích yêu cầu và đặc tính kỹ thuật (Requirement
analysis and specification)
• Thiết kế (Design).
• Mã hóa (Coding).
• Kiểm thử (Testing).
• Bảo trì (Maintenance).
Trang 374,Mô hình thác nước thường được sử
dụng khi nào
• Sử dụng khi mà đội dự án đã có kinh nghiệm làm việc, bởi mô hình này đòi hỏi sự chính xác ngay từ đầu
• Waterfall hợp với những dự án mà khách hàng xác
định được yêu cầu cụ thể, chính xác ngay từ đầu và ít
có khả năng thay đổi
• Đối với những khách hàng lớn mà phong cách làm việc của họ chủ yếu theo mô hình truyền thống (waterfall)