浅论软件需求分析

浅论软件需求分析
浅论软件需求分析

浅论软件需求分析

【摘要】软件需求分析中的关键就是展开分析,发现问题,解决问题。所有的一切都是为了能够将软件中的错误和漏洞在需求分析和需求工程阶段发现并解决,这样才能使软件开发的成本收益比达到最大,使得软件在其生命周期中的维护费用降到最低。本文主要探讨了软件需求分析方法,希望可以通过对软件需求分析的方法研究为以后软件的开发打下一个良好的基础。

【关键词】软件工程;软件需求分析;过程;方法;工具

0 引言

作为客户我们都有过类似的经验:一个不能进行一项基本操作的软件是多么令人烦恼。尽管开发者最后会满足要求,但客户也不会感激他。而从开发者的角度来说,在整个系统完成之后,用户再提出对功能的进一步要求是多么烦人的事。

在开发中遇到的上述的问题,都是由于收集、编写等需求分析过程中的失误带来的,这也是整个软件行业的普遍问题:过于侧重于开发而忽略了软件需求分析的重要性。实际上,在软件开发技术中,软件需求分析是软件开发周期非常重要的一步,也是整个软件开发的基础,关系到软件工程的成败和软件产品的质量,是软件项目是否成功的重要因素之一。

1 软件分析的任务

每个软件产品都是为了使其用户能够以某种方式改善自己的生活、提高自己的工作效率,所以,开发者必须要详细的了解用户需要什么,并总结出功能需求来设计软件、实现功能,从而满足用户要求。

但是在许多软件项目中,由于需求分析人员在需求阶段采取一些不严谨的方法,导致了开发者开发的产品和用户所期望的产品之间存在着巨大的期望差异。这些不严谨的方法包括:非正式信息的收集,未确定或不明确的功能,未发现或未经交流的假设,不完善的需求文档和突然的需求变更过程。

Frederick Brooks在他的文章中说过:开发软件系统最困难的部分就是准确说明开发什么。这句话的也充分说明了软件需求分析的任务:就是用严谨的方法对目标系统提出完整、准确、清晰、具体的要求,确定软件系统的必须完成的任务,并深入描述软件的功能和性能,确定软件的设计边界和软件同其他元素的接口。

简单来说,软件需求的任务就是消除软件产品和用户期望产品之间的鸿沟。

2 软件需求分析过程

一个成功的软件产品是能以合理的价格和时限在功能、质量上完全满足用户的期望。倘若一个项目团队不重视需求过程,就会给软件的成功与否带来极大的风险。这些风险包括:

(1)缺乏一些基本功能,导致产品不被用户接受

(2)用户需求的增加导致产品开发成本的增加

(3)模糊的需求说明导致软件产品的返工

(4)开发人员开发一些用户用不到的功能

那么项目团队应该如何解决上述问题呢?需要在需求过程中抓住以下四个基本原因:

(1)用户参与不充分

从客户的角度来看,他们通常不明白为什么收集需求需要花费那么多功夫,

软件工程—系统需求分析

系统用例图 系统需求分析 1概述 随着社会的发展,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况。传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。学籍管理信息系统以计算机为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。 1.1 系统目标 软件开发的意图为便于学校的管理,方便查看有关学校及学生的情况。 如教务处对学生成绩的修改、删除、查找、添加等。 1.2现行组织机构及业务现状 在学籍管理中,需要从大量的日常教学活动中提取相关信息,以反映教学情况。传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。2用户需求 2.1 业务需求

1、使用范围 学生学籍管理等相关文件完成本科和专科学生学籍状况的系统管理(本科生用学年学分制,专科生用学年制)。 2、功能要求 基础数据管理:包括班级管理、课程管理、学期管理等功能。 学生管理: 成绩管理: 查询统计:包括成绩一览表、成绩分布图报告等功能。 3开发内容:开发一套学生成绩管理系统软件 采取的研究方法:采用面向对象的编程,结合网络和数据库技术,实现控制和管理。通过系统分析、需求分析、概要设计、详细设计、编写代码、软件测试、软件维护、经验方法总结等一系列实验方案,实验软件的开发。 4具体开发方案: 分六个阶段进行: 第一阶段:系统分析、需求收集和分析 这一阶段首先进行系统分析,分析确定系统的规模和范围,确定软件的总体要求以及所需要的硬件和支撑软件,确定待开发软件与外界的接口,根据用户的情况确定软件对操作的要求,以及待开发软件总体上的约束和限制,完善项目计划。在这之后,这一阶段的大部分时间将被用来进行需求收集和分析。向学校管理人员及学生了解情况,确定软件系统的综合要求,分析软件系统的数据要求,导出系统的逻辑模型,修正项目开发计划。采用结构化分析方法,生成数据流图、数据词典及加工逻辑说明。 第二阶段:概要设计 在这一阶段将确定软件系统的结构,对全局数据结构进行设计,进行模块划分,确定每个模块的功能接口以及模块间的调用关系。采用与结构化方法衔接的结构化设计方法,生成结构图及概念设计说明书。 第三阶段:详细设计 为每个模块设计实现的细节将成为这个阶段的主要任务,还要对局部数据结构进行设计。采用结构化设计方法。采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。使得程序具有良好的结构,增强程序的可读性。生成程序流程图及详细设计说明书。详细设计时,如果不满意,须回到概要设计中重新完善设计。 第四阶段:编写代码 这一阶段用来根据详细设计说明书编写代码。采用计算机语言编写。追求高质量的代码,生成源程序代码、内部文档。 第五阶段:软件测试 这将是一个很重要也将是一个很耗时间和精力的阶段。在这一阶段中将尽可能多地发现软件中的错误和缺陷。如果有错,还将退回到编码阶段进行调试。测试过程分为单元测试、集成测试和确认测试。 第六阶段: 完善各项文档及和报告,从整个开发过程和这些文档中总结经验和教训,罗列各种方法和技巧。

