システム開発の設計工程では、開発対象となるシステムについてさまざまなことを決定していきますが、システム方式設計は設計工程においても特に重要とされる項目のひとつです。システム方式設計を行う目的・意味・作成する内容について知りたい方もいるのではないでしょうか。
当記事では、システム設計全体の流れから、システム方式設計の概要・重要性・決定項目、設計上のポイント、システム方式設計の作成・管理を効率化する方法までをご紹介しています。システム方式設計について詳しく知りたい方や、業務プロセスの見直しや改善を行いたい方は、ぜひ参考にしてみて下さい。
システム設計の流れ
システム方式設計の概要・目的・役割を理解するためには、まずはシステム開発の設計の流れを把握しておくことが重要です。ここでは、システム設計がどのような流れで行われるのかを解説します。
要件定義
クライアントがシステムに求めている要件を整理して、実現するために必要な機能・性能・業務フローといったシステムの仕様・範囲を明確に決めることです。
システム設計はもちろんプロジェクト全体の流れやシステムの品質のベースとなるため、高い精度が求められる工程です。
外部設計(基本設計)
要件定義で決定された内容を基に、システムの基本となる設計を行います。
主にシステムの操作方法・操作画面・出力方法といったユーザー向けの内容を設計します。システム方式設計も外部設計に含まれる項目のひとつです。
内部設計(詳細設計)
内部設計では、外部設計で決定された内容を基に、システム内部の機能・動作・データの流れなど、システム内部の細かい部分まで詳細な設計を行います。
内部設計の結果を基に実装(プログラミング)が行われるため、重要な工程となります。
システム開発の設計工程は、このように段階を経て徐々に具体性を増していくところに特徴があります。次章からは、外部設計項目のひとつであるシステム方式設計について、詳しく解説していきます。
システム方式設計とは?
システム方式設計とは、上述の外部設計(基本設計)で行う設計項目のひとつで、要件定義で決定されたシステムに求める要件を実現するための項目を設計することを言います。
具体的には、以下のような項目の設計を行います。
|
このように、システム方式設計では、開発するシステムのベースとなる内容を決定することが特徴です。
システム方式設計の重要性
システム方式設計は、外部設計(基本設計)のなかでも特に重要性が高いと言われています。その理由は、システム方式設計で決定されたシステムの構成や方式を基に後の設計工程が行われるためです。つまり、システム方式設計の品質はそのまま後の設計工程の内容・品質を左右するということです。
設計工程全体の成果物を基に開発工程は進められるため、当然できあがるシステムの品質にも大きく影響します。システム方式設計に検討ミスや抜け漏れが見つかった場合、最悪の場合システムが正常に動作しない場合もあります。
後から修正を行うとなると修正範囲・修正箇所・修正工数が膨大になる可能性があるため、システム方式設計は慎重に検討を重ねて設計を行うことが重要です。
システム方式決定 で決めること
システム方式設計では、大きく分けて5つの項目を決める必要があり、いずれの項目も後の工程に影響を及ぼすため、慎重に精査しながら検討を行わなければなりません。また、各項目は相互に関連しているため、個別に内容を決めるのではなく、全体との兼ね合いを含めて考えることも重要となります。
ここでは、システム方式設計で決める5つの項目について、それぞれご紹介します。
1.ハードウェア・ソフトウェアの構成
システム方式設計では、システムを稼働させるためのハードウェア・ソフトウェアの構成・環境を決定する必要があります。こちらの設計では、大きく分けて以下3つのタイプからシステムを稼働させる環境を決めた後、詳細を突き詰めていきます。
・オンプレミス オンプレミスとは、自社物件やデータセンターにシステムのハードウェアを設置して運用・管理を行うことを言います。既存システムとの兼ね合いを考慮して、ハードウェアの構成やシステム動作環境を決定します。 |
・クラウド クラウド上でシステムを稼働させる場合は、ハードウェアの構成は不要となります。その代わりに、システムが稼働する環境やシステム上で利用するミドルウェアについて検討を行います。 |
・ハイブリッド オンプレミスとクラウドを併用した構成のことです。 |
大元のシステム稼働環境については、クライアントの要望や事情により決まっているケースが多いため、実際の方式設計では詳細を突き詰める作業が中心となります。
2.ネットワークの構成
システム方式設計では、サーバーのネットワーク構成についても決定を行います。システムが安定して稼働できるように、適切なネットワーク構成・負荷分散・トラブルを想定した予備サーバーまで詳細に検討します。
システムを稼働させるハードウェアとネットワークは関連性が高いため、全体的な機能を考慮しつつセットで検討することが一般的です。
3.アプリケーション機能の構成
システムに搭載するアプリケーション機能の構成は、複数のパターンを組み合わせることにより、アプリケーションの機能性・汎用性を高めることが可能です。
システム方式設計では、システムに搭載するアプリケーションの構成・使用するパターン・構成方法について検討を行います。パターンを新たに作成する場合は、開発に使用する言語やフレームワークの決定も行います。
全てのパターンを開発せずとも、既存のパターンを流用することもできるため、開発効率や動作保証も考慮しつつ、最適なアプリケーション機能構成を導き出すことがポイントです。
4.外部システムとの連携方式の決定
システム方式設定では、外部システムとの連携が発生する場合の連携方法・連携方式についても決定を行います。開発するシステムの規模が一定以上となると、システム単体で完結することが難しくなるため、外部システムとの連携を行う必要性がでてくるためです。
具体的には、連携するシステム・データ連携の仕組み・プロトコル・文字コード等を全体のバランスを考慮しながら検討を行います。
外部システムとの連携が発生するシステムにおいては、連携が上手くいかないと正常な運用が難しくなるため、他の項目と同じく厳密に検討したうえで連携方法・連携方式を決める必要があります。
5.開発言語の決定
システム方式設計では、システム開発にどの開発言語を使用するかも決める必要があります。開発言語は複数ありますがそれぞれ特性が異なるため、開発するシステムに適した言語を多角的に分析したうえで選定を行うことが重要です。具体的には、開発期間・サポート・作業効率等の検討を行います。
また、システム開発の作業効率や管理効率を高めるためには、開発に使用するフレームワークも決定しておく必要があります。フレームワークは開発作業・開発工数の削減に効果的ですが、専門的な知識・スキルが必要となるため、メンバーの熟練度や学習期間も含めて検討を行います。
システム方式設計のポイント
システム方式設計は、後に再検討を行う工程も存在しないため、抜け漏れやミスがあったり設計の品質が低かったりすると、プロジェクトのリソース圧迫や進捗遅延が懸念されます。
そのため、システム方式設計を行う際には、慎重な検討を重ねて設計品質を担保することが非常に重要です。
ここでは、システム方式設計の品質を担保するために知っておくべきポイントについてご紹介します。
技術リスクを明確化する
技術リスクとは、技術的な問題によってシステムが正常に動作しなかったり不具合が生じたりするリスクのことです。システム方式設計では、各項目を作り込むと同時に、技術的リスクを明確化して対策を講じることも非常に重要なポイントです。
特に、初めて使用するOS・ミドルウェア・各種サービスを利用してシステムを開発する場合には、問題や制約により想定外のトラブルが発生する可能性も否定できません。そのため、技術リスクについては十分な調査や検討を行う必要があります。
不確定要素がある場合には、システム設計を調整したり、実績のある方法に代替しなければならないケースもあるため、技術リスクについては慎重に検討を重ねることが重要となります。
非機能要件を組み込む
システム方式設計においては、システムに求める機能である機能要件を実現することが重要ですが、システムの品質を確保するためには非機能要件も十分に検討することがポイントです。非機能要件とは、機能要件以外の部分全般のことをいいます。
機能要件だけを満たしても、システムのスペック・レスポンス・リソース・セキュリティなどが不十分であると、使いにくいシステムができあがったり、場合によってはシステムがまともに機能しないことも考えられます。
このような非機能要件の不備は後々の工程でないと気付けないため、特に注意が必要です。
非機能要件については開発者サイドでしか分からない部分も多く、クライアントサイドからは要望が上がってこないことが一般的です。
そのため、開発者サイドから率先して提案したり、十分な要件を満たしたりすることが重要なポイントとなります。
まとめ
システム方式設計は、ハード構成・ソフト構成・ネットワーク構成等決定しなければならない項目ならびに成果物も多く、後の工程への影響も大きいため、非常に重要なフェーズです。
設計フェーズにおける他の成果物と同じく、様式・記載ルール・記載方法等が統一されていない場合は、品質確保や情報共有が困難となり、メンテナンスや管理に多くのリソースを費やすこととなります。
- カテゴリ:
- コラム
- キーワード:
- システム方式設計