システム開発技術

暗記

n4_kubota 2025年01月22日 カード98 いいね0

ビューア設定

[Enter]でカードをめくります。キーボードショートカット

システム開発技術
  • SysML
    ソフトウェア設計に用いられるUMLを拡張したグラフィカルなモデリング言語
  • ユースケース図
    システムとアクタの相互作用を表現する
  • システムやソフトウェアに対する保守
  • インスペクション
    作成者以外の第三者が成果物を確認するレビュー方法
  • イテレーション
    短いサイクルで分析、設計、実装、テストの一連の活動を繰り返すこと
  • is-a(汎化-特化)の関係
    [動物-犬]などのように「...は00である」で表現できる
  • part-of(集約-分解) の関係
    「自転車-サドル」のように「...は00の一部であえる」
  • バーンダウンチャート
    縦軸に残作業量、横軸に時間を取った折れ線グラフ。
    残作業量や予定との差異を視覚的に把握することができる
  • モジュール結合度
  • スタブ
    トップダウンテストにおいて必要となるテストモジュール
  • ドライバ
    ボトムアップテストにおいて必要となるテストモジュール
  • モジュール強度
  • MVCモデル
  • プラットフォーム開発
    複数の製品で強要する共通部分を最初に設計し、それを土台として開発する。
  • マッシュアップ
    Web APIを組み合わせて新しいサービスを開発する
  • FTA(Fault Tree Analysis)
    故障や事故、失敗などの要因を分析する手法の一つで、ある事象の要因となる事象を列挙し、さらに各要因について要因を列挙し…という手順を何段階も繰り返し、全体を樹形図(ツリー)の形に図示して整理する手法
  • FMEA
    製品や製造プロセスに潜在する故障モードを事前に洗い出し、影響を分析評価したうえで対策を講じる解析手法
  • アクティビティ図
    ある振る舞いから次の振る舞いへの制御の流れを表現する
  • 状態遷移図
    オブジェクトがイベントの発生や時間の経過と共にどのように変化するのかを表現する
  • データ中心アプローチ(DOA)
    プログラムとデータは別のものであると考え、データを中心に据えてプログラムを設計する
  • クロス開発
    プログラムを開発するマシン環境と、実行するマシン環境が異なること
  • ウォークスルー
    開発メンバーの複数人で設計書やソースコードを検査すること
  • CMMI
    ソフトウェア開発及びプロジェクトの成熟度を評価するためのモデル
  • アシュアランスケース
    システムが要件を満たしていることを示す証拠を体系的にまとめたもの
  • エピック
    大きなユーザーストーリー
  • ストーリーポイント
    ユーザーストーリーの規模を見積もるための単位
  • プロダクトバックログ
    ユーザーストーリーを管理するためのリスト
  • 決定表 (デシジョンテーブル):
    条件と結果の組み合わせを一覧で表したもの
  • 集中処理
    1つの高性能なコンピュータ(メインフレームなど)ですべての処理を行う方式。
    メリット:管理が容易、セキュリティが高い。
    デメリット:システム全体が停止するリスクが高い、拡張性が低い。
    過去の主流な方式で、現在では大規模なシステムで一部利用されるケースがあります。
  • 分散処理
    複数のコンピュータで処理を分担する方式。
    メリット:処理能力が高い、可用性が高い、拡張性が高い。
    デメリット:システムが複雑化しやすい、管理が難しい。
    現在の主流な方式で、クライアントサーバシステムやWebシステムなど、多くのシステムで採用されています。
  • マイクロサービスアーキテクチャ
    アプリケーションを独立した小さなサービスに分割し、連携させて動作させる
    開発・運用・スケーリングが容易、個別のサービスを独立して更新可能
    システムが複雑化しやすい、サービス間の通信の管理が難しい
  • サービスメッシュ
    マイクロサービス間の通信を管理するためのソフトウェア基盤。
    マイクロサービスアーキテクチャの複雑さを解消し、管理を容易にするために利用
  • サーキットブレーカー
    サービス間の通信において、障害が発生したサービスへのアクセスを遮断する仕組み
    障害の影響範囲を最小限に抑え、システム全体の可用性を維持するために利用されます
  • サーバレスアーキテクチャ
    サーバの管理を必要とせず、アプリケーションの実行環境を提供するサービス
    Lambdaなど
  • 擬似コード
    プログラミング言語に似た形式で、アルゴリズムを記述したもの
    プログラムのロジックを明確化し、設計の段階で共有するために利用される
  • OODB(Object Oriented Database)
    オブジェクト指向の概念に基づいてデータを管理するデータベース
    マルチメディアデータやCADデータなど、複雑な構造のデータを扱う
  • インメモリデータベース
    データをメモリ上に格納して高速にアクセスするデータベース
    リアルタイム処理や高負荷な処理
  • クリーンアーキテクチャ
    ソフトウェアの設計原則の一つで、関心の分離を重視したアーキテクチャ
    ビジネスロジックを、フレームワークやデータベースなどの外部要素から独立させることで、ソフトウェアの保守性、テスト性を向上させることを目的とします。
  • .フォームオーバーレイ
    既存の画面に重ねて表示される入力フォーム
  • 利用時の品質モデル
  • JIS X 25010
    品質特性を8つに分類し、それぞれの特性をさらに詳細な副特性に分解して定義
  • ワーニエ法
    プログラムを、段階的に詳細化していく手法。
    プログラム全体の処理を抽象的に記述し、段階的に詳細な処理に落とし込んでいきます。
  • ジャクソン法
    プログラムの構造を、データ構造に基づいて設計する手法。
  • HIPO
    システムの階層構造と、各モジュールの入力、処理、出力を表現する図。
  • STS分割 (Source Transform Sink分割)
    データの流れを、「入力(Source) → 変換(Transform) → 出力(Sink)」の3つの段階に分割する手法
  • TR分割
    データ処理のトランザクション(一連の処理)ごとにモジュールを分割する手法
  • サブルーチン
    特定の処理を行うために、メインプログラムから呼び出されるプログラム
  • NS図
    プログラムの構造を視覚的に表現する図。
  • コンポーネントウェア
    フトウェアを構成する**独立した再利用可能な部品(コンポーネント)**のこと
  • クラスライブラリ
    関連するクラスや関数をまとめたもの
  • レガシーラッピング
    、既存のシステム(レガシーシステム)をコンポーネントとして再利用するための技術
    レガシーシステムをAPIで包み込むことで、新しいシステムから利用できるようにする
  • COTS
    市販の既製のソフトウェア製品のこと。
    パッケージソフトウェアやライブラリなどがCOTSに該当
  • GoF
    「オブジェクト指向における再利用のためのデザインパターン」で紹介された23個のデザインパターン
  • ピアレビュー
    同僚やチームメンバーがレビューを行う手法
  • ウォークスルー
    レビュー対象のドキュメントやコードを、作成者が説明しながらレビューを行う手法
  • モデレーター
    レビューを進行する役割の人。
  • 構造化プログラミング
    順次、選択、繰返しの3つの制御構造を組み合わせてプログラムを記述する手法
  • インデンテーション
    プログラムのソースコードにおいて、行頭を字下げすること
  • サイクロマティック複雑度
    プログラムの制御フローの複雑さを表す指標
  • メトリクス計測
    ソフトウェアの品質や生産性を評価するために、様々な指標(メトリクス)を計測すること
  • コードインスペクション
    複数人でソースコードをレビューし、欠陥を検出する正式なレビュー手法
  • アサーション
    プログラムの実行中に、特定の条件が満たされていることを確認するための仕組み
  • トレーサー
    プログラムの実行過程を記録するツール
  • スナップショット
    プログラムの実行中の特定の時点での状態を保存したもの
  • ミューテーションテスト
    プログラムを少しだけ変更したもの(エラー)を複数作成し、テストケースがそれらを検出できるかを確認する
  • 実験計画法
    複数の要因を変化させてテストを行い、要因と結果の関係を分析する
  • カナリアリリース
    新しいシステムを一部のユーザーに先行して公開し、フィードバックを得ながら段階的に公開範囲を広げていく手法
  • ブルーグリーンデプロイメント
    新しいシステムを既存システムと並行して構築し、切り替え時にトラフィックを新しいシステムに切り替える手法
  • STAMP/STPA
    システムの安全性を分析するための新しい手法
  • DevOps
    開発チームと運用チームが連携し、開発と運用を一体化させることで、ソフトウェアのリリースサイクルを短縮し、品質向上を図る手法
  • MLOps
    機械学習モデルの開発、運用、保守を効率化するための手法です。DevOpsの考え方を機械学習に適用したもの
  • 進展的モデル
    システムを徐々に発展させていくモデルです。
    プロトタイピングモデルと似ていますが、プロトタイプを捨てるのではなく、それを発展させて最終的な製品に仕上げていきます。

  • 段階的モデル
    システムを複数の部分(インクリメント)に分割し、インクリメントごとに開発とリリースを繰り返すモデル
  • ソフトウェアプロダクトライン
    共通のアーキテクチャやコンポーネントを基に、複数の製品を効率的に開発するための手法
  • アジャイルソフトウェアの12の原則
  • リーンソフトウェア開発
    ムダを排除し、価値の流れを最大化する手法
  • ユーザー機能駆動開発 (FDD)
    ユーザーの視点から見た機能を重視する手法
  • テスト駆動開発 (TDD)
    テストを先に作成し、それを満たすようにコードを記述する手法
  • プランニングポーカー
    ユーザーストーリーの工数を見積もる手法
    メンバーがそれぞれカードに書いた見積もりを同時に出し、意見交換しながら合意形成を目指す
  • ユーザーストーリー
    ユーザーの視点から見たシステムの機能を記述したもの。
    「誰が」「何を」「なぜ」したいのかを簡潔にまとめた文章で表現
  • タイムボックス
    作業時間を制限すること
  • ベロシティ
    チームが1スプリントで完了できる作業量です
  • 継続的インテグレーション
    コードの変更を頻繁に統合することです。自動化ツールなどを用いて、ビルド、テスト、デプロイなどを自動化すること
  • エンタープライズアジャイル
    大規模な組織でアジャイル開発を導入するためのフレームワークや手法
  • SAFe (Scaled Agile Framework)
    最も広く採用されているエンタープライズアジャイルフレームワークの一つ。組織全体でアジャイル開発を推進するための包括的なガイダンスを提供します。

    4つの階層: チームレベル、プログラムレベル、ラージソリューションレベル、ポートフォリオレベル
    アジャイルリリースサイクル: 計画、実行、リリースのサイクル
    リーンアジャイルの原則: 価値の流れを最大化する
  • LeSS (Large-Scale Scrum)
    大規模なスクラム開発のためのフレームワーク
  • Scrum of Scrums
    複数のスクラムチームを連携させるための手法
  • DA (Disciplined Agile)
    様々なアジャイル手法を組み合わせたフレームワーク
  • YAGNI (You Ain't Gonna Need It)
    今必要のない機能は実装しない
  • インクリメント
    スプリントの成果物。 完成し、動作するプロダクトの一部
  • カオスエンジニアリング
    システムに意図的に障害を発生させることで、システムの耐障害性を検証する手法
  • オブザーバビリティ (可観測性)
    システムの内部状態を外部から観察できる度合い
  • OpenTelemetry
    オブザーバビリティのためのオープンソースの標準規格
  • SBOM
    「ソフトウェア部品表」とも呼ばれ、ソフトウェアを構成するコンポーネントやライブラリの一覧を記述したもの
  • アクティベーション
    ソフトウェアを特定の端末で利用できるようにする認証手続き
  • CPRM (Content Protection for Recordable Media)
    DVDやBlu-ray Discなどの記録メディアに用いられるコピーガード技術
  • DRM (Digital Rights Management
    ジタルコンテンツの利用を制限する技術
  • コピーガード
    デジタルコンテンツの複製を制限する技術の総称
  • 次の単語帳へ (7/8) テストする
よく頑張りました
暗記スタート