软件需求提取与分析精.ppt
《软件需求提取与分析精.ppt》由会员分享,可在线阅读,更多相关《软件需求提取与分析精.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件需求提取与分析第1页,本讲稿共50页需求分析的重要性需求分析的重要性 需求分析的目标是为系统设计和实现提供足够的指需求分析的目标是为系统设计和实现提供足够的指导和信息支持。如果需求分析不充分,则设计和实现很导和信息支持。如果需求分析不充分,则设计和实现很难进行;如果设计和实现中涉及的内容无法与需求建立难进行;如果设计和实现中涉及的内容无法与需求建立对应关系,则显得多余。对论文而言,就是失败之作。对应关系,则显得多余。对论文而言,就是失败之作。软件开发类论文评价的基本标准之一:需求与设计和软件开发类论文评价的基本标准之一:需求与设计和实现的一致性,即任何需求必须在设计和实现中得到体现,实现的
2、一致性,即任何需求必须在设计和实现中得到体现,任何设计与实现必须与需求有对应关系。任何设计与实现必须与需求有对应关系。第2页,本讲稿共50页需求分析概述需求分析概述 在传统的软件工程中,需求分析作为软件生存周期的一个阶段,在传统的软件工程中,需求分析作为软件生存周期的一个阶段,尽管有需求获取和分析的两个任务,这两个任务没有严格地划分尽管有需求获取和分析的两个任务,这两个任务没有严格地划分时间段,在需求获取过程中要进行分析,在分析过程中要不断地时间段,在需求获取过程中要进行分析,在分析过程中要不断地进行调研和完善。需求获取和需求分析的工具都是采用数据流图进行调研和完善。需求获取和需求分析的工具都
3、是采用数据流图和数据字典。明确地指出需求分析报告主要用于用户交流。和数据字典。明确地指出需求分析报告主要用于用户交流。在统一过程和在统一过程和UMLUML提出后,特别是软件迭代开发方法提出后,把提出后,特别是软件迭代开发方法提出后,把需求和分析分成了两个不同的阶段,有时也叫需求获取(或需求捕获)需求和分析分成了两个不同的阶段,有时也叫需求获取(或需求捕获)和需求分析,每个阶段有完全不同的目标和任务,包括建模工具和建立和需求分析,每个阶段有完全不同的目标和任务,包括建模工具和建立的模型都完全不同。需求捕捉阶段主要采用用例模型捕捉功能需求,需的模型都完全不同。需求捕捉阶段主要采用用例模型捕捉功能需
4、求,需求分析阶段主要采用对象模型,建立领域对象间的协作关系。需求获取求分析阶段主要采用对象模型,建立领域对象间的协作关系。需求获取所建立的模型主要用于与用户交流,需求分析模型是开发组织自己的文所建立的模型主要用于与用户交流,需求分析模型是开发组织自己的文档,不用于与用户交流。档,不用于与用户交流。第3页,本讲稿共50页需求分类需求分类 (1)功能性需求)功能性需求-系统应该提供什么功能。系统应该提供什么功能。(2)非功能需求)非功能需求-系统的特定特性或约束。系统的特定特性或约束。软件需求软件需求功能需求功能需求非功能需求非功能需求质量属性质量属性约束约束运行期质量属性运行期质量属性开发期质量
5、属性开发期质量属性第4页,本讲稿共50页软件运行期质量软件运行期质量 用户在使用软件过程中对软件质量的要求,包括:用户在使用软件过程中对软件质量的要求,包括:易用性易用性:指软件系统容易使用的程度。:指软件系统容易使用的程度。性能性能:指软件系统及时提供相应服务的能力。性能包括响应时间:指软件系统及时提供相应服务的能力。性能包括响应时间、吞吐量、持续高速性。、吞吐量、持续高速性。安全性安全性:指软件系统同时兼顾向合法用户提供服务,以及:指软件系统同时兼顾向合法用户提供服务,以及防止非授权使用的能力。防止非授权使用的能力。持续可用性持续可用性:指软件长时间无故障运行的能力。如有的系统要求提:指软
6、件长时间无故障运行的能力。如有的系统要求提供供7*247*24小时服务就是持续可用性的要求。小时服务就是持续可用性的要求。可伸缩性可伸缩性:指当用户数量和数据量增加时,软件系统维持高:指当用户数量和数据量增加时,软件系统维持高服务质量的能力。服务质量的能力。互操作性互操作性:指本软件系统与其它软件系统交换数据和相互调用:指本软件系统与其它软件系统交换数据和相互调用服务的难易程度。服务的难易程度。可靠性可靠性:软件系统在一定时间内无故障运行的能力。:软件系统在一定时间内无故障运行的能力。鲁棒性鲁棒性:也称健壮性、容错性。有时也把持续可用性、鲁棒性也:也称健壮性、容错性。有时也把持续可用性、鲁棒性
7、也归类为可靠性。归类为可靠性。第5页,本讲稿共50页软件运行期质量软件运行期质量 为保证软件的可维护性而在软件开发过程中应该关注的软为保证软件的可维护性而在软件开发过程中应该关注的软件质量属性,有时将其称为隐含质量属性。包括:件质量属性,有时将其称为隐含质量属性。包括:可扩展性可扩展性:为适应新需求或需求变化为软件增加功能的能力。:为适应新需求或需求变化为软件增加功能的能力。有时称为灵活性。有时称为灵活性。可重用性可重用性:重用软件系统或其一部分的能力的难易程度。:重用软件系统或其一部分的能力的难易程度。可测试性可测试性:对软件测试以证明满足需求规约的难易程度。:对软件测试以证明满足需求规约的
8、难易程度。在实际工作中主要指进行单元测试,插桩测试的难易程度。在实际工作中主要指进行单元测试,插桩测试的难易程度。可维护性可维护性:在修改:在修改BugBug、增加功能、提高质量属性等而定位修、增加功能、提高质量属性等而定位修改点并适时修改的难易程度。改点并适时修改的难易程度。可移植性可移植性:将软件系统从一个运行环境转移到另一个运行环境的:将软件系统从一个运行环境转移到另一个运行环境的难易程度。难易程度。易理解性易理解性:设计被开发人员理解的难易程度。:设计被开发人员理解的难易程度。任何一个开发期质量属性的满足都可能增加软件开发成本。任何一个开发期质量属性的满足都可能增加软件开发成本。第6页
9、,本讲稿共50页约束约束 约束不是行为,是设计或项目的限制条件,强调其限制性,约束不是行为,是设计或项目的限制条件,强调其限制性,新系统的开发无法回避这些事实或因素。约束主要包括:新系统的开发无法回避这些事实或因素。约束主要包括:系统开发的资源约束系统开发的资源约束:如网络环境、操作系统、数据库管理系:如网络环境、操作系统、数据库管理系统、开发工具、硬件等。新系统的开发必须考虑这些资源的有效利统、开发工具、硬件等。新系统的开发必须考虑这些资源的有效利用和限制。用和限制。接口约束接口约束:本系统关联的系统是哪些,新系统可能接受其它:本系统关联的系统是哪些,新系统可能接受其它系统提供的数据作为输入
10、,其输出数据作为其它系统的输入。系统提供的数据作为输入,其输出数据作为其它系统的输入。操作约束操作约束:系统操作环境中的管理要求。如身份认证必须通:系统操作环境中的管理要求。如身份认证必须通过第三方认证机构的认证,以网络为基础的业务处理,在网络不过第三方认证机构的认证,以网络为基础的业务处理,在网络不通的情况下如何处理业务等。通的情况下如何处理业务等。政策约束政策约束:行业标准,企业标准,法律法规、政府规章等。:行业标准,企业标准,法律法规、政府规章等。第7页,本讲稿共50页需求的层次性需求的层次性 组织的不同层次人员对需求不同,通常有三个层次:组织的不同层次人员对需求不同,通常有三个层次:业
11、务需求业务需求:组织要达到的目标:组织要达到的目标业务目标业务目标 用户需求用户需求:用户使用系统来做什么:用户使用系统来做什么 行为需求行为需求:开发人员需要实现什么:开发人员需要实现什么 高管人员希望软件系统能帮助他们达到业务目标。高管人员希望软件系统能帮助他们达到业务目标。系统实际使用者希望系统提供的能力能辅助他们更好地完成日常业系统实际使用者希望系统提供的能力能辅助他们更好地完成日常业务工作。务工作。开发人员为满足用户诸多需求而觉察到的需求。开发人员为满足用户诸多需求而觉察到的需求。高层管理人员的需求与系统实际使用人员的需求可以起到相互验证高层管理人员的需求与系统实际使用人员的需求可以
12、起到相互验证和印证的作用。如果不关注和印证的作用。如果不关注“高层管理人员高层管理人员”的要求,系统开发就没的要求,系统开发就没有明确的目标,系统的功能将是零散而脆弱的,极易受到变更的冲有明确的目标,系统的功能将是零散而脆弱的,极易受到变更的冲击。不满足开发人员的要求,软件的开发、维护和移植变得非常困击。不满足开发人员的要求,软件的开发、维护和移植变得非常困难。难。第8页,本讲稿共50页需求提取内容需求提取内容 确定业务目标确定业务目标 确定业务范围和业务流程确定业务范围和业务流程 建立用例模型建立用例模型 建立用例规约建立用例规约 确定非功能需求确定非功能需求第9页,本讲稿共50页确定业务目
13、标确定业务目标 业务目标系统开发中占有非常重要的位置,它明确规定了建立业务目标系统开发中占有非常重要的位置,它明确规定了建立该软件系统的最终目的。业务目标是客户方高层对未来系统的期望。该软件系统的最终目的。业务目标是客户方高层对未来系统的期望。通过确定业务目标可以避免系统解决的问题的层次太低而很快过时。通过确定业务目标可以避免系统解决的问题的层次太低而很快过时。项目业务目标要避免太抽象、太空洞,如项目业务目标要避免太抽象、太空洞,如“实现实现XXXX信息化信息化”。一个项目管理系统的业务目标定义为:。一个项目管理系统的业务目标定义为:帮助项目经理更好地控制项目帮助项目经理更好地控制项目 帮助项
14、目经理更有效地分配资源帮助项目经理更有效地分配资源 帮助项目成员之间更流畅地协作帮助项目成员之间更流畅地协作 通过细化业务目标,列出一组高度概括的功能性需求。如业通过细化业务目标,列出一组高度概括的功能性需求。如业务目标务目标“帮助项目经理更好地控制项目帮助项目经理更好地控制项目”的特性有:的特性有:任务管理任务管理 跟踪进度跟踪进度 查看报表查看报表 任务分配和重分配任务分配和重分配第10页,本讲稿共50页确定业务范围和业务流程确定业务范围和业务流程 业务目标的实现需要通过具体的业务领域(有时也称职业务目标的实现需要通过具体的业务领域(有时也称职能域)以及具体的业务及业务流程来体现,使业务目
15、标落实能域)以及具体的业务及业务流程来体现,使业务目标落实到实处。这将引起企业组织机构的调整和业务流程重组,以到实处。这将引起企业组织机构的调整和业务流程重组,以满足业务目标的要求。满足业务目标的要求。业务(有时也称业务过程):是需要做的相对独立的工作业务(有时也称业务过程):是需要做的相对独立的工作(或任务)。(或任务)。业务流程:是完成工作所经历的业务活动及顺序。业务流程:是完成工作所经历的业务活动及顺序。业务活动:是基本的、不可再分的最小功能单元(通常业务活动:是基本的、不可再分的最小功能单元(通常指一个人在一个地点一个不可间断的时间内可以完成的工作)指一个人在一个地点一个不可间断的时间
16、内可以完成的工作)。第11页,本讲稿共50页建立用例模型建立用例模型 所谓用户需求,就是用户希望软件系统能为他做什么。用所谓用户需求,就是用户希望软件系统能为他做什么。用例图技术是捕捉用户需求最合适的技术。用例名是用户需求最例图技术是捕捉用户需求最合适的技术。用例名是用户需求最直观、最简便的反映。业务流程分析将捕捉到大部分用例,但直观、最简便的反映。业务流程分析将捕捉到大部分用例,但不是全部用例,还需要补充一些与管理人员相关、但与具体业不是全部用例,还需要补充一些与管理人员相关、但与具体业务活动不一定直接相关的用例和与信息查询相关的用例。务活动不一定直接相关的用例和与信息查询相关的用例。第12
17、页,本讲稿共50页建立用例规约建立用例规约 用例是用户用例是用户“希望如何做希望如何做”的行为需求。这里的的行为需求。这里的“如何做如何做”是从用户角度看他们是从用户角度看他们“希望如何做希望如何做”,而不是软件系统是,而不是软件系统是如何做,所以还是属于需求捕捉的内容。用户如何做,所以还是属于需求捕捉的内容。用户“希望如何做希望如何做”是是软件系统软件系统“如何做如何做”的依据。的依据。在用例规约中,将详细定义用户对用例运行期间的质在用例规约中,将详细定义用户对用例运行期间的质量要求和约束。量要求和约束。不一定所有用例都要建立用例规约。有的用例使用不一定所有用例都要建立用例规约。有的用例使用
18、“用用例简述例简述”就足够了。如果一个用例基本事件流对需求分析就足够了。如果一个用例基本事件流对需求分析人员来说不是很清楚,而且可能涉及到非功能要求,就需人员来说不是很清楚,而且可能涉及到非功能要求,就需要用要用“用例规约用例规约”来详细描述。来详细描述。第13页,本讲稿共50页确定非功能需求确定非功能需求 通过对用例规约的分析和总结,归纳出系统的非功能需求,特通过对用例规约的分析和总结,归纳出系统的非功能需求,特别是用户对系统运行期的质量需求和约束。用例规约是系统运行期别是用户对系统运行期的质量需求和约束。用例规约是系统运行期质量需求和约束的主要来源。一般来说,开发期质量属性需求主要质量需求
19、和约束的主要来源。一般来说,开发期质量属性需求主要来自系统开发人员和维护人员,通过成为隐含的非功能需求。来自系统开发人员和维护人员,通过成为隐含的非功能需求。要善于抓住对用户来说至关重要的非功能需求,这种非功能需要善于抓住对用户来说至关重要的非功能需求,这种非功能需求往往决定系统的命运。如特殊的性能问题、特殊的安全性问题、求往往决定系统的命运。如特殊的性能问题、特殊的安全性问题、典型的运行机制问题。典型的运行机制问题。若存在与其它系统的交互,互操作性是必须考虑的。若存在与其它系统的交互,互操作性是必须考虑的。特定的约束对系统的制约是架构设计必须考虑的问题。特定的约束对系统的制约是架构设计必须考
20、虑的问题。第14页,本讲稿共50页需求建模方法需求建模方法 需求提取的建模包括业务建模和用例建模。需求提取的建模包括业务建模和用例建模。业务建模是确定项目对应的业务领域所包含的业业务建模是确定项目对应的业务领域所包含的业务和业务流程,并用所选择的业务流程描述工具进行务和业务流程,并用所选择的业务流程描述工具进行描述。描述。用例建模是以用例为基本单位来描述用户的功能用例建模是以用例为基本单位来描述用户的功能需求。需求。与用例模型相关的概念包括:参与者,用例,场景与用例模型相关的概念包括:参与者,用例,场景第15页,本讲稿共50页需求建模需求建模-参与者参与者 直接与系统交互的外部事物所扮演的角色
21、。直接与系统交互的外部事物所扮演的角色。参与者对系统而言是外部的;参与者对系统而言是外部的;参与者直接与系统交互,直接使用系统来支持其业务。参与者直接与系统交互,直接使用系统来支持其业务。强调参与者所扮演的角色,而不是特定的人或事物。强调参与者所扮演的角色,而不是特定的人或事物。时间可以作为参与者,通常用时间发生器来表示。时间可以作为参与者,通常用时间发生器来表示。参与者主要指系统业务功能的使用者。系统管理员不是这种意参与者主要指系统业务功能的使用者。系统管理员不是这种意义的参与者。因为他不是使用系统功能完成与单位业务有关的工义的参与者。因为他不是使用系统功能完成与单位业务有关的工作。他使用系
22、统的辅助功能实现对特定的人及其角色的管理,使作。他使用系统的辅助功能实现对特定的人及其角色的管理,使参与者在自己角色范围内使用系统。参与者在自己角色范围内使用系统。每个参与者使用一个具有业务意义的名称命名。每个参与者使用一个具有业务意义的名称命名。需求获取的首要任务就是识别主要参与者。需求获取的首要任务就是识别主要参与者。识别参与者是需求提取的首要任务,谁是系统的客户,他们需要系统识别参与者是需求提取的首要任务,谁是系统的客户,他们需要系统做什么,他们希望在什么时候、什么地点做,这些都是系统设计要考虑做什么,他们希望在什么时候、什么地点做,这些都是系统设计要考虑的重要因素。的重要因素。第16页
23、,本讲稿共50页需求建模需求建模用例用例 用例是参与者想要系统做的事情。具体表现为用户如何使用用例是参与者想要系统做的事情。具体表现为用户如何使用系统来达到其目标的一组情节。系统来达到其目标的一组情节。例如在超市,例如在超市,“处理销售处理销售”的用例描述为:一个顾客携带欲采购的的用例描述为:一个顾客携带欲采购的商品到达收费口。收银员使用系统输入商品信息,系统给出商品的清单商品到达收费口。收银员使用系统输入商品信息,系统给出商品的清单和累加值。顾客交款。收银员输入支付信息,系统对付款信息进行计算,和累加值。顾客交款。收银员输入支付信息,系统对付款信息进行计算,更新库存信息,并给出余额信息;系统
24、打印购物清单。顾客得到收据,更新库存信息,并给出余额信息;系统打印购物清单。顾客得到收据,然后携带商品离开。然后携带商品离开。只有对用例表现出的情节进行真实、完整、准确地描述,才能捕只有对用例表现出的情节进行真实、完整、准确地描述,才能捕捉到对系统需求有价值的东西。捉到对系统需求有价值的东西。第17页,本讲稿共50页需求建模需求建模用例的粒度用例的粒度 指导原则指导原则1 1:在进行需求获取时,应专注于:在进行需求获取时,应专注于“基本业务过程基本业务过程”(EBPEBP)级别的用例。)级别的用例。基本业务过程:由一个人在某个时间某个地点执行的一项任基本业务过程:由一个人在某个时间某个地点执行
25、的一项任务,这个任务是对某一个业务事件的反应,而且可以增加可度量务,这个任务是对某一个业务事件的反应,而且可以增加可度量的业务价值,并且能够保持数据状态的一致。的业务价值,并且能够保持数据状态的一致。用例没有层次结构的概念,即用例就是系统参与者要系统帮助用例没有层次结构的概念,即用例就是系统参与者要系统帮助干的一件不可细分的事情,不存在把一个用例分解成粒度更小的干的一件不可细分的事情,不存在把一个用例分解成粒度更小的用例。用例。EBPEBP级别的用例就是用户对系统的业务功能需求。在进行需求获取级别的用例就是用户对系统的业务功能需求。在进行需求获取时,应主要关注时,应主要关注EBPEBP级别的主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 需求 提取 分析
限制150内