分享
 
 
 

系统设计前的需求探索

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

引言

需求分析阶段需要经历两个步骤:首先,提出问题的人说一些话,以告诉帮助他解决问题的人他要干什么,这就是“问题陈述”,即通过语言或者文字对某个关注点的细节进行表述。然后,解决问题的人和提出问题的人进行沟通,以确证这个问题的细节,这就是“探索需求”,这是一个反复沟通的过程。

需求分析在现代软件开发中的地位日趋重要,这也意味着我们认为现今的需求过程尚不完善。这种不完善很大程度上体现在“问题陈述”和“人们真正想要的东西”之间的差距上,或者说,“问题陈述”没有能够陈述清楚“人们真正想要的东西”。

在过去几年,软件过程和软件工程流行的时代,很多人已经被时尚所左右,言必称自动化,开口即软件工程,仿佛所有的开发问题都已经解决。更有甚者,有人还认为需求分析中的歧义的根源是因为“人”的参与。有人认为“人”的不确定性导致了“陈述”的不确定性,由此导致了“人”提出的“问题陈述”的歧义。并且,他们认为只要排除掉需求分析过程中的人的因素,然后用一种严格论证、高度自动化的、规范的方法论来进行分析,就能够消除这种歧义了。

但是,我们无法“剔除”具有严重不确定性的“顾客”;同样,我们实在不能不把顾客当人看待的。

自动化方法干的是“大事情”。40年前需要很多个星期才能完成的工作量,今天只需要一个小时就能够搞定。而且,由于自动化工具的发展,我们还开始挑战那些在以前想都不敢想的系统。然而,随着工具的进步,软件产品在可用性方面的口碑却并没有多少提高。

对于那些需求明确、陈述无歧义、一定程度上模式化了的内容,自动化方法非常擅长;但是也还有一些涉及到人性心理方面的棘手问题却无法用这些方法来解决。换句话说,只要是有规律的、统一的开发过程,自动化方法非常擅长;而在不同项目或产品之间的差异和个性化,则需要更细致的分析。

我们不妨做一个简单的计算。

规模为S的项目中有P%的问题为公共问题,有Q%(Q+P=100)的问题为个性问题。

在时间T1时,我们每解决一个公共问题需要投入T,每解决一个个性问题需要投入M。解决个性问题在整个项目中所占的投入为:R1=M×Q/(T×P+M×Q)。

在时间T2时,我们每解决一个公共问题需要投入t,每解决一个个性问题需要投入m。解决个性问题在整个项目中所占的投入为:R2=m×Q/(t×P+m×Q)。

从T1到T2,自动化水平提高了,于是有T>>t,公共问题和个性问题的比例变化很小,而且对于每个个性问题的投入也变化很小,即有M≈m。从而可以得到R1<

这表明,随着自动化水平的急剧提高,我们在个性问题方面的投入比例也急剧提高。

个性问题,亦即是人性方面的因素反而随着自动化程度提高而愈显得重要了。这一特征在那些具有多年开发经验的人们当中早已成为了共识。也就是说,经验丰富的专家们在技术任务上的投入少了,而在人性因素方面的投入更多了。

语言和符号系统

语言是我们表达思想的工具,也是某种文化的载体。在开发系统方法中,我们也有语言,那就是符号系统。相信所有人都碰到过因为语言不通而产生的交流障碍;同样,在符号系统上,我们也碰到了交流障碍。

语言文字所传递的信息包括“内涵”和“外延”两部分。人们在说话传递信息时,往往会附加上各种语态、表情、动作作为对其所说语音的外延;甚至我们可以认为,因为我们来自各个不同的省份县市,各种不同的方言乡音也传递了丰富的外延。

于是,对于同样的事件或需求,我相信没有任何两个人的描述是完全一致的。承认这一点对于我们直面需求分析的困难会有很大的帮助。

我们这里给出优秀符号系统的两个重要要求(当然这仅仅是众多要求中的两个),以帮助我们将来使用这些符号。例如说,首先符号系统要能够比较全面地表述我们所碰到的绝大部分问题;其次为了适合产品开发的过程化,符号系统的表述结果要比较轻易保存和修订。这也是对一个优秀的CASE和CAD工具的基本要求:在任何时候都可以保留并修改我们当前的结果。实际上,几乎所有的符号系统本身是不可能完全“直观”和“易读”的。

