资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第6 6章章 面向对象分析工作流面向对象分析工作流Osbert案例研究案例研究学习目标学习目标执行分析工作流执行分析工作流提取边界类、控制类和实体类提取边界类、控制类和实体类执行功能性建模、类建模、动态建模执行功能性建模、类建模、动态建模6.1 6.1 分析工作流分析工作流v获得对需求的更深入理解并以某种方式述需求获得对需求的更深入理解并以某种方式述需求v在统一过程中有三种类在统一过程中有三种类实体类:为长期存在的信息建模实体类:为长期存在的信息建模Account Class类,类,Painting Class类,类,Mortgage Class类类和和Investment Class类类边界类:为信息系统及其参与者之间的交互建模边界类:为信息系统及其参与者之间的交互建模Purchases Report Class类和类和Sales Report Class类类控制类:为复杂的计算和算法建模控制类:为复杂的计算和算法建模Compute Masterpiece Price Class、Compute Masterwork PriceClass和和Compute Other Painting Price Classv3种类的种类的UML表示法(构造型表示法(构造型stereotype)6.2 6.2 提取实体类提取实体类v 功能性建模:功能性建模:展示所有用例的展示所有用例的方案。(用例图)方案。(用例图)v 类建模:类建模:确定实体类及其属性、确定实体类及其属性、相互关系。(类图)相互关系。(类图)v 动态建模:动态建模:确定由每个实体类确定由每个实体类或其子类执行的操作或者对它们执或其子类执行的操作或者对它们执行的操作。(状态图)行的操作。(状态图)6.3 初始功能性建模:初始功能性建模:Osbert 案例研究案例研究vOsbert信息系统用例图信息系统用例图v方案是用例的一个实例。方案是用例的一个实例。v以以Buy a Painting为例说明:为例说明:购买到精品油画购买到精品油画卖主拒绝出价卖主拒绝出价信息系统没有查找出需要的油画信息系统没有查找出需要的油画v方案只描绘一种特殊的购买交互。方案只描绘一种特殊的购买交互。v对应于每个用例有许多方案,系统对应于每个用例有许多方案,系统分析师团队应该尽可能多的分析出分析师团队应该尽可能多的分析出正常的和异常的方案,以获得对该正常的和异常的方案,以获得对该领域、业务模型以及最重要的是对领域、业务模型以及最重要的是对用例尽可能深入的理解。用例尽可能深入的理解。v一种可能方案一种可能方案Osbert希望购买精品油画。希望购买精品油画。1. Osbert输入关于油画的描述。输入关于油画的描述。2.信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。3.信息系统把最相似的作品的拍卖价格作为底价,自拍卖之日起,在底价上逐年信息系统把最相似的作品的拍卖价格作为底价,自拍卖之日起,在底价上逐年 加价加价8.5%,以此计算最大购买价格。,以此计算最大购买价格。 Osbert提出低于最大购买价格的价格提出低于最大购买价格的价格该出价被卖主接受。该出价被卖主接受。4. Osbert输入销售信息(卖主的姓名和地址、购买价格)。输入销售信息(卖主的姓名和地址、购买价格)。其他两种方案其他两种方案Osbert希望购买精品油画。希望购买精品油画。1. Osbert输入关于油画的描述。输入关于油画的描述。2.信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。3.信息系统把最相似的作品的拍卖价格作为底价,自拍卖之日起,在底价上逐年信息系统把最相似的作品的拍卖价格作为底价,自拍卖之日起,在底价上逐年 加价加价8.5%,以此计算最大购买价格。,以此计算最大购买价格。 Osbert提出低于最大购买价格的价格提出低于最大购买价格的价格卖主拒绝卖主拒绝Osbert的出价。的出价。Osbert希望购买精品油画。希望购买精品油画。1. Osbert输入关于油画的描述。输入关于油画的描述。2.信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。3.信息系统报告没有相似的作品。信息系统报告没有相似的作品。 Osbert不会为该油画出价。不会为该油画出价。方案合并描述方案合并描述Osbert希望购买精品油画。希望购买精品油画。1. Osbert输入关于油画的描述。输入关于油画的描述。2.信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。信息系统扫描拍卖记录,以找出同一位画家最相似的作品的销售价格和年份。3.信息系统把最相似的作品的拍卖价格作为底价,自拍卖之日起,在底价上逐年信息系统把最相似的作品的拍卖价格作为底价,自拍卖之日起,在底价上逐年 加价加价8.5%,以此计算最大购买价格。,以此计算最大购买价格。 Osbert提出低于最大购买价格的价格提出低于最大购买价格的价格该出价被卖主接受。该出价被卖主接受。4. Osbert输入销售信息(卖主的姓名和地址、购买价格)。输入销售信息(卖主的姓名和地址、购买价格)。可能的替代方案可能的替代方案A.卖主拒绝卖主拒绝Osbert的出价。的出价。B.在那位画家的拍卖档案里没有相似的油画,因此在那位画家的拍卖档案里没有相似的油画,因此Osbert不会为该画出价。不会为该画出价。6.4 6.4 初始类图:初始类图:Osbert案例研究案例研究v提取实体类,确定它们的相互关系,并找出它们的属性。提取实体类,确定它们的相互关系,并找出它们的属性。v开始这一步的最佳方式通常是开始这一步的最佳方式通常是使用两阶段名词提取法。使用两阶段名词提取法。vOsertb案例:案例:v阶段阶段1 1:描述信息系统:描述信息系统 生成报告,以提高购买艺术品的决策过程的效率。生成报告,以提高购买艺术品的决策过程的效率。报告中包含关于油画的购买和销售信息,油画通常分报告中包含关于油画的购买和销售信息,油画通常分为精品、名品和其他油画。为精品、名品和其他油画。v阶段阶段2中,标识出这个段落中的名词。中,标识出这个段落中的名词。v找出实体类:找出实体类:Paint Class、Masterpiece Class、Masterwork Class和和Other Painting Class 生成生成报告报告,以提高,以提高购买艺术品购买艺术品的的决策过程决策过程的的效率效率。报告报告中包含关于中包含关于油画油画的的购买和销售信息购买和销售信息,油画油画通常分通常分为为精品、名品精品、名品和和其他油画其他油画。v初始类建模(第一次迭代)初始类建模(第一次迭代)v考虑四个实体类之间的关系(第二次迭代)考虑四个实体类之间的关系(第二次迭代)更进一步更进一步v之前的描述之前的描述v调整调整Masterwork Class与与Masterpiece Class之间的关系之间的关系2.2对于名品:对于名品: 信息系统首先把该油画看做是同一位画家的精品信息系统首先把该油画看做是同一位画家的精品来计算最大购买价格。来计算最大购买价格。初始类图的第三次迭代初始类图的第三次迭代更准确的建模(第三次迭代):更准确的建模(第三次迭代):更进一步更进一步v之前的描述之前的描述v提取提取“拍卖的油画拍卖的油画”类与类与“要购买的油画要购买的油画”类类2.1 对于精品:对于精品: 信息系统计算每一幅具有拍卖记录的油画与考虑信息系统计算每一幅具有拍卖记录的油画与考虑购买油画之间的相似性系数购买油画之间的相似性系数初始类图的第四次迭代初始类图的第四次迭代更进一步更进一步v之前的描述之前的描述v提取提取“流行度系数流行度系数”类类2.3 对于其他油画:对于其他油画: 信息系统通过公式信息系统通过公式F FA A来计算最大购买价格,其中来计算最大购买价格,其中F F是针对那位画家的一个常数(流行度系数)是针对那位画家的一个常数(流行度系数)初始类图的第五次迭代初始类图的第五次迭代添加属性添加属性包含用于启动整个信息包含用于启动整个信息系统的执行的操作系统的执行的操作显示构造型的类图显示构造型的类图6.5 6.5 初始动态模型:初始动态模型:Osbert OglesbyOsbert Oglesby案例研究案例研究v绘制状态图,反映由信息系统执行的或为其执行绘制状态图,反映由信息系统执行的或为其执行的所有操作。的所有操作。v状态:信息系统的属性的一组特殊值。状态:信息系统的属性的一组特殊值。 选择一个选项就选择一个选项就是事件。是事件。 事件引起系统从事件引起系统从一种状态转移到另一种状态转移到另一种状态。一种状态。初始状态初始状态另一种状态另一种状态Osbert系统的初始状态图系统的初始状态图初始状态初始状态结束状态结束状态圆角矩形表示状态圆角矩形表示状态状态中可以执行的操作状态中可以执行的操作Osbert信息信息系统中的初始主菜单系统中的初始主菜单 当发生某种事件时,信息系统会从一种状态转移当发生某种事件时,信息系统会从一种状态转移到另一种状态。在每种状态中,到另一种状态。在每种状态中,Osbert会执行那种状态会执行那种状态支持的操作之一。支持的操作之一。6.6 6.6 提取边界类提取边界类v边界类通常容易提取。边界类通常容易提取。v一般来说,一般来说,每个输入屏幕、输出屏幕和打印的报每个输入屏幕、输出屏幕和打印的报告告都是通过边界类来建模。都是通过边界类来建模。vOsbert Oglesby案例:案例:所有用例使用一个屏幕:所有用例使用一个屏幕:购买油画购买油画销售油画销售油画打印报告打印报告更新流行度系数更新流行度系数建立一个屏幕类:建立一个屏幕类:User Interface Class用户界面屏幕用户界面屏幕图形界面和文本界面图形界面和文本界面信息系统的初始边界类信息系统的初始边界类v信息系统中产生的报告信息系统中产生的报告购买报告购买报告销售报告销售报告将来的趋势报告将来的趋势报告v每种报告的内容不同,所以通过单独的边界类每种报告的内容不同,所以通过单独的边界类来建模。来建模。v由此产生由此产生4个相应的初始边界类:个相应的初始边界类:6.7 6.7 提取控制类提取控制类v一般来说,每种重要的计算都是通过控制类来一般来说,每种重要的计算都是通过控制类来建模的。建模的。vOsbert Oglesby案例:案例:有四类计算:有四类计算:确定确定Osbert 应该为精品、名品或其他油画提出的应该为精品、名品或其他油画提出的最大价格以及确定艺术品购买中是否有新趋势最大价格以及确定艺术品购买中是否有新趋势产生四个初始控制类:产生四个初始控制类:6.8 6.8 改进用例改进用例v对用例进行细化对用例进行细化Buy a Painting用例细化用例细化Buy a MasterpieceBuy a MasterworkBuy other paintingProduce a Report用例细化用例细化Produce a Purchase ReportProduce a Sales ReportProduce a Future Trends ReportOsbert Oglesby用例图的第三次迭代用例图的第三次迭代用例细化后的改变用例细化后的改变v用例细化后,只需改变原来用例的描述。把每用例细化后,只需改变原来用例的描述。把每个用例进行单独的描述。个用例进行单独的描述。v如:如:Buy a Masterpiece用例图用例图Buy a Masterpiece用例描述用例描述6.9 6.9 用例实现用例实现v用例实现用例实现扩展和细化用例的过程。扩展和细化用例的过程。v使用的使用的UML建模工具:交互图(顺序图或协作图)建模工具:交互图(顺序图或协作图)6.9.1 Buy a Masterpiece用例用例显示了实现用例的显示了实现用例的类及类之间的关系类及类之间的关系6.8 6.8 改进用例改进用例v购买精品的一种可能方案购买精品的一种可能方案v方案是用例的一个可能的实例。用例为参与者与信息系统之方案是用例的一个可能的实例。用例为参与者与信息系统之间的所有交互的集建模。每个交互都是用例的一个方案。间的所有交互的集建模。每个交互都是用例的一个方案。6.8 6.8 改进用例改进用例v工作中的信息系统使用的是对象,而不是类。工作中的信息系统使用的是对象,而不是类。例如:特定的精品不能通过例如:特定的精品不能通过Masterpiece Class来来表示,但可以通过一个对象即表示,但可以通过一个对象即Masterpiece Class的一个特定的实例来表示。通过的一个特定的实例来表示。通过: Masterpiece Class来来表示这样一个对象。表示这样一个对象。v类图只显示用例中的类及其关系,既没有显示对象类图只显示用例中的类及其关系,既没有显示对象也没有显示从一个对象发送到另一个对象的消息的也没有显示从一个对象发送到另一个对象的消息的序列。序列。协作图协作图v协作图:显示对象以及消息,消息带有它们在特定的方协作图:显示对象以及消息,消息带有它们在特定的方案中发送顺序的编号。案中发送顺序的编号。v购买精品的一种方案实现的协作图:购买精品的一种方案实现的协作图:v相应地需要一份关于协作图的书面描述,来说相应地需要一份关于协作图的书面描述,来说明事件流程。明事件流程。vBuy a Masterpiece 方案实现的协作图事件流:方案实现的协作图事件流:顺序图顺序图v顺序图:格式上明确地显示消息流动和顺序。顺序图:格式上明确地显示消息流动和顺序。v购买精品的一种方案实现的顺序图:购买精品的一种方案实现的顺序图:说明说明v协作图与顺序图的比较:协作图与顺序图的比较:当信息的传送是关注的焦点时,顺序图要优于协作图;当信息的传送是关注的焦点时,顺序图要优于协作图;当关注类时,协作图通常比等价的顺序图更有用。当关注类时,协作图通常比等价的顺序图更有用。v在用例实现时,我们可以选择用例图、类图、协作在用例实现时,我们可以选择用例图、类图、协作图及其事件流、顺序图等表示。这些图从不同角度图及其事件流、顺序图等表示。这些图从不同角度描述了系统的活动,有助于系统分析员充分地了解描述了系统的活动,有助于系统分析员充分地了解并确保分析工作流的正确。并确保分析工作流的正确。6.9.2 Buy a Masterwork用例用例v类图:类图: Buy a Masterwork用例用例v购买名品的一种可能方案:购买名品的一种可能方案:Buy a Masterwork用例用例v以上方案的协作图:以上方案的协作图:协作图的事件流协作图的事件流方案实现的顺序图方案实现的顺序图6.9.3 Buy Other Painting用例用例v类图:类图:目标系统主菜单的第二次迭代目标系统主菜单的第二次迭代v文本界面与图形界面文本界面与图形界面6.9.4 6.9.4 余下的余下的5 5个用例个用例vSell a Painting用例的类图用例的类图Produce a Purchases Report用例用例v类图类图Produce a Sales Report用例用例v文本界面与图形界面文本界面与图形界面Produce a Future Trend Report用例用例v类图类图Update a Fashionability Coefficient用例用例v类图类图6.10 增加类图增加类图v实体类、边界类和控实体类、边界类和控制类的结合制类的结合类图的第六次迭代类图的第六次迭代总结总结v在分析工作流中,提取系统中的类,并用类来描在分析工作流中,提取系统中的类,并用类来描述用例。述用例。提取实体类、边界类和控制类提取实体类、边界类和控制类v利用提取出的类来细化、实现用例。利用提取出的类来细化、实现用例。类图类图显示类及类间的关系显示类及类间的关系协作图协作图显示类、类间关系以及消息的传递显示类、类间关系以及消息的传递顺序图顺序图显示对象以及对象间消息的传递顺序显示对象以及对象间消息的传递顺序v通过通过UML建模来不断细化用例,达到对系统深建模来不断细化用例,达到对系统深入认识理解的目的。入认识理解的目的。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号