Vòng đời phát triển phần mềm
Đã giới thiệu| English | Ý nghĩa |
|---|---|
| requirements/rɪˈkwaɪəmənts/ | yêu cầu |
| development life cycle/dɪˈveləpmənt laɪf ˈsaɪkl/ | vòng đời phát triển |
| waterfall/ˈwɔːtəfɔːl/ | mô hình thác nước |
| maintenance/ˈmeɪntənəns/ | bảo trì |
| iterative model/ˈɪtərətɪv ˈmɒdl/ | mô hình lặp lại |
| rapid application development/ˈræpɪd ˌæplɪˈkeɪʃn dɪˈveləpmənt/ | phát triển ứng dụng nhanh |
| prototype/ˈprəʊtəʊtaɪp/ | bản mẫu |
| agile/ˈædʒaɪl/ | nhanh nhẹn |
| implementation/ˌɪmplɪmənˈteɪʃn/ | thực hiện |
Sân bay mở cửa muộn sáu tháng mười six
- Sân bay mới của Denver dự kiến mở cửa vào tháng 10 1993 với hệ thống hành lý tham vọng nhất từng được xây dựng: 4,000 xe đẩy tự động, 35 km đường ray, không sự can thiệp của con người. Nó đã mở cửa vào tháng 2 1995, vượt ngân sách $560 triệu, với các xe đẩy làm nát vali trong các bài kiểm tra.
- Lịch trình đã được cố định trước khi bất kỳ ai phân tích những gì hệ thống phải làm. Yêu cầu liên tục thay đổi trong khi nó đang được xây dựng. Kiểm tra bắt đầu khi không còn thời gian để sửa chữa những gì phát hiện ra.
- Mỗi thất bại trong số đó đều có tên trong bài học này. Một vòng đời phát triển tồn tại để một dự án được lập kế hoạch, quản lý và kiểm soát thay vì bị khám phá.
- Bài học này là vòng đời dùng để làm gì, ba mô hình mà chương trình đào tạo nêu tên, và năm giai đoạn mà mọi chương trình đều trải qua.
Tại sao cần một vòng đời
- Một vòng đời phát triển là tập hợp các giai đoạn từ ý tưởng đến phần mềm hoàn chỉnh, đã được bảo trì. Mục đích của nó là lập kế hoạch, quản lý và kiểm soát một dự án: sản phẩm đúng, đúng hạn, với chất lượng tốt.
- Nó quản lý sự phức tạp bằng cách chia nhỏ một chương trình lớn thành các giai đoạn, phối hợp đội ngũ, và giám sát tiến độ so với các mốc thời gian.
- Nó tích hợp việc kiểm tra ngay từ đầu thay vì để lại đến cuối, ghi lại các quyết định thiết kế cho bất cứ ai bảo trì chương trình sau này, và quản lý rủi ro.
Vòng đời phát triển được sử dụng để:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Nó cấu trúc công việc thành các giai đoạn để đội ngũ xây dựng sản phẩm đúng, đúng hạn, với chất lượng.
Những mục đích nào sau đây của vòng đời phát triển? Chọn tất cả các đáp án đúng.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Vòng đời lên kế hoạch, quản lý và kiểm soát. Nó không thể đảm bảo tính đúng đắn; nó biến việc tìm và sửa lỗi thành một phần của kế hoạch.
Tại sao có nhiều hơn một
- Không có một vòng đời nào phù hợp với mọi dự án, nên có nhiều loại và đề thi yêu cầu bạn phải chọn.
- Sự lựa chọn phụ thuộc vào quy mô và mức độ phức tạp của chương trình, mức độ rõ ràng của yêu cầu ở ban đầu, lượng thay đổi dự kiến, rủi ro nếu thất bại, đội ngũ, và hạn chót.
- Một hệ thống tính lương với các quy định pháp luật cố định và một trò chơi mà người chơi chưa biết họ muốn gì là hai dự án khác nhau. Chúng xứng đáng có các vòng đời khác nhau.
Mỏ nước (Waterfall)
- Mô hình mỏ nước là một chuỗi tuyến tính: phân tích, thiết kế, viết mã, kiểm thử, bảo trì. Mỗi giai đoạn phải hoàn tất, có tài liệu và được phê duyệt trước khi giai đoạn tiếp theo bắt đầu.
- Ưu điểm: cấu trúc rõ ràng, dễ quản lý và lên lịch, tài liệu đầy đủ ở mỗi giai đoạn, rất phù hợp với yêu cầu ổn định.
- Nhược điểm: sự thay đổi yêu cầu giữa chừng buộc phải quay ngược lại dòng chảy; khách hàng chỉ thấy thứ gì hoạt động đến tận cuối; sai sót trong phân tích chỉ nổi lên khi kiểm thử.