软件需求分析

软件需求分析 目录 1.引言 1.1项目名称 1.2编写目的 1.3开发背景 2.任务概述 2.1目标 2.1.2 应用目标 2.2运行环境 3. 数据描述 4.功能要求 4.1功能划分 4.2功能描述 5.性能要求 5.1数据精确 5.2时间特性 5.3适应性 6.运行需求 6.1用户界面 6.2硬件接口 6.3软件接口

6.4故障处理 7.其他要求 8.实现代码(部分) 9.个人感想 1.引言 1.1项目名称: 制作一个财务管理系统 1.2编写目的: 编写财务管理系统需求分析的目的是明确所开发的软件的功能、性能、界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,方便开发工作和测试工作。现代企业围绕提高经济效益而进行财务管理所要达到的目的,是评价企业财务活动是否合理的标准。国内外关于财务管理目标的观点众多,但影响较广的主要以下几种观点:企业利润最大化、股东财富最大化、投资报酬率最大化,资本配置最优化。 1.3开发背景: 随着现代社会的快速发展,各个企业公司在多方面都不断地创新与提高,财务管理作为整个公司运筹的重要组成部分之一,因此大力发展财务管理很有必要,怎样合理而有效的提高财务管理水平和工作效率--已成为企业亟需解决的问题。 为帮助企业更好的实现信息化管理,各个公司成功地推出了适应现代社会发展的财务管理软件,大大提高了企业的管理水平和工作效率,使企业能够从容面对激烈的市场竟争。

2.任务概述 2.1目标 2. 1.1开发目标 财务系统用于让各地市、厅局等单位或部门等的各项与财务有关的资料的维护,同时提供良好的各项资产的管理。 2. 1.2应用目标 项目的目标是实现对各个部门的财务信息的分层次管理,可以对管理人员设置角色,实现对不同部门,不同操作权限的设置。 2.2运行环境 ?Windows xp操作系统 ?MyEclipse 3.数据描述 共有1个表,分别为通讯录管理系统的数据库,财务上包括姓名、职位、工资等字段 4.功能要求 4.1功能划分 本系统有以下功能模块: 1)登陆模块 2)数据输入功能 3)数据显示功能 4)查询功能 5)修改功能

软件需求分析的详细流程

第一阶段:总体把握,了解概况 接手一个项目,不要着急去了解需求,这一阶段是和具体用户方的领导层、业务层人员的访谈式沟通,主要目的是从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体情况、客观的信息。建立起良好的沟通渠道和方式。针对具体的职能部门,最好能指定本次项目的接口人。 该阶段的主要工作方法:客户访谈 输出成果:业务流程报告/调查报告(对客户方的组织业务概况和企业现状的一些总结) 第二阶段:详细了解业务,梳理业务流程 通过第一阶段的调研,了解客户业务概况的前提下,经过充分的业务调研准备,开始进入正式的业务调研工作。这一阶段要对所有业务流程、业务单据、报表等进行详细的分析。整理出业务架构,尽可能多的与相关基层人员进行诱导式的访谈,与用户一起探讨业务流程设计的合理性、准确性、便易性、习惯性。对主要的业务流程要有原型DEMO让客户操作,发现问题,提出改进的意见和建议。 该阶段的主要工作方法:访谈、业务分析、原型设计演示 输出成果:调研分析报告、原型反馈报告、业务流程报告 第三阶段:需求细化和确认 这一阶段是在上述两个阶段成果的基础上,进行具体的流程细化、数据项的确认阶段,这个阶段承建方必须提供原型系统和明确的业务流程报告、数据项表,并能清晰地向用户描述系统的业务流设计目标。用户方可以通过审查业务流程报告、数据项表以及操作承建方提供的DEMO系统,来提出反馈意见,并对已经可接受的报告、文档签字确认。 实现手段:拜访(回顾、确认),提交业务流程报告、数据项表;原型演示系统 输出成果:需求分析报告、数据项、业务流程报告、原型系统反馈意见(后三者可以统一归入需求分析报告中,提交用户方、监理方进行确认和存档)

做好软件需求分析的重要性

