Developer Newsletter

Topics for this issue: Developer Events for October Macromedia Flash Remoting MX available for Microsoft .NET Fun with Phones Book Review: * Java Tools for eXtreme Programming IDE Review: * Dreamweaver MX (for Developers) Open Source: * mySQL 3.23 Grid Resources Soapbox: * UML Models and Programming

Topics for this issue:

Developer Events for October

Macromedia Flash Remoting MX available for Microsoft .NET

Fun with Phones

Book Review:

* Java Tools for eXtreme Programming

IDE Review:

* Dreamweaver MX (for Developers)

Open Source:

* mySQL 3.23

Grid Resources


* UML Models and Programming

Events Diary for October:

* Auckland

3-Oct Best Practice .NET

3 -Oct NZCS Extreme Programming

17-Oct NZCS Programming Good Practice

* Christchurch

1-Oct Best Practice .NET

* Wellington

2-Oct Best Practice .NET

* Overseas

mid-Oct Australian ColdFusion MX Road show

To add entries to this diary email

Macromedia Flash Remoting MX available for Microsoft .NET:

For those of you watching the antics of Macromedia in the hope that they will given us a decent paradigm for Web software development, they are broading their product availability into the .NET camp.

Macromedia Press Release

Fun with Phones:

Can you persuade your employer to start a mobile phone software project.

Sun wants you to learn how to program the Nokia 6310i with Wireless Web Services. If you have a Siemens M50 you are also in luck.

Oracle goes mobile too. If you have been wishing for the good old days of character-based mono terminals, they are coming to a phone near you.

Developing Nokia 6310i Wireless Web Services

Siemens Mobility Toolkit

Oracle (requires login)

Book Review:

* Java Tools for eXtreme Programming

Real Nerds read computer books (according to my kids) and if you learn better sitting in front of a log fire with a whisky than reading off a computer screen then this book is worth a look. It takes several open source tools that you've probably been thinking of taking a look at (ANT, JUNIT and CACTUS) and gradually weaves them into a more and more sophisticated automated 'build, test, stress and deploy' framework.

Thank you Richard Hightower and Nicholas Lesiecki. This one will be a classic.

IDE Review:

* Dreamweaver MX (for Developers)

This month we had to port a web site. It proved just the excuse we needed to try the latest development tool from Macromedia. This one is a real honey. I have always been put off by Macromedia's propensity for floating toolbars. But now they have an IDE with docking windows that have these wonderful little one-click handles that make the docking windows appear and disappear.

The split screen page designer is also a must. It shows the source and the rendered window with synchronized cursors.

Against a ColdFusion server it proved a good debugging tool and will probably be just as good against a JSP or ASP web site.

Open Source:

* mySQL 3.23

Well it is popular, fast and free but...

No views, no nested queries, no update joins, no stored procedures, no transactions (with the common db engine). A customer made me go there, honest!

If this is typical, the database vendors are safe for some time yet!

Grid Resources:

If you have to create a website where the users need to edit their data in a grid, then maybe you should look at one of the following :

MS DataGrid for .NET

Javascript Editgrid

Java AWT Grid Applet

Delphi Intranet grid

JSP DataGrid

Coldfusion Grid Tag


* UML Models and Programming

As a confirmed UML modeler, I have fairly robust opinions about the pros and cons of modeling and programming. Some of the worst fiascos I have witnessed are caused by analysis/designers working with modeling tools and traveling at a different speed and possibly in a different direction to the development team. This can end up with a change control nightmare and all out war between the designers and the developers. Early CASE tools were partially responsible for some of our biggest project disasters. I know nothing about INCIS but whenever I hear developers blaming users for changing requirements I wonder if it is really the modeling tool/programming language impedance problem.

A number of attempts have been made to tightly integrate a modeling tool with the IDE. Together/J for Java, Visual Modeller for VB, Model Maker for Delphi and Rational's XDE product are all designed to make it painless to jump from code to diagram and back to code.

Nirvana you would think for a UML junky like me. Nothing could be further from the truth.

This drags the models down to the detailed coding level. While this might be appropriate if you are try to write a multi-threaded server with a facade pattern, it seems completely unnecessary for an order entry form. It is just extra work. Furthermore, change management as a problem seems proportional to the square of the volume of things under change management. So having really detailed diagrams is actually counter productive to solving the change control problem.

I find UML modelling useful in two situations. Firstly, in capturing structural business requirements. For instance, if I was writing software for the managing the America's Cup races, I would certainly model BOAT and HEAT as classes with a state transition diagram for HEAT to capture the business processes of organizing and running a particular HEAT between two boats on a given day. The fashionable name for this is the business domain model and keeping this up to date with changing user requirements is a very good idea (and normally also comparatively easy).

The second use I make of UML diagrams is when my brain hurts. If I am trying to management clean interfaces between some classes in a complex situation, I personally seem to be able to design solutions to more complex situations with a diagram than with code. It often gives me a better perspective on the problem. Interestingly, I find this kind of diagram discardable as long as I have a reverse engineering tool. It looks at the current state of the code and draws me a diagram to which I react. I might not think of that set of classes as a diagram for another six months but when I do, it has got to reflect the very latest code changes that might have been made. Therefore for the low-level stuff, I find it more effective to reverse engineer the diagram, design and document the new changes then go back into coding.

To summarize, this is the way UML works for me:

Business Domain Model:

Class Diagrams, State Transition Diagrams, Use Case Diagrams

Model follows customer. Always UP TO DATE. Used for communication with the customer.

Program Design Diagrams:

Class Diagrams, Sequence Diagrams

Model follows code. Often DISCARDED between iterations. Used for program design for personal use or between senior and junior programmer.

This situation still leaves us with situation that the Business Domain Model is uncoupled from the code and if we can solve that one, we really have the change management problem on the run. So a reverse engineering UML diagramming tool is very useful but not sufficient to solve the requirements-to-code problem. What we also need is a business object framework (BOF) which I will describe in the next newsletter.

Join the newsletter!

Error: Please check your email address.

More about MacromediaMicrosoftNokiaOracleSiemensToolkit

Show Comments