第04章软件需求工程精编版

上传人:ahu****ng1 文档编号:143281209 上传时间:2020-08-27 格式:PPTX 页数:193 大小:844.14KB
返回 下载 相关 举报
第04章软件需求工程精编版_第1页
第1页 / 共193页
第04章软件需求工程精编版_第2页
第2页 / 共193页
第04章软件需求工程精编版_第3页
第3页 / 共193页
第04章软件需求工程精编版_第4页
第4页 / 共193页
第04章软件需求工程精编版_第5页
第5页 / 共193页
点击查看更多>>
资源描述

《第04章软件需求工程精编版》由会员分享,可在线阅读,更多相关《第04章软件需求工程精编版(193页珍藏版)》请在金锄头文库上搜索。

1、第四章 软件需求工程,软件工程课件,1,第四章 软件需求工程,4.1 软件需求工程基础 4.2 软件需求获取 4.3 传统的需求分析方法 4.4 面向对象的需求分析 4.5 快速原型化方法 4.6 软件需求规格说明 4.7 软件需求评审 4.8 软件需求管理,2,软件工程,4.1 软件需求工程基础,软件需求工程的基本任务是准确地回答“软件系统必须做什么?”这个问题。它在系统工程和软件设计之间起到桥梁的作用。 软件需求工程是软件生存周期中重要的一步,也是决定性的一步。只有通过软件需求工程的活动才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。,3,软件工程,软件

2、需求的定义和层次,1997年IEEE在软件工程标准词汇表对需求(requirement)所作出的定义为: 用户为解决某一问题或为达到某个目标所需要的条件或能力。(需方) 系统或系统部件为满足合同、标准、规格说明或其他正式的强制性文档所必须具有的条件或能力。(供方) 对在a) 和b) 中所描述的条件或能力的文档化说明。,4,软件工程,GBT 114572006信息技术 软件工程术语等同采用了这个定义。它从两个方面阐述了需求的含义: 从用户角度要求系统应具有的外部行为 从开发者角度要求系统应具有的内部特性 最后强调了需求一定要文档化。 软件需求包括 3 个不同的层次:业务需求、用户需求、功能需求和

3、非功能需求。 不同层次是从不同角度与不同程度反映着细节问题。,5,软件工程,业务需求(Business Requirement),业务需求反映了组织或客户高层次的目标要求。 业务需求主要来自于项目的投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。 业务需求描述了组织的愿景,即为什么要开发一个系统;系统的业务范围、业务对象、客户、特性、价值和各种特性的优先级别等。,6,软件工程,用户需求描述了要求系统必须完成的任务,即用户对系统的目标要求。 用户需求通常只涉及系统的外部可见行为,不涉及系统的内部特性。 用户需要是用户真正需要的东西,用户需求是用户对其需要的一种陈述,但这种陈

4、述可能与它们的需要不一致。 用户需求一般采用自然语言和直观图形相结合的方式描述,例如采用用例(Use Case)文档或场景(Scenario)等方式说明。,用户需求(user Requirement),7,软件工程,功能需求和非功能需求,功能需求定义了开发者应提供的软件功能或服务,但不涉及这些功能或服务的实现。 非功能需求则是对功能需求的补充,包括了对系统的各种限制和用户对系统的质量要求。 特性是指逻辑上相关的功能需求的集合以满足业务需求。 功能需求记录在软件需求规格说明(SRS)中。 非功能需求的描述如下:,8,软件工程,9,软件工程,10,软件工程,系统需求来自于系统分析和结构设计。 例如

5、,有一个电信计费系统,它包括许多业务规则,这些业务规则与企业方针、政府条例、会计准则、计算方法有关,它们本身并非软件需求,因为它们不属于任何特定的软件系统的范围,它们属于系统需求。,系统需求,11,软件工程,12,软件工程,所有的用户需求必须与业务需求一致。 功能需求必须从用户需求中提取,以满足用户对产品的要求从而完成其任务。 开发人员应根据功能需求来设计软件以实现必须的功能。功能需求从外部(用户角度)描述了软件系统所应具有的行为。 对一个复杂产品来说,软件功能需求也许只是系统需求的一个子集。,各种需求的关系,13,软件工程,非功能需求作为功能需求的补充,包括 产品必须遵从的标准、规范和合约;