做好软件需求分析的重要性 需求开发没有做好会出现什么后果?需求问题的代价?需求分析如何做?为什么要做? 首先来看下需求问题产生的代价模型: 需求问题的代价 在需求阶段消除问题的代价最小,而如果需求问题等到产品发布出去后才发现的话,那修复的成本就会N倍的增加。 不合格的需求分析: 1、没有足够的用户参与; 2、忽略了用户分类; 3、模棱两可的需求; 4、不必要的特性; 5、自我猜测的需求; 6、过于简单的规格说明; 7、用户需求的不断增加; 不合格的需求很多很多,很难说出所有,但需求分析没有做肯定会有影响。 需求没有做好的后果一般会有下列现象: 1、浪费时间和资源来满足用户并不需要的需求(过度实现一些功能); 2、开发出来的产品技术上先进,但不满足用户需求; 3、总是需要比较长的时间来达成对产品设计的共识; 4、在产品设计,开发和测试工作中对于用户需求的解释不一致; 5、员工会厌倦因需求不断被重新解释而导致的返工; 6、未说明的或不正确的需求会导致员工与用户间的不满; 7、不稳定的产品,用户的不满意对我们未来的市场造成损失; 8、浪费时间,增加成本,使得在一些投标的项目中不能低价; 从上面2方面可以看出,需求没有做好,对后续产品来说是巨大的灾害,也可以说需求是源头,也是站在统领的位置上,那么如何来做好需求分析这块呢?首先了解下,为什么要做需求分析,什么是需求分析,需求分析有哪些方面。 为什么要做需求分析,从上面2个方面就可以看出做好需求分析的必要性,再具体一点: 1、“决策性”——要不要做这个产品,通过对市场需求的分析来决策项目是否需要立项; 2、“方向性”——良好的需求分析可以对项目人员明确方向,让项目成员知道下面应该如何实施; 3、“策略性”——既然知道了为什么要做需求分析,就需要了解什么是需求分析,及如何做。需求分析并不是简单的对与错,比如说做一个产品,“做技术最先进的软件,还是做最好卖的软件”,这个需求有错吗,没有,只能说需要从不同的地方去考虑,去定位。 “ 需求分析”不代表“用户要求什么就是什么”也不代表“我们能做什么就做什么”,做为需求人员,在进行需求分析的时候,首先应该明白用户的需求,然后再加上自己的分析处理过程,知道哪些我们现在能做,哪些我们做不了,哪些我们咬咬牙齿能做,需求人员在做需求分析的时候不能一味的成为客户的传话筒,要有自己的分析。

软件开发需求分析报告

需求分析报告 1.引言 1.1目的 需求,指的是系统提供的能力必须遵从的条件,一个系统能否达到预期目标,系统需求做的好坏起着决定性作用,因此,他无疑是该平台开发过程中的重要一环。按照传统的软件工程理论,需求分析的目标就是确定要干什么,而不是怎么干,按照统一软件过程的理论(RUP理论),该平台的需求分析就是要致力于高效的正确的开发系统。必须足够详细的描述出系统需求,同时也要详细的描述系统必须达到的条件或实现的功能,使得用户就系统产生的问题一致。 本章将要对”基于教学POI的校园公共服务平台设计与开发”的需求进行分析,再此基础上将会对系统的各个功能进行建模,并且给出模型模型描述的图例序列图等模型。建立系统目标和需要解决的问题。 1.2背景 本设计将对基于教学POI的校园公共服务平台设计与开发进行详细的需求分析;基于教学POI的校园公共服务平台设计在兴趣点软件或APP中属于较为新颖贴近学生生活与教学内容的软件在这方面有大量的资源可循但是并没有与之相关的软件。作为本次软件工程设计的需求总体分析我们需要在POI、教学以及手机软件开发进行基本的融会贯通。 1.3术语 列出本报告中用到的专门术语的定义。 2.任务概述 2.1目标 POI信息平台系统的建立,最直接的提供了非常好的查询管理平台,极大的方便了学生的查询教学点\课程等方案的选择,为学生教师等提供了海量的便利教学信息;学生再也不用考虑担心自己找不到有疑问而大费精力. 通过对用户需求分析以及POI流程研究我们应该解决以下问题 在APP中搜索到正确的\合理的POI信息; POI信息的充分展现,包括地图展示并标记POI点的特殊标记;

对软件需求分析的认识

