⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oobject102001.htm

📁 UML基础(好)
💻 HTM
📖 第 1 页 / 共 3 页
字号:
            different albums on the Billboard 200 -- i.e., we see no reference 
            to a use case called Listen to Songs from Billboard 200. This 
            absence is not a trivial matter. With clear and simple use-case 
            descriptions provided on such a diagram, a project sponsor can 
            easily see if needed functionality is present or not present in the 
            system.</font></p>
            <h3><font color="#000000">Class diagram</font></h3>
            <p><font color="#000000">The class diagram shows how the different 
            entities (people, things, and data) relate to each other; in other 
            words, it shows the static structures of the system. A class diagram 
            can be used to display logical classes, which are typically the 
            kinds of things the business people in an organization talk about -- 
            rock bands, CDs, radio play; or loans, home mortgages, car loans, 
            and interest rates. Class diagrams can also be used to show 
            implementation classes, which are the things that programmers 
            typically deal with. An implementation class diagram will probably 
            show some of the same classes as the logical classes diagram.The 
            implementation class diagram won't be drawn with the same 
            attributes, however, because it will most likely have references to 
            things like Vectors and HashMaps.<br>
            <br>
            A class is depicted on the class diagram as a rectangle with three 
            horizontal sections, as shown in Figure 2. The upper section shows 
            the class's name; the middle section contains the class's 
            attributes; and the lower section contains the class's operations 
            (or &quot;methods&quot;).<br>
            </font></p>
            <p align="center"><font color="#000000"><img height="90" alt="Figure 2: Sample class object in a class diagram" src="bell_fig2.gif.htm" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig2.gif" width="150"></font></p>
            <h5 align="center"><font color="#000000">Figure 2: Sample class 
            object in a class diagram</font></h5>
            <p><font color="#000000">In my experience, almost every developer 
            knows what this diagram is, yet I find that most programmers draw 
            the relationship lines incorrectly. For a class diagram like the one 
            in Figure 3,you should draw the inheritance relationship<a href="#footnotes"><sup>1</sup></a> 
            using a line with an arrowhead at the top pointing to the super 
            class, and the arrowhead should a completed triangle. An association 
            relationship should be a solid line if both classes are aware of 
            each other and a line with an open arrowhead if the association is 
            known by only one of the classes.</font></p>
            <p align="center"><a href="javascript:if(confirm('http://www.therationaledge.com/images/jun_03/bell_fig3.gif  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.therationaledge.com/images/jun_03/bell_fig3.gif'" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig3.gif"><font color="#000000"><img height="224" alt="Figure 3: A complete class diagram, including the class object shown in Figure 2" src="bell_fig3s.gif.htm" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig3s.gif" width="540" border="0"></font></a></p>
            <h5 align="center"><font color="#000000">Figure 3: A complete class 
            diagram,<br>
            including the class object shown in Figure 2<br>
            <a href="javascript:if(confirm('http://www.therationaledge.com/images/jun_03/bell_fig3.gif  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.therationaledge.com/images/jun_03/bell_fig3.gif'" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig3.gif">Click 
            to enlarge</a></font></h5>
            <p><font color="#000000">In Figure 3, we see both the inheritance 
            relationship and two association relationships. The CDSalesReport 
            class inherits from the Report class. A CDSalesReport is associated 
            with one CD, but the CD class doesn't know anything about the 
            CDSalesReport class. The CD and the Band classes both know about 
            each other, and both classes can be associated to one or more of 
            each other.</font></p>
            <p><font color="#000000">A class diagram can incorporate many more 
            concepts, which we will cover later in this article series.</font></p>
            <h3><font color="#000000">Sequence diagram</font></h3>
            <p><font color="#000000">Sequence diagrams show a detailed flow for 
            a specific use case or even just part of a specific use case. They 
            are almost self explanatory; they show the calls between the 
            different objects in their sequence and can show, at a detailed 
            level, different calls to different objects.</font></p>
            <p><font color="#000000">A sequence diagram has two dimensions: The 
            vertical dimension shows the sequence of messages/calls in the time 
            order that they occur; the horizontal dimension shows the object 
            instances to which the messages are sent.</font></p>
            <p><font color="#000000">A sequence diagram is very simple to draw. 
            Across the top of your diagram, identify the class instances 
            (objects) by putting each class instance inside a box (see Figure 
            4). In the box, put the class instance name and class name separated 
            by a space/colon/space &quot; : &quot; (e.g., myReportGenerator : 
            ReportGenerator). If a class instance sends a message to another 
            class instance, draw a line with an open arrowhead pointing to the 
            receiving class instance; place the name of the message/method above 
            the line. Optionally, for important messages, you can draw a dotted 
            line with an arrowhead pointing back to the originating class 
            instance; label the return value above the dotted line. Personally, 
            I always like to include the return value lines because I find the 
            extra details make it easier to read.</font></p>
            <p><font color="#000000">Reading a sequence diagram is very simple. 
            Start at the top left corner with the &quot;driver&quot; class 
            instance that starts the sequence. Then follow each message down the 
            diagram. Remember: Even though the example sequence diagram in 
            Figure 4 shows a return message for each sent message, this is 
            optional.<br>
            </font></p>
            <p align="center"><a href="javascript:if(confirm('http://www.therationaledge.com/images/jun_03/bell_fig4.gif  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.therationaledge.com/images/jun_03/bell_fig4.gif'" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig4.gif"><font color="#000000"><img alt="Figure 4: A sample sequence diagram" src="bell_fig4as.gif.htm" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig4as.gif" border="0"></font></a></p>
            <div align="center">
            </div>
            <h5 align="center"><font color="#000000">Figure 4: A sample sequence 
            diagram<br>
            <a href="javascript:if(confirm('http://www.therationaledge.com/images/jun_03/bell_fig4.gif  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.therationaledge.com/images/jun_03/bell_fig4.gif'" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig4.gif">Click 
            to enlarge</a></font></h5>
            <p> </p>
            <p><font color="#000000">By reading our sample sequence diagram in 
            Figure 4, you can see how to create a CD Sales Report. The aServlet 
            object is our example driver. aServlet sends a message to the 
            ReportGenerator class instance named gen. The message is labeled 
            generateCDSalesReport, which means that the ReportGenerator object 
            implements this message handler. On closer inspection, the 
            generateCDSalesReport message label has cdId in parentheses, which 
            means that aServlet is passing a variable named cdId with the 
            message. When gen instance receives a generateCDSalesReport message, 
            it then makes subsequent calls to the CDSalesReport class, and an 
            actual instance of a CDSalesReport called aCDReport gets returned. 
            The gen instance then makes calls to the returned aCDReport 
            instance, passing it parameters on each message call. At the end of 
            the sequence, the gen instance returns aCDReport to its caller 
            aServlet.</font></p>
            <p><font color="#000000">Please note: The sequence diagram in Figure 
            4 is arguably too detailed for a typical sequence diagram. However, 
            I believe it is simple enough to understand, and it shows how nested 
            calls are drawn. Also, with junior developers, sometimes it is 
            necessary to break down sequences to this explicit level to help 
            them understand what they are supposed to do.</font></p>
            <h3><font color="#000000">Statechart diagram</font></h3>
            <p><font color="#000000">The statechart diagram models the different 
            states that a class can be in and how that class transitions from 
            state to state. It can be argued that every class has a state, but 
            that every class shouldn't have a statechart diagram. Only classes 
            with &quot;interesting&quot; states -- that is, classes with three 
            or more potential states during system activity -- should be 
            modeled.</font></p>
            <p><font color="#000000">As shown in Figure 5, the notation set of 
            the statechart diagram has five basic elements: the initial starting 
            point, which is drawn using a solid circle; a transition between 
            states, which is drawn using a line with an open arrowhead; a state, 
            which is drawn using a rectangle with rounded corners; a decision 
            point, which is drawn as an open circle; and one or more termination 
            points, which are drawn using a circle with a solid circle inside 
            it. To draw a statechart diagram, begin with a starting point and a 
            transition line pointing to the initial state of the class. Draw the 
            states themselves anywhere on the diagram, and then simply connect 
            them using the state transition lines.</font></p>
            <p><font color="#000000">&nbsp;</font></p>
            <div align="center">
              <a href="javascript:if(confirm('http://www.therationaledge.com/images/jun_03/bell_fig5.gif  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.therationaledge.com/images/jun_03/bell_fig5.gif'" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig5.gif"><font color="#000000"><img height="286" alt="Figure 5: Statechart diagram showing the various states " src="bell_fig5s.gif.htm" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig5s.gif" width="540" border="0"></font></a>
            </div>
            <h5 align="center"><font color="#000000">Figure 5: Statechart 
            diagram showing the various states<br>
            that classes pass through in a functioning system<br>
            <a href="javascript:if(confirm('http://www.therationaledge.com/images/jun_03/bell_fig5.gif  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.therationaledge.com/images/jun_03/bell_fig5.gif'" tppabs="http://www.therationaledge.com/images/jun_03/bell_fig5.gif">Click 
            to enlarge</a></font></h5>
            <p><font color="#000000">The example statechart diagram in Figure 5 
            shows some of the potential information they can communicate. For 
            instance, you can tell that loan processing begins in the Loan 
            Application state. When the pre-approval process is done, depending 
            on the outcome, you move to either the Loan Pre-approved state or 
            the Loan Rejected state. This decision, which is made during the 
            transition process, is shown with a decision point -- the empty 
            circle in the transition line. By looking at the example, a person 
            can tell that a loan cannot go from the Loan Pre-Approved state to 
            the Loan in Maintenance state without going through the Loan Closing 
            state. Also, by looking at our example diagram, a person can tell 
            that all loans will end in either the Loan Rejected state or the 
            Loan in Maintenance state.</font></p>
            <h3><font color="#000000">Activity diagram</font></h3>
            <p><font color="#000000">Activity diagrams show the procedural flow 
            of control between two or more class objects while processing an 
            activity. Activity diagrams can be used to model higher-level 
            business process at the business unit level, or to model low-level 
            internal class actions. In my experience, activity diagrams are best 
            used to model higher-level processes, such as how the company is 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -