软件需求分析过程
- 格式:ppt
- 大小:921.50 KB
- 文档页数:141


1软件需求分析
温州医学院附属眼视光医院信息中心
王晓幸设计分析
程序编写
测试移植
运行维护上节内容
软件需求分析
–可行性研究分析
–需求分析的任务和目标
–需求分析的过程(概述)
–问题定义
–结构化分析
实体-关系图
数据流图
状态-迁移图
数据词典
控制流图
控制流图(CFD)
数据流图中的“加工”,何时激活?控制流图(CFD)
图2
2结构化分析总结
实体-关系图ERD
描述数据对象、属性和相互关系(数据建模)
数据流图DFD
描述系统内部数据运动的情况和数据的加工(功能建模)
状态–迁移图STD
描述系统的不同状态,以及导致改变的事件(行为建模)
控制流图CFD
描述数据流图中的加工激活的外部事件(控制建模)
数据词典需求分析的过程
需求分析评审编制需求分析阶段的文档
将需求定义转换为相应的形式的
规格说明分析与综合把用户的非形式的要求转化为完
整的需求定义问题识别通过调查分析, 理解用户要求目标和任务相应的过程
制定软件需求规格说明的8个原则
1.功能与实现分离,即描述要"做什么"而不是"怎样实现"。
2.系统规格说明必须是一个认识的模型,而不是设计或实现的模型。
3.要求使用面向处理的规格说明语言。比如:“当用户希望得到全部员工
的考勤报表时,……”,”在网络意外连接中断的时候,…….”
4.如果目标软件只是一个大系统中的一个元素,那么整个大系统也包括
在规格说明的描述之中。描述该目标软件与系统的其它系统元素交互
的方式。
5.规格说明必须包括系统运行的环境。
6.规格说明必须是可操作的。
7.规格说明必须容许不完备性并允许扩充。
8.规格说明必须局部化和松散的耦合。1979年由Balzer和Goldman提出做出良好规格说明的8条原则软件需求规格说明的内容框架
需求分析的过程
需求分析评审编制需求分析阶段的文档
将需求定义转换为相应的形式的
规格说明分析与综合把用户的非形式的要求转化为完
整的需求定义问题识别通过调查分析, 理解用户要求目标和任务相应的过程需求分析评审
需求捕获与软件开发过程
需求真的在一直变化吗? 不一定是这样,例如对传统行业的信息化,由于有相对稳定的工作流程,需求变化不会很大。并不是所有的软件项目的需求都是变幻莫测的。如果在项目初期没有对需求进行全面的捕获和确认,那项目进行过程中出现反复修改,以至于返工,都是很可能的事。 这就对需求捕获人员提出了很高的要求,需求不但要全面,准确,还要考虑到实施中的每一个细节,如果某个细节出现不符合客户实际的要求,到项目实施完成之后,可能要进行一个工作量很大的修改,还会牵扯到其他的功能,在修改的过程中又会引入新的问题,这就象所说的牵一发而动全身一样。 不同的软件开发过程对于需求变化的解决办法是不同的。 统一软件开发过程(UP、RUP)的解决办法是预防和控制需求的变化。 敏捷的方法如XP,则倡导拥抱变化。 一、统一的方法
统一软件开发过程是通过在项目的前期尽可能准确,全面地捕获需求,然后对需求的变化加以控制和管理,来避免范围的蔓延,并通过迭代和递增的开发方式,来应对变化。 从软件工程发展的历史,我们说在项目前期全面地捕获需求一直是一个做好软件的不二法则。 对业务逻辑相对稳定的项目,在项目实施之前做好需求的捕获绝对是受益匪浅的,因为软件的问题在生命周期的后期发现需要的成本要比在初期发现高得多。 迭代和递增式开发也降低了项目的风险,他允许在项目进行过程中对需求进行校正,它通过递增的版本发布使得客户能在软件开发生命周期过程中就对软件有了更全面的认识,因此也能及时的提出改进意见。 从团队的角度看,迭代的开发更符合人类学习的曲线-一个渐进的过程。在项目开发的初期,开发人员对业务逻辑和技术的掌握可能并不全面,随着项目的进展,认识会不断加深,这对于后期的迭代周期的成功是很好的保障。 然而,某些项目确实存在很多不确定因素,还有某些大型项目,历时时间很长,在那么长的时间里需求会变化是很自然得事情。 对这些项目迭代和递增的开发方法会比在项目早期就尽可能地捕获需求更有意义。 一、敏捷方法(XP)以XP为例,他提出以拥抱变化来应对需求的变化,他并没有强调在项目的初期确定能确定的需求的重要意义。这与传统的软件工程观点和统一软件开发过程有差异,他不主张预防需求变化,因此也就没有强调尽可能在早期确定需求。
阐述软件需求分析基本步骤
伴随着全球经济的加速发展和现代化进程的加快,计算机已经被广泛地应用于各个行业和领域,其发挥的作用是不可估量的,而不同的软件是计算机在各个不同行业应用的基础,计算机的大规模应用也刺激了软件开发的快速发展。软件日益向着高度专业化、操作简便性发展,在这种新的形势下,软件用户也给软件开发提出了新的更高的挑战。软件需求分析就是为了针对不同用户的个性化进行用户的软件使用需要、使用目的以及使用能力方面的综合分析然后针对性地进行软件开发,以更好地满足用户的需求。在软件开发的整个过程中,软件需求分析是第一步,也是至关重要的一步,它直接关系软件开发项目的成败。根据统计资料显示,目前75%的软件开发失败案例中,一半以上是由于没有做好软件开发前的需求分析导致的。因此,一个好的软件需求分析是成功软件开发的第一步,能够达到事半功倍的效果,相反,就会造成大量的人力物力浪费,甚至直接导致软件开发项目的失败。
1 软件需求分析的内容及主要任务
软件需求分析主要是指开发者对于软件用户定制软件使用意图的分析和判断的过程,并且需要在对软件可行性分析的基础上进行系统和软件功能实现方面的详细论证和说明,最终确定用户的真正需要是什么,所要完成的功能具体是什么。从内容上来说需求分析主要有两大类:基于软件功能的需求分析和基于非功能的需求分析。其中前者是指分析所开发的软件具有能够完成什么样的功能以及利用这些软件功能可以实现什么样的具体操作功能,主要是指满足性能方面的需求,也即用户对于软件的最基本的需求。后者则更加侧重于一些软件附属功能,例如软件日后的升级、软件的操作界面选择等等,这些是基于用户的实际需求进行的,具有更大的灵活性,对软件开发也有很大的影响。
需求分析是在正式开发前的最关键步骤,它的最终目的就是要通过对用户需求进行详尽分析,并且能够形成一份用户和开发者之间的关于待开发软件的详细的技术说明,包括软件的功能等都要做出具体的描述。需求分析的主要任务由针对用户的问题分析、对问题进行系统综合分析、编写详细的技术文档以及用户需求确认四部分。
龙源期刊网
需求分析在软件开发过程中的重要性
作者:陆丽
来源:《电脑知识与技术》2012年第21期
摘要:软件工程中的需求分析是软件生命周期中一个非常重要的过程,它决定着整个软件项目的质量,也是整个软件开发的成败所在。该文主要讨论软件开发过程中需求分析的关键技术及应用实例,并提出一些有探索性的问题。
关键词:软件工程;需求分析;用户方成员;项目管理者
中图分类号:TP271文献标识码:A文章编号:1009-3044(2012)21-5113-03
目前,计算机软件业得到了快速发展,但是软件业所呈现出来的劣势已经不容忽视,它正严重制约着我国IT业的发展。软件开发中的劣势主要表现在:软件的开发和维护缺乏正确的方法,系统运行满足不了用户的需求,软件产品的质量存在大量的漏洞。而事实证明,造成这些后果的主要原因是:在软件开发的初始阶段,项目的需求分析做得不够深入细致,也没有实行有效的需求工程管理。大量的实例表明,软件需求分析是决定软件质量的基础,也是一个软件开发项目成败的关键。软件的需求分析作为一个软件项目开发的第一阶段,其重要性很突出。软件的需求分析是指,理解用户方对目标软件在性能、功能、设计等方面的需求。通过对用户方提出的具体问题的理解与分析,抽象出问题涉及的信息功能及行为的逻辑模型,并最终形成需求文档,因此构成软件开发生命周期的需求分析阶段。
目前,高校的计算机专业都设置了软件工程这门课程,专门的软件培训机构也加大了对软件工程人才的培养,目的都在于建立学生的软件开发基础,熟练掌握软件工程中需求分析的技术,提高学生软件开发的能力。通过对软件工程知识的系统学习以及参与的一些案例开发,该文提出在软件需求分析过程中的一些有效措施。
1确定各方成员,获取用户需求,减少不利因素对需求分析的影响
需求分析的第一步是全面熟悉该软件项目的所有相关人员,明确需求分析方成员和用户方成员。通过系统分析人员和用户方成员的多次交流和沟通,最终确定对目标软件的综合要求,以及确定如何实现用户方的需求和软件最终应达到的标准。在做需求调查时,应避免不利因素的影响,分析者必须从该软件项目的细节问题出发,逐步细化软件的功能,然后做一份详细设计方案,提炼出各种不同的软件元素,并找出各元素之间的联系,预测该软件项目是否存在片面性或可能导致不满足用户需求的情况。该过程中,如果有问题,需与用户再进行交流,确定软件最终的设计方案,并定义目标系统的详细逻辑模型。另外,在做项目的需求分析时,还应主动建立用户方单位的人事组织、业务关系,并用结构图画出单位的组织结构,还应当在单位组织结构图基础上画出全体项目成员的结构图,以便更好更全面地进行需求调研分析,发现问题适时调整,进而确保需求分析的高度准确性。 龙源期刊网