6、 外部接口的具体细节; 性能要求; 设计或实现的约束条件及质量属性。 约束是指在软件产品设计和构造上的限制。 质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。 多角度描述产品对用户和开发者都极为重要。,14,软件工程,软件需求工程过程,软件需求工程阶段研究的对象是软件项目的用户需要。需要注意的是, 必须全面地理解用户的各种需求 分析和澄清模糊的用户需求 准确地表达被接受的用户需求 只有经过确切描述的软件需求才能成为软件设计的基础。 软件需求工程需要执行的活动包括:,15,软件工程,1)确定目标系统将要面对的各类用户; 2)从各类用户的代表那里收集需求; 3)了解用户的任务和目标,

7、以及这些任务要实现的业务目标; 4)分析从用户那里得到的信息,将用户的任务和目标与软件的功能需求、非功能需求、业务规则、解决方案建议及其他无关信息区分开来; 5)将顶层的需求分配到软件系统构架内定义好的软件成分中; 6)了解各个质量属性的相对重要性;,16,软件工程,8)协商需求的实现优先级; 9)将收集的用户需求表述为书面的需求规格说明和模型; 10)审阅需求文档,以确保在认识上与用户需求相一致。应在开发组接受需求之前解决所有分岐。 软件开发的目标是实现目标系统的物理模型,即确定待开发系统的各种软件成分,并将功能和信息结构分配到这些软件成分中。但是目标系统的具体物理模型是由当前系统的具体物理

8、模型经过一系列的转换得到的。,17,软件工程,软件需求工程的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统 “做什么” 的问题。,18,软件工程,Abran和Moore的软件需求工程过程模型(未包括需求管理),19,软件工程,需求获取 1) 定义需求开发过程 2) 定义项目愿景和范围 3) 确定用户群 4) 选择用户代理人 5) 确定用例 6) 确定系统事件和响应 7) 描述软件的功能和性能 8) 指明软件与其他系统元素的接口 9) 建立软件必须满足的约束,20,软件工程,分析建模 分析可行性 确定需求优先级 为需求建模 创建数据字典 将需求分配至各子系统 应用质量功能进

9、行调整 分析模型为日后软件设计提供了可被翻译成数据、体系结构、接口和处理过程设计的模型。,21,软件工程,需求描述 需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据。 采用SRS模板 确定需求来源 唯一标识每项需求 记录业务规范 定义质量属性 需求有效性验证 审查需求文档,确定合格标准,22,软件工程,4.2 软件需求获取,需求获取的目标是确定用户“需要”什么样的软件产品,即新的软件必须能够做什么。 没有专业的系统分析人员,用户很难了解到需要开发什么相关信息和功能;另一方面,没有与用户的交流,系统分析人员也很难弄清客户真正需要什么。 发现用户需求的过程称为需求获取。一旦提出了最初的

10、需求,进一步推敲、细化和扩充的过程称为分析建模。,23,软件工程,需求获取过程,需求获取包括以下活动: 发现和分析问题 发现问题症结,并分析问题的原因/结果关系。 获取需求 根据对问题的理解定义需求。 使用调查研究方法收集信息; 遵循需求获取框架,按照三个成分观察:即数据、过程和接口。 需求归档 以草稿形式归档调查结果。形式有用例、决策表、需求表等。,24,软件工程,需求获取技术的基本特征,好的需求获取技术,对于规范需求获取活动,高效准确地获取需求定义,是十分重要的。 好的需求获取技术,应具有如下基本特征: 提供便于沟通的工具,如易于理解的语言和直观的图表; 提供定义系统边界(交互)的方法;

11、提供支持抽象的机制,如“分解”、“映射”等;,25,软件工程,鼓励分析员使用面向问题的术语思考问题,编写文档; 为分析员提供多种可供选择的解决方案; 适应需求的变化。 适于以上特征的需求获取方法: 基于数据流图的结构化分析方法; 基于用例(use case)的建模方法。 需求获取技术的关键点在于: 深入浅出 需求获取要尽可能全面、细致。,26,软件工程,获取的需求是个全集,系统真正实现的是个子集。分析时的调研内容并不都纳入到新系统中,目的在于以后的扩充。 以流程为主线 在与用户交流的过程中,应该用流程将所有的内容串起来。如信息、组织结构、处理规则等。这样便于交流沟通。 流程描述有宏观,也有微观

