谈谈你是如何进行需求分析的,最后谈谈你学习完软件工程课程的体会。

2024-12-17 13:10:36
推荐回答(2个)
回答1:

需求分析是要决定“做什么,不做什么”。
需求分析为什么困难?有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。
客户说不清楚需求:有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户心里非常清楚想要什么,但却说不明白。

事实上,用简单的话来说明需求过程,就是确定系统该做些什么以及该符合什么条件。话虽然简单,实现起来可没有那么容易。所以科学的需求过程有一整套完整的理论、工具、方法来实现。
明确:目前大多数的需求分析采用的仍然是自然语言(因为如果采用形式化语言的话,和用户的沟
通将成为一个大问题,这意味着客户在开发软件之前必须先进行形式化语言培训,这是不现实的)。
自然语言对需求分析最大的弊病就是它的二义性。所以我们不得不对需求分析中采用的语言做某些
限制。例如尽量采用主语+动作的简单表达方式。说白了,需求分析中的描述让人看上去像是刚学习写作的小孩子就对了,千万不要采用疑问句、修饰这些华丽的表达方式。
。需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。举预测例子。
完整:再也没有什么比软件开发接近完成时才发现遗漏了一项需求更糟的事情了。需求的完整性是
非常非常重要的,想象一下遗漏需求而不得不返工,这简直就是恶梦。可是令人遗憾的是,需求的
遗漏是很经常发生的事情,不仅仅是你的问题,更多的问题发生在用户那里,他们不知道该做些什
么。要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各方各面,贯穿了整个过
程,从最初的计划制定到最后的需求评审。
一致:一致性也是一个比较大的概念,很难用几句话讲清楚。简单的来说,就是用户需求必须和业
务需求一致,功能需求必须和用户需求一致。
可测试:大家觉得一个项目的测试从什么时候开始呢?有人说从编码完成后开始。更清楚一点的说是编码的时候同时进行单元测试,编码完成后进行系统测试。这些都没有错。但是实际上测试是从需求分析过程就开始了。需求分析是测试计划的输入和参照。这就要求需求分析是可测试的。
什么是可测试呢?"我们要用新的系统完成对水质参数更好的管理",你觉得这个需求是可测试的吗?当然不是,水质参数包括哪些?更好的管理的标准是什么?这些在需求中都没有说明。因此这项需求是无法测试的,就是不具有可测试性。
大家可能就会明白之前的需求的几项标准都是为了保证需求的可测试性的。事实就是这样,只有系统的所有需求是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。

回答2:

需求分析是要决定“做什么,不做什么”。 需求分析为什么困难?有几种原因使需求分析变得困难:
(1)客户说不清楚需求;
(2)需求自身经常变动;
(3)分析人员或客户理解有误。 客户说不清楚需求:有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户心里非常清楚想要什么,但却说不明白。 事实上,用简单的话来说明需求过程,就是确定系统该做些什么以及该符合什么条件。话虽然简单,实现起来可没有那么容易。所以科学的需求过程有一整套完整的理论、工具、方法来实现。 明确:目前大多数的需求分析采用的仍然是自然语言(因为如果采用形式化语言的话,和用户的沟 通将成为一个大问题,这意味着客户在开发软件之前必须先进行形式化语言培训,这是不现实的)。 自然语言对需求分析最大的弊病就是它的二义性。所以我们不得不对需求分析中采用的语言做某些 限制。例如尽量采用主语+动作的简单表达方式。说白了,需求分析中的描述让人看上去像是刚学习写作的小孩子就对了,千万不要采用疑问句、修饰这些华丽的表达方式。 。需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。举预测例子。 完整:再也没有什么比软件开发接近完成时才发现遗漏了一项需求更糟的事情了。需求的完整性是 非常非常重要的,想象一下遗漏需求而不得不返工,这简直就是恶梦。可是令人遗憾的是,需求的 遗漏是很经常发生的事情,不仅仅是你的问题,更多的问题发生在用户那里,他们不知道该做些什 么。要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各方各面,贯穿了整个过 程,从最初的计划制定到最后的需求评审。 一致:一致性也是一个比较大的概念,很难用几句话讲清楚。简单的来说,就是用户需求必须和业 务需求一致,功能需求必须和用户需求一致。 可测试:大家觉得一个项目的测试从什么时候开始呢?有人说从编码完成后开始。更清楚一点的说是编码的时候同时进行单元测试,编码完成后进行系统测试。这些都没有错。但是实际上测试是从需求分析过程就开始了。需求分析是测试计划的输入和参照。这就要求需求分析是可测试的。 什么是可测试呢?"我们要用新的系统完成对水质参数更好的管理",你觉得这个需求是可测试的吗?当然不是,水质参数包括哪些?更好的管理的标准是什么?这些在需求中都没有说明。因此这项需求是无法测试的,就是不具有可测试性。 大家可能就会明白之前的需求的几项标准都是为了保证需求的可测试性的。事实就是这样,只有系统的所有需求是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。