假如,要让所有相关人员都能够理解某种符号系统,那么,最直接的办法就是培训这些相关人员。下面的步骤可以测试一下当前的映射图到底有多直观:

1、把每一幅映射图展示给那些不知道这种符号系统的人来看。这种方法能够揭示出符号系统中不直观的地方。当然,也有可能揭示的是这个映射图中需要表达的那部分信息本身的不直观。

2、让每个人用自己熟悉的符号系统重新描述一遍对映射图的理解,然后再让一个理解这两种符号系统的人来核对。这样可以揭示映射图中的一些人为的假设。

3、使用某种能够把别的符号系统自动转换成某种“标准”的符号系统的自动化工具。

上面讲到了因为不同的符号系统导致的对映射图的理解的分歧,这就相当于由于语言不通而导致了交流障碍。最直接最常见的办法就是推迟需求工作的进度,先让大家都来学习这种语言(或符号系统)。但是,这也是不切合实际的,因为这样有可能还会让大家失去对需求过程的爱好和冲动。经验表明,把这些学习时间安排为需求阶段的一部分会好一些,因为这时候我们可以一边学习语言,一边解决问题。

非凡地,我们需要指出,任何一种符号系统都不可能百分之百地反映需求。下面提出了一些关于如何让开发者较好地表述需求的语言的建议。

1、在生活(或开发项目)当中,我们往往会碰到一些不明是由的旁人(非专业人员)横加职责,他们往往不愿意或者不屑于花时间来了解设计过程的时候,这时候,建议雇用一个明白事理而又口齿伶俐的调解人会比较有效。

2、人们不愿意参与设计过程的一个重要原因是现在的所谓“专业设计人员”的高高在上的姿态。千万要注重顾客和旁人(实际上是决定事态结果的裁决者)仅仅是对开发过程不了解,他们在别的方面(比如说法律、业务等)却是专家,这也是需要他们参与的原因。

3、一部分自动化过程的固执而忠实的拥趸认为他们的“直观”的符号系统很轻易被别人看懂。这时候,不妨让他给小组里外的成员培训一下他的符号系统。

4、对于同一个需求过程中的两批不同背景的专家,经常会倾向于说两种不同的符号系统。那么最好的办法就是用两种不同的符号系统都表述一遍。

5、用一种大家都能听懂的语言来作为正式文档的语言会比较有效,那么在需求过程中也最好事先指定一种“大家都能理解的”符号系统作为正式文档。假如谁不懂的话,就让他去学好了。

6、不同母语之间的翻译会有优劣之分,同样不同符号系统之间的翻译也有优劣。优劣的背后就是分歧,也就是歧义。需求过程经历了从真正最终用户——用户代表——需求分析员——需求规格说明书这么一长串的步骤,每一步都是一种翻译,因此保证每一个步骤都是最优的就显得格外重要了。

7、需要注重的是,需求过程并不完全是瀑布式的。随着过程的深入,我们极有可能会像老牛一样进行反刍。

更多的请看:http://www.QQread.com/windows/2003/index.Html引言

需求分析阶段需要经历两个步骤:首先,提出问题的人说一些话,以告诉帮助他解决问题的人他要干什么,这就是“问题陈述”,即通过语言或者文字对某个关注点的细节进行表述。然后,解决问题的人和提出问题的人进行沟通,以确证这个问题的细节,这就是“探索需求”,这是一个反复沟通的过程。

需求分析在现代软件开发中的地位日趋重要,这也意味着我们认为现今的需求过程尚不完善。这种不完善很大程度上体现在“问题陈述”和“人们真正想要的东西”之间的差距上,或者说,“问题陈述”没有能够陈述清楚“人们真正想要的东西”。

在过去几年,软件过程和软件工程流行的时代,很多人已经被时尚所左右,言必称自动化,开口即软件工程,仿佛所有的开发问题都已经解决。更有甚者,有人还认为需求分析中的歧义的根源是因为“人”的参与。有人认为“人”的不确定性导致了“陈述”的不确定性,由此导致了“人”提出的“问题陈述”的歧义。并且,他们认为只要排除掉需求分析过程中的人的因素,然后用一种严格论证、高度自动化的、规范的方法论来进行分析,就能够消除这种歧义了。

但是,我们无法“剔除”具有严重不确定性的“顾客”;同样,我们实在不能不把顾客当人看待的。

