Plugins (1068)


Training and Consulting (45)



EPIC Poll

What is your favourite developer portal?

[ Results | Polls ]

Votes: 583
Comments: 0


Category: Plugin Directory / Source Code Analyzer / inCode

inCode 
Rate this plugin | Report broken link | Details | Comments (20)

Rating: 7.8 (34 Votes) | hits: 3
inCode

Version: 1.1.1
Support Eclipse Version: 3.3 and 3.4
License: Other
Development Status: Production/Stable
Company: LOOSE Research Group
Plugin home pageHome Page
Plugin SupportPlugin Support
Discussion ForumsDiscussion Forum
Buy Now
Update Site URL: http://loose.upt.ro/incode

inCode is a plugin that acts like a buddy who provides you with hints on potential design problems and with advices on how to better design and understand your Java code... and the best is that it does all of these in a continuous, yet discrete manner. So, inCode aims to help you with understanding, assessing and improving the quality of your project's design just as you write the code; and, -- most important -- do it with pleasure!

Instead of a lengthy, and oftentimes unsuccessful code review and/or restructuring sessions, you can detect and correct design problems in a continuous, agile manner. This will save you lots of precious time, as it is (almost) always easier to revise the code immediately after a problem appeared than half a year later...

So, If you are looking for a pair programming buddy, or if you seek for advice on how to redesign parts of your code to make it more object-oriented, inCode can help you with the following features:

On-the-fly detection of well-known code and design problems (a.k.a code smells or design flaws), like Code Duplication, classes that break encapsulation (Data Class, God Class), or methods placed in a wrong class (Feature Envy). The detection is based on object-oriented metrics, but the great part is that you don't have to interact directly with metrics. Metrics do the job, while you reap directly the useful conclusions!

inCode - Continuous detection of design problems

Smart contextual advices (inCode Tips) on each encountered design problem. inCode Tips are like an expert system that provides you with insights in the particular cause and context of that problem instance. Furthermore, you get customized advices on how to restructure (refactor) the code in order to improve the quality of your object-oriented design.

inCode - Useful contextual advices

Quick Refactorings, as inCode detects cases where an existing Eclipse refactorings could be triggered, and allow you to launch them directly from the inCode Tips view. In the future, we plan to extend this feature so that more advanced restructuring can be performed!

inCode - Quick refactoring solutions

Insightful code visualization using metrics-based views on attributes (Attribute Usage View), methods (Method Interaction View), classes (Class Blueprint) and packages/projects (System Complexity View). These allow you to see in one-shot the essential traits (e.g. dependencies) of the code that you are currently working on...and you don't have to trigger these visualization explicitly, as the appropriate visualization will be displayed automatically for the program element that is in focus. To make things even more cool, inCode does even update the view as you write and save the code! That makes it act like a continuous X-Ray of the code fragment that you are working on.

inCode - Insightful Visualizations

Interactive visualizations. Each visualization allows you to interact with the programming entities (methods, classes etc) that are visually displayed, allowing you to inspect them more closely. For example you can easily open the entity in the editor, or have its code displayed in a hover. Additionally, you can or zoom-in and/or zoom-out for a better view.

inCode - Interactive Visualizations

Comprehensive overview of an entire project or of a chosen package, by means of metrics that characterize the size, complexity, coupling and the shape of class hierarchies. Furthermore, the inCode Overview summarizes all the design problems detected in the project or package under scrutiny.

inCode - Overview

Improve yourself! inCode will not only help you to improve your code and design, but it will also improve your object-oriented programming skills in a cool and productive manner, i.e. while you work on your projects. By dealing with the different inCode Tips you will learn how to correct and -- even better -- avoid different design problems.

What's New ?

  • in 1.1.1:
    • inCode now supports Eclipse 3.4
  • in 1.1.0:
    • Added the inCode menu to source folders
    • inCode now takes into account the "sub-packages" of the selected package if the Package Explorer shows a hierachical tree
  • in 1.0.8: Removed two bugs: (i) one related to a redundant redisplay of markers; (ii) second bug is related to 100% CPU usage when workbench was running with no file open in the editor.
  • in 1.0.7:
    • Improved time performance for computing design problems and metrics involved in visualizations
    • Added access to the inCode forum from the inCode Overview view
    • Several minor bugs were removed, including a bug related to installing inCode directly from the Eclipse workbench.
    • Note (for users of inCode 1.0.5): Due to some changes in the feature you might encounter difficulties when updating using Eclipse's "Feature Updates | Search for updates..." mechanism. We recommend to remove inCode 1.0.5 and reinstall the 1.0.7 version as a new feature.


Added on: 29-May-2008 | Updated: 21-Aug-2008




Last 10 Comments


User: AnonymousRating: 32008-08-30 18:51:43
This is very much similar to PMD or findbugs, in fact it pretty much does the same thing, with some graphics that I didn't find particularly helpful. But the really bad thing about this plugin is that it scatters warnings (not distinguished, like findbug's bug icon, just regular yellow warnings) all over the place and gives you no way of either disabling certain rules or clearing the ones that are there. Some of the rules too are dumb - e.g. it will slap a warning on an import and say it's out of order, when in fact it's eclipse's default order. The warning it places on the import code looks like the same kind of warning you'd get from eclipse telling you that the import is unused, which is annoying since ctrl-shift-o will not fix it. You also have no control over when this plugin runs - it's your "buddy" after all, so it runs all the time. So when you decide you don't want this particular "buddy" hanging around with you anymore and you uninstall it, it leaves all of the warnings in place (21,000 of them in my case). The only way I could get rid of them is to blow away the project and create it again - not fun.


User: AnonymousRating: 102008-08-07 04:02:08
The best plugin ever.


User: AnonymousRating: 82008-07-30 02:04:00
This plugin automatically edits .project file. This is problematic in shared projects as not every project team member have the same plugin. I had to uninstall it because of that. Please do not edit project files automatically. I find that bad practice. The plugin looks very interesting and I hope I'm looking forward to use some future version. Seems like a very good idea!


User: AnonymousRating: 102008-07-18 10:07:40
I like the description and the contextualization of the design problems.


User: AnonymousRating: 32008-06-28 10:05:43
doesn't work


User: AnonymousRating: 102008-06-25 17:26:06
Works relatively quickly and reliably, especially in comparison with other analysis tools.


User: AnonymousRating: 52008-06-25 10:07:57
Doesn't work on most of my projects. It just stops computing the metrics, or whatever. Moreover, computing the metrics blocks the UI, what is the point of having a progress bar for a long running process if I can't even minimize it. Consider separating it from the UI, or if it's already separated, make it non blocking. Keep working, it will be great in some months.


User: AnonymousRating: 72008-06-25 06:23:57
Really nice, I hope you'll fix soon the heap being killed on big projects. Your work is really promising.


User: AnonymousRating: 42008-06-25 02:02:12
Visualizations are primitives and interaction is really slow and limited. Blueprin t is a mess, and computing the overall metrics for projects bigger than toy-tools makes the plug-in die. It's still primitive and must be improved a lot, I can't use it for any analysis other than POC on toys. Keep working on that, you are on the right path.


User: AnonymousRating: 12008-06-24 18:38:08
It hangs while loading :|