第9章ソフトウェア工学
Chapter Review章の復習
Key Terms重要用語
acceptance testing
受け入れテスト
process used to determine whether the software solution fulfills the customer’s expectations, also called user acceptance testing
ソフトウェアによる仕組みが顧客の期待を満たすかを判断するプロセス。ユーザー受け入れテストともいう。
accessibility testing
アクセシビリティテスト
subset of usability testing that focuses specifically on the needs of users with disabilities
ユーザビリティテストの一部で、特に障害のあるユーザーのニーズに焦点を当てるもの。
Agile Software Development Ecosystem (ASDE)
アジャイルソフトウェア開発エコシステム(ASDE)
Agile SDLC frameworks and methods that emphasize the difficulty of predicting future needs and thus avoid creating long-term plans and fixed processes so developers can instead collaborate with customers and adjust to their current needs
将来のニーズを予測する難しさを重視する、アジャイル型のSDLCの枠組みと手法。そのため、長期計画や固定的なプロセスを作るのを避け、代わりに開発者が顧客と協力し、現在のニーズに合わせて調整できるようにする。
application software
アプリケーションソフトウェア
software that enables you to fulfill common tasks such as creating a text document, drawing a picture, or playing music
文書の作成、絵を描くこと、音楽の再生など、一般的な作業を行えるようにするソフトウェア。
architecture management
アーキテクチャ管理
helps improve the architectural design while it is under development
開発中のアーキテクチャ設計を改善する助けとなるもの。
automated testing
自動テスト
form of testing that uses software tools to check functionality of a software system or some of its parts; this allows for repeating tests without requiring repeated effort on the part of the tester
ソフトウェアツールを使い、ソフトウェアシステムやその一部の機能を確認するテストの形態。テスターが同じ作業を何度も行わずに、テストを繰り返せる。
availability
可用性
measure of how busy a system is when a user attempts to use it
ユーザーが利用しようとするとき、システムがどの程度処理で埋まっているかを表す尺度。
black box testing
ブラックボックステスト
manner of testing where the tests are based on the requirements and the functionality of what is being tested without the need to focus on the code itself; input-output testing, specification-based testing, and behavioral testing
コード自体に着目する必要がなく、要求とテスト対象の機能に基づくテストの方法。入出力テスト、仕様に基づくテスト、振る舞いテストともいう。
bug
バグ
issue or error with software programming
ソフトウェアのプログラミングにおける問題や誤り。
bug tracking system
バグ管理システム
aids in the tracking and resolution of fixing issues with software
ソフトウェアの問題の追跡と、修正・解決を支援するもの。
closed-source
クローズドソース
form of software licensing that prohibits access to underlying source code; this type of software is typically developed for organizations or for software that is meant to be sold
基となるソースコードへのアクセスを禁止する、ソフトウェアライセンスの形態。この種類のソフトウェアは、通常、組織向け、または販売用として開発される。
code coverage
コードカバレッジ
measurement of the percentage of code that is activated or reviewed by unit tests
単体テストによって実行または確認されたコードの割合の測定値。
code review
コードレビュー
process whereby the source code written by one developer is manually inspected by another developer or a team of reviewers
ある開発者の書いたソースコードを、別の開発者やレビュー担当のチームが手作業で検査するプロセス。
construction phase
構築フェーズ
framework activity in which the design documents are used to write corresponding source code in a programming language and to create any supporting assets
設計文書を使い、対応するソースコードをプログラミング言語で記述し、必要な補助的な資源を作成する、基本的な活動。
containerized
コンテナー化された
software packaged in such a way that it can run on different computer systems easily
異なるコンピューターシステムでも容易に動作する形に、ソフトウェアがまとめられていること。
crosscutting activity
横断的活動
(also: umbrella activity) activity that crosscuts the entire software development process but is not part of the main building steps themselves
アンブレラ活動ともいう。ソフトウェア開発プロセス全体を横断するが、主要な構築手順そのものには含まれない活動。
debugger
デバッガー
program that assists in detecting and correcting bugs; it does this by allowing the user to pause program execution at any statement, view the state of the program at that moment, before allowing the computer to continue until the next statement at which they want to pause
バグの発見と修正を支援するプログラム。任意の文でプログラムの実行を一時停止し、その時点の状態を確認した後、次に停止したい文までコンピューターの実行を続けられるようにする。
deployment
配備
framework activity that involves making the developed software solution available to users
開発したソフトウェアによる仕組みを、ユーザーが利用できるようにする基本的な活動。
design pattern
デザインパターン
reusable solution to a design problem that software engineers repeatedly encounter while architecting and designing systems
ソフトウェアエンジニアがシステムのアーキテクチャ構築や設計で繰り返し遭遇する、設計上の問題に対する再利用可能な解決策。
detail-level design (DLD)
詳細水準の設計(DLD)
focuses on detailing or expanding upon the HLD; as part of the DLD, every element of a system is provided with detailed specifications, and the logic for each component within each module of a system solution is determined
HLDを詳しくしたり、展開したりすることに重点を置くもの。DLDの一環として、システムのあらゆる要素に詳細な仕様を与え、システムを構成する各モジュール内の各部品の論理を定める。
DevOps model
DevOpsモデル
Agile software process model that combines practices of software development and operations and uses a short development life cycle and continuous delivery to achieve high-quality software products
ソフトウェア開発と運用の実践方法を組み合わせ、短い開発ライフサイクルと継続的デリバリーによって高品質な製品を実現する、アジャイル型のソフトウェアプロセスモデル。
dynamic quality
動的な品質
nonfunctional feature that relates to the qualitative behavior of software while it is in use, which means that it also depends on the hardware that the system runs on
使用中のソフトウェアの質的な振る舞いに関わる非機能的な特性。そのため、システムを動かすハードウェアにも依存する。
elaboration phase
推敲フェーズ
framework activity that involves further analyzing the requirements to produce design models of the system to be developed
開発するシステムの設計モデルを作るために、要求をさらに分析する基本的な活動。
embedded software
組み込みソフトウェア
software that is integrated with hardware and can include both application and system software features
ハードウェアと一体化したソフトウェアであり、アプリケーションソフトウェアとシステムソフトウェアの双方の機能を含むことがある。
extensibility
拡張性
measure of the amount of work and cost required to add new features to software
ソフトウェアに新しい機能を追加するのに必要な作業量と費用の尺度。
flexibility
柔軟性
measure of the amount of work and cost required to make changes to a system when requirements change
要求が変わったとき、システムの変更に必要となる作業量と費用の尺度。
functional requirement
機能要求
based on expectations of the user for the inherent characteristics of the software
ソフトウェアが本来備える特性についての、ユーザーの期待に基づく要求。
gray box testing
グレーボックステスト
manner of testing in which the person who designs the test has a partial knowledge of code structure and understands the intended design of the software; it is a hybrid of white box and black box testing
テストの設計者がコード構造を部分的に知り、ソフトウェアの意図された設計を理解して行うテストの方法。ホワイトボックステストとブラックボックステストを組み合わせたものである。
high-level design (HLD)
高水準設計(HLD)
focuses on providing a general description of the overall system design, and can include information on the overall aspects of a system, including its architecture, data, systems, services, and platforms as well as the relationships among various modules and components
システム全体の設計を大まかに記述することに重点を置くもの。アーキテクチャ、データ、システム、サービス、プラットフォームなどの全体的な側面と、さまざまなモジュールや部品の相互関係についての情報を含むことがある。
inception phase
立ち上げフェーズ
framework activity that involves focusing on the gathering and refinement (i.e., definition) as well as the management of functional and nonfunctional requirements, which is also known as requirements engineering
機能要求と非機能要求の収集、詳細化(すなわち定義)、管理に重点を置く基本的な活動。要求工学とも呼ばれる。
incremental model
増分モデル
software process model in which software development is divided into modules, and each module focuses on a smaller set of requirements based on an overall business plan
ソフトウェア開発をモジュールに分け、事業計画全体に基づいて、各モジュールがより小さな要求のまとまりに重点を置くソフトウェアプロセスモデル。
legacy software
レガシーソフトウェア
software that has been written in the past, relies on obsolete technology, and is still in use today
過去に書かれ、時代遅れの技術に依存しながら、現在も使われているソフトウェア。
line coverage
行網羅率
type of code coverage that measures the percentage of activated lines of source code that are tested in a unit test
単体テストで対象となるソースコードの行のうち、実行された行の割合を測るコードカバレッジの種類。
maintainability
保守性
measure of the amount of work required to make changes to a software system
ソフトウェアシステムの変更に必要な作業量の尺度。
maintenance
保守
process of updating software after it is deployed
配備した後のソフトウェアを更新するプロセス。
manual testing
手動テスト
form of testing where a person must run the software system, provide any input, and manually check all output; repeating tests requires these efforts to be repeated by the tester
人がソフトウェアシステムを動かし、必要な入力を与え、すべての出力を手作業で確認するテストの形態。繰り返すには、テスターが同じ作業を再度行う必要がある。
nonfunctional requirement
非機能要求
describes a desired quality feature and covers aspects such as flexibility, maintainability, performance, portability, reliability, scalability, security, and more
望ましい品質上の特性を記述する要求。柔軟性、保守性、性能、移植性、信頼性、スケーラビリティ、セキュリティなどの側面を対象とする。
open-source
オープンソース
form of software licensing that provides access to the underlying code and generally allows the code to be reused and modified; also known as free and open-source (FOSS)
基となるコードへのアクセスを認め、一般にコードの再利用や変更も認める、ソフトウェアライセンスの形態。自由かつオープンソース(FOSS)とも呼ばれる。
operating system
オペレーティングシステム
software that controls and provides access to the computer’s basic functionality
コンピューターの基本的な機能を制御し、利用できるようにするソフトウェア。
path coverage
経路網羅率
type of code coverage that measures the percentage of paths through source code that you go through in a unit test
ソースコード内の経路のうち、単体テストで通る経路の割合を測るコードカバレッジの種類。
pattern
パターン
high-level concept that supports the idea of reuse and provides reusable solutions to problems often encountered when building software
再利用という考えを支え、ソフトウェアの構築時によく遭遇する問題に再利用可能な解決策を提供する、高水準の概念。
performance
性能
measure of response time as seen by the user
ユーザーから見た応答時間の尺度。
physical design
物理設計
graphical representation of the method for effectively implementing what was determined in the logical design of a software solution
ソフトウェアによる仕組みの論理設計で決定したことを、効果的に実装する方法の図による表現。
portability
移植性
measure of the amount of work and cost required to migrate software solutions to a new platform, such as a new operating system
新しいオペレーティングシステムなど、新たなプラットフォームへソフトウェアによる仕組みを移すために必要な作業量と費用の尺度。
prescriptive process model
規定的プロセスモデル
advocates an orderly approach to software engineering that involves following a prescribed set of activities in a continuous manner; in contrast to Agile development
定められた一連の活動を継続的に進める、秩序立ったソフトウェア工学の手法を推奨するモデル。アジャイル開発と対比される。
profiler
プロファイラー
program that performs dynamic program analysis that can be used to optimize or otherwise streamline code
コードの最適化やその他の効率化に使える、動的なプログラム解析を行うプログラム。
prototyping model
プロトタイピングモデル
software process model that requires the quick creation of a mock-up (or demo) of the expected final product doing what it is expected to do so that end users may provide feedback; also known as RAD (Rapid Application Development)
想定する最終製品が期待どおりの動作をする模型やデモをすばやく作成し、エンドユーザーからフィードバックを得ることを求める、ソフトウェアプロセスモデル。RAD(高速アプリケーション開発)ともいう。
refactoring
リファクタリング
process of restructuring source code without changing its functionality
機能を変えずにソースコードの構造を組み直すプロセス。
requirements modeling
要求モデリング
software engineering action that is part of the inception phase and focuses on the analysis/decomposition of software requirements
立ち上げフェーズの一部で、ソフトウェア要求の分析・分解に重点を置く、ソフトウェア工学のアクション。
scalability
スケーラビリティ
measure of the amount of work and cost required to modify a system to provide higher throughput
より高いスループットを実現するようシステムを変更するために必要な、作業量と費用の尺度。
scenario
シナリオ
specific instance of operational flow within a use case that is focused on understanding a specific action
特定の動作の理解に焦点を当てた、ユースケース内の操作の流れの具体的な一例。
Scrum
Scrum
type of Agile software development model
アジャイルソフトウェア開発モデルの一種。
security
セキュリティ
measure of confidence that data is protected from unauthorized disclosure and that systems are protected from unauthorized access
データが許可のない開示から守られ、システムが不正アクセスから守られているという確信の度合い。
software architecture
ソフトウェアアーキテクチャ
description of the overall structure of a software system, its major components, and their interrelationships
ソフトウェアシステム全体の構造、主要な構成要素、それらの相互関係を記述したもの。
software design
ソフトウェア設計
engineering design task set in which the abstraction and refinement of requirements are formed into a specification that can be used in the creation of a software solution
要求の抽象化と詳細化を、ソフトウェアによる仕組みの制作に利用できる仕様へとまとめる、工学的な設計タスクの集合。
software development life cycle (SDLC)
ソフトウェア開発ライフサイクル(SDLC)
structured set of framework activities required to develop a software solution based on a set of requirements
一連の要求に基づいてソフトウェアによる仕組みを開発するために必要な、構造化された基本的な活動の集合。
software license
ソフトウェアライセンス
documentation that determines whether an organization’s source code and functionality can be used by others without permission
組織のソースコードや機能を、他者が許可なく利用できるかどうかを定める文書。
software process improvement
ソフトウェアプロセス改善
process of transforming the existing approach to software development into something that is more focused, more repeatable, more reliable (in terms of the quality of the product produced and the timeliness of delivery), and more cost-effective
既存のソフトウェア開発手法を、焦点がより明確で、より再現しやすく、より信頼性が高く、費用対効果もより高いものに変えるプロセス。信頼性は、製品の品質と、提供時期の適切さの観点で捉える。
Software Quality Management (SQM)
ソフトウェア品質管理(SQM)
focuses on the development and management of the quality of the solution being developed
開発中の仕組みの品質を高め、管理することに重点を置くもの。
spiral model
スパイラルモデル
software process model that is a combination of the waterfall model with an iterative model approach and that focuses on reducing risk within a project
ウォーターフォールモデルと反復モデルの手法を組み合わせ、プロジェクト内のリスク低減に重点を置く、ソフトウェアプロセスモデル。
sprint
スプリント
fixed-length workflow event that is part of Agile software process development and typically runs one to four weeks
アジャイル型のソフトウェアプロセス開発の一部をなす、期間を固定した作業の流れのイベント。通常は1〜4週間で行う。
statement coverage
命令網羅率
type of code coverage that measures the percentage of statements that are activated at least once when you run all unit tests
すべての単体テストを実行したとき、少なくとも一度は実行される文の割合を測るコードカバレッジの種類。
static quality
静的な品質
nonfunctional feature that is unchangeable and thus might be associated with the source code or with legal or project-environment specific requirements
変化しない非機能的な特性。そのため、ソースコードや、法的な要求、プロジェクト環境に特有の要求と関連する場合がある。
system software
システムソフトウェア
software that enables you to control hardware and provides an environment in which other software can run
ハードウェアを制御できるようにし、ほかのソフトウェアが動作する環境を提供するソフトウェア。
system testing
システムテスト
focuses on the complete and fully integrated software product to make sure the complete software solution works on the whole as expected
完成し、完全に統合されたソフトウェア製品に重点を置き、完成した仕組みが全体として期待どおりに動作するかを確かめるテスト。
test-driven development (TDD)
テスト駆動開発(TDD)
process where developers write tests before they write code
開発者がコードを書く前にテストを書くプロセス。
throughput
スループット
measure of the total amount of input data that may flow through a system; it is different from performance, which measures how fast a system can perform its functions
システムを通過できる入力データの総量の尺度。システムが機能をどれだけ速く実行できるかを測る、性能とは異なる。
traditional process model
従来型プロセスモデル
process framework that encompasses four framework (i.e., generic) activities that are also known as phases: inception, elaboration, construction, and deployment
フェーズとも呼ばれる四つの基本的な(汎用的な)活動、すなわち立ち上げ、推敲、構築、配備を含むプロセスの枠組み。
umbrella activity
アンブレラ活動
(also: crosscutting activity) activity that crosscuts the entire software development process but is not part of the main building steps themselves
横断的活動ともいう。ソフトウェア開発プロセス全体を横断するが、主要な構築手順そのものには含まれない活動。
Unified Modeling Language (UML)
統一モデリング言語(UML)
visual modeling language that can be used to capture the result of software analysis and design
ソフトウェアの分析と設計の結果を表すために使える、視覚的なモデリング言語。
Unified Process (UP) model
統一プロセス(UP)モデル
software process model in which the development of a software system is divided into four primary phases (inception, elaboration, construction, and transition), each of which involves multiple iterations
ソフトウェアシステムの開発を、立ち上げ、推敲、構築、移行という主要な四つのフェーズに分け、それぞれの中で複数回の反復を行う、ソフトウェアプロセスモデル。
unit testing
単体テスト
tests individual units of code, such as methods and functions, and is usually done by developers during the development of the software or when updates are made
メソッドや関数など、コードの個々の単位をテストするもの。通常は、ソフトウェアの開発中や更新時に開発者が行う。
usability
使いやすさ
measure of how intuitive the user interface is
ユーザーインターフェースがどの程度直感的かを表す尺度。
usability testing
ユーザビリティテスト
confirms that the software being developed not only meets the requirements that were set by the user, but is also easy and intuitive for the user to use
開発中のソフトウェアが、ユーザーの定めた要求を満たすだけでなく、ユーザーにとって簡単で直感的に使えることを確かめるテスト。
use case
ユースケース
describes how software system is expected to be employed by users to accomplish a goal or requirement
目標や要求を達成するために、ユーザーがソフトウェアシステムをどう使うことが期待されるかを記述したもの。
user interface/user experience (UI/UX)
ユーザーインターフェース/ユーザーエクスペリエンス(UI/UX)
part of computer programming that is concerned with how information is presented to the user and how the user can interact with a program
コンピュータープログラミングのうち、情報をユーザーにどう提示し、ユーザーがプログラムをどう操作するかに関わる部分。
user story
ユーザーストーリー
generic explanation aimed at the user to tell them how a software feature works
ソフトウェアの機能がどのように働くかを、ユーザーに向けて伝える大まかな説明。
V-model
Vモデル
software development process model that is similar to the waterfall model in that it is a continuous prescriptive model, but it is associated with a verification or validation testing step/phase, and thus also known as the verification and validation model
ウォーターフォールモデルと同じく連続的で規定的なモデルだが、検証または妥当性確認のテスト手順・フェーズが対応付けられている、ソフトウェア開発プロセスモデル。そのため、検証・妥当性確認モデルとも呼ばれる。
validation
妥当性確認
tests that the software solution conforms to the requirements and, therefore, does what the user wants it to do
ソフトウェアによる仕組みが要求に適合し、したがってユーザーがさせたいことを行うとテストすること。
verification
検証
tests that the software solution functions without errors
ソフトウェアによる仕組みがエラーなく機能するとテストすること。
version control system
バージョン管理システム
tool used to store the history of changes to source code and facilitates collaboration of multiple developers
ソースコードの変更履歴を保存し、複数の開発者による協力を容易にするツール。
waterfall model
ウォーターフォールモデル
continuous prescriptive software process model in which phases “flow” into another the way water flows from the top of a waterfall down to the bottom
滝の水が上から下へ流れるように、フェーズが次のフェーズへと「流れる」、連続的で規定的なソフトウェアプロセスモデル。
white box testing
ホワイトボックステスト
manner of testing where the tester uses the source code so they can develop tests that verify that the internal structure of the item being tested works properly; also known as glass box, clear box, and structural testing
テスターがソースコードを使い、テスト対象の内部構造が適切に働くかを検証するテストを作る方法。グラスボックステスト、クリアボックステスト、構造テストともいう。