自动化方法干的是“大事情”。40年前需要很多个星期才能完成的工作量,今天只需要一个小时就能够搞定。而且,由于自动化工具的发展,我们还开始挑战那些在以前想都不敢想的系统。然而,随着工具的进步,软件产品在可用性方面的口碑却并没有多少提高。

对于那些需求明确、陈述无歧义、一定程度上模式化了的内容,自动化方法非常擅长;但是也还有一些涉及到人性心理方面的棘手问题却无法用这些方法来解决。换句话说,只要是有规律的、统一的开发过程,自动化方法非常擅长;而在不同项目或产品之间的差异和个性化,则需要更细致的分析。

我们不妨做一个简单的计算。

规模为S的项目中有P%的问题为公共问题,有Q%(Q+P=100)的问题为个性问题。

在时间T1时,我们每解决一个公共问题需要投入T,每解决一个个性问题需要投入M。解决个性问题在整个项目中所占的投入为:R1=M×Q/(T×P+M×Q)。

在时间T2时,我们每解决一个公共问题需要投入t,每解决一个个性问题需要投入m。解决个性问题在整个项目中所占的投入为:R2=m×Q/(t×P+m×Q)。

从T1到T2,自动化水平提高了,于是有T>>t,公共问题和个性问题的比例变化很小,而且对于每个个性问题的投入也变化很小,即有M≈m。从而可以得到R1<

这表明,随着自动化水平的急剧提高,我们在个性问题方面的投入比例也急剧提高。

个性问题,亦即是人性方面的因素反而随着自动化程度提高而愈显得重要了。这一特征在那些具有多年开发经验的人们当中早已成为了共识。也就是说,经验丰富的专家们在技术任务上的投入少了,而在人性因素方面的投入更多了。

语言和符号系统

语言是我们表达思想的工具,也是某种文化的载体。在开发系统方法中,我们也有语言,那就是符号系统。相信所有人都碰到过因为语言不通而产生的交流障碍;同样,在符号系统上,我们也碰到了交流障碍。

语言文字所传递的信息包括“内涵”和“外延”两部分。人们在说话传递信息时,往往会附加上各种语态、表情、动作作为对其所说语音的外延;甚至我们可以认为,因为我们来自各个不同的省份县市,各种不同的方言乡音也传递了丰富的外延。

于是,对于同样的事件或需求,我相信没有任何两个人的描述是完全一致的。承认这一点对于我们直面需求分析的困难会有很大的帮助。

我们这里给出优秀符号系统的两个重要要求(当然这仅仅是众多要求中的两个),以帮助我们将来使用这些符号。例如说,首先符号系统要能够比较全面地表述我们所碰到的绝大部分问题;其次为了适合产品开发的过程化,符号系统的表述结果要比较轻易保存和修订。这也是对一个优秀的CASE和CAD工具的基本要求:在任何时候都可以保留并修改我们当前的结果。实际上,几乎所有的符号系统本身是不可能完全“直观”和“易读”的。

假如,要让所有相关人员都能够理解某种符号系统,那么,最直接的办法就是培训这些相关人员。下面的步骤可以测试一下当前的映射图到底有多直观:

1、把每一幅映射图展示给那些不知道这种符号系统的人来看。这种方法能够揭示出符号系统中不直观的地方。当然,也有可能揭示的是这个映射图中需要表达的那部分信息本身的不直观。

2、让每个人用自己熟悉的符号系统重新描述一遍对映射图的理解,然后再让一个理解这两种符号系统的人来核对。这样可以揭示映射图中的一些人为的假设。

3、使用某种能够把别的符号系统自动转换成某种“标准”的符号系统的自动化工具。

上面讲到了因为不同的符号系统导致的对映射图的理解的分歧,这就相当于由于语言不通而导致了交流障碍。最直接最常见的办法就是推迟需求工作的进度,先让大家都来学习这种语言(或符号系统)。但是,这也是不切合实际的,因为这样有可能还会让大家失去对需求过程的爱好和冲动。经验表明,把这些学习时间安排为需求阶段的一部分会好一些,因为这时候我们可以一边学习语言,一边解决问题。

非凡地,我们需要指出,任何一种符号系统都不可能百分之百地反映需求。下面提出了一些关于如何让开发者较好地表述需求的语言的建议。

1、在生活(或开发项目)当中,我们往往会碰到一些不明是由的旁人(非专业人员)横加职责,他们往往不愿意或者不屑于花时间来了解设计过程的时候,这时候,建议雇用一个明白事理而又口齿伶俐的调解人会比较有效。

