I know that a few people were interested in how I am going to go about my independent study next term, so I am posting the actual proposal. Also, itíll be a good introduction to the 10 articles that Iíll need to write next term.\

Independent Study Proposal

Adviser: Curt Clifton
Topic: Refactoring and Refactoring to Patterns


Book(s):
    Refactoring: Improving the Design of Existing Code by Fowler et al.
http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672
    Refactoring to Patterns by Kerievsky
http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351


Deliverables:
    10 Articles (Blog posts) that describe an action taken to refactor a piece of code from one of the selected projects. The blog posts can deal with how the code was identified, why it is bad, the process used to refactor the code, etc. Screencasts / podcasts may or may not be included with each article.


Schedule:
    Weeks 1-10:
        Due Friday: Article on the topic focused on during that week.


Selected projects:
    insoshi
http://github.com/insoshi/insoshi
        Chosen because it is a known application domain (social networking) and has a significant model / controller layer with 24 models and 20 controllers.
    redmine
http://github.com/edavis10/redmine
        Chosen because it is another known application domain with a larger set of models and controllers than insoshi. It has more than 50 models and has 37 controllers.
    openbravo
http://forge.openbravo.com/projects/openbravoerp
        Chosen because it is a web application, written in Java, that has a deep hierarchy of objects and dependency in the application.
    sharpdevelop
http://www.icsharpcode.net/OpenSource/SD/
        Chosen because of its large code base and because it is written in C#. The cross-project (.dll) dependencies may be interesting to look at.


Possible tools:
    RubyMine
http://www.jetbrains.com/ruby/index.html
        Ruby IDE.
    IntelliJ Idea
http://www.jetbrains.com/idea/
        Java IDE.
    Visual Studio (2008/2010)
http://www.microsoft.com/visualstudio/en-us/default.mspx
        C# IDE.
    JDepend
http://clarkware.com/software/JDepend.html
        Java code analyzer.
    NDepend
http://www.ndepend.com/
        C# code analyzer.
    roodi
http://roodi.rubyforge.org/
        Ruby code analyzer.
    Windows Live Writer
http://download.live.com/writer
        Blogging tool.
    Jing Project
http://jingproject.com
        Screencasting tool.

Independent Study Proposal
Adviser: Curt Clifton
Topic: Refactoring and Refactoring to Patterns
Book(s):
Refactoring: Improving the Design of Existing Code by Fowler et al.
http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672
Refactoring to Patterns by Kerievsky
http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351
Deliverables:
10 Articles (Blog posts) that describe an action taken to refactor a piece of code from one of the selected projects. The blog posts can deal with how the code was identified, why it is bad, the process used to refactor the code, etc. Screencasts / podcasts may or may not be included with each article.
Schedule:
Weeks 1-10:
Due Friday: Article on the topic focused on during that week.
Selected projects:
insoshi
http://github.com/insoshi/insoshi
Chosen because it is a known application domain (social networking) and has a significant model / controller layer with 24 models and 20 controllers.
redmine
http://github.com/edavis10/redmine
Chosen because it is another known application domain with a larger set of models and controllers than insoshi. It has more than 50 models and has 37 controllers.
openbravo
http://forge.openbravo.com/projects/openbravoerp
Chosen because it is a web application, written in Java, that has a deep hierarchy of objects and dependency in the application.
sharpdevelop
http://www.icsharpcode.net/OpenSource/SD/
Chosen because of its large code base and because it is written in C#. The cross-project (.dll) dependencies may be interesting to look at.
Possible tools:
RubyMine
http://www.jetbrains.com/ruby/index.html
Ruby IDE.
IntelliJ Idea
http://www.jetbrains.com/idea/
Java IDE.
Visual Studio (2008/2010)
http://www.microsoft.com/visualstudio/en-us/default.mspx
C# IDE.
JDepend
http://clarkware.com/software/JDepend.html
Java code analyzer.
NDepend
http://www.ndepend.com/
C# code analyzer.
roodi
http://roodi.rubyforge.org/
Ruby code analyzer.
Windows Live Writer
http://download.live.com/writer
Blogging tool.
Jing Project
http://jingproject.com
Screencasting tool.