<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Tablet PCs</title>
        <link>http://geekswithblogs.net/UlteriorMotiveLounge/category/9129.aspx</link>
        <description>Programming and using Tablet PCs.</description>
        <language>en-US</language>
        <copyright>Martin L. Shoemaker</copyright>
        <managingEditor>Martin@TheUMLGuy.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>I blame Microsoft</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/04/01/i-blame-microsoft.aspx</link>
            <description>&lt;p&gt;In a classic &lt;a target="_blank" href="http://www.Dilbert.com"&gt;Dilbert&lt;/a&gt; strip, Tina the Tech Writer is forced to write docs for code that doesn’t exist yet. Her last line: “If you call our tech support, we’ll blame Microsoft.”&lt;/p&gt;
&lt;p&gt;Works for me! I blame &lt;a target="_blank" href="http://www.Microsoft.com"&gt;Microsoft&lt;/a&gt; for why I don’t have a new Lounge today. OK, so time spent job searching is a larger factor. But still, I’d rather blame Microsoft.&lt;/p&gt;
&lt;p&gt;In particular, I blame Windows 7. Now by and large, I’m loving &lt;a target="_blank" href="http://www.microsoft.com/windows7"&gt;the Windows 7 beta&lt;/a&gt;. It’s a thousand little things I didn’t know I needed, but now I need. And it’s running amazingly well on my old Toshiba Portege M200. Soon I hope to test it on my Gateway, which has a lot more power.&lt;/p&gt;
&lt;p&gt;But there’s one area where I’ve found a bug; and it’s a critical bug for the Lounge. In fact, it’s in &lt;strong&gt;the&lt;/strong&gt; critical Lounge application: Windows Journal.&lt;/p&gt;
&lt;p&gt;I love Windows Journal. It’s simple, it’s powerful, it’s free with Windows. You grab a Tablet PC pen, and you draw. That simple, and that powerful. Simple, because it just works like a pen and paper. Powerful, because even though it doesn’t have the drawing features of a higher-end paint package like &lt;a target="_blank" href="http://www.corel.com/servlet/Satellite/ca/en/Product/1184951547051"&gt;Paint Shop Pro&lt;/a&gt;, it has two very powerful features:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;You can print documents to it. Word docs, Excel spreadsheets, Web pages, whatever: print to Journal, and then you can draw on top of the “printed” document. I use this as a presenter: I print my Powerpoint slides to Journal, and then present from those. As I present, I can hand-write notes in answer to audience questions. This is the &lt;em&gt;only&lt;/em&gt; way to present, in my opinion. (Actually, not &lt;em&gt;quite&lt;/em&gt; the only way; but that’s an announcement I’m saving until I finish some code…)&lt;/li&gt;
    &lt;li&gt;You can do a text search of your hand-written notes. So not only can you write on your document, you can search for what you wrote. Again, this is great power for a presenter. (But again, look for an announcement soon…)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So I do love Journal. I call it the Killer Tablet PC App Microsoft Doesn’t Know They Have. Journal by itself is reason enough to have a Tablet PC, but Microsoft seldom seems to mention it. (&lt;a target="_blank" href="http://search.microsoft.com/Results.aspx?qsc0=0&amp;amp;q=%22Windows+Journal%22&amp;amp;mkt=en-US&amp;amp;FORM=QBME1&amp;amp;l=1"&gt;A search for “Windows Journal” on Microsoft’s own site&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt; finds more hits for the Journal Viewer than for Journal itself; and Journal seems to have no specific page there, just a couple of “how to” articles.)&lt;/p&gt;
