软件工程——软件需求分析

软件生命周期由三部分组成:软件定义、软件开发、软件维护。
其中软件定义时期又可以分为三个阶段:问题定义、可行性研究、需求分析。

需求分析

需求分析处于软件定义时期的最后一个阶段,同时又处于软件正式开发起始阶段,关系到整个软件的开发和维护。
基本任务是回答“系统必须做什么”这个问题。该阶段要提交详细的数据流图、数据字典和算法描述。

需求分析的特点

困难点:
1.需求易变性
用户在开始时提出一些功能需求,当对系统有一定的了解后,会提出一些需求。以后随着理解的深入会不断提出新的需求。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。

2.问题的复杂性
一方面是由用户所涉及的因素繁多引起的,如运行环境和系统功能等;另一方面是扩展的应用领域本身的复杂性。

3.交流障碍
涉及人员较多,系统分析员要与软件系统用户、问题领域专家、需求工程师、项目管理员等进行交流。但是这些人具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。

4.不完备性和不一致性
由于用户各类人员对于系统的要求所处的角度不一样,所以对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾。需求分析要消除其矛盾,形成完美及一致的定义。

需求分析的原则

为使需求分析科学化,在软件工程的分析阶段中提出了许多需求分析方法。但要遵循一下原则:
(1)把复杂问题按功能进行分解并逐层细化。
(2)必须能够表达和理解问题的数据域和功能域。
(3)建立模型。

需求分析的任务

1.问题明确定义
在可行性研究的基础上,双方通过交流,对问题都有进一步的认识,所以可确定对问题的综合需求:
(1)功能需求
(2)性能需求
(2)环境需求
(2)用户界面需求
(2)系统的可靠性、安全性。可移植性、可维护性等需求

2.导出软件的逻辑模型
分析人员根据前面获取的需求资料,要进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。同时对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分。最后要用图文结合的形式,建立起新系统的逻辑模型。

3.编写文档
通过分析确定了系统必须具有的功能和性能,定义了系统中的数据,描述了数据处理的主要算法。应该把分析的结果用正式的文件记录下来,作为最终软件的部分材料。

需求分析的方法

1.功能分解法(将一个系统看成是若干功能的集合)
功能分解=功能+子功能+功能接口

2.结构化分析方法(研究数据如何流动以及各端点如何处理)
结构化分析=数据流+数据处理(加工)+数据存储+端点+处理说明+数据字典

3.信息建模方法
信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象

4.面向对象的分析
面向对象=对象、类+结构与连接+继承+封装+消息通信

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这是我最喜欢的东东之一!在这个关于软件工程的新专栏里,作者将结合理论知识,实践案例,优秀的工具介绍,经典文章导读,告诉您软件工程中最重要的一个过程――需求过程各方各面的知识。通过阅读,您将了解到,需求的知识体系,需求的过程能力,相关的软件工程知识,在实践中如何做好需求分析。文章虽然有很多的例子,但是,文章主要还是偏向于宣传一种思想,一种面向对象的思想,一种实践的思想。 第一篇 1.1. 从猴子说起有这样一个笑话:一个旅客走进硅谷的一家宠物店,浏览展示的宠物。这时,走进一个顾客,对店主说:"我要买一只C猴。"店主点了点头,走到商店一头的兽笼边,抓出一只猴,递给顾客说:"总共5000美元。"顾客付完款,然后带走了他的猴子。这位旅客非常惊讶,走到店主跟前说:"那只猴子也太贵了!"店主说:"那只猴子能用C编程,非常快,代码紧凑高效,所以值那么多钱。"这时,旅客看到了笼子中的另一只猴子,它标价10000美元。于是又问:"那只更贵了!它能做什么?"店主回答:"哦,那是一只C++猴;它会面向对象的编程,会用Visual C++,还懂得一点Java,是非常有用的。"旅客又逛了一会儿,发现了第三只猴子,它独占一个笼子,脖子上的标价是50000美元。旅客倒抽一口气,问道:"那只猴子比其他所有猴子加起来都贵!它究竟能做什么?"店主说:"我们也不知道它究竟能这是我最喜欢的东东之一!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值