对软件需求分析的认识 自从学习了软件工程这门课程之后,我对软件及其开发有了更加浓厚的兴趣,同时我也认识到软件工程在软件开发中的重要性。目前国内软件在开发中还没有对软件开发的过程进行明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全过程的改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高,使软件开发更规范合理。 软件工程理论认为,在软件生命周期中,需求分析(Requirements Analysis)是最重要的一个阶段。软件需求分析的质量对软件开发的影响是深远的、全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功”。在后续阶段改正需求分析阶段产生的错误将付出高昂的代价。而对于软件需求分析,简单的来说就是要决定“做什么,不做什么,达到用户所期望的效果”,就好比我们自己平常做一件事之前,都会有做好计划,软件开发亦不例外。用软件工程的定义来讲,它就是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。下面是一些有关需求分析的有关知识: 一、现在很多管理类文档将需求分为合理需求和不合理需求两种类型,这种分类方式本身并没有错误,但在实际判断起来却很难,主要是无法清晰的界定合理和不合理的属性,用户和研发人员的出发点是不一样的,每个研发人员也都有各自的认识,很难确定合理与不合理的标准。因此将需求按重要程度进行分级,是必不可少的步骤。需求分类好了,自然就可以在以重要需求为出发点,兼顾次要需求的基础上来进行设计。在开发者与用户(代表)交流时,切记避免使用如“大概”、“应该”、“可能”等词语,这是初入行者和懒于写文档的人都容易出现这种问题,但结果是,概括性的语言无限放大了大家对需求的理解,造成歧义。所以,需求越具体、详细就越好,磨刀不误砍柴功。 二、需求分析是分多阶段的,理想的流程是需求交流—〉分析整理—〉需求确认—〉变更控制(用户追加或补充的需求内容才能称为需求变更),实际情况下该流程会多次循环往复,在这个过程当中,变更控制显得异常重要,它既是原需求的终止,又是新需求的开始,做好变更控制,往往事半功倍。因此,需求变更贯穿了需求说明书经过论证之后的所有软件管理过程。同时需求变更需要有专门的人员记录,这个人最好是项目组内部的人员,记录内容包括需求变更具体内容、发生于哪个阶段、以及由谁提出的等内容。项目经理需要每天关注需求变更记录,每周必须对需求变更产生的影响进行预估,并将预估结果记入到需求变更记录当中,以便于确定今后的工作计划。还有 三、分析员占有的位置 分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。 四、任务 开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品

软件需求分析重点-

软件需求分析重点 第1 章软件需求基础知识 返工的成本占了总开发成本的30%-50%,而对于返工的情况,70%-80%是国需求错误引起的。(11) 在对所有讨论问题有了更深入的了解之前不要急于回答。不能充分理解需求,就会作出过于乐观的估计,最终不可避免地陷入超支的泥潭。(13-14)造成软件成本估算失败的最主要原因包括频繁变更需求、遗漏需求、未与用户充分沟通、需求的说明不精确以及地需求的分析不透彻等。给出估算结果时,应该提供范围(最好的情况,最可能的情况和最糟的情况)或把握程度(“我有九成把握在三个月内完成”)。(14) 从产品的实际用户处收集需求这一过程是不可替代的。(18) 第2 章客户眼中的需求 某些需求问题源于混淆了不同层次的需求(业务需求、用户需求和功能需求)。(19) 要想开发出优秀的软件产品,必须以优质需求为基础精心制定计划。(20)不要指望项目涉众天生知道如何合作进行需求开发。必须花时间讨论如何最有效地进行协作。(22) 需求审阅是最有价值的保证软件质量的活动之一。(25) 需求批准过程的所有参与者都应该明白签字意味着什么,否则会出现很多问题。(25) 不可能在项目初期就能明确所有的需求,需求肯定要随时间的推移而发生变化。(26) 第3 章需求工程的推荐方法 熟练的需求分析员应具备以下特点:耐心,思维条理性强,有良好的交际和沟通能力,理解产品应用领域,并且掌握丰富的需求工作技术。(29)为每类用户选择代言人(31)

观察用户工作的过程(31) 跨项目重用需求(32) 过早地以尚不明确的需求为基础进行开销和进度评估是非常不可靠的。(37)38图表 不要期望可以线性地、顺序地完成获取、分析、编写规格说明和验证这些需求开发活动。(38) 第4 章需求分析员 相比缺乏经验的需求分析员,使用经验丰富的需求分析员能使项目所需求的工作量减少三分之一。(42) 优秀的需求分析员应同时具备出色的交流、引导和人际交待能力,具备技术和业务领域的丰富知识,以及适合这项工作的相应个性。耐心和真诚的合作愿望是关键的成功因素。(44) 需求分析员必须研究可能出错的情形。(44) 第5 章确定产品前景与项目范围 第6 章获取客户的需求 能否让开发人员更准确地了解用户需求,将决定软件需求工作能否取得成功,进而影响到软件开发的成功。(62) 项目伊始就应确定谁来担任问题的决策人。(72) 第7 章聆听客户的需求 需求开发工作的成果就是项目涉众之间就被处理的需求达成共识。(75) 需求获取的参与者在理解问题之前要抵制住诱惑,不要急于设计系统。 要强调用户任务,而不是用户界面,要强调根本需要,而不是用户表达出来的期望,这样有助于项目团队避免过早是制定设计的细节。 在软件开发中,需求获取也许是最困难、最关键、最容易出错和最需要沟通的一个环节。(76)

软件工程系统可行性分析和需求分析

个人承担任务 任务说明: 此次软件工程设计,我主要承担以下任务: 需求分析和可行性分析(根据设计题目进行问题定义,探讨可行性,再对系统进行需求分析等)。 任务内容: 1.可行性分析: ⑴问题定义 各高校传统的勤工助学岗位管理管理模式也越来越不能满足现代教育发展的需要。对于一个有着上百号勤工学生的学校来说,用手工管理这些学生信息还有岗位以及津贴,是一项非常繁琐的工作,而相应的岗位人员查询、津贴签领历史记录查询等,其工作量都让人望而生畏,而且还极易出错,同时也浪费纸。所以我们提出了开发高校勤工助学管理系统,将勤工学生基本信息管理、岗位人员管理、津贴统计等功能进行统一管理,为各高校实现勤工助学岗位信息化管理提供有效工具。 ⑵技术可行性 本系统采用B/S模式开发。B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。它由浏览器、Web服务器、应用服务器和数据库服务器组成。客户端的浏览器通过URL 访问Web服务器,Web服务器请求数据库服务器,并将获得的结果以HTML形式返回客户端浏览器。它是随着Internet技术的兴起,对C/S模式应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的。相较于C/S模式的系统升级维护复杂来说,B/S模式最大的好处是运行维护比较简便,能实现不同的

