- Nhân viên hành chính nhân sự
2.5.3 Mô hình lặp và tăng dần
Mô hình thác nước không cho ta đi ngược lại chuỗi trình tự phát triển phần mềm, theo mô hình này thì phải xác định toàn bộ yêu cầu, nó được thực hiện thông qua bàn bạc với người sử dụng hệ thống và khảo sát các chi tiết tiến trình tác nghiệp. Thực tế thì khi kết thúc công việc, may mắn lắm chỉ 80% nhu cầu của hệ thống là được thu thập trong quy trình phân tích do khi đặt hàng bản thân khách hàng chỉ mới liệt kê ra các mong muốn và nguyện vọng của mình về phần mềm mà chưa hình dung được một cách cụ thể những khả năng mà phần mềm sẽ đạt được, đồng thời kỹ sư phần mềm ngay từ đầu nhận đơn đặt hàng cũng không thể hình dung hết kiến trúc tổng quát của phần mềm mà mình xây dựng. Tiếp theo là quy trình thiết kế, nơi kiến trúc hệ thống sẽ được xác định, quy trình này tập trung vào những nhiệm vụ như đặt chương trình ở đâu, cần phần cứng nào… trong khi thực hiện công việc này, chúng ta có thể tìm ra một số nhiệm vụ mới của hệ thống của hệ thống. Do đó xuất hiện nhu cầu đi ngược lại người sử dụng để trao đổi bàn bạc về nó; có nghĩa là chúng ta phải trở lại quy trình phân tích. Sau khi lặp lại vài lần như vậy chúng ta mới chuyển đến quy trình lập trình hệ thống. Khi mã hoá
chương trình, chúng ta phát hiện ra một vài quyết định khi thiết kế là không thể cài đặt. Vậy ta phải quay trở lại quy trình phân tích để xem xét lại yêu cầu. Sau quy trình lập trình, quy trình kiểm thử bắt đầu. Trong khi kiểm thử chúng ta nhận thấy một vài yêu cầu chưa đủ chi tiết, giải thích nhầm lẫn có thể xảy ra. Vậy ta phải trở lại quy trình phân tích để xem xét lại yêu cầu. Sau một vài lần lặp lại như vậy ta có được hệ thống hoàn chỉnh và bàn giao cho khách hàng. Vấn đề về luật pháp, quy trình kinh doanh có thể thay đổi theo thời gian khi xây dựng hệ thống, người sử dụng có thể phàn nàn về các vấn đề này, sản phẩm làm ra không đúng như họ mong đợi. Nguyên nhân có thể là sự thay đổi của pháp luật, môi trường kinh doanh; người sử dụng không truyền đạt đúng cái họ muốn; đội ngũ dự án không tuân thủ tiến trình… Đội ngũ phát triển thường lập ra các biểu đồ và vô số tài liệu, văn bản, nhưng người dùng không phải lúc nào cũng hiểu cái mà đội ngũ phát triển cung cấp cho họ. Giải pháp nào để tránh các vấn đề này? Câu trả lời là mô hình hoá trực quan có thể giúp họ.
Phát triển phần mềm là tiến trình phức tạp. Nếu bỏ qua khả năng quay trở lại của các bước thực hiện trước đó thì thiết kế hệ thống có thể sai lầm và thiếu sót nhu cầu. Để có thể đi ngược lại các bước phát triển hệ thống phần mềm chúng ta có phương pháp mới, phương pháp phát triển lặp. Phát triển lặp là làm đi làm lại việc gì đó. Trong phương pháp này ta sẽ đi qua các bước phân tích, thiết kế, phát triển, kiểm thử và triển khai phần mềm theo từng bước nhỏ nhiều lần. Bởi chúng ta khó có thể thu thập được đầy đủ mọi yêu cầu vào công đoạn đầu tiên của dữ án. Các vấn đề mới nảy sinh, vậy ta phải lập kế hoạch lặp trong dự án. Theo quan niệm này thì dự án được coi là các thác nước nhỏ, mỗi thác nước được thiết kế đủ lới để sao cho có thể hoàn thiện từng bộ phận quan trọng của của dự án và đủ nhỏ để tối thiểu nhu cầu đi trở lại.
Công nghệ hệ thống Phân tích Thiết kế Mã hóa Kiểm thử Bảo trì Hình 2.11 Mô hình lặp và tăng dần
Theo mô hình lặp và tăng dần thì mỗi chu kỳ lặp là một vòng đời thác nước nhỏ. Vòng lặp sau được hình thành trên cơ sở tiến hoá của vòng lặp trước đó. Như vậy các quy trình truyền thống được lặp đi lặp lại và tăng dần. Trong phương pháp này, phân tích viên, người thiết kế, người lập trình… hợp tác làm việc với nhau để hiểu biết sâu sắc hệ thống, chia sẻ các ý tưởng mới dẫn đến xây dựng được một hệ thống mạnh, phức tạp hơn.