Nước không chảy ngược lên dốc
Mô hình thác nước phù hợp nhất với các dự án mà:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Thác nước là tuyến tính với mỗi giai đoạn hoàn tất trước khi bắt đầu giai đoạn tiếp theo — rất tốt cho yêu cầu ổn định, nhưng kém linh hoạt khi có thay đổi giữa chừng.
Trong mô hình thác nước, khách hàng nhìn thấy một phiên bản chạy được của chương trình rất sớm trong dự án.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Không có gì chạy được cho đến khi viết mã và kiểm thử, gần cuối. Việc xem phần mềm chạy được sớm là điểm mạnh của mô hình lặp và RAD.
Lặp lại (Iterative)
- Mô hình lặp lại thực hiện các lượt đi lặp lại. Mỗi lượt tạo ra một phiên bản hoạt động một phần được người dùng xem xét và tinh chỉnh trong lượt đi tiếp theo.
- Ưu điểm: vấn đề được phát hiện sớm hơn; người dùng thấy phần mềm hoạt động sớm và thường xuyên; tốt khi yêu cầu được khám phá dần theo thời gian.
- Nhược điểm: khó ước tính tổng chi phí và thời gian; các lượt xem xét lặp lại đòi hỏi sự chú ý của người dùng; thiết kế có thể lệch hướng nếu thiếu kỷ luật.

Xây dựng, trình diễn, tinh chỉnh, lặp lại
Phát triển ứng dụng nhanh (RAD)
- Phát triển ứng dụng nhanh (RAD) xây dựng một bản mẫu nhanh chóng, đưa nó trước mặt người dùng, và xây dựng lại dựa trên phản hồi của họ cho đến khi trở thành sản phẩm. Các nhóm thường làm việc song song trên các phần khác nhau.
- Ưu điểm: giao hàng đầu tiên rất nhanh; các yêu cầu thay đổi được hấp thụ ngay khi xuất hiện; người dùng trực tiếp định hình sản phẩm.
- Nhược điểm: nó phụ thuộc vào việc người dùng luôn sẵn sàng trong suốt quá trình; các lối tắt của bản mẫu có thể tồn tại trong sản phẩm; nó phù hợp hơn với các hệ thống nhỏ thay vì các hệ thống lớn quan trọng về an toàn. Agile phát triển ý tưởng này xa hơn nữa, với các sprint ngắn và kiểm thử liên tục.