人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据。另外,B/S还便于面向广大未知用户使用,因为只要电脑安装了IE,经过一定的设置,就都可以使用,如建立企业网站发布信息。 ⑶经济可行性 本系统开发成本低,对开发者设备要求不高,数据库采用免费开源的Oracle 数据库。由于是B/S模式,所以对用户软硬件要求要求也很低。 2.需求分析 ⑴系统运行环境硬件要求 硬件设备设计是根据信息系统的设计需求,确定信息系统物理设备方案,所设计的硬件设备方案在能够充分满足信息系统功能需求的前提下,还应满足系统的效率、可靠性、安全性和适应性等性能要求,并具有较高的性价比。根据前面的需求分析,我们得出本系统理想的环境当然是配置较高最好,实际操作中硬件平台如下: 硬件环境(访问者):建议用户在允许的情况下采用较高配置硬件资源。 硬件环境(开发者):Intel五代处理器,4G内存,80G磁盘空间。 ⑵系统运行环境软件要求 操作系统是计算机系统中最重要的系统软件,目前在微机上使用的桌面操作系统有Windows XP/7/8/10等,本系统在Windows 10操作系统下进行开发,可向下兼容以运行于前面所列举的各种操作系统,但建议使用Windows XP以上系统。 支撑软件是协助人们开发和维护软件的工具和环境软件,包括编辑程序,数据库系统,集成开发环境等,本系统的支撑软件如下: 1、数据库管理系统(DBMS):为了对数据库实施集中管理,同时并发的处理多个客户机发来的数据处理要求,我们选用Oracle数据库管理系统。 2、动态网页技术:在这里我们使用JSP(Java Server Pages)来建立系统,编译软件使用myeclipse10。 ⑶系统功能需求 所有学生都可以登录系统申请对外开放的岗位,申请时需要填写相关信息。

软件需求分析论文

青岛理工大学 软件需求分析论文 题目:宿舍管理系统 班级: ********* 学号: ********* 学生姓名: *** 指导教师: **** 2015年11月17日 一、摘要 需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。需求分析在IT项目中具有十分重要的作用。IT项目的需求分析不仅是项目的开端,也是确保项目成功的基石。本文从IT项目的需求定义、重要性、过程、方法等层面来了解IT项目的需求分析。 关键词:项目需求分析定义过程方法 二、需求的定义和重要性 (一)需求的定义 软件需求是用户为解决某个问题或达到某个目标而需具备的条件或能力。系统或系统组件为为符合合同、标准、规范或其它正式文档而必须满足的条件或必须具备的能力。以上所述为定义条件和能力的文档表达。这一定义既体现了用户对需求的看法(系统的外部行为),也代表了开发人员的观点(一些深层次的

特性)。术语用户隶属于涉众,因为并非所有涉众都是用户。产品为涉众提供价值而必须具备的特性。 显然,需求没有一个统一的定义。为了便于交流,需要协商来决定一组限定词来修饰“需求“这个内涵丰富的术语。并认识到用可通用的形式记录需求的重要性。 (二)需求的重要性 实现有效的需求工程过程可以让组织受益匪浅。减少开发后期以及整个维护过程中不必要的返工并可带来极大的回报。但优质需求的高回报往往不明显,以至人们常常错误的认为讨论需求所花费的时间会导致推延产品的交付。然而,对质量成本的整体评估却显示出重视早期质量工作的意义。 合理的需求过程强调产品开发过程中的协作,要求涉众始终参与合作。收集需求使开发团队对产品的用户和市场有更好的了解。用户和市场是任何项目成功与否的关键因素。在开发产品之前了解市场和用户,与用户收到产品后在进行理解相比,所需的代价要低得多。 邀请用户参与收集需求可以激发他们对产品的热情,并建立他们对产品的忠诚。强调用户的目标而不是华而不实的功能,就能避免那些永远排不上用场的代码。客户的参与能够缩小用户需要的产品与开发人员提交产品之间的期望差。开发者迟早都要面对用户的反馈。应该尽早得到用户的反馈,也可以借助原型来激励用户产生反馈。需求开发的确需要时间,但要比产品测试时或发布后大量的修改所需的时间要少的多。 优质的需求带来的好处远不止这些。把选定的系统需求明确的分配到各个不同的软件、硬件和人员子系统这种方式突出了产品的系统设计方法。有效的变更控制过程可以把需求变更的负面影响降至最低。无歧义的需求文档给测试工作带来了极大的便利,使交付让各方都满意的优质产品的可能性大大提高。 没有人能够保证需求工作所作出的投入一定能够收到回报。但能够通过分析来思考及推测需求能够提供的帮助。首先来看改进过程的投入。其中包括用于评估现状、开发新的过程和文档模板、人员培训、购买参考书籍与工具,以及可能要聘请的顾问和产生的成本等。最大的投入则是开发团队收集、编写、检查和管理需求的时间。接下来则看可以得到的好处和因此而节省的时间和金钱。 三、需求分析的过程 调研

