Software Development Life Cycle là gì?

Chào các bạn, tuần này Tony quay trở lại với một bài viết trong lĩnh vực công nghệ.

Bài viết này Tony dành cho các bạn sinh viên mới ra trường, các bạn không học ngành công nghệ thông tin đang mong muốn chuyển qua làm IT BA hoặc trong lĩnh vực công nghệ. Vì vậy nội dung bài viết mình cũng sẽ đi tổng quan và diễn giải một cách cơ bản nhất.

Software Development Life Cycle là gì?

Software Development Life Cycle (SDLC), hay còn gọi là vòng đời phát triển phần mềm. Nội dung nghe hơi khó hiểu đúng không?

Vậy trước khi đi vào SDLC là gì thì Tony sẽ đưa ra 1 ví dụ dễ hiểu hơn đó là các bước để xây một ngôi nhà.

Các bạn có bao giờ tự hỏi việc xây một ngôi nhà cấp 4 và ngôi biệt thự hay một tòa cao ốc khác nhau gì không? Tất nhiên là sẽ có nhiều bước khác nhau rồi đúng không nào. Xây ngôi biệt thự sẽ khó, tốn kém và nhiều công đoạn hơn với ngôi nhà cấp 4 dưới quê của nhà mình đúng không.

Khi xây dựng một ngôi nhà cấp 4 thì có thể chỉ cần những thợ lành nghề và đã quen với mẫu nhà đó. Đôi khi các bạn thấy không có bản vẽ, thiết kế, nghiệm thu hay bảo trì.

Còn khi xây một biệt thự, căn chung cư thì sẽ cần quan nhiều bước khác nhau như:

  • Giai đoạn chuẩn bị
  • Chọn nhà thầu thi công
  • Thi công chi tiết
  • Nghiệm thu, bàn giao đưa vào sử dụng.
  • Bảo trì

Trong các bước lớn còn vô số các bước nhỏ chi tiết khác nhau. Như vậy có thể thấy, khi sản phẩm càng có quy mô lớn, độ phức tạp cao và chi phí lớn thì cần có các giai đoạn, các bước phát triển chi tiết và bài bản. Điều này sẽ giúp giảm thiểu rủi ro, tiết kiệm chi phí và có hiệu quả kính tế cao.

Tương tự như vậy, trong lĩnh vực phát triển phần mềm cũng cần có các giai đoạn phát triển 1 một phần mềm. SDLC là một quá trình xác định các giai đoạn khác nhau liên quan đến việc phát triển phần mềm để cung cấp một sản phẩm chất lượng cao. Các giai đoạn SDLC bao gồm toàn bộ vòng đời của một phần mềm, tức là từ khi bắt đầu cho đến khi sản phẩm ngừng hoạt động.

Mục đích cuối cùng của nó cũng chính là tạo ra một sản phẩm có chật lượng và hiệu quả kinh tế, giảm thiểu rủi ro.

Vòng đời phát triển phần mềm gồm những giai đoạn nào?

Tuy có nhiều khái niệm và cách chia tách các giai đoạn khác nhau nhưng nhìn chứng Tony thấy  một vòng đời phát triển phần mềm Tony thấy có các bước sau:

Lập kế hoạch

Làm gì cũng cần có kế hoạch đúng không các bạn. Làm phần mềm cũng vậy, cùng cần có kế hoạch dù to hay nhỏ. Trong giai đoạn này thì các lãnh đạo dự án sẽ đánh giá các điều khoản dự án, tính pháp lý, tính khả thi, tính toán chi phí, nguồn nhân lực…Rất nhiều bước chi tiết khác. Một dự án càng lớn thì kế hoạch cũng phức tạp và rất chi tiết. Việc lập kế hoạch sẽ giúp đánh giá được phạm vi và mục đích của dự án. Giúp giảm thiểu rủi ro và đưa ra một sản phẩm chất lượng và có hiệu quả kính tế. Cái hiệu quả kinh tế là vô cùng quan trọng nha các bạn. Nếu dự án chạy ok mà không có hiệu quả kính tế thì đa số sẽ đi vào dĩ vãng đấy. Ở bước này thường bộ phận quản lý dự án sẽ phụ trách cùng các bộ phận trong team.

Xác định yêu cầu

Giai đoạn này là giai đoạn lấy yêu cầu từ phía khách hàng và phân tích yêu cầu. Từ đó mới xác định được tính khả thi dự án, đánh giá được nguồn lực nhân sự cũng như chi phí và thời gian của dự án. Đây chính là giai đoạn mà ông Business Analyst sẽ nhảy vào làm nhiều nhất. Và thường gọi là ông hoa tiêu đấy các bạn. Nếu sai yêu cầu thì về sau dự án sẽ đi chệch hướng ngay. Như con tàu mà đi sai hướng ấy. Vì thế về mặt dự án ông BA cũng rất quan trọng. Những bài sau mình sẽ viết sâu hơn về nội dung này. Đặc biệt là việc BA phân loại được theo 4 loại yêu cầu phổ biến. Yêu cầu càng rõ ràng, chi tiết và đúng với nhu cầu của khách hàng thì sản phẩm làm ra có cơ hội lớn đáp ứng được mong đợi và giải quyết được vấn đề khách hàng đang gặp phải.