Bản mẫu, phản hồi, bản mẫu nữa
Trong mô hình thác nước, mỗi giai đoạn hoàn tất trước khi giai đoạn tiếp theo bắt đầu, trong khi agile làm việc theo các sprint lặp ngắn với phản hồi liên tục.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Waterfall là tuyến tính (tốt cho yêu cầu ổn định); Agile thích ứng thông qua các sprint ngắn với sự hợp tác và thử nghiệm liên tục của khách hàng.
Gắn mỗi mô hình với ý tưởng cốt lõi của nó.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Waterfall = tuyến tính; lặp lại = tinh chỉnh nhiều lần; RAD = lấy bản mẫu làm trung tâm và nhanh chóng.
Phát triển ứng dụng tốc độ cao xây dựng một ____ mà người dùng thử nghiệm và đưa ra phản hồi, sau đó xây dựng lại.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Bản mẫu là đặc điểm xác định của RAD; phản hồi từ người dùng về bản mẫu chính là cách phát hiện ra các yêu cầu.
Ví dụ giải: chọn vòng đời và biện chứng cho nó
- Một công ty cần phần mềm để tính lương nhân viên dưới các quy tắc thuế do luật định. Nên chọn vòng đời nào, và tại sao? Mỏ nước: yêu cầu ổn định và được biết đầy đủ từ đầu, các quy tắc có thể được tài liệu hóa hoàn toàn trong giai đoạn phân tích, và tài liệu đầy đủ là quan trọng đối với một hệ thống bắt buộc phải chính xác và có thể kiểm toán.
- Một startup muốn phát triển ứng dụng cho một loại sự kiện xã hội mới; người dùng của họ không chắc chắn họ muốn tính năng gì. RAD: yêu cầu không rõ ràng và sẽ thay đổi, nên một bản mẫu mà người dùng thử và phản ứng giúp khám phá chúng nhanh chóng, và hệ thống nhỏ phù hợp với việc xây dựng lại nhanh.
- Tên mô hình, sau đó liên kết hai đặc tính của nó với hai thực tế trong tình huống.
Một nhóm nhỏ cần xây dựng ứng dụng có người dùng không chắc chắn họ muốn gì, và người dùng có thể thử các phiên bản mỗi tuần. Chu kỳ sống nào phù hợp nhất?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Yêu cầu không rõ ràng, thay đổi cùng người dùng sẵn sàng là trường hợp của RAD. Waterfall cần yêu cầu được cố định ngay từ đầu.
Năm giai đoạn
- Phân tích: tìm hiểu những gì chương trình phải làm; thu thập và tài liệu hóa yêu cầu từ người dùng.
- Thiết kế: quyết định cách thức: cấu trúc dữ liệu, thuật toán, mô-đun, giao diện người dùng, bố cục tệp, được biểu diễn bằng sơ đồ cấu trúc, flowchart và giả mã.
- Viết mã (triển khai): viết mã nguồn theo thiết kế. Kiểm thử: chạy nó trên dữ liệu kiểm thử đã lên kế hoạch và sửa các lỗi tìm thấy.
- Bảo trì: sau khi phát hành, duy trì hoạt động và usefulness, sửa lỗi, thích nghi với sự thay đổi và cải thiện nó.
Vòng đời phát triển phần mềm
Đi qua từng giai đoạn mà dự án nào cũng trải qua. Việc thu thập đúng yêu cầu trong phân tích là quan trọng nhất — một lỗi phát hiện ra trong kiểm thử sẽ tốn kém hơn nhiều để sửa chữa so với việc phát hiện sớm.
Giai đoạn phân tích chủ yếu là về việc quyết định:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Phân tích thu thập yêu cầu (cái "gì"); thiết kế quyết định cái "cách".
Sắp xếp các giai đoạn của chu kỳ sống phát triển phần mềm theo thứ tự.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
Cái gì, cách nào, xây dựng, kiểm tra, duy trì hoạt động. Trong mô hình lặp lại, các giai đoạn ở giữa lặp lại, nhưng thứ tự bên trong mỗi vòng lặp vẫn giống nhau.
Ví dụ giải: những gì xảy ra trong phân tích và thiết kế
- Mô tả những gì xảy ra trong các giai đoạn phân tích và thiết kế của vòng đời phát triển phần mềm. [4]
- Phân tích: các nhà phát triển phỏng vấn và quan sát người dùng để tìm hiểu những gì chương trình phải làm; họ xác định các đầu vào, đầu ra và xử lý cần thiết, và viết một tài liệu yêu cầu mà khách hàng đồng ý.
- Thiết kế: các nhà phát triển quyết định cách chương trình đáp ứng những yêu cầu đó: họ chọn cấu trúc dữ liệu và thuật toán, phân rã chương trình thành các mô-đun trên biểu đồ cấu trúc, thiết kế màn hình và tệp, và viết mã giả.
- Hai hành động và một sản phẩm cho mỗi giai đoạn. "Họ phân tích vấn đề" chỉ là lặp lại tiêu đề và không được điểm.
Điểm số dễ mất
- Phân tích là cái gì, thiết kế là làm thế nào. "Quyết định thuật toán" thuộc về thiết kế.
- Waterfall không phải là "loại xấu". Điểm mạnh của nó là yêu cầu ổn định, có tài liệu; điểm yếu là khó thay đổi. Hãy đưa ra cả hai khi được hỏi về lợi ích và nhược điểm.
- RAD không chỉ là "nhanh". Đặc điểm xác định của nó là bản mẫu và phản hồi từ người dùng về bản mẫu đó.
- Bảo trì là một giai đoạn, không phải suy nghĩ sau: phần lớn chi phí vòng đời của một chương trình được chi trả ở đây.
Bạn đã nắm vững
- Vòng đời lập kế hoạch, quản lý và kiểm soát dự án: các giai đoạn, cột mốc, thử nghiệm được tích hợp, quyết định được ghi lại, rủi ro được quản lý
- Waterfall: tuyến tính, mỗi giai đoạn được ký duyệt, tốt nhất cho yêu cầu ổn định, kém trong việc thay đổi · Lặp lại: nhiều phiên bản được tinh chỉnh lặp đi lặp lại, phát hiện lỗi sớm, khó ước tính hơn · RAD: bản mẫu cộng với phản hồi người dùng, nhanh và linh hoạt, cần người dùng sẵn sàng
- Chọn theo độ rõ ràng của yêu cầu, sự thay đổi dự kiến, kích thước và rủi ro, và giải thích bằng tình huống cụ thể
- Các giai đoạn: phân tích (cái gì) → thiết kế (làm thế nào) → viết code → kiểm thử → bảo trì