2、人们不愿意参与设计过程的一个重要原因是现在的所谓“专业设计人员”的高高在上的姿态。千万要注重顾客和旁人(实际上是决定事态结果的裁决者)仅仅是对开发过程不了解,他们在别的方面(比如说法律、业务等)却是专家,这也是需要他们参与的原因。

3、一部分自动化过程的固执而忠实的拥趸认为他们的“直观”的符号系统很轻易被别人看懂。这时候,不妨让他给小组里外的成员培训一下他的符号系统。

4、对于同一个需求过程中的两批不同背景的专家,经常会倾向于说两种不同的符号系统。那么最好的办法就是用两种不同的符号系统都表述一遍。

5、用一种大家都能听懂的语言来作为正式文档的语言会比较有效,那么在需求过程中也最好事先指定一种“大家都能理解的”符号系统作为正式文档。假如谁不懂的话,就让他去学好了。

6、不同母语之间的翻译会有优劣之分,同样不同符号系统之间的翻译也有优劣。优劣的背后就是分歧,也就是歧义。需求过程经历了从真正最终用户——用户代表——需求分析员——需求规格说明书这么一长串的步骤,每一步都是一种翻译,因此保证每一个步骤都是最优的就显得格外重要了。

7、需要注重的是,需求过程并不完全是瀑布式的。随着过程的深入,我们极有可能会像老牛一样进行反刍。

更多的请看:http://www.qqread.com/windows/2003/index.html引言

需求分析阶段需要经历两个步骤:首先,提出问题的人说一些话,以告诉帮助他解决问题的人他要干什么,这就是“问题陈述”,即通过语言或者文字对某个关注点的细节进行表述。然后,解决问题的人和提出问题的人进行沟通,以确证这个问题的细节,这就是“探索需求”,这是一个反复沟通的过程。

需求分析在现代软件开发中的地位日趋重要,这也意味着我们认为现今的需求过程尚不完善。这种不完善很大程度上体现在“问题陈述”和“人们真正想要的东西”之间的差距上,或者说,“问题陈述”没有能够陈述清楚“人们真正想要的东西”。

在过去几年,软件过程和软件工程流行的时代,很多人已经被时尚所左右,言必称自动化,开口即软件工程,仿佛所有的开发问题都已经解决。更有甚者,有人还认为需求分析中的歧义的根源是因为“人”的参与。有人认为“人”的不确定性导致了“陈述”的不确定性,由此导致了“人”提出的“问题陈述”的歧义。并且,他们认为只要排除掉需求分析过程中的人的因素,然后用一种严格论证、高度自动化的、规范的方法论来进行分析,就能够消除这种歧义了。

但是,我们无法“剔除”具有严重不确定性的“顾客”;同样,我们实在不能不把顾客当人看待的。

自动化方法干的是“大事情”。40年前需要很多个星期才能完成的工作量,今天只需要一个小时就能够搞定。而且,由于自动化工具的发展,我们还开始挑战那些在以前想都不敢想的系统。然而,随着工具的进步,软件产品在可用性方面的口碑却并没有多少提高。

对于那些需求明确、陈述无歧义、一定程度上模式化了的内容,自动化方法非常擅长;但是也还有一些涉及到人性心理方面的棘手问题却无法用这些方法来解决。换句话说,只要是有规律的、统一的开发过程,自动化方法非常擅长;而在不同项目或产品之间的差异和个性化,则需要更细致的分析。

我们不妨做一个简单的计算。

规模为S的项目中有P%的问题为公共问题,有Q%(Q+P=100)的问题为个性问题。

在时间T1时,我们每解决一个公共问题需要投入T,每解决一个个性问题需要投入M。解决个性问题在整个项目中所占的投入为:R1=M×Q/(T×P+M×Q)。

在时间T2时,我们每解决一个公共问题需要投入t,每解决一个个性问题需要投入m。解决个性问题在整个项目中所占的投入为:R2=m×Q/(t×P+m×Q)。

从T1到T2,自动化水平提高了,于是有T>>t,公共问题和个性问题的比例变化很小,而且对于每个个性问题的投入也变化很小,即有M≈m。从而可以得到R1<

这表明,随着自动化水平的急剧提高,我们在个性问题方面的投入比例也急剧提高。

