UESTCのソフトウェアシステムアーキテクチャ設計 - システム解析と設計の概要

システム分析と設計の概要

情報システムの概要

情報システムとは、ビジネスデータの収集、変換、処理、計算、分析、送信、保守などの情報処理を完了し、問題の特定の側面に関する情報サービスをユーザーに提供できるコンピュータアプリケーションシステムです。

画像-20230901132156996

構成

  • 情報インフラ(コンピュータ、コンピュータネットワーク、サーバー、システムソフトウェアなど)
  • 応用
  • データベースシステム
  • ビジネスデータ
  • ユーザー

タイプ

事務処理システム

Transaction Process System(TPS)とは、組織の事業活動(受注、販売、支払、出荷、会計など)に関する情報をIT技術を利用して処理し、業務処理を自動化し、業務処理の効率を向上させる情報システムの一種です。 。

  • 商用端末販売システム
  • オンラインバンキングシステム(中国建設銀行オンラインバンキング)
  • 航空券予約システム
  • ホテルシステム
  • 鉄道12306乗車券予約システム

MIS

経営情報システム(Manage Information System、MIS)とは、コンピュータのソフトウェアやハードウェア、ネットワーク通信、データベースなどのIT技術を利用して組織機能の総合的な情報管理を行い、組織の業務効率を向上させる組織主導の情報管理の一種です。サービス価値を提供し、組織機能や運用管理を支援する情報システム。

  • 人事管理情報システム
  • エンタープライズCRMシステム
  • エンタープライズERPシステム
  • 在学状況管理情報システム
  • 企業向け生産安全管理システム

顧客関係管理(CRM) は、顧客とビジネスのやり取りを自動化するエンタープライズ ソフトウェアです。CRM は多くの場合、マーケティング、広告、電子商取引、カスタマー サービス ソリューションなどを含む、より大規模なカスタマー エクスペリエンス (CX) アプリケーション スイートの一部です。CRM システムは、営業担当者との顧客コミュニケーション、提案、購入履歴、サービス リクエストなど、収集されたすべての顧客データを追跡および保存します。多くの CRM ソリューションは、連絡先データが完全かつタイムリーであることを保証するために、サードパーティのデータ ソースでこれらの顧客記録を補完します。この顧客データはすべて企業全体で共有できるため、ユーザーはあらゆるタッチポイントで何が起こっているかをより深く理解できるようになります。優れた CRM ソリューションは、人工知能 (AI) を使用して顧客の履歴を分析し、次の販売アクションを推奨します。

エンタープライズ リソース プランニング(ERP) は、主に会計、調達、プロジェクト管理、サプライ チェーン管理、リスク管理、人事などの日常のバックオフィス ビジネス プロセスを管理、自動化、接続するために使用されるビジネス ソフトウェアの一種です。 。ERP スイートには、企業の財務結果の計画と予算作成、および財務結果の予測と報告に役立つエンタープライズパフォーマンス管理(EPM) ソフトウェアも含まれる場合があります。これらのビジネス プロセスを単一のテクノロジー プラットフォームに統合することで、企業は業務とワークフローを合理化できます。ERP システムは、企業内で共有されるトランザクション データを複数のソースから収集し、部門間の関連データの流れを促進し、データの重複を排除し、データを中央の場所に保存して信頼できる単一のソースを形成し、データの整合性を確保します。

意思決定支援システム

意思決定支援システム(略して DSS) は、人間とコンピューターの対話形式でのデータ分析、モデル評価、知識推論などの情報処理を通じて、意思決定者が特定の戦略的問題を解決するためのサービス サポートを提供する情報システムの一種です。

  • 治水指令決定支援システム
  • 届出感染症流行予測情報システム
  • 通信マーケティングビッグデータ分析システム
  • 鉄道地域地質災害早期警戒システム
  • 公衆衛生緊急事態緊急計画システム

エキスパートシステム

