プリンキピア

第9章ソフトウェア工学

Review Questions復習問題

Exercises 1–5練習問題 1–5
1. List some of the best practices related to software engineering.
1. ソフトウェア工学に関する優れた実践方法を、いくつか挙げよ。
2. What is a true statement about the relationship between software engineering and computer science? a. Software engineering and computer science are unrelated. b. Software engineering is a subset of computer science. c. Computer science is a subset of software engineering. d. Computer science and software engineering are the same thing.
2. ソフトウェア工学とコンピューターサイエンスの関係について、正しい記述はどれか。a. 両者は無関係である。b. ソフトウェア工学は、コンピューターサイエンスの一部である。c. コンピューターサイエンスは、ソフトウェア工学の一部である。d. 両者は同じものである。
3. List five types of software that a software engineer is likely to work on.
3. ソフトウェアエンジニアが携わる可能性の高い、五つの種類のソフトウェアを挙げよ。
4. List five soft skills software engineers should have.
4. ソフトウェアエンジニアが身に付けるべきソフトスキルを、五つ挙げよ。
5. Software engineers must have a solid knowledge of several technical areas. List six areas other than soft skills that were mentioned in this chapter.
5. ソフトウェアエンジニアは、いくつかの技術分野について確かな知識を持たなければならない。この章で挙げられた、ソフトスキル以外の六つの分野を挙げよ。
Exercises 6–10練習問題 6–10
6. What are common roles in a software team?
6. ソフトウェアのチームには、一般にどのような役割があるか。
7. What does SDLC stand for? a. system design life cycle b. software development life cycle c. system development life cycle d. system design life cycle e. software delivery life cycle
7. SDLCは何の略か。a. system design life cycle(システム設計ライフサイクル)b. software development life cycle(ソフトウェア開発ライフサイクル)c. system development life cycle(システム開発ライフサイクル)d. system design life cycle(システム設計ライフサイクル)e. software delivery life cycle(ソフトウェア提供ライフサイクル)
8. Name the four common phases used in the SDLC.
8. SDLCで使う、一般的な四つのフェーズを挙げよ。
9. List four SDLC models.
9. SDLCモデルを四つ挙げよ。
10. What is a stated part of the software process improvement?
10. ソフトウェアプロセス改善の一部として、何が述べられているか。
Exercises 11–15練習問題 11–15
11. What are the disciplines of Unified Process?
11. 統一プロセスには、どのような作業分野があるか。
12. What are the phases of Unified Process?
12. 統一プロセスには、どのようなフェーズがあるか。
13. What type of testing focuses on making sure the individual pieces of code that were written are working correctly? a. acceptance testing b. performance testing c. stress testing d. unit testing e. usability testing
13. 作成したコードの個々の部分が正しく動くと確かめることに重点を置くのは、どの種類のテストか。a. 受け入れテストb. 性能テストc. ストレステストd. 単体テストe. ユーザビリティテスト
14. What type of tests would generally be performed by a software engineer?
14. ソフトウェアエンジニアは通常、どの種類のテストを行うか。
15. What is the primary purpose of verification? a. to run the code to verify it works correctly b. to make sure the software solution conforms to the requirements that were specified for the project c. to make sure the software solution does what the user wants it to d. to make sure all the project owners agree to move forward with each phase of the software development life cycle
15. 検証の主な目的は何か。a. コードを実行し、正しく動くことを確かめる。b. ソフトウェアによる仕組みが、プロジェクトで指定した要求に適合することを確かめる。c. ユーザーがさせたいことを、ソフトウェアによる仕組みが行うことを確かめる。d. ソフトウェア開発ライフサイクルの各フェーズを進めることに、すべてのプロジェクトのオーナーが同意しているか確かめる。
Exercises 16–20練習問題 16–20
16. What is the purpose of validation? a. to run the code to validate that it works as correctly b. to make sure the software solution does what the user wants it to c. to make sure all the project owners agree to move forward with each phase of the software development life cycle d. to make sure all lines of code will be executed
16. 妥当性確認の目的は何か。a. コードを実行し、正しく動くことを確かめる。b. ユーザーがさせたいことを、ソフトウェアによる仕組みが行うことを確かめる。c. ソフトウェア開発ライフサイクルの各フェーズを進めることに、すべてのプロジェクトのオーナーが同意しているか確かめる。d. コードのすべての行が実行されると確かめる。
17. What is the key defining element of test-driven development? a. Each line of code is given its own test. b. Tests are written in a manner that requires multiple-choice solutions. c. The testing team is responsible for all tests that are to be written. d. Tests are written before the code.
17. テスト駆動開発を特徴付ける、重要な要素は何か。a. コードの各行に、それぞれのテストを用意する。b. 選択肢から解答する形式が必要になるようにテストを書く。c. 書く必要のあるすべてのテストに、テストチームが責任を持つ。d. コードの前にテストを書く。
18. What is a debugger?
18. デバッガーとは何か。
19. What is an integrated development environment?
19. 統合開発環境とは何か。
20. What is a version control system?
20. バージョン管理システムとは何か。
Exercises 21練習問題 21
21. Can open-source or FOSS software be used at no cost?
21. オープンソースソフトウェアやFOSSは、無料で利用できるか。

Conceptual Questions概念を考える問題

1. Explain what is wrong with the notion that computer software does not need to evolve over time.
英語のヒント
1. コンピューターソフトウェアは、時間が経っても進化する必要がないという考えの、どこが誤っているかを説明せよ。
2. Explain why nonfunctional requirements are an important part of the requirements for software products.
2. 非機能要求が、ソフトウェア製品の要求の重要な部分である理由を説明せよ。
3. Explain why a software engineer needs to have solid knowledge of programming languages.
3. ソフトウェアエンジニアに、プログラミング言語についての確かな知識が必要な理由を説明せよ。
4. What is an iteration in iterative development?
4. 反復型開発における反復とは何か。
5. What is an increment in iterative development?
5. 反復型開発における増分とは何か。
6. What are the key issues addressed by an Agile approach in software engineering?
6. ソフトウェア工学のアジャイル手法は、どのような主要な問題に対処するか。
7. What are the drawbacks of the waterfall model?
7. ウォーターフォールモデルの欠点は何か。
8. What are the benefits of DevOps?
8. DevOpsには、どのような利点があるか。
9. What is the overall purpose of testing in software engineering?
9. ソフトウェア工学における、テストの全体的な目的は何か。
10. What is path coverage?
10. 経路網羅率とは何か。
11. What are three ways code coverage can be measured and what does each do?
11. コードカバレッジの三つの測定方法は何か。また、それぞれ何を測るか。
12. What are design patterns? Provide an example of a design pattern.
12. デザインパターンとは何か。その例を一つ挙げよ。
13. What is the benefit of licensing software?
13. ソフトウェアにライセンスを設定する利点は何か。
14. What type of license could you use if you were okay with sharing your application’s source code and allowing others to use or modify it?
英語のヒント
14. アプリケーションのソースコードを共有し、他者による利用や変更を認めてもよい場合には、どの種類のライセンスを使えるか。
15. Can we get to a point in the next twenty years where we will no longer need software engineers or to write code?
15. 今後20年のうちに、ソフトウェアエンジニアやコードを書く作業が、もはや必要なくなる地点へ到達できるだろうか。
16. Ethically, what are five things listed in this chapter a software engineer should never do?
16. 倫理上、ソフトウェアエンジニアが決して行うべきではないものとして、この章に挙げられた事柄を五つ挙げよ。