﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><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/"><channel><title>语源科技BlogJava-真理在远芳，机会在身旁</title><link>http://www.blogjava.net/tjmzgn/</link><description>my_java</description><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 22:17:43 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 22:17:43 GMT</pubDate><ttl>60</ttl><item><title>我和UML的初识</title><link>http://www.blogjava.net/tjmzgn/archive/2006/07/31/60985.html</link><dc:creator>小佟</dc:creator><author>小佟</author><pubDate>Mon, 31 Jul 2006 04:19:00 GMT</pubDate><guid>http://www.blogjava.net/tjmzgn/archive/2006/07/31/60985.html</guid><wfw:comment>http://www.blogjava.net/tjmzgn/comments/60985.html</wfw:comment><comments>http://www.blogjava.net/tjmzgn/archive/2006/07/31/60985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tjmzgn/comments/commentRss/60985.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tjmzgn/services/trackbacks/60985.html</trackback:ping><description><![CDATA[
		<p>步骤：<br />     1。识别参与者(*)---在系统之外，透过系统边界与系统进行有意义交互的任何事物.<br />                      系统外---参与者不是系统的成分.<br />        系统边界---责任边界，非物理边界.(用户和系统的接口).<br />        系统边界---直接与系统交互.(游客,旅行社,订票系统----*旅行社是边界*).<br />        有意义交互---属于目标系统的责任.<br />        任何事物---人、外系统、外部因素、时间.<br /> 参与者类:属性---姓名:String,性别:Integer,电话:String,用户名:String,密码:String,首次登陆:Boolean<br />          方法---验证用户名和密码()，取参与者信息(),取未结帐订单(),检查是否第一次登陆().<br />        地位:-----------------------                                    ------------------------------------<br />                             \---------------------------------/<br />              识别用例之前重要              开始书写用例文档以后---不重要      测试部署阶段---重要<br />          有助与识别用例-宁多勿少       涉及的参与者太多                  需要从参与者的角度考虑</p>
		<p>     2.识别用例(*)<br />       定义:参与者使用系统达到某个目标.<br />       用例要点: 可观测---用例止于系统边界(描述交互，而不是内在的系统活动)的。<br />                        结果值---用例是目标导向的.(系统的存在是因为:参与者有一些需要使用它来满足的目标)<br />   系统执行---结果值由系统生成.(不同的拥护，得到不同的结果)<br />   由参与者观测---业务语言(非技术语言),用户观点.<br />   一组用例实例---用例的粒度.<br />     注意：用例要有路径,路径要有步骤.而这一切都是"可观测"的,最常犯的错误:粒度过细.<br />     常见错误:<br />    1.把交互的某个步骤当作用例.eg：会员----&gt;输入用户名.<br />    2.把系统活动当作用例：                 建立数据库连接<br />       查询订单 ---/<br />                      传送sql语句<br />                                  暂时无法判断时，宁粗勿细<br />    3.四轮马车的错误: "系统就是数据库的增删改查"，这是常犯的错误，先关心数据库，反而<br />                      忽略了用户的目的.<br />    4.crud(增、删、改、查)掩盖业务: (我的理解:有的用例超出了本身的功能范围).<br />    -------------------------方法--------------------------------------------------<br />    5.如果CRUD不涉及复杂的交互,一个用例“管理**”即可.<br />      不管是crud,都是为了完成“管理“的目标.<br />      甚至很多种基本数据的管理都用一个用例表示.<br />    6.灵活处理CRUD: 管理员---------管理用户----《extend》--------增加用户.<br />                    也可以把包含复杂交互的路径独立出去形成用例命名时尽量不要用CRUD词汇.</p>
		<p>        最现实:业务人员提供素材，开发人员写用例文档.<br /> /*用例---用户的观点，功能---系统的观点.*/<br /> <br /> 3.书写用例文档(*)-----写:可观测的(eg:系统按照查询条件搜索零件)、体现客户利益的文字（这才是“需求”）<br />  用例模版: 用例编号，用例名，用例描述，参与者<br />    前置条件，后置条件，<br />    基本路径：1。。。。。。(核心的核心:客户最想看到、最关心的路径).<br />              2。。。。。。<br />       3。。。。。。<br />    扩展:2a.........(系统要处理意外)<br />           2a.........(参与者的选择,另一条成功路线，系统进行验证)<br />    补充说明<br />    待解决问题<br />   路径交互步骤的描述:<br />  1.只书写"可观测"的(体现客户利益的文字).<br />  2.使用主动语句.（eg:会员提交用户名和密码，系统验证用户名和密码）<br />  3.句子必须以参与者或系统做主语.（eg:参与者****,系统****）<br />  4.程序逻辑的处理.<br />   a.判断<br />   b.循环<br />  5.不要涉及界面细节.</p>
		<p>
				<br /> 4.识别用例关系:(不要滥用用例关系)<br />  用例关系:---------------------&lt;extend&gt;-------------------&gt;扩展<br />    扩展:分离复杂部分和易变部分.(o--去城里(基本用例本身是完整的)，o---上厕所(扩展用例,意外情况)，当然不上厕所也能赶路).<br />    何时使用扩展关系:<br />    a.扩展路径步骤多. b.扩展路径内部还有扩展点--扩展之扩展<br />    c.扩展路径容易变化--分离以"冻结"基用例.</p>
		<p>    ---------------------&lt;include&gt;------------------&gt;包含<br />    包含:提取公共交互,提高复用.(基本用例路径本身是不完整的(把上厕所考虑在内了，不上厕所就不完整了),包含用例)<br />         eg:o---下订单-----------《include》---------&gt;o---提供客户信息.</p>
		<p>    何时使用包含关系:<br />    a.某些交互步骤可以被多个用例复用.<br />    b.用例的交互步骤较多时，可以用Include简化.<br />    ------------------------------------------------&gt;泛化<br />    泛化:同一业务目的的不同技术实现.<br />         eg:        o--识别用户<br />                      /     \<br />     o--验证口令     o--扫描视往膜<br />    --------------除此之外，不能有别的关系----------&gt;<br />    注意:用例之间不能通讯.<br />     开发过程第0步，业务建模.<br /> 5.对用例进行排序和分包 <br />  排序原则:<br />   以下情况的用例优先级最高:<br />    a.对类图有重要影响.<br />    b.包含丰富的业务过程信息和线索.<br />    c.有开发风险、时间紧迫或功能复杂.<br />    d.涉及到重要核心技术或新技术.<br />    e.能直接产生经济效益或降低成本.<br />    f.代表本系统的核心流程.<br />  按参与者分包，按主题分包，按开发团队分包，按发布情况分包.<br />  *可以先按主题分包，主题内再按开发团队和发布情况分包.<br /> 补充需求规约：                          软件需求<br />                                  |          |        |<br />        非功能需求   功能需求   设计约束<br />                非功能需求:可用性，可靠性，性能,可支持性.<br />  设计约束：用oracle数据库平台,用PB开发.........<br />     软件必须符合ISO... 标准........<br />     本质上不是需求,只是从商业、行政、技术上的约束.<br />    下一步:<br />  需求&lt;-----&gt;用例-----&gt;面向对象分析设计、结构化分析设计、其他方法、自己的方法.----&gt;系统<br />     用例和oo<br />     1.“发明”与oo的环境.<br />     2.从外部actor的角度描述系统功能(和对象的消息类是).<br />     3.不暴露内部结构.<br />     4.oo设计的最好开始，但.....<br />     5.用例可以用在非oo的开发过程中.<br />     6.oo理论不需要懂得和使用用例.</p>
		<p>我的qq：8201726 验证：java ，愿你我共同面对所有的问题！<br />-------------------------------------类图,我的理解---------------------------------------------------------------------------------------------------</p>
		<p> 1.识别类及其属性.<br />  a.阅读需求文档,抽取对应于业务实体或事件的名词.<br />  b.将名词进行分类、抽取出合适的类.<br /> 2.识别类之间的泛化.<br /> 3.识别类之间的聚合/组合.<br /> 4.识别类之间的连接.<br />  </p>
		<p> </p>
		<p> </p>
		<p>
				<br /> </p>
<img src ="http://www.blogjava.net/tjmzgn/aggbug/60985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tjmzgn/" target="_blank">小佟</a> 2006-07-31 12:19 <a href="http://www.blogjava.net/tjmzgn/archive/2006/07/31/60985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>