&lt;p&gt;And I can’t draw the Lounge without Journal. Every episode, every panel, it’s all done in Journal.&lt;/p&gt;
&lt;p&gt;And therein lies the problem: in Windows 7 beta, Journal is broken. When I open old episodes, &lt;em&gt;some&lt;/em&gt; of the contents are drawn in the wrong place. Even worse, &lt;strong&gt;some aren’t&lt;/strong&gt;. That means pieces of the episodes actually move around.&lt;/p&gt;
&lt;p&gt;As an example, here’s Episode 32 as I drew it in Journal for Windows XP, then pasted into Paint Shop Pro for cropping and converting (click pictures for larger images):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Episode%2032_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Episode 32" border="0" alt="Episode 32" width="644" height="415" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Episode%2032_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Now it’s not high art, but it all looks like I intended it to look.&lt;/p&gt;
&lt;p&gt;And here is how that page looks under Windows 7 beta Journal:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Win7JournalBug1_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Win7JournalBug1" border="0" alt="Win7JournalBug1" width="644" height="484" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Win7JournalBug1_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Notice the vertical stripe of missing Ink on the right. That’s bad. But it gets worse. Without me touching the image at all – all I did was switch to Paint Shop Pro to save the screen shot, switch to Live Writer to edit this post, and switch back – I get this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Win7JournalBug2_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Win7JournalBug2" border="0" alt="Win7JournalBug2" width="644" height="484" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Win7JournalBug2_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;I’m not sure I can describe all the things wrong with that image. Some parts of it have moved. Some parts haven’t: the panel borders are all drawn the same as the rest of the image, after all; and the nose of the Gremlin in panel 3 hasn’t moved at all. But the tail of the Gremlin &lt;em&gt;has&lt;/em&gt; moved into panel 4!&lt;/p&gt;
&lt;p&gt;Now a suggestion by &lt;a target="_blank" href="http://blogs.msdn.com/jennifer/default.aspx"&gt;Jennifer Marsman&lt;/a&gt; made me try an experiment; and her intuition is good: the Ink hasn’t actually &lt;em&gt;moved&lt;/em&gt;, it’s just &lt;em&gt;drawn in the wrong place!&lt;/em&gt; If I use the Journal selection tool and click in the image, I get this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Win7JournalBug3_2.jpg"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Win7JournalBug3" border="0" alt="Win7JournalBug3" width="644" height="484" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/IblameMicrosoft_330A/Win7JournalBug3_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Notice how &lt;em&gt;part&lt;/em&gt; of the Gremlin and passengers in panel 2 are &lt;em&gt;really&lt;/em&gt; exactly where they belong; but they’re drawn to the right of where they belong. (Why only part? I can’t guess. I don’t know the internals of Journal. May be something to do with Grouping.)&lt;/p&gt;
&lt;p&gt;Now &lt;a target="_blank" href="http://twitter.com/svicknair"&gt;Stacy Vicknair&lt;/a&gt; has asked if this bug is so bad that it stops me from drawing the Lounge? My answer is a definite &lt;em&gt;maybe&lt;/em&gt;. See, I’m busy, and I’m &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Time_Enough_For_Love"&gt;lazy&lt;/a&gt;. If I draw something well enough once, I try to copy and paste it in other places where I need it. I’ve got 32 Episodes in, plus 3 Lounge-based conference talks and a Lounge book proposal. (Oops! Did I say that?) At this point, I probably draw less than half of each Episode. The rest is paste, resize, and edit. (I even wrote LoungeWorks, a set of Ink tools that give me power features not found in Journal: rotate, mirror, and scale.) But now, if I can’t reliably see where things are, it gets much harder to draw new Episodes. And with most of my time devoted to the job search, “harder” is &lt;em&gt;not&lt;/em&gt; a feature for me right now.&lt;/p&gt;
&lt;p&gt;I’m posting this in hopes of getting the attention of someone on the Journal team at Microsoft. I &lt;em&gt;really&lt;/em&gt; want to use Windows 7, but I &lt;strong&gt;must&lt;/strong&gt; have a working Journal for the Lounge. I’m not a fan of dual-booting, especially when my M200 has a rather small drive. I’ll dual boot if I have to; but I’d be happier to help Microsoft fix this. If anyone knows anyone on the Journal team, please pass the word: I’ll be happy to share the file that shows this bug, if that will help them to fix it.&lt;/p&gt;
&lt;p&gt;I’ll also be happy to share another Journal file with an even more painful bug. Actually, I have multiple files with the same problem. They’re Web pages that I printed to Journal (XP) for later markup. If I try to open any of these in Win7 Journal, Journal hangs, and then Win7 terminates it. Worse: the recovery code “helpfully” tries to reopen that file next time I start Journal, and crashes again. Repeat, repeat, repeat, until I move the file so Journal can’t find it.&lt;/p&gt;
&lt;p&gt;Journal team, I hope this helps! Contact me if you need more info. If you can’t figure out my email, you can always try &lt;a target="_blank" href="http://www.twitter.com/umlguy"&gt;@umlguy&lt;/a&gt; on Twitter.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130652"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130652" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/130652.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/04/01/i-blame-microsoft.aspx</guid>
            <pubDate>Wed, 01 Apr 2009 22:22:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/130652.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/04/01/i-blame-microsoft.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/130652.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ulterior Motive Lounge Episode 32: Talking with Pilot</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/03/04/ulterior-motive-lounge-episode-32-talking-with-pilot.aspx</link>
            <description>&lt;p&gt;Continuing &lt;a target="_blank" href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/01/31/ulterior-motive-lounge-episode-31-the-teams-split-up.aspx"&gt;The Project that Time Forgot&lt;/a&gt;, a UML case study. (Click images for larger versions.)&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode32Talkingwith_9D73/Episode%2032_2.jpg"&gt;&lt;img title="Episode 32" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="415" alt="Episode 32" width="644" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode32Talkingwith_9D73/Episode%2032_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;On the surface, this Episode may seem almost social. &lt;a target="_blank" href="http://www.imdb.com/title/tt0088847/"&gt;Demented and sad, but social.&lt;/a&gt; But if you could join Hacker Girl, reading Geek Girl’s Tablet PC over her shoulder, you might see a different picture:&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode32Talkingwith_9D73/Interview%20with%20Pilot_4.jpg"&gt;&lt;img title="Interview with Pilot" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="484" alt="Interview with Pilot" width="449" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode32Talkingwith_9D73/Interview%20with%20Pilot_thumb_1.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;And you would also see this diagram: &lt;/p&gt;
&lt;p&gt;&lt;img title="Driver Use Cases (2nd revision)" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="674" alt="Driver Use Cases (2nd revision)" width="682" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode32Talkingwith_9D73/Driver%20Use%20Cases%20(2nd%20revision)_3.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;You saw a conversation. Geek Girl hopes that Pilot saw a conversation. But &lt;em&gt;she&lt;/em&gt; saw an interview, and a chance to capture and model requirements. Let’s review the notation here and discuss the diagram contents.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;The ellipses are the use cases that a driver performs (indicated by the arrows from Driver to the use cases). &lt;/li&gt;
    &lt;li&gt;Dependencies (dashed arrows) with the &lt;strong&gt;&amp;lt;&amp;lt;include&amp;gt;&amp;gt;&lt;/strong&gt; stereotype indicate that one use case includes another within at least one of its scenarios. So in order to Get Destination, the system must Scan GPS IDs. &lt;/li&gt;
    &lt;li&gt;The triangle-headed arrows (generalizations) indicate that one use case is a special case of another use case. So Contact Ops via GPS, Get Time from CIS, and Get Weather from CIS each has a special case that uses Voice Command; and each of those special cases is defective. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You might ask: “Why is Maintain Car in this diagram? Aren’t they modeling what the computer systems will do? Does the computer have any role in car maintenance?” And that’s a legitimate question. If the team were modeling the entire business, Maintain Car would certainly be a use case in the model; but why did Geek Girl include it in the system requirements model?&lt;/p&gt;
&lt;p&gt;The answer is two-fold:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Pilot mentioned reflashing the engines, which is a computer-driven operation. As indicated in Geek Girl’s notes, it’s not clear at this time whether the Park’s computers are involved in reflashes or not. The reflashes may be done by dedicated tools that have no connection with Park systems; but it may be that the Park maintains records about the reflashes. Just in case, Geek Girl wanted to capture this. &lt;/li&gt;
    &lt;li&gt;And building on 1: it’s always best to capture whatever a user says, even if you’re not sure it’s relevant. You can always remove it later. The analyst’s first job is to listen and capture. Analysis and filtering comes later. &lt;strong&gt;Don’t filter while you’re listening, filter later!&lt;/strong&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;But then you might ask: “Why did Geek Girl stop there? Why didn’t she include use cases like Fly Helicopter and Rebuild Diesel Ferry Engine?” The answer is that she ignored what I just said, and she filtered now. “Filter later” is a good guideline, but you do have to apply some measure of judgment. Certainly “Watch Your Language” doesn’t involve the computer system, so she knew she could ignore that. Fly Helicopter and Rebuild Diesel Ferry Engine are less clear; but there’s certainly a good reason for leaving them off &lt;em&gt;this&lt;/em&gt; diagram: it’s a diagram of &lt;em&gt;Driver&lt;/em&gt; use cases, and those aren’t Driver functions. Pilot does them, true; but when he does, he’s not acting in the Driver role. Because remember: actors are &lt;em&gt;roles&lt;/em&gt; people or things can play, not the people themselves; and one person or thing may play multiple roles.&lt;/p&gt;
&lt;p&gt;If you’re still uncomfortable with the distinction between Maintain Car and Rebuild Diesel Ferry Engine, good! Welcome to the world of requirements analysis! There are no hard and fast rules. There are no clear lines, only guidelines. You have to apply judgment; but as a general rule, err on the side of capturing more information, not less. Geek Girl captured a lot of notes on her Tablet PC, while converting the most clearly relevant ones into a diagram. After the interview, Geek Girl will find time to clean up and reorganize the diagrams, and perhaps rethink the contents.&lt;/p&gt;
&lt;p&gt;In &lt;a target="_blank" href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/09/ulterior-motive-lounge-episode-28-meet-danny-diplodocus.aspx"&gt;Episode 28&lt;/a&gt;, The UML Guy adopted a convention of indicating defects via notes on diagrams, as in this earlier diagram of Driver Use Cases:&lt;/p&gt;
&lt;p&gt;&lt;img title="Driver Use Cases Scene 7" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="474" alt="Driver Use Cases Scene 7" width="584" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode32Talkingwith_9D73/Driver%20Use%20Cases%20Scene%207_3.jpg" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Harlan_Ellison"&gt;Harlan Ellison&lt;/a&gt; once observed that a lot of dumb behavior can be traced back to the phrase, “It seemed like a good idea at the time.” Well, Geek Girl has decided that The UML Guy’s good idea at the time is a bad idea going forward. Not that the notes are a &lt;em&gt;bad&lt;/em&gt; practice: they clearly indicate the defect, and diagram readers can easily see what the defect is. If your goal is printable diagrams which stand on their own, this might be a good practice.&lt;/p&gt;
&lt;p&gt;But it has some weaknesses:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;As we find a lot more defects, the diagrams will get cluttered, and it will get harder and harder to arrange the diagrams legibly. &lt;/li&gt;
    &lt;li&gt;We have to do extra work to show the defect on additional diagrams. &lt;/li&gt;
    &lt;li&gt;Printable diagrams aren’t your goal, or shouldn’t be, in my opinion. To quote &lt;a target="_blank" href="http://www.apress.com/book/view/1590590872"&gt;myself&lt;/a&gt;: &lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;h3&gt;&lt;a name="_Toc21817975"&gt;The Model Rule&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;We saw &lt;strong&gt;The Model Rule&lt;/strong&gt; in chapter 1; but it bears repeating. To use UML effectively, you should never be simply drawing pretty pictures; you should always be editing an underlying model, using the pretty pictures as your user interface. Thus, the model should contain more information than is displayed in any one diagram; and information in one diagram should not explicitly contradict information in another diagram. Information that is found in one diagram but not in another should not be considered a contradiction. Rather, this simply indicates that the former diagram displays more detail than the latter. Details may be omitted from a given diagram to make it more comprehensible.&lt;/p&gt;
&lt;p&gt;But how do you keep these diagrams consistent with each other? How do you maintain the underlying model? This is where a good modeling tool proves its worth: a good modeling tool will maintain the model as you create and edit your diagrams. If you are not using some sort of modeling tool, this very mechanical burden will fall on you, rather than on the machine. That’s a poor division of labor: brains should do brain work and machines should do mechanical work. If you do the mechanical work, you will do it imprecisely and inefficiently, and you’ll have no time for brain work. I urge you to investigate and use one of the many UML tools available. A list of UML tools can be found in Appendix B.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
    &lt;li&gt;And building on &lt;strong&gt;The Model Rule&lt;/strong&gt;, defect notes on the diagram don’t let your model and your tool help you in managing the defects. As an example, &lt;a target="_blank" href="http://www.sparxsystems.com/"&gt;Enterprise Architect from Sparx Systems&lt;/a&gt; allows us to add detailed requirements information to each element of the model. Here’s a sample screen shot: &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title="Defect" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="505" alt="Defect" width="399" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode32Talkingwith_9D73/Defect_3.jpg" /&gt; &lt;/p&gt;
