現場で覚えたIT用語集(;^ω^)①

#はじめに
`IT音痴の初学者`が、現場に出て初めて聞いた用語や、聞いたことあるけどなんだっけ？と思ったことをできるだけメモに取りました。<br>
現場の方に口頭で説明を受けている時や、MTGで話を聞いている時、
はっきり言って<br>
**「こいつは、なぁ～にを言っているんだ・・・？」**
**「あっ、うん、、ｗ 日本語でおｋ・・・('ω')」**<br>
と思いながら`わかってる風`に頷きつつ必死でメモを取っておりますｗ<br>
振り返り用に**ダラダラと用語を羅列している**だけですので、見づらい記事になっております。
Qiitaの記事に書きなれてきたら第3者が見ても見やすい内容に修正していきます。

##覚えておきたい用語集


###マイルストーン
(丸い、石ころ・・・？)<br>
プロジェクトや作業の中間目標地点や節目のポイント地点のことを指す。
※出発地からの距離をマイルごとに石に打刻し、現在の距離がわかるように設置していたことから「マイル（＝距離の単位）ストーン（石）」

>「マイルストーンに影響が出ないように、作業をスムーズに進めてください」
「次のマイルストーンまで、進捗状況はきちんと把握しておいてください」
「現在、3番目のマイルストーンに到達していますが、そこから先へ進んでいません」

関連Word
`⇒ガントチャート/ステークホルダー/フェーズ`
<br>
###CMDB
(Configuration Management Database)構成管理データベース
ITサービスを提供する上で必要不可欠な「資産」とその「構成」を一元管理すること。
ITサービスを提供する上で必要となるリソース(ハードウェア・ソフトウェア・仕様書・契約書・SLA・運用マニュアルなど)と、その組み合わせ情報を最新の状態に保つためのプロセス。
![cmdb_image.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884151/23351fa8-2c46-8d35-62ec-39e8500d22cb.jpeg)
<br>
###ITSM
(IT Service Management)
ITサービスを利用者(社員や消費者)がいつでも快適に利用できるための活動とITサービスを継続的に改善していくための活動。
<br>
###ITOM
(IT Operations Management)
ITSMを実現する上で必要な様々な作業(オペレーション)を効率化する仕組みのこと。
<br>
###ITIL
(Information Technology Infrastructure Library)
ITSM（ITサービスマネジメント）の成功事例（ベストプラクティス）を体系化したITシステムのライフサイクルマネジメントに関するガイドライン。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884151/5ecf145a-834e-6984-b892-542481329e4e.png)

<br>
###Saas
(Software as a Service)
従来はパッケージとして提供されていたアプリケーションを、インターネット上で利用する提供形態。
Gmail、Googleドライブ、Google Meet、Googleカレンダー。
Dropboxなどのオンラインストレージ。
顧客管理(CRM)ソリューション Salesforce。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884151/838bc22a-349e-897a-1474-2457bf2ad649.png)

<br>
###Paas
(Platform as a Service)
アプリケーション開発に必要な実行環境を利用するモデル。
アプリケーション開発に必要な環境はすでに用意されており、開発者はミドルウェアの運用管理を行う必要がない。
Google App Engine(GAE)
<br>
###Iaas
(Infrastructure as a Service)
CPU、メモリ、ストレージやネットワークといったコンピュートリソースを提供するモデル。
IaaSは非常にカスタマイズ性が高く、柔軟に構成を作成することが可能。
その分ユーザーの管理範囲は多く、運用の負荷がSaaSやPaaSに比べて高くなる。
<br>
###ソフトウェアテスト
開発中のソフトウェア（コンピュータプログラム）が意図した通りに動作するかを検証すること。テストにより欠陥（バグ）が発見されると、原因箇所を探し出して修正するデバッグ（debug）作業が行われる。
`⇒静的テスト/動的テスト`
<br>
###同値分割
入力をグループ化して、有効なものと無効なものに分けるやり方。
出力が同じになるような入力をそれぞれグループにまとめ、グループの中から代表を選んでテストを行なう方式。
<br>
###境界値分析
境界値では等号や不等号のミスなどでバグが起きやすくなる箇所の分析。
例えば、「6歳未満」「6歳以上18歳未満」「18歳以上」といった条件で処理が分岐する場合、境界付近にある5歳、6歳、17歳、18歳といった入力値をテストケースに選択する。
<br>
###ペアワイズ法
『ほとんどの不具合は1つまたは2つの要因によるものである』という経験則をもとにした方法で、たくさんある要因のうち2つの要因の組み合わせだけは網羅するという観点。
<br>
###エラー推測
テストケースを作る人の経験に基づいてエラーが起きそうな値を決めるやり方。
<br>
###ディジションテーブル
複数の判断条件の正否の組み合わせを列挙し、それぞれの場合についてどのような判断を下すかを一覧にまとめた表。
<br>
###VBA
(Visual Basic for Applications)
MicrosoftがMS Officeの拡張機能として提供しているプログラミング言語。
VBAでは簡単なプログラミングを行うことができ、その組まれたプログラムを実行すると、
WordやExcelなどで複雑な処理を自動化することができる。
<br>
###マクロ
コンピューターの操作を自動化する機能そのもの。
VBA」という言語で処理手順を書いたものが「マクロ」。
マクロ＞VBA
<br>
###MACアドレス
(Media Access Control address)
ネットワークカード（パソコンやルータなどのネットワーク機器）に付いている番号。
LANやインターネットでのイーサネット通信で利用されている。
00:d8:61:86:28:c4「物理アドレス」とも言う。
コマンドプロンプト ipconfig /all　getmac /v　arp -a
`⇒リンク層/OUI`
<br>
###イーサネット
(Ethernet)
有線LANによるローカルネットワークの実質的な標準規格。
第2層（L2）データリンク層
<br>
###OSI参照モデル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884151/4b059f67-8256-84c7-502f-2dc6cdfc1cf6.png)

<br>
###DHCP
(Dynamic Host Configuration Protocol)
インターネットなどのIPネットワークに新たに接続した機器に、
IPアドレスなど通信に必要な設定情報を自動的に割り当てるための通信規約（プロトコル）。
`⇒サブネットマスク/DNSサーバ`
<br>
###DNSサフィックス
OSのネットワーク設定などの項目の一つで、不完全なドメイン名（単体のホスト名など）が
指定されたときに暗黙のうちに補われるドメイン名のこと。
<br>
###Django
PythonでWebアプリを開発する際に使うWebフレームワーク。
<br>
###バインド変数
SQL文に埋め込む変数。
 ⇒実際の値を後から設定できるように、SQL文の一部を変数にしておくことがある。
<br>
###QA
(Quality Assuarance)品質保証
動作確認することでバグや好ましくない使用感などを見つけ、プログラマーに報告し修正を行うことでシステムを改善していく。
⇒QAエンジニア：開発工程で実施される単体テストや結合テストとは違い、完成したソフトウェアに対して行う。
<br>
###グローバル変数
プログラム中のどこにあるコードからでも同じように値の読み取りや書き換えが可能なもの。
`⇒ローカル変数/スコープ`
<br>
###Apache JMeter
クライアントサーバシステムのパフォーマンス測定および負荷テストを行うJavaアプリケーション。
<br>
###バッチ
あらかじめ一連の処理を登録しておき、それらを自動的に実行する処理方式。
⇒バッチ処理：Webアクセスのようなリアルタイム処理ではなく、毎時とか日次とか月次とかでまとめて処理を行う方式。
<br>
###SIer
(エスアイヤー)
情報システムの企画立案、構築、運用などの業務を一括して請け負う企業のこと。
SIとはシステムインテグレーション（System Integration）
部門などを超え、横断的にパソコンとソフトウェアとネットワークなどを連携させ一体化することで、利便性を向上させたり、効率性を飛躍させたり、新たなサービスを生み出したりするシステムを作ること
<br>
###レビュー
システム開発で作成された成果物を別の人がチェックし、それらが仕様や要望を満たす内容になっているかを確認する作業。
`⇒仕様書/成果物`
<br>
###リバースエンジニアリング
既存ソフトウェアのオブジェクトコードやソースコードを解析して、仕様やアルゴリズムを調べ、必要ならドキュメント化すること。
⇒ソースコードに比べてより高いレベルの抽象化を考慮して、プログラムを表現し直す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884151/956433a1-d9fe-bdb9-0ac0-f4b1e0393497.png)

<br>
###フォワードエンジニアリング
リバースエンジニアリングで得た既存ソフトウェアの仕様を生かして、新たなソフトウェアを開発すること。
⇒既存ソフトウェアの単なる作り直しではなく、改善して更に高品質なソフトウェアを作ること。
<br>
###Jira
あらゆるタスクを『チケット』として整理し、プロジェクト進捗や各メンバーのタスクの消化率などを見える化するツール。
<br>
###チケットを起票/切る
チケットの登録。Redmineは1タスクの単位をチケットと呼称する。
<br>
###排他制御
ある主体が資源を利用している間、別の主体による資源の利用を制限もしくは禁止する仕組みのこと。【mutual exclusion】 相互排他
⇒「誰かが使っているときは他の人は使っちゃダメだよ！」を実現する仕組みのこと。
<br>
###Jenkins
(ジェンキンス)
継続的インテグレーション(CI)や継続的デリバリー(CD)を実現のためのツール。
⇒ソフトウェアは常にリリースできる状態となり、自動でプロセスが実行されるため人手によるミスや、操作のばらつきのようなものがなくなる。
<br>
###CircleCI
Saas型のCI/CDサービス
「Jenkins」と同様な機能を提供し、ビルド/テスト/デプロイなどについて自動実行できるサービス。
Webサービスであるため、登録するだけで使えるようになる。
>導入実績企業
Facebook
Spotify
CyberAgent
ZOZOテクノロジーズ
DeNAなど

<br>
###継続的インテグレーション(CI)
コードレベルのテストまでを自動化する。
ソフトウェアの動作を「継続的」に確認でき、より正確により迅速に開発を進めることが可能になる。
<br>
###継続的デリバリー(CD)
システムテストやデプロイなど、実行環境やリリースまで影響するような自動化を行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884151/cd2bb419-470e-605f-18a8-3c0ad651fe47.png)

<br>
###デプロイ
(deploy)
開発したアプリケーション（機能やサービス）をサーバー上に展開・配置して利用できるようにすること。
※デプロイはリリース作業の「一部」
<br>
###ビルド
ソースコードをコンパイルして、各ファイル同士をリンクして一つの実行ファイルにまとめること。
⇒デプロイに必要な実行ファイルを作ること。
`⇒コンパイル/リンカ`

<br>
###javadoc
Javaのソースコードをもとに自動生成されたソースコードの説明書、もしくは、その説明書を作るコマンド（プログラム）。

```java:qiita.rb
/**
* Javadocのテスト用クラス
* @author　fo-kazu
* @version　1.0
*/
public class JavadocTest{

   /**
   * testFunc
   * 文字列を整形する
   * @param　inStr 文字列
   * @return　整形後文字列
   */
   public static String testFunc(String inStr){
      return "hoge:" + inStr;
   }

   /**
   * メイン
   */
   public static void main(String[] args){
      String str = testFunc("aaa");

      System.out.println(str);
   }

}
```

<br>
###Firefox
ホームページなどを閲覧するためのウェブブラウザ。
⇒オープンソース ==> ソフトウェアのソースコード(プログラムを組む文字列)の修正が許可されている。
⇒タブやツールバー部分のデザインが自由に変えられる。
⇒スクリーンショット機能が標準で搭載されている。
<br>
###モジュール
「部品」のこと。
「そいつ単独でも機能としては成立するけど、普通は他のものと組み合わせて使うよ！」な部品のこと
`⇒コンポーネント/バインド`

<br>
##終わりに
現場に出て自分の知識不足がよーくわかりました。
また、非常に読みづらい記事で申し訳ございません。<br>
分からないことを調べだしたらキリがないので、今回はこれくらいにしておきます。
最後までご覧いただきありがとうございます。