软件分析报告

目录

(9) 5

1. 范围 本指南用于指导软件开发者为南京市交通局开发软件项目的过程,通过规范软件项目承担单位的开发过程达到提高软件质量,降低维护成本的目的。开发者应根据本指南进行软件开发和编制软件开发文档。本指南是对软件项目承担单位的基本要求。在本指南的附录A至E中提供了文档的编写模板供开发者参考,在进行具体软件开发时,开发者可根据实际情况采编写,但必须提供双方约定的文档,文档中约定的内容必须描述清楚。 2. 总体要求 2.1 总体功能要求 网络应用环境以Internet/Intranet技术为核心。 开发者应在充分分析需求的基础上,选择采用B/S结构或者C/S结构。 软件系统的数据库应依照《南京市交通局信息化数据库建设规范》进行设计和建设。 本指南中没有规定开发者采用何种具体的软件工程开发方法,开发者可根据项目具体特点、自身擅长来选择采用面向过程的方法、面向对象的方法或面向数据的方法,但建议开发商使用面向对象软件工程的方法,如:采用目前被广泛使用的RUP(Rational Unified Process)方法来进行分析、设计和开发。

2.2 软件开发平台要求 开发者开发的软件必须能够在南京市交通局规定的软件平台上正常运行。目前软件平台为: 数据库管理系统: Oracle 9i以上版本 中间件(应用服务器)系统: IBM WebSphere OA系统: Lotus Domino/Notes 网络架构: 完全支持TCP/IP协议 开发工具或技术体系: 为保证软件的上下兼容性,开发者应选择比较通用的开发工具的较新版本进行开发,如Microsoft Visual ,Borland Delphi,C++ Builder, 或J2EE(Java2 P1atform Enterprise Edition)等。 2.3 软件项目的开发实施过程管理要求 2.3.1 软件项目实施过程总体要求 (一)开发者提交软件开发工作大纲,交通局组织专家组对工作大纲进行评审,并提出整改意见。 (二)通过评审后,开发者根据整改意见完善工作大纲,经过交通局认可后组织项目组进行软件开发。软件开发工作按照需求分析、概要设

软件开发需求文档

1. 引言 引言是对这份软件系统详细设计报告的概览,是为了帮助阅读者了解这份文档如何编写的,并且应该如何阅读、理解和解释这份文档。 1.1 编写目的 说明这份软件系统详细设计报告是基于哪份软件产品需求分析报告、哪份软件产品概要设计报告和哪份软件产品数据库设计说明书(如果该软件产品需要数据库支持)编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件系统详细设计报告详尽说明了该软件产品的编码结构,从而对该软件产品的物理组成进行准确的描述。 如果这份软件系统详细设计报告只与整个系统的某一部分有关系,那么只定义软件系统详细设计报告中说明的那个部分或子系统。 1.2 项目风险 具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括: ●任务提出者; ●软件开发者; ●产品使用者。 1.3 文档约定 描述编写文档时所采用的标准(如果有标准的话),或者各种编写约定。编写约定应该包括:●部件编号方式; ●界面编号方式; ●命名规范: ●等等。 1.4 预期读者和阅读建议 列举本软件系统详细设计报告所针对的各种不同的预期读者,例如,可能的读者包括: ●开发人员; ●项目经理; ●测试人员; ●文档编写人员; ●等等。 描述文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

1.5 参考资料 列举编写软件系统详细设计报告时所用到的参考文献及资料,可能包括: ●本项目的合同书; ●上级机关有关本项目的批文; ●本项目已经批准的计划任务书; ●用户界面风格指导; ●开发本项目时所要用到的标难; ●系统规格需求说明; ●使用实例文档; ●属于本项目的其它己发表文件; ●本软件系统详细设计报告中所引用的文件、资料; ●相关软件系统详细设计报告; ●等等。 为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:●标题名称; ●作者或者合同签约者; ●文件编号或者版本号; ●发表日期或者签约日期; ●出版单位或者资料来源。 2. 支撑环境 2.1 数据库管理系统 描述数据库管理系统、以及安装配置情况,需要描述的内容可能包括: ●产品名称以及发行厂商 这里的产品名称指的是数据库发行厂商发布产品时公布的正式商品名称,不应该使用别名、简称、研发代号等非正式名称,以免混淆;同样的道理,发行厂商的名称也应该使用正式名称。 ●版本号 数据库管理系统的准确版本号,必须按产品的实际情况描述到最细节的版本号。 ●补丁包版本号 描述实际上将要使用的数据库管理系统补丁包的版本号,必须注意,在某些情况下该版本号不一定是最新的版本号。 ●语言或代码集 对于只支持一种语言或者一个代码集的数据库管理系统来说,该项描述不具意义。对于支持多种语言或者多个代码集的数据库管理系统来说,该项描述指的是实际使用的语言或者代码集。 ●安装位置 描述数据库管理系统的实际安装位置,应该分别对管理系统安缺位置和数据存放位置进行描述,应该指明服务器名和安装卷号(盘号)。对于分布式数据库,必须分别描述每一个数据

