09 Feb, 2021
Qui trình phần mềm, vòng đời phát triển phần mềm
Đáp: Theo định nghĩa, qui trình phần mềm là tập các nhiệm vụ khi được thực hiện đúng sẽ tạo ra sản phẩm phần mềm. Qui trình phần mềm là mô tả mức cao của “dãy có thứ tự” các nhiệm vụ mà người phát triển phải tuân theo. Chẳng hạn: Nó tương tự như cách mọi người xây nhà. Họ phải bắt đầu với móng trước nhất, rồi tới khung, rồi tới mái. Sau đó họ có thể làm việc chi tiết hơn ở bên trong. Bạn không thể xây được mái mà không có khung và bạn không thể xây khung mà không có móng chắc.
Vòng đời phát triển phần mềm là qui trình phần mềm được phân chia thành nhiều pha tuỳ theo mô hình mà người phát triển chọn. Một số mô hình chủ trương các pha “tổng quát hơn” như : Yêu cầu, Phát triển, Trắc nghiệm và Tiến hoá. Các mô hình khác chủ trương “đặc thù hơn”. Chẳng hạn, vòng đời Thác đổ có bẩy pha: pha Yêu cầu, pha Phân tích, pha Thiết kế, pha Thực hiện (viết mã), Pha Kiểm thử, và pha Bảo trì. Đôi khi những người phát triển thêm các chi tiết vào một số pha để làm cho nó dễ hiểu. Chẳng hạn: pha Thiết kế có thể được chia thành thiết kế mức cao và thiết kế mức thấp. Những người phát triển khác ưa thích chia pha Thiết kế thành Kiến trúc và Thiết kế chi tiết. Một số người phát triển chia pha Kiểm thử thành Kiểm nghiệm và Trắc nghiệm. Tất cả những biến thể này chỉ là điều chỉnh nhỏ để làm cho qui trình dễ thấy hơn và dễ tuân theo.
Mọi phương pháp phần mềm đều yêu cầu việc làm tài liệu nào đó. Trong từng pha, người phát triển phải tạo ra một số các tài liệu tương ứng. Chẳng hạn: Tại cuối pha yêu cầu, người phát triển phải làm tài liệu đặc tả yêu cầu. Tại cuối pha Thiết kế, người phát triển phải làm tài liệu đặc tả thiết kế. Bởi vì phương pháp phần mềm khác nhau, số các tài liệu cũng sẽ biến thiên. Một số phương pháp yêu cầu nhiều tài liệu hơn, một số yêu cầu ít.
Nói chung, những người tham gia vào phát triển phần mềm được gọi là “người phát triển phần mềm”. Tuy nhiên, tuỳ theo kiểu và chiều dài dự án, công ti có thể chia “người phát triển” thành các vai trò và trách nhiệm xác định. Khi dự án là lớn và phức tạp, nó có thể bao hàm hàng trăm hay hàng nghìn người phát triển vậy thì cần phân công cho người phát triển vào các vai trò, trách nhiệm đặc biệt tuỳ theo kinh nghiệm của họ. Chẳng hạn: Người phát triển làm việc ở pha Yêu cầu được gọi là kĩ sư yêu cầu hay người phân tích doanh nghiệp. Người phát triển làm việc ở pha Thiết kế được gọi là kĩ sư thiết kế. Nếu pha Thiết kế được chia thành Kiến trúc và Thiết kế chi tiết thì người phát triển làm việc ở pha Kiến trúc được gọi là kiến trúc sư phần mềm. Người phát triển làm việc ở pha Thực hiện được gọi là người lập trình và người phát triển làm việc ở pha Kiểm thử được gọi là người kiểm thử v.v.
—-English version—-
Software process, software development lifecycle
Answer: By definition, the software process is the set of tasks when implemented properly will produce a software product. Software process is the high level description of an “orderly sequence” of tasks that developers must follow. For example: It is similar to the way people build house. They must start with the foundation first, then the frame, then the roof. After that they can work more detail inside. You cannot build the roof without the frame and you cannot build a frame without a strong foundation.
Software development life cycle is the software process that divided into several phases depending on the model that developers select. Some models advocate a “more generic” phases such as: Requirements, Development, Verification and Evolution. Other models advocate “more specific”. For example, The Waterfall life cycle has several phases: Requirement phase, Design phase, Implementation phase (Coding) Testing phase, and Maintenance phase. Sometime developers add details in some phases to make it easier to understand. For example: Design phase can be divided into High level design and Low level design. Other developers prefer to divide Design phase into Architecture and detailed design. Some developers divide Testing phase into Validation and Verification. All of these variations are just minor adjustment to make the process more visible and easier to follow.
Every software method requires certain documentation. During each phase, developers must create a number of corresponding documents accordingly. For example: At the end of requirement phase, developers must document a requirements specification. At the end of Design phase, developers must document a design specification. Because software methods differ, the number of documents will also vary. Some methods require more documents, some require less.
In general, people who involve in software development is called “Software developer”. However, depending on the type and length of project, companies may divide “Developers” into specific roles and responsibilities. When the project is large and complex, it may involve hundred or thousand developers then it is necessary to assign developers into specific roles, responsibilities depending on their experience. For example: Developer who works on the Requirement phase is called Requirement Engineer or Business Analyst. Developer who works on Design phase is called Design Engineer. If Design phase is divided into Architect and Detail design then Developer who works on Architecture phase is called Software Architect. Developer who works on implementation phase is called Programmer and developer who works on testing phase is called Tester etc.