个性问题,亦即是人性方面的因素反而随着自动化程度提高而愈显得重要了。这一特征在那些具有多年开发经验的人们当中早已成为了共识。也就是说,经验丰富的专家们在技术任务上的投入少了,而在人性因素方面的投入更多了。

语言和符号系统

语言是我们表达思想的工具,也是某种文化的载体。在开发系统方法中,我们也有语言,那就是符号系统。相信所有人都碰到过因为语言不通而产生的交流障碍;同样,在符号系统上,我们也碰到了交流障碍。

语言文字所传递的信息包括“内涵”和“外延”两部分。人们在说话传递信息时,往往会附加上各种语态、表情、动作作为对其所说语音的外延;甚至我们可以认为,因为我们来自各个不同的省份县市,各种不同的方言乡音也传递了丰富的外延。

于是,对于同样的事件或需求,我相信没有任何两个人的描述是完全一致的。承认这一点对于我们直面需求分析的困难会有很大的帮助。

我们这里给出优秀符号系统的两个重要要求(当然这仅仅是众多要求中的两个),以帮助我们将来使用这些符号。例如说,首先符号系统要能够比较全面地表述我们所碰到的绝大部分问题;其次为了适合产品开发的过程化,符号系统的表述结果要比较轻易保存和修订。这也是对一个优秀的CASE和CAD工具的基本要求:在任何时候都可以保留并修改我们当前的结果。实际上,几乎所有的符号系统本身是不可能完全“直观”和“易读”的。

假如,要让所有相关人员都能够理解某种符号系统,那么,最直接的办法就是培训这些相关人员。下面的步骤可以测试一下当前的映射图到底有多直观:

1、把每一幅映射图展示给那些不知道这种符号系统的人来看。这种方法能够揭示出符号系统中不直观的地方。当然,也有可能揭示的是这个映射图中需要表达的那部分信息本身的不直观。

2、让每个人用自己熟悉的符号系统重新描述一遍对映射图的理解,然后再让一个理解这两种符号系统的人来核对。这样可以揭示映射图中的一些人为的假设。

3、使用某种能够把别的符号系统自动转换成某种“标准”的符号系统的自动化工具。

上面讲到了因为不同的符号系统导致的对映射图的理解的分歧,这就相当于由于语言不通而导致了交流障碍。最直接最常见的办法就是推迟需求工作的进度,先让大家都来学习这种语言(或符号系统)。但是,这也是不切合实际的,因为这样有可能还会让大家失去对需求过程的爱好和冲动。经验表明,把这些学习时间安排为需求阶段的一部分会好一些,因为这时候我们可以一边学习语言,一边解决问题。

非凡地,我们需要指出,任何一种符号系统都不可能百分之百地反映需求。下面提出了一些关于如何让开发者较好地表述需求的语言的建议。

1、在生活(或开发项目)当中,我们往往会碰到一些不明是由的旁人(非专业人员)横加职责,他们往往不愿意或者不屑于花时间来了解设计过程的时候,这时候,建议雇用一个明白事理而又口齿伶俐的调解人会比较有效。

2、人们不愿意参与设计过程的一个重要原因是现在的所谓“专业设计人员”的高高在上的姿态。千万要注重顾客和旁人(实际上是决定事态结果的裁决者)仅仅是对开发过程不了解,他们在别的方面(比如说法律、业务等)却是专家,这也是需要他们参与的原因。

3、一部分自动化过程的固执而忠实的拥趸认为他们的“直观”的符号系统很轻易被别人看懂。这时候,不妨让他给小组里外的成员培训一下他的符号系统。

4、对于同一个需求过程中的两批不同背景的专家,经常会倾向于说两种不同的符号系统。那么最好的办法就是用两种不同的符号系统都表述一遍。

5、用一种大家都能听懂的语言来作为正式文档的语言会比较有效,那么在需求过程中也最好事先指定一种“大家都能理解的”符号系统作为正式文档。假如谁不懂的话,就让他去学好了。

6、不同母语之间的翻译会有优劣之分,同样不同符号系统之间的翻译也有优劣。

优劣的背后就是分歧,也就是歧义。需求过程经历了从真正最终用户——用户代表——需求分析员——需求规格说明书这么一长串的步骤,每一步都是一种翻译,因此保证每一个步骤都是最优的就显得格外重要了。

7、需要注重的是,需求过程并不完全是瀑布式的。随着过程的深入,我们极有可能会像老牛一样进行反刍。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有