软件需求分析方法

欢迎阅读 软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。 1)对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整?性,促 使用户在软件设计启动之前周密地、全面地思考软件需求; 2)了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准;

3)为软件管理人员进行软件成本计价和编制软件开发计划书提供依据; 需求分析的具体内容可以归纳为六个方面:软件的功能需求,软件与硬件或其他外部系统接口,软件的非功能性需求,软件的反向需求,软件设计和实现上的限制,阅读支持信息。 软件需求分析应尽量提供软件实现功能需求的全部信息,使得软件设计人员和软件测试人员不再需要需求方的接触。这就要求软件需求分析内容应正确、完整、一致和可验证。此外,为保证软件设计质量,便于软件功能的休整和验证,软件需求表达无岔意性,具有可追踪性和可修改性。2.1、????? 软件功能需求 1 不 (5)??? 尽可能不使用“待定”这样的词。所有含有待定内容的需求都不是完整的文件,如果出现待定的部分,必须进行待定部分内容说明,落实负责人员、落实实施日期。 2)功能描述的无岔意性和可追踪性 需求功能描述的无岔意性、可追踪性和规范化: (1)??? 功能描述必须清晰地描述出怎样输入到怎样输出,并且输入、输出描述应对应有数据流描述、控制流描述图,这些描述必须与其它地方描述一致;

