




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1 第6章 需求建模:场景、信息与类分析 软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.2需求分析n需求分析n确定软件的操作特性n指明软件和其他系统元素的接口
2、n规定软件必须满足的约束n需求分析让软件工程师(有时这个角色也被称作分析或建模师):n细化在前期需求工程任务中建立的基础需求n建立描述用户场景、功能活动、问题类及它们之间的关系、系统和类行为以及数据流变换时等模型软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.3桥接s sy ys st te em m d de es sc cr ri ip pt ti io on na an na al ly ys
3、si is s m mo od de el ld de es si ig gn n m mo od de el l系统描述分析模型设计模型软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.4经验原则n模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高一些。n需求模型的每个元素都应能增加对软件需求的整体理解,并提出对信息域、功能和系统行为的深入理解。n关于基础结构和其他非功能的模型应推延到设计阶
4、段再考虑。n 最小化整个系统内的关联。n确认需求模型为所有利益相关者都带来价值。n尽可能保持模型简洁。软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.5域分析Donald Firesmith软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by
5、Roger Pressman.6域分析n确定调查的领域。n收集应用领域内的典型例子n分析例子中每一个应用n为对象开发一种分析模型软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.7需求分析的元素基于场景的模型如:用例用户故事类模型如:类图协作图流模型如:数据流图数据模型行为模型如:状态图顺序图软件需求软件工程教学chaSoftware Engineering: A Practitioners Appro
6、ach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.8基于场景模型(1) (1) 我们应该写什么?我们应该写什么?(2) (2) 我们应该写多少?我们应该写多少?(3) (3) 我们编写说明应该多详细?我们编写说明应该多详细?(4) (4) 我们如何组织说明?我们如何组织说明?软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pres
7、sman.9编写什么?n起始和导出提供了开始编写用例所需要的信息.。n运用需求收集会议、QFD和其他需求工程机制n确定利益相关者n 定义问题的范围n说明整体的运行目标n建立优先级顺序n概述所有已知的功能需求n描述系统将处理的信息(对象)。n开始开发一系列用例时,应列出特定参与者执行的功能活动。软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.10编写多少n在与相关利益人进一步会话取得进步后,需求收集团队
8、为每一个功能说明开发用例。n通常以一种非正式的叙述性的方式表达用例。n若要求更正式的方式,则以一种类似于被提及的结构化的格式重写相同的用例。软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.11用例n一个场景描述了系统的一个“使用线程”n参与者代表了系统运行时人或设备扮演的角色n用户在给定的场景可以扮演许多不同的角色软件工程教学chaSoftware Engineering: A Practitione
9、rs Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.12开发用例n参与者完成的主要任务和功能是什么?n参与者将获取、产生或改变哪些系统信息?n参与者必须通知系统有关外部环境的改变吗?n参与者希望从系统获取什么信息?n参与者希望得知会有意料之外的变更吗?软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
10、13用例图hom eownerAccess cam era survei l l ance vi a the I nternetConfi gure SafeHom e system param etersSet al armcam erasSafeHom e房主通过因特网进入摄像机监视配置SafeHome系统参数设置报警摄像机软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.14活动图enter pa
11、ssw ord and user I Dsel ect m aj or functi onval i d passwords/I Dprom pt for reentryi nval i d passwords/I Di nput tri es rem ai nno i nputtri es rem ai nsel ect survei l l anceother functi ons m ay al so be sel ectedthum bnai l vi ewssel ect a speci fi c cam erasel ect cam era i conprom pt for ano
12、ther vi ewsel ect speci fi c cam era - thum bnai l sexi t thi s functi onsee another cam eravi ew cam era output i n l abel l ed w i ndowSupplements the use case by providing a graphical representation of the flow of interaction within a specific scenario在特定场景内通过提供迭代流的图形化表示类补充用例输入密码和用户ID无效的密码/ID继续重试
13、输入有效的密码ID结束重试输入选择某个摄像头选择摄像头图标选择某个摄像头缩略视图缩略视图也可能选择其他功能选择监视在标示窗口中查看摄像头输出查看另一视图提示查看另一个摄像头退出这个功能重新输入提示选择主功能软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.15泳道图enter passw ord and user I Dsel ect m aj or functi onval i d passwords
14、/I Dprom pt for reentryi nval i dpasswords/I Di nput tri esrem ai nno i nputtri es rem ai nsel ect survei l l anceother functi ons m ay al so be sel ectedthum bnai l vi ewssel ect a speci fi c cam erasel ect cam era i congenerate vi deo outputsel ect speci fi c cam era - thum bnai l sexi t thi sfunc
15、ti onseeanothercam erah h o o m m e e o o w w n n e e r rc c a a m m e e r ra ai in n t te e r rf fa a c c e eprom pt foranother vi ewvi ew cam era output i n l abel l ed w i ndow可让建模人员表示用例所描述的活动流,同时指示哪个参与者(如果在特定用例中涉及了多个参与者)或分析类是由活动矩形所描述的活动来负责。房主摄像机接口输入密码和用户ID有效的密码/ID选择主功能也可能选择其他功能选择监视结束重试输入继续重试输入提示
16、重新输入提示无效的密码/ID提示另一视图退出这个功能查看另一个摄像头在标示窗口中查看摄像头输出选择某个摄像头缩略视图选择摄像头图标缩略视图选择某个摄像头产生视频输出软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.16数据建模n检查数据对象的独立处理n注意力集中在数据域n创建客户级抽象的模型n指出数据对象之间的相互联系软件工程教学chaSoftware Engineering: A Practition
17、ers Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.17什么是数据对象n数据对象必须由软件理解的复合信息表示。 n复合信息具有若干不同的特征或属性的事物n可能是外部实体(例如产生或使用信息的任何东西),事物(例如报告或显示),偶发事件(例如电话呼叫)或事件(例如报警),角色(例如销售人员),组织单位(例如财务部),地点(例如仓库)或结构(例如文件)。n描述包括了数据对象及其所有属性。n数据对象只封装数据在数据对象中没有操作数据的引用软件工程教学chaSoftware Engineering
18、: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.18数据对象和属性object: automobileattributes: make model body type price options code软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.19什么是关系
19、n数据对象可以以多种不同的方式与另一个数据对象链接。n在person和car之间建立联系,因为这两个对象之间是相互联系的。 人拥有车 汽车驾车投保人n关系“拥有”和“驾车投保”定义了person和car之间的相关连接。n一个关系中可以存在几个实例n对象之间可以以多种不同的方式联系软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.20ERD 符号(0, m)(1, 1)软件工程教学chaSoftware
20、Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.21建立ERDn第1层建模所有数据对象(实体) 和它们与另一个对象的“联系”n第2层建模所有的实体和关系n第3层建模所有实体、关系及进一步提供的属性软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
21、22The ERD: 举例(1,1)(1,m)地点地点客户客户服务请求服务请求生成生成(1,n)(1,1)工作工作秩序秩序工作任务工作任务材料材料组成组成清单清单(1,1)(1,w)(1,1)(1,i)选择选择标准任务表标准任务表(1,w)(1,1)placesCustomerrequestfor servicegeneratesworkorderworktasksmaterialsconsistsoflistsselectedfromstandardtask table软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (
22、McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.23基于类的建模n基于类建模表示: n系统操作的对象n应用于对象间能有效控制的操作(也称为方法或服务)n对象间的关系(某种层级)n定义出现在类之间的协作n基于类的模型的元素包括类和对象、属性、操作、CRC模型、协作图和包。 软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.24识别分析
23、类n通过检查需求模型开发的使用场景,对系统开发的用例进行“语法解析”Abb83 n带有下划线的每个名词或名词词组可以确定为类,并将这些名词输入到一个简单的表中。 n标注同义词。 n如果要求某个类(名词)实现一个解决方案,那么这个类就是解决方案空间的一部分;否则,如果只要求某个类描述一个解决方案,那么这个类就是问题空间的一部分。 n不过一旦分离出所有的名词,我们该寻找什么? 软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger
24、 Pressman.25分析类的证明n分析类表现为如下方式之一: 外部实体(例如,其他系统、设备、人员),产生或使用基于计算机系统的信息 事物(例如,报告、显示、字母、信号),问题信息域的一部分 偶然事件或事件(例如,所有权转移或完成机器人的一组移动动作),在系统操作环境内发生 角色(例如:经理、工程师、销售人员),由和系统交互的人员扮演 组织单元(例如,部门、组、团队),和某个应用系统相关 场地(例如:制造车间或码头),建立问题的环境和系统的整体功能 结构(例如:传感器、四轮交通工具、计算机),定义了对象的类或与对象相关的类软件工程教学chaSoftware Engineering: A P
25、ractitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.26潜在类n保留信息。 只有记录潜在类的信息才能保证系统正常工作,在这种分析过程中的潜在类是有用的。n所需服务。潜在类必须具有一组可确认的操作,这组操作能用某种方式改变类的属性值。n多个属性。在需求分析过程中,焦点应在于“主”信息;事实上,只有一个属性的类可能在设计中有用,但是在分析活动阶段,最好把它作为另一个类的某个属性。n公共属性。可以为潜在类定义一组属性,这些属性适用于类的所有实例。n公共操作。可以为潜在类定义一组
26、操作,这些操作适用于类的所有实例。n必须需求。在问题空间中出现的外部实体,和任何系统解决方案运行时所必须的生产或消费信息,几乎都被定义为需求模型中的类。软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.27定义属性n属性描述了已经选择包含在需求模型中的类。n为一个职业棒球手建立两种不同的类。 对棒球手的统计软件对棒球手的统计软件: 名字、位置、平均击球次数、担任防守百分百,从业年限、比赛次数等相关的。
27、对养老基金软件:对养老基金软件:平均工资、充分享受优惠权后的信用、所选的养老计划、邮件地址等。软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.28定义操作n做语法解析的处理说明,关注动词n操作可以划分为4种类型: n(1)以某种方式操作数据(例如:添加、删除、重新格式化、选择)n(2)执行计算的操作n(3)请求某个对象的状态的操作n(4)监视某个对象发生某个控制事件的操作软件工程教学chaSoftwa
28、re Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.29CRC模型n类-职责-协作者 (CRC) 建模 Wir90提供了一个简单方法,可以识别和组织与系统或产品需求相关的类。Ambler Amb95 用如下文字解释CRC建模:nCRC模型实际上是表示类的标准索引卡的集合。这些卡片分为三部分,顶部写类名,卡片主体左侧部分列出类的职责,右侧部分列出类的协作者。软件工程教学chaSoftware Engineering: A Practit
29、ioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.30CRC建模C Cl la as ss s: :Description:R Re es sp po on ns si ib bi il li it ty y: :C Co ol ll la ab bo or ra at to or r: :C Cl la as ss s: :Description:R Re es sp po on ns si ib bi il li it ty y: :C Co ol ll la ab bo or
30、 ra at to or r: :C Cl la as ss s: :Description:R Re es sp po on ns si ib bi il li it ty y: :C Co ol ll la ab bo or ra at to or r: :C Cl la as ss s: : FloorPlanDescription:R Re es sp po on ns si ib bi il li it ty y: :C Co ol ll la ab bo or ra at to or r: :incorporates walls, doors and windowsshows po
31、sition of video camerasdefines floor plan name/typemanages floor plan positioningscales floor plan for displayscales floor plan for displayWallCamera说明职责协作者定义住宅平面图的名称/类型管理住宅平面图的布局缩放显示住宅平面合并墙、门和窗显示摄像头的位置软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright
32、 2009 by Roger Pressman.31类的类型n实体类,也称作模型或业务类,是从问题说明中直接提取出来的(例如FloorPlan和Senor)。n边界类用于创建用户可见的和在使用软件时交互的接口(如交互屏幕或打印的报表)。n控制类自始至终管理“工作单元” UML03 。也就是说,设计控制类可以管理n实体类的创建或更新;n当边界类从实体对象获取信息后的实例化;n对象集合间的复杂通信;n对象间或用户和应用系统间交换数据的确认。软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009)
33、. Slides copyright 2009 by Roger Pressman.32职责n系统智能应用分布在所有类中以求最佳地满足问题的需求。n每个职责的说明应尽可能具有普遍性n信息和与之相关的行为应放在同一个类中n某个事物的信息应局限于一个类中而不要分布在多个类中。n适合时,职责应由相关类共享。软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.33协作n类有一种或两种方法实现其职责:n类可以使用其
34、自身的操作控制各自的属性,从而实现特定的职责。n一个类可以和其他类协作。n协作是以客户职责实现的角度表现从客户到服务器的请求n要识别协作可以通过确认类本身是否能够实现自身的每个职责。n类之间三种不同的通用关系WIR90: nis-part-of (是一部分)关系nhas-knowledge-of (有知识)关系n depends-upon (依赖)关系软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.3
35、4符合聚合类PlayerPlayerHeadPlayerArmsPlayerLegsPlayerBody软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.35关联和依赖n两个分析类以某种方式相互联系着n 在UML中,这些联系被称作关联n关联可以进一步地指出多样性(术语基数用于数据建模中)n在很多事例中,两个分析类之间存在客户-服务器关系。n这种情况下,客户类以某种方式依赖于服务器类并且建立了依赖关系软件工程教学chaSoftware Engineering: A Practitioners Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.36多样性W al l Segm entW i ndowDoorW al lis used to buildi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一年级下册数学教案-2.2 100以内数的大小比较| 青岛版(五四学制)
- 2024-2025学年三年级下学期数学第一单元复习与提高 平方分米(教案)
- 一年级下册数学教案-第6单元 图书馆(2)|北师大版
- 2024年林业机械项目资金筹措计划书
- 2025年广州城市职业学院单招职业技能测试题库完美版
- 2024年耐酸低熔玻璃项目资金申请报告
- 16《朱德扁担》第二课时 教学设计-2024-2025学年语文二年级上册统编版
- 2025年度个人与个人家政服务合作协议
- 2025年度个人代收款金融服务合作协议
- 2025年度房改房买卖合同签订与备案操作手册
- 精神分裂症合并糖尿病患者护理查房课件
- 山东省2024届科目一模拟考试100题(答案)
- 共享wifi贴合同范本
- 借款人借款合同
- 统战工作先进个人事迹材料
- 国能辽宁北票 200MW 风力发电项目地质灾害危险性评估报告
- 中药相关性肾损害
- 2024年关于加强社区工作者队伍建设的意见课件
- 2024年松溪县城投实业集团有限公司招聘笔试冲刺题(带答案解析)
- DZ∕T 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼(正式版)
- 1企业网络与信息安全管理组织架构
评论
0/150
提交评论