2018/12/19

システム開発の「言葉選び」~よく解る開発用語解説~

システム開発用語解説のイメージ画像

分かりやすい言葉選びの必要性

システム開発に普段関わっていない方や慣れていない方からすると、開発の際に出てくる用語はとっつきにくい、もしくは全く知らない、ということもよくあると思います。

『まずは要件定義をして、設計書を…』⇒要件定義って何をするんだろう…?
『開発はアジャイル開発で進めていきませんか』⇒アジャイル…?

言葉の意味が伝わらなければ打ち合わせなどをしても共通理解が得られず、そのまま進めてしまうと「思っていたものと出来上がりが違う...」という問題も発生してしまいます。
そこで、スプラシアではシステムやアプリ開発のご提案をする際には、分かりやすい言葉に置き換えてお話しさせていただくようにしています。

今回は、システム開発の際によく出てくる言葉(用語)をご紹介し、それを言い換えたり分かりやすくした場合の表現もあわせてご説明します。

 

目次

 

開発前の計画に関する言葉

要件定義

要件定義とは、
「システムやソフトウェアの開発において、実装すべき機能や満たすべき性能などを明確にしていく作業で、上流工程の一部」
「情報システムやソフトウェアについて、顧客が望んでいる機能や仕様などの概略をまとめたもののこと」
とされています。
つまり、システムで何がしたいのか、したいことを達成するにはどのような機能が必要なのかをとりまとめていく作業となります。
なお、それらをドキュメントにしたものが「要件定義書」となります。

 

基本設計

基本設計とは、
「要件定義を基に、どのようなシステムを開発すればそれを満たすことが出来るかを検討し、機器の構成や実装すべき機能、画面や帳票など操作や入出力に関する事項、生成・保管されるデータの概要など、システムの基礎的な仕様をまとめたもの」
とされており、開発工程の中で前述した要件定義と後述する詳細設計の間に位置する工程を意味します。
つまり、要件定義は「何が」を洗い出していく作業でしたが、基本設計では「どのように」して実現するかを概略としてとりまとめていく工程となります。
システムが使いやすいものとなるかどうかのカギとなる重要な工程です。

なお、それらをドキュメントにしたものが「基本設計書」となります。
また、方法論の違いにより、基本設計にあたる部分を「外部設計」や「概要設計」と呼ぶことがあります。

 

詳細設計

詳細設計とは、
「基本設計で定められた機能や操作・表示方法などに基づいて、システムとしてそれをどう実現するかを具体的に定めていくこと」
「システムをどのような構成にするか、それぞれの部分がどのような処理を行うべきか、それら部分間の連携・統合の方法などを決めること」
とされています。
つまり、基本設計ではシステムとしての実現方法の概要をとりまとめましたが、詳細設計ではプログラム単位でより具体的に設計します。

なお、それらをドキュメントにしたものが「詳細設計書」となります。
また、詳細設計を「内部設計」と呼ぶことがあります。

 

開発方式に関する言葉

ウォーターフォール開発

ウォーターフォール開発とは、
「要件定義、基本設計、詳細設計、開発(実装)、試験、本番稼働(納品)、運用といった各工程を時系列に沿って順に並べ、一つ前の工程が終わったらその成果物を基に次の工程を始める、という単純なルールで進めていく方式」
とされており、滝(waterfall)を水が流れ落ち、逆戻りしないという意味合いでこのように呼んでいます。
メリットとして工程管理や見積もりのしやすさ、分かりやすさが挙げられますが、デメリットとして要件や設計を完全に固めるまでに時間を要すること、また、固めたものは後から変更されないという前提が現実離れしているという指摘もあります。

 

アジャイル開発

アジャイル開発とは、
「ソフトウェアを迅速に、また、状況の変化に対して柔軟に対応できるよう開発する手法の総称」
とされており、短いプロセスを何度も反復して次第に全体を組み立てていくアプローチとなっています。
※アジャイル(agile)とは、俊敏な、しなやかな、素早い、などの意味があります。

前述したウォーターフォール開発では、要件定義、設計、実装、テストなどの各工程を順番に一度だけ行なうことを前提にしていますが、アジャイル開発では一度ですべてを作ろうとせずに、当初は最低限の機能だけを持ったソフトウェアの完成を目指し、各工程を迅速に進めます。
したがって、変化の速い分野や、最初からはっきりとした要件を定義するのが難しい分野のソフトウェアを開発する際に最も適しています。

 

開発後のテストに関する言葉

単体テスト

単体テストとは、
「単一の部品(モジュール)を対象に行うテスト」
とされています。
つまり、分割して作成したプログラムが動くかどうかのテストです。

どのような単位でテストを行うかはプログラミング言語の種類や開発者、プロジェクトの方針によっても異なりますが、多くの場合はプログラムから一つのまとまりとして扱われる最小の単位ごとに行われることが多いです。

 

結合テスト

結合テストとは、
「複数のモジュール(部品)を組み合わせて行うテストで、単体テスト後に実施すること」
「主にモジュール間の接続点(インターフェース)がうまく機能するかを確認する場合と、結合した状態で外部から見て一体として正しく機能するかを確認すること」
とされています。
つまり、分割して作成したプログラムを合体させたときに動くかどうかのテストです。

 

システムテスト

システムテストとは、
「システム全体を対象に行われるテスト」
「個々のモジュール(部品)を対象とした単体テスト、複数のモジュールを組み合わせた結合テストがすべて終わったあとに仕上げとして行うテスト」
とされています。
納品先の環境でシステムが動くかどうかのテストであり、基本的には開発側が実施します。

 

受入テスト(UAT)

受入テスト(UAT)とは、
「システムが発注した仕様を満たしているか、マニュアルなどの文書に誤りが無いか、障害発生時など運用上の様々な状況に対して想定通りに対処できるかなどを利用者側がチェックすること」
とされています。
このテストに合格すると開発は終了となり、納品および業務への導入、利用開始となります。
テスト計画でテストする項目のリストを作成し、それを元に納品物の検収作業を行います。
本稼働後にシステムを運用しながら修正するのは困難が伴うので、しっかりとした確認が必要です。

 

まとめ

今回は開発前後に出てくる言葉をご紹介しましたが、開発を進める中で出てくる用語も多くありますので、次回はそういった言葉もご紹介していきたいと思います。

現在、システム開発でお悩みやお困りごとがある方は是非ご相談ください。
スプラシアでどのようにそれらを解決できるか、分かりやすくご提案、ご説明いたします。
ご連絡をお待ちしております!!

 
●システム開発に関するお問い合わせはこちら

●スプラシアの開発について詳しくはこちら