【IT168 技术文章】
1. 软件需求:
软件需求分为三大部分:
1)、功能需求:指系统需要完成那些事情,即向用户提供那些功能。
2)、非功能需求:指产品所具备的品质和属性,比如可靠性、扩展性、响应时间、性能等等。。。
3)、设计约束:也称条件约束、补充规则。比如用户要安装该产品他需要有什么样的必备条件。(系统对操作系统的要求、硬件环境的要求等等…..)
2. 需求调查与问题定义:
在做需求调查时需要做到两W一H即 What、Where、How
1)、What-----应该收集什么信息
2)、Where----从什么地方收集
3)、How-------用什么机制或技术来收集
3.需求分析
需求分析通常包括六个方面:
1)、绘制系统上下文范围关系图:主要用于定义系统与系统外部实体间的界限和接口的简单模型,他可以为需求确定一个范围。其实就是DFD的0层图。
2)、创建用户接口原型:这里我们可以把他看成是用户操作的一个雏形,什么意思呢就是我们通常所说的界面用户通过一系列的操作完成他想达到的效果的接口。
3)、分析需求的可行性:这个需求我们应该用什么技术解决,他实现后的性能怎么样,是否与其他需求相重合或是矛盾,这里一定要注意不要把系统的这个需求怎么用代码实现想进去。在需求分析时应多注意需求本身是否有用不必考虑怎么实现。
4)、确定需求的优先级:可采用满意度/不满意度指标来说明(满意度1-5 表示当需求被实现时用户的满意程度;不满意度取值同理)
5)、为需求建立模型:这里可以用UML创建用例图或是E-R图再加上少量的文字描述。
6)、使用质量功能调配(QFD):这里我的理解是分析员根据需求的理解发现隐藏需求而这些需求是用户也没有想到的需求,系统实现后会给用户一个惊喜,而没实现用户也不会有抱怨。
4.需求分析方法
现在比较流行的软件需求分析方法有4种,其中3种理论比较成熟。
1)、结构化分析方法(Struetured Analysis,SA):这个大家想必很熟悉了不在复述。
2)、软系统方法:这只是过度性的方法论他的出现只是证明结构化分析方法的一些不足。因为结构化分析方法采用的相对形式化的模型不仅与社会观格格不入,而且在解决“不确定性”时显得十分无力。
3)、面向对象分析方法(Object Oriented Analysis,OOA):这也是我下文想讲的分析方法
4)、面向问题域的分析(Problem Domain Oriented Analysis,PDOA):OOA也存在着很多不足,但PDOA现在正在研究中所以未被广泛应用。这里需要注意的是:在软件开发中有很多需求分析方法他们没有好坏之分只要你运用得当照样可以做出一个很好的系统,依据个人对某个方法的理解用自己最擅长的方法是最明智的选择。