第9章ソフトウェア工学
The V-ModelVモデル
The V-model for software development is also known as the verification and validation model. The V-model is similar to the waterfall model in that it is a continuous prescriptive model that includes basic initial system creation steps starting with gathering requirements, designing the system, and coding it. Each step is prescriptive and conducted sequentially. Where the model differs is that each step of the V-model is associated with a verification or validation testing step/phase, as shown in Figure 9.9. This testing is planned in coordination with each of the design and implementation steps/phases.
英語のヒント
ソフトウェア開発のVモデルは、検証と妥当性確認のモデルとも呼ばれる。要求収集、設計、コーディングという基本的な初期の構築段階を含む、連続的で規定的なモデルである点は、ウォーターフォールに似ている。各段階はあらかじめ定められ、順番に実施する。異なるのは、図9.9のように、Vモデルの各段階に検証または妥当性確認のテスト段階・フェーズが対応している点である。テストは、各設計・実装段階と連携させて計画する。
Like the waterfall model, the V-model is considered easy to understand and use because it follows a specific flow when it comes to steps/phases, and each step/phase is only completed once. Also, it is best suited for smaller projects where the requirements are easy to understand and unlikely to change after the project starts. The V-model’s advantage over the waterfall method is that verification and validation testing is more integrated into the overall process.
Vモデルもウォーターフォールと同様に、段階やフェーズが特定の流れに従い、それぞれ一度だけ完了させるため、理解しやすく使いやすいと考えられている。要求が理解しやすく、開始後に変化する見込みが低い、小規模なプロジェクトに特に向く。ウォーターフォールに対する利点は、検証と妥当性確認のテストが、工程全体へより密接に組み込まれていることである。
The V-model, however, does have several disadvantages, including:
ただし、Vモデルにも次のような欠点がある。
• It is not good for larger, longer projects or projects that may involve changing requirements.
• 大規模・長期間のプロジェクトや、要求が変わり得るプロジェクトには向かない。
• A usable software product will not be available until near the end of the software development life cycle.
• ライフサイクルの終わり近くまで、使用可能な製品が得られない。
• Once testing is started, it becomes more difficult to make changes to the design.
• テストが始まると、設計を変更しにくくなる。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 9.9 The V-model is like the waterfall model in that it is also a continuous prescriptive software process model. Despite their visual differences, in both models, each step is conducted sequentially. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図9.9 Vモデルも連続的で規定的なソフトウェアプロセスモデルである点は、ウォーターフォールと同じである。図の形は異なるが、どちらも各段階を順番に実施する。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
Incremental Model増分型モデル
In the incremental model, the software process is divided into modules. Each module focuses on a smaller set of requirements based on an overall business plan. These smaller sets of requirements are then used to design, implement, and test that part of the software solution, as shown in Figure 9.10. Once all the modules are completed, the software solution is deployed to the users. Note that increments in this case are different from iterations. It is assumed that each increment focuses on a small subset of requirements, and it is not possible to accommodate possible changes to requirements. Projects are typically split into a number of increments meant to cover customers’ needs over a period of time that is acceptable to them, while each increment is made manageable by the development team.
英語のヒント
増分型モデルでは、ソフトウェアの工程をモジュールに分ける。各モジュールは、事業全体の計画に基づく、より小さな要求の集合を扱う。図9.10のように、この小さな集合を使って、その部分を設計・実装・テストする。すべてのモジュールが完成すると、利用者へ配備する。ここでの増分は、反復とは異なる。各増分は要求の小さな部分集合を扱い、要求の変更には対応できないことを前提とする。プロジェクトは一般に、顧客が受け入れられる期間内にそのニーズを満たせるように、複数の増分へ分ける。同時に、一つひとつの増分は、開発チームが管理できる大きさにする。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 9.10 In the incremental model, the software process is divided into increments or modules, and each module focuses on a smaller set of requirements based on an overall business plan. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図9.10 増分型モデルでは、工程を増分またはモジュールに分け、各モジュールが事業全体の計画に基づく、小さな要求の集合に取り組む。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
The incremental model is best suited when the requirements are clearly stated at the start of the project and the product needs to be released quickly. Because the increments are small, testing can be done and user feedback can be gained with each increment. This means there are opportunities to identify and fix errors or issues with the product sooner than in the waterfall or V-model methods. Once the overall requirements step is complete, each increment can focus on its specific delivery. This helps to reduce costs, especially if there is a change in the requirements. Additionally, a big advantage of the incremental model is that it is easy to know how much has been completed and what remains to be done.
英語のヒント
増分型モデルは、開始時に要求が明確に示され、製品を急いで公開する必要がある場合に特に向く。増分は小さいので、それぞれをテストし、利用者の意見を得られる。そのため、ウォーターフォールやVモデルより早く、製品の誤りや問題を見つけて修正する機会がある。全体の要求を定める段階が終われば、各増分は自らの具体的な提供内容に集中できる。これは、特に要求が変わった場合の費用削減に役立つ。また、どこまで完了し、何が残っているかが分かりやすいことも、大きな利点である。
Prototyping Modelプロトタイピングモデル
The prototyping model requires the quick creation of a mock-up or demo of the expected final product that does what the final product is expected to do in order to be able to show end users what the system could look like and how it might function. Because the users can see what the product may look like and the basics of how it may function, they are in a better position to provide feedback that can be incorporated into the demo and then built into the final product. The prototyping model is also known as a RAD (Rapid Application Development) model because its focus is on getting a working demo created rapidly.
英語のヒント
プロトタイピングモデルでは、想定した最終製品の働きをする模型やデモを、素早く作らなければならない。それによって、システムがどのように見え、どのように動くかを最終利用者へ示す。利用者は製品の見た目や基本的な動作を確認できるため、意見を伝えやすくなる。その意見をデモへ反映し、その後、最終製品へ組み込める。動くデモを迅速に作ることを重視するため、RAD(迅速なアプリケーション開発)モデルとも呼ばれる。
This model still uses gathering requirements, designing, implementing, and testing steps; however, they are all done quickly to build the prototype. The focus is on improving the prototype to get to what is required to build the final software solution.
このモデルでも、要求収集、設計、実装、テストの段階を使う。ただし、試作品を作るために、そのすべてを迅速に行う。試作品を改良し、最終的な仕組みを構築するために必要なものへ近づけることを重視する。
As shown in Figure 9.11, the prototyping model can be used to build a mock-up that the user can approve, and then the mock-up can be used as an input to the standard process of designing, implementing, testing, and deploying the actual product.
図9.11のように、まずプロトタイピングモデルで利用者が承認できる模型を作り、それを入力として、実製品の設計、実装、テスト、配備という標準的な工程へ進むことができる。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 9.11 A prototyping model focuses on the quick creation of a mock-up or demo of the final product that can be shared with users to gain their feedback. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図9.11 プロトタイピングモデルは、利用者に見せて意見を得られる、最終製品の模型やデモを素早く作ることを重視する。(帰属:Rice University、OpenStax著作権、CC BY 4.0ライセンス。)
The prototyping model has some drawbacks. Because it involves getting the user involved early, the process of testing and incorporating feedback can become time consuming. Additionally, while the prototype might appear to work, generally it will lack the full internal functionality, which must still be built even after the user sees what appears to be a working system. This may require added effort to be made to manage expectations about the final product.
英語のヒント
このモデルには欠点もある。早い段階から利用者が関わるため、テストして意見を取り込む工程に時間がかかる場合がある。また、試作品は動いているように見えても、通常は内部の機能が完全には備わっていない。利用者が「動くシステム」を見た後にも、機能を実装する作業が残る。そのため、最終製品についての期待を管理するために、さらに手間が必要になることがある。