《第2章 需求的基础理论优秀课件.ppt》由会员分享,可在线阅读,更多相关《第2章 需求的基础理论优秀课件.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 需求的基础理论第1页,本讲稿共59页主要内容1.需求的涵义2.需求的类型3.需求工程的路线4.优秀需求的特性5.常见的需求错误第2页,本讲稿共59页1.需求的涵义需求的定义n(1)用户为了解决问题或达到某些目标所需要的条件或能力;n(2)系统或系统部件为了满足合同、标准、规范或其它正式文档所规定的要求而需要具备的条件或能力;n(3)对(1)或(2)中的一个条件或一种能力的一种文档化表述。第3页,本讲稿共59页1.需求的涵义问题域与解系统(1)n软件系统与外部环境第4页,本讲稿共59页1.需求的涵义问题域与解系统n当现实的状况与人们期望的状况产生差距时,就产生了问题。n要解决问题,就需要
2、改变现实当中某些实体的状态或改变实体状态变化的演进顺序,使其达到期望的状态或演进顺序。n这些实体和状态构成了问题解决的基本范围,称为该问题的问题域(Problem Domain)n软件系统通过影响问题域,能够帮助人们解决问题,称为解系统 第5页,本讲稿共59页1.需求的涵义共享现象n软件系统能够与问题域进行交互和相互影响的原因在于,软件系统中的某些部分对问题域中的某些部分具有模拟特性。n换句话说,软件系统当中含有问题域某些部分的模型(或模拟),常见的模型包括数据模型、对象模型、处理模型等。n问题域中的某些信息能够和模型中的信息建立映射关系 n这些通过映射建立的共同知识,就是问题域和解系统之间的
3、共享现象 第6页,本讲稿共59页1.需求的涵义需求n需求是用户对问题域当中的实体状态或事件的期望描述 qR2.2.3-1:一旦书籍被借出,则在归还之前,它不能被再次借阅。qR2.2.3-2:在归还的书超过30天的归还期限时,归还后应该进行超期处罚。n直接需求n间接需求第7页,本讲稿共59页1.需求的涵义规格说明n规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征n主要包括两个部分(如图23(b)):q(1)对共享现象(模型)的描述;q(2)系统对共享现象所施加的操作的描述。n也可以看作是一种需求q完全针对系统行为发出的期望q一种理想的、完全不需要进行任何额外努力即可以转换为
4、系统行为的需求。第8页,本讲稿共59页1.需求的涵义问题域特性 n问题域自治的规律性称为问题域特性q包括结构特性和行为特性等 n问题域特性的重要性q要想解决问题,就需要了解问题域特性,将解决方案和问题域特性结合起来 q要防止解系统的引入在问题域当中引发未预见的连锁反应 n需要关注的问题域特性q间接特性 q约束和假设 第9页,本讲稿共59页1.需求的涵义从问题域、需求和规格说明的关系看需求工程 n描述明确的问题域特性E;定义良好的系统行为S;预期的需求Rn需求工程的目的就是根据E,构建S,使得 n需求工程的困难之处:q(1)不存在描述明确的E;q(2)不存在确定的针对S的评估标准R;q(3)是一
5、个创造性的过程。n需求工程的主要工作 q需求开发,确定 R q研究问题背景,描述问题域特性E q构建解系统,描述解系统行为S,使得 第10页,本讲稿共59页主要内容1.需求的涵义2.需求的类型1.分类方式2.功能需求3.性能需求4.质量属性5.对外接口6.约束3.需求工程的路线4.优秀需求的特性5.常见的需求错误第11页,本讲稿共59页2.1 需求的分类方式(1)n功能需求(Functional Requirement):q和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望系统所能够执行的活动,这些活动可以帮助用户完成任务。功能需求主要表现为系统和环境之间的行为交互。n性能需求(P
6、erformance Requirement):q系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率、内存使用率等。n质量属性(Quality Attribute):q系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求,例如可靠性程度、可维护性程度等。n对外接口(External Interface):q系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口、数据库接口等等。n约束 q进行系统构造时需要遵守的约束,例如编程语言、硬件设施等 第12页,本讲稿共59页2.1 需求的分类方式(2)n系统需求(System Requirement)q硬件需求(Hardwar
7、e Requirement)q软件需求(Software Requirement)q其他需求 第13页,本讲稿共59页2.2 功能需求层次性第14页,本讲稿共59页2.2 功能需求业务需求n系统建立的战略出发点,表现为高层次的目标(Objective),它描述了组织为什么要开发系统 n为了满足用户的业务需求,需求工程师需要描述系统高层次的解决方案,定义系统应该具备的特性(Feature)n参与各方必须要对高层次的解决方案达成一致,以建立一个共同的前景(Vision)n特性说明了系统为用户提供的各项功能,它限定了系统的范围(Scope)第15页,本讲稿共59页2.2 功能需求用户需求n执行实际工
8、作的用户对系统所能完成的具体任务的期望,描述了系统能够帮助用户做些什么q直接用户q间接用户 n对所有的用户需求,都应该有充分的问题域知识作为背景支持 n特性q模糊、不清晰 q多特性混杂 q多逻辑混杂 第16页,本讲稿共59页2.2 功能需求系统需求n用户对系统行为的期望,一系列的系统行为联系在一起可以帮助用户完成任务,满足业务需求 n系统需求可以直接映射为系统行为,定义了系统中需要实现的功能,描述了开发人员需要实现什么 n将用户需求转化为系统需求的过程是一个复杂的过程q首先需要分析问题领域及其特性,从中发现问题域和计算机系统的共享知识,建立系统的知识模型;q然后将用户需求部署到系统模型当中,即
9、定义系列的系统行为,让它们联合起来实现用户需求,每一个系统行为即为一个系统需求。q该过程就是需求工程当中最为重要的需求分析活动,又称建模与分析活动。第17页,本讲稿共59页2.2 功能需求从功能需求的层次性看需求开发第18页,本讲稿共59页2.3 性能需求 n速度(Speed),系统的响应时间,例如PR2.3.3-1。qPR2.3.3-1:所有的用户查询都必须在10秒内完成。n容量(Capacity),系统所能存储的数据量,例如PR2.3.3-2。qPR2.3.3-2:系统应该能够存储至少10万条销售记录。n吞吐量(Throughput),系统在连续的时间内完成的事务数量,例如PR2.3.3-
10、3。qPR2.3.3-3:解释器每分钟应该至少解析5000条没有错误的语句。n负载(Load),系统可以承载的并发工作量,例如PR2.3.3-4。qPR2.3.3-4:系统应该允许200个用户同时进行正常的工作。n实时性(Time-Critical),严格的实时要求,例如PR2.3.3-5。qPR2.3.3-5:监测到病人异常后,监控器必须在0.5秒内发出警报。第19页,本讲稿共59页2.4质量属性n系统为了满足规定的及隐含的所有要求而需要具备的要素称为质量 n质量属性是为了度量质量要素而选用的特征 n质量模型就是能够为质量需求的描述和评价提供工作基础的特征集及特征之间的联系 n质量属性的重要
11、性 q对设计的影响很大 q对越复杂的系统越为重要 qRobert19901:真实的现实系统中,在决定系统的成功或失败的因素中,满足非功能属性往往比满足功能性需求更为重要。第20页,本讲稿共59页2.4质量属性ISO/IEC 9126 第21页,本讲稿共59页2.4质量属性 ISO/IEC 9126特征子特征简要描述功能性精确性软件准确依照规定条款程度,规定确定了权利、协议的结果或者协议的效果依从性软件符合法定的相关标准、协定、规则或其他类似规定的程度互操作性 软件和指定系统进行交互的能力安全性软件阻止对其程序和数据进行未授权访问的能力,未授权的访问可能是有意,也可能是无意的适合性指定任务的相应
12、功能是否存以及功能的适合程度第22页,本讲稿共59页2.4质量属性 ISO/IEC 9126可靠性成熟性因软件缺陷而导致的故障频率程度容错性软件在故障或者外界违反其指定接口的情况下维持其指定性能水平的能力可恢复性软件在故障后重建其性能水平、恢复其受影响数据的能力、时间和精力依从性同上第23页,本讲稿共59页2.4质量属性 ISO/IEC 9126易用性可理解性用户认可软件的逻辑概念和其适用性需要花费的精力可学习性 用户为了学会使用软件需要花费的精力可操作性 用户执行软件操作和控制软件操作需要花费的精力吸引性软件吸引用户的能力依从性同上第24页,本讲稿共59页2.4质量属性 ISO/IEC 91
13、26效率时间行为执行功能时的响应时间、处理时间和吞吐速度资源行为执行功能时使用资源的数量和时间依从性同上第25页,本讲稿共59页2.4质量属性 ISO/IEC 9126可维护性可分析性诊断软件中的缺陷、故障的原因或者识别待修改部分需要花费的精力可改变性进行功能修改、缺陷剔除或者应付环境改变需要花费的精力稳定性因修改导致未预料结果的风险程度可测试性确认已修改软件需要花费的精力依从性同上第26页,本讲稿共59页2.4质量属性 ISO/IEC 9126可移植性适应性不需采用额外的活动或手段就能适应不同指定环境的能力可安装性在指定的环境中安装软件需要花费的精力共存性在公共环境中同分享公共资源的其他独立
14、软件共存的能力可替换性在另一个指定软件的环境下,替换该指定软件的能力和需要花费的精力依从性同上第27页,本讲稿共59页2.4质量属性质量属性的开发n用户并不能明确地提出他们对产品质量的期望q并不了解软件系统的开发过程,也就无从判断哪些质量属性会在怎样的程度上给设计带来多大的影响,也无法将他们对软件系统的质量要求细化成一组组的可量化的质量属性n需求工程师q质量属性大都是和功能需求联系在一起的,因此需要对照软件的质量属性检查每一项功能需求,尽力去判断质量属性存在的可能性 n形容词和副词通常意味着质量属性的存在 q对于一些不和任何功能需求相联系的全局性质量属性,需求工程师要在碰到特定的实例时意识到它
15、们的存在 第28页,本讲稿共59页2.5对外接口 n解系统和其他系统之间的软硬件接口 q接口的用途q接口的输入输出q数据格式q命令格式q异常处理要求n用户界面 q利用专门的人机交互设计文档记录 第29页,本讲稿共59页2.6约束 n总体上限制了开发人员设计和构建系统时的选择范围 q系统开发及运行的环境。n包括目标机器、操作系统、网络环境、编程语言、数据库管理系统等。q问题域内的相关标准。n包括法律法规、行业协定、企业规章等。q商业规则。n用户在任务执行中的一些潜在规则也会限制开发人员设计和构建系统的选择范围 第30页,本讲稿共59页主要内容1.需求的涵义2.需求的类型3.需求工程的路线4.优秀
16、需求的特性5.常见的需求错误第31页,本讲稿共59页3.需求工程的路线n问题分析和背景分析q发现问题比发现需求要简单的多 q进行背景分析,以更好的理解用户的问题 q问题分析 n明确问题。n定义业务需求。n制定解决方案。n确定系统特性。第32页,本讲稿共59页3.需求工程的路线n需求获取 q根据项目范围,确定问题域的范围q确定需求获取的源头 q确定获取的主题和内容 q选择需求获取的方法 q围绕获取的内容,运用需求获取的方法,从源头获取需求 q对获取过程中出现的分歧和问题,在项目前景的指导下进行解决 q经过需求获取过程,可以得到获取的文档资料,其中以获取笔录为主 第33页,本讲稿共59页3.需求工
17、程的路线n需求分析 q建立一个综合考虑了问题域特性和需求的系统模型q根据系统模型将用户需求转化为系统需求 n文档化和验证q产生规格说明 q进行验证 第34页,本讲稿共59页主要内容1.需求的涵义2.需求的类型3.需求工程的路线4.优秀需求的特性5.常见的需求错误第35页,本讲稿共59页4.优秀需求的特性n完整性完整性 q不需要做更多的扩展就可以充分的说明用户所需要的系统功能。q每一个需求的描述都应该包含开发人员设计和实现这项功能需要的所有信息qR2.5-1:系统应该允许被扩展。q(更好)R2.5-2:系统的调度算法应该允许被扩展。第36页,本讲稿共59页4.优秀需求的特性n正确性正确性 q真实
18、的反映用户的意图 q必须请需求的提出者予以确认 n精确性精确性 q描述仅包含必要的信息 q简洁、清晰 q(不好)R2.5-3:在实现之后,系统的调度算法应该允许被扩展。第37页,本讲稿共59页4.优秀需求的特性n可行性可行性 q由开发人员进行检查 q需要进行一定的分析和研究,而不是单纯的凭借经验和直觉 q必要的时候要通过开发原型来加以验证 n必要性必要性 q满足用户的业务需求所必需的 第38页,本讲稿共59页4.优秀需求的特性n无歧义无歧义 q每一项需求都应该有而且只能有一种解释 q定义一个可以共同理解的词汇表(Glossary)n可验证可验证 q通过分析、检查、模拟或者测试等方法能够判断需求
19、是否被满足 q不可验证的需求往往是因为描述模糊或者过于抽象,所以在进行需求的描述时要n让需求具体化n小心形容词和副词的使用n避免程度词的使用第39页,本讲稿共59页主要内容1.需求的涵义2.需求的类型3.需求工程的路线4.优秀需求的特性5.常见的需求错误第40页,本讲稿共59页5.常见的需求定义错误n需求并没有反映用户的真实需要 q用户在表达自己的需要时,可能会在潜意识下进行一定的加工 n发现问题背后的问题 q在人际交流当中,信息会发生自然的衰减,甚至扭曲 n检查和确认 第41页,本讲稿共59页5.常见的需求定义错误n模糊和歧义的需求q无意中写出模糊和歧义的需求定义往往是因为选词造句不当 n为
20、项目中重要的词汇建立一个公共的可共同理解的词汇表 q有意产生的模糊和歧义的需求定义往往是为了应付对需求持有不同立场的用户 n在项目前景的指导下,促进用户之间的协商解决 第42页,本讲稿共59页5.常见的需求定义错误n明显的信息遗漏 q明显的信息遗漏,其主要原因在于项目的范围定义不当 n加强对业务需求的处理q不明显的信息遗漏,往往是因为相关信息难以发现 n该类问题是最难以解决的问题,只能靠需求工程师的经验来加以避免 第43页,本讲稿共59页5.常见的需求定义错误n不必要的需求 q其一是用户将之作为和开发人员谈判的筹码 n谈判技巧 q其二是用户在交流当中,用户总是倾向于表达各种各样的需要 n根据业
21、务需求进行用户需求的过滤和选择 q其三是需求开发人员“画蛇添足”n保持以用户为中心n不切实际的期望q用户并不掌握关于软件系统构建的相关技术知识,所以用户可能会提出一些已有软件技术无法实现的期望 n软件开发者提供可行性、成本等足够的技术参考信息,帮助用户对其进行取舍和调整 第44页,本讲稿共59页5.常见的需求定义错误第45页,本讲稿共59页实例分析(系统A招标书)n请说出下列需求的类型,是否存在问题?q1、实现各部门的公文流转无纸化、文档一体化、业务管理的规范化、自动化和网络化;q2、实现工作流程合理化、高效化,决策支持科学化、准确化;q3、统一办公流程、规范公文格式,加强信息交流和共享,提高
22、工作效率。第46页,本讲稿共59页实例分析(系统A 招标书)n请说出下列需求的类型,是否存在问题?q先进性:先进性:软件系统采用三层B/S 系统结构,以“界面表示层逻辑处理层数据访问层”分层设计实现。采用国际上先进成熟的、厂商广泛支持的计算机技术、网络技术与软件技术对系统进行规划,保证系统整体架构在未来几年内都处于国际领先的地位。q安全性:安全性:软件系统具有较高的安全要求,系统必须具备充分的安全措施,包括具备严格的权限控制机制和完备的日志记录,以确保信息安全。q可靠性:可靠性:保证系统核心功能可以724小时连续运行;q规范性:规范性:系统必须遵循国家有关法律法规要求,符合国家有关标准要求以及
23、关于信息系统建设的各项标准和规范。第47页,本讲稿共59页实例分析(系统A 招标书)n请说出下列需求的类型,是否存在问题?q收文管理应包括:n来文登记、拟办、领导审批、办理、归档、查询统计等功能。附件支持WORD、PDF、EXCEL、HTML 等文档类型格式;需提供方便、灵活、直观的文件批示处理;对收文的处理全过程进行自动化管理、跟踪和记录;在收文处理的过程中,支持电子印章、电子签名或手写批注等功能。n来文登记:来文登记:完成来文登记功能。登记来文基本信息(来文编号、来文标题、主题词、来文单位、来文时间),还要对原文进行扫描处理,引入到公文库中。并可完成收文办文单打印功能。完成后启动收文流转流
24、程。n拟办:拟办:查看公文的基本信息,原文内容。签录拟办意见,发送给领导审批。n领导审批:领导审批:查看公文的基本信息,原文内容。签录批示意见,确定主办部门、协办部门。n办理:办理:办理人根据领导批示办理,记录办理情况。n归档:归档:对办理完结的来文归档,将来文信息、拟办意见、领导批示、办理情况等信息及来文扫描件发送到档案管理系统,档案科确认接收的文件,才属于己归档文件。n查询统计:查询统计:提供按来文编号、来文标题、主题词、来文单位、来文时间等查询统计功能,要求查询统计结果可以打印。第48页,本讲稿共59页实例分析(系统A 招标书)n请说出下列需求的类型,是否存在问题?q编程应遵循如下原则:
25、n唯一性:每个实体及其属性必须有唯一的代码来确切地定义。n可扩充性:考虑到系统以后的发展,编号要留有余地。当增加新的实体时,可以直接在原代码的基础上加以扩充,扩充后不会引起代码体系的混乱,这样就避免了重新设计代码系统的麻烦。n通用性:凡国家、行业、地方对编码有统一标准和规定的,应尽量使用标准代码,代码适用范围越广越好。没有标准代码的,投标方设计的代码也应该统一,如代码长度与格式的统一。n便于记忆和识别:代码不但要具有一定的逻辑定义,也要尽量考虑用户的使用习惯,使代码便于记忆和识别,做到简单明了n简短性:在满足需要的前提下,代码要尽可能短。n编程人员必须对所有代码进行严格自测。第49页,本讲稿共
26、59页实例分析(系统A 招标书)n请说出下列需求的类型,是否存在问题?q验收投标方需提供以下文档:n软件需求分析报告n软件总体设计报告n软件操作手册n软件配置手册n软件试运行报告n应用软件介质第50页,本讲稿共59页实例分析(系统A 招标书)n请说出下列需求的类型,是否存在问题?q培训要求n投标人必须提供相应的应用软件技术和系统操作等方面的培训。投标人须在文件中提出全面、详细的培训课程以及时间表交给业主,并在合同签定后征得业主同意后实施。n投标人应提供面向系统管理员的应用软件系统结构、日常维护等方面的培训。n对于所有培训,投标人必须派出具有相应专业资格和实际工作经验的人员进行培训。n投标人须提
27、供详细的培训计划。n以上培训内容的培训费用均包含在投标报价内,项目采购人不再另行支付第51页,本讲稿共59页实例分析(系统B需求规格说明)n请说出下列需求的类型,是否存在问题?q2.1.开发意图开发意图n1.减少人力成本n2.提高办公效率n3.成本统计、查询n4.历史信息查询n5.支持WEB 操作第52页,本讲稿共59页实例分析(系统B 需求规格说明)n请说出下列需求的类型,是否存在问题?q2.3.产品功能产品功能n2.3.1.人员管理人员管理q对本公司的人力资源进行管理。q提供功能:新员工信息录入、信息修改(晋升、部门调动、休假、婚姻状况变更)、离职人员归档。q注)该操作需要具有人员管理权限
28、的人才可以进行。n2.3.2.业务管理业务管理q对本公司的业务进行管理。q提供功能:新业务录入、现有业务变更(计划提前或延后、合同金额或付款方式变更、业务内容变更)、已完成的业务归档。q注)该操作需要具有业务管理权限的人才可以进行。第53页,本讲稿共59页实例分析(系统B 需求规格说明)n请说出下列需求的类型,是否存在问题?q2.4.1.扩展性扩展性n要求结构设计良好,二次开发成本要求低于本次开发成本30%n能够简单的进行多语言版本改造。q2.4.2.灵活性灵活性n支持主流浏览器:IE7,8,FireFox2.0,Google 浏览器。q2.4.3.精度精度n金额相关:小数点后保留2 位有效数
29、字;n时间相关:精确到秒;n传输过程中的精度:小数点后保留5 位有效数字。q2.4.4.响应要求响应要求n用户登陆:=0.5 秒n页面跳转:=2 秒q2.4.5.安全性安全性n系统管理员(admin)负责系统维护;n根据公司体制指定各部门负责人,并赋予相应的操作权限;n所有信息保存在MySQL 数据库中;n用户密码采用密文形式保存第54页,本讲稿共59页实例分析(系统B 需求规格说明)请说出下列需求的类型,是否存在问题?第55页,本讲稿共59页实例分析(系统B 需求规格说明)n请说出下列需求的类型,是否存在问题?q3.3.2.人员信息变更人员信息变更n目的:修改员工信息。n功能:提供员工信息修
30、改界面,并将修改后的信息保存进MySQL 数据库。n步骤:q1.在界面上修改员工信息。q2.操作者权限检查。q3.操作成功,返回人员管理界面;q操作失败,提示错误信息。n流程图:第56页,本讲稿共59页实例分析(系统C)n请说出下列需求的类型,是否存在问题?q4.1 业务现状与分析业务现状与分析n单一客户经理渠道从“绿色通道”变成制约集团发展的瓶颈n其他营销服务界面缺乏有效识别集团客户的工具n目前公司缺少一套贯穿全省各级公司和各部门的统一业务调度系统来协助跨部门工作n各节点缺乏受理标准时限规范,内部资源调度无法快速响应,n客户经理在面对客户时无法进行服务时限承诺,降低了集团业务的客户满意n业务
31、支撑平台不断增多,且均需要分散维护,服务质量难以保障第57页,本讲稿共59页实例分析(系统C)请说出下列需求的类型,是否存在问题?分策经理审批分策经理审批分策经理信息分策经理信息员工工号登陆后自动显示员工姓名根据工号系统自动显示姓名审批信息审批信息是否需要审批是/否审批意见输入行业部经理审批行业部经理审批行业部经理信息行业部经理信息员工工号登陆后自动显示员工姓名根据工号系统自动显示姓名审批信息审批信息是否需要审批是/否审批意见输入产品部经理审批产品部经理审批产品部经理信息产品部经理信息员工工号登陆后自动显示员工姓名根据工号系统自动显示姓名审批信息审批信息是否需要审批是/否审批意见输入分策部经理审批分策部经理审批分策部经理信息分策部经理信息员工工号登陆后自动显示员工姓名根据工号系统自动显示姓名审批信息审批信息是否需要审批是/否审批意见输入第58页,本讲稿共59页本章小结n需求是人们对现实世界问题解决的期望n解系统通过共享知识和问题域进行互动,从而解决现实世界中的问题n具体的需求包括q功能需求、性能需求、质量属性、对外接口和约束n需求工程活动是依据需求的内涵与外延逐步展开的n书写的需求应该具有优秀的特性,尤其要避免出现常见的错误第59页,本讲稿共59页
限制150内