软件工程2-8.建模示例.ppt
《软件工程2-8.建模示例.ppt》由会员分享,可在线阅读,更多相关《软件工程2-8.建模示例.ppt(160页珍藏版)》请在三一办公上搜索。
1、软件工程,1,软件工程第五章 面向对象分析与设计,5.1 需求获取5.2 面向对象分析5.3 面向对象设计5.4 系统设计 5.5 对象设计,软件工程,2,5.1 需求获取,需求获取的目标是确定用户“需要”什么样的软件产品,就是说,新的软件必须能够做什么。没有专业的系统分析人员,用户很难了解到需要开发什么相关信息和功能;另一方面,没有与用户的交流,系统分析人员也很难弄清客户真正需要什么。发现用户需求的过程称为需求获取。一旦提出了最初的需求,进一步推敲、细化和扩充的过程称为分析。,软件工程,3,需求获取的第一步是理解应用领域,即目标软件的应用环境。如银行、电信公司、书店等。一旦系统分析人员对该领
2、域有了充分了解,就可以建立一个业务模型,描述用户的业务过程,确定用户的初始需求。然后通过迭代,更深入了解应用领域,回过头来推敲业务模型。这种迭代过程直到双方对需求的理解达到共识。需求获取的结果是导出用户可理解的系统规格说明。,软件工程,4,开发用户需求的典型过程,软件工程,5,与用户交互,1)需求的来源不同类型应用能从人员处获取需求的比例:,软件工程,6,所谓限制,是指受客观物理规律的限制。如导弹制导系统更多地受物理运动定律的限制,而非人的决策。视频游戏的大部分需求依赖人,因为它是一个相像出来的产品。应用受到的限制越少,能从人们那里获得的需求比例越大。2)识别利益相关者(stakeholder
3、)对项目承担风险和享有利益的人即为利益相关者。他们是应用的“客户”。如公司高层、项目经理、最终用户、系统开发人员等。,软件工程,7,不同利益相关者之间的利益冲突会导致需求不一致。如果需求冲突不能调和,项目就会陷入困境,最后往往会被取消。即使所有利益相关者的需求一致,也可能由于实现代价高昂,需求不能得到完全满足。3)了解客户的需求一般客户希望得到一个产品,他们需要系统开发人员帮助,明确自己的需要。例如,有一个客户愿望框架:“Encounter是一个角色扮演游戏,它能模拟被扮演人物的全部或部分活动,应对人们具有相当吸引力。”,软件工程,8,完整的客户要求应当记录在需求文档的“概述”部分。但需求中还
4、有一些问题需要由系统分析人员与客户商量,以明确这些需求。例如游戏是否只允许玩家扮演一个角色还是可以同时控制多个人物?当两个人相遇时会发生什么事情?游戏是否可以联网对战等。4)访谈和文档记录大部分需求获取是人与人沟通的活动,这些活动经过精心组织,以准确获得最好的效果。准备和访谈客户的过程如下:,软件工程,9,访谈之前列出访谈的“客户”对象,并划分客户优先级最有可能决定项目成败的人安排访谈日程,设定开始和结束时间系统开发人员至少有两人参加访谈准备录音设备访谈中注意倾听不要处于被动状态:启发和鼓励理解客户的需要并探索要求采用用例?或数据流图?状态图?,软件工程,10,记录全部访谈内容安排补充会议访谈
5、之后根据标准模版撰写软件需求规格说明(SRS),打客户需求草稿通过电子邮件征求客户意见对于不同类型的应用,用例方法是一种获取和表达需求的有效方法。某些需求需要通过数据流图或状态图与用户沟通。,软件工程,11,5.1.2 描述客户需求,需求可以看成是应用与应用的外部代理(如用户)之间的交互。可利用用例作为表达工具。用例描述了系统外的参与者(Actor)与应用之间的交互情况。主要注重用户对系统的看法。描述客户需求的过程如下:1)标识参与者 标识目标系统将支持的不同类型的用户,可以是人、事件或其他系统。2)标识场景 用场景描述目标系统典型功能的活动细节,并与用户沟通,加深开发人员对应用领域的理解。,
6、软件工程,12,3)标识用例 当双方确定了一组场景后,开发人员从该场景抽象出一组用例,描述所有可能的情况。用例表达了系统的范围。4)求精用例 细化每一个用例。引入带有出错处理或带有异常处理的用例,描述系统的行为,保证需求的描述是完全的。5)标识用例之间的关系 描述用例之间的依赖关系,提取相同功能,建立用例模型。6)标识非功能需求 包括系统性能上的约束、文档、使用资源、安全性和质量等需求。,软件工程,13,需求获取期间,开发人员需要访问一些不同的信息资源:客户提供的与应用领域相关的文档和手册。将被目标系统替代的遗留系统的技术文档。最终用户和客户本人。以“图书管理系统”为例,首先标识参与者:Lib
7、rarian 图书管理员:创建、修改、删除借阅者信息;添加、编辑、删除馆藏图书信息;添加、编辑、删除流通图书信息。Borrower 借阅者:借阅、预约、归还流通图书,以及取消图书预约。,软件工程,14,流通图书(Book)是指某种馆藏图书(Title)的某一流通中的复本。例如“数学分析教程第二册”的 5 本馆藏复本中的第 3 本。识别用例:BorrowBook:借阅流通图书ReturnBook:返还流通图书RecerveTitle:预约某种馆藏图书CancelReservation:取消预约MaintainBorrowerInfo:维护借阅者信息,包括创建、修改、取消借阅者账户Maintain
8、TitleInfo:维护馆藏图书信息,包,软件工程,15,括添加、修改、删除馆藏图书信息MaintainBookInfo:维护流通图书信息,包括添加、修改、删除流通图书信息Login:登录识别参与者与用例之间的关系(场景)Borrower执行BorrowBook、ReturnBook、ReserveTitle、CancelReservation等用例。Borrower是通过Librarian完成上述用例的工作。则Borrower与Librarian存在依赖关系。Librarian还与MaintainBorrowerInfo、Main-tainTitleInfo、MaintainBookInfo
9、交互。,软件工程,16,Librarian还需要与用例Login交互。画出用例图,软件工程,17,用例BorrowBook的规格说明1.1 前置条件:在此用例开始之前,Librarian必须登录到系统中。,Librarian,Login,MaintainTitleInfo,MaintainBookInfo,MaintainBorrowerInfo,软件工程,18,1.2 后置条件:如果此用例执行成功,在系统中建立并存储一条借阅记录,必须时需要删除预约记录。如果执行不成功,系统状态不变。1.3 事件流基本流当Borrower借阅馆藏图书,且Librarian选择“借书”,则此用例启动。提供馆藏图
10、书和借阅者信息。检索馆藏图书(E-1)。确定该馆藏图书的物理复本(流通图书)是否在架(E-2)。,软件工程,19,检索借阅者(E-3)。将流通图书交给借阅者。创建并存储借阅记录。删除预约记录。候补流E-1:若该种图书不存在,系统显示提示信息,用例终止。E-2:若该种图书都已解出,系统显示提示信息,用例终止。E-3:系统中不存在该借阅者,系统显示提示信息,用例终止。,软件工程,20,5.1.3 与用户沟通的其他工具,1)数据流图某些需求可以很自然地表述为处理元素之间的数据流。顶层图即为系统与外部实体的交互。2)状态图有时把应用看作是几个状态下的应用,而在某一确定时刻的应用始终明确地处于某个状态中
11、。这种状态划分对理解系统比较有益。状态的具体内容到实现阶段会有确切的定义。,软件工程,21,借书过程的数据流图,外部实体、数据流和数据存储都为候选对象,软件工程,22,还书过程的数据流图,系统与外部实体、系统与数据存储的交互,构成系统的接口。相应数据流构成接口数据。,检验错误,还书信息,图书,软件工程,23,馆藏图书(对象)的状态图,软件工程,24,图书管理员借书操作的状态图,软件工程,25,5.1.4 草拟用户界面和其他接口,建立初始用户界面,是原型方法的一种,目的是快速与客户沟通。客户通常在看到应用的图形用户界面(GUI)才能相像到这个应用未来的样子。开发用户界面的步骤如下:1)了解客户
12、深入了解最终用户的想法。根据用户的层次,提供多种用户界面。知识和经验层次:计算机素养、系统经验、使用类似应用的经验、教育水平、阅读水平、打字技能等。,软件工程,26,用户的生理特征:年龄、性别、左右手习惯、生理障碍等。2)理解业务功能 根据应用的整体意图来理解特定用户界面的目的。功能界面出现的顺序通常可以反映用户处理日常业务的方式。用户的任务和工作特征:应用的使用方式、使用频率、雇员的流动率、任务的重要性、任务的重复性、对培训的期望、工作类型等。用户的心理特征:工作态度、能动性、认知方式等。,软件工程,27,3)理解优秀界面设计的原则 目的是加强视觉效果。确保应用的各个界面之间风格的一致性:习
13、惯、步骤、视觉和感觉、位置等。揣测用户通常开始操作的地点导航系统尽量简捷使用分组和分层来强调重要性级别4)选择合适的窗口类型 五类窗口:属性窗口:展示实体的属性对话窗口:完成特定任务或命令的信息,软件工程,28,消息窗口:提供信息面板窗口:展示一组控件弹出窗口:突出显示信息5)制作系统菜单 为用户提供一个稳定的、易于理解的使用环境,可以方便地搜寻需要的选项。提供一个主菜单显示所有相关选择(仅局限于此)将菜单结构与应用要完成的任务对应起来尽量减少菜单的级数,软件工程,29,6)选择合适的基于设备的控件 提供给用户,向系统发送指示的实际手段,包括鼠标、键盘、触摸屏、绘图板、轨迹球、麦克风等。7)选
14、择合适的基于界面的控件 即出现在屏幕上的符号。用户通过这些符号向系统提出他的输入和操作意图,包括图标、按钮、复选框、单选框等。8)组织和安排窗口布局 多窗口的排列规则,如平铺、层叠等。9)选择合适的颜色 尽量保持简捷和低调。颜色需要和谐。,软件工程,30,5.2 面向对象分析,分析建模的目的是对来自客户的需求形式化。形式化可以导致新的洞察和发现需求错误。1999年NASA损失了一颗价值数亿美元的气象卫星,据调查是因为列在度量表中的控制数据出了问题。不巧的是这个缺陷在灾难发生几天之前才刚发现,如果在需求分析阶段就被识别出来就可避免损失了。避免需求错误或遗漏的第一道防线就是把所有的需求细化,建立分
15、析模型。,软件工程,31,分析模型由三个独立的模型构成:由用例和场景表示的功能模型;用类和对象表示的分析对象模型;由状态图和顺序图表示的动态模型。在需求获取阶段得到的用例模型就是功能模型。据此可导出分析对象模型和动态模型。需要注意,这些模型代表的是来自客户的概念,而非实际软件类或实际构件。如数据库、子系统、会话管理器、网络等,不应出现在分析模型中,因为这些概念仅与实现相关。分析中的类可以看作是高层抽象,在后续阶段将使用更多的细节实现。,软件工程,32,在分析对象模型中有实体对象、边界对象和控制对象等三种类型。实体对象表示系统将跟踪的持久信息;边界对象表示参与者与系统之间的交互(接口);控制对象
16、负责用例的实现。可用UML提供的衍型机制,区分不同类型对象。,软件工程,33,具有两个按钮的手表的分析类,使用实体对象、边界对象和控制对象等概念对系统建模时,常常需要提供一些简单的启发式规则来指导开发人员使用这些概念,可以使用相应的类来跟踪。,软件工程,34,分析建模活动包括以下步骤。1、标识实体对象2、标识边界对象3、标识控制对象4、使用顺序图将用例映射为对象5、使用CRC卡片对对象之间的交互建模6、标识关系(结构)7、标识属性8、对每一对象的与状态有关的行为建模9、分析模型评审,软件工程,35,分析建模活动包括以下步骤。标识实体对象自然语言分析法 利用Abbott启发式准则,将语言成分映射
17、为模型成分。,软件工程,36,自然语言分析法主要关注用户术语。限制有识别质量高度依赖人们的书写风格;可能会出现许多无关词汇,或同义词。检查每一个用例,标识候选对象用例中的连续名词(如借阅事件);系统需要跟踪的现实世界中的实体(如借阅记录、馆藏图书信息);系统需要跟踪的现实世界中的活动(如紧急情况操作预案);数据源或数据潭(如借阅者、管理员)。,软件工程,37,分析建模活动包括以下步骤。1、标识实体对象2、标识边界对象3、标识控制对象4、使用顺序图将用例映射为对象5、使用CRC卡片对对象之间的交互建模6、标识关系(结构)7、标识属性8、对每一对象的与状态有关的行为建模9、分析模型评审,软件工程,
18、38,2)标识边界对象在用例图中,每一个参与者至少要与一个边界对象交互。边界对象收集来自参与者的信息,将它们转换为可用于实体对象和控制对象的表示形式。边界对象对用户界面进行粗略的建模,不涉及如菜单项、滚动条等可视方面的细节。标识边界对象的启发式准则如下:标识用户所需初始用例的用户界面控制;标识用户需要键入系统的数据表格;标识通知和系统用于响应用户的消息;,软件工程,39,当用例中有多个参与者时,根据构想的用户界面来标识参与者的行为;不要使用边界对象对接口的可视方面建模,应使用用户原型对可视用户界面建模;使用用户的术语来描述接口,不要使用来自设计和实现的术语。,软件工程,40,分析建模活动包括以
19、下步骤。1、标识实体对象2、标识边界对象3、标识控制对象4、使用顺序图将用例映射为对象5、使用CRC卡片对对象之间的交互建模6、标识关系(结构)7、标识属性8、对每一对象的与状态有关的行为建模9、分析模型评审,软件工程,41,3)标识控制对象控制对象负责协调实体对象和边界对象。控制对象没有在现实世界中具体的对应物,它通常从边界对象处收集信息,并把这些信息分配给实体对象。控制类负责协调边界类和实体类,通常在现实世界中没有对应的事物,它负责接收边界类的信息,并将其分发给实体类。控制类与用例存在着密切的关系,它在用例开始执行时创建,在用例结束时取消。一般来说,一个用例对应一个控制类。当用例比较复杂时
20、,特别是产生分支事件流的情况下,也可以有多个控制类。在有些情况下,用例的行为十分简单,这时可以没有控制类,图书馆系统中的用登录就是这种情况。,软件工程,42,在图书馆系统的例子中,我们发现以下控制类:BorrowBook:借阅流通图书ReturnBook:返还流通图书RecerveTitle:预约某种馆藏图书CancelReservation:取消预约MaintainBorrowerInfo:维护借阅者信息,包括创建、修改、取消借阅者账户MaintainTitleInfo:维护馆藏图书信息,包括添加、修改、删除馆藏图书信息MaintainBookInfo:维护流通图书信息,包括添加、修改、删除
21、流通图书信息,软件工程,43,图书管理系统中的实体对象,Borrower:借阅者。他们可以借阅、返还、预约和取消预约。因为名字可能重复,可用借阅证号码识别。Title:馆藏图书。它表明某一种书,通过馆藏号码识别。Book:流通图书。它表明某一种书的具体复本,通过馆藏号码识别。Loan:借阅记录。同一个人关于不同图书的借阅记录是不同的。Reservation:预约记录。,软件工程,44,图书管理系统中的边界对象,mainWindow:主窗口。有借书、还书、预约、取消预约、添加书种、修改书种、删除书种、添加借阅者、修改借阅者、删除借阅者、添加图书复本、删除图书复本等操作。BorrowerDialo
22、g:借阅者对话框。有添加借阅者、修改借阅者、删除借阅者等操作。FindBwrDialog:弹出对话框。有根据借阅者ID号码查找借阅者的操作。TitleDialog:馆藏图书对话框。有添加书种、修改书种、删除书种等操作。,软件工程,45,FindTDialog:弹出对话框。根据图书的馆藏号查找馆藏图书。BorrowDialog:借书对话框。根据馆藏图书的馆藏号和借阅者信息,执行借阅动作,创建和保存借阅记录。ReturnDialog:还书对话框根据流通图书的馆藏号和复本号,执行还书动作,删除借阅记录。ReserveDialog:预约对话框。根据馆藏图书的馆藏号和借阅者信息,执行预约、取消预约动作。
23、MessageWindow:显示提示信息窗口。LoginDialog:输入用户名和密码的窗口。,软件工程,46,分析建模活动包括以下步骤。1、标识实体对象2、标识边界对象3、标识控制对象4、使用顺序图将用例映射为对象5、使用CRC卡片对对象之间的交互建模6、标识关系(结构)7、标识属性8、对每一对象的与状态有关的行为建模9、分析模型评审,软件工程,47,4)使用顺序图将用例映射为对象顺序图将用例与对象联系起来,直观地描述了用例(场景)行为在其参与对象之间是如何实施的。顺序图对用例中各参与对象之间的交互序列进行建模。每一个消息从一个对象(或参与者)发送给另一个对象(或参与者)。消息的接受就触发了
24、一个操作。通过顺序图,将责任以操作集合的形式分配给每一个对象。如果一个对象参与到多个用例,则其操作应为这些用例共享。,软件工程,48,画顺序图的启发式准则如下:顺序图第一栏对应激活该用例的参与者;顺序图第二栏是边界对象;顺序图第三栏是管理用例中其他参与对象的控制对象;通过边界对象来初始化用例,并创建控制对象;通过控制对象可创建其他边界对象;实体对象允许边界对象和控制对象访问;试题对象不能访问边界对象和控制对象;,软件工程,49,借书用例的顺序图,软件工程,50,还书用例的顺序图,软件工程,51,分析建模活动包括以下步骤。1、标识实体对象2、标识边界对象3、标识控制对象4、使用顺序图将用例映射为
25、对象5、使用CRC卡片对对象之间的交互建模6、标识关系(结构)7、标识属性8、对每一对象的与状态有关的行为建模9、分析模型评审,软件工程,52,5)使用CRC卡片对对象之间的交互建模CRC是类、职责和协作的缩写。每一个类可用一张CRC卡片表示。建立CRC卡片有以下几个步骤:识别类和职责:首先识别类或对象,然后从客户需求说明中寻找有关行为的描述,以发现职责。将职责分配到类:记录在相应的卡片上。找寻协作者:依次检查每一类承担的责任,看是否需要其他类的帮助,找寻与每个类协作的伙伴,并记录在相应卡片上。,软件工程,53,软件工程,54,细化:模拟在执行每个基本功能时系统内部出现的场景,以此推动细化工作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 建模 示例
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6610824.html