❶ 如何理解需求分析的作用和重要性
通过对应问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。
需求分析是介于系统分析和软件设计阶段之间的桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。
需求工程是随着计算机的发展而发展的,在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视。后来软件开发引入了生命周期的概念,需求分析成为其第一阶段。随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,它贯穿于系统开发的整个生命周期。80年代中期,形成了软件工程的子领域——需求工程(requirementengineering,RE)。进入90年代以来,需求工程成为研究的热点之一。从1993年起每两年举办一次需求工程国际研讨会(ISRE),自1994年起每两年举办一次需求工程国际会议(ICRE),在1996年Springer-Verlag发行了一新的刊物——《RequirementsEngineering》。一些关于需求工程的工作小组也相继成立,如欧洲的RENOIR(),并开始开展工作。
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。RE可分为系统需求工程(如果是针对由软硬件共同组成的整个系统)和软件需求工程(如果仅是专门针对纯软件部分)。软件需求工程是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成软件的需求描述和一些性能参数。
需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最终在验证的基础上冻结需求。80年代,HerbKrasner定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理。近来,MatthiasJarke和KlausPohl提出了三阶段周期的说法:获取、表示和验证。
综合了几种观点,可以把需求工程的活动划分为以下5个独立的阶段:
(1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求;
(2)需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义;
(3)形成需求规格:生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约;
(4)需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;
(5)需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。
❷ 软件需求分析的作用
开发软件系统最为困难的部分就是要准确说明开发什么。最为困难的概念性工作便是要编写出详细的技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。如果做错,这将是会最终给系统带来极大损害的一部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间的接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?
然而,即便并非出于商业目的的软件需求也是必须的。例如库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。
❸ 对于软件开发而言文档究竟有多大的作用
规范性的文档是软件开发最重要的环节,规范软件开发的50%的时候是在写各种文档(需求文档,概要设计,详细设计,测试计划,测试报告等)
❹ 如何理解需求分析在软件开发中的重要性
需求分析可以使得开发和测试更能够了解客户的需求,把一些技术难点和可能遇到的难点问题提出来,尽早解决,并且达到一致,便于以后的开发和测试
❺ 软件开发的需求文档要具备哪些要素,格式如何
需求文档的编写内容包括很多的,但是需要根据该软件的规模和具体要求进行编写。 一份比较完整的详细需求分析应该包括:1. 前言 2. 摘要 3. 系统详细需求分析 3.1. 详细需求分析 3.1.1. 详细功能需求分析 3.1.2. 详细性能需求分析 3.1.3. 详细信息需求分析 3.1.4. 详细资源需求分析 3.1.5. 详细组织需求分析 3.1.6. 详细系统运行环境及限制条件需求分析 3.1.7. 信息要求 3.1.8. 性能要求 3.2. 接口需求分析 3.2.1. 系统接口需求分析 3.2.2. 现有软、硬件资源接口需求分析 4. 总体方案设计4.1. 系统总体结构 4.1.1. 系统组成、逻辑结构 4.1.2. 应用系统结构 4.1.3. 支撑系统结构 4.1.4. 系统集成 4.1.5. 系统工作流程
.2. 分系统详细界面划分 4.2.1. 应用分系统与支撑分系统的详细界面划分 4.2.2. 应用分系统之间的界面划分 5. 应用分系统详细设计 5.1. XX分系统详细需求分析 5.1.1. 功能详细需求分析 5.1.2. 性能详细需求分析 5.1.3. 信息详细需求分析 5.1.4. 限制条件详细分析 5.2. XX分系统结构设计及子系统划分 5.3. XX分系统功能详细设计 5.4. 分系统界面设计 5.4.1. 外部界面设计 5.4.2. 内部界面设计 5.4.3. 用户界面设计 6. 数据库系统设计 6.1. 设计要求 6.2. 信息模型设计 6.3. 数据库设计 6.3.1. 数据访问频度和流量 6.3.2. 数据库选型 6.3.3. 异构数据库的连接与数据传递方式
6.3.5. 数据共享方式设计 6.3.6. 数据安全性及保密设计 6.3.7. 数据字典设计
8. 信息编码设计 8.1. 代码结构设计 8.2. 代码编制 9. 关键技术 9.1. 关键技术的提出 9.2. 关键技术的一般说明 9.3. 关键技术的实现方案 10. 系统配置 10.1. 硬件配置 10.2. 软件配置 11. 限制 12. 组织机构及人员配置 12.1. 机构调整与确认 12.2. 组织机构的任务和职责 12.3. 人员配置方案 12.4. 培训计划 13. 工程实施计划 13.1. 分期实施内容 13.2. 进度计划 13.3. 实施条件 13.4. 测试与验收 14. 投资预算 15. 参考和引用资料
16. 术语
这里还有很需要补充的,也有很多是可以不写的;因为一份需求文档不是谁能写的,呵呵,在实际的工作中
是那些负责人才能写这个的。如果是课设的话,只要在流程图 逻辑结构 或者是XX分系统的设计图上下点功夫就好了。说到格式 就是按上面的写 然自己弄一个目录 就像是我们平时翻书的时候看到的那种,这样好阅读。
❻ 需求分析在软件开发中真的有那么重要吗
这是很明显的,如果不知道要干什么,那你怎么开发呢。就像你要建一栋房子,但是你还没有决定你要建别墅还是公寓,那你会开始建吗,肯定是不会的。
❼ 软件文档在软件开发中的作用
软件文档在软件开发中起到很重要作用,如果没有软件文档,后前的工作就难以展开,维护很难。软件文档其实可以看做是一个规范、标准,特别是前期的需求分析,利用软件文档可以很好的去了解业务逻辑等。
❽ 需求分析在软件开发中的重要性
软件需求分析特别重要。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中的一个简单步骤,但在过去十多年中越来越多的人认识到它是整个过程中最关键的一个过程。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。许多大型应用系统的失败,最后均归结到需求分析的失败:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。参考文章: http://book.csdn.net/bookfiles/1047/100104731335.shtml
❾ 需求工程的重要性是什么
需求工程的重要性主要表现在: 增强了项目涉众对复杂产品特征在细节和相互依赖关系上的理解, 增强了项目涉众对需求( 尤其是复杂需求) 的掌握 ; 增进了项目涉众之间的交流, 减少了可能的误解和交流偏差; 需求管理能够更加有效地处理需求变更,提高了生产效率; 需求跟踪信息能够更加准确地反映项目的进展情况,以便进行更好的项目决策; 使得项目涉众认识到需求在项目工作中的重要性, 使得需求的作用得到重视和有效发挥。良好的需求分析和管理工作, 才能把系统的功能描述和性能指标转化为具体的软件需求规格说明书,成为系统建设的依据和基础。
需求工程的内容
需求获取阶段
需求获取首先需要的是技术的支持,其次,在需求获取工作中主要涉及了 3 个至关重要的因素:应搜集什么信息;从什么来源中搜集信息;用什么机制或技术搜集信息。再次,需求获取的开始,代表着软件项目正式开始实施,正所谓万事开头难。综合上述 3 个点使得需求获取成为软件开发中最困难、最关键、最易出错也是最需要交流的方面。在工作开展中,主要是就业务流程、组织架构、软硬件环境和现有系统等相关内容进行沟通,挖掘系统最终用户的真正需求,把握需求的方向。在需求获取调研会中首先对需求获取方法作了验证。现行的需求获
取方法一般有基于调查的需求获取方法、基于用例的需求获取方法、原型法等几种方法。各种需求获取方法各有利弊。
需求分析阶段
需求分析与需求获取是密切相关的,需求获取是需求分析的基础,需求分析是需求获取的直接表现,两者相互促进,相互制约。需求分析与需求获取的不同主要在于需求分析是在已经了解承建方的实际的客观的较全面的业务及相关信息的基础上,结合软、硬件实现方案,并做出初步的系统原型给承建方做演示。承建方则通过原型演示来体验业务流程的合理化、准确性、易用性。同时,用户还要通过原型演示及时地发现并提出其中存在的问题和改进意见和方法。
需求文档编写阶段
需求开发的最终成果是,在对所要开发的产品达成共识后,所编写的具体的文档。需求文档是在需求获取和需求分析两个阶段任务结束时生成的,所以文档要包含所有需求。在此阶段先要从软件工程和文档管理的角度出发依据相关的标准审核需求文档内容,确定需求文档内容是否完整。对需求文档中存留问题进行修改的工作。
需求确认阶段
需求确认主要是针对《需求规格说明书》的评审,保证需求符合优秀需求成熟的特征,并且符合好的需求规格说明的特征。在需求确认阶段需要保证以下几点:
(1)软件需求规格说明正确描述了预期的满足各方涉众需求的系统能力和特征。
(2)从系统需求、业务规则或其他来源中正确的推导出软件需求。
(3)需求是完整的、高质量的。
(4)需求的表示在所有地方都是一致的。
(5)需求为继续进行产品设计和构造提供充分的基础。
需求跟踪阶段与需求复用阶段
需求跟踪是指通过比较需求文档与后续工作成果之间的对应关系,确保产品依据需求文档进行开发,建立与维护“需求——设计——编程——测试”之间的一致性,确保所有工作成果符合用户需求。需求跟踪是一项需要进行大量手工劳动的任务,在系统开发和维护的过程中一定要随时对跟踪联系链信息进行更新。需求跟踪能力的好坏会直接影响产品质量,降低维护成本,容易实现复用,同时,需求跟踪还需要建设方的大力支持。
需求复用阶段
在软件项目实施过程中,许多不同项目间存在着许多相似的需求,尤其是类型相同的项目在不同的用户群众的实施中,需求的相似性就更加明显、更加普遍了。有了需求复用,建设方就能快速的形成一个需求的原型,这样,后期的需求工作只需要在此原型的基础上进行修改、扩充和完善即可,大大提高了需求分析的工作进度。所以,对于需求的复用就需要加以重视。对于需求复用,首要责任就是要提取可复用的需求,对需求复用的理解和扩充。其次就是要保证需求复用不存在冲突。
需求变更控制阶段
需求变更在软件项目开发中是不可避免的。无休止的需求变更只会造成各种资源无休止的浪费,但是其中也不乏有许多是必要的、合理的需求变更。对于需求变更,首先是要尽量及早的发现,以避免更大的损失。其次,是要采取相应的、合理的变更管理制度和流程,这样同样可以降低需求变更带来的风险。
版本控制阶段
版本控制是管理需求规格说明和其他项目文档必不可少的一个方面,也是需求变更文档化管理的最有效办法。可以详细记录发生需求变更的需求文档版本的版本,发生变更的原因,变更发生的控制记录,并对变更后的需求文档进行唯一版本号的标识。使得每个成员都能及时访问最新版本的需求文档。
实施版本控制的基础是需求基线,所谓需求基线就是项目组成员一经承诺将在某一特定产品版本中实现的功能性和非功能性需求的集合。需求基线的确定可以保证项目的涉众各方可以对发布的产品中希望具有的功能和属性有一个一致的理解。