欢迎大家来到测试人生,在你休息的时候你可以畅所欲言,空间里也许有些资料可以帮助到你,来吧,朋友,测试人生欢迎你!!!!

软件工程基本知识

上一篇 / 下一篇  2008-11-13 12:05:02 / 个人分类:软件工程

一、软件工程的产生51Testing软件测试网zC.[;?[3b

   随着1946年世界上第一台电子计算机的诞生,计算机的灵魂——软件也慢慢发展起来。在5060年代开发大型系统软件用手工方式进行,生产效率低、出错率高。例如,IBM公司的OS/360操作系统用了5000人年开发,软件产品每个版本均有1000多个大大小小的错误,这种状态无法满足日益增长的软件生产的需要。产生了以下几个方面的问题:

|n#U9X+g1Yt5iD0

(1)      软件复杂性飞速增长51Testing软件测试网cDV t1k@2X'v

(2)      软件成本极高

\Emzt0

(3)      开发周期长

L\I i"z#h @ h0

(4)      维护工作量大51Testing软件测试网.S/K&s#z^

由于以上几个方面的原因,导致了60年代的“软件危机”,软件危机是指软件在开发和维护过程中所遇到的一系列严重。概括地说软件危机包含以下两方面的问题:

4Y/a RzG3B0

(1)      如何开发软件,怎样满足软件日益增长的需求;

x:_c\n cU:?H;}0

(2)      如何维护数量不断膨胀地已有软件。51Testing软件测试网$t{&J"ix~fz;i i }p0]

具体地说,软件危机主要有以下表现:51Testing软件测试网 f\p pQm&z+v

(1)      对软件开发成本和进度的估计常常很不准确;

qP ` p}Bw0

(2)      用户对“已完成的”软件系统不满意的现象经常发生;51Testing软件测试网9wjx1~"L:Nv^

(3)      软件产品的质量往往靠不组合;51Testing软件测试网;m/k rl(Ju b3N

(4)      软件常常是不可维护的;

O6h4_|n;`v0

(5)      软件通常没有适当的文档资料;51Testing软件测试网{/aG%CB5O_rvg p

(6)      软件成本在计算机系统总体成本中所占的比例逐年上升;51Testing软件测试网N AtCk.B+_? t

(7)      软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

cE u0X,|0

   为了解决软件危机中出现的问题,在1968年计算机软件学术会议上第一次的提出了“软件工程”的概念。51Testing软件测试网g1i0a9urP

软件工程强调使用生命周期方法学和各种结构化分析与设计技术。用“系统的观点来分解问题然后再分别解决各个子问题。”

6R.T hKU6gE9Y$p0

生命周期:和生命的孕育、诞生、成长于衰亡一样,软件生命周期指软件的有关概念的提出到软件的消亡共包括可行性分析概要设计详细设计编码测试运行和维护6个阶段。 

(l'tN,]*y1Va`&h0

二、软件工程核心思想51Testing软件测试网+_.WsieW"F5K n

软件工程是指导计算机软件开发和维护的工程科学。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,这就是软件工程。管理和技术是软件工程的核心

6` I5B(x0LZ]0

软件工程的七条基本原理:

V)_9v"Fz`l_u wm0

1. 用分阶段的生命周期计划严格管理;51Testing软件测试网S tC m2`#~J

这条原理意味着应把软件生命周期分成若干阶段,并制定相应地切实可行的计划,然后严格按照计划对软件的开发维护工作进行管理。51Testing软件测试网#q*[:]&q/yx

Boehm认为,在软件的整个生命周期中应该制定并严格执行六类计划:51Testing软件测试网!sE6s6@C(O3p ~

1) 项目概要计划51Testing软件测试网`X1{\Y

2) 里程碑计划51Testing软件测试网~hw4X,q$?

3) 项目控制计划

*w7mw#Nn w0

4) 产品控制计划

9?7fB Q{y)J,so9[0

5) 验证计划51Testing软件测试网&E"p'oL JS3I4r

6) 运行维护计划51Testing软件测试网@` H9M;iE Dg1wYa$m

    不同层次管理人员都必须严格按照计划各尽其责地管理软件开发与维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。51Testing软件测试网d'nd R1utn

2. 坚持进行阶段评审;

+|g(k1I!A{ d0

软件的质量保证工作不能等到编码阶段结束之后再进行。至少有两个理由:51Testing软件测试网0c+x#~WK9Y

第一,  大部分错误是在编码之前造成的,根据Boehm等人的统计,设计错误占软件错误的63%,编码错误仅占37%。

EY,r:F }?0

第二,  错误发现与改正的越晚,所需付出的代价也越高。51Testing软件测试网;St OBk;K6j'm,C

因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。

vp Sb4e0~C zhP0

3. 实现严格的产品控制;51Testing软件测试网NU;y,m7C+`m-o V%a

在软件开发过程中不随意改变需求,因为改变一项需求往往需要付出较高的代价。绝对不能谁想修改软件,就随意修改软件。

/O V(IAzU0

4. 采用现代化设计技术;51Testing软件测试网)Nc3knl0w\%I[#?

1960s年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。以后又进一步发展出各种结构分析与结构设计技术。实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率51Testing软件测试网M i+l/L$lpbi8L

5. 结果应能清楚地审查;

(b)cl-AU y?+}Y0

6. 开发人员应该少而精;

oaK9FA+D"`Fa]0

7. 承认不断改进软件工程事件的必要性。51Testing软件测试网-F Y&k |aZ2|


TAG: 软件工程

 

评分:0

我来说两句

Open Toolbar