Thiết kế và tạo mẫu

Giai đoạn Thiết kế là giai đoạn mô hình hóa cách mà một phần mềm sẽ hoạt động. Một số khía cạnh của thiết kế bao gồm:

Architecture: Trong giai đoạn này xác định kiến trúc thiết kế của hệ thống.

User Interface: Thiết kế về giao diện người UI.

Platforms: Xác định nền tảng phần mềm chạy trên web, app trên ios hay android.

Programming: Từ việc xác định nền tảng rồi thì lựa chọn về ngôn ngữ lập trình, các thư viện.

Communications: Xác định cách thức các hệ thống giao tiếp với nhau.

Security: Xác định các biện pháp được thực hiện để bảo mật ứng dụng và có thể bao gồm mã hóa lưu lượng SSL, bảo vệ bằng mật khẩu và lưu trữ an toàn thông tin đăng nhập của người dùng.

Phần này Tony chia sẻ những bước cơ bản thường có, thực tế sẽ có độ phức tạp hơn với từng quy mô dự án.

Phát triển phần mềm

Sau khi xác định được các yếu tố trên rồi thì sẽ vào bước lập trình thực tế. Tức là các lập trình viên, development team sẽ sử dụng ngôn ngữ lập trình để lập trình thành các sản phẩm thực tế đáp ứng được yêu cầu đưa ra. Các lập trình viên sẽ xây dựng sản phẩm dựa trên bộ yêu cầu mà Business analyst đã phân tích.

Testing (Kiểm thử)

Sau khi các lập trình viên đã hoàn thành việc phiên dịch mã code thì lúc này là công việc của các anh em tester, QC. Đội ngũ kiểm thử sẽ dùng các phương pháp kiểm thử khác nhau để phát hiện ra những lỗi trên hệ thống. Trong giai đoạn này, các công cụ kiểm thử tự động, các tool hỗ trợ cũng sẽ được sử dụng nhằm phát hiện ra lỗi để đội phát triển có thể kịp thời sửa chữa trước khi đến với người dùng cuối.

Mục đích của bước testing (kiểm thử) là để đảm bảo sản phẩm đã được phát triển đúng theo yêu cầu ông BA đã phân tích và đảm bảo chất lượng trước khi ra mắt thực tế. Bạn có thể hình dung tương tự như việc sau khi nhà được xây xong sẽ có bước nghiệm thu, kiểm tra ngôi nhà trước khi vào ở vậy đó.

Deployment (Triển khai): 

Sau khi đội kiểm thử kết thúc công việc của mình, sản phẩm đảm bảo có thể đưa vào môi trường sử dụng thì nó sẽ được đưa vào sử dụng trong thực tế. Tức là đưa lên môi trường Production. Như app thì đưa lên các chợ ứng dụng như CH play, App store. Từ đây khách hàng có thể tải ứng dụng xuống và sử dụng.

Maintenance (Bảo trì)

Tại thời điểm này, chu kỳ phát triển gần như đã kết thúc. Ứng dụng đã được chạy thực tế. Tuy nhiên, như các sản phẩm khác trong quá trình vận hành sẽ có lỗi, giai đoạn này sẽ chính là bước bảo trì, sửa lỗi.

Quy trình phát triển phần mềm hiện nay có khá nhiều loại. Trong đó có các mô hình phổ biến như:

  • Waterfall
  • Agile
  • DevOps

Những bài viết sau mình sẽ đi sâu hơn vào từng mô hình. Hi vọng bài viết này sẽ giúp các bạn mới tiếp cận với lĩnh vực phần mềm sẽ hiểu được để ra đời được 1 sản phẩm phần mềm thì sẽ trải qua được những bước nào.

Note: Các bài viết tại đây là của cá nhân mình, không liên quan đến tổ chức, cá nhân nào khác vì vậy các đơn vị, cá nhân trích bài viết vui lòng đọc kỹ yêu cầu về Bản Quyền-Cộng Tác trước khi sao chép hoặc trích dẫn nội dung và hình ảnh của blog. Mình cảm ơn!

Facebook Comments
Phuc Nguyen

Chào các bạn, mình là Phúc Nguyễn. Cảm ơn bạn đã ghé thăm website Blaoman. Đây là nơi mình chia sẽ những trải nghiệm trong cuộc sống và công việc IT BA đang làm, phát triển sản phẩm trong lĩnh vực công nghệ. Ngoài ra mình cũng đang là Owner một cộng đồng BA. Thỉnh thoảng Phúc cũng có chia sẻ một chút về lối sống tối giản, sách và phát triển bản thân. Phúc bắt đầu với Blaoman với mục tiêu giúp mình tốt hơn mỗi ngày. Và biết đâu đó những chia sẻ này cũng giúp ích đến những bạn đã tình cờ ghé thăm blog của mình. Cảm ơn các bạn đã theo dõi bài viết.

Leave a reply

Your email address will not be published. Required fields are marked *

Phuc Nguyen

Most Viewed Posts

×
error: Content is protected ! This content cannot be copied.