首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
免费注册一站通帐号,参与直播、论坛、下载、博客、网摘、评论,展现我的风采!
您现在的位置: 中国IT实验室 >> 桌面开发 >> 工程管理 >> 文章正文
系统设计前的需求探索
来源:中国IT实验室整理  时间:2007-4-6

  引言需求分析阶段需要经历两个步骤:首先,提出问题的人说一些话,以告诉帮助他解决问题的人他要干什么,这就是“问题陈述”,即通过语言或者文字对某个关注点的细节进行表述。然后,解决问题的人和提出问题的人进行沟通,以确证这个问题的细节,这就是“探索需求”,这是一个反复沟通的过程。
 
  需求分析在现代软件开发中的地位日趋重要,这也意味着我们认为现今的需求过程尚不完善。这种不完善很大程度上体现在“问题陈述”和“人们真正想要的东西”之间的差距上,或者说,“问题陈述”没有能够陈述清楚“人们真正想要的东西”。
 
  在过去几年,软件过程和软件工程流行的时代,很多人已经被时尚所左右,言必称自动化,开口即软件工程,仿佛所有的开发问题都已经解决。更有甚者,有人还认为需求分析中的歧义的根源是因为“人”的参与。有人认为“人”的不确定性导致了“陈述”的不确定性,由此导致了“人”提出的“问题陈述”的歧义。并且,他们认为只要排除掉需求分析过程中的人的因素,然后用一种严格论证、高度自动化的、规范的方法论来进行分析,就能够消除这种歧义了。
 
  但是,我们无法“剔除”具有严重不确定性的“顾客”;同样,我们实在不能不把顾客当人看待的。
 
  自动化方法干的是“大事情”。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] [4] 下一页  

【责编:Lili】

中国IT教育热线咨询

相关文章
管理信息系统需求调研分析指南
Java技术在多数据库系统中的应用研究
浅论信息系统监理师的个人素质
解决J2EE系统应用性能问题常用方法
RISC趋势:高速、多核与系统芯片
网站项目系统分析及软件建模
软件项目需求分析的文档内容概述
需求管理详解
推荐文章
· 用C#创建COM对象
· IT管理十大失误及其对策
· VC中利用MFC设计绘图程序初步
· JAVA中对象创建和初始化过程
· C语言中的位域的使用
· 浅谈Java桌面应用程序开发
· C#的前途如何?
· 几种VC++数据库开发技术的相对比较
 精彩友情推荐
·锐捷交换机报价
·锐捷交换机
·锐捷网络网络交换机
·smc交换机
·smc交换机报价
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·Visual Basic 9.0隐式类型的局部…09-30
·JMX+J2SE5.0实现Web应用的安全管…09-30
·多线程、Socket技术及委托技术的…09-21
·Visual C#多线程参数传递浅析09-21
·浅谈Java中利用JCOM实现仿Excel编…09-21
·基于Java的界面布局DSL的设计与实…09-21
·Java开发中的事件驱动模型实例详…09-21
·并发工程原则应用到软件项目中09-06
·Delphi初学者应小心的六大陷阱09-06
·VC开发多语言界面支持的简单方法09-06
·用C#创建COM对象09-06
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05
  培训中心