From J. Arrizza Wiki
These are all posts from the mailing lists: refactoring, extremeprogramming, testdrivendevelopment, socal, etc.
I'll be cleaning this up soon... --- An XP project management tool called VersionOne ( http://www.versionone.net ). I've been looking for a product like this to help with managing remote teams and finally found one I liked. --- NASA’s Software Engineering Laboratory (SEL) & The Experience Factory. http://sel.gsfc.nasa.gov/website/exp-factory.htm
Empirical Software Engineering Journal http://www.kluweronline.com/issn/1382-3256
Victor Basili. This dude is a major empirical software engineering advocate: http://www.cs.umd.edu/~basili/
Paper: Empirical Findings in Agile Methods: http://fc-md.umd.edu/fcmd/Papers/Lindvall_agile_universe_eworkshop..pdf http://citeseer.nj.nec.com/lindvall02empirical.html
The first eWorkshop on Agile Methods (I believe the above paper is derived from this) http://fc-md.umd.edu/projects/Agile/Summary/SummaryPF.htm
Another interesting paper I came across: http://portal.acm.org/citation.cfm?id=776846&jmp=cit&dl=portal&dl=ACM
5th discipline. This is not explicitly a software engineering thing, and sometimes is seems a bit more “soft” than engineering, however it is relevant. Basically this book and is progeny cover the field of organizational learning. I believe some people in the field do get into more stochastic methods:
--- [ > ...and since duplicated code is (nearly) always a bad thing, I'd just > like to take this opportunity to note that CPD - the copy/paste detector > - now works with C/C++ code: > > http://pmd.sourceforge.net/cpd.html ] --- ++Sites++ --- Simplicity is very happy to announce the release of C# Refactory v1.01.
C# Refactory is fully integrated into the VS.NET IDE and supports the following refactorings...
Extract Method Extract Superclass Extract Interface Copy Class Rename Type Rename Member Rename Parameter Rename Local Variable
...as well as calculating metrics at the solution, project, folder, unit and class levels.
We invite you to download an evaluation copy at: http://www.xtreme-simplicity.net/Download.html --- Finally, you now can run (some of) RevJava's functionality without starting its GUI. This should facilitate integration with tools like Ant.
More detailed (change) information can be found on:
You can download RevJava from:
http://www.serc.nl/index.html?/content/producten/download.shtml --- For the past years I have been working (mostly in my spare time) on tooling to detect bad (design and programming) smells in OO software. Recently, a first result of this work, called RevJava, has been made available for (free) download.
RevJava loads compiled Java code (class files) and derives metrics and critics for it that can be inspected via various interactive browser.
Currently, RevJava provides around 80 critics on various language elements (methods, fields, classes, interfaces, packages, and the program as a whole. The critics include various well-known OO principles, heuristics and idioms.
While RevJava's critics provide suggestions for inspection and possible improvement but they shouldn't be followed blindly. Since RevJava loads compiled code, and performs only very limited code analysis, it can be fooled. On the other hand, this approach means that it scales fairly well: we've examined programs with thousands of classes with it.
RevJava is easy to install and use. Since it's written in Java, you only need a Java runtime (1.3, but 1.4 seems to work too) to run it. For some features (e.g. graph visualization) you need additional tools; check the readme file in the download package for more information.
You can download RevJava from SERC's website:
http://www.serc.nl/content/producten/download.shtml --- Dave, all these metrics are catched by dotEASY (www.doteasy.addr.com), now it analyze C# code, maybe it can be useful for you (i look that you're looking for c++ code).
You can download a free alpha version.
Juan --- If you use Java, there's the excellent http://www.jdepend.com for design smells. JDepend is based on Robert C Martin's article "Object Oriented Design Quality Metrics: an analysis" available here: http://www.objectmentor.com/resources/articles/oodmetrc.pdf --- I'd suggest JRefactory (http://sourceforge.net/projects/jrefactory), a combined pretty-printer (surely the most basic and fundamental refactoring of them all!) and refactoring tool. Ant and Junit should also get a look in, too. --- Of course, we, the developers of RefactorIT, are well aware of your paper and we are happy to have the opportunity telling you a bit about our Refactoring Tool for Java. It's been on a beta testing programme since October '01 and has since attracted a considerable user base and interest (over 2000 active registered users) - much bigger than we have anticipated. To cut things short, we hope to make RefactorIT at least as useful as the original Refactoring Browser has been for the Smalltalk community. Try it out for yourself - simply download from - and register at http://www.refactorit.com/ to get a beta testing license key. --- Hello Bill,
Please take a look at our tool for structural analysis and code visualization: http://www.thesmallworlds.com it is free for educational use. The Release 2.0 will include a lot of Refactoring Wizards. --- Don't forget IDEA : http://www.intellij.com/idea/
Current version refactorings for java and JSP:
--- With the $1750 difference in price (JDepend from http://www.clarkware.com/software/JDepend.html is free, under a BSD license, and comes with source), I would hope it does quite a bit more.... --- New tool for analysis and refactoring of java packages:
--- Sven Reichard is working on a C++ Refactoring Tool at
http://sourceforge.net/projects/cpptool/ --- I think that you might find our tool Small Worlds (http://www.thesmallworlds.com) as a first step in the direction of automatic finding of 'smelly code'. The tool is based on ideas in complex systems and structural analysis. In addition to sophisticated visualization of the system, it identifies circular references, heavy components, etc.
I know that you might think that I am just saying this because we wrote the tool, but it is not the case. Check it out and see for yourself.
Alex --- My biggest gripe about VS.NET is the total lack of any refactoring support in the IDE. In my humble opinion, this absence is a major mistake on Microsoft's part. Thankfully, there is a project that nicely fills this gaping hole, .NET Refactoring. Check it out at http://www.dotnetrefactoring.com.
Craig --- John: link to www.geocities.com/doteasyproject ---
- Don't expect your customers developers to
understand or even read advanced papers such as http://www.objectmentor.com/resources/articles/WorkingEffectivelyWithLegacyCode.pdf the majority of them won't. Sven --- Folks.
I have uploaded two pdf's which contain the responses from the vendors of C# Refactory and .NET Refactoring regarding questions that I posed to each about how they feel their product compares to the other.
I mentioned that I'd share these responses, so here they are.
C# Refactory response: http://groups.yahoo.com/group/refactoring/files/C%23%20Refactory%20Response.pdf
--- Seeking Crufty Code (For a refactoring demo)
http://www.objectmentor.com/resources/fun/wator/index --- I've finally got chance to update the tools page at refactoring.com http://www.refactoring.com/tools.html . I've mentioned the two new C# tools. If anyone has anything else I should know about do let me know.
Martin --- From: "Anton Safonov" <email@example.com> +Not bad, except I wish I could correlate the number of lines in a method with some metric indicating the "importance" of the method, e.g. how often the method is run. There's no point in refactoring something that isn't run (which makes me wish for a dead code detector).+
There is a dead code detector in RefactorIT called NotUsed which can be run on a class, package and the whole project. See http://www.refactorit.com/index.html?id=474
+You might want to take a look at Ivan Moore's Jester (http://jester.sourceforge.net/). It detects zombie code... that is, code that runs but does not affect the behavior of a system. To do this, it mutates a copy of your source code and reruns the tests against it, flagging all mutations where the tests still pass. This could happen if your tests aren't comprehensive enough. It could also happen if you have zombie code or dead code.+
Michael Feathers www.objectmentor.com --- Check out http://bicyclerepair.sourceforge.net/ (I'm the main author!)
Phil --- Hello Bill, we are working on a refactoring tool called Codemorpher, which beside refactoring operations performs analysis on your code, which can help you find places where refactoring would be suitable. You can have a look at it on www.xptools.com.
Sincerely /Jens Nordberg --- Here is another thing we discussed. This program generates a log file of Java program execution and actually lets you trace through the program backwards.
http://www.lambdacs.com/debugger/debugger.html --- When using VS.NET, add your test files to your test project and set their Build Action to "Embedded resource". You can retrieve the files at runtime using reflection. This allows you to have a stand-alone test DLL containing all tests and test data. For more information on how to do this, see http://www.codeproject.com/dotnet/embeddedresources.asp --- viewport:RefactoringLinks viewport:TddLinks viewport:InterestingBooks