• 软件测试技术
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘

字号: | 推荐给好友 上一篇 | 下一篇

软件开发的管理和控制

发布: 2008-8-04 09:40 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网

nc t h;SLV;i
$oJ(a%k-SQ*h l9]
&_"B8?,DeY:R&J#S软件测试技术门户B6iV"? ^0M
  自底向上的归纳 软件测试技术门户L3jQ5e6iA?
  OMT的第一步是从问题的陈述入手,构造系统模型。从真实系统导出类的体系,即对象模型包括类的属性,与子类、父类的继承关系,以及类之间的关联。类是具有相似属性和行为的一组具体实例(客观对象)的抽象,父类是若干子类的归纳。因此这是一种自底向上的归纳过程。在自底向上的归纳过程中,为使子类能更合理地继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这种类体系的构造是从具体到抽象,再从抽象到具体,符合人类的思维规律,因此能更快、更方便地完成任务。这与自顶向下的Yourdon方法构成鲜明的对照。在Yourdon方法中构造系统模型是最困难的一步,因为自顶向下的"顶"是一个空中楼阁,缺乏坚实的基础,而且功能分解有相当大的任意性,因此需要开发人员有丰富的软件开发经验。而在OMT中这一工作可由一般开发人员较快地完成。在对象模型建立后,很
9r/Z/CG K容易在这一基础上再导出动态模型和功能模型。这三个模型一起构成要求解的系统模型。 软件测试技术门户/cf c h,\
软件测试技术门户C(g3CR)I%AD'a
软件测试技术门户2C birQ0f7d3_
  自顶向下的分解
