クラスでは、さまざまなソフトウェア開発方法について学びます。私たちが重点を置き、プロジェクトの開発に使用したのは、ウォーターフォール法でした。
おそらく、古典的なウォーターフォールモデルを学んだことでしょう。これは、ソフトウェア開発の世界に導入したとされた人物が最初から大規模なソフトウェアシステムの開発には不適切であると述べたものです。おそらく、読書に興味がある大規模なソフトウェアシステムのDevelopemtの管理と題したウィンストン・ロイスの論文より多くの人々はウォーターフォールモデルであると考えるものとの問題について学ぶために。
ただし、ウォーターフォールモデルは、ソフトウェア開発ライフサイクルの学習に役立ち、要件エンジニアリング、アーキテクチャ設計、詳細設計、実装、テスト、およびメンテナンスについて、非常に明確で明確なフェーズで学び、実行することに時間を費やすことができます。
クラス図では、プライベートプロパティを含むすべてのプロパティとメソッドをリストする必要がありました。私はいくつかの本、つまりClean Codeを読みましたが、これは関数を可能な限り短くし、焦点を絞っていると述べています。他の開発者の助けにならない場合、ダイアグラムにすべての小さな関数をリストするのは面倒です(それらは非公開で、他の誰も使用しません)。さらに、プログラムを設計するときにすべての小さな関数について考えることはないかもしれません。リファクタリングするときにそれらが一緒に来るかもしれません。
これらはすべて非常に有効なポイントです。
ウォーターフォールを使用している場合でも、設計段階ですべてのプロパティとメソッドを一覧表示することは、おそらくやりすぎです。あなたは間違いなく、公開されているすべてのものと必須プロパティをリストする必要があります。実際には、他のすべては実装の詳細であり、実装を図にリバースエンジニアリングすることで取得できます。
Clean Codeのアドバイス(私は一度も読んだことがない-私はあなたが投稿したものをそのまま読みます)は公平で、Waterfall手法を使用している場合でも適用できるようです。単一の責任の原則、懸念の分離、およびSOLIDの他の原則に関して、クラスとメソッドを設計できます。ウォーターフォールは、必要なときにだけ、デザインの方法を教えてくれません。とはいえ、実装時にそれを行うためのより良い方法を学び、考えると、事前の対応は難しくなります。
これは、設計と実装の間の反復が非常に明確である必要があるという事実を指摘していると思います-従来のウォーターフォールでは考慮されていない問題です。