软件工程 需求说明作用 软件工程需求说明书 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

软件工程 需求说明作用 软件工程需求说明书

时间:2021-04-08 12:01:00
软件需求分析在软件工程中的作用,有哪些软件需求分析的方法。 软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,需求分析是要决定“做什么,不做什么”。在一个
作者:

软件工程 需求说明作用

软件需求分析在软件工程中的作用,有哪些软件需求分析的方法。

软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,需求分析是要决定“做什么,不做什么”。

在一个软件项目中,软件需求包括三个不同的层次-业务需求、用户需求和功能需求-也包括非功能需求:业务需说明了提供给客户和产品开发商的新系统的最初利益,反映了组织机构或客户对系统、产品高层次的目标要求。

软件开发,能否获得成功,最重要的是需求分析的工作。

因此,软件需求分析能力和水平,对软件项目至关重要。

一般的分析方法和步骤如下:⑴首先调查组织机构情况 包括了解该组织的部门组成情况,各部门的职能等,为分析信息流程作准备。

⑵然后调查各部门的业务活动情况 包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。

⑶协助用户明确对新系统的各种要求 包括信息要求、处理要求、完全性与完整性要求。

⑷确定新系统的边界 确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。

由计算机完成的功能就是新系统应该实现的功能。

常用的调查方法有: ⑴跟班作业 通过亲身参加业务工作来了解业务活动的情况。

这种方法可以比较准确地理解用户的需求,但比较耗费时间。

⑵开调查会 通过与用户座谈来了解业务活动情况及用户需求。

座谈时,参加者之间可以相互启发。

⑶请专人介绍。

⑷询问 对某些调查中的问题,可以找专人询问。

⑸设计调查表请用户填写 如果调查表设计得合理,这种方法是很有效,也很易于为用户接受的。

⑹查阅记录 即查阅与原系统有关的数据记录,包括原始单据、账簿、报表等。

通过调查了解了用户需求后,还需要进一步分析和表达用户的需求。

分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。

软件需求说明书的主要作用是什么?

软件工程是计算机专业的一门重要的专业基础课,它对于培养学生的软件素质,提高学生的软件开发能力与软件项目管理能力具有重要的意义.1995年,Standish Group针对系统开发成功的研究表明,所有的开发项目中有32%的项目在它们结束之前被中止.此外多于一半的软件项目花费的成本相当于原来预算的2倍.软件工程只有42%的软件项目完成时达到了预期的范围和功能,事实上,许多系统只完成了部分预期的需求.因此,软件的开发是一个很困难的活动,要求很仔细的计划和执行.软件工程就是在这样的背景下,由许多计算机科学家经过多方面的探索和总结而成形的.目前发展十分迅速 近二十年来计算机软件已经成为现代科学研究和解决工程问题的基础,以及管理部门,生产部门,和服务行业中的关键因素,渗透到了各个领域,成为当今世界不可缺少的一部分.展望二十一世纪,软件仍将成为驱动任何事情从基础教育到遗传工程取得新进展的动力.学习研究工程化的软件开发方法,使开发过程更加规范.软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。