エキスパート システム(ES) は、特定の問題を解決するために専門知識を取得、保存、活用できる情報システムです。通常、知識表現、知識推論、人工知能の深層学習などのテクノロジーを使用して、通常は分野の専門家によって解決される複雑な問題をシミュレートします。
典型的なエキスパート システム アプリケーション:

  • AlphaGo 囲碁ロボット
  • タンパク質同定エキスパートシステム
  • 都市建設計画設計専門家制度
  • 野菜病害虫診断エキスパートシステム

OAシステム

オフィスオートメーション(OA)とは、オフィスの業務プロセスの情報化と自動処理を実現する情報システムです。

  • 官公庁系
  • 大学事務システム
  • エンタープライズオフィスシステム

ナレッジワーク支援システム

Knowledge Work Support System (KWS) は、強力なデータ、グラフィックス、画像、マルチメディア処理能力を備えたシステムであり、ネットワーク条件下でさまざまな情報や技術リソースを幅広く適用し、ナレッジ ワーカーに設計と創造、技術革新およびその他のサービス ツールを提供できます。情報システム。

  • 設計製図システム (AutoCAD)
  • ビデオノンリニア編集システム
  • CASE (Computer Aided Software Engineering) ツール
  • パワーデザイナーソフトウェアシステム

関係

画像-20230901135412110

ステークホルダー

画像-20230901135518463

ユーザーの分類

  1. システム内部ユーザー

    • 社会人
    • 上司、マネージャー、部長
  2. システム外部ユーザー

    • クライアント
    • サプライヤー
    • 相棒

開発者

  1. システムアナリスト

    • システムアナリスト
    • ビジネスドメインの専門家
  2. システムデザイナー

    • システムアーキテクト
    • ソフトウェアエンジニア
    • インターフェースエンジニア
    • データベースエンジニア
  3. システムビルダー

    • ソフトウェアプログラマー
    • ハードウェアエンジニア
    • ネットワークエンジニア
    • システムインテグレーションエンジニア
  4. システム管理者

    • アカウントマネージャー
    • プロジェクトマネージャー
    • 品質保証担当者
    • テストマネージャー

情報システムソフトウェア

タイプ

  • 応用
  • サポートソフト(ミドルウェア)
  • システムソフトウェア

その他のカテゴリー

開発方法によると:

  • ソフトウェア製品全般
  • カスタム ソフトウェア システム

ライセンスごとに分類:

  • 製品ソフトウェア
  • フリーソフトウェア
  • シェアウェア
  • フリーソフトウェア
  • パブリックソフトウェア
  • オープンソースソフトウェア

特性

  • ソフトウェアは、論理的なコード、つまり無形のオブジェクトで構成されるプログラムの集合です。
  • ソフトウェアは消耗しませんが、価値が失われるにつれて陳腐化します。
  • ソフトウェアは開発者が頭脳労働によって開発するものであり、まだ生産ラインで製造することはできません。
  • このソフトウェアは、標準化されたコンポーネント アセンブリ システムをまだ完全には実装していません。

ソフトウェア開発において解決すべき本質的な問題

  • 複雑さ - ソフトウェアの複雑さは、アプリケーション分野、規模、ビジネスによって大きく異なります。
  • 一貫性 - ソフトウェアは、それが実行されるハードウェアおよびソフトウェア プラットフォームと互換性がある必要があります。
  • 変動性 - ビジネス プロセスや要件は常に変化するため、ソフトウェアの長期的な活力を維持するには、アプリケーション ソフトウェアには変動性 (ソフトウェア バージョンのアップグレードなど) が必要です。

品質特性

機能性: ソフトウェアによって実装される機能がその設計仕様を満たし、ユーザーのニーズを満たすことができる度合いを指します。

信頼性: 指定された時間および条件下でソフトウェアが通常の機能動作およびパフォーマンス レベルを維持できる度合いを指します。

ユーザビリティ: ソフトウェアを学習、操作、使用するためにユーザーが必要とする労力の程度を指します。

効率: 処理時間やリソース使用量など、ソフトウェア システムの処理パフォーマンスを指します。

移植性 (Transportability): あるコンピュータ システム環境から別のコンピュータ システム環境にソフトウェアを移植できる容易さを指します。

保守性(Maintainability):ソフトウェアを運用した後に要件が変わったり、環境が変わったり、エラーが発生したりした場合に、ソフトウェアを修正するのに必要な労力の度合いを指します。