12、。既要强调总体的业务流程、全生存周期的业务流程,又要对流程细化,有分支的业务流程。,27,软件工程,需求获取的主要步骤,开发高层的业务模型 理解应用领域,即目标软件的应用环境。如银行、电信公司、书店等。 一旦系统分析人员对该领域有了充分了解,就可以建立一个业务模型,描述用户的业务过程,确定用户的初始需求。 分析出企业的业务实体,开发或选取必需的构件,建立稳定的软件体系结构。 通过迭代,更深入了解应用领域,再回过头来推敲业务模型。,28,软件工程,定义项目的视图和范围 在项目开始之前,在所有干系人中竖立一个共同的愿景,明确供需各方的权利和义务,并发布得到共识的、对项目目标的理解。 在共同愿景的确

13、立过程中要做两件事情: 定义项目范围:项目范围描述项目该做什么,不该做什么,可通过陈述和图表(如用例图或数据流图)来表达; 定义高层需求:高层需求不涉及过多的细节,主要通过它表示系统的概貌,从而建立需求模型。,29,软件工程,寻求需求的来源 软件需求的来源取决于目标系统的性质和开发环境。典型的需求来源是: 与潜在用户进行交谈和讨论 描述现有产品或竞争产品的文档 系统需求规格说明 当前系统的问题报告和改进要求 市场调查和用户问卷调查 观察用户如何工作 用户工作的场景分析 事件和响应,30,软件工程,根据所受限制不同,不同类型的应用系统能够从用户那里获取需求的比例也不同。 所谓限制,是指受客观物理

14、规律的限制。,31,软件工程,如导弹制导系统更多地受物理运动定律的限制,而非人的决策。视频游戏的大部分需求依赖人,因为它是一个想象出来的产品。 应用受到的限制越少,能从人们那里获得的需求比例越大。 识别用户类和用户代表 确定目标系统的不同用户类型; 挑选出每一类用户和其他项目相关者的代表并与他们一起工作; 商定谁是项目需求的决策者。,32,软件工程,不同用户类可能还有不同的非功能需求。 不同用户类的需求甚至可能发生冲突,导致需求不一致。 即使所有利益相关者的需求一致,也可能由于实现代价高昂,需求不能得到完全满足。 用户类可以是人,也可以是与系统打交道的其他应用程序或硬件部件。 分析员必须在项目

15、初期便确定产品有哪些不同的用户类,并描述它们的特点,这样就能从每个重要用户类的代表那里获取用户需求。,33,软件工程,每一个项目,包括企业信息系统、商业应用软件、数据包、集成系统、嵌入式系统、互联网Internet应用程序等,都需要有合适的用户来提供用户需求。 确定目标系统的业务工作流 具体到当前待开发的应用系统,确定系统的业务工作流和主要的业务规则。 例如,针对信息系统的需求调研方法如下: 1)调研用户组织结构、岗位设置、职责定义,从功能上区分子系统,明确系统范围和目标。,34,软件工程,调研每个子系统的处理流程、功能与处理规则,收集原始信息资料,用数据流来表示物流、资金流、信息流三者的关系

16、。 对调研内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。将操作层、管理层、决策层的需求既联系又区分开来,形成一个需求的层次。 对与用户沟通的情况及时总结归纳,整理调研结果,初步构成需求基线。 需求调研的形式可根据需求的来源来确定。,35,软件工程,访谈和文档记录 大部分需求获取是人与人沟通的活动,这些活动经过精心组织,以准确获得最好的效果。 准备和访谈客户的过程如下: 访谈之前 策划访谈的目标和内容: 通过查阅组织的组织结构图,搞清业务部门的各种角色,选择访谈的主要对象 预约访谈时间 准备访谈内容,拟定一些具体问题,36,软件工程,访谈过程中 引导访谈对象。发现业务流程背后的用户需求: What:系统要处理的业务内容是什么。 When:系统业务过程的主要活动什么时候发生,持续时间有多长。 Who:系统业务过程的各个活动中会有哪些相关的人、物、事(系统)。 Why:为什么会出现这样的问题。 How:为完成系统的业务目标所采用的方法。,37,软件工程,不管用户说什么,分析员首先要分析,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号