赞
踩
需求分析是软件工程中的重要步骤,是决定软件项目成败的关键影响因素之一。需求阶段的错误在后期的纠错成本远远高于软件设计和实现阶段的错误的纠错成本。因此,需求工程成为软件工程和系统工程重要的分支领域之一,在需求工程中,我们主要关注的是软件和系统需求的获取、建模、分析、验证和管理。
访谈是需求获取的主要方式,通过当面交流和引导,获取有效信息,例如用户的痛点、用户希望解决的问题、达到什么目的等。
访谈对象的选择很重要,将直接决定需求的有效性,通常会约客户领导、客户接口人、用户进行访谈。不同的角色对软件的期望不一样,收集到的需求点应进行筛选分析再做参考。
问卷调查适用于大范围的目标人员调查,可以收集到用户对软件的意见和建议,根据收集到的信息进行统计分析,有助于软件需求的挖掘。
优秀的问卷设计有助于获取高质量的信息,信息收集后可以做多维度的统计分析。
现场考察是最直接最有效的需求获取方式,深入现场,观察用户的使用场景和遇到的问题,挖掘潜在需求、分析用户的真正所需,必要时可录像或记录,以便后续深入分析。
资料查阅是指获取业务相关的资料文献,通过阅读资料挖掘相关的需求点,例如业务流程、SOP、操作手册等。
市场调研和竞品分析有助于扩展需求、升级需求,学习市场上更好的产品和想法,在原需求的范围内进一步做优化和升级,获得客户的认可。
作为用户手册的SRS
说明:
评价标准:
软件过程概念
软件过程是为了获得高质量软件而实施的一系列活动,它包括问题定义、需求开发、软件设计、软件构造和软件测试等一系列软件开发的实现活动。而每一项活动都会产生相应的中间制品。为了保证软件开发过程能够按照预定的成本、进度、质量顺利完成,还需要诸如项目管理、配置管理、质量保证等一系列开发管理活动。通过建立整个组织的质量管理体系,实现对软件开发实现活动的有效控制和质量保证。
软件过程组成
瀑布模型将基本的开发活动看成是一系列界限分明的独立阶段,这是一种计划驱动的软件过程, 有利于规范软件开发活动。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
特点:
必须等前一阶段的工作完成后,才能开始后一阶段的工作;前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果
对于规模较大的软件项目来说,往往编码开始的越早,最终完成开发所需时间越长。因为前面阶段的工作没做或做的不扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生无法弥补的问题
瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现
清楚的区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想
为了保证所开发的软件的质量,在瀑布模型的每一个阶段都应坚持两个重要做法:每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务;每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。
传统的瀑布模型过于理想化,实际的瀑布模型是带"反馈环"的。
优缺点
优点:
原型是一个部分开发的产品,用于加强对系统的理解,有助于明确需求和选择可行的设计策略。原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
它允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。
优缺点
优点:
缺点:
软件开发具有迭代性,需要不断地反复尝试,通过比较和选择不同的设计,最终确定令人满意的问题的解决方案。
迭代式开发是将描述、开发和验证等不同活动交织在一起,在开发过程中建立一系列版本,将系统一部分一部分地逐步交付。迭代式的开发使得软件系统能够逐步的进行交付,开发人员在完成一部分功能之后形成一个产品版本,然后将其发布给用户使用,当用户使用第一个版本的时候开发人员继续开发下一个版本,如此迭代循环。这样做,不仅可以缩短产品的开发周期,还可以更好的获得用户对产品的反馈。
增量模型和迭代模型是迭代式开发的两种形式。在增量模型中,首先定义一个小的功能系统,然后在每一个新的发布中逐步增加功能,指导构造出全部的功能;在迭代模型中,一开始就提交一个完整的系统,但是每个功能并不完善,然后在后续的发布中,再对其补充完善,下图说明了增量模型和迭代式模型的区别。
增量模型也称渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能
使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。
把软件产品分解成增量构件时,唯一必须遵守的约束条件是,当把新构件集成到现有构件中时,所形成的产品必须是可测试的。
瀑布模型或快速原型模型目标是一次就把一个满足所有需求的产品提交给用户
增量模型把整个软件产品分解成许多个增量构件,分批地逐步向用户提交产品
特点
增增量模型把瀑布模型的顺序特征与快速原型法的迭代特征相结合,将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。
风险更大的增量模型
确定用户需求后就着手拟定第一个构件的规格说明文档,完成后规格说明组转向第二个构件的规格说明文档,同时设计组开始涉及第一个构件
使用该方法将不同的构件并行构建,可能加快工程进度,但将冒构建无法集成到一起的风险
增量模型也称渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能
使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。
把软件产品分解成增量构件时,唯一必须遵守的约束条件是,当把新构件集成到现有构件中时,所形成的产品必须是可测试的。
瀑布模型或快速原型模型目标是一次就把一个满足所有需求的产品提交给用户
增量模型把整个软件产品分解成许多个增量构件,分批地逐步向用户提交产品
特点
增增量模型把瀑布模型的顺序特征与快速原型法的迭代特征相结合,将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。
风险更大的增量模型
确定用户需求后就着手拟定第一个构件的规格说明文档,完成后规格说明组转向第二个构件的规格说明文档,同时设计组开始涉及第一个构件
使用该方法将不同的构件并行构建,可能加快工程进度,但将冒构建无法集成到一起的风险
可转换模型利用自动化的手段,通过一系列转换将需求规格说明转换为一个可交付使用的系统。
可转换模型是采用形式化的数学方法描述系统,并利用自动化手段通过一系列转换,将形式化的需求规格说明变为可交付使用的系统。
迭代模型是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。即所有功能一起开发,从粗到细,逐步求精。迭代模型适用于需求不甚明确、难度比较大的软件开发。
- 1、在项目开发早期需求可能有所变化。
- 2、分析设计人员对应用领域很熟悉。
- 3、高风险项目。
- 4、用户可不同程度地参与整个项目的开发过程。
- 5、使用面向对象的语言或统一建模语言(Unified Modeling Language,UML)。
- 6、使用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,如Rose(Rose是非常受欢迎的物件软体开发工具。)。
- 7、具有高素质的项目管理者和软件研发团队。
与传统的瀑布模型相比较,迭代过程具有以下优点:
- 1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
- 2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
- 3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
- 4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。