3-2_需求分析建模_软件工程课件.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《3-2_需求分析建模_软件工程课件.pdf》由会员分享,可在线阅读,更多相关《3-2_需求分析建模_软件工程课件.pdf(116页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第2章 软件过程与方法1第3章 需求与分析建模1计算机科学与技术学院软件工程软件工程软件工程第三章第三章 需求与分析建模需求与分析建模乔立民乔立民2010年年4月月21日日第2章 软件过程与方法2第3章 需求与分析建模2主要内容3.1 软件需求软件需求3.2 需求工程需求工程3.3 需求获取需求获取3.4 需求分析与建模需求分析与建模3.4.1 需求分析需求分析3.4.2 面向对象需求分析面向对象需求分析3.4.3 结构化需求分析结构化需求分析第2章 软件过程与方法3第3章 需求与分析建模3需求工程的总体流程需求管理需求管理需求获取需求获取需求分析需求分析规格说明规格说明需求验证需求验证会议纪
2、要会议纪要讨论纪要讨论纪要分析模型分析模型需求规格需求规格说明书说明书审核通过的审核通过的规格说明书规格说明书活动活动产出物产出物需求开发需求开发第2章 软件过程与方法4第3章 需求与分析建模4需求分析的本质 需求分析需求分析(Requirement Analysis):对收集到的需求进行提:对收集到的需求进行提炼、分析和审查,为最终用户所看到的系统建立概念化的炼、分析和审查,为最终用户所看到的系统建立概念化的分析模型分析模型 分析需求可行性 细化需求 建立需求分析模型 功能活动 分析问题类和类之间关系 系统和类行为 数据流 本质:本质:客户现实需求软件需求模型(SRS)抽象、映射、转换第2章
3、 软件过程与方法5第3章 需求与分析建模5分析模型的目标 描述客户需要什么(软件的信息、功能和行为)描述客户需要什么(软件的信息、功能和行为)为软件设计奠定基础(结构、接口、构件设计)为软件设计奠定基础(结构、接口、构件设计)定义在软件完成后可以被确认的一组需求定义在软件完成后可以被确认的一组需求系统描述设计模型分析模型第2章 软件过程与方法6第3章 需求与分析建模6分析的经验原则 模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高一些。不需要陷入细节,即不要试图解释系统将如何工作一些。不需要陷入细节,即不要试图解释系统将如
4、何工作 分析模型的每个元素都应该能增加对软件需求的整体理解,并提出对分析模型的每个元素都应该能增加对软件需求的整体理解,并提出对信息域、功能和系统行为的深入理解信息域、功能和系统行为的深入理解 关于基础结构和其他非功能的模型应推延到设计阶段再考虑关于基础结构和其他非功能的模型应推延到设计阶段再考虑 最小化整个系统内的关联最小化整个系统内的关联 确认分析模型为所有共利益者都带来价值(客户、设计人员、测试人确认分析模型为所有共利益者都带来价值(客户、设计人员、测试人员)员)尽可能保持模型简洁尽可能保持模型简洁第2章 软件过程与方法7第3章 需求与分析建模7地理特征区域点线城市湿地山脉草原海洋水坝建
5、筑桥梁机场水上陆上码头公路输油管铁路输电线河流物质精神世界需求分析的基本思想:抽象 抽象:透过现象看本质抽象:透过现象看本质 抓住事物的本质,捕获问题空间的“一般/特殊”关系是认识、构造问题的一般途径。第2章 软件过程与方法8第3章 需求与分析建模8整个问题问题的深度问题的广度问题的深度问题的广度子问题1子问题2子问题3问题的深度问题的广度子问题3子问题2子问题1按问题深度分而治之按问题广度分而治之需求分析的基本思想:划分 划分:分而治之划分:分而治之 分离问题,捕获问题空间的“整体/部分”关系是降低问题复杂性的基本途径。第2章 软件过程与方法9第3章 需求与分析建模9需求分析的基本思想:投影
6、 投影:从不同视角看问题投影:从不同视角看问题 捕获并建立问题空间的多维视图是描述问题的基本手段。第2章 软件过程与方法10第3章 需求与分析建模10需求分析的基本思想:建模 建模:规格严格、功夫到家建模:规格严格、功夫到家 采用规范的描述方法,将模糊的、不确定的用户需求表达为清晰的、严格的模型,作为进一步设计与实现的基础。模型的作用:增强对需求的理解 检测不一致性、模糊性、错误和遗漏 在项目的参与者之间更高效的交流 两种模型形态:两种模型形态:形式化的数学模型(formal mathematical model)非形式化的图形化模型(informal graphical model)第2章
7、软件过程与方法11第3章 需求与分析建模11需求分析方法 两种主要需求分析方法:两种主要需求分析方法:结构化分析与设计方法(Structured Analysis and Design Technique,SADT)面向对象分析与设计方法(Object-Oriented Analysis and Design,OOAD)问题域需求分析概要设计详细设计编码测试计算机自然语言传统的编程语言分析与设计的鸿沟问题域面向对象分析面向对象设计面向对象编程面向对象测试计算机自然语言面向对象的编程语言第2章 软件过程与方法12第3章 需求与分析建模12分析模型的元素分析模型分析模型用例图用例文本活动图(泳道图
8、)基于场景的元素基于场景的元素数据流图控制流图处理说明面向信息流的元素面向信息流的元素类图分析包CRC卡协作图基于类的元素基于类的元素顺序图状态图行为元素行为元素第2章 软件过程与方法13第3章 需求与分析建模13主要内容3.1 软件需求软件需求3.2 需求工程需求工程3.3 需求获取需求获取3.4 需求分析与建模需求分析与建模3.4.1 需求分析需求分析3.4.2 面向对象需求分析面向对象需求分析3.4.3 结构化需求分析结构化需求分析第2章 软件过程与方法14第3章 需求与分析建模14面向对象的分析 理解由问题陈述所描述的真实世界的系统,并把它的功能理解由问题陈述所描述的真实世界的系统,并
9、把它的功能抽象成模型抽象成模型 分析模型描述对象三个方面:分析模型描述对象三个方面:对象的静态结构(领域模型)对象之间的交互(交互模型)对象的生存期(状态模型)第2章 软件过程与方法15第3章 需求与分析建模15面向对象的分析 面向对象的分析模型由三个独立的模型构成:面向对象的分析模型由三个独立的模型构成:功能模型:从用户的角度获取功能需求,由用例模型表示(已在上堂课学习过);静态结构模型(领域模型):是对领域内的概念类或现实世界中对象的可视化表示;动态行为模型:描述对象之间的交互行为,由顺序图和协作图表示。建立与实现技术无关的系统逻辑结构第2章 软件过程与方法16第3章 需求与分析建模16面
10、向对象的分析()面向对象的分析OOA面向对象的设计OOD面向对象的实现OOP面向对象的测试Testing需求模型从用户的角度获取功能需求用例模型分析模型建立系统的概念模型,细化系统行为1 静态结构模型:领域模型、类图2 动态行为模型:顺序图、状态图、协作图()第2章 软件过程与方法17第3章 需求与分析建模17面向对象的分析用例用例领域模型(类图)领域模型(类图)顺序图顺序图协作图协作图第2章 软件过程与方法18第3章 需求与分析建模18面向对象分析的过程 第一阶段:建立静态模型(领域建模)第一阶段:建立静态模型(领域建模)1.从用例模型入手,寻找概念类2.细化概念类,识别边界类、控制类和实体
11、类3.添加关联和属性 第二阶段:建立动态模型第二阶段:建立动态模型1.从用例和活动图入手,建立系统顺序图2.建立分析对象的顺序图3.确定分析类的操作第2章 软件过程与方法19第3章 需求与分析建模19领域模型的作用销售过程1.顾客到达.2.3.收银员输入商品ID.4.用例文本用例文本Operation:enterItem()Post-conditions:-.操作契约操作契约Saledate.SalesLineItemquantity1.*1.经历状态变化的领域对象、属性和关联领域模型领域模型Use-Case Model设计模型设计模型:RegisterenterItem(itemID,qua
12、ntity):ProductCatalogspec=getProductSpec(itemID)addLineItem(spec,quantity):Sale.领域中的概念会给某些设计中软件类的名称带来启示概念类、术语、概念、属性、关联收银员:商品ID:.词汇表词汇表领域模型中某些术语的细化需求需求业务建模业务建模设计设计制品关系样例制品关系样例第2章 软件过程与方法20第3章 需求与分析建模20领域建模 发现和描述对象(或概念)是面向对象的核心发现和描述对象(或概念)是面向对象的核心 领域模型又称为概念对象模型,领域模型展示重要的领域领域模型又称为概念对象模型,领域模型展示重要的领域概念或对
13、象概念或对象 领域模型描述的是真实世界的概念,而领域模型描述的是真实世界的概念,而非软件对象的概念非软件对象的概念 领域模型领域模型不是数据模型不是数据模型第2章 软件过程与方法21第3章 需求与分析建模21领域建模 通过领域建模能够降低与通过领域建模能够降低与OO建模之间的表示差异建模之间的表示差异PaymentamountSaledatetimePays-forPaymentamount:MoneygetBalance():MoneySaledate:DatestartTime:TimegetTotal():Money.Pays-for领域模型领域模型涉众对领域内重要概念的看法设计模型设计
14、模型面向对象开发者在创建软件类时受到真实世界领域的启发因此,涉众所设想的领域与其在软件的表示之间的表示差异被降低1111领域模型中的Payment是概念,但在设计模型中的Payment是软件类。它们不是一回事,但前者对后者的名称和定义具有启发作用。这减少了表示差异这是对象技术的主要思想之一启发了对象及其名称现实世界概念世界软件世界第2章 软件过程与方法22第3章 需求与分析建模221.寻找概念类 方法方法1:重用和修改现有的模型:重用和修改现有的模型 参考已有系统或书籍资料等 方法方法2:使用分类列表:使用分类列表 业务交易交易项目 角色地点 记录物理对象 方法方法3:确定名词短语:确定名词短
15、语 分析用例文本第2章 软件过程与方法23第3章 需求与分析建模23寻找概念类确定名词短语用例名称:用例名称:处理销售参与者与关注点:参与者与关注点:收银员:希望准确、快速地输入,而且没有支付错误,因为如果少收货款,将从其工资中扣除。前置条件:前置条件:收银员必须经过确认和认证成功保证成功保证(或后置条件或后置条件):存储销售信息。准确计算税金。更新账务和库存信息。主成功场景主成功场景(或基本流程或基本流程):1.顾客携带所购商品或服务到收银台通过POS机付款。2.收银员开始一次新的销售交易。3.收银员输入商品条码扩展扩展(或替代流程或替代流程):3a.无效商品ID(在系统中未发现):系统提示
16、错误并拒绝输入该ID。收银员响应该错误特殊需求:特殊需求:使用大尺寸平面显示器触摸屏,文本信息可见距离为1米。发生频率:发生频率:可能会不断地发生未解决问题:未解决问题:提成处理规则不确定收银员换班时如何处理 第2章 软件过程与方法24第3章 需求与分析建模24选择概念类的标准选择概念类的标准1.固定信息固定信息2.必要的服务必要的服务3.多属性多属性4.公共属性公共属性5.公共操作公共操作6.基本需求基本需求+状态状态,+行为,独立对象行为,独立对象 状态状态,-行为行为 系统需要它的状态数据,其他对象的属性 否则,摈弃+行为行为,-状态,信息遗漏状态,信息遗漏-行为行为,-状态,摈弃状态,
17、摈弃第2章 软件过程与方法25第3章 需求与分析建模25选择概念类示例选择概念类示例用例描述用例描述:1 1.顾客顾客携带携带商品商品到到销售终端销售终端POSPOS前前.2 2.收银员收银员开始一个新的开始一个新的销售处理销售处理.3 3.收银员输入收银员输入物品项标识物品项标识.4 4.系统记录销售的系统记录销售的物品项列表物品项列表并且显示并且显示物品描物品描述述、价格价格和和总价总价.收银员重复步骤收银员重复步骤3 3-4 4,直至输入所有物品项直至输入所有物品项.5 5.系统显示最后的总价系统显示最后的总价.6 6.收银员告诉顾客总价收银员告诉顾客总价,要求顾客支付要求顾客支付账款账
18、款.7 7.顾客付款顾客付款,系统结账系统结账.8 8.系统记录整个销售处理系统记录整个销售处理,更新更新产品库存目录产品库存目录.9 9.系统打印系统打印收据收据.1010.顾客离开顾客离开.确定对象确定对象:顾客顾客,商品商品,POSPOS,收银员收银员,销售销售处理处理,物品项列表物品项列表,物品描述物品描述,账账款款,产品目录产品目录摈弃对象摈弃对象:物品项标识物品项标识:只有状态没有行为只有状态没有行为价格价格:只有状态没有行为只有状态没有行为总价总价:只有状态没有行为只有状态没有行为收据收据:既无状态也无行为既无状态也无行为概念类概念类:顾客顾客,商品商品,POSPOS,收银员收银
19、员,销售处理销售处理,物品项列表物品项列表,物品描述物品描述,账款账款,产品目录产品目录a)b)c)第2章 软件过程与方法26第3章 需求与分析建模26概念类StoreRegisterSaleItemCashPaymentSalesLineItemCashierCustomerProductCatalogProductDescriptionLedger第2章 软件过程与方法27第3章 需求与分析建模272.细化概念类(分析类)概念类是概念层次上的内容,用于描述系统中较高层次的概念类是概念层次上的内容,用于描述系统中较高层次的对象对象 概念类直接与应用逻辑相关,而不关注于技术实现的问题概念类直接
20、与应用逻辑相关,而不关注于技术实现的问题 概念类的类型概念类的类型 实体类:表示系统存储和管理的持久性信息 边界类:表示参与者与系统之间的交互 控制类:负责用例实现LoancreateDate:DateLoansearchTitle()lend()LendItemControlgetItems()lendItem()第2章 软件过程与方法28第3章 需求与分析建模28边界类(Boundary Class)边界类:边界类:描述外部的参与者与系统之间的交互 目的:将用例的内部逻辑与外部环境进行隔离,使得外界的变化不会影响到内部的逻辑部分。类型:用户界面、系统接口、设备接口 对用户界面来说:对用户界
21、面来说:描述用户与系统的交互信息(传入哪些信息/指令,传出哪些信息/指令),而不是用户界面的显示形式(如按钮、菜单等);对系统接口对系统接口/设备接口来说:设备接口来说:描述通信协议,但不必说明协议如何实现的。第2章 软件过程与方法29第3章 需求与分析建模29边界类(Boundary Class)“学生注册课程”的界面学生课程注册第2章 软件过程与方法30第3章 需求与分析建模30控制类(Control Class)描述一个用例所具有的事件流的控制行为;实现了对用例行为的封装,将用例的执行逻辑与边界和实体进行隔离,使得边界类和实体类具有较好的通用性。第2章 软件过程与方法31第3章 需求与分
22、析建模31控制类(Control Class)“课程注册”控制类学生课程注册第2章 软件过程与方法32第3章 需求与分析建模32实体类(Entity Class)描述必须存贮的信息及其相关行为对系统的核心信息建模,通常这些信息需要长久的保存通常对应现实世界中的“事物”第2章 软件过程与方法33第3章 需求与分析建模33实体类(Entity Class)学生课程注册“课程注册信息”实体类“课程”实体类“学生”实体类第2章 软件过程与方法34第3章 需求与分析建模34三种分析类之间的关系第2章 软件过程与方法35第3章 需求与分析建模35识别边界类通常,一个参与者与一个用例之间的交互或通信关联对应
23、一个边界类用户用户界面外部系统接口用例外部系统第2章 软件过程与方法36第3章 需求与分析建模36案例图书管理系统的用例图普通读者登录查询浏览预订图书图书管理员管理读者取消预订管理图书资料登记借书登记还书邮件系统注册读者管理书目第2章 软件过程与方法37第3章 需求与分析建模37案例图书管理系统的边界类边界类边界类说明说明LoginForm注册用户进行登录的操作界面注册用户进行登录的操作界面BrowseForm注册用户进行查询浏览的操作界面注册用户进行查询浏览的操作界面MakeReservationForm普通读者预定图书的操作界面普通读者预定图书的操作界面RemoveReservationF
24、orm普通读者取消预定的操作界面普通读者取消预定的操作界面ManageBrowsersForm图书管理员管理读者的操作界面图书管理员管理读者的操作界面ManageTitlesForm图书管理员管理图书资料的操作界面图书管理员管理图书资料的操作界面ManageItemsForm图书管理员管理书目的操作界面图书管理员管理书目的操作界面LendItemForm图书管理员登记借书的操作界面图书管理员登记借书的操作界面ReturnItemForm图书管理员登记还书的操作界面图书管理员登记还书的操作界面MailSystem与邮件系统的接口与邮件系统的接口第2章 软件过程与方法38第3章 需求与分析建模38
25、识别边界类应当注意的问题 边界类应关注于参与者与用例之间交互的信息或者响应的边界类应关注于参与者与用例之间交互的信息或者响应的事件,不要描述窗口组件等界面的组成元素;事件,不要描述窗口组件等界面的组成元素;在分析阶段,力求使用用户的术语描述界面;在分析阶段,力求使用用户的术语描述界面;边界类实例的生命周期并不仅限于用例的事件流,如果两边界类实例的生命周期并不仅限于用例的事件流,如果两个用例同时与一个参与者交互,那么它们有可能会共用一个用例同时与一个参与者交互,那么它们有可能会共用一个边界类,以便增加边界类的复用性。个边界类,以便增加边界类的复用性。第2章 软件过程与方法39第3章 需求与分析建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 需求 分析 建模 软件工程 课件
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内