您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 实用软件工程(第2版)第4章[赵池龙]
实用软件工程----IT企业软件的开发与管理赵池龙第4章软件需求本章导读软件工程的两大难点:一是软件需求二是项目管理。软件需求,又称软件需求分析或软件需求获取,它既是软件开发中的老问题(几十年都没有很好地彻底解决),又包含着许多新思路和新内容。需求获取是否彻底与成功,直接关系到软件开发的成败。本章导读本章论述:1.需求分析的重要性2.需求分析的理论基础3.需求分析的任务、目的、方法和分类4.需求的各种描述工具5.需求的管理过程6.IT企业用户需求报告和需求规格说明书的编写参考指南。本章对读者的要求了解:(1)需求分析的输入输出(2)需求获取的难点(3)需求报告和需求规格说明书的差异(4)评审与审计的概念,同行评审的概念(5)不符合项的概念(6)用户、顾客、客户的概念(7)基线、里程碑、评审点、软件产品、软件工作产品的概念本章对读者的要求理解:(1)需求分析的目的(2)需求分析的重要性(3)需求分析的理论基础(4)需求的各种描述工具(5)需求管理方法与管理文档本章对读者的要求掌握:(1)需求分析的任务:组织结构图,业务操作流程图,数据流程图,列出功能性能接口列表、确定运行环境和界面约定,确定工期、费用、进度、风险(2)需求分析方法:面向流程分析,找出元数据,找出中间数据,找出元数据与中间数据的关系,学会需求分析艺术(3)《用户需求报告》的内容与编写方法(4)《需求规格说明书》的内容与编写方法4.1需求分析的重要性输入:《合同》/《立项建议书》/现场调研。输出:《用户需求报告》/需求规格说明书》。1.需求分析为什么重要?(1)许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。需求分析为什么重要?(2)需求分析的输出文档是《用户需求报告》,它是客户、软件开发人员和项目管理人员三者必须遵守的一根基线,三者共同工作的基础,是测试的准则。(3)需求分析要占用整个软件开发时间或工作量的30%左右。(4)需求获取中的错误,属于软件开发中的早期错误,它会在后续的设计和实现中进行发散式的传播。根据以上四项原因,IT企业的高层经理,对需求分析特别重视,常常派经验最丰富的人员去作项目需求。正因为如此,“系统分析员”才是软件行业中的最高技术职称。2.需求获取为什么难?需求获取看似容易,做起来难,主要原因有四:(1)用户需求具有动态性,即需求的不稳定性。在整个软件生存周期内,应用软件的需求会随着时间的进展而有所变化。个别用户,甚至是朝三暮四地变化。(2)用户需求具有模糊性,即需求不准确性。由于用户的素质不是很高,业务流程不很规范,所以需求表达不很清楚也不够明确。2.需求获取为什么难?(3)开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任。(4)中国的国有企业正处在变动期(体制改革与企业重组),中国的民营企业正处在成长期(发展壮大与不完全成熟)。这就给信息系统的需求分析,无疑增加了难度系数。想想看,这四条原因,哪一条都非同小可?4.2需求分析的理论基础1.什么是软件需求软件需求就是为了解决现实世界中的特定问题必须展现的属性。这里的问题可能是用户的任务自动化,或由软件来完成一个组织的业务处理,或控制一个设备等等。需求属性主要有:(1)可验证性可验证性是软件需要的基本属性。软件需求必须是可验证的,否则软件的评审和测试就没有相应的依据。但在某些情况下,很难对某些软件需求进行验证或需要的代价很高。软件需求人员和测试人员应以合理的代价实现需求的验证。什么是软件需求(2)优先级软件需求应具有优先级,可以在有限的资源情况下进行取舍。(3)唯一性软件需求应唯一地标识出来,以便在软件配置管理和整个软件生命周期中进行管理。2.软件需求需要量化软件需求应尽可能地表述清楚,没有二义性,尽可能量化,使得需求是可测试、可验证的。应避免含糊地、无法测试、无法验证的需求出现。软件质量的可靠性和用户界面的友好性,这些非功能性需求的量化尤为重要。例如,系统应支持1000并发用户,系统影响时间应低于10毫秒,这就是需求的量化。软件需求的可靠性将直接影响系统的架构。3.需求是一个过程需求过程不仅表现在一个软件生命周期的早期活动之中,而且应体现在整个生命周期过程中。需求过程要适应客户和项目的环境,并作为配置项纳入配置管理。需求过程描述了在不同项目和限制条件下,如何提取、分析、文档化以及验证软件需要。P68图4-2描述了软件的需求过程。收集需求涉众编写需求文档潜在的需求需求文档审核规范化后的潜在需求产品开发计划需求文档模板需求规格说明书通过的需求未通过的需求需求组件库分析/设计/实现需求文档评估需求评估报告环境需求重用立项4.需求过程中的角色名称描述用户直接操作软件的人员。他们通常具有不同的业务角色,有不同的业务需求。例如一个图书管理系统的用户包括:读者、图书管理员、仓库管理员、系统管理员、馆长客户指软件开发的委托方或软件市场的目标客户。例如,某一设备制造商委托软件开发商进行设备控制软件开发,那么该设备制造商是系统的客户市场分析人员对于没有具体客户的通用软件,市场分析人员将提供市场需要,并对实际客户进行模拟软件分析师对于类似的项目,软件分析师将对以前系统进行评估,判断是否存在重用的可能5.需求来源(1)系统目的指软件的整体目的,或高层的目标。这是进行软件开发的动机,但它们通常表达比较模糊。软件分析师需要仔细地评估这些目标的价值以及成本。应对系统的整体目标进行可行性研究。(2)行业知识软件分析师需要获取业务领域内的相关知识。当需要发生矛盾时,软件分析师可以利用行业知识对各种需求进行权衡。需求来源(3)软件涉众应充分考虑不同软件涉众的需求,如果只强调某一角色的需求,忽略其它角色的需求,往往将导致软件系统的失败。软件分析师应从不同涉众的角度去识别、表述他们需求。(4)运行环境软件的运行环境包括地域限制,实时性要求和网络性能等。可行性和软件架构都依赖这些环境需求。(5)组织环境软件作为一个组织的业务流程支持工具,受到组织结构、企业文化和内部政策的影响。4.3需求分析的任务在实现生活中,确实存在多种软件,确实有多种软件需求。但是,由于信息系统这种软件应用面最广,市场最大,客户最多,需求分析最难,所以人们一谈需求分析,就自然而然地认为指“信息系统需求分析”。需求分析是分行业的,成功的需求分析专家,都是某行业领域内的行业产品专家。一般而言,对于信息系统的需求分析,最主要的是完成9项任务(以图书馆为例)。需求分析的任务第1:画出目标系统的组织结构图与列出各部门的岗位角色表(组织机构模型)序号单位名称单位职责1馆长室全馆业务的领导,全馆信息的查询2采编部图书的采购、分编3藏书部图书的入库、保存、迁移、出库4借书处图书的借书、还书5阅览室杂志和书报的开架阅览与借还管理6读者服务部读者信息管理、读者网上图书查询图书馆的岗位角色岗位编号岗位名称部门岗位职责相关的业务1011采购员采编部采购、合同的签订、出版社的选择进货、合同管理1012分编员采编部图书分编协助入库…第2:画出目标系统的业务操作流程图(业务操作模型)画出目标系统的业务操作流程图,它包括物流、资金流、信息流,即业务操作模型,重点是业务操作的流水步骤。业务模型是经过业务流程重组、再造和优化之后,并且得到企业领导确认的业务流程图。业务流程图的画法多种多样,各软件组织可根据自身的习惯和特点,制定一套图形规则,在本组织内统一遵守。业务流程图的制作工具,可以是微软的Word,Visio。请读者定义一套图形规则,并画出“图书馆信息系统”的业务流程图。第3:画出目标系统的数据流程图(数据模型)画出目标系统的数据流图,即单据和报表的流图,掌握业务规则,获得初步数据模型(真正的数据模型是E-R图加上相应的数据字典)。数据流图中要突出单据流,分清不同单据之间的先后流动次序,以及同一单据中的不同数据项的先后流动次序。第3:画出目标系统的数据流程图(数据模型)数据流图的画法多种多样,各软件组织可根据自身的习惯和特点,制定一套图形规则,在本组织内统一遵守。数据流图的制作工具,可以是微软的桌面办公工具Office,也可以是PowerDesigner中的数据流图绘制工具ProcessAnalyst。例如,可以规定用矩形表示数据的起始点或终止点(数据源或数据潭),用圆圈表示对数据的加工处理,用箭头表示数据的流向,用两条横线表示单据或报表等文件。单据或报表分为头和体两部分,下面是头单据名称用途使用单位制作单位频率高峰时数据流量单据或报表分为头和体两部分,下面是体序号数据项中文名数据项英文名数据项类型、长度、精度数据项算法123第4:列出目标系统的功能点列表(功能模型)列出目标系统的功能点列表,即功能模型。(注:有时将性能模型、界面模型和接口模型的内容都合并到功能模型之中。)功能模型也可以用UseCase图表示,也可以用功能点列表描述。“图书馆信息系统”的功能点列表,如P72表4-7所示。其中“系统响应”这一项,表示将来的目标系统所要做的工作。需要指出,功能列表不是唯一,也没有标准答案。第5:列出系统的性能点列表(P74性能模型)编号性能名称使用部门使用岗位性能描述输入系统响应输出1读者网上查询图书信息响应时间网上读者网上读者查某本书小于10秒图书名称/作者姓名按照输入的组合条件,进行模糊查询显示“图书名称、作者姓名、是否借出、内容简介”2后台查询读者信息响应时间图书馆借阅部借阅操作员查某位读者信息小于2秒读者姓名、编号按照输入的组合条件,进行查询显示“读者姓名、编号、身份证号、电话、借书信息、超期借书信息、罚款次数”3后台查询图书信息响应时间图书馆借阅部借阅操作员查某本书小于3秒图书名称/作者姓名按照输入的组合条件,进行模糊查询显示“图书名称、作者姓名、借阅情况、内容简介”第6:列出目标系统的接口列表(P74接口模型)编号接口名称接口规范接口标准入口参数出口参数传输速率1与财务系统接口财务系统规定的接口规范记账凭证与分录的具体格式(1)凭证记录参数:凭证编号、日期、单据张数、借方合计、贷方合计;(2)分录记录参数:凭证编号、日期、借方、贷方、数量、单价、摘要。(1)凭证记录格式:凭证编号、凭证状态、会计期间、凭证字号、日期、单据张数、审核、过账、制单、过账状态、借方合计、贷方合计;(2)分录记录格式:分录编号、凭证编号、摘要、科目代码、结算号、结算日期、结算方式、借方、贷方、数量、单价。一张凭证一次处理传送第7:确定目标系统的运行环境(环境模型)运行环境包括:核心计算机及网络资源(系统软件、硬件和初始化数据)的配置计划、采购计划、安装调试进度、人员培训计划等内容。第8:目标系统的界面约定(界面模型)界面设计的原则是:方便、简洁、美观、一致等。整个目标系统的界面风格定义要统一,某些功能模块的特殊界面要说明。例如:输入设备:键盘、鼠标、条码扫描器、扫描仪等;输出设备:显示器、打印机、光盘刻录机、磁带机、音箱等;显示风格:图形界面、字符界面、IE界面等;显示方式:1024*768、640*480等;输出格式:显示布局、打印格式等。第9:对目标系统的开发工期、费用、开发进度、系统风险等问题进行分析与评估注1:上述九项任务不是教条,不能完全生搬硬套,而要具体问题具体分析,活学活用,举一反三。注2:通过需求分析之后,对将来要实现的目标系统,如果仍然感到心中无数、心里发慌、腰杆不硬,那么绝对不要签字确认,而要从头开始,重新进行需求获取。4.4需求分析的目的在技术上,需求分析的目的,就是用于说明软件产品或软件项目需要满足的条件和限制。为此,在软件工程项目中,首先要获取用户的需求,通过对软件需要的提取、分析、文档化以及验证,为进一步的设计和实现提供依据。需求分析就是对提取的需求进行分析整理:对提取的需求进行分析整理:(1)需求分类,将相关需求组织成一个子集。
本文标题:实用软件工程(第2版)第4章[赵池龙]
链接地址:https://www.777doc.com/doc-7049809 .html