Loading article…
これは、ソフトウェア開発とエンジニアリングにおけるアプローチ、スタイル、方法論、および哲学のリストです。プログラミング パラダイム、ソフトウェア開発方法論、ソフトウェア開発プロセス、および個別のプラクティス、原則、法則も含まれています。
言及された方法のいくつかは、自動車や航空宇宙など、他の分野よりも特定の分野に関連しています。[1] [2]ソフトウェアエンジニアリングにおけるアジャイル手法への傾向は顕著ですが、[3]このテーマに関する研究の改善も非常に重要です。[4] [5]また、リストされている方法のいくつかは新しいものや古いもの、現在も使用されているもの、時代遅れのものがあり、ソフトウェア設計方法の研究は新しくなく、進行中ではないことに注意してください。[6] [7] [8] [9]
ソフトウェア開発の方法論、ガイドライン、戦略
大規模プログラミングスタイル
仕様関連のパラダイム
包括的なシステム
経験則、法律、ガイドライン、原則
- 300の経験則と知恵の塊(Mickey W. Mantle、Ron Lichty著『Managing the Unmanageable - Rules, Tools, and Insights for Managing Software People and Teams [10]』からの抜粋)
- 酸
- 大きな泥の塊
- ブルックスの法則
- C++コアガイドライン[11] (Stroustrup/Sutter) P1 - P13哲学ルール
- CAP定理
- コードの再利用
- コマンド・クエリ分離(CQS)
- コンウェイの法則
- カウボーイコーディング
- 私が言いたいことをやれ(DWIM)
- 同じことを繰り返さない(DRY)
- エゴレスプログラミング
- 失敗を早く
- ガルの法則
- 一般責任割り当てソフトウェアパターン(GRASP)
- 壊れていないなら直さないで
- 継承 (OOP)
- KISS原則
- デメテルの法則、最小知識の原理としても知られる
- 複雑性保存の法則、別名テスラーの法則
- リーマンのソフトウェア進化の法則
- 疎結合
- ミニマリズム(コンピューティング)
- 90-90ルール
- オープン・クローズ原則
- パッケージの原則
- パレートの法則
- パーキンソンの法則
- 驚き最小の原則(POLA)
- 早くリリースし、頻繁にリリースする
- ロバスト性原理、別名ポステルの法則
- 最小力の法則
- セマット
- 関心の分離
- メカニズムとポリシーの分離
- 真実の単一ソース(SSOT)
- 真実の単一バージョン(SVOT)
- SOLID(オブジェクト指向設計)
- 方法は一つだけではない
- 均一アクセス原則
- Unix哲学
- 悪いほうが良い
- 必要ないでしょう(YAGNI)
他の
- デイビス201ソフトウェア開発の原則[12]
- 考えさせないで(直感的なナビゲーションと情報デザインの原則)[13]
- コンピュータプログラミングの芸術(ドナルド・E・クヌースによるコンピュータサイエンス全般の傑作)
- 大聖堂とバザール- トップダウンとボトムアップのオープンソース ソフトウェアを比較した本
- コンピュータサイエンスの哲学[14]
- ソフトウェア工学の理論はどこにあるのか?[15]
- ヨーヨー問題
プログラミングパラダイム
- エージェント指向プログラミング
- アスペクト指向プログラミング(AOP)
- 設定よりも規約
- コンポーネントベースのソフトウェアエンジニアリング
- 関数型プログラミング(FP)
- 階層的オブジェクト指向設計(HOOD)[16]
- リテラルプログラミング
- 論理プログラミング
- モジュールプログラミング
- オブジェクト指向プログラミング(OOP)
- 手続き型プログラミング
- リアクティブプログラミング
ソフトウェア開発方法論
- アジャイル統合プロセス(AUP)
- 構成主義設計方法論(CDM)
- 動的システム開発手法(DSDM)
- エクストリームプログラミング(XP)
- 反復的かつ漸進的な開発
- カンバン
- リーンソフトウェア開発
- モデルベースシステムエンジニアリング(MBSE)
- ペアプログラミング
- モブプログラミング
- 迅速なアプリケーション開発(RAD)
- ラショナル統一プロセス(RUP)
- ラバーダックデバッグ
- スクラム
- 構造化システム分析設計法(SSADM)
- 統一プロセス(UP)
ソフトウェア開発プロセス
- アクティブ管理者主導開発 (AADD)
- 行動駆動開発(BDD)
- バグ駆動開発(BgDD)
- 構成駆動開発 (CDD)
- Readme 駆動開発 (RDD)
- デザイン主導開発(D3)
- ドメイン駆動設計(DDD)
- 機能駆動開発(FDD)
- テスト駆動開発(TDD)
- ユーザー中心設計(UCD) (ユーザー駆動開発 (UDD))
- 価値主導設計(VDD)
- ソフトウェアレビュー
- ソフトウェア品質保証
参照
- アンチパターン
- コーディング規約
- デザインパターン
- プログラミングパラダイム
- ソフトウェア開発方法論
- ソフトウェア開発プロセス
- コンピュータサイエンスの概要
- ソフトウェア工学の概要
- コンピュータ工学の概要
- コンピュータプログラミングの概要
- ソフトウェア開発の概要
- ウェブデザインとウェブ開発の概要
- コンピュータの概要
- カテゴリ:プログラミングの原則
さらに読む
- ISO/IEC/IEEE 26515:2018(E) - ISO/IEC/IEEE国際規格 - システムおよびソフトウェアエンジニアリング - アジャイル環境におけるユーザー向け情報の開発[17]
その他資料、書籍、記事等
参考文献
- ^ Gruszczynski, B. (2006 年5 月)。「自動車用組み込みエレクトロニクスにおけるソフトウェア エンジニアリングの現状の概要」。2006 IEEE 国際電気情報技術会議。pp. 377–381。doi :10.1109/EIT.2006.252190。ISBN 0-7803-9592-1. S2CID 34164454。
- ^ Patel, BK; Litchfield, V.; Tamanaha, D .; Davis, A. (1991 年 2 月)。「大規模航空宇宙システム向けリアルタイム システム/ソフトウェア方法論」。1991 IEEE 航空宇宙アプリケーション カンファレンス ダイジェスト。pp. 2/1–2/9。doi :10.1109/ AERO.1991.154537。ISBN 0-87942-686-1.S2CID 151614328 。
- ^ Yau, Stephen S; Jia, Xiaoping; Bae, Doo-Hwan (1992-05-01). 「分散コンピューティングシステムのためのソフトウェア設計方法」。コンピュータ通信。分散システムの将来の動向に関するソフトウェアの側面。15 (4): 213–224。doi : 10.1016 /0140-3664(92)90104-M。ISSN 0140-3664 。
- ^ Stavru, Stavros (2014-08-01). 「アジャイル手法の使用に関する最近の業界調査の批判的検討」.システムおよびソフトウェアジャーナル. 94 : 87–97. doi :10.1016/j.jss.2014.03.041. ISSN 0164-1212.
- ^ Dybå, Tore; Dingsøyr, Torgeir (2008-08-01). 「アジャイルソフトウェア開発の実証研究: 体系的レビュー」.情報およびソフトウェア技術. 50 (9): 833–859. doi :10.1016/j.infsof.2008.01.006. ISSN 0950-5849. S2CID 2244031.
- ^ Taylor, P. ( 2011年 11 月)。「デザイナー的思考: ソフトウェア方法論がデザイン理論から学べること」。Proceedings International Conference on Software Methods and Tools。SMT 2000。pp. 107–116。doi :10.1109/SWMT.2000.890426。ISBN 978-0-7695-0903-7. S2CID 110041968。
- ^ Yau, Stephen S; Jia, Xiaoping; Bae, Doo-Hwan (1992-05-01). 「分散コンピューティングシステムのためのソフトウェア設計方法」。コンピュータ通信。分散システムの将来の動向に関するソフトウェアの側面。15 (4): 213–224。doi : 10.1016 /0140-3664(92)90104-M。ISSN 0140-3664 。
- ^ Gomaa, Hassan (1994-05-01). 「大規模リアルタイムシステムの設計のためのソフトウェア設計手法」.システムとソフトウェアジャーナル. 25 (2): 127–146. doi :10.1016/0164-1212(94)90002-7. ISSN 0164-1212.
- ^ Budgen, David (1995年7月). 「ソフトウェア設計手法からの『設計モデル』」.デザイン研究. 16 (3): 293–325. doi :10.1016/0142-694X(95)00001-8. ISSN 0142-694X.
- ^ Mantle, Mickey W. (2020). 「管理不能なものを管理する:ソフトウェアの人材とチームを管理するためのルール、ツール、洞察」 Ron Lichty (第2版)。ボストン。ISBN 978-0-13-566763-7. OCLC 1137802633.
{{cite book}}: CS1 maint: location missing publisher (link) - ^ 「C++ Core Guidelines」. isocpp.github.io . 2021年4月11日閲覧。
- ^ デイビス、アラン・マーク。(1995)。ソフトウェア開発の201の原則。ニューヨーク:マグロウヒル。ISBN 0-07-015840-1. OCLC 31814837.
- ^ スティーブ・クルーグ(2014年)。『Don't make me think, revisited : a common sense approach to Web usability』。エリザベス・ベイル、アレン・ストレイガー、マーク・マッチョ(第3版)。[サンフランシスコ、カリフォルニア州] 。ISBN 978-0-321-96551-6. OCLC 859556499.
{{cite book}}: CS1 maint: location missing publisher (link) - ^ Turner, Raymond; Angius, Nicola (2020)、「コンピュータサイエンスの哲学」、Zalta, Edward N. (編)、スタンフォード哲学百科事典(2020年春版)、スタンフォード大学形而上学研究室、2020年9月1日取得
- ^ Johnson, Pontus; Ekstedt, Mathias; Jacobson, Ivar (2012). 「ソフトウェアエンジニアリングの理論はどこにあるのか?」IEEE ソフトウェア. 29 (5): 96. doi :10.1109/MS.2012.127. ISSN 0740-7459. S2CID 38239662.
- ^ Aslett, MJ (1991 年 12 月)。「HOOD メソッドの概要」。1991 IEE コロキウム「ソフトウェア設計方法論入門」(参照番号: 1991/181) : 5/1–5/4。
- ^ ISO/IEC/IEEE 国際規格 - システムおよびソフトウェアエンジニアリング - アジャイル環境におけるユーザー向け情報の開発。Iso/Iec/IEEE 26515:2018(E)。2018 年 12 月。pp. 1–32。doi : 10.1109/ IEEESTD.2018.8584455。ISBN 978-1-5044-5297-7。
