pulpul 日本の試験

基本情報技術者 概念書 · システム開発技術

システムとソフトウェアの設計

要点と定義

設計では、要件を実現できる構成と処理の方法を決めます。システム設計では、要件をハードウェア、ソフトウェア、サービス、手作業などに割り振り、構成品目や処理方式を決定します。信頼性、性能、運用・保守のしやすさ、利用者の作業負荷なども判断材料です。ソフトウェア設計では、ソフトウェア要件を基に要素やユニットへ分割し、各機能と要素間の処理や関係を明確にします。

設計の判断には、図や仕様を使って関係者間の認識をそろえることも含まれます。シーケンス図は、登場する主体やオブジェクト間のメッセージを時間の流れに沿って表します。処理を縦方向に追うことで、どの主体が要求を送り、応答を受け取るかを特定できます。コミュニケーション図も、オブジェクト間で送受信されるメッセージを表しますが、オブジェクト間のつながりを中心に示します。

Web方式では、画面遷移ごとにWebサーバが画面情報を生成してブラウザへ返す構成が例になります。Webアプリ方式では、ブラウザが読み込んだアプリケーションが端末上で画面を生成し、データを利用して処理する構成が可能です。要求元を判断するときは、図の矢印を追い、サーバが要求するのか、ブラウザ上のアプリが要求するのかを区別します。

データを扱う設計では、データ項目とその関係を整理します。E-R図は、実体や属性、実体間の関係を表現します。クラスは共通の性質をもつものの分類であり、オブジェクトはそのクラスに属する具体例です。たとえば「公園」をクラス、「代々木公園」をそのインスタンスとして扱えます。

処理手順の設計では、流れ図などで条件分岐、繰返し、更新内容を明確にします。たとえば入金の残額を古い請求から充当する処理なら、入金側の未充当額は「入金額-充当額」、請求側の未充当額は「請求額-消込額」です。残額が正のレコードを対象にし、請求年月の古い順に処理することで、未処理分を順番に扱えます。

モジュール分割では、役割を適切に分け、内部のまとまり(結束性)を高めながら、モジュール間の依存(結合度)を弱めることが基本です。必要なデータだけを引数で渡すデータ結合は、共有領域や処理制御の引数を介する方法より、情報の依存範囲を限定できます。

設計の成果は、要件との対応や実現可能性、要素間の一貫性を評価し、レビューで確認します。利用者が確認する画面や帳票などの外部仕様は、利用者側との合意に使われます。プログラム内部の処理手順や物理的なデータベース仕様とは、確認する視点が異なります。

適用条件と例

圏外でも検索操作を続けたい場合、端末内に処理機能や必要なデータを用意する設計が候補になります。たとえば、事前に店舗一覧をブラウザへ読み込み、端末上で検索画面を生成すれば、通信が切れている間も読み込み済みデータの範囲で検索できます。ただし、サーバ上の最新情報取得やお気に入り数の更新など、通信を要する処理は圏外では完了できません。どこまで継続できるかは、要件とデータの配置、通信の必要性で決まります。

消込み処理の例として、入金額が120、既充当額が50なら未充当額は70です。請求額が90、既消込額が30なら未消込額は60です。この場合、先に古い請求へ60を充当し、入金の残り10を次の対象に回します。入金額と既充当額が等しい場合は未充当分がなく、請求額と既消込額が等しい場合は未消込分がないので、どちらも追加処理の対象外です。額の大小だけでなく、どちら側の残額を計算しているのかを区別します。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む