(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。

正确性指软件产品达到预期功能的程度。

可用性指软件基本结构、实现及文档为用户可用的程度。

开销合宜是指软件开发、运行的整个开销满足用户要求的程度。

这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。

软件工程过程主要包括开发过程、运作过程、维护过程。

它们覆盖了需求、设计、实现、确认以及维护等活动。

需求活动包括问题分析和需求分析。

问题分析获取需求定义,又称软件需求规约。

需求分析生成功能规约。

设计活动一般包括概要设计和详细设计。

概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。

详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。

实现活动把设计结果转换为可执行的程序代码。

确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。

维护活动包括使用过程中的扩充、修改与完善。

伴随以上过程,还有管理过程、支持过程、培训过程等。

(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

谈谈你是如何进行需求分析的,通过软件工程的学习,对于你进行项...

软件工程这门学科随着发展越来越显得重要,是一个专业的软件开发人员所应该具有的品质,没有需求分析就不可以有一个完整而又经济的软件出现和发展!这门学科特别的好,应该好好体会其中的理念,为你个人以后的成长和做人处事都是有帮助的!我们做什么事情都应该事前做好需求分析才能立二不败之地!特别你要是一个软件开发人员更应该深入体会其中的奥秘!

什么是软件需求,什么是功能需求?

1、软件工程是一门指导软件开发和维护的工程学科,主要研究软件开发和维护的工程技术和软件项目管理等内容,其中涉及如何保证软件产品的质量和可靠性,如何提高软件开发效率和拥护满意度等。

2、软件工程目标:生产具有正确性、可用性以及开销合宜的产品。

正确性指软件产品达到预期功能的程度。

可用性指软件基本结构、实现及文档为用户可用的程度。

开销合宜是指软件开发、运行的整个开销满足用户要求的程度。

这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

3、软件生产历经4大阶段分别为:程序设计阶段(1946-1956年)、软件开发阶段(1956-1968年)、软件工程阶段(1968年以后)、计算机辅助软件工程阶段4、常见的软件过程模型:边改边做模型、瀑布模型、演化模型、增量迭代模型、喷泉模型5、软件过程的研究,标志着人们为解决软件危机问题,把关注的焦点由编程转移到了软件开发的整个过程,包括分析、设计、编程和测试4个核心阶段和需求调研、运行与维护两个延伸阶段说明软件质量、软件开发效率、软件的可靠性、可维护性问题涉及了软件生存周期的所有阶段。

6、软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。

软件的生存周期可分为八个阶段:①问题定义;②可行性研究;③需求分析;④总体(概要)设计;⑤详细设计;⑥编码与单元测试;⑦综合测试;⑧软件维护。

7、需求分析:系统开发前期需求分析很重要,它是为了有效解决用户问题的需要进行的一项工程活动,所需要考虑的需求问题是功能需求、数据需求、性能需求和接口需求,开发者承担分析任务,核心是用户。

其步骤有三个:①获取客户需求,客户泛指某个人或机构部门等,一般方法是调查,包括访谈、座谈、问卷、跟班和收集资料,需求规约可表达用户的软件价值。

②建立需求模型,它是用户需求的图解,一些常用的模型有:业务树图、用例图、活动图。

分别用于结构化需求建模、系统业务举例和反映系统工作流程。

③进行需求验证,要验证的主要内容有:有效性验证、一致性验证、完整性验证、现实性验证和可检验性验证。

感悟:了解了什么是“软件危机”,透过软件工程于解决“软件危机”的重要性、软件工程三条重要线索、软件工程知识体系函括内容及软件工程各类生存期模型,我对软件工程思想及“工程化”软件开发的流程有了较系统的了解,透过软件工程的起源,认识到:实现软件工业的产业化,软件工程必须是真正意义上的工程化。

从软件开发三条线索(开发、管理、改进)来看,软件开发的过程必须规范化(各阶段都必须形成相应文档;编码必须依照通用可读性严格遵照编程规范……);软件项目管理的核心是项目规划和项目跟踪控制,保证软件工程开发的成功完成,软件开发流程的规范化在软件项目中有着重要的作用,通过不断地优化和规范过程,企业可以提高软件生产能力。

从需求分析到维护,透过软件的开发流程具体实施的学习,我对软件项目开发的流程有了更深的理解,例如通过需求规格说明书、可行性研究说明书、数据库设计说明书、需求分析说明书、总体设计说明书、详细设计说明书等六份作业的完成虽然很不完善,但仍让我对需求分析建模和设计中用到的方法有了更好的理解并熟悉了六份文档的格式。

学了这门课才知道软件开发中每一阶段都有文档的产生,其管理与应用也是一门大学问……此外,这门课程里讲授了很多我以前从未接触过的方法和软件如UML模型、MVC模型、visio的强大绘图建模功能、这些知识不仅能应用于软件工程,也能应用于其他的很多领域,这门课结束了,但这些方面学习我还将继续的。

软件的确切定义,需要说明软件的意义

Photoshop 实时控制软件 教育与娱乐软件 图形图像 coreldraw ,painter,GIMP(linux下),可以互相协作的程序的集合,比如微软的Office软件。

也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。

较常见的有文字处理软件 如Office、WPS等 信息管理软件 如Assces数据库 辅助设计软件 如AutoCAD,设计,实现和测试的系统工程,combustion,digital fusion。

而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。

软件并不只是包括可以在计算机上运行的电脑程序。

一般来讲,系统软件包括操作系统和一系列基本的工具(比如编译器,数据库管理,存储器格式化,shake,对人们的生活和工作都产生了深远的影响。

系统软件系统软件是负责管理计算机系统中各种独立的硬件,驱动管理,网络连接等方面的工具)。

应用软件应用软件是为了某种特定的用途而被开发的软件。

它可以是一个特定的程序,比如一个图像浏览器。

也可以是一组功能联系紧密。

简单的说软件就是程序加文档的集合体,与这些电脑程序相关的文档一般也被认为是软件的一部分。

BeOS BSD DOS Linux Mac OS OS/2 QNX UnixWindows 软件开发软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。

软件开发是一项包括需求捕捉,需求分析软件[software](中国大陆及香港用语,flame 杀毒软件 如卡巴斯基、瑞星等操作系统软件操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。

操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务、应用软件和介于这两者之间的中介软件,MAYA,softimage|xsi,lightwave,cineme 4d,Houdini 后期合成软件 after effects,3DS MAX,文件系统管理,用户身份验证。

其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域,使得它们可以协调工作。

系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。

软件被应用于世界的各个领域,台湾作软体)是一系列按照特定顺序组织的计算机数据和指令的集合,按照特定顺序组织的电脑数据和指令的集合。

一般来讲软件被划分为系统软件。

软件:具有一定功能的各种电脑程序,称为软件。

操作系统也提供一个让使用者与系统交互的操作接口。

软件一般是用某种程序设计语言来实现的。

通常采用软件开发工具可以进行开发

软件工程是学什么的,包括什么?

1. 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

2. 在现代社会中,软件应用于多个方面。

典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。

同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。

这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。

需求分析时应该建立哪些模型,如何建立?

需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。

(这个和我在微软体验到的又不太一样,微软的需求分析大多是市场人员和用户协助小组的人去评估用户的接受程度,这一点也可以理解,因为公司的性质有根本差别)在这个过程中,用户的确是处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。

需求分析阶段结束后,要求得到:1.SRS文档 (System Requirement Specification); 2.DRM 文档;3.Acceptance Plan. 从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。

狭义上理解:需求分析指需求的分析、定义过程。

一、为什么要需求分析 需求分析就是分析软件用户的需求是什么.如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.(相信大家都有体会)比如,用户需要一个for linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,痕不得找块豆腐一头撞死. 需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位.大家一定要对需求分析具有足够的重视.在一个大型软件系统的开发中,他的作用要远远大于程序设计. 二、需求分析的任务 简言之,需求分析的任务就是解决"做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求. 三、需求分析的过程 需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评审. 问题识别 就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标. 分析与综合 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分.最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型). 制订规格说明书 即编制文档,描述需求的文档称为软件需求规格说明书.请注意,需求分析阶段的成果是需求规格说明书(好象软考曾经考过这个问题),向下一阶段提交. 评审 对功能的正确性,完整性和清晰性,以及其它需求给予评价.评审通过才可进行下一阶段的工作,否则重新进行需求分析。

四、需求分析的方法 需求分析的方法有很多.这里只强调原型化方法,其它的方法如:结构化方法,动态分析法等(个人认为,对初学者不必深究这些方法,实际上我也从来没用过这些方法)在此不讨论. 原型化方法是十分重要的(是软考等常考的知识点).原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能. 原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能,但是这个系统可能在可靠性,界面的友好性或其他方面上存在缺陷.建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性,技术的可行性,或考察是否满足用户的需求等.如,为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型.以后的目标系统就在原型系统的基础上开发. 原型主要有三种类型(软考考过):探索型,实验型,进化型.探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性.实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠.进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。

在使用原型化方法是有两种不同的策略:废弃策略,追加策略.废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成比较好的思想,据此设计出较完整,准确,一致,可靠的最终系统.系统构造完成后,原来的模型系统就被废弃不用.探索型和实验型属于这种策略。

追加策略:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后通过不断地扩充修改,逐步追加新要求,发展成为最终系统。

进化型属于这种策略. 五、需求分析的20条法则 客户与开发人员交流需要好的方法。

下面建议20条法则,客户和开发人员可以通过评审以下内容并达成共识。

如果遇到分歧,将通过协商达成对各自义务的相互理解,以便减少以后的磨...

如何系统的进行用户需求分析

项目管理以及相关项目功能中都起了重要的作用:&quot:定义需求基线(迅速制定需求文档的主体),因为另外一些可能属于子系统(或软件部件).作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等.它包括产品必须遵从的标准,即便并非出于商业目的的软件需求也是必须的.例如库、组件和工具这些供开发小组内部使用的软件.当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生.结果这个小组只好手工抄写源代码文档以供代码检查.客户的接受仅是需求成功的一半,开发人员也必须能够接受他们,并真正把需求应用到产品中.1.这种合同都包含在编写的需求文档与模型中,现在我要的就是给我编一个系统&quot,这在使用实例(use case)文档或方案脚本说明中予以说明.3.功能需求(functional requirement)定义了开发人员必须实现的软件功能.需求分析的任务开发软件系统最为困难的部分就是准确说明开发什么.最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口.他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误.事实上,需求文档在开发过程中一直起指导作用.3.需求分析过程可把整个软件需求工程研究领域划分为需求开发和需求管理两部分更合适.估计变更需求所产生影响并在此基础上协商新的承诺.分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、评价、编写文档等所有活动.需求开发活动包括以下几个方面,当他们开发完这个工具后.同时这也是一旦做错.将所收集的用户需求编写成文档和模型、产品高层次的目标要求,它们在项目视图与范围文档中予以说明.2.用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务、用户需求和功能需求(也包括非功能需求).将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件,如图4-1所示,而并非产品是怎样设计、构造的.而下面的定义则从用户需要进一步转移到了系统特性:需求是指明必须实现什么的规格说明.了解相关质量属性的重要性.商讨实施优先级的划分.所以如果只有一堆邮件、会谈记录或一些零碎的未整理的对话,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的.评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚.需求管理需要"建立并维护在软件工程中同客户达成的合同&quot,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能;性能要求;设计或实现的约束条件及质量属性.所谓约束是指对开发人员在软件产品设计和构造上的限制.质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能.多角度描述产品对用户和开发人员都极为重要.下面以一个字处理程序为例来说明需求的不同种类.业务需求可能是:"用户能有效地纠正文档中的拼写错误",该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器.而对应的用户需求可能是"找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词".同时,该拼写检查器还有许多功能需求,如找到并高亮度提示错词的操作;显示提供替换词的对话框以及实现整个文档范围的替换.从以上定义可以发现,需求并未包括设计细节、实现细节、项目计划信息或测试信息.需求与这些没有关系,它关注的是充分说明你究竟想开发什么.项目也有其它方面的需求,如开发环境需求或发布产品及移植到支撑环境的需求.尽管这些需求对项目成功也至关重要,但它们并非本书所要讨论的.5.需求分析的原则不重视需求过程的项目队伍将自食其果.需求工程中的缺陷将给项目成功带来极大风险,这里的"成功"是指推出的产品能以合理的价格、及时地在功能、质量上完全满足用户的期望.下面将讨论一些需求风险.不适当的需求过程所引起的一些风险:1. 无足够用户参与客户经常不明白为什么收集需求和确保需求质量需花费那么多功夫,开发人员可能也不重视用户的参与.究其原因:一是因为开发人员感觉与用户合作不如编写代码有意思;二是因为开发人员觉得已经明白用户的需求了.在某些情况下,与实际使用产品的用户直接接触很困难,而客户也不太明白自己的真正需求.但还是应让具有代表性的用户在项目早期直接参与到开发队伍中,并一同经历整个开发过程.系统人员在实践过程中,也有些感觉,在实施一家公司的项目时,若无足够的用户参与,系统人员获得的需求是片面的,不完整的,这样系统在需求之初就埋下风险.2. 用户需求的不断增加在开发中若不断地补充需求,项目就越变越庞大以致超过其计划及预算范围.计划并不总是与项目需求规模与复杂性、风险、开发生产率及需求变更实际情况相一致,这使得问题更难解决.实际上,问题根源在于用户需求的改变和开发者对新需求所作的修改.要想把...

大家还关注
    
阅读排行
推荐阅读