可用性: 特定のシナリオで特定の目標を達成するために、ユーザーがソフトウェアを効果的かつ満足に使用できる程度を測定するために使用されます。

拡張性: ソフトウェアが新しい機能を追加し、システム機能を拡張できる容易さを指します。スケーラビリティ (Scalability): ソフトウェアの負荷が変化したときのシステムの処理パフォーマンスの変化の度合いを測定するために使用されます。

安全性: 不正アクセス、データ損失、ウイルスの危険、不正侵入、その他のインシデントを防ぐソフトウェアの能力を測定するために使用されます。

堅牢性: ソフトウェアが予期しないイベントに遭遇したときに、システムが機能を正しく実行し続けることができる度合いを測定するために使用されます。

相互運用性: ソフトウェアが他のソフトウェア システムとデータを交換したり、サービスにアクセスしたりする容易さを測定するために使用されます。

情報システム開発プロセス

情報システムのライフサイクルとは、システムの構想からシステム計画、システム開発、運用保守、そしてシステム終了に至るまでの時間を指します。

  • システム企画段階
  • システム要件分析段階
  • システム設計段階
  • システム構築フェーズ
  • システムテストフェーズ
  • システム運用・保守フェーズ

エンジニアリング プロジェクトを使用して、システム開発プロセス、サポート プロセス、および組織プロセスにおける多数のタスク アクティビティを管理することによってのみ、プロジェクトが指定された時間内に品質要件に従って情報システム開発タスクを完了することを保証できます

システム開発プロセスモデル

システム開発プロセス モデルとは、システム開発エンジニアリング活動の組織化を効果的に解決するために、開発者が長期的なエンジニアリング実践で蓄積した特定のモデルを指します。

ウォーターフォール開発プロセスモデル

ウォーターフォール開発プロセス モデルでは、システム開発活動は厳密に直線的なライフ サイクル ステージで実行され、各ステージで多数のドキュメントが作成および提出されます。

画像-20230901145618968

モデルの特徴:

  • システム開発プロセスの活動は組織的にシンプルで、プロジェクトのフェーズは明確に分割されており、完全な開発ドキュメントによってサポートされているため、プロジェクト管理が容易になります。
  • 多くの文書化とレビュー作業が必要となるため、システム プロジェクトの進行に影響を及ぼし、開発者の注意力が散漫になることがよくあります。
  • 情報システムのプロトタイプをユーザーが見るまでに時間がかかり、システムプロジェクトへのフィードバックも遅くプロジェクトリスクを伴います。
  • システム開発の初期段階では、ユーザーのニーズを完全に把握することが難しいことが多く、ウォーターフォール開発プロセスの実行が困難になります。

アプリケーション シナリオ:
古典的なシステム開発プロセス モデルとして、ウォーターフォール開発プロセス モデルは、要件が非常に明確で小規模なシステム プロジェクトにのみ適しています。

プロトタイピングプロセスモデル

プロトタイプ開発プロセス モデルでは、初期要件のみに基づいて、迅速な開発手法とツールを使用して、プロトタイプ システムの初期バージョンをできるだけ早く提供できます。ユーザーのフィードバックと新しい要件は、システムの次のバージョンの反復開発に組み込まれ、ウォーターフォール開発プロセス モデルの制限を解決します。

画像-20230901145855119

モデルの特徴:

  • ユーザーのニーズを真に満たす情報システムを開発でき、システムの初期機能バージョンをユーザーに迅速に提供できます。
  • 要件の変化をシステム開発に迅速に反映できます。
  • システムプロジェクト開発は進捗のマイルストーンを示すことが難しく、プロジェクト管理が煩雑です。
  • システム アーキテクチャの設計が堅牢でない場合、複数回の反復によりシステムの安定性に課題が生じます。
  • プロトタイプ開発プロセス モデルには、迅速なシステム開発機能を備えたツール サポートも必要です。

アプリケーション シナリオ:
プロトタイプ開発プロセス モデルは、人間とコンピューターの対話インターフェイスが多数あるシステム プロジェクトに適していますが、初期要件が明確ではないシステム プロジェクトにも適しています。

