Posts in category "Software Development"

Java Technology Concept Map

This interactive diagram to the Java universe is a flash application that links to the documentation. I thank Malcolm Davies on Java.Net for drawing our attention to this excellent resource.
In a nutshell:

"Developers learn and use Java to create and run Programs that make Devices and the Internet useful for People."

UMLet - Another Free UML Tool

Martin Fowler mentioned UMLet in his recent article on UmlSketchingTools which I blogged about earlier this week. A paper in which the authors (Auer et al, 2003) describe the ideas behind UMLet is very insightful and pretty much echoes my own experiences of over-blown UML tools in the teaching domain (and I’ve tried ArgoUML, Poseidon CE, Together and Rational Rose with variable — but mostly limited — success over the last three or four years).

I have to say that, although it currently only supports class, object and use-case diagrams, UMLet looks very promising and may well prove to be a winner in next year’s Software Engineering courses. Better yet, UMLet can be used as an Eclipse plugin!

Reference

M. Auer, T. Schurtschenthaler, and S. Biffl (Vienna University of Technology), 2003. A Flyweight UML Modeling Tool for Software Development in Heterogeneous Environments”, 29th Euromicro Conference (EUROMICRO’03), Sept. 01–06. Balek-Antayla, Turkey. Conference Proceedings Published by IEEE.

New Ant 1.6 Features for Big Projects

A new tutorial article by Stefan Bodewig on the OracleTM Technology Network has been brought to my attention by a news article on TSS (thanks Sudhakar Ramakrishan). Describes the new , and tasks that should make ant even better! Will print and read the detail later, but I can’t wait to try some of these out on the EG-140 build (which needs all kinds of scripting tricks to work).

UmlSketchingTools

Another approach to UML diagramming. This time publicised in Martin Fowler’s Blicki: MF Bliki: UmlSketchingTools. UMLGraph uses a mixture of JavaDoc tags and pic macros to do the hard work. Dr Spinelis argues for his declarative approach in “On the Declarative Specification of Models, IEEE Software, 20(2):94-96, March/April 2003 which is on-line in PDF format at http://www.spinellis.gr/pubs/jrnl/2003-IEEESW-umlgraph/html/article.html. Worth a look I think — as is the author’s (Domidis Spinellis) book Code Reading.

Visual Thought

Jeremy Rayner’s June 15 blog entry directed me to another free drawing tool for UML diagrams. Thanks for the link!

I mentioned violet a couple of days ago. It is really simple, unfortunately it doesn’t have the ability to move classes around once positioned. This makes it a a bit hard to use. It is open source so that could be fixed of course!

Visual Thought is a drawing tool so it has the same advantages as Visio in that it’s not designed for MDA or for code generation, so you can happily use it for agile modelling. As I have some modeling to do over the summer as I rewrite my Client-Server Programming in Java Module, I’ll let you know how it goes!

The Ted Neward Challenge (AOP without the buzzwords)

Adrian Colyer has tried to describe AOP without using the buzzwords. An attempt to answer a challenge thrown down at the last TSS symposium in The Aspects Blog. It boils down to DRY (don’t repeat yourself).

So what we’ve really got in any non-trivial software application is not the ideal 1-to-1 mapping between concept and implementation, but an n:m mapping. No wonder software gets so hard to maintain, and so hard to understand, and so complex. And it’s not your fault. The tools that object-oriented languages give us don’t enable the clean mapping of every design concept into a single implementation construct … and consequently neither do they allow each implementation construct to map cleanly onto a single design concept. This is the problem that aspect-oriented programming attempts to help us solve. It’s about getting as close to a 1-to-1 mapping as we can. AOP addresses the problem by introducing a new construct known as an aspect that is able to capture in one place the implementation of design requirements, such as the view-notification requirement [all views have to be notified if the model > >

changes] in MVC, which OOP cannot.

AOP

Not the next big thing! SSS (Small, Simple, Safe) reinvents BlueJ functionality

Daily trawl through the java.blogs feeds picked up a reference to ONJava.com: SSS (Small, Simple, Safe) [May. 26, 2004]. SSS is apparently a simple tool that allows you to instantiate and play with Java objects. It is apparently used and useful in teaching. I simply had to make a comment to the effect that BlueJ has had this feature for ever! Here’s my response in full:

BlueJ is a simple Java IDE (avalable from www.bluej.org) which also has this sort of behaviour. You can instantiate an object of any class on the classpath by providing the fully qualified name and then selecting any of the class’s constructors. Once the object has been instantiated and a small icon (sort of like a UML object diagram) appears. You can then right-click on the “object” to call any of the object’s methods. Because BlueJ is an IDE and debugger it has privileged access to the JVM, which allows you to also inspect the object to see all its private state.

BlueJ has built up quite a following in the educational arena just lately and there are several “CS101″ text books using it (but none from O’Reilly). See the web site quoted above for more info and access to the lively discussion lists.

It’ll be interesting to see if there is any feedback!