ソフトウェアエンジニアリングにおける実践的な経験

 このコースを受講した後は、理論コースと実践コースもあり、ソフトウェアエンジニアリングを理論的に習得できるだけでなく、理論とさまざまな事例からの実践をうまく組み合わせることができました。学期全体を終えて、私は一般的に多くのことを学びましたし、評価に値することがたくさんあります。実際、私の意見では、ソフトウェア エンジニアリングはコースというよりもアイデアです。問題をどのように分析し、対処するかというプロセスであり、その範囲はこのコースをはるかに超え、問題を解決するための包括的なアイデア集となっていると言えます。 

     浅いところから深いところまで、段階的に説明していきます。まず、私たちが学んだことを簡単に説明します。最初の章では、ソフトウェア工学の分野の発展とその社会環境の全体的な分析が行われます。その後、次の章では、ソフトウェアオープンプロセスとパターンの深度分析、ソフトウェアプロジェクト管理、コンピュータエンジニアリング、要件分析、構造化分析モデリング、UMLに基づくオブジェクト指向分析モデリングなど。次に、このコースの知識ポイントについての私の理解を詳しく紹介します。 

ソフトウェア:ソフトウェアとは、所定の機能や性能を実現する実行可能なコンピュータプログラムと、そのプログラムが正常に実行されるために必要なデータ、およびプログラムの動作や使い方を説明した文書のことです。

ソフトウェアの特徴:

① ソフトウェアは論理的な実体であり、特定の物理的な実体ではないため、抽象的です。

② ソフトウェアとは、人々の知的活動を通じて知識や技術を情報に変える製品です。

③ソフトウェアが製品になった後は、ハードウェアの製造とは異なり、単なるコピーに過ぎません。

④メンテナンスプロセスはハードウェアよりもはるかに複雑であり、新たなエラーが発生する可能性もあります。

ソフトウェアの危機:

ソフトウェアの開発および保守中に発生する一連の重大な問題を指します。

ソフトウェア危機の理由:

①ソフトウェアの保守コストが高騰し、コンピュータアプリケーションの拡大を直接脅かしている。

②ソフトウェア制作技術の進歩が遅い。ソフトウェア エンジニアリングは、コンピュータ ソフトウェアの開発とメンテナンスを指導する工学分野です。ソフトウェアのライフサイクル: ソフトウェアは、定義から開発、使用、保守に至るまでの長い期間を経て、最終的に廃棄されるまでのことを、通常、ライフサイクルと呼びます。

ソフトウェアのライフサイクルは 8 つの段階に分けることができます。

①問題定義、②実現可能性検討、③要件分析、④全体(概要)設計、⑤詳細設計、⑥コーディングと単体テスト、⑦総合テスト、⑧ソフトウェア保守、⑤詳細設計。 

ウォーターフォールモデル: 伝統的なソフトウェア開発モデルで、山の頂上から流れ落ちる水が上から下に向かって徐々に薄くなる様子を視覚的に表現したのが「滝」です。その特徴は、分析、設計、コーディング、統合などのいくつかの段階に分かれ、各段階が交差することなく段階的に進められる直線的なプロセスです。マイルストーン管理、ステージレビュー、ドキュメント主導、エンジニアリングに簡単に適用できる簡潔で直線的なプロセスステップであり、マイルストーン管理メカニズムを通じてプロジェクトの進捗を定量化できます。その明らかな利点は、完了したフェーズの結果を各フェーズの終了前にレビューする必要があるため、各フェーズ内でソフトウェア エラーをできるだけ早く発見して解決できることです。一般に、ウォーターフォール モデルには優れた品質保証メカニズムがあります。強い生命力。 

プロトタイプ進化モード: ソフトウェアを直接シミュレートまたはエミュレートするには、要件フレームワークを分析してプロトタイプを作成するだけで済みます。その後、プロトタイプ システムを徐々に洗練および改善し、バージョン更新を通じてソフトウェアに対するユーザーのさまざまなニーズに徐々に対応します。 

インクリメンタルモード: 開発プロセスは、設計構造、開発コンポーネント、統合システムの 3 つのタスク領域で構成され、完全なエンジニアリング管理メカニズムを備え、ユーザーニーズの変化に適応でき、品質監視に役立ちます。コンポーネント構造。コア コンポーネントを最初に提供することでプロジェクトの技術的リスクを軽減できるため、段階的な構築と改善に役立ちます。 

スパイラルモデル: 開発リスクプロセスをより回避できるモデルで、要件分析、ソフトウェア設計、システム統合、検証、デリバリを内外からタスクに基づいてスパイラル状にプロジェクトを推進します。 

ソフトウェア開発の全プロセス① プロジェクトチームが必要であり、優秀なチームを形成することで、より高品質なソフトウェア製品を開発することができます。タスク開発チームは小規模かつ洗練されたチームであることが求められ、プロジェクトリーダー、開発者、データマネージャー、ソフトウェアテスターなどが主なメンバーであり、ほとんどのメンバーが8人以下で構成されています。②プロジェクト計画とは、ソフトウェア開発作業を順序立てて進めるためのタスクの割り当てやマイルストーンに基づくスケジュールの調整などであり、そのスケジュールを記述するツールとしてガントチャートやタスクネットワーク図があります。プロジェクト計画は、ソフトウェア開発の作業ガイドとして使用できます。③ プロジェクト原価の見積りプロジェクトには人件費、現場使用料、旅費、設備費、材料費などあらゆる面からの費用がかかりますが、ソフトウェアでは主に人件費を見積ります。一般的に使用される方法には、プログラムコードの費用見積りが含まれます方法など ④ソフトウェアリスク管理には、計画リスク、経営リスク、需要リスク、技術リスク、人材リスク、製品リスク、ユーザーリスク、ビジネスリスクなど、多くの不確実なリスク要因が含まれます。リスク管理の主なタスクは、リスクの特定、リスク評価です。 、リスク予防。⑤ソフトウェアドキュメント管理ソフトウェアドキュメントは、エンジニアリングモデルのソフトウェア開発の成果を具体化したもので、技術文書、管理文書、ユーザー文書などが含まれます。 ⑥ソフトウェア構成管理およびソフトウェア品質管理。構成計画、ソフトウェア変更管理、ソフトウェアバージョン管理および品質管理計画を含みます。 

   コンピュータ システムは、ハードウェア、ソフトウェア、データ リソース、ネットワーク リソース、システムを使用する人々などの多くの要素で構成されます。

典型的なコンピュータ アーキテクチャには次の 3 つがあります。

①ホスト構造。ホストはすべてのインテリジェンスを集中し、端末インターフェイスに依存して外部デバイスと接続します。

②クライアント/サーバー構造、インテリジェンスはサーバーとクライアントに分散され、ネットワークに依存してシステムに接続します。サーバーはコアにあり、パッシブなコア サービスを提供します。クライアントはエッジにあり、サーバーにアクティブにアクセスし、サービスサポートを求めてください。

③ブラウザ/サーバー構造は、Web サーバーをベースとして、インターネット上の遠隔操作に適応できる特別な構造です。  

   要件分析: システム開発の事前の需要分析は非常に重要です. これは、ユーザーの問題を効果的に解決するために実行する必要があるエンジニアリング活動です. 考慮する必要がある需要課題は、機能要件、データ要件、パフォーマンス要件、インターフェイス要件です分析の責任は開発者にあり、タスクの中心はユーザーです。

① 顧客ニーズの把握 顧客とは一般に個人や組織の部門を指しますが、一般的な手法はインタビュー、ディスカッション、アンケート、フォローアップ、データ収集などの調査です、要求仕様書はユーザーのソフトウェア価値を表現することができます。② ユーザーのニーズを図式化した需要モデルを確立する 一般的に使用されるモデルとしては、ビジネスツリー図、ユースケース図、アクティビティ図などがあります。これらはそれぞれ、構造化された需要モデリング、システム ビジネスの例、およびシステム ワークフローの反映に使用されます。③要件検証を行う 主な検証内容は、妥当性検証、整合性検証、完全性検証、現実性検証、テスト容易性検証です。 

   構造化された分析モデリング:

これは要件仕様に基づいており、次の 4 つの側面を含むソフトウェアの問題について包括的に説明します。

① データベース設計と密接に関係するデータ モデリング ER 図には、エンティティ、関係、属性などのグラフィック要素が含まれており、ビジネス レベルでデータベースの概念モデルを確立し、一般に初期のモデリングのアイデアに使用されます。

② 機能モデリングとは、システムのデータ処理を図式化したもので、データ フロー チャートは、システムのデータ処理の詳細を記述するために使用される、データ インターフェイス、データ処理、データ フロー、データ ストレージなどのグラフィック要素を含む、一般的に使用されるモデリング ツールです。 。

③ 動作モデリング. 動作モデルは、ソフトウェア システムと環境の間の相互作用を記述するために使用されます. 状態遷移図に一般的に使用されるソフトウェア動作モデリング ツールには、状態やイベントなどのグラフィカル要素が含まれます。

④データディクショナリはソフトウェアの要素を定義するために使用され、ソフトウェア要素が本格的で詳細かつ正確な仕様を取得できるようにします。システムのより完全かつ包括的な仕様定義を実現するには、要求分析モデルのデータ、機能、動作などの要素をデータ辞書を通じて詳細に記述する必要があります。 

   UML オブジェクトに基づくオブジェクト指向分析モデリング:

UML は、統一された構文、セマンティクス、および実用的なルールを備えた統一モデリング言語です。そのモデリング プロセスは、ユースケース主導、アーキテクチャ中心の増分反復、およびパッケージを通じてモデルの効果的な統合管理が実現されるという特徴があります。① ユーザーニーズを重視し、システムのユーザー価値を反映できるユースケースモデリング ユースケース図の基本要素は、ケース、参加者、コミュニケーションであり、一般化、拡張、包含がありますユースケース間の関係。②アクティビティモデリングアクティビティ図はシステムの動的なプロセスを記述するために使用され、主なグラフィック要素はアクティビティ、遷移、開始点、終了点、判断、並行性、同期、スイムレーンなどです。ビジネス プロセス全体を含む高レベルのビジネス レベルのアクティビティを記述し、各ユース ケースのアクティビティをモデル化し、ユース ケースの内部アクティビティの詳細を反映できます。③ クラス分析とモデリング.ここではエンティティクラスのみを考慮します. エンティティクラスによって表現されるデータは通常, 互いに一定の関係を持ち, この関係は組織化されたプログラムデータ構造を形成することができます. エンティティ クラス間の主なデータ関係は、関連付け、クラスタリング、一般化です。 

おすすめ

転載: blog.csdn.net/tengtengdish/article/details/131446516