スパイラル開発プロセスモデル

スパイラル開発モデルは、プロトタイプ開発プロセスの反復特性とウォーターフォール開発プロセスの体系的かつ厳密なレビューの利点を考慮した、進化的かつ反復的なシステム開発プロセス モデルでもあります。

画像-20230901150112960

モデルの特徴:

  • 他のモデルにはないリスク分析が導入されており、重大なリスクを排除できない場合にプロジェクトを停止してプロジェクトの損失を削減する機会が与えられます。
  • システム開発活動は、内側から外側へスパイラルに沿って反復的に行われます。ユーザーのニーズを完全に満たすバージョンが得られ、最終システムとなるまで、反復ごとにシステムのリリース バージョンが作成されます。
  • 開発の反復ごとにリスク分析を行うのは良いことですが、プロジェクトのスケジュールが遅れ、コストが増加し、プロジェクト開発コストが高くなります。
  • ウォーターフォール開発プロセス モデルやプロトタイプ開発プロセス モデルと比較して、スパイラル開発プロセス モデルのプロジェクト管理はより複雑であり、より多くの開発活動の組織化と管理が必要になります。

アプリケーションシナリオ:

スパイラル開発モデルは、システム開発のリスク分析に特に重点を置いた、大規模で複雑なシステム開発に適しています。

統合ソフトウェア開発プロセスモデル

Rational Unified Process (RUP) は、アーキテクチャを中心としたユースケース主導の増分反復システム開発プロセス モデルです。

画像-20230901151012480

モデルの特徴:

  • オブジェクト指向、ユースケース駆動、アーキテクチャ中心の開発システム。
  • 品質管理とリスク管理を対象とした増分反復開発。
  • UMLと合わせてプロセスフレームワークをカスタマイズできます。

アプリケーションシナリオ:
統合ソフトウェア開発プロセスモデルは、以前のさまざまなシステム開発プロセスモデルの利点を組み合わせており、システム開発の技術的要素と管理的要素を包括的に考慮しており、大規模で複雑なシステムの開発に適しています。

アジャイルなソフトウェア開発モデル

アジャイル ソフトウェア開発は、合理化された高速かつ増分的かつ反復的なシステム開発プロセス モデルです。

画像-20230901151151461

モデルの特徴:

  • 本稿では、プログラマとビジネス専門家の緊密な連携、対面でのコミュニケーション、要件の変化に適応したコード記述を重視した、軽量な開発プロセスモデル手法を提案します。
  • システム開発プロセスにおける人々の役割に注意を払い、ドキュメントの作成を最小限に抑え、システムのバージョン機能を迅速にリリースし、変化するユーザーのニーズに対応できるようにします。
  • 高コスト、長いサイクル、急速な需要変化への適応の難しさなど、中小規模のシステム プロジェクトにおける従来の重量開発プロセス モデルの限界を解決します。

アプリケーション シナリオ:
アジャイル開発モデルは迅速なシステム開発に焦点を当てており、初期のあいまいな要件を解決したり、頻繁に変更される要件を解決するシステム開発プロジェクトに適しています。

システム開発手法とツール

システム開発戦略

  1. 自己開発された

    組織独自のIT人材を活用し、情報システムの開発手法を開発・実現します。

    長所と短所:

    • 自社のニーズに合った情報システムを手に入れ、システム開発を通じて自社のチームを育成することができます。
    • 専門的かつ規律あるシステム開発を組織し、厳格な品質保証を実施することは難しく、多くの場合、外部のコンサルティングや技術トレーニングが必要になります。
    • 開発されたシステムには、汎用性、安定性、完全性に制限がある可能性があります。
  2. 受託開発

    組織のビジネスニーズに合わせて情報システムの開発手法をカスタマイズ、開発する専門IT企業に委託します。

    長所と短所:

    • IT専門企業の技術力と情報経験を活かし、比較的低コストで情報システムを開発できます。
    • 組織自体は人的リソースを節約し、ビジネスの最適化と改善に集中し、より高い価値をもたらす活動に集中することができます。
    • ビジネスに精通したアナリストは、開発チームと多くのコミュニケーションを行うことが求められます。
    • 専門のIT企業の技術サポートに頼ると、その後のシステムの維持が困難です。
  3. 製品ソフトウェアを購入する

    商用化されたソフトウェア パッケージを購入し、これに基づいて情報システムのカスタマイズされた構成が実現されます。

    長所と短所:

    • お客様の時間と労力を節約し、情報システムを短期間で構築でき、即効性が得られます。
    • 組織のニーズを正確に満たすシステムを購入するのは簡単ではありません。
    • 既存のソフトウェアの制限により、ビジネス ニーズの変化に対応することが困難になります。
  4. 共同開発

    情報システム開発手法を専門のIT企業と共同で開発します。

    長所と短所:

    • 顧客チームと開発チームの利点を最大限に発揮し、自らの技術力の向上につなげます。
    • 双方の誠実な結束に依存して、確かなシステム分析と設計能力が必要です。

システム開発手法

  1. 構造化されたアプローチ

    構造化手法とはプロセス指向のソフトウェア開発手法であり、構造化分析手法、構造化設計手法、構造化プログラミング手法から構成されます。
    基本的な考え方は次のとおりです。

    • トップダウン

    • 徐々に洗練を求める

    • システムモジュールの分解

    • プロセスを中心としたソフトウェアシステムの構築

    構造化アプローチの典型的な手法:

    データフロー図、データディクショナリ、階層構造図設計、ER図設計、プログラムフロー図設計、擬似コード設計、構造化プログラミングなど

    構造化された方法の長所と短所:
    シンプルで実用的、成熟した技術、適用が簡単です。
    しかし、需要変化への対応の難しさ、ソフトウェアの再利用の解決の難しさ、ソフトウェアの保守の難しさ、ソフトウェアの生産効率の向上が難しいなどの問題があり、大規模かつ複雑なソフトウェアシステムプロジェクトには適していません。

    ソフトウェア開発の現状:
    今日のソフトウェア システム プロジェクトのほとんどは、複雑な機能、大規模、異種プラットフォーム、迅速な配信、高い保守性と信頼性の要件という特徴を持っています。構造化されたアプローチでは、これらの要件に対応できません。これに対処するには、新しいソフトウェア開発手法が必要です。

  2. オブジェクト指向ソフトウェア開発手法

    オブジェクト指向手法は、オブジェクト指向の考え方をソフトウェア開発プロセスに適用し、ソフトウェア開発活動を導く手法です。

    • オブジェクト指向分析

    • オブジェクト指向設計

    • オブジェクト指向プログラミング

    オブジェクト指向の基本的な考え方:

    • 客観世界は様々な物体(Object)で構成されており、単純な物体から複雑な物体を構成することもできます。
    • クラスは、同じ特性を持つオブジェクトのテンプレートであり、オブジェクトの属性データと操作手順をカプセル化します。
    • オブジェクトは、現実世界の異なるものの間の接続をシミュレートするために、メッセージ (Message) の送信を通じて相互作用の動作を実現します。
  3. コンポーネントベースのソフトウェア開発手法
    コンポーネントベースのソフトウェア開発手法は、再利用可能なコンポーネントによるソフトウェア システムの設計と構築に重点を置いた、分散オブジェクト技術に基づく開発手法です。

    • ビジネス機能の観点から見ると、オブジェクト指向の手法よりも高度な抽象化技術を使用してソフトウェアを設計および実装することで、ソフトウェアの再利用性を向上させることができます。
    • ソフトウェア開発の焦点をプログラムの作成から既存のコンポーネントに基づくアセンブリに移し、システムをより迅速に構築し、大規模システムのサポートとアップグレードに必要なメンテナンスの負担を軽減し、それによってソフトウェア開発コストを削減します。

    長所と短所:

    • コンポーネント開発により、ソフトウェアの再利用性と開発効率が向上し、ソフトウェアの品質が保証されます。
    • ソフトウェア コンポーネントの開発はプログラミング言語と密接に関係しているため、コンポーネント インターフェイス標準の不一致が容易に生じ、異なる開発言語で実装されたコンポーネントの相互運用が困難になる可能性があります。
  4. サービス指向のシステム開発手法
    サービス指向の考え方に基づき、疎結合かつ粗粒度のソフトウェア機能を再利用するシステム開発手法を採用しています。

    • サービス指向システム開発手法は、ビジネスに直接対応するビジネスに焦点を当て、IT とビジネスの連携を重視し、ビジネス機能または既存のアプリケーション システムをカプセル化するコア要素としてビジネス サービスを使用します。
    • サービスはコンポーネントよりも粒度が高く、機関情報アプリケーションのビジネスによりよく適合し、より高いレベルのソフトウェア再利用を実現できます。

    長所と短所:

    • プラットフォーム間での機能の再利用が可能であり、既存のアプリケーションシステムの再利用も可能です。
    • 開発テクノロジーは複雑で、分散アプリケーションにおける多くの困難な技術的問題を解決する必要があります。

システム開発ツールと環境

  1. 開発ツール

    開発プロセスによる分類:

    • プロジェクト管理ツール(プロジェクト)
    • バージョン管理管理ツール(VisualSVN Server)
    • 分析および設計ツール (PowerDesigner、Enterprise Architect)
    • プログラム開発ツール(Eclipse)
    • システムテストツール(Apache JMeter)
    • システムメンテナンスツール
  2. 開発・実行環境

    システム開発環境とは、コンピュータハードウェアおよびシステムソフトウェアプラットフォーム上で情報システムを開発および保守するために使用されるソフトウェアツールおよび統合環境を指します。

    システム動作環境とは、情報システムが動作するプラットフォーム環境を指し、オペレーティングシステムソフトウェア、データベースソフトウェア、ランタイムソフトウェアなどのソフトウェア環境や、サーバ、ネットワーク機器、ストレージデバイスなどのハードウェアサポート環境を含みます。

クラスの演習とクラスの課題

1. 情報システムの利害関係者ではないのは次のうちどれですか? (D)

A.お客様Bさん ユーザー C. 開発者 D. 監督スタッフ

2. ユーザーにとって最も重要なソフトウェア品質属性ではないものは次のうちどれですか? (B)

A.セキュリティB. 再利用性C. 柔軟性 D. 効率

3.情報システムのライフサイクルにおいて、次のフェーズのうち最も長く続くのはどれですか? (D)

A.システム要件の分析B. システム設計 c.システム構造 D. システム運用保守

4. 次のシステム開発プロセス モデルのうち、反復が必要ないものはどれですか? (A)

A.ウォーターフォール開発プロセス モデル b. プロトタイプ開発プロセスモデル C. RUP 開発プロセスモデル D. アジャイル ソフトウェア開発プロセス モデル

5. 次のシステム開発戦略のうち、組織独自の開発チームを育成できるものはどれですか? (D)

A.自社開発のB. 受託開発C. 製品化されたソフトウェアパッケージを購入 D. 共同開発

1. プロジェクト マネージャーはシステム アーキテクトの 1 人です。(×)

2. 情報システムは、情報を処理するシステム ソフトウェアの一種です。(×)

3.プロジェクト承認後にシステム企画を実施します。(×)

4. アジャイル ソフトウェア開発プロセス モデルは、軽量のプロセス モデルです。(√)

5. アプリケーションソフトウェアはシステムの動作環境に依存します。(√)

情報システムは通常、情報インフラストラクチャ、アプリケーション ソフトウェア、データベース管理システム、データベース、ビジネス データ (ユーザー) およびその他の要素で構成されます。

ソフトウェアはシステムソフトウェア、アプリケーションソフトウェア、(ミドルウェア)に分けられます。

システム分析・設計活動は、情報システムのライフサイクル(システム計画)、システム要件分析、システム設計の各段階で行われます。

スパイラル開発プロセス モデルでは、システム ソフトウェアのコーディングは (実装エンジニアリング) フェーズの開発活動です。

再利用粒度が最も大きいシステム開発手法は(サービス指向開発)です。

おすすめ

転載: blog.csdn.net/m0_63230155/article/details/132626287