masayuki5160's diary

滋賀県大津市に住むソフトウェアエンジニアの日常

ソフトウェア設計とは(ソフトウェア設計と品質特性) ━ ソフトウェア工学チャンネル

はじめに

書籍 "ソフトウェア工学" を参考に動画にしました。本記事ではお話しした内容をもとに、Geminiに動画の内容をまとめてもらった内容をベースに記載しています。

 

www.youtube.com

ソフトウェア設計とは

  • ソフトウェア設計とは、ソフトウェアの構造、構成要素、構成要素間の関係、およびそれらの特性を決める作業のことです [01:35]。
  • ソフトウェア設計を行う上で、特定の言語やフレームワークに囚われず、俯瞰的な視点を持つことが重要です [00:24]。
  • ソフトウェア設計は、構造、構成要素、要素間の関係性、特性を決める作業であり、その結果としてアウトプットが生まれます [04:44]。

設計に関わる作業

  • 外部インターフェースの決定 [05:16]
  • 内部の実現構造の決定(アルゴリズムやデータ構造の選択) [05:22]
  • 利用技術の決定 [05:49]
  • 設計の確認(レビュー) [06:14]

設計と品質特性

  • ソフトウェアの品質特性は、その実現方式(設計)によって変わります [07:09]。
  • ソフトウェア設計は、機能要求を満たす実現方式の中から、品質要求に適したものを選ぶ作業です [08:15]。
    • 機能要求とは、ログイン機能やカート機能など、ソフトウェアが提供する具体的な機能のことです [08:31]。
    • 品質要求とは、非機能要求とも呼ばれ、性能、セキュリティ、信頼性など、ソフトウェアの品質に関する要求のことです [09:07]。

要求定義と設計

  • ソフトウェア開発のライフサイクルにおいて、設計工程の前には要求定義工程があります [11:06]。
  • 要求定義とは「何を作るか(What)」を明確にする工程であり、設計とは「どう作るか(How)」を決定する工程です [12:17]。
  • 要求定義と設計は密接な関係にあり、両工程を行き来しながら進めることが一般的です [13:37]。
  • 設計をリードするアーキテクトは、要求定義工程を理解し、関係者と密にコミュニケーションを取ることが重要です [14:19]。

まとめ

ソフトウェア設計は、ソフトウェア開発において非常に重要な工程です。 設計の品質は、ソフトウェア全体の品質に大きく影響します。 そのため、ソフトウェア設計者は、幅広い知識とスキルを持ち、関係者と協力しながら、最適な設計を行う必要があります。

 

masaytan.com