あらけす屋情報処理技術者試験

午前問題対策(システム開発)

システム設計/プログラミング/テスト


システム設計

  1. ソフトウェア開発ライフサイクル( SDLC ; Software Development Life Cycle )
    1. 顧客ニーズの把握
    2. 機能仕様の確定
    3. 対象物の詳細仕様の確定
    4. 行程計画・資源計画の策定
    5. 製造作業性能テスト・手直し
    6. 顧客への引き渡し
    7. 運用・保守
  2. ソフトウェアライフサイクル
  3. 外部設計
    データ項目を洗い出して論理データ構造を決定する
  4. 内部設計
    物理データ構造、データの処理方式やチェック方式などを決定する
  5. コード設計
  6. 開発スタイル・手法
  7. 開発資源
  8. 工数見積もり
  9. レビュー
  10. 生産性
  11. システムの移行
  12. システム開発においてシステム運用部門が果たすべき役割
    運用しやすいシステム作りや、本稼動へのスムーズな移行のために、システムの設計段階からプロジェクトに参加して運用ドキュメントの標準化を進める

プログラミング

  1. プログラム方式
  2. プログラミング言語
  3. ソフトウェア構成管理ツール
    支援の対象とする作業: バージョン管理
  4. マークアップ言語
    文書中にタグを挿入することによって、文書の構造を記述できる言語
  5. 制御構造
  6. 再帰的プログラムの特徴
    実行中に自分自身を呼び出すことができる
  7. アルゴリズム
  8. API(ApplicationProgramInterface)
    アプリケーションから、OSが用意する各種機能を利用するための仕組み
    アーキテクチャの異なるCPU間でも、同じOSとそのAPIを使用することによって、プログラムの互換性を高め、移植時の工数を削減することが可能
  9. コンポーネントウェア
    オブジェクト指向技術を基礎とした比較的自立性の強いソフトウェア部品を組み立てることによって、アプリケーションを開発する技術の総称
    ActiveXやCORBA、JavaBeansなど
  10. 標準化
    プログラミングに関する規約を設けることによって、プログラマの犯しやすい誤りを未然に防止する効果がある
  11. 命令語
    命令の種類によっては、オペランドがないものもある

テスト

  1. プログラムのテストでは、正常なケースで正しく動作するかどうかだけではなく、意図しなかった動きがあるかどうか、あるいは誤った入力があった場合にも意図した動作(エラー処理など)をするかどうかを調べる必要がある
  2. テストの種類
  3. テストケース設計法
  4. テストの順序
    1. 単体テスト
      テストツールを利用して、プログラムがコーディング基準を満足しているかを検証する
    2. 結合テスト
      モジュール間やサブシステム間のインタフェースを検証するために行うテスト
      • スタブ
        階層構造のモジュール群からなるソフトウェアの結合テストを、上位のモジュールから行う場合に使用する、下位モジュールの代替となるテスト用のモジュール
      • ドライバ
        ボトムアップテストにおいて、被テストモジュールの上位モジュールの機能を代行するもの
        テスト対象モジュールに引数を渡して呼び出す
    3. システムテスト
      オンライントランザクション処理のレスポンスタイムが要求仕様を満足するか検証する
      システムの要求仕様に照らしたマニュアル検証やテストケース設計などを行う場合、ユーザ部門の要員に参画してもらう
      • テストケース作成に対応させる仕様書
        外部設計工程で作成した外部設計書
      • システムテストを実施するとき、用意しておくべきテストデータ
        実際に業務で使うデータや、業務上例外として処理されるデータ
    4. 運用テスト
      • 完成プログラムを本稼動環境下で試行するテスト
      • 原則としてユーザ部門の責任で利用者が主体となり、実際の業務プロセスに沿って機能用件や操作性を検証する
      • ユーザ部門が優先して確認すべき事項:決められた手順どおりに、システムが稼動すること
  5. テストにおけるユーザ部門の役割
    システム開発における成果物に対して、業務的観点から内容確認を行う
    プログラムの詳細設計は開発部門に任せる
    システムテストの段階で参加する
    用意された運用マニュアルが適切であることを確認する(運用テスト時)
  6. 品質の判断
  7. 外部設計および内部設計の誤りは、プログラムだけでなく、マニュアルなどにも影響を与えるので、コーディングの誤りに比べて修復コストは高い
  8. バグ埋め込み法
    テスト対象のプログラムにバグを埋め込んでおき、埋め込みバグの検出状況から、プログラム全体の検出状況を推定する
  9. バグ管理図
    バグ管理図において、すべての線が横ばい状態になった状況から、解決困難なバグに直面しており、その後のテストが進んでいないことが推測できる
  10. トレーサ
    動的デバッグツールの一つ
    プログラムの実行過程を時系列的にモニタリングするために、メモリやレジスタの内容を書き出す
  11. アサーションチェッカ
    変数の間で論理的に成立すべき条件を、プログラムの適切な箇所に挿入し、実行時にその条件を満たしているかどうかを検査するツール
  12. プログラムの変更管理の実施
    変更実施結果の評価基準として、変更作業工数の予測値、障害発生率の目標値を決める
    障害発生率:ここでは変更したことによる新たな障害の発生率を示す
  13. テストの事例