1.K hảo sát hiện trạng : - Hoạt động này đề cập đến sự quan tâm của tất cả những khía cạnh của hàm kinh doanh mục tiêu hoặc tiến trình, với những mục tiêu xác định làm thế nào mỗi khía c
Trang 1MÔ HÌNH THÁC NƯỚC
I Ý nghĩa mô hình:
II Các bước thực hiện của mô hình thác nước :
III Đặc điểm mô hình:
IV Ưu điểm, nhược điểm của mô hình thác nước:
V Ví dụ ứng dụng:
I Ý nghĩa mô hình:
Đây được coi là mô hình thác đổ, hay là mô hình tuyến tính,
là một mô hình cổ điển Mô hình thác nước là mô hình đầu tiên tiếp cận phát triển hệ thống Nó phổ biến trong thập niên 70 và cho phép cho một số lượng nhất định của thứ thự trong tiến trình
- Mô hình này được đưa ra dựa trên nét tương đồng với các
phương thức được sử dụng trong các lĩnh vực ngành kỹ thuật khác, ví dụ như là ngành xây dựng Việc xây dựng một chiếc cầu bắt đầu với việc xác định các công cụ, sau đó là công thức hoá các nhu cầu để đáp ứng được tiêu chí xây dựng Bước tiếp theo là thiết kế cầu Giai đoạn kế tiếp là xây dựng và thẩm định Công đoạn cuối cùng là bảo vệ cả hệ thống công trình đó
II Các bước thực hiện của mô hình thác nước :
Trang 21.K hảo sát hiện trạng :
- Hoạt động này đề cập đến sự quan tâm của tất cả những khía cạnh của hàm kinh doanh mục tiêu hoặc tiến trình, với những mục tiêu xác định làm thế nào mỗi khía cạnh liên quan đến một cái khác và khía cạnh này sẽ kết hợp vào trong hệ thống
- Đây là giai đoạn đầu tiên nhất trong quá trình phát triển phần
mềm, nó cho biết hiện trạng bài toán như thế nào Ví như hiện
trạng về mô hình tổ chức, hiện trạng về các nghiệp vụ
2.X ác định yêu cầu :
- Có 2 loại yêu cầu là yêu cầu chức năng và yêu cầu phi chức năng
- Trong giai đoạn này là giai đoạn sống còn, vì yêu cầu là rất khó biết Vì vậy việc xác định yêu cầu đúng là rất quan trọng trong suốt quá trình làm phần mềm
- Mục tiêu của giai đoạn thu thập yêu cầu là xác định phần mềm
sẽ làm được những gì dựa trên các nhu cầu của khách hàng
3.P hân tích :
- Phân tích hệ thống (System Analysis) : bước này đề cập đến
những yêu cầu hệ thống tập hợp với nhau, với mục tiêu của việc xác định làm thế nào những yêu cầu này sẽ được tích hợp vào trong hệ thống Mở rộng giao tiếp giữa khách hàng và nhóm phát triển là cần thiết
- Trong giai đoạn này chúng ta sẽ phân tích các yêu cầu, và mô hình hóa chúng, kết quả của quá trình này là cho ra một sơ đồ lớp đối tượng trong chương trình chúng ta
4.Thiết kế:
Thiết kế hệ thống (System Design) : Mỗi lần yêu cầu được thu
thập và phân tích, cần thiết phải xác định chi tiết làm thế nào hệ thống được xây dựng để thực hiện những công việc theo yêu cầu ( những gì được xử lý bởi hệ thống ), xây dựng phần mềm ( làm thế nào ứng dụng được xây dựng ) và thiết kế giao diện và viết mã ( giao diện người dùng như thế nào và đưa mã lệnh để
xử lí ra sao ? )
Trang 3- Giai đoạn này chúng ta sẽ thiết kế các thuật toán, và thiết kế
mô hình dữ liệu, cho ra một mô hình lớp và dữ liệu ở mức chi tiết
5.Cài đặt:
Mã hóa : được biết là việc lập trình, bước này liên quan với việc
tạo phần mềm hệ thống.Yêu cầu và xác định hệ thống là chuyển sang mã máy.Phần này chúng ta sẽ chính thức bắt tay vào code -Giai đoạn lập trình hay coding tập trung vào việc phát triển chương trình máy tính trên cơ sở thiết kế (đã có) Ngày nay, điểm tập trung chính của nhiều chương trình đào tạo là lập
trình, và sinh viên bỏ ra nhiều năm để học lập trình và kiểm thử Đây là chỗ có thể thấy rõ nhất sự khác biệt giữa việc lập trình
và Kỹ nghệ Phần mềm
6.Kiểm chứng:
Kiểm thử : Khi phần mềm được tạo ra và thêm vào sự phát triển
của hệ thống, kiểm thử được thực hiện để đảm bảo rằng nó làm việc hoàn toàn chính xác và hiệu quả Kiểm thử tập trung vào hai lĩnh vực, hiệu quả bên trong và ảnh hưởng bên ngoài
-Mục tiêu của hiệu quả bên ngoài kiểm thử là chắc chắn rằng phần mềm là đúng chức năng theo thiết kế hệ thống và đó là thực hiện tất cả những chức năng được yêu cầu
- Mục tiêu của kiểm thử bên trong là đảm bảo rằng mã máy là hiệu quả, tiêu chuẩn và làm tài liệu tốt Mô hình này còn tương đối phổ biến Tuy nhiên, hoàn toàn ít khi một dự án phần mềm
sẽ theo những bước chính xác
-Giai đoạn kiểm thử là quá trình kiểm tra sản phẩm phần mềm
để tìm kiếm lỗi Quy trình kiểm thử phần mềm thường được chia ra thành nhiều loại, bắt đầu bằng hình thức kiểm thử đơn vị chương trình (unit test) được phát triển bởi từng người Loại kiểm thử tiếp theo là kiểm thử tích hợp (integration test) khi các đơn vị chương trình được tích hợp lại thành một chức năng hay nhiều chức năng trước khi kiểm thử toàn bộ hệ thống (system test) của cả sản phẩm
III Đặc điểm mô hình:
Trang 4- Mô hình thác nước có thể được cải tiến bằng cách cho phép quay lui khi phát hiện lỗi trong giai đoạn phía trước
- Có ý kiến cho rằng không có một dự án thực tế nào lại thực hiện dạng mô hình này mặt khác thì lại có các ý kiến trái ngược, rằng hầu hết các dự án đều tiến hành theo mô hình thác đổ Sự trái ngược đó là kết quả của sự khác nhau trong cách nhìn nhận, đánh giá mô hình này
- Cách nhìn chặt chẽ coi các buớc như các giai đoạn trong khi thực hiện phần mềm, tiếp theo nhau và không có vòng lặp
- Cách nhìn tổng quát coi các bước chỉ có tính khái niệm, cho phép chúng chồng nhau, cho phép vòng lặp - quay lại các bước trước
IV Ưu điểm, nhược điểm của mô hình thác nước:
Ưu điểm:
Có thể dễ dàng phân chia quá trình xây dựng phần mềm
thành những giai đoạn hoàn toàn độc lập nhau
Các đòi hỏi dài của hệ thống được nhận biết dài, phân tích trứơc khi hệ thống bắt đầu
- Thay đổi yêu cầu được giảm tới độ tối thiểu khi dự án bắt đầu
- Chuỗi các hoạt động được thực hiện theo quy trình rõ ràng
- Dể quản lí
- Ước lượng thời gian và chi phí rất chính xác
- Các pha được xác định rỏ ràng
- Thấy được trình tự kỹ nghệ từ đầu đến cuối sản phẩm
- Thích hợp khi yêu cầu tìm hiểu tốt
Nhược điểm:
- Luôn luôn nghĩ sẽ là hoàn hảo ngay từ đầu
- Hệ thống phải kết thúc ở từng giai đoạn (có khi dài) do đó nó khó có thể thực hiện đầy đủ các yêu cầu của khách hàng
- Mối quan hệ giữa các giai đoạn không được thể hiện
- Thiết kế phải rõ ràng khi dự án bắt đầu
- Không thấy đuợc sự tiến hoá của sản phẩm
- Rủi ro cao, không thể quay lại
- Không thể phát triển sau khi phát hành sản phẩm
Trang 5- Khó đáp ứng đựơc các yêu cầu của khách hàng Sản phẩm đựơc hình thành ở giai đoạn cuối của sản phẩm
- Đa số những phần mềm ẩn chứa những nhược điểm không ít thì nhiều
- Người sử dụng không có cơ hội tham gia vào dự án trong suốt quá trình thực hiện dự án Đặc biệt là dự án lớn Họ chỉ thấy vào thời điểm cuối
- Đòi hỏi khách hàng đưa ra yêu cầu chính xác ngay từ đầu
- Sai sót phát hiện muộn có thể là hiểm họa
- Chậm có phiên bản thực hiện được
• V Ví dụ ứng dụng: