【忙しい人のための】基本情報・応用情報の午前チートシート|総集編
このコンテンツは、基本情報技術者試験・応用情報技術者試験に挑む方向けの午前チートシートです。
前日や試験直前に一瞬見るだけでも良いと思います。「おかげで2問解けた!見といて助かった!」となるコンテンツを目指します。
何の略語であるかをできるだけ記載しました。役立てていただけると幸いです。
こちらは全ての分野を一つのコンテンツにまとめたものです。
特定の分野だけを見たい方は、以下からご覧ください。
【試験直前ッ】基本情報・応用情報の午前チートシート|ネットワーク編
【試験直前ッ】基本情報・応用情報の午前チートシート|データベース&プログラミング編
【試験直前ッ】基本情報・応用情報の午前チートシート|システム編
【試験直前ッ】基本情報・応用情報の午前チートシート|開発・マネジメント編
【試験直前ッ】基本情報・応用情報の午前チートシート|テクノロジー編
より内容を濃くしたnote版も是非ご覧ください。
現在はセキュリティ編のみです。
基本情報・応用情報技術者試験チートシート
セキュリティ
エクスプロイトキット(exploit kit)
エクスプロイトを利用した攻撃を簡単に行うために複数の不正プログラムを使った攻撃や感染拡大を構築できるソフトウェアパッケージです。ちなみにエクスプロイトとは、アプリケーションやOSの脆弱性を利用して攻撃する不正なプログラムコードです。
レインボー攻撃
攻撃者が任意の文字列とその文字列に対するハッシュ値をリスト化します。これをRテーブル(raindow table)と呼びます。不正にハッシュ値を入手できたらそのRテーブルからもとのパスワードを求めるという手法です。パスワードにソルトと呼ばれる任意の文字列を加えてハッシュ化すれば、不正にハッシュ値を入手されたとしても、Rテーブルを作ることが難しくなり、レインボー攻撃を防ぐことができます。
IDS(instruction detection system)
detectionなので、検知する役割です。侵入検知システムのことです。ネットワークを監視して、不正な侵入やその兆候を検知した場合にネットワークの管理者に警告を通知します。IPSとは違い、検知するだけです。
マルウェアソフトの誤検知と見逃しについて
上にあげたIDSやIPSなどのセキュリティソフトには誤検知や見逃しが発生してしまう場合もあります。下の図のように、誤検知(fasle positive)と見逃し(false negative)は区別されています。
不正 | 不正ではない | |
検知 | OK | フォールスポジティブ(誤検知) |
未検知 | フォールスネガティブ(見逃し) | OK |
統計の仮説検定の分野では、第一種の過誤や第二種の過誤と呼ばれる部分です。
関連コンテンツとしては、以下があります。
第一種の過誤と第二種の過誤:【統計検定2級】第一種の過誤と第二種の過誤について
混合行列:【多変量解析】ROC曲線とAUCによる判別分析|python
WAF(webapplication firewall)
パケットのヘッダ情報の検査だけでなく、通信先のアプリケーションプログラムを識別して通信を制御します。ファイヤーウォールだけでは防ぐことができない、webアプリケーションの脆弱性を狙った攻撃に対して有効です。
WAFやFWは何を検知しているのか
WAFとFWとでは、通信パケットの通過を許可するために調べるものが異なります。WAFは、webアプリケーションに渡されるPOSTデータを用います。それに対して、FWは送信元と宛先のIPアドレスとポート番号を用います。ちなみに利用者のPCから送信されたURLは、コンテンツフィルタリングが用いる材料です。
SPF(sender policy framework)
メールを送信してきたサーバーのIPアドレスから電子メールの送信元ドメインの詐称がないことを検査して、確認するための仕組みです。効果として、なりすましを検知することができます。ちなみにですがSPFでは、送信ドメインの詐称の確認にデジタル署名は利用しません。
サイドチャネル攻撃
IT機器に対する攻撃手法の一つです。機器自体の物理的な特性の変化を外部から検知して本来読み取れない情報を盗み取る手法です。暗号機の盗聴などに使われます。
クリックジャッキング攻撃(click jacking attack)
罠ページの上に別のWebサイトのiFrameを利用して表示させ、透明なページを重ね合わせることで不正なクリックを誘導する攻撃のことです。対策としては、HTTPレスポンスヘッダに、X-Frame-Optionsヘッダフィールドを出力し、他のドメインのサイトからのframe要素やiframe要素の読み込みを制限することが挙げられます。
C&Cサーバ(command and control server)
悪いやつです。ボット感染したコンピュータに対して他のコンピュータへの攻撃などの不正な操作を外部から指示し、ターゲットとなるコンピュータを攻撃するサーバです。
プロキシサーバの利用者認証を窃取されると、プロキシサーバを経由して内部のネットワークと外部のネットワークとの間で通信が可能になり、C&Cサーバが野放しになってしまいます。
カミンスキーアタック
悪意のあるサイトに誘導することを目的にDNSのキャッシュに誘導するための偽情報を埋め込む攻撃です。DNSキャッシュポイズニングの一つです。ちなみにDNSは、domain name serverであり、IPアドレスからホスト名を取得したり、ホスト名からIPアドレスを取得したりするシステムです。
チャレンジレスポンス認証方式(challenge response authorization)
目的としては、通信途中にパスワードが盗聴されないようにすることです。サーバが作成した乱数(これをチャレンジと呼びます)とパスワードから発生させた一方向関数を使って計算させたレスポンスを作成してサーバに返し、クライアントの認証を行います。わかりやすくいうと、乱数とレスポンスを返せば、「パスワードを知っていることの証明」になるので、通信そのものにパスワードを流す必要がなく、そもそも盗聴の余地がなくなるということです。
RSA
公開鍵暗号方式の一つで、非常に大きな数の素因数分解が困難なことを利用しています。開発に関わった3人の頭文字が入っているだけで、何か意味のある略ではないです。SSL(secure socket layer)で用いられています。
これに対して、楕円曲線暗号という公開鍵暗号方式の一つがあり、RSAに比べて短い鍵長で強度の高い暗号化が可能です。ネットワーク型電子マネービットコインの暗号化で用いられています。
静的解析
解析する検体をネットワーク上の通信データから抽出して、さらに逆コンパイルして取得したコードから検体の機能を調べます。
サンドボックス(sand box)
システムに影響を及ぼさないように隔離されている領域のことで動的解析に使います。他のプロセスやファイル等のリソースから隔絶し、安全に実行させる技術です。静的解析には使わないのでご注意ください。
ポートスキャン(port scan)
各ポートにアクセスして、脆弱性のある侵入口を探す行為です。OSの種類やバージョンを知られると攻撃に繋がります。ファイヤーウォール(fire wall)で防ぐことができます。他にも不要なサービスを停止しておくなどの根本的な解決方法もあります。
ボットネット(bot net)
C&Cサーバーと一緒に覚えてください。まず感染したコンピュータを乗っ取ります。その後、遠隔操作を行うボットというマルウェアに感染した多数のゾンビコンピュータと遠隔操作を行うC&Cサーバで構成されたネットワークのことです。
SSLサーバ証明書を埋め込むのはどこ?
下の図において、SSLサーバ証明書(公開鍵付き)を埋め込むのはどこでしょうか?正解は、ロードバランサです。ロードバランサは外部のインターネットからの通信を、HTTP通信化HTPPS通信かで区別し、別のリバースプロキシに振り分けてくれます。証明書を埋め込む機器には、秘密鍵がついていないとマズイので、ロードバランサには秘密鍵も導入されます。
ロードバランサがHTTP/HTTPSかどうかを区別するには、クライアントから送られてきたCookieのデータが平文として復号されている必要があります。そして、SSLサーバ証明書とクライアントの間の通信は、暗号化されています。つまり、ロードバランサにSSLを導入しなければ通信の振り分けができないということになります。
余談ですが、SSLサーバ証明書には公開鍵が付与されていると先ほど説明しましたが、実際SSLでやり取りされるデータの暗号化は共通鍵暗号方式です。秘密鍵と公開鍵は、共通鍵の生成のために使われるという、「公開鍵暗号方式と共通鍵暗号方式のハイブリッド」みたいな構造になっています。
SSL/TLSアクセラレータ(secure socket layer transport layer security accelerator)
Webサーバの機能の一つ。通信を暗号化するSSLやその後継であるTLSを利用するときに、Webコンテンツの暗号化と復号を行う、専門の機器やソフトウェアのことです。
ファジング(fuzzing)
検査対象の製品に問題を起こす可能性のあるテストデータを大量に送り、その応答や挙動を監視することで、脆弱性を発見するブラックボックステストです。ソフトウェアの内部構造を考慮しないのでホワイトボックステストではありません。
RADIUS(remote authentication dial in user service)
ネットワーク上のユーザ認証や承認、権利付与などを行うためのプロトコルです。ユーザ情報を一元的に管理するRADIUSサーバが、ユーザからの接続要求を受け取るRADIUSクライアントとの通信を行います。
SSH(secure shell)
他のコンピュータに安全にログオンして操作するためのプロトコルで、公開鍵暗号と秘密鍵暗号を組み合わせた通信経路の暗号化を行います。ユーザー認証に一般的なパスワード認証やワンタイムパスワードなども使用可能です。
CRYPTREC(Cryptography Research and Evaluation Committees)
結構細かい知識です。電子政府推奨暗号の安全性を評価、監視し、暗号技術の適切な実装方法や運用方法を調査するプロジェクトです。客観的な評価により安全性及び実装性に優れると判断された暗号技術をリスト化し、日本をセキュリティに優れたIT先進国にしていこう!という目的があります。
バッファオーバーフロー攻撃
ソフトウェアの脆弱性を利用してシステムに侵入し、内部のメモリ領域に悪意を持つコードが含まれるデータを送り込み、意図的に領域を溢れさせる攻撃です。
IPsec(security architecture for Internet protocol)
IPパケットの機密性や完全性を暗号技術を使って実現する仕組みです。改ざんを防止するパケット認証を行う「認証ヘッダ(authentication header)」と認証と暗号化までを行う「暗号ペイロード(encapsulated security payload)」の二つのプロトコルを含みます。IPの拡張に当たるのでOSI基本参照モデルのうちネットワーク層のプロトコルであり、トランスポート層のプロトコルである、SSL/TLS(secure sockets layer / transport layer security)とは異なります。
OP25B(out bound port 25 blocking)
迷惑メールを減少させるために、ウィルス感染者や迷惑メール受信者が自分のPCまたはサーバから故意あるいは無意識に行うメール送信を規制する対策のことです。25というのは、TCP25番ポートへの通信を禁止することという意味です。
自身のISPにOP25Bを導入すると、管理下の動的IPアドレスからSMTPサーバを通さずに相手のサーバにメールを送ることはできなくなります。
クリプトジャッキング(crypto jacking)
暗号通貨を採掘させるために他人のコンピュータを不正に使用することです。悪意のある第三者が、電子メールやオンライン広告などによって被害者をWebサイトに導き出し、そのPCを使ってマルウェアや自動実行スクリプトで暗号資産取引承認に必要となる計算をさせて報酬を得る方法です。
エスケープ処理
文字列を扱う際に、特別な意味を持つ記号や文字を別の文字列として解釈されるようにする置き換えする処理のことです。入力値に適切にエスケープ処理を施すことで、SQLインジェクションなどに有効な方法です。
似た内容として、サニタイジング(sanitizing)というものがあります。サニタイジングは、webアプリケーションの入力フォームへの入力データに含まれるHTMLタグやSQL文などを他の文字列に置き換えることで、入力フォームに含まれる悪意のある入力からアプリケーションを守ることができます。
コンペア法(compare method)
検体のハッシュ値を計算し、オンラインデータベースに登録された既知のマルウェアのハッシュ値のリストと照合してマルウェアを特定します。比較しているだけですね。わかりやすい。
NISC(National center of Incident readiness and Strategy for Cybersecurity)
内閣サイバーセキュリティセンターです。サイバーセキュリティ基本法に基づき、2015年に設置されました。類似カテゴリとして、JPCERT/CC(Japan Computer Emergency Response Team Coordination Center )が挙げられますが、これは情報セキュリティに関する注意喚起を行う、一般社団法人です。
TLS通信(transport layer security)
SSL通信に暗号化をかけたものです。暗号化通信を開始する前に、利用者のPCがwebサイトのサーバ証明書を第三者の公開鍵で復号できること、その期限を確認した上で通信を開始します。そして、webサーバ側が利用者に対してディジタル証明書の提出を求め、利用者の認証を求めます。
では、実際の暗号化の仕組みをご説明します。特徴的なのは、「公開鍵暗号方式を使って共通鍵を受け渡し、通信を暗号化する」点にあります。ちなみに楕円曲線暗号方式もTLS通信で使われる暗号通信の一種です。
デジタルフォレンジックス(digital forensics)
利用者による不正な操作や情報の漏洩などが発覚した場合に、原因究明や証拠のために記録を保全し、分析することです。具体例としては、社内の重要情報のアクセスや利用者の操作に関わる情報セキュリティ対策として、ログの取得やメールアーカイブ機能のの有効化などが挙げられます。
WPA2-PSK(wifi protected access 2 pre shared key)
アクセスポイントに設定されているのと同じSSIDパスワード(pre shared key)が設定されている端末だけに接続を許可する。8~63文字のパスワードを共有して通信を行います。
PGP(pretty good privacy)
覚えやすいですね。メールやデータを暗号化するためのソフトウェア公開鍵暗号と共通鍵暗号とを組み合わせた仕組みです。
AES(advanced encryption standard)
鍵長が短く脆弱となったDES(data encryption standard)後継の共通鍵暗号で、データベースで管理されるデータの暗号化に用いることができます。身近では無線LANの暗号化に使われています。
ネットワーク
ネットワーク分野は一部セキュリティの分野と被っています。例えば、テキスト以外の画像データや音声データの転送に使える規格のMIMEの拡張規格は、S/MIMEと呼ばれ、電子メールの内容の暗号化に使われたりします。併せて覚えましょう。
DNS(domain name server)
IPアドレスからホスト名を取得したり、ホスト名からIPアドレスを取得したりするサーバです。DNSを利用する検証方法としては、DKIM(domain keys identified mail)が挙げられます。DKIMは、送信元ドメインのDNSから公開鍵を取得して、電子署名の検証を行います。ちなみに、PTR(pointer record)はIPアドレスからホスト名を求めるときに使う定義情報です。
もう一つが、SPF(sender policy framework)であり、送信元ドメインのDNSからIPアドレスを取得して受信メールの送信もとIPアドレスと比べて検証します。
MX(mail exchanger)
ドメイン名からホスト名を求めるときに使用する定義情報です。
RARP(reverse address resolution protocol)
MACアドレスからIPアドレスを得るためのプロトコル。DHCPによって与えられたIPアドレスならば、DHCPサーバーで一覧を取得できます。ちなみにDHCP(dynamic host configuration protocol)サーバとは、クライアントに対して動的にIPアドレスなどの通信に必要な情報を一定期間与えるための機能です。
CGI(common gateway )
webサーバでHTMLから外部のプログラムを起動して、その結果をクライアントへ返すための仕組み。webページの内容を動的に表されるのが特徴です。Perlで記述されています。
ブロードキャストとはマルチキャストと何が違うのか
TCP/IP((transmission control protocol / Internet protocol))通信を利用したネットワークで、一対一の通信に用いられる形態を「ユニキャスト」と呼びます。単一のアドレスを選択しているということですね。それに対して、複数の選択されたノードと1対Nの関係で通信を行う形態をマルチキャストと呼びます。
ややこしいのが、マルチキャストとブロードキャストの違いです。ブロードキャストは、同一セグメント内の全てのノードに対し、同時に通信を行う形態です。
上の図をご覧ください。マルチキャストはセグメント内で通信を行うIPアドレスを取捨選択していることがわかります。それに対して、ブロードキャストは、通信を行うIPアドレスを指定せず、不特定多数と通信していることがわかります。
SMTP(simple mail transfer protocol)
電子メールを送る際のクライアントからメールサーバへの送信や、メールサーバ間の転送に使われるプロトコルです。インターネットなどの標準的なTCP/IP(transmission control protocol / Internet protocol)プロトコルです。ヘッダフィールドに電子メールの情報(件名や送信日時など)が記録されます。OSI基本参照のデルでは、アプリケーション層に位置します。
ARP(address resolution protocol)
RARPと一緒に覚えましょう。イーサネット環境で、IPアドレスから対応するMACアドレスを取得するためのコマンドです。
TKIP(terminal key integrity protocol)
無線LANの暗号化で用いられる暗号鍵の自動変更のためのプロトコルです。
シンクライアント(thin client)
VDI(virtual desktop infrastracture)での用語です。業務処理機能やデータ蓄積機能をサーバにもたせ、クライアント側はネットワークの接続と最小限の入出力機能だけを持たせてデスクトップの仮想化を行います。ちなみに VDIとは、サーバ上にあるデスクトップ環境を遠隔地にある端末に転送して利用することであり、リモートワーク普及に伴うセキュリティの向上などに効果があり、注目が集まっています。
LDAP(lightweight directory access protocol)
ネットワーク上にあるユーザ情報などを管理するディレクトリサービスへ接続するための通信プロトコルです。
IEEE 802.11ac
無線LANの規格の一つです。周波数帯としては5GHz帯(2.4GHzはなし)を利用し、最大通信速度は1.3Gbit/sです。アクセス制御方式はCSMA/CA方式となっています。
SMTP-AUTH(simple mail transfer protocol-authentication)
先ほど紹介したsmtpの拡張規格です。authenticationなので認証機能が追加されたということです。送信側のメールサーバでユーザ名とパスワードによる認証を行い、送信者が正規のユーザーであることを認証することができます。
SMTPにはユーザー認証を行う仕組みがないので、このポートをインターネットに公開してしまうと、不正なメールを中継してしまう問題があるので、SMTPを禁止する代わりにサブミッションポート(ポート番号587)を使ってユーザ認証を行うSMTP-AUTHの導入は進んでいます。
逆に、自分のネットワーク内以外のメーラからのSMTPはOP25Bによってブロックしています。
MIME(multipurpose Internet mail extension)
電子メールで文字だけではなく、画像ファイルや音声ファイルなどを扱う規格のことです。
S/MIME(secure mulitipurpose Internet mail extension)
上記のMIMEというテキスト以外のデータも扱うMIMEの拡張規格です。これは頭についたsecureの通り、電子メールの内容を受信者の公開鍵を使って暗号化(その後受信者の秘密鍵で復号する)したり、デジタル署名の付加などのセキュリティ対策を取り入れたものです。公開鍵を持っている企業の少なさからあまり使われていないようです。
POP(post pffice protocol)
覚えやすい略語ですね。メールサーバのメールボックスから電子メールを取り出すときに使用するプロトコルです。POP3という言葉がありますが、3というのはバージョン3ということ意味です。ちなみにポート番号は110です。
APOP(authenticated post office protocol)
popの拡張規格です。authenticatedなので、認証機能が加わります。もともとpopにはパスワードを平文で送るというセキュリティ上の欠点がありました。APOPでは、ハッシュ関数を使ってパスワードの送信を暗号化して安全性を高めるようにしました。
POP3S(post office protocol SSL/TLS)
APOPの強化版と覚えいただけたらと思います。APOPではパスワードをハッシュ関数などで暗号化するに過ぎませんが、POP3Sはトランスポート層のプロトコルである、SSL/TLS(secure sockets layer / transport layer security)を使い、伝送経路そのものを暗号化します。
プロキシ(proxy)
HTTPなどの通信を中継するための仕組みです。クライアントとwebサーバの通信経路の間で、通信内容を転送する、通信内容を改変して転送する、サーバの代わりにクライアントに応答するなどの機能を持ちます。
フォワードプロキシとリバースプロキシの違い
フォワードプロキシは、内部ネットワークのホストからの接続要求を代理して、外部にアクセスする中継機能を持ちます。DMZ(demillitarized zone)におかれます。
逆にリバースプロキシは、外部からの接続要求に対して内部ネットワークのホストにアクセスを中継する機能を持ちます。こちらもDMZに置かれ、HTTPとHTTPSによって振り分けを行うなど、セキュリティ分野でも頻出です。アクセスの方向が逆なので注意しましょう。
チェックサム(check sum)
ファイルを一意に識別するために使用される一連の数字や文字のエラー検出のためのもの。IPv6では廃止された。
UDP(user datagram protocol)
TCP(transmission control protocol)と同じくトランスポート層で利用されているプロトコルです。TCPに比べると信頼性がないものの、高速にデータを転送することができ、リアルタイム性が求められるデータ通信などに利用されます。またTCPとは違い、データの誤りの検出機能はありません。TCPとは、2つのアプリケーション間で信頼できる通信路を開設し、データのやり取りを行うものです。
ハイパーバイザー(hyperviser)
コンピュータの仮想化に使うためのソフトウェアです。物理サーバはネットワークの出力を行うNIC(network interface card)をアクセススイッチに接続しますが、仮想サーバを内部接続する場合、NICに繋がず、直接接続した方が効率的だよね、という考えのもと生まれた機能です。代表的なハイパーバイザーとしては、VMwareのvSphereやマイクロソフトのHyper-V、Linuxで使われるKVM(Kernel-based Virtual Machine)などがあります。
ping
IPネットワークにおいて、指定したkホストへIPパケットを送って疎通を確認するコマンドです。指定したIPアドレスに文字列を送って、その戻りを確認します。
netstat
TCPネットワークの接続状態やルーティングの状態、NIC(network interface)の状態を確認するためのコマンドです。トラブルシューティングによく使われます。
ipconfig
IPネットワークにおける、PCやサーバのネットワーク設定情報を参照するときに使います。ホスト名やIPアドレスの設定値や、MACアドレスなどがわかります。
L2TP(layer 2 tunneling protocol)
データリンク層における暗号化プロトコルです。layer 2というのは、「第二層」のことで物理層の上に存在するデータリンク層のことを指しています。
マルチホーミング(multi homing)
同一の宛先に対して複数の経路を使ってパケットを振り分ける機能です。一般的にNAPT(network address port translation)、IPマスカレードの機能を持ったルータに複数のISP(Internet service provider)回線を接続し、冗長化や目的に応じて使い分けます。
NAPTによるIPアドレスの変換について
プライベートIPアドレスはインターネットに直接アクセスすることはできません。NAPTとは、グローバルIPアドレスを持つルータが自身のIPアドレスに変換してアクセスの代行を行う仕組みの一つです。よくIPアドレスとポート番号がどのタイミングで変化するか、といった問題が出されますが、
①プライベートPCからwebサーバにアクセスする際の、送信元IPアドレスとポート番号が変わる
②webサーバからプライベートPCに通信を戻す時の、宛先のIPアドレスとポート番号が変わる
と覚えておけば良いでしょう。
SNMP(simple network resolution protocol)
TCP/IPを使ったアプリケーション層のプロトコルです。ネットワーク機器間で互いの情報を交換できるので、ネットワークの管理や制御に用いられます。
VRRP(virtual router redundancy protocol)
ルータなどのレイヤ3の複数の機器間で使用するプロトコルです。仮想のMACアドレスとIPアドレスを使って、通常使用するマスター機器がルーティングを行いますが、マスターに異常が発生した場合、仮想アドレスをスタンバイ機器が引き継ぎ、通信を継続します。ルータを冗長化するために用いられているプロトコルです。
SOAP(simple object access protocol)
異なるシステム間でネットワークを経由し、XMLメッセージを交換するためのプロトコルです。異なるオペレーティングシステム(linuxとwindowsとか)間の通信でもXMLで意思疎通が可能になります。構造化されたXML形式の文書がレスポンスとして帰ってくるので、そのまま処理することができます。
システム編
ディスパッチ(dispatch)
タスクのディスパッチは、実行可能なタスクに対してプロセッサの使用権を割り当てることを指します。
ガベージコレクション(gabage collection)
メモリ管理機能の一つで、使用されていないメモリ領域を自動的に解放する機能です。使用されていないメモリ領域とは、使用されたメモリ領域が解放されずにいる状態のガベージ(gabage)のことです。後述するメモリコンパクション(memory compaction)を含意した用語として使われることがあります。
プログラムレジスタ(program register)
プログラムカウンター(program counter)とも呼ばれます。これから解読して実行を行う命令が記憶されている、主記憶のアドレスを記憶しておくためのレジスタです。
フェールオーバ機能(fail over)
クラスタリングシステムで、ノード障害が起きたとkに信頼性を向上させる機能の一つです。障害ノードから大体のーどに切り替わった際には、アプリケーションの実行はそのまま継続されるため、利用者に気づかれずに済みます。
スプーリング(spooling)
低速の入出力装置へのデータ転送処理で、その処理を一時的に補助記憶装置などに蓄積してCPU処理と並列させて、スループットの向上を図ります。ちなみにスループット(through put)とは、コンピュータが単位時間あたりに処理することができる命令の総量のことです。
差分バックアップと増分バックアップの違いは?
差分バックアップは、フルバックアップ以降に更新されたデータの全てをバックアップすることです。一方、増分バックアップは前回行ったバックアップ以降に更新されたデータのみをバックアップすることです。
復元に関しては、フルバックアップの復元の後に、差分バックアップの復元を行います。
デュアルシステム(dual system)
高い信頼性が要求されるシステムに使われます。同じ処理を行うシステムを二重に用意し、一定時間ごとに処理結果を照合し、整合性を保ちます。
CDN(content delivery network)
webコンテンツにアクセスするユーザーに最も近い位置にあるサーバから効率的に配信する仕組みです。
フールプルーフ(fool proof)
人間がシステム操作を誤ったとしても、システムの信頼と安全性を保つという信頼性設計の考え方です。例として、乾電池を逆向きに入れても電気が流れない、などが挙げられます。似た用語として、フェールセーフ(fail safe)という考えがあります。これは、もしインシデントが発生したときでも安全にシステムが稼働するという考えです。例えば、事故が起きたときは周辺の信号が赤信号になり、2次被害を避けようという意図があります。
サーバーコンソリデーション(server consolidation)
複数のサーバを仮想化技術で統合させ、管理コストの削減を行うと同時に資源の効率的な運用を目指します。
WebSocket
HTML5においてサーバーとクライアント間で双方向通信を行うための通信規格です。通常のHTTP通信では、クライアントからリクエストがない限り、サーバーはクライアントに通信を送ることはできませんが、WebSocketでは持続的な通信が可能なソケットを作成し、いつでも双方向の通信が行えるようになります。
メモリインタリーブ(memory interleave)
主記憶を複数の独立したバンク(連続するアドレス領域)に分けて、各バンクに交互にアクセスすることで主記憶へのアクセスの見かけ上の高速化を図ります。
デュプレックスシステム(duplex system)
システムが部分的に故障しても、待機しているシステムに切り替えて処理を続行するシステムのことです。2系統のシステムの負荷が均等になるように処理を分散する方式である、負荷分散と区別をしておきましょう。
メモリの未使用領域の発生と対処について
OSが記憶領域の割り当てと解放を繰り返すことによって、メモリの細かい未使用領域が発生することがあります。この現象をフラグメンテーション(flagmentation)と呼びます。フラグメンテーションが悪化すると、ディスクの入出力動作が増加して、応答性能が悪化するので、データの格納状況を確認する必要があります。
こうした未使用領域は、ヒープ領域でできます。ヒープ(heap)領域は、使う時に確保し、使い終わったら解放するというメモリ領域なので、確保と解放を繰り返すと未使用領域が発生する場合があります。これに対してスタック(stuck)領域では、LIFO(last in farst out)方式をとっており、確保した順番と逆の順番で解放を行いますので、未使用領域は発生しません。
さて、これを解決する手段の一つとして、メモリコンパクション(memory compaction)というものがあります。これはフラグメンテーション等で断片化してしまったメモリの未使用領域を詰めて、大きな未使用領域を作成することです。
【補足】先ほど説明したスタックの実際の働きとしては、CPUに対する割り込み要求が発生した場合、割り込みが発生する直前まで実行していたプログラムのフラグやプログラムレジスタの値を対比させる場所として機能します。スタックポインタというのは、スタック最上段のデータを示すメモリのアドレスを保持しています。(積み重ねているイメージ)
TDMA方式(time division multiple access)
タイムスロット(伝送に用いる搬送周波数のこと)を割り当てられたノードだけが送信を行います。何が嬉しいかというと、同一周波数において複数の通信を可能にできるので、FDMA(freaquency division multiple access)よりも1つの周波数を効率よく使えます。
CSMA/CD方式(carrier sense multiple access with collision detection)
各ノードは伝送媒体が使用中かどうかを調べ、コリジョン(collision)(衝突)があるならランダムな時間の経過後に再送信する方式です。わかりやすくすると「通信状況を監視しつつ、回線が空いているようだったら通信を流すが、運悪く通信がぶつかったら、再度やり直します」という方式です。
ネットワーク層のルーティングと、データリンク層の処理
データリンク層の、レイヤ2スイッチ(layer 2 switch)とブリッジ(bridge)の違いについてご説明します。
役割としては同じで、データリンク層でのネットワークの中継機であり、パケットのMACアドレスに基づいて該当するLANポートだけにデータを中継します。ただ、前者はハードウェア主体で処理を行うのに対して、後者はソフトウェア主体で処理を行います。また、ポート数はレイヤ2スイッチの方が多いです。
次にネットワーク層の、レイヤ3スイッチ(layer 3 switch)とルーター(rooter)についてご説明します。
役割としては同じで、IPアドレスに基づいてデータの転送先の決定を行うルーティング機能を持っているだけです。ただ、前者はハードウェアによりルーティングを実現しますが、後者は、ソフトウェアでルーティングを実現します。
キャッシュ(cash)
聞き馴染みはあると思います。Webサーバの基本的な機能の一つで、利用されたコンテンツを保持しておく機能です。同じ人tに頻繁に利用されるコンテンツであれば、ストレージサーバから逐一転送するのではなく、コンテンツをwebサーバにキャッシュして配信すれば、転送量も少なくなるし、表示も早く、顧客の満足につながります。Cookieと混同されがちです。
リエントラント(reentrant)
複数のプロセスから同時に呼び出された時に、プログラムが実行中であっても、互いに干渉することなく並行して同一プログラムの実行が可能な性質です。多重に実行されても大丈夫というわけです。似た言葉として、リロケータブル(relocatable)がありますが、これは主記憶上のどこにアドレスを配置しても実行が可能な性質のことを指します。
パリティ(parity)
誤り検出の際に用いられる冗長コードのことです。
ここでパリティとRaidの関係について補足します。Raid6はRaid5のパリティ部分を拡張することで、信頼性を高めています(ただし、性能は上がりません)。Raid5ではディスク1台分のパリティを持つので、Raid6は2つ分ですね。パリティ部分にはデータを保存できないので、n台構成のRaidならRaid5はn-1台のデータ容量、Raid6はn-2台のデータ容量になります。
ライトスルー方式(right through)
キャッシュメモリの書き込み命令を実行したときに、メモリと主記憶の両方を書き換える方式のことです。主記憶への書き込みが完了するまで待つため、処理速度が低下する欠点があります。一方で、「主記憶への書き換えはキャッシュメモリから当該データが追い出されるときに行う方式」をライトバック方式と呼びます。書き込みをいっぺんに行うか、順番に行うかです。
ライトスルー方式:処理速度は遅いが、主記憶のデータは常に最新
ライトバック方式:処理速度が早いが、書き戻す必要がある。
VLIW(very long instruction word)
プロセッサ高速技術の一つで、同時に実行できる複数の命令に対して一つの複合命令として命令セットを割り当て、まとめて実行できるようにする方法です。複数の命令を実行するわけではないので、パイプラインに入った命令の依存関係を分析しなくて良いので、動作を高速にできるというわけです。
クラスタソフトウェア(cluster software)
仮想サーバの冗長化設計に使います。複数コンピュータを連携して信頼性を高める構成のことです。OS、アプリケーションおよび、ハードウェアの障害に対応し、障害時に障害が発生していないサーバに自動的に処理を引き継ぐので、切り替え時間の短い安定した運用が求められる場合に有効です。
動的リンキング
プログラムの実行中に必要になった時点でモジュールをロードすることです。これに対して、プログラムの実行中に主記憶内でモジュールの格納位置を移動させることを動的再配置と言います。
MMU(memory management unit)
CPUが要求するメモリアクセスに対して仮想アドレスから物理アドレスへの変換を行うハードウェアで、バスの調停やメモリの保護、キャッシュの制御等を行います。OSはMMUを使ってページの割り当てを変更し、ページテーブルを更新してCPUが要求するページへのアクセスを可能にします。
データベース&プログラミング
CASCADE
データを削除したときに子表の同じ値をもつ絡むのデータもまとめて削除します。
INTERSECT
複数のSELECTの結果の積集合を得る命令です。
ロールフォワード?ロールバック?
以下のトランザクション3つにはロールバックとロールフォワードどちらの対象になるでしょうか。
1:障害回復はチェックポイントに戻って行うので、その前にコミットしている1は対象にしなくて良いです。
2:障害発生時にコミットされていないトランザクションは、ロールバックが必要です。
3:障害発生時点でコミットされているトランザクションは、ロールフォワードが必要です。
*ロールフォワードは、トランザクションログを用いて処理をやり直すものでしたが、ロールバックは更新前情報で上書きするというものでしたね。
RESTRICT
データを削除する際に小表と同じ値をもつカラムがあるとエラーになります。CASACADEとの混同に注意してください。
第2正規形や第3正規形でないと何が問題?
テーブルが第2正規形ではない時、一般的に更新時異常の問題が発生します。テーブルに更新がない場合は問題ありません。また、テーブルが第3正規形ではないとき、推移従属の変更で該当するすべての行を修正する必要があり、大変です。正しいカラムの集合を連結属性として主キーに設定する必要がある場合もあります。
データレイク
キーワードは「そのままの形」です。さまざまなデータソースの中から、データをそのままの形で必要な時に取り出せるようにしたものです。非構造データでもそのままの形で保管します。
デッドロックを解消するには
資源をお互い占有し合うことで、どちらの処理も進まなくなることをデッドロック(dead lock)と言いますが、一方のタスクの優先度を高くしても優先度の低いタスクが資源を占有している限り、タスクを実行することはできません。デッドロックを解消するには、資源の占有する順番を同じにすることです。
委譲(delegation)
あるオブジェクトに対する操作を他のオブジェクトに処理の一部を委ねることです。混同する言葉として、伝搬(propagation)がありますが、これはあるオブジェクトに対する操作を適用した時、関連するオブジェクトに対してもその操作が自動的に適用される仕組みです。
ニモニックコード(mnemonic code)
別名表意コードとも呼びます。対象物に合わせて人間がコードの意味を理解できるようにしたコードで、コードから対象物を連想することができます。人間は2進数で表された機械語の命令を理解することはできません。アセンブリ言語で使われます。
外部スキーマ
スキーマ(schema)とは、データベースで扱われるデータの構造や形式、性質、制約などの情報を記述した取扱い説明書のようなものです。そのうち外部スキーマとは、ユーザやアプリケーションなど、データベースの外側からみた場合のスキーマを指します。一方、内部スキーマは、定義されたデータをどのようにデータベースに格納するかを記述したものです。ちなみにデータの定義は概念スキーマに記述されます。
DOM(document object model)
HTML(hyper text markup language)やXML(extensible markup language)で記述されたドキュメントの一部を、タグにつけたIDを手がかりに操作するためのAPI(application programing interface)です。
JSON(javascript object notation)
javascript のオブジェクト表記法に準じた形で、データの名前と値の集まり、その配列をテキストデータとして記述するフォーマットです。可読性の高さに特徴があり、さまざまな言語でサポートされています。
{
"ID": 1,"Name": "sakamoto","MailAddress": "ryoma@XXXX.co.jp",
"ID": 2,"Name": "katu","MailAddress": "kaisyu@XXXX.co.jp"
}
ワイルドカード(wild card)
どのような文字や文字列にもマッチする特殊な文字のことです。SQLで使われるワイルドカードは%と_です。
%:任意の長さの文字列(0文字でもok)
_:任意の文字列(0文字はだめ。1文字以上)
ワイルドカードを使う時には、WHERE句かLIKE演算子を使う必要があります。
#1990年代を表したいとき。
LIKE '199_'
丸め誤差
指定された有効桁数で演算結果を表すために切り捨て、切り上げ、四捨五入で下位の桁数が消去されると発生する誤差のこと。似た言葉として「桁落ち」がありますが、桁落ちとは、値がほぼ等しい2つの数値の差を求めたときに有効桁数が減ることによって発生する誤差のことです。
ペトリネット(petri net)
並行して進行する事象間の同期を表す図です。プレースとトランジションという2つの節点とトークンという1つの要素を持つ有向グラフで表されます。目的としては並列する処理同士の制御の流れやシステムの動作を視覚的に表したい、ということです。
図はトランジション発火の様子を表しています。まず入力プレースにトークンがあることが前提です(上段の説明)。次にトランジション発火が起きると入力プレースからトークンが取り除かれ、先のプレースに新しいトークンがおかれます。入力プレースが2つなら先のプレースに置かれるトークンも2つです。
原始プログラムからローダまで(手続型)
原始プログラムというのは、人間がプログラミング言語の文法に従って書いたコードのことです。原始プログラムは、まずコンパイルにかけられ、コンピュータで実行できる目的プログラムになります。その後、目的プログラムを処理できる配置にさせるのがリンカというプログラムです。最後に大規模なプログラムであるロードモジュールが生成されます。
コンパイルを細分化すると、字句解析→構文解析→意味解析→最適化→コード生成という手順があります。イメージとしては、まずトークンという字句レベルまで細分化した後に、構文→意味のように大きな括りで捉えていくということです。
ポリモーフィズム(polymorphism)
同じ属性とメソッドを持つ異なるオブジェクトに同じメッセージを送ったとしても、異なる結果が返ってくることを指します。多相性とも呼ばれます。オブジェクト指向型の言語(javaなど)で実現され、スーパークラスで定義されたメソッドをサブクラスで再定義すること(override)で実行されます。親クラスで定義したメソッドを、子クラスで@Overrideすれば使えるよ、というわけです。
スーパークラス(抽象クラスとも呼ぶ)で定義だけされ、サブクラス(具象クラス)で呼び出されるメソッドを純粋仮想関数(抽象関数)とも呼びます。
GCC(GNU C Compiler)
GNUプロジェクトが開発しているプログラミング言語のコンパイラです。GNUプロジェクトとは、UNIX互換のフリーソフトウェア群を開発、配布するプロジェクトの総称です。そして、GNUとはオペレーティングシステムのことです。
ランレングス法(run-length method)
連続するデータをデータの種類と連続回数として表現して、データの圧縮を行うという符号化の一種です。FAXのデータなど連続したデータが多い場合の圧縮効率に優れています。ブロックの長さに数字を割り当てています。
KVS(key value store)
読んで字の如くで、Keyとvalueという組み合わせからなる単純な構造のデータベースのことです。分散処理とスケールアウトに適しています。特徴としては、多数のデータをリアルタイムに格納して解析を行なっていくことができますが、データ間の関係が表現できない(relational databaseではない)のでトランザクション処理を代表とする複雑な処理には向いていません。
リバースエンジニアリング(reverse engineering)
通常のソフトウェア開発プロセスとは逆に、対象物を解析して、その前段階のソースやドキュメントを調査する技術です。プログラムを見て、仕様書を作ったりする行為が該当します。プログラムの外部インターフェースを維持しながら、内部のプログラムを書き換えていくリファクタリングと混同しやすいのでご注意ください。
テクノロジー
HDL(hardware description language)
プログラミング言語に似た文法で、論理回路の種類や配線状態、動作条件などを記述します。
UTF(unified threat management)
ネットワークに関連する脅威への対策機能を統合したアプライアンスです。
JavaBeans
Javaプラットフォームを使ったオブジェクトクラスで、再利用可能な小さなソフトウェアコンポーネントとして設計されます。
EMS(electronics manufactuaring service)
電子機器や情報機器などの設計や製造を専門的に行うサービスや企業のことです。
頻出アーキテクチャについて
AA(アプリケーションアーキテクチャ)
業務機能と情報の流れをまとめたサービスのまとまりの構成のことです。業務プロセスを支援するシステムの機能や構成などを体系化したものです。アークテクチャに関して同じく頻出度が高いものとしては、SOA(service oriented architecher)です。これは、業務上の一処理に相当するソフトウェアの機能をサービスとしてコンポーネント化する考え方です。利用者の視点でシステムを独立した部品で分けます。
また、エンタープライズアーキテクチャ(enterprise architecture)は組織全体の業務とシステムをモデル化し、業務も併せて全体最適化を行います。最適化がキーワードです。
HEMS(home energy management system)
家庭で使うエネルギーを節約するための管理システム。複数の家電製品をネットワークで繋いで、電力を可視化し、最適制御を行います。
アクチュエータ(actuater)
コンピュータが出力した電気信号を油圧や電動モータなどによって力学的な運動に変換する機能を持つ駆動装置です。「アナログをデジタルに変換する〜」のA/D変換器と間違えやすいので注意しましょう。
H.323
テレビ会議やテレビ電話でのリアルタイムの動画、音声通信を行うためのプロトコルです。電話番号とIPアドレスを紐づけることができます。
SiPとSoCの違いについて
多機能なモジュールを1枚に集約できれば、コンピュータは小型化してき、製造コストが下がったり、応用可能性が上がったりします。多機能チップのための技術としてSoCとSiPというものがあります。
SoC(system on Chip):1枚のシリコンウェハー上に、機能の全てを持たせたものです。高い集約精度を持ちます。
SiP(system in package):機能ごとにチップを分け、配線で繋いで一つのパッケージにしたものです。各機能を個別で最適化でき、パッケージ内のそれぞれのチップを適切に配線で繋いでいます。SoCでは難しい異種プロセスの半導体を混載することができます。
UPS(uninterruptive power supply)
停電や瞬時によるコンピュータへの障害を防ぐために一時的に電源を供給する装置のことです。UPSは一般向けにも売られていて、安いものだと10,000円台で購入することができます。
ポテンショメータ(potentiomete)
移動量や回転の角度を電圧に変換する装置です。
アンチエイリアシング(anti aliasing)
周辺の要素との平均化演算などを行うことです。斜線や曲線のギザギザをなくすことが目的です。
グリッドコンピューティング(grid computing)
コンピュータの処理能力を高めるためにCPU単体の性能を上げたり、マルチCPUの高性能なシステムを構築したりするのではなく、安価なコンピュータを多数ネットワークで接続し、大規模な仮想コンピュータをして利用できるようにしたシステム構築手法です。
ドルビーデジタルAC-3
51チャネルサラウンドシステムで使用される音声圧縮技術です。ドルビー(dolby)というのは、開発した会社の名前をとっているだけです。これに対して、携帯電話で使用される音声圧縮技術のことを、CELP(code excited liner prediction)と呼びます。
ONU(optical network unit)
光回線終端装置です。光ファイバーの通信回線を利用する時に必要な機器で、光信号と電気信号を変換します。
AACS(advanced access content system)
著作権保護技術の一つで、DVDやブルーレイディスク等にコピーを防ぐために使用されるコピープロテクト規格です。
H.264/MPEG-4 AVC
動画データの圧縮符号化方式の一つです。高画質を保ったまま、圧縮率を高め容量を小さくすることが可能です。
CPS(cyber physical system)
現実世界にある多様なデータをセンサーシステムなどで収集・蓄積させ、サイバー空間で分析と解析、シミュレーションを行い、その結果を現実世界に還元することで、より高度な社会の実現を目指すシステムのことです。
IEEE(the institute of electrical and electronic engineering)
アメリカに本部を置く電気・電子技術に関する世界的な学会のことです。似た言葉に、IETF(Internet engineering task force)があります。これは、インターネットで利用される技術やプロトコルの標準化を推進する組織です。
ディスプレイの特徴早見表
液晶ディスプレイや有機ELディスプレイ、ブラウン管、プラズマディスプレイなどの特徴を簡潔に記しました。ご参考までに。
有機EL | ブラウン管 | プラズマ | 液晶 | |
発光方法 | 有機化合物を使う | 電子ビームを蛍光体に当てる | 放電による紫外線と蛍光体 | 光を画像ごとに制御→カラーフィルタを通す |
備考 | 性能良し | 主流 |
MIMO(multiple input and multiple output)
無線LANや携帯電話の通信において、送信側と受信側の双方で複数のアンテナを使って行うことで、安定して早い通信を実現する品質向上の技術です。
Apache Kafka
webサービスなどから大量のデータを高速に収集し、リアルタイムに処理することができるOSS(open source software)の分散メッセージングシステムです。同じく、Apache Stormも大規模データをリアルタイムに高速処理できるOSS分散処理システムです。
Apache Hadoop
大規模データを高速で分散処理するソフトウェア基盤です。Apache Hadoopはjavaで書かれているのに対して、Apache Stormはscala言語で書かれています。そもそも分散処理というのは、大きなデータを小分けにして複数のサーバーで処理します。
ZigBee
無線を使って近距離における機器間通信を行う規格です。同様の機能を持ったBluetoothに比べてコストが安い、待機時の消費電量が低い、復帰時間が早いなどの特徴を持っています。
フラッシュメモリ(flash memory)
データの読み込みができる記憶媒体の一つです。特徴としては、以下が挙げられます。
・内部構造を単純化するために消去に用いる構成部品をブロック単位で共有している。
・不揮発性のメモリなので、電源を切ったとしても記憶は残り続ける。
・電気的な信号で消去する。
・書き換え速度は一般的に遅く、書き換えのできる回数も有限。
SMIL(synchronized multimedia integration language)
XMLフォーマットの一つです。動画や音声などのマルチメディアコンテンツの埋め込み、レイアウト、状態遷移などをコントロールします。
AAC(advanced audio coding)
不可逆のデジタル音声圧縮を行う音声符号化規格です。この種の圧縮方式の覚え方としては、「何が音声圧縮で、何が動画圧縮」のように圧縮できるデータをカテゴリ分けができれば大抵の問題は解けます。AACと同じ、音声圧縮企画としてWMA(windows media audio)があります。MP3よりも圧縮効率が良いことが特徴で、マイクロソフト社が開発しました。
USB3.0(universal serial bus)
聞いたことはあると思います。PCなどのホスト機器に周辺機器を接続するためのシリアルインターフェース(パラレルインターフェースではありません)です。4つの転送スピードを持っており、スーパースピードモードはPCと外付け磁気ディスクとの接続に使われるなどの特徴があります。
他のシリアルインターフェースで言えば、IEEE1394というものがあり、アップリ社が開発したFireWireを標準化したものであり、音声や映像などのリアルタイム性が求められるデータの転送に適した高速な転送方式を持っています。
並列処理方式の様式について
ややこしいので、以下の表で一気に覚えてしまいましょう。SはsingleでMはmultiであると覚えて仕舞えば、問題を解くだけなら心配ないですね。
単一データストリーム | 複数データストリーム | |
単一命令ストリーム | SISD | SIMD |
複数命令ストリーム | MISD | MIMD |
ほとんどの並列コンピュータは、MIMDの手法を使って非同期の同時処理を行なっています。
*補足として、MISD(multiple instruction single data stream)は、複数の命令ストリームで単一の処理ユニットで実行します。フォールトトレランスによる信頼性設計に使われることがあります。
パーサ(parser)
ソースプログラムやXMLなどの一定の規則で書かれた文書の構文解析をして、次の処理で扱いやすい形式にするためのプログラムです。
ハイパースレッディング(hyper threading)
パイプラインの空き時間を利用して二つのスレッドを実行し、あたかも二つのプロセッサであるかのように見せること。命令の並列実効性を高めます。
プロファイラ(profiler)
実行中のプログラムの性能を解析し、特にボトルネックとなっている部分を見つけるためにどの関数がどの順番でどのくらいの頻度で呼ばれているのか、そして関数の実行にどれくらいの時間がかかったのかなどの情報を収集するためのツールです。
エミュレータ(emulator)
異なるハードウェア上で動作するソフトウェアを擬似的に実行させるソフトウェアのことです。
ディジタルシグナルプロセッサ(digital signal processer)
積和演算やベクトル演算を高速に処理する能力を持ったディジタル信号処理用の専用プロセッサです。画像や音声などをリアルタイムに処理するために用いられています。ディジタルフィルタを実現するのに適しています。
開発・マネジメント編+その他
一部監査や経営戦略の用語も加えております。ご了承ください。
回帰テスト
保守段階で行われるテストであり、修正部分だけでなく、他の部分にも影響を与えていないかを確認するためのテストです。テストの最中に重大な欠陥を見つけ、大規模な修正を行うと、その続きをやれば良いだけではなく、回帰テストをする必要があります。リグレッションテスト、退行テストと呼ばれています。
既存機能に対して行うテストであるという点で、単体テストとは異なります。
スタブ(stub)
モジュール結合テストにおけるトップダウンテストで必要なテスト用のモジュールです。これに対して、ドライバ(driver)はモジュール結合テストにおけるボトムアップテストで必要となるテスト用モジュールです。
スタブは上位テスト対象モジュールから呼び出され、ドライバは下位テストモジュールを呼び出すものです。
標準値法
手順は以下の通りです。単位作業項目に適用する作業量の基準を決める→作業項目を単位作業項目まで分解する→基準値を適用して算出した作業量の積算で全体の作業量を見積もります。
COCOMO(constructive cost model)
cocomoは、工数や期間などを見積もる手法の一つです。ソースコードの想定行数を元に、プログラマーのスキルや再利用コード量などの要因から開発規模を見積り、補正係数を掛け合わせて工数を見積もります。自社における生産性に関するデータを蓄積しておかないと見積もることはできません。
構造化設計
プログラムに必要な機能に着目したシステム設計手法です。機能を階層にして分割し、モジュール化します。これらのモジュールを組み合わせて開発を進めます。
CMMI(capability maturity model integration)
プロセス成熟度モデルとも終われ、ソフトウェアの開発組織やプロジェクトの成熟度を5段階で判定する尺度です。
ベロシティ(velocity)
1スプリントに開発チームが昇華したストーリーポイント(アジャイル開発における作業量を見積もるための単位)の合計を測定したものです。つまり、1チームでどれだけ開発することができるかを客観的に示した指標になります。
インスペクション(inspection)
ソフトウェアのレビュー技法の一つです。大きく分けて、モデレータと参加者の立場に分かれます。モデレータは作業全体を統括して、参加者の選出や役割の任命を行います。参加者は、インスペクター(inspecter)という検証役、プレゼンター役などに分かれます。チェックリストに基づいて検証し、正式な記録を残します。
モジュールの結合度と強度について
結論から言うと、モジュールは独立性が高いほど保守性が上がるので、良いとされます。したがってモジュールの結合度が弱い方が良いとされます。また、モジュールの強度に関しては、強いほど優れた設計であるとされます。モジュールとは、一つの機能を持った単位をさします。
結合度 | 強い | 弱い | ||||
結合種類 | 内容結合 | 共通結合 | 外部結合(大域的) | 制御結合 | スタンプ結合 | データ結合 |
*スタンプというのは、データの構造体のことです。
*データ結合というのは、引数のみを受け渡す方式のことです。処理に必要なデータのみを受け渡すので、結合度が最も弱いです。
強度 | 強い | 弱い | |||||
強度種類 | 機能的強度 | 情報的強度 | 連絡的強度 | 手順的強度 | 時間的強度 | 論理的強度 | 暗号的強度 |
エスクローサービス(escrow servise)
escrow(預託する)というやや難しめの英語が使われています。電子商取引において、第三者が仲介して決済することで、「代金を支払ったのに商品が届かない!」「商品を送ったのに代金が支払われない!」といったトラブルを回避することができます。メルカリを想像していただければわかると思います。
パスアラウンド(pass around)
作業成果物を複数のレヴュアーに配布し、回覧してもらい、複数のコメントやフィードバックを受けることです。割と当たり前の行いですね。
機能適合性(functional suitability)
「明示的、暗黙的」問題文にでたら、ほぼこれです。明示された状況下で使用するとき、明示的なニーズ及び暗黙的なニーズを満足させる機能を製品またはサービスが提供できる度合いのことです。細分化させると機能完全性、機能正確性、機能適切性、性能効率性に分かれます。
ファストトラッキング(fast tracking)
通常は順を追って行うフェーズやアクティビティを並行的に行うことで、所要時間を短縮させます。順を追って作業を行わないので、後で手戻りが発生指定しまうというリスクもあります。
工程の期間を短縮させるもう一つの方法として、クラッシング(crushing)があります。クラッシングは人員や資金などの資源を投入して、工程の期間を短縮させます。当然こちらの場合、コストが上がる可能性があります。残業の承認などもファストトラッキングに当たります。
フィーチャ駆動型開発
5つの基本活動である、全体モデルの開発・顧客が欲する機能のリストアップ・機能ごとの開発計画・機能ごとの設計・機能ごとの構築、から構成される反復方式の開発工程です。これは抽象的で覚えられないと思うので、「5つの基本活動があるんだな」と覚えてください。
リーンソフトウェア開発(lean software development)
7つの原則のほか、原則を実施するための22の思考ツールからなる開発手法です。かんばん方式を参考にして生まれたアジャイル型開発手法で、無駄を削減することに重点をおいています。ちなみに、かんばん方式とは、後工程が自工程の生産に合わせて必要な部品を前工程から調達し、中間在庫を減らしていくような開発手法です。
ERP(enterprise resource planning)
企業の持つ資源を統合的に管理することです。何の略か理解できればわかると思います。会計や人事、製造、購買、在庫管理、販売などの企業の業務プロセスを一元管理することによって業務の効率化や経営資源の全体最適を図る手法です。
MRP(materials requirements planning)
資材の所有量を計画することです。マテリアル系の企業での経営用語ですね。
ピアレビュー(peer review)
成果物レビューの一種で、ソフトウェア開発の各工程で生成される成果物を同量や同じ開発チームメンバーのレビュアーによって評価することです。
ドロップシッピング(drop shipping)
ネット販売の一形態で、webサイトで商品を購入した場合に、商品の発送をサイト管理者ではなく、製造元や卸元が行う取引のことです。アマゾンなどで利用されています。
MOT(management of technology)
何の略か分かれば簡単ですね。技術経営のことです。製造業などに求められる技術に着目した経営のことです。
クリエイティブコモンズ(creative commons)
著作権に関わる非営利団体です。活動としては、インターネット上で発表される作品の利用と流通を図るために、利用上の一定のルール(クリエイティブコモンズライセンス)を設けて提供することです。
デルファイ法(delphi method)
同じ内容の質問を複数の専門家からアンケート調査方式で回答を得て、それをフィードバックして再び調査して回答を出してもらうことを繰り返し、意見を統計的に集約し、結論づけていくことです。
BI(business intelligence)
業務システムなどに蓄積される大量のデータを収集、蓄積、分析、報告していくことで、経営などの意思決定に活用していく手法やシステムのことです。例として、業績の評価や経営戦略の策定を行うために、業務システムなどに蓄積された膨大なデータを分析する、などが挙げられます。