Case Study (appendix A and throughout)
The book uses a case study example throughout, based on a garage that sells and services cars. The case study focuses on the car servicing function.
Appendix A describes how to install the CarServ case study software.
- If you haven't yet got Together installed, then download it from www.togethersoft.com. The download process includes obtaining a license (at the time of writing, free of charge for evaluation or for educational establishments).
- The case study uses the Cloudscape RDBMS as its persistent data store. Cloudscape is bundled as part of the J2EE Reference Implementation application server, in turn bundled with Together. Appendix A describes setting up the database using Cloudview, a graphical user interface client to Cloudscape. In order to run Cloudview, you will need to download cloudview40.zip and jh.jar. You can obtain these directly from www.cloudscape.com/support/downloads.jsp.
- Appendix A describes edits to setenv.bat batch file, part of the J2EE RI. If you want to save time, download the edited version.
- Appendix A also asks you to create a cview.bat batch file to allow Cloudview to be started easily. Again, if you wish you can download it here.
- Finally, carserv.zip is the source code for the case study itself.
When you have completed the instructions in appendix A, you should be ready to use CarServ, as described in chapter 2. However, if you wish, you can save some time by not even bothering to run Cloudview to build the database. Instead, download CarServDB.zip and extract into the cloudscape directory of your J2EE installation. For example, assuming you used the bundled version of J2EE that comes with Together, extract the zip into $TG_HOME\bundled\j2ee\cloudscape. You'll know you have it right if you end up with j2ee\cloudscape\CarServDB\seg0 directory, a j2ee\cloudscape\CarServDB\log directory and j2ee\cloudscape\CarServDB\tmp directory, with varying numbers of files.
Chapter 7 revisits the CarServ case study and looks at how enhancements can be introduced as part of the micro-design process. The zip archive carserv-address.zip contains the four files modified in this enhancement. Extract to your myprojects/src directory. |
.config files (appendix C)
Appendix C lists the .config customizations that appear throughout the book:
- zzzBSwF.beanProperties.config annotates JavaBean properties with {r}, {w} or {rw} to indicate that the property is read-only, write-only or read/write. Why you might want to do this is described in chapter 3 of the book.
- zzzBSwF.patternInstances.config allows designs to be described in terms of pattern instances, as described in chapter 6.
- zzzBSwF.coloredNotes.config makes notes colored. Easy enough.
- zzzCatalysis.beforeAfter.config adds support for a technique of the Catalysis method for describing pre- and post-states for an interaction diagrammatically.
- zzzBSwF.dependencyLinks.config is useful for highlighting both explicitly drawn and implicitly inferred dependency links between packages. Why this is important is described in chapter 8.
Appendix A also describes the zzzBSwF.personalPreferences.config config whose intent is to separate out one's own data and customisation (projects, templates, .configs and so on) from Together's own files. This then makes it easier to upgrade Together.
You can find many more .config files on www.togethercommunity.com. Along with templates, they are one of the most popular contributions from Together users. |
Templates (appendix D)
Templates can be used to quickly create classes, associations or members. Once installed, they are invoked through the context-sensitive "apply pattern" dialog within Together.
Appendix D lists a number of templates for associations, using the Collections API. To install them, download BSwF.templates.zip and extract into your Together's home directory; they will extract into the templates subdirectory. The default template for classes is also modified, so that java.util.* is imported by default.
As for .config files, you will find many more templates on www.togethercommunity.com. |
InspectorSupport framework (appendix E)
Appendix E describes a framework for developing property inspectors using Together's open API. This is a more powerful technique than using either the Inspector Builder wizard, or even editing .config files. Using this framework makes the implementation effort comparable.
Appendix E describes in detail these three approaches, and demonstrates how to use the InspectorSupport framework. Download inspectorsupport.zip for the framework. An example custom inspector is also provided; download custominspector.zip. |
Audits (chapter 6)
Chapter 6 discusses quality (the "Better" portion of "Better Software Faster") and as part of that discussion looks at how to write audits using Together's audit framework.
The Hungarian audit example demonstrates how to implement an audit to check that variables have been named according to the Hungarian naming convention. Download hungarian.zip to try out this example audit. |
RwiSupport framework (appendix F)
Together's open API allows every element within its repository to be accessed and modified. While the audit and metrics facility enables source code to be iterated over, there is no facility to iterate over non-code elements (state diagrams, use cases etc.). The RwiSupport framework provides this facility.
Appendix D describes the RwiSupport framework and some simple demo modules. Chapter 6 describes two modules that utilize the framework. The classlinks module automatically adds hyperlinks from every class to the class diagrams in which it appears, while the patternInstance module applies the <<patternInstance>> stereotype to objects that describe the design in terms of pattern instances. In chapter 8, the packageDependencies module identifies implicit dependencies between packages that are at variance with dependencies explicitly drawn by the system's architect.
To use the RwiSupport framework for these modules or your own, download rwisupport.zip. |
Modules
The book describes a number of custom modules that extend the functionality of Together. These are all based on the RwiSupport framework discussed in appendix F.
- The classLinks module automatically adds hyperlinks from every class to the class diagrams in which it appears. You'll find this further described in chapter 6, as part of the general discussion on documentation. Download classlinks.zip to try out this module.
- the patternInstance module applies applies the <<patternInstance>> stereotype to objects that describe the design in terms of pattern instances. This idea is very similar to the UML concept of collaborations. Again, we describe this further in chapter 6, as part of the discussion on good ways to document a system. Download patternInstance.zip.
- the packageDependencies module identifies implicit dependencies between packages that are at variance with dependencies explicitly drawn by the system's architect. This module is described in chapter 8 as part of the general discussion on managing dependencies. Download packageDependencies.zip.
|
|
|