&lt;p&gt;And then you can create a requirements report that lists the defects, as in this snippet:&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0" border="3"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="500"&gt;
            &lt;h1&gt;Launch Car Information System&lt;/h1&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="144"&gt;
            &lt;p&gt;&lt;em&gt;Satus:&lt;/em&gt; Proposed&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="156"&gt;
            &lt;p&gt;&lt;em&gt;Priority:&lt;/em&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="186"&gt;
            &lt;p&gt;&lt;em&gt;Difficulty:&lt;/em&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="144"&gt;
            &lt;p&gt;&lt;em&gt;Phase: &lt;/em&gt;&lt;em&gt;1.0&lt;/em&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="156"&gt;
            &lt;p&gt;&lt;em&gt;Version: &lt;/em&gt;&lt;em&gt;1.0&lt;/em&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="186"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="478"&gt;
            &lt;p&gt;&lt;strong&gt;Defect #1:&lt;/strong&gt; Startup is delayed.&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;That’s a lot of power to give up just for the minor benefit of notes on the diagrams. (There’s a lot more power in Enterprise Architect reports than I’ve shown here; and if that’s not enough, EA is an &lt;em&gt;incredibly&lt;/em&gt; powerful automation environment. You can build add-ins for it, and also build automation clients that control your EA models. I have one in the works that lets you directly create EA models from Microsoft Word 2007 and Microsoft Office 2007. When I first started using EA, I said, “This is a &lt;strong&gt;great&lt;/strong&gt; UML tool for the price!” Today, I know better: Enterprise Architect is a great UML tool for &lt;strong&gt;any&lt;/strong&gt; price!)&lt;/p&gt;
&lt;p&gt;So in place of defect notes on the diagram, Geek Girl prefers to note the defects in the model, as above; and then use a stereotype to show that the use case has a defect. I think that’s a better practice, even if it’s a bit tool-specific. It makes it easier to add the additional use cases that Pilot described in this Episode (omitting the domain objects so we can focus on the use cases and defects). And for me, &lt;strong&gt;The Model Rule&lt;/strong&gt; is more important than printable diagrams, by a long shot.&lt;/p&gt;
&lt;p&gt;And as for the last item in Geek Girl’s notes: yes, why &lt;em&gt;is&lt;/em&gt; H.G. so hostile? That must wait for an upcoming Episode…&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129844"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129844" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/129844.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/03/04/ulterior-motive-lounge-episode-32-talking-with-pilot.aspx</guid>
            <pubDate>Wed, 04 Mar 2009 22:06:48 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/129844.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/03/04/ulterior-motive-lounge-episode-32-talking-with-pilot.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/129844.aspx</wfw:commentRss>
        </item>
        <item>
            <title>The 21st Century Cocktail Napkin presentation is now available on-line!</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/15/the-21st-century-cocktail-napkin-presentation-is-now-available-on-line.aspx</link>
            <description>&lt;div class="post"&gt;&lt;strong&gt;The 21st Century Cocktail Napkin&lt;/strong&gt; is a talk I presented to &lt;a target="_blank" href="http://www.aadnd.org/"&gt;the Ann Arbor .NET Developers group&lt;/a&gt; on June 14. It's an example of a smart cocktail napkin application built using the Tablet PC API. In a a smart cocktail napkin application, you draw shapes as part of some design you'll share with other readers; but as you draw, the Tablet PC also recognizes and understands what you draw, and creates information behind the drawing. (For an example of a smart cocktail napkin application, you can &lt;a href="http://www.tabletuml.com/"&gt;start here&lt;/a&gt;.)&lt;br /&gt;
