第3专题 软件项目的需求分析_第1页
第3专题 软件项目的需求分析_第2页
第3专题 软件项目的需求分析_第3页
第3专题 软件项目的需求分析_第4页
第3专题 软件项目的需求分析_第5页
已阅读5页,还剩146页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,第三专题软件项目的需求分析,.,内容,概述需求工程需求建模的基本方法需求分析过程需求规格文档,.,1概述,需求的定义需求类型,.,1.1需求定义,业务需求,用户需求,功能需求,系统需求,非功能性需求,质量特征,约束和假设,软件需求规格,组织或客户对系统、产品高层次的目标需求,由管理人员或市场分析人员确定,描述了用户通过使用本软件产品必须要完成的任务,开发人员必须实现的功能,使得用户通过使用此软件能完成他们的任务,从而满足了业务需求。,.,1.2需求的类型,功能需求:必须执行的功能非功能需求:性能要求、可靠性要求、安全性要求,.,病例信息管理系统,.,病例信息管理系统,.,2需求工程,需求获取需求分析需求规格编写需求验证需求变更管理,.,2.1需求获取,用户要求,基线需求,软件需求,.,需求获取需要执行的活动:,1、了解客户方的所有用户类型以及潜在的类型2、对用户进行访谈和调研3、对用户需求作进一步分析和整理4、呈交需求文档,功能性需求非功能需求环境限制设计约束,标明未定的需求项使需求符合系统目标保证需求项之间的一致性,为什么?做什么?隐含需求,.,需求获取注意问题:,1、识别真正的客户2、正确理解客户的需求3、具备较强的忍耐力和清晰的思维4、使用符合客户语言习惯的表达5、提供需求开发评估报告6、尊重开发人员和客户的意见,妥善解决矛盾7、划分需求的优先级8、说服和教育客户,.,2需求工程,需求获取需求分析需求规格编写需求验证需求变更管理,.,需求分析模型,当前系统,逻辑模型,物理模型,目标系统,理解需求,表达需求,.,需求分析活动,1、以图形表示的方式描述系统的整体结构,包括系统的边界与接口2、通过原型、页面流或其他方式向用户提供可视化的界面,用户可以对需求做出自己的评价3、以模型描述系统的功能项、数据实体、外部实体、实体间的关系、实体之间的状态转换,.,需求分析的难点,1、问题的复杂性2、交流障碍3、不完备性和不一致性4、需求易变性,.,2需求工程,需求获取需求分析需求规格编写需求验证需求变更管理,.,需求规格编写,需求规格说明书(SRS)工作陈述(SOW),.,2需求工程,需求获取需求分析需求规格编写需求验证需求变更管理,.,需求验证内容,1、需求的正确性2、需求的一致性3、需求的完整性4、需求的可行性5、需求的必要性、6、需求的可检验性7、需求的可跟踪性8、最后签字,与其他软件需求或高层需求不相矛盾,验证是否所有可能的状态、状态变化、转入、产品和约束都在需求中描述,验证每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施。,验证需求是否是用户需要的,验证是否能写出测试案例来满足需求,如用演示、检测等来确定产品是否确实按需求实现了,每项需求以一种结构化的,粒度化的方式编写并单独标明。避免大段大段的叙述,.,2需求工程,需求获取需求分析需求规格编写需求验证需求变更管理,.,任务:,1、确定变更控制过程2、建立软件变更委员会3、进行变更影响分析4、跟踪变更影响的产品5、建立基准和控制版本6、维护变更的历史记录7、跟踪每项需求的状态8、衡量需求稳定性,选择、分析、决策,项目进度、资源、工作量、项目范围、对其他需求的影响,确定、已实现、暂缓、新增、变更,记录需求基线的数量和每周或每月的变更,.,内容,概述需求工程需求建模的基本方法需求分析过程需求规格文档,.,3、需求建模的基本方法,关联模型行为模型数据模型结构化模型面向对象模型其他方法,.,关联模型目的,确定系统的边界,区分系统以及系统的环境。定义系统与环境之间的关联关系。,.,例:ATM系统的关联模型,ATM系统,.,3、需求建模的基本方法,关联模型行为模型数据模型结构化模型面向对象模型其他方法,.,行为模型目的,描述系统的总体行为,例如数据流模型和状态机模型。数据流模型:通过输入数据控制系统状态机模型:通过事件驱动控制系统,.,订票过程,预订机票,.,一个简单的微波炉的状态机模型,.,微波炉的各种状态表,.,微波炉的各种驱动事件表,.,3、需求建模的基本方法,关联模型行为模型数据模型结构化模型面向对象模型其他方法,.,数据模型的用途,ERD用于描述系统实体间的对应关系,需求分析阶段使用实体关系图描述系统中实体的逻辑关系,在设计阶段则使用实体关系图描述物理表之间的关系。,.,图书管理系统的语义数据模型,.,数据字典,.,订单管理系统ERD,目录表,包,产品条目,运输商,库存条目,退货条目,运输,订单条目,订单,订单交易,客户,.,ERD中实体的初始表的集合,.,ERD中实体的初始表的集合,.,ERD中实体的初始表的集合,.,带主键的实体表,.,带主键的实体表,.,带主键的实体表,.,3、需求建模的基本方法,关联模型行为模型数据模型结构化方法面向对象模型其他方法,.,结构化方法,事件表关联图DFD片段数据流图(DFD)数据字典(DD)系统流程图位置矩阵数据矩阵工作流模型,.,例:电话订购系统(RMO),以RMO的电话定货为例来说明过程需求的叙事描述:”当客户打来电话时,我首先询问他们以前是否通过电话向我们订过货。接着我想办法问出他们的客户ID号,这些对应的客户号可以在商品目录的邮寄标签上找到。如果他们不清楚客户号的话,我就要根据他们的名字来查找,其中要进行一系列的排除,例如,查找北京的所有王红的客户,直到找到要找的那一个为止。接下来,我问他们看的是哪一本商品目录,有时他们看的是过期目录。如果有这种情况,我就向客户解释:目录中的商品仍有供应,但价格也许会有变动。当然客户会告诉我商品所在页码,但由于目录是过期的,因此这对我毫无用处。我必须让客户告诉我商品号“,.,事件和系统需求,事件的类型识别事件RMO实例中的事件关注每个事件,.,(1)事件的类型,外部事件临时事件状态事件,系统之外发生的事件,通常都是由外部实体或动作参与者触发的。,由于到达某一时刻所发生的事件。,当系统发生了需要处理的情况时所引发的事件,.,要定义的外部事件包括:,外部实体的需求触发一个事务处理外部实体想获取某些信息数据发生改变,需要更新管理部门想获取某些信息,.,确定临时事件:,分析员通过询问系统在某一最后期限之前必须完成的任务来确定临时事件。期限之前应该生成哪些输出结果?在这期限到达时需要系统完成哪些处理任务。,.,要定义的临时事件包括:,所需的内部输出结果管理部门报表(汇总或异常报表)操作报表(详细的事物处理)综述、状况报表(包括工资单)所需的外部输出结果结算单、状况报表、帐单、备忘录,.,状态事件的例子:,产品的销售导致了库存记录的变化,当库存降到了需要重新定货点之下时,就有必要重新定货。该状态事件可以被命名“到达定货点”。通常状态事件作为外部事件的结果而发生。状态事件与临时事件相似,唯一不同的地方在于,状态事件无法定义事件发生时刻。,.,事件和系统需求,事件的类型识别事件RMO实例中的事件关注每个事件,.,(2)识别事件,事件/条件和响应:有时候很难区分事件和一系列导致该事件发生的条件。,.,例:一系列导致影响系统事件的行为,客户想买一件新衬衫客户开车来到购物中心客户在甲商店试穿衬衫客户又进乙商店客户在乙商店试穿衬衫客户购买一件衬衫(该事件直接影响系统),.,区分外部事件和系统响应,当客户购买衬衫时,系统需要信用卡号码,客户提供信用卡,那么,提供信用卡的行为是一个事件吗?,.,在本例中,这不算是一个事件,它只是在处理原始交易时发生的一部分交易行为。,.,如何区分事件还是交互行为?,二者之间是否有较长的停顿或间隔。系统能毫无中断地完成事物处理吗?,.,在本例不算。系统记录下这次交易,然后开始处理其他事情。系统并没有终止下来等待支付行为结束,而是在此后发生一个独立的事件,该事件导致系统给客户发一个帐单(这个事件是一个临时事件:该发送月底帐单了)。最后,又发生了另一个外部事件(客户支付帐单)。,.,事件时序:跟踪事物处理的生命周期,例如增加一个新客户所引发的所有可能处理。客户想要一本商品目录客户想确定商品信息是否有效客户发送订单客户修改或取消订单客户查询订单状态客户修改帐户信息客户退货,.,技术依赖事件和系统控制,分析员要关心哪些对系统很重要、但又不直接影响用户和事务处理的事件。这样的事件一般包括设计选择和系统控制。在分析阶段,分析员会将这些事件暂时放在一边,然后,在设计阶段考虑这些事件。系统控制:为保证系统完整性而加入的防范和安全程序。,.,在设计阶段前可以忽略的事件,用户要登录系统用户想更改口令用户想改变性能设置系统崩溃,需要恢复数据库备份数据库需要用户更改口令,.,事件和系统需求,事件的类型识别事件RMO实例中的事件关注每个事件,.,RMO实例中的事件,外部事件临时事件,.,外部事件,顾客想确定商品信息的有效性顾客发送订单顾客修改或取消订单顾客或管理人员想查看订单状态发货部门按订单发货发货部门确认延期定货顾客退货潜在顾客索要商品目录顾客修改帐户信息市场部门想给顾客发送促销材料管理人员调整对顾客的收费销售部门修改商品目录促销部门开始促销某种商品销售部门制定新的商品目录,.,临时事件,生成订单汇总报表生成交易汇总报表生成完成情况汇总报表生成未来顾客活动报表生成顾客调整/打折报表生成商品目录报表,.,事件和系统需求,事件的类型识别事件RMO实例中的事件关注每个事件,.,关注每个事件,事件表:一个事件列表,该表以各个事件为行、各个事件的关键信息为列。,.,事件表中每一个事件的信息,.,事件表中每一个事件的信息,事件触发器来源动作响应目的地,引起系统去执行某种操作的事件,用来通知系统某一事件发生了,这一事件可以是需要处理的数据到达了或到了一个时间点。对外部事件而言,就是进入系统的数据。对临时事件来说,就是定义好的、触发系统运行处理过程的时间点。,为系统提供数据的外部实体或参与者。对外部事件而言,外部实体或参与者是数据进入系统的来源。,当事件发生时,系统做了什么操作?,系统产生了什么样的输出结果?,哪个外部实体获得了产生的输出结果?,.,RMO顾客支持系统的完整事件表,.,RMO顾客支持系统的完整事件表,.,RMO顾客支持系统的完整事件表,.,RMO顾客支持系统的完整事件表,.,RMO顾客支持系统的完整事件表,.,RMO顾客支持系统的完整事件表,.,结构化方法,事件表关联图DFD片段数据流图(DFD)数据字典(DD)系统流程图位置矩阵数据矩阵工作流模型,.,大学课程注册系统的关联图,.,RMO客户支持系统的关联图,.,结构化方法,事件表关联图DFD片段数据流图(DFD)数据字典(DD)系统流程图位置矩阵数据矩阵工作流模型,.,数据流程图的符号,.,一个DFD演示处理“查找可用条目”,.,数据流程图中的概念,外部实体:在系统边界之外的个人或组织,它提供数据输入或接受数据输出。过程:在DFD中的一个符号,它代表从数据输入转换到数据输出的算法或程序。数据流:在DFD中的箭头,它表示在过程、数据存储和外部实体之间的数据移动。数据存储:保存数据的地方,以便将来由一个或多个过程来访问这些数据。,.,DFD整合了事件表和ERD,.,数据流程图和抽象水平,抽象水平:能把系统分解成一个逐渐细化的分层集合的建模技术。数据流程图能够表现系统高层和低层概念。在一个DFD中高层次过程可以分解成若干独立的、低层次的、详细的DFD,详细的DFD的过程可以进一步分解成其他的图形以便提供多层次或多水平的抽象。,.,关联图,关联图:指描述系统高层结构的DFD。所有的外部实体和进出系统的数据流都画在一张图中,并且整个系统被表示成一个过程。关联图表达系统边界很有用。,.,大学课程注册系统的关联图,.,DFD片段,一个DFD片段是为事件清单中的每个事件创建的。每个DFD片段是一个显示系统如何响应某个事件的独立模型。,.,课程注册系统的DFD片段,.,事件划分的系统模型,DFD片段的完全集可以组合到一个叫做事件划分的系统模型或0层图中。0层图通常在单个的DFD中显示完整的系统,它比关联图包含更多的细节。最高层的DFD是系统的关联图,在关联图下方的DFD是0层图。0层图是关联图中对过程的分解。,.,课程注册系统的DFD抽象层次图,.,课程安排的物理DFD,.,课程注册系统的DFD抽象层次图,.,RMO客户支持系统的DFD片断,.,RMO客户支持系统的DFD片断,.,课程注册系统的DFD抽象层次图,.,RMO客户支持系统包含20个事件,所以,在事件划分的系统模型(0层图)中应该有20个过程。但这样的一个图将会很庞大且不易阅读。一个通常的解决办法是把系统分解为子系统。也即要找到事件并定义组成子系统的事件组。,.,RMO子系统和每个子系统事件,订单输入子系统订单完成子系统客户维护子系统目录维护子系统,.,订单输入子系统,客户想要检查可用项目客户发出订单客户改变或取消订单该产生订单汇总报表了该产生交易汇总报表了,.,订单完成子系统,客户或管理员想查看订单状态发运部完成一个订单发运部标识一个延期订单客户退货(这个项目有缺陷、客户改变想法、全部或部分退回)该产生完成汇总报表了,.,客户维护子系统,潜在客户需要一份目录表该产生潜在客户活动报表了客户更新帐户信息市场部想发促销材料给客户管理人员调整客户费用(校正错误做出让步)该产生客户调整/让步报表,.,目录维护子系统,销售规划部更新目录(增加、改变、删除、改变价格)销售规划部创建特定产品促销销售规划部创建一新目录该产生目录活动报表了,.,当子系统定义好,DFD集合就一个个相互联结起来。关联图分解为一个子系统DFD,而子系统DFD进一步分解为事件划分的DFD集合。,.,当定义子系统时DFD抽象层次关系,.,RMO子系统的DFD,.,订单输入子事件划分模型,.,5、分解过程以查看一项活动更详细的信息,有时一些DFD片段包括许多处理,这些处理需要系统分析员做更详细的研究。,.,创建新订单的一个更详细的图,.,结构化方法,事件表关联图DFD片段数据流图(DFD)数据字典(DD)系统流程图位置矩阵数据矩阵工作流模型,.,决策表和决策树,决策表:一种处理逻辑的表格表示方法,其中包括决策变量、决策变量值、参与者或公式。决策树:使用像树枝一样的线条对过程逻辑进行图形化的描述,.,构建决策表的步骤:,确定决策变量和它的可能取值;把每一个决策变量值数目的乘积计算出来作为计算决策变量的所有可能的组合数;画一个表,这个表有比第2步所计算出来的数目多一个栏目(这多出的栏用于写决策变量名、过程动作或计算的描述)。这个表应为每一个决策变量、处理动作和计算公式开辟一行;把可能取值数目最小的决策变量放在第一行,在第一列写下这个变量名,把余下的列按这个变量取值进行分组;,.,构建决策表的步骤:,把下一个可能取值数目次小的决策变量放在第二行,在第一列写下这个变量名。计算该变量和上面所有变量的取值数目的乘积,把所得的值作为这一列分组数来划分余下的列,并把值以规定模式插入其中;按第5步的方法继续插入行,直到所有的变量均已考虑在这个表中;为每一步计算或动作加一行。为那些在同一列但在该单元上面出现的决策变量组合插入适当的常数值或公式。如果当决策变量出现单元上方列中所示值时如果动作执行了,则应该在同一列做一个打勾标志。,.,例:计算运输费用决策表,.,例:一个有多动作行的简单决策表,.,计算运输费用决策树,.,数据流定义,定义:数据流内容和内部结构的文本描述。例如:一个简化的“新订单”数据流包括客户名、信用卡号码、商品种类数及每一类的数量。,.,表示方法:,列出所有数据元素的数据流定义代数公式的数据流定义,.,列出所有数据元素的数据流定义,客户姓名客户地址信用卡信息商品代码质量,.,代数公式的数据流定义,顺序:以确定次序连接2个或多个分量。选择:从2个或多个可能的元素中选取一个重复:把指定的分量重复0次或多次可选:1个分量是可有可无的,.,代数公式的数据流定义,=:定义为+:连接2个分量:从方括弧内列出的若干个分量中选择一个,用|分开供选择的分量:重复花括弧中的分量():圆括弧中的分量可有可无,.,代数公式的数据流定义,新订单=客户姓名+客户地址+信用卡信息+,.,RMO客户支持系统的一个样例报表,.,RMO产品与条目报表的数据流定义,.,结构化方法,事件表关联图DFD片段数据流图(DFD)数据字典(DD)系统流程图位置矩阵数据矩阵工作流模型,.,开始,制定出访计划,出访计划表,临时出访计划表,计划是否落实,结束,出访组团登记,出访团组基本情况登记表,计划是否落实,出访组团登记,1,.,1,是否本单位人员,是否需要护照办理,申请护照,护照管理,签证管理,结束,申请出国护照事项表,护照卡,申请出国签证事项表,护照登记表,Y,Y,N,N,.,结构化方法,事件表关联图DFD片段数据流图(DFD)数据字典(DD)系统流程图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论