• ベストアンサー

大規模開発の最適なパッケージ構成について

現在、java言語で比較的大きな規模の開発をしています。 現在のプロジェクトのパッケージ構成がいい加減な作りになっているため、きちんとポリシを作ってそれに基づいた作りに変えていきたいと考えています。 そこで、パッケージ構成に関するノウハウなどが分かるサイトなどを教えて頂けますでしょうか。 特に、strutsを使っているためactionクラスとそれ以外のクラスをどのように切り分けるかなどのノウハウもあると非常に助かります。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • aton
  • ベストアンサー率47% (160/334)
回答No.3

java package design (principle) あたりで検索すると色々出てきますが,よく参照されているのは http://javaboutique.internet.com/Case_Study/ http://www.surfscranton.com/architecture/ObjectOrientedDesignPrinciples.htm http://homepages.dcc.ufmg.br/~fpereira/classes/poo20h/ementa/ http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod http://www.st.informatik.tu-darmstadt.de/pages/lectures/se/ws06-07/design/lecture/10_principlesOfPackageDesign.pdf http://staff.cs.utu.fi/staff/jouni.smed/doos_06/slides/slides_060404.pdf http://supportline.microfocus.com/Documentation/books/DevPartner/doc/DPJ/DPJ44/PDF/OptimalAdvisor.pdf http://www.csd.uoc.gr/~hy252/references/UML_for_Java_Programmers-Book.pdf http://javaboutique.internet.com/tutorials/PackageDesign/ などで言及されている以下の6つの観点 REP The Release Reuse Equivalency Principle The granule of reuse is the granule of release. CCP The Common Closure Principle Classes that change together are packaged together. CRP The Common Reuse Principle Classes that are used together are packaged together. ------ ADP The Acyclic Dependencies Principle The dependency graph of packages must have no cycles. SDP The Stable Dependencies Principle Depend in the direction of stability. SAP The Stable Abstractions Principle Abstractness increases with stability. 前半3つが package cohesion (パッケージ内部の凝集性)に関わるもので,後半3つが package coupling (パッケージ間の組み合わせ)に関わるものです。 これらと内容的には被りますが,別な表現で述べたものとして,依存関係(循環しないようにする)に着目したり,レイヤー(データ/ロジック/プレゼンテーションなど)や機能を意識して分けたりする,という考え方もありました。 http://japan.internet.com/developer/20070502/27.html http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII8.0/ptII/doc/coding/packages.htm http://www.st.uni-trier.de/~diehl/pubs/vissoft05.pdf http://forum.springsource.org/archive/index.php/t-12301.html http://stackoverflow.com/questions/533102/what-strategy-do-you-use-for-package-naming-in-java-projects-and-why またこれらに適合するようなパッケージ構成をアドバイスしてくれるツールもあるようです。詳細は上のリンクからたどるなり検索するなりしてみてください。 以上,ご参考まで。

oubokun
質問者

お礼

情報ありがとうございました。なかなかうまく検索できなくて困っていたのですが、これがまさに欲しかった情報でした。 下記も見つけましたので、一応記載しておきます。 http://www.objectmentor.com/resources/articles/granularity.pdf http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf

その他の回答 (2)

  • root139
  • ベストアンサー率60% (488/809)
回答No.4

No 3の方が紹介されている Robert C. Martin のパッケージ設計の原則ですが、日本語の資料としては下記の様なものが有りますね。 http://www.objectclub.jp/community/memorial/homepage3.nifty.com/masarl/article/oo-principles.html (後半) http://www.amazon.co.jp/dp/4797347783/

oubokun
質問者

お礼

情報ありがとうございました。読みやすいですね。 結構日本語のサイトでも情報があるので、日本語のサイトだけで十分理解できそうです。

noname#147388
noname#147388
回答No.2

http://www.seasar.org/ あたりを参考に

oubokun
質問者

お礼

なるほど、フレームワークは参考になりますね。 ありがとうございます。