1. 如何写软件项目需求说明书
原发布者:tangyi_g
电子商务项目需求说明书(范本)新蛋信息技术(中国)有限公司二○一一年月日文档修改历史记录目录1概述31.1引言31.1.1软件项目名称31.1.2软件项目开发背景和目的31.1.3软件项目应用范围31.2参考资料31.3术语定义32系统功能32.1功能分解一42.1.1定义42.1.2功能表述42.1.3性能要求42.1.4相关表单42.1.5流程图42.1.6特殊要求42.2功能分解二53附录51概述1.1引言(本需求说明书的编写目的以及阅读对象)1.1.1软件项目名称(说明软件项目全称和简称)1.1.2软件项目开发背景和目的(简述软件项目开发背景和目的以及实现了哪些大的功能)1.1.3软件项目应用范围(叙述软件项目主要使用的范围、使用者等)1.2参考资料(本需求说明书的参考资料,包括法律法规、政策文件、国家标准、制度规范等)1.3术语定义(逐个定义重要术语,没有可以不写本条)2系统功能(定义本软件项目实现的一级功能及其内涵,一个软件项目由多个一级功能组成)2.1功能分解一2.1.1定义(说明功能分解一的含义以及实现过程)2.1.2功能表述(逐一列出对本功能分解一的各项功能表述,每项功能均需详细描述,并使读者没有歧义,描述方式可以为:输入什么、输出什么、需要系统如何加工等)2.1.3性能要求(详细列出对本功能分解一的系统性能要求,如:系统数据校验、缺省项判断、系统反应时间、操作的便捷性、错误或故障的处理、系统的接口
2. 项目需求分析怎么写
项目需求分析的概念 需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。
(这个和我在微软体验到的又不太一样,微软的需求分析大多是市场人员和用户协助小组的人去评估用户的接受程度,这一点也可以理解,因为公司的性质有根本差别)在这个过程中,用户的确是处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段结束后,要求得到:1.SRS文档(System Requirement Specification); 2.DRM 文档;3.Acceptance Plan. 从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。
狭义上理解:需求分析指需求的分析、定义过程。 一、为什么要需求分析 需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个for linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,痕不得找块豆腐一头撞死. 需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型软件系统的开发中,他的作用要远远大于程序设计. 二、需求分析的任务 简言之,需求分析的任务就是解决"做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求.三、需求分析的过程 需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评审. 问题识别 就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标. 分析与综合 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分.最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型). 制订规格说明书 即编制文档,描述需求的文档称为软件需求规格说明书.请注意,需求分析阶段的成果是需求规格说明书(好象软考曾经考过这个问题),向下一阶段提交. 评审 对功能的正确性,完整性和清晰性,以及其它需求给予评价.评审通过才可进行下一阶段的工作,否则重新进行需求分析。
四、需求分析的方法 需求分析的方法有很多.这里只强调原型化方法,其它的方法如:结构化方法,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法)在此不讨论. 原型化方法是十分重要的(是软考等常考的知识点).原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能. 原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷.建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等.如,为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发. 原型主要有三种类型(软考考过):探索型,实验型,进化型.探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性.实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠.进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。 在使用原型化方法是有两种不同的策略:废弃策略,追加策略.废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统.系统构造完成后,原来的模型系统就被废弃不用.探索型和实验型属于这种策略。
追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。进化型属于这种策略.。
3. 项目需求 该 怎么写
如果是一个软件系统的项目,站在项目角度需求管理包括项目需求、用户需求、业务需求、功能需求、非功能需求等内容。而项目管理文档中主要是项目需求,在项目实施文档中主要是用户需求分析报告、软件(或系统)需求规格说明书等。项目需求主要包括:(不同的项目还会有适当增减,由于不清楚你的项目具体情况,所以把总体上项目需求包括的内容都罗列一下)
1. 适用范围(阅读者)
2. 项目背景
3. 项目概述
4. 项目目标及范围
5. 项目工期与预算
6. 项目软件(系统)需求
7. 项目约束(运行环境、开发环境、技术路线、)
8. 项目测试与验收
9. 用户培训
10. 售后维护与支持
11. 其他项目中用户提出的需求
4. 软件工程的需求分析该怎么写
首先你要找那些让你提交这些报告的人,问明白他们说的这些报告究竟需要涉及什么内容,给什么人看,格式和文档的风格要求是什么。如果他们不能告诉你一个满意的答案,就没有必要给他们一个他们自己都不知道想不想要的东西。
而实际上需求分析报告可以说是文档体系中最没有必要存在的。当然我不是说需求分析不重要,而是说需求分析太重要,是一个报告所不能容纳的,而是要有一个包括数个不同内容体系的文档系统。而如果你的项目根本就没有那么多的资金和资源,你一般就不要动用这样一个庞大的系统。你在这个时候只需要随时记录你的想法,列出你的关注点和解决的想法。而当然这个系统虽然庞大,但是还有很多线索要你去掌握它们的建造。首先这个系统需要有一个业务目标分析,也就你的这个系统要达到的业务目标,要结合具体的企业环境进行系统分析和论证,这个文档的阅读者基本上属于最高级次的决策者。还要有一个技术目标分析,也就是你的这个项目将解决什么具体的技术问题,这个部分也十分的复杂,基本上需要行业专家认真地分析,这个文档的阅读者属于管理者。还要有一个技术实现的报告,也就是你需要为完成这个项目动用什么技术,主要是你必须说出在这个项目的几种可使用技术方案中你为什么要选择你目前的这种,这个文档的阅读者基本上就是相关的技术人员。而同时你还需要一个风险分析的报告,把这个文档要针对业务/技术/实现这三个层次的问题中要遇到的各种风险进行分析。这属于基本的需求分析的基础文档系统。
然后你还需要面对你的具体的情况进行具体的项目的规划分析。首先如果你的项目是一个开发型的项目,你就有必要对你的业务目标和技术目标的实现进行一种设计。这个工作需要大量的市场和人类学知识。其次你还需要对你上面这个需求的设计进行分析,以把其转化为开发者可以接受的文档格式。然后你还需要对这些需求进行具体的粒度化的划分,将其细化为一些原子态的互相联系的部分。在此基础上你还需要对这些具体的技术实现进行规划,找出最重要的和最有难度的部分。同时这个层次的风险分析也需要有一个单独的文档说明。
最后你还需要对实现中具体的细节问题组织你的需求分析文档。这些问题包括,你使用的具体技术需要什么要求的人员和设备等等资源。你的需求需要如果进行测试,以保证你的这些需求能够被真正的贯彻。你的系统需要如何部署在你的业务环节中。你的人员培训需要采用什么措施。这些问题都需要有专门的文档,而且也都是需求分析方面的。
基本上这样一个系统要有10份以上的文档,而关键在于不同的问题应该在不同的文档中说明,同时你还必要在这些文档的相互关系中做出一种标注。这样一个工程,基本上需要一个团队来专门的进行协调和维护。至于书写则是一个文档就要一个小组,同时还必须有一个系统的管理小组。在这样一个文档系统中,基本上可以保证你所有的关注都在你的文档中体现了。
当然这样的文档系统我估计你在国内根本就看不到,国外也难找。而国内常见的情况是,这些文档和垃圾的地位一样,基本上都是人为的制造的无用的浪费时间的和精力的废纸。
还是回到最初的问题,你最好还是先去问问需要这些文档的人,他们究竟是要什么,有什么具体的要求,肯为这些文档出什么价钱。如果他们不能告诉你,你就只需要为自己建立一个文档,当然有的时候你会觉得自己不需要任何文档,那么你不需要好了。没有任何文档也不说明什么,到处都是文档倒是肯定的说明这个组织水准和开发能力十分的低劣
5. 如何做好软件项目需求分析
需求分析是介于系统分析和软件设计阶段之间的重要桥梁。
一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。
需求分析阶段的基本任务是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件其它有效的需求。 最主要的原因是对于开发小组的使用成员(包括用户)来说,需求确定是极具认知性和创造性的活动。
需求确定也许是仍在苦苦等待人工智能支持的最后领域之一。具体表现如下: 系统分析员对问题域的了解程度也是一大困难。
系统分析员感到需求确定很困难的另一个原因是问题域的动态性。 生活是动态的,公司也是。
项目团队成员之间的沟通也一直是需求确定的另一大困难。 每个问题域都有术语。
最后,需求确定过程还会受到其它因素的影响。例如劳累、不舒服、开会时室内和窗外的干扰、团队成员的压力等等。
6. 软件需求说明怎么写
原发布者:管理资源吧
软件需求说明书的编写提示1引言1.1编写目的说明编写这份软件需求说明书的目的,指出预期的读者。1.2背景说明:a.待开发的软件系统的名称;b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;c.该软件系统同其他系统或其他机构的基本的相互来往关系。1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料列出用得着的参考资料,如:a.本项目的经核准的计划任务书或合同、上级机关的批文;b.属于本项目的其他已发表的文件;c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2任务概述2.1目标叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|2.2用户的特点列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束2.3假定和约束列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。3需求规定3