&lt;br /&gt;
Now, thanks to &lt;a target="_blank" href="http://www.techsmith.com/camtasia.asp"&gt;Camtasia Studio&lt;/a&gt;, I have a recording of this presentation. And thanks to &lt;a target="_blank" href="http://www.youtube.com/"&gt;YouTube&lt;/a&gt;, I can now present it to you on-line:&lt;br /&gt;
&lt;br /&gt;
&lt;embed src="http://www.youtube.com/v/TgZubvggaAg" width="600" height="350" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
And you can also &lt;a href="http://www.tabletuml.com/21stCenturyCocktailNapkin.zip"&gt;download a ZIP file of the slides and the sample code&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Look for more recorded presentations soon. And if you're looking for an easy-to-use UML tool for Tablet PCs, check out &lt;a href="http://www.tabletuml.com/"&gt;Tablet UML&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127076"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127076" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127076.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/15/the-21st-century-cocktail-napkin-presentation-is-now-available-on-line.aspx</guid>
            <pubDate>Sat, 15 Nov 2008 22:18:24 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127076.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/15/the-21st-century-cocktail-napkin-presentation-is-now-available-on-line.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127076.aspx</wfw:commentRss>
        </item>
        <item>
            <title>The Ink in 60 Seconds presentation is now available on-line!</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/15/the-ink-in-60-seconds-presentation-is-now-available-on-line.aspx</link>
            <description>&lt;div class="title"&gt;&lt;strong&gt;Ink in 60 Seconds!&lt;/strong&gt; is a talk I have presented to a number of user groups (some courtesy of &lt;a href="http://ineta.org/DesktopDefault.aspx"&gt;INETA&lt;/a&gt;). It consists of a number of small little demos of Tablet PC programming, most written in 60 seconds or less.&lt;br /&gt;
&lt;br /&gt;
Now, thanks to &lt;a href="http://www.techsmith.com/camtasia.asp"&gt;Camtasia Studio&lt;/a&gt;, I have a recording of this presentation from &lt;a href="http://www.aadnd.org/"&gt;the Ann Arbor .NET Developers group&lt;/a&gt; on June 14, 2006. And thanks to &lt;a target="_blank" href="http://www.youtube.com/"&gt;YouTube&lt;/a&gt;, I can now present it to you on-line &lt;a href="http://www.youtube.com/watch?v=eNh0odkas6w"&gt;here&lt;/a&gt;. And you can also &lt;a href="http://www.tabletuml.com/InkIn60Seconds.zip"&gt;download a ZIP file of the slides and a cleaned-up version of the sample code&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
One part of the video may need explanation. Part of the fun of this talk is the deadline: &lt;em&gt;can I write that code in 60 seconds?&lt;/em&gt; And if not, I expect the audience to heckle and laugh. But just in case they need encouragement, I wrote a little tool called Egg Timer. When I launch it, it starts a 60-second clock; and if I don't stop it before the clock elapses, &lt;em&gt;it&lt;/em&gt; will heckle me. So if you hear a strange computer voice at spots in the video, it means I ran out of time.&lt;br /&gt;
&lt;br /&gt;
And for those who are curious: yes, &lt;a href="http://tabletumlnews.powerblogs.com/posts/1154498812.shtml"&gt;my car is much better now&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Look for more recorded presentations soon! And if you're looking for an easy-to-use UML tool for Tablet PCs, check out &lt;a target="_blank" href="http://tabletumlnews.powerblogs.com/archives/home.aspx"&gt;Tablet UML&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update:&lt;/strong&gt; Here's an attempt to embed the video in this post:&lt;br /&gt;
&lt;br /&gt;
&lt;embed src="http://www.youtube.com/v/eNh0odkas6w" width="600" height="350" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update:&lt;/strong&gt; Fixed the link to the ZIP file. Thank you, )&lt;a href="http://tabletumlnews.powerblogs.com/posts/1159974964.shtml#165"&gt;Stéphane Torres&lt;/a&gt;.&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127075"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127075" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127075.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/15/the-ink-in-60-seconds-presentation-is-now-available-on-line.aspx</guid>
            <pubDate>Sat, 15 Nov 2008 22:17:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127075.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/15/the-ink-in-60-seconds-presentation-is-now-available-on-line.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127075.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>