結合度
プログラムの中で呼びだし関係にある2つのコンポーネント(以下、関数と呼ぶ)の関係を表す尺度で、保守に伴う修正作業による副作用などを未然に防ぐために、情報の受け渡しが出来るだけ「疏結合」の状態を目指します。
凝縮度
これは、プログラムのひとつのコンポーネント(以下、関数と呼ぶ)の中に含まれる機能の純粋度を表す尺度です。保守を考えたとき、ひとつの関数の中で、いくつもの機能が混ざり合っているよりも、上手く機能分割されて、機能と関数が1対1になっている方が理解しやすいし、修正の際に他の部分に悪い影響を与える機会は確実に減ります。
変更管理のスタンダードとプラクティス
リクエストコントロール
ユーザが変更をリクエストし、マネージャーが費用対効果を分析し、開発者がタスクの優先順位付けができる
変更コントロール
実稼働環境にロールアウトする前に、複数の開発者がソリューションを作成してテストできる
リリースコントロール
すべての変更が理解され、機能することを確認するための受入テストが含まれる
構成コントロール
ソフトウェアのバージョン変更が、変更コントロールと構成管理プロセスに従って実行されることを保証する
SDLC
SDLCは、Software Development Life Cycleの略語です。SDLCはソフトウェア開発を「開始」、「開発・調達」、「実装・調査」、「運用・保守」、「廃止」の5フェーズに分ける方法論です。
SDLCにおいては、開発から廃止までの各サイクルで適切なセキュリティを講じることが重要と考えられています。開発ライフサイクルに合わせたセキュリティ対策は、脆弱性の早期発見やセキュアなエンジニアリング、セキュリティ戦略の再利用によるコスト削減、リスク管理、セキュリティ対策を文書化することによる透明性・可視性の向上、システム間の相互運用性の向上といった効果を得ることに役立ちます。
https://www.sompocybersecurity.com/column/glossary/sdlc#:~:text=SDLC%E3%81%AF%E3%80%81Software%20Development%20Life,%E3%83%95%E3%82%A7%E3%83%BC%E3%82%BA%E3%81%AB%E5%88%86%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95%E8%AB%96%E3%81%A7%E3%81%99%E3%80%82
SW-CMM
ソフトウェアCMM(SW-Capability Maturity Model)とは、プロセスの形式化と最適化の度合いを示します。
https://piedpin.com/top/2020/09/12/sw-capability-maturity-model/
https://jibun.atmarkit.co.jp/lskill01/special/cmm01/ccm03.html
初期段階
このレベルでは、通常文書化されておらず、動的に変化している状態です。
反復可能段階
このレベルでは、成熟度ではいくつかのプロセスが反復可能であり、一貫した結果が得られるでしょう。
定義段階
このレベルでは、文書化された一連の標準プロセスが確立されており、時間をかけてある程度改善されています。
組織的にプロセス管理を行っているレベル
管理段階
このレベルでは、目標達成のためにプロセスの評価が行われています。
プロセスおよびプロダクトの定量的管理が実施できているレベル
最適化段階
プロセス改善に全員が参加し、改善活動が日常化しているレベル
ウィルスの種類
ステルス型ウィルス
ステルス型ウイルスとは、コンピュータウイルス(や広義にはマルウェア全般)の種類の一つで、何らかの技法を用いて利用者やアンチウイルスソフトなどから自身の存在を隠蔽するもの。
https://e-words.jp/w/%E3%82%B9%E3%83%86%E3%83%AB%E3%82%B9%E5%9E%8B%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9.html
ポリモーフィック型ウィルス
ポリモーフィック型ウイルスとは、コンピュータウイルスの分類の一つで、感染時に毎回異なる暗号鍵で自身を暗号化することでパターンマッチングによる検出を回避するもの。
https://e-words.jp/w/%E3%83%9D%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E5%9E%8B%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9.html
マルチパータイト型ウィルス
マスタブートレコード、ブートセクタ、およびファイルに感染し、システムのセキュリティコントロールを無効化する
https://tex2e.github.io/blog/security/cissp-notes
暗号化ウィルス
MBR
マスターブートレコード
ACID特性
https://e-words.jp/w/ACID%E7%89%B9%E6%80%A7.html
“Atomicity”(原子性/不可分性)とは、トランザクションに含まれる個々の手順が「すべて実行される」か「一つも実行されない」のどちらかの状態になるという性質である。送金処理における出金と入金を一体的に扱うことなどが該当する。
“Consistency”(一貫性/整合性)とは、トランザクションの前後でデータの整合性が保たれ、矛盾の無い状態が継続される性質である。例えば、送金トランザクションによって口座の残高の値が負になるといったことが起きないようにする。
“Isolation”(独立性/隔離性)とは、トランザクション実行中の処理過程が外部から隠蔽され、他の処理などに影響を与えない性質である。例えば、送金処理の途上である「出金は実施済みだが入金は未実施」といった状態を外部から読み出されないよう排他制御などを行う。
“Durability”(耐久性/永続性)とは、トランザクションが完了したら、その結果は記録され、システム障害などが生じても失われることがないという性質である。データ操作の時系列の記録(ログ)をストレージなどに保存しておき、データ記録中に障害などで中断したら記録を元に更新を反映させるといった処理が行われる。
レビュープロセス
パスアラウンド
コードをメール等で皆に回覧してもらい、レビューをしてもらう方法です。
https://yottagin.com/?p=6586
パスアラウンドとは、成果物を他者が精査・講評するレビューの手法の一つで、成果物を評価者(レビューア)に個別に送って回答してもらう方式。
https://e-words.jp/w/%E3%83%91%E3%82%B9%E3%82%A2%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89.html
ウォークスルー
(英: walkthrough、英: walk-through)は、ソフトウェア開発、システム開発におけるピアレビューの技法の1つ。
レビューを希望する成果物の作成者が、必要な数のレビューアを招集し、成果物の内容を説明する形式となる[1]。
インスペクション
他の技法とインスペクションの違いは以下の通り。
・責任者としてモデレーターが任命され、インスペクション作業全体を統括する
・検出した欠陥をログに保管し、修正が行われたことを追跡調査する
ペアプログラミング
ペアプログラミングとは、1台のPCを使い、2人でプログラミングを行う開発手法のことです。同時にプログラミングを行うのではなく、「ドライバー」と「ナビゲーター」という役割に分かれるのが特徴で、ナビゲーターが指示やサポートを担当し、ドライバーがプログラミングを行うという分業体制で仕事を進めていきます。
https://freelance-aid.com/articles/software-design/1133.html
チームレビュー
復旧方法
フェイルオーバー
エラー発生時に自動的に予備システムに切り換えること
フェイルオープン
エラー発生時にトラフィックフローの処理方法を選択すること (防御システムの再起動中は検査なしで通すことで可用性を維持する)
フェイククローズ
エラー発生時に全ての活動を停止させる保守的な障害管理方法
IDEALモデル
プロセス改善のライフサイクルモデル。開始 > 診断 > 確立 > 行動 > 学習 の順番で進む
RAD (Rapid Application Development)
質の高いコードを迅速に作成する。意思決定が急すぎて設計の質が悪化する可能性もある
RADでは、要件計画 > ユーザ設計 > 製作 > カットオーバー の4つのフェーズを使用する
スパイラル
ウォーターフォール方式をネストしたもの。ウォーターフォールの各フェーズでPDCAサイクルを回す
アジャイル
少人数で協調的で反復可能な学習、構築、テスト、運用をする。「スクラム」「スプリント」「セーフ」などの活動パターンに沿って活動する
スクラム : 開発サイクルを何回も繰り返すこと。開発サイクルは優先度の高い順に行う
スプリント : 開発サイクルにおける反復の単位