📖

基本情報技術者試験科目A対策メモ!「情報システム開発」

2023/11/28に公開

ウォーターフォール・モデル

システムの開発の流れとしては、大まかに次のようになります。

上流工程

  1. 要件定義
    システム化する範囲と機能を整理することである。また、要件定義には機能要件と非機能要件が存在します。
  2. 外部設計
    利用者から見た設計です。利用者がわかりやすいようなレイアウトを提示することです。(開発者ではなくてもわかりやすい)
  3. 内部設計
    開発者から見た設計です。(開発者の立場で考えたものです。)
  4. 詳細設計
    プログラマへの指示内容となる設計書です。

また、要件定義は次のように分けられます。

  • 機能要件
    依頼者が機能に関しての相談です。
  • 非機能要件
    依頼者が機能に関しての相談に対して、他にも必要なものを提示することです。

下流工程

  1. コーティング
  2. デバッグ
  3. 単体テスト
  4. 結合テスト
  5. 総合テスト
  6. 受入テスト

下流工程は開発しながらデバッグをして、テストをして納品してユーザーにテストしてもらう形です。
このような開発の流れのことをウォーターフォール・モデルといいます。

アジャイル開発

  1. 要件定義
  2. 外部設計
  3. 内部設計
  4. 詳細設計
  5. コーティング
  6. デバッグ
  7. 単体テスト
  8. 結合テスト
  9. 総合テスト
  10. 受入テスト

このような流れを繰り返すと思っても大丈夫だと思います。しかし、定義する規模を小さくする形です。また、アジャイル開発では、次のような種類が存在します。

  • イテレーション
    アジャイル開発では、プロジェクトを小さなサイクルまたは「イテレーション」に分割します。各イテレーションは通常1~4週間で、特定の機能や目標の実装を目指します。イテレーションの終わりには、プロダクトの実行可能なバージョンが完成し、レビューとフィードバックのために利害関係者に提示されます。
  • ペアプログラミング
    これは、2人の開発者が一緒に1台のコンピュータでプログラミングする手法です。一人が「ドライバー」としてコードを書き、もう一人が「ナビゲーター」として戦略的な指示を提供します。この方法は、コードの品質を向上させ、知識共有を促進します。
  • リファクタリング
    プログラムの外部動作を変えずに、内部の構造を改善するプロセスです。コードの可読性を高め、保守性を向上させ、将来の変更を容易にします。
  • テスト駆動開発(TDD)
    開発の最初の段階でテストケースを書き、そのテストをパスするコードを実装する手法です。これにより、コードの品質が向上し、将来のエラーを防ぐことができます。
  • スプリント
    スクラムフレームワークにおけるイテレーションのことで、通常は2~4週間の期間で設定されます。スプリントの間、チームはプロダクトバックログから選択された項目を完成させることを目指します。
  • プロダクトオーナー
    スクラムチームのメンバーで、プロダクトバックログを管理し、プロダクトのビジョンを設定し、優先順位を決定します。彼らは利害関係者とチームの間のコミュニケーションを担当します。
  • スクラムマスター
    スクラムチームをサポートし、スクラムの原則に従ってチームが効果的に機能するようにする役割です。彼らはプロセスを促進し、障害を取り除き、チームと組織の間のコミュニケーションを助けます。
  • プロトタイプ
    設計の検証やアイデアのテスト、コミュニケーションの促進のための重要なツールだと思います。

状態遷移図とは

システムまたはオブジェクトのさまざまな状態と、その状態間の遷移を視覚的に表現する図です。これは主に、システムやオブジェクトが時間の経過とともに経験するイベントや状態の変化をモデル化するために使われます。

ER図とは

データベースの構造を視覚化するために使用される図で、エンティティ(実体)、その属性、そしてエンティティ間の関係を示します。

  • Eは「エンティティ」です。
  • Rは「リレーション」です。

データフローダイアグラム(DFD)

システム内でのデータの流れと処理を視覚的に表現するツールだと思います。

ユースケース図

システムやソフトウェアの機能と外部のアクター(ユーザーや他のシステム)との相互作用を図式化したものです。

アクティビティ図

プロセスやワークフローをステップバイステップで表現するための図です。

シーケンス図

オブジェクト間の相互作用を時間の経過と共に示す図です。

クラス図

システムの静的な構造を示す図で、クラスの関係、属性、操作(メソッド)、インターフェースなどを図示します。

オブジェクト図

特定の時点でのシステムの状態を表すための図で、クラスのインスタンス(オブジェクト)とそれらの関係を示します。

まとめ

今日は、システム開発の流れと図に関して学ぶことができました。

GitHubで編集を提案

Discussion