(2)??? 可以用语言、方程式、决策表、矩阵或图等对功能的描述。如果选用语言描述必须使用结构化的语言,描述前必须说明该步骤(或子功能)的执行是顺序,选择, 重复,还是并发,然后说明步骤逻辑。整个描述必须单入单出。 (3)??? 描述时,每一个功能名称和参照编号必须唯一,且不要将多个功能混在一起进行描述,这样便于功能的追踪和修改。 (4)??? 功能描述应注意需求说明和程序设计的区别。需求设计仅仅是软件的功能设计,它给出软件运行的的外部功能描述,以及为了实现这一外部功能必须做哪些事情(采 2.2、 2.3、 (2)??? 处理容限、精度、采样参数的分辨率,误差处理等; (3)??? 可靠性的MTBF要求,可维护性、安全性要求等。(对可能的不正常的输入给以正常响应是可靠性的重要内容,这属于功能性需求。) 2.4、????? 软件反向需求 软件的反向需求描述软件在那些情况下不能做什么。这一条是随软件实际要求而定。有两类情形需要采用反向需求的形式。第一种情况:某些用户需求适宜采用反向形式说明,如数据安全性要求属于这类形式。第二种情况:对一些可靠性和安全性要求较高的软件,有些必须描述软件不能做些什么。如控制点火时序,我们必须交代清楚在那些情况下不能点火,否则会造成故障。

需求分析方法主要步骤

1.1主要步骤 遵循科学的需求分析步骤可以使需求分析工作更高效。需求分析的一般步骤如图2-3所示。 需求涉及的方面有很多。 在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。 在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。 在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。 在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。 1.1.1获取需求,识别问题 开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求。 此外,在需求的获取时,还要明确用户对系统的安全性、可移植性和容错能力等其他要求。比如,多长时间需要对系统做一次备份,系统对运行的操作系统平台有何要求,发生错误后重启系统允许的最长时间是多少等。

遗漏需求是最难修订的需求错误。 --RobertL.Glass 获取需求是需求分析的基础。为了能有效地获取需求,开发人员应该采取科学的需求获取方法。在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。 问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。采用这种方法时,调查问卷的设计很重要。一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例。 开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法。但是,对开放式问题进行汇总和分析的工作会比较复杂。 封闭式问题的答案是预先设定的,用户从若干答案中进行选择。封闭式问题便于对问卷信息进行归纳与整理,但是会限制用户的思维。 访谈通过开发人员与特定的用户代表进行座谈,进而了解到用户的意见,是最直接的需求获取方法。为了使访谈有效,在进行访谈之前,开发人员要首先确定访谈的目的,进而准备一个问题列表,预先准备好希望通过访谈解决的问题。在访谈的过程中,开发人员要注意态度诚恳,并保持虚心求教的姿态,同时还要对重点问题进行深入的讨论。由于被访谈的用户身份可能多种多样,开发人员要根据用户的身份特点,进行提问,给予启发。当然,进行详细的记录也是访谈过程中必不可少的工作。访谈完成后,开发人员要对访谈的收获进行总结,澄清已解决的和有待进一步解决的问题。 关注用户的行为而不是他们的言语。

系统需求分析报告-范例1

高校学生学籍管理信息系统 系统需求规格说明书 (系统需求分析报告)

目录 1-------------------------------------------------------------------概述1.1----------------------------------------------------------------背景1.2-------------------------------------------------------------系统目标1.2.1------------------------------------------------------应完成的任务1.2.2------------------------------------------------------不完成的任务1.3------------------------------------------------------------业务模式1.4-------------------------------------------------------------业务状况2---------------------------------------------------------------用户需求2.1-------------------------------------------------------------业务需求2.1.1---------------------------------------------------------使用范围2.1.2----------------------------------------------------------功能要求2.1.3----------------------------------------------------------权限管理2.2-------------------------------------------------------------性能需求3---------------------------------------------------------------业务流程3.1-----------------------------------------------------与其他系统的关系3.2----------------------------------------------------------业务流程图4---------------------------------------------------------------业务逻辑4.1-------------------------------------------------------------业务分解4.2------------------------------------------------------------业务描述5---------------------------------------------------------------数据分析5.1------------------------------------------------------------数据单据5.2------------------------------------------------------------数据分析5.2.1---------------------------------------------------------数据分类5.2.2---------------------------------------------------------数据描述6-------------------------------------------------------------------附件

软件项目需求分析通用

1. 引言 目的 说明编写这份报告的目的,指出预期的读者。 背景 指出待开发的软件系统的名称;行业情况;本的任务提出者、开发者、用户;该软件系统同其他系统或其他机构的基本的相互来往关系。 参考资料 列出编写本报告时参考的文件(如经核准的计划任务书或合同、上级机关的批文等)、资料、标准,以及他们的作者、标题、编号、发布日期和出版单位。 列出编写本报告时查阅的Intenet上杂志、专业着作、标准以及他们的网址。

术语 列出本报告中用到的专门术语的定义。 2. 任务概述 目标 叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中的其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。 系统(或用户)的特点 如果是产品开发,应列出本软件的特点,与老版本软件(如果有的话)的不同之处,与市场上同类软件(如果有的话)的比较。说明本软件预期使用频度; 如果是针对合同开发,则应列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和专长,以及本软件预期使用频度。这些是软件设计工作的重要约束。

3. 假定和约束 列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。 4. 需求规定 软件功能说明 逐项定量和定性地叙述对系统所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明产品的容量,包括系统应支持的终端数和应支持的并行操作的用户数等指标。 对功能的一般性规定 本处仅列出对开发产品的所有功能(或一部分)的共同要求,如要求界面格式统一,统一的错误声音提示,要求有在线帮助等。 对性能的一般性规定 精度 说明对该系统的输入、输出数据精度的要求,可能包括传输过程中的精度。时间特性要求 说明对于该系统的时间特性要求。 灵活性

浅谈软件需求分析

浅谈软件需求分析 一、什么是需求分析? 通俗的讲,对用户的意图不断揭示和验叛的过程,要对经过系统可行性分析所确定的 系统目标做更为详细的描述。 假如你是个建筑工程师,有个客户找你建一个鸡窝,这个时候要需要与客户沟通,来 确定客户到底想要一个什么样子的鸡窝。我们应该注意三点: 1、准确的理解和描述客户需要的功能。 客户说,我的鸡窝要三层的,带电梯,饮水池,厕所,饮水池要自动判断水位供水, 电梯要可以同时乘坐10只鸡….客户滔滔不绝的讲了一大堆,你也都非常忠实的按照自己 的理解再一一的向客户描述一遍,以便于确认客户的需求是否正确。 2、帮助客户挖掘需求。 等客户把自己的需求说完了,你发现客户没有说鸡的卧室,于是,你向客户提议说:“你看,这鸡的卧室要什么样子的?”,客户连连的拍着脑门说,我差点给忘记了,鸡们 啊喜欢晚上在一起聊天,所以呢,需要一个长而大的卧室,但一定要舒适。 3、分析客户需求的可行性。 客户临走时又说,最近啊,黄鼠狼很多,我这个鸡窝啊,一楼就不用盖了,直接盖二 楼和三楼吧!以免晚上遭遇黄鼠狼的攻击。你这么一分析,客户这要求,按照目前的技术 可没法建啊,于是,你向客户提议,一楼采用坚固架子来支撑二三楼的建筑。 二、需求分析困难在哪儿? 有几种原因使需求分析变得困难: (1)客户说不清楚需求; 有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。 有些客户心里非常清楚想要什么,但却说不明白。 如果客户本身就懂软件开发,能把需求说得清清楚楚,这样的需求分析将会非常轻松、愉快。如果客户全不懂软件,但信任软件开发方,这事也好办。分析人员可以引导客户, 先阐述常规的需求,再由客户否定不需要的,最终确定客户真正的需求。最怕的就是“不 懂装懂”或者“半懂充内行”的客户,他们会提出不切实际的需求。 (2)需求自身经常变动; 尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求。以便在进行系统设计时, 将软件的核心建筑在稳定的需求上。 在合同中或需求书中一定要确定清楚“做什么”和“不做什么”。 (3)分析人员或客户理解有误。 需求分析人员不可能都是全才。客户表达的需求,不同的分析人员可能有不同的理解。如果理解错了,可能会导致开发浪费时间和精力。所以分析人员写好需求说明书后,最好 要请客户方的验证。有条件的设计原型来论证需求。 三、需求分析的分类:

相关文档
最新文档