Abstract
The paper discuss the important problem in software development——requirements analysis. Developer and user always ignore the communication, it causes directly the software does not meet the good demands of the user ,and cost a lot of time and money. Moreover, it affects the performance of the software. So, the requirements analysis is important in the early time of the development. This paper mainly discuss the requirements analysis’s influence on the system design from requirements develop, requirement management, requirement program.
Keywords:software requirement, requirement analysis, system design
1引言
随着计算机软件项目的规模越来越大,软件工程的理念已深入人心,人们也越来越认识到软件质量的重要性,在这种情况下,软件需求作为软件工程的一个阶段,就显得尤为重要了。如果软件开发人员与客户不进行充分的交流与沟通,没有就产品的功能性需求和非功能性需求达成共识,就匆匆开始着手编写代码,其结果很可能是既满足不了用户的需求,又浪费了人力物力。
为了避免以上问题的出现,我们必须重视需求分析,并且以需求工程的角度分两个方面软件需求开发、软件需求管理来具体探讨。
2 软件需求开发
所谓需求分析(requirements analysis)是软件工程学中经典的术语之一,名
副其实的含义是对用户需求进行分析,并产生一份明确、规范的需求定义。从这个意义上讲,我们可以知道,需求分析要做的是回答用户要做什么的问题,而不是用户提出的问题怎么解决的问题。做什么和怎么做两者之间显然存在显著的区别,但是就整个软件开发过程而言,两者又存在密切联系。一味的追求满足用户做什么,忽略可行性是愚蠢的。而过分追求怎么做,臵用户的需求于不顾也是不明智的。
就软件需求开发而言包括对一个项目需求的获取、分析、规格说明及确认。一般的需求开发的成果应包括前景和范围文档、用例文档、软件需求规格说明、数据字典和相关的分析模型。
首先我们先确定产品的前景与项目范围。
一方面可以通过业务需求定义前景,平衡好相互矛盾的业务需求。如开发者希望为用户引进高科技的技术,而用户只要求一个简单的,可以马上使用的系统,这时就需要考虑多方的制衡关系了。 另一方面可以通过画关联图、范围管理和时间框式开发来确保项目范围在合理之内。
然后通过找到合适的客户代表,获取他们的需求,以及将用例、业务规则、功能性需求和质量属性编写成文档。在这个过程中,前提是要遵循业务规则,包括事实、约束、动作触发规则、计算和推论等,从而使功能性需求和相关业务规则达到一致。
另外,还可以通过制作原型以减少项目风险,设定需求优先级,需求确认等方式来进行软件需求的开发。
3 软件需求管理
在软件需求管理中,主要探讨的是处理需求变更所用的方法。这在实践中是很常见的。其实软件需求变更也并非总是坏事,在某种意义上,它可以促进开发工作不断向前发展,提高开发团队的适应性。当必须做出变更时,我们应该先从变更的最高层次开始修改,然后再逐级处理相关变更。在整个变更管理过程中,要注意控制管理范围的蔓延,调整变更控制过程,并进行影响分析。另外在需求管理中,也要注意需求的可跟踪性,将单个需求与它们的起源、下游开发的可交付成果联系起来。我们还可以使用需求管理工具来强化软件的需求管理。
4 小结
通过对需求分析的研究,我对其在系统设计整个项目过程中的地位和作用有
了更加明确的认识,归纳起来有以下几点:
(1)在开发周期中,应该对需求分析给予极大的重视,因为需求分析对系统设计实在有着太重要的意义。我曾向一些工作或是有过不少项目经验的朋友请教需求分析在整个软件开发中的意义,他们毫不掩饰的说,在整个软件开发和系统设计的时间周期中,有关于需求的分析有时甚至于占到整个开发周期的一半时间。他们认为编写代码不存在很大的阻碍,关键还是在于之前的需求分析。需求分析的重要性可见一斑。
(2)在系统设计过程中,要具备随时应对用户需求变更的能力,也要通过控制范围扩大和需求变更来满足项目的进度目标,以达到更高的客户满意度。
参考文献
[1]软件需求.刘伟琴 刘洪涛译 Karl E.Wiegers中文版[M].北京:清华大学出版社,2004.
[2]面向对象的系统分析.邵维忠 杨芙清.北京:清华大学出版社,2006.