(R l/l3X#h9|.P,f;f  系统模型建立后的工作就是分解。与Yourdon方法按功能分解不同,在OMT中通常按服务(Service)来分解。服务是具有共同目标的相关功能的集合,如I/O处理、图形处理等。这一步的分解通常很明确,而这些子系统的进一步分解因有较具体的系统模型为依据,也相对容易。所以OMT也具有自顶向下方法的优点,即能有效地控制模块的复杂性,同时避免了Yourdon方法中功能分解的困难和不确定性。
Q~3S7r2C2s软件测试技术门户 {QDu(w\

;Lv+T-`FTB2G ?  OMT的基础是对象模型 软件测试技术门户%S'fO(O1kH$a
  每个对象类由数据结构(属性)和操作(行为)组成,有关的所有数据结构(包括输入、输出数据结构)都成了软件开发的依据。因此Jackson方法和PAM中输入、输出数据结构与整个系统之间的鸿沟在OMT中不再存在。OMT不仅具有Jackson方法和PAM的优点,而且可以应用于大型系统。更重要的是,在Jackson方法和PAM方法中,当它们的出发点--输入、输出数据结构(即系统的边界)发生变化时,整个软件必须推倒重来。但在OMT中系统边界的改变只是增加或减少一些对象而已,整个系统改动极小。 软件测试技术门户q$XJ2G-so O#s
软件测试技术门户%y5p[!A1M0fL*o
软件测试技术门户H1s8z sA lZX
  需求分析彻底 软件测试技术门户7Ad2}4y(W,y
  需求分析不彻底是软件失败的主要原因之一。即使在目前,这一危险依然存在。传统的软件开发方法不允许在开发过程中用户的需求发生变化,从而导致种种问题。正是由于这一原因,人们提出了原型化方法,推出探索原型、实验原型和进化原型,积极鼓励用户改进需求。在每次改进需求后又形成新的进化原型供用户试用,直到用户基本满意,大大提高了软件的成功率。但是它要求软件开发人员能迅速生成这些原型,这就要求有自动生成代码的工具的支持。 软件测试技术门户,n_OIL
  OMT彻底解决了这一问题。因为需求分析过程已与系统模型的形成过程一致,开发人员与用户的讨论是从用户熟悉的具体实例(实体)开始的。开发人员必须搞清现实系统才能导出系统模型,这就使用户与开发人员之间有了共同的语言,避免了传统需求分析中可能产生的种种问题。 软件测试技术门户:a"TE] h"xL K6Gt-s

r7n7a ~q/eQ yJ软件测试技术门户u"EfJ!~eS'R
  可维护性大大改善
NY)J$yA:LGkJ  在OMT之前的软件开发方法都是基于功能分解的。尽管软件工程学在可维护方面作出了极大的努力,使软件的可维护性有较大的改进。但从本质上讲,基于功能分解的软件是不易维护的。因为功能一旦有变化都会使开发的软件系统产生较大的变化,甚至推倒重来。更严重的是,在这种软件系统中,修改是困难的。由于种种原因,即使是微小的修改也可能引入新的错误。所以传统开发方法很可能会引起软件成本增长失控、软件质量得不到保证等一系列严重问题。正是OMT才使软件的可维护性有了质的改善。
6t7ua7h/xqNsz  OMT的基础是目标系统的对象模型,而不是功能的分解。功能是对象的使用,它依赖于应用的细节,并在开发过程中不断变化。由于对象是客观存在的,因此当需求变化时对象的性质要比对象的使用更为稳定,从而使建立在对象结构上的软件系统也更为稳定。 软件测试技术门户1P,E[ j`*lE!Q UZ
  更重要的是OMT彻底解决了软件的可维护性。在OO语言中,子类不仅可以继承父类的属性和行为,而且也可以重载父类的某个行为(虚函数)。利用这一特点,我们可以方便地进行功能修改:引入某类的一个子类,对要修改的一些行为(即虚函数或虚方法)进行重载,也就是对它们重新定义。由于不再在原来的程序模块中引入修改,所以彻底解决了软件的可修改性,从而也彻底解决了软件的可维护性。OO技术还提高了软件的可靠性和健壮性。
M!n@){Fh.z&h
$O#n2zzW"sY  六、可视化开发方法
:OBuz|:an6E7x
!ZU*O M;c$K6Z
y Q_[B*jWr)x  可视化开发是90年代软件界最大的两个热点之一。随着图形用户界面的兴起,用户界面在软件系统中所占的比例也越来越大,有的甚至高达60~70%。产生这一问题的原因是图形界面元素的生成很不方便。为此Windows提供了应用程序设计接口API(Application Programming Interface),它包含了600多个函数,极大地方便了图形用户界面的开发。但是在这批函数中,大量的函数参数和使用数量更多的有关常量,使基于Windows API的开发变得相当困难。为此Borland C++推出了Object Windows编程。它将API的各部分用对象类进行封装,提供了大量预定义的类,并为这些定义了许多成员函数。利用子类对父类的继承性,以及实例对类的函数的引用,应用程序的开发可以省却大量类的定义,省却大量成员函数的定义或只需作少量修改以定义子类。
(a4C+o*J(W~&n p  Object Windows还提供了许多标准的缺省处理,大大减少了应用程序开发的工作量。但要掌握它们,对非专业人员来说仍是一个沉重的负担。为此人们利用Windows API或Borland C++的Object Windows开发了一批可视开发工具。 软件测试技术门户6^OiF N6[v`2x
  可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视开发工具自动生成应用软件。 软件测试技术门户5`%c&XK]2q6u:^ O-L
  这类应用软件的工作方式是事件驱动。对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。这些消息响应函数是由可视开发工具在生成软件时自动装入的。 软件测试技术门户C ^ PQi| ^e~q
  国内的软件公司大多数是处在"十几条枪,一个手工作坊"的水平上,在承接软件开发的项目之后往往是几位骨干人物讨论之后对费用和进度作一个大致的估计,然后就开始进入项目的执行。这种方法带有明显的主观性。在作一个精确的软件费用估计和作一个比较现实的项目开发计划时需要考虑许多因素。对于一个大的软件项目,用手工作费用估计和作计划是不能胜任的。现在国外市场上有大约50种商业软件费用估计工具包和大约100种商业项目计划工具包,使用他们作精确的估计比手工的估计更可能获得成功。 软件测试技术门户T!l}Y/DWp\

"~Q&F1Ux.UQd;v6G)i${常用的软件费用估计工具软件有Checkpoint,Colomo,Estimacs,Price_s,Slim。 常用的项目管理软件有MS Project,Primavera,Project Manager*s Workbench,Timeline。把这二种工具软件联合使用可以互为补充,帮助经理驳回客户和程序员的无理要求并且能精确的控制项目的执行。  软件测试技术门户"oP5H ]b!ai9q
软件测试技术门户3UYJ#c(C#|8Q
  错误3:忽视用户的需求的变动  软件测试技术门户