Appendix A: More Development Tools
In This Appendix
Investigating UML design tools
Introducing JFormDesigner
Examining another Java IDE
I discuss Xcode and several other development tools in this book. Most of the applications reviewed are free (as in food). Some are open source. In this book, I definitely shy away from commercial development tools.
Some commercial tools for Java development are worth a special mention. I have chosen the following tools for mention because of their utility and popularity.
Oh, and they work great on OS X, too!
Exploring Design Tools
Two types of people create computer programs: programmers and developers.
Programmers sit down at a computer and pound out code until something is finished. Programs written this way usually work but are filled with spaghetti code and poor or no modularity. Often, adding desired features to the resulting programs gets harder and harder until finally the code base is thrown away and the process starts over from scratch.
Developers design first and then write clean modular code. It takes longer at the beginning to design and write good code. The plus side is that with proper planning and refactoring, the code base lasts without complete rewrites. Also, adding features to well-designed programs is much easier. In the long run, developers cost less than programmers.
Many developers use the Unified Modeling Language (UML) for designing applications. UML is a design language that expresses itself as diagrams. Diagram types include class diagrams, sequence diagrams, use case diagrams, activity diagrams, and many more.
While full round-trip design and development is possible with many UML tools, most developers use UML only to visualize difficult tasks or complex concepts. You can create UML diagrams as detailed or sparse as needed.
There are several UML design tools for Java code. Two favorites that run well on OS X are MagicDraw and Poseidon for UML. I discuss both in this appendix.
Examining MagicDraw
MagicDraw, shown in Figure A.1, is a UML-based software architecture modeling tool. As is inherently the case with UML tools, it works for business process modeling and general process modeling also. MagicDraw is owned by No Magic, Inc. No Magic's Web site is:
http://www.magicdraw.com
Figure A.1
MagicDraw
MagicDraw is well organized with icons for all commonly used diagram types across the top of the main window. Common components of diagrams are arranged just to the left of the main diagram window. All diagrams, classes, and packages arranged in a project tree also are visible during design.
Further detailed properties are available for manipulation simply by double-clicking elements in the main diagram display. The properties dialog box, shown in Figure A.2, allows access to a great number of settings by means of a navigation tree. Attributes, operations, relations, documentation, and much more are available for each diagram element through the properties dialog box.
Figure A.2
MagicDraw properties dialog box for a class named Control
MagicDraw comes in several editions targeting everyone from open-source and student developers with the community edition to high-end professional software architects. MagicDraw Reader is a nice addition, allowing free reading and previewing of MagicDraw diagrams (for instance, by your clients).
Investigating Poseidon for UML
MagicDraw is not the only software modeling tool available on OS X. Poseidon for UML by Gentleware AG, shown in Figure A.3, is another wonderful UML diagramming tool for OS X. Their Web site is:
http://www.gentleware.com
Figure A.3
Poseidon for UML
Poseidon for UML features include Java code generation and reverse engineering for full round-trip design and development. It supports UML documentation creation, as shown in Figure A.4, in HTML or Word. Also, Poseidon for UML allows class diagrams to be automatically arranged onscreen.
Figure A.4
UMLdoc generation dialog box
Poseidon for UML comes in several editions, including Community Edition, Standard Edition, and Professional Edition.
Exploring Additional Java Tools
I want to mention two additional tools for Java development: JFormDesigner and IntelliJ IDEA. JFormDesigner is a user interface design tool targeting Swing interfaces. IntelliJ IDEA is a commercial IDE that is very popular among Java developers. Of course, both applications work well on OS X.
Reviewing JFormDesigner
I briefly mentioned JFormDesigner in Chapter 1. JFormDesigner, shown in Figure A.5, is a favorite in the world of Java GUI development. JFormDesigner is maintained by FormDev Software GmbH. Their Web site is:
http://www.jformdesigner.com
Figure A.5
JFormDesigner
JFormDesigner integrates nicely with OS X, using the top menu bar and command keys as you would expect them. It is so easy to use that you probably won't need to look at the documentation before creating your first layout. Don't be fooled by the excellent interface; JFormDesigner has lots of advanced GUI design features hidden inside.
Design GUIs with JFormDesigner by dragging and dropping widgets from a component palette. The component palette supports customization, even the addition of new beans, shown in Figure A.6. Anytime during design of a GUI, you can test it with the convenient play icon at the top of the window.
Figure A.6
Add bean dialog box
JFormDesigner handles creation and management of events for GUI components. Properties of selected component are in panel to the right of the design panel, for easy access. Assign widget custom code generation for creation or initialization by accessing one of the custom code dialog boxes, as shown in Figure A.7.
Figure A.7
Custom widget code creation dialog box
JFormDesigner is an extremely powerful Swing layout tool that still manages ease of use.
Examining IntelliJ IDEA
IntelliJ IDEA is a popular alternative to the common free Java-friendly IDEs. IntelliJ IDEA, shown in Figure A.8, is maintained by JetBrains s.r.o. Their Web address is:
http://www.jetbrains.com
Figure A.8
Display of IntelliJ Project XML data in the Project view of IntelliJ IDEA