软件工程管理

软件工程管理
软件工程管理

幻灯片1

第13章软件项目管理

13.1 估算软件规模

13.2 工作量估算

13.3 进度计划

13.4 人员组织

13.5 质量保证

13.6 软件配置管理

13.7 能力成熟度模型

幻灯片2

●所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达

到既定目标的过程。

软件工程计划

控制度量软件规模估算工作量

进度计划

风险管理

质量保证

配置管理

组织

明确软件开发的目标

提供组织机构和资源配置方面的保证

保证开发目标的实现

技术

管理

幻灯片3

●软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。

●软件项目管理过程从一组项目计划活动开始,而制定计划的基础是工作量估算和完成期

限估算。

●为了估算项目的工作量和完成期限,首先需要估算软件的规模。

幻灯片4

13.1 估算软件规模

●13.1.1 代码行技术

●代码行技术是比较简单的定量估算软件规模的方法。

●依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数。当有以往开发类似产品的历史数据可供参考时,估计出的数值还是比较准确的。把实现每个功能所需要的源程序行数累加起来,就可得到实现整个软件所需要的源程序行数。

幻灯片5

● 估算方法:

● 由多名有经验的软件工程师分别做出估计。

● 每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),

分别算出这3种规模的平均值、和之后,再用下式计算程序规模的估计值:

● 单位:

LOC 或KLOC 。

6

4b m a L ++=

幻灯片6

● 代码行技术的优点:

● 代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数; ● 有大量参考文献和数据 。 ● 代码行技术的缺点:

● 源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理; ● 用不同语言实现同一个软件所需要的代码行数并不相同; 不适用于非过程性语言。 幻灯片7

13.1.2 功能点技术

● 功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。 ● 这种方法用功能点(FP)为单位度量软件规模。

幻灯片8

● 1. 信息域特性

● 功能点技术定义了信息域的5个特性:

● 输入项数(Inp):用户向软件输入的项数,这些输入给软件提供面向应用的数据。 ● 输出项数(Out):软件向用户输出的项数,它们向用户提供面向应用的信息, ● 查询数(Inq):查询即是一次联机输入,它导致软件以联机输出方式产生某种即时响应。 ● 主文件数(Maf):逻辑主文件的数目。

外部接口数(Inf):机器可读的全部接口的数量,用这些接口把信息传送给另一个系统。 幻灯片9

● 每个特征根据其复杂程度分配一个功能点数,即信息域特征系数a1,a2,a3,a4,a5,

见表13.1。

幻灯片10

● 2. 估算功能点的步骤

● (1) 计算未调整的功能点数UFP

● 首先,把产品信息域的每个特性都分类为简单级、平均级或复杂级,并根据其等级为

每个特性分配一个功能点数。 ● 然后,用下式计算未调整的功能点数UFP : UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5

×Inf

其中,ai(1≤i ≤5)是信息域特性系数,其值由相应特性的复杂级别决定,如表13.1所示。

幻灯片11

● (2) 计算技术复杂性因子TCF

● 这一步骤度量14种技术因素对软件规模的影响程度。在表13.2中列出了全部技术因

素,并用Fi(1≤i ≤14)代表这些因素。

根据软件的特点,为每个因素分配一个从0(不存在或对软件规模无影响)到5(有很大影响)的值。

幻灯片13

● 然后,用下式计算技术因素对软件规模的综合影响程度DI :

● 技术复杂性因子TCF 由下式计算:

● TCF = 0.65 + 0.01 × DI

因为DI 的值在0~70之间,所以TCF 的值在0.65~1.35之间。

∑==14

1

DI i i

F

幻灯片14

● (3) 计算功能点数FP

● FP = UFP × TCF

● 功能点技术优点:与所用的编程语言无关,比代码行技术更合理。

功能点技术缺点:在判断信息域特性复杂级别和技术因素的影响程度时主观因素较大,对经验依赖性较强。 幻灯片15

13.2 工作量估算

● 软件估算模型使用由经验导出的公式来预测软件开发工作量,工作量是软件规模(KLOC

或FP)的函数,工作量的单位通常是人月(pm)。

●支持大多数估算模型的经验数据,都是从有限个项目的样本集中总结出来的,因此,

没有一个估算模型可以适用于所有类型的软件和开发环境。

幻灯片16

13.2.1 静态单变量模型

●总体结构形式如下:

● E = A + B × (ev) C

●其中,A、B和C是由经验数据导出的常数,

● E是以人月为单位的工作量,

ev是估算变量(KLOC或FP)。

幻灯片17

1. 面向KLOC的估算模型

(1) Walston_Felix模型 E=5.2×(KLOC)0.91

(2) Bailey_Basili模型 E=5.5+0.73×(KLOC)1.16

(3) Boehm简单模型 E=3.2×(KLOC)1.05

(4) Doty模型(在KLOC>9时适用) E=5.288×(KLOC)1.047

2. 面向FP的估算模型

(1) Albrecht & Gaffney模型 E=-13.39+0.0545FP

(2) Maston,Barnett和Mellichamp模型 E=585.7+15.12FP

幻灯片18

13.2.2 动态多变量模型

●动态多变量模型也称为软件方程式,该模型把工作量看作是软件规模和开发时间这两

个变量的函数。

●动态多变量估算模型的形式如下:

●E=(LOC×B0.333/P)3×(1/t)4

●其中,

● E 是以人月或人年为单位的工作量;

●t 是以月或年为单位的项目持续时间;

B 是特殊技术因子,它随着对测试、质量保证、文档及管理技术的需求的增加而缓慢

增加,对于较小的程序(KLOC=5~15),B=0.16,对于超过70 KLOC的程序,B=0.39;

幻灯片19

●P是生产率参数,它反映了下述因素对工作量的影响:

●总体过程成熟度及管理水平;

●使用良好的软件工程实践的程度;

●使用的程序设计语言的级别;

●软件环境的状态;

●软件项目组的技术及经验;

●应用系统的复杂程度。

●开发实时嵌入式软件时,P的典型值为2000;开发电信系统和系统软件时,P=10000;

对于商业应用系统来说,P=28000。可以从历史数据导出适用于当前项目的生产率

参数值。

幻灯片20

13.2.3 COCOMO2模型

● COCOMO 是构造性成本模型(constructive cost model)的英文缩写。 ● 1981年Boehm 在《软件工程经济学》中首次提出了COCOMO 模型。

● 1997年Boehm 等人提出的COCOMO2模型,是原始的COCOMO 模型的修订版,它反映了十

多年来在成本估计方面所积累的经验。

幻灯片21

● COCOMO2给出了3个层次的软件开发工作量估算模型,这3个层次的模型在估算工作量

时,对软件细节考虑的详尽程度逐级增加。 ● 3个层次的估算模型分别是:

● 应用系统组成模型。这个模型主要用于估算构建原型的工作量,模型名字暗示在

构建原型时大量使用已有的构件。

● 早期设计模型。这个模型适用于体系结构设计阶段。

● 后体系结构模型。这个模型适用于完成体系结构设计之后的软件开发阶段。

幻灯片22

● 该模型把软件开发工作量表示成代码行数(KLOC )的非线性函数:

● 其中,

● E 是开发工作量(以人月为单位), ● a 是模型系数,

● KLOC 是估计的源代码行数, ● b 是模型指数,

fi (i=1~17)是成本因素。

∏=??=17

1

i i

b

f E KLOC a

幻灯片23

● 每个成本因素都根据它的重要程度和对工作量影响大小被赋予一定数值(称为工作量

系数)。表13.3列出了COCOMO2模型使用的成本因素及与之相联系的工作量系数。 ● 与原始的COCOMO 模型相比,COCOMO2模型使用的成本因素有下述变化。

● 新增加了4个成本因素,它们分别是要求的可重用性、需要的文档量、人员连续

性(即人员稳定程度)和多地点开发。

● 略去了原始模型中的2个成本因素(计算机切换时间和使用现代程序设计实践)。 ● 某些成本因素(分析员能力、平台经验、语言和工具经验)对生产率的影响(即

工作量系数最大值与最小值的比率)增加了,另一些成本因素(程序员能力)的影响减小了。

幻灯片24

● 为了确定工作量方程中模型指数b 的值,COCOMO2采用了更加精细得多的b 分级模型,

这个模型使用5个分级因素Wi(1≤i ≤5),其中每个因素都划分成从甚低(Wi=5)到特高(Wi=0)的6个级别,然后用下式计算b 的数值:

因此,b 的取值范围为1.01~1.26。显然,这种分级模式比原始COCOMO 模型的分级模式更精细、更灵活。

∑=?+=5

1

01.001.1i i

W b

幻灯片25

● COCOMO2使用的5个分级因素如下所述:

● 项目先例性。这个分级因素指出,对于开发组织来说该项目的新奇程度。

● 开发灵活性。这个分级因素反映出,为了实现预先确定的外部接口需求及为了及早开

发出产品而需要增加的工作量。

● 风险排除度。这个分级因素反映了重大风险已被消除的比例。

● 项目组凝聚力。这个分级因素表明了开发人员相互协作时可能存在的困难。

过程成熟度。这个分级因素反映了按照能力成熟度模型度量出的项目组织的过程成熟度。 幻灯片26

13.3 进度计划

● 软件项目的进度安排通过把工作量分配给特定的软件工程任务并规定完成各项任务的

起止日期,从而将估算出的项目工作量分布于计划好的项目持续期内。 ● 进度计划将随着时间的流逝而不断演化。

幻灯片27

13.3.1 估算开发时间

● 各种模型估算开发时间的方程很相似,例如:

● Walston_Felix 模型 T=2.5E0.35 ● 原始的COCOMO 模型 T=2.5E0.38

● COCOMO2模型 T=3.0E0.33+0.2×(b-1.01)

● Putnam 模型 T=2.4E1/3

● 其中,E 是开发工作量(以人月为单位),T 是开发时间(以月为单位)。

幻灯片28

● 经验告诉我们,随着开发小组规模扩大,个人生产率将下降,以致开发时间与从事开

发工作的人数并不成反比关系。出现这种现象主要有下述两个原因:

● 当小组变得更大时,每个人需要用更多时间与组内其他成员讨论问题、协调工作,

因此增加了通信开销。

● 如果在开发过程中增加小组人员,则最初一段时间内项目组总生产率不仅不会提

高反而会下降。

● Brooks 规律:向一个已经延期的项目增加人力,只会使得它更加延期。

● 存在一个最佳的项目组规模Popt ,这个规模的项目组其总生产率最高。项目组的最佳

规模是5.5人,即Popt=5.5。

幻灯片29

13.3.2 Gantt 图

● Gantt(甘特)图是历史悠久、应用广泛的制定进度计划的工具。 ● 例子:旧木板房刷漆工程(15名工人,工具各5把)

幻灯片30

刮旧漆刷新漆清理

作业小时24681012141618202224

第一面墙

第二面墙第三面墙第四面墙

幻灯片31

表 13.

各道工序估计需用的时间 ( 小时 ) 工序 墙壁

刮旧漆

刷新漆

清理

1 或 3

2

3 1 2 或 4

4

6

2

●Gantt图的主要优点:

●Gantt图能很形象地描绘任务分解情况,以及每个子任务(作业)的开始和结束时间。

●具有直观简明和容易掌握、容易绘制的优点。

●Gantt图的3个主要缺点:

●不能显式地描绘各项作业彼此间的依赖关系;

●进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;

计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费。

幻灯片32

13.3.3 工程网络

●工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每

项作业的开始时间和结束时间。

●它能显式地描绘各个作业彼此间的依赖关系。

●工程网络是系统分析和系统设计的强有力的工具。

幻灯片33

●符号:

●:表示作业,持续一定时间。

●:表示事件,作业的开始或结束时刻。

:虚拟作业,事实上并不存在的作业,表示依赖关系。

幻灯片34

旧木板房刷漆工程的工程网络

幻灯片35

13.3.4 估算工程进度

●工程网络必要的信息:

●每个作业估计需要使用的时间:箭头长度和它代表的作业持续时间没有关系,箭头仅

表示依赖关系,它上方的数字才表示作业的持续时间。

●最早时刻EET:该事件可以发生的最早时间。

●最迟时刻LET:在不影响竣工时间的前提下,该事件最晚可以发生的时刻。

机动时间:实际开始时间可以比预定时间晚一些,或者实际持续时间可以比预定的持续时间长一些,而并不影响工程的结束时间。

幻灯片36

幻灯片37

●最早时刻的计算:

●事件的最早时刻是该事件可以发生的最早时间。

●通常工程网络中第一个事件的最早时刻定义为零,其他事件的最早时刻在工程网络上

从左至右按事件发生顺序计算。

●计算最早时刻EET使用下述3条简单规则:

●考虑进入该事件的所有作业;

●对于每个作业都计算它的持续时间与起始事件的EET之和;

选取上述和数中的最大值作为该事件的最早时刻EET。

幻灯片38

●最迟时刻的计算:

●事件的最迟时刻是在不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。

●按惯例,最后一个事件(工程结束)的最迟时刻就是它的最早时刻。其他事件的最迟时

刻在工程网络上从右至左按逆作业流的方向计算。

●计算最迟时刻LET使用下述3条规则:

●考虑离开该事件的所有作业;

●从每个作业的结束事件的最迟时刻中减去该作业的持续时间;

选取上述差数中的最小值作为该事件的最迟时刻LET。

幻灯片39

10

2

2

2

3

6

6

5

8

11

4

6

6

6

12

12

7

12

18

8

15

15

9

15

20

10

21

21

11

23

23 2

4

24

3

6

3

12

6

1

2

幻灯片40

13.3.5 机动时间

●某些作业有一定程度的机动余地——实际开始时间可以比预定时间晚一些,或者实际

持续时间可以比预定的持续时间长一些,而并不影响工程的结束时间。

●机动时间=(LET)结束-(EET)开始-持续时间

● =右下角-左上角-持续时间

在制定进度计划时仔细考虑和利用工程网络中的机动时间,往往能够安排出既节省资源又不影响最终竣工时间的进度表。

幻灯片41

10

2

2

2

3

6

6

5

8

11

4

6

6

6

12

12

7

12

18

8

15

15

9

15

20

10

21

21

11

23

23 2

4

24

3

6

3

12

6

1

2

(0)

(0)

(0)

(0)

(0)(0)

(0)

(1)

(3)

(11)

(4)

(6)

(6)

(5)

(3)

(5)

幻灯片42

10

2

2

2

3

6

6

5

8

11

4

6

6

6

12

12

7

12

18

8

15

15

9

15

20

10

21

21

11

23

23 2

4

24

3

6

3

12

6

1

2

(0)

(0)

(0)

(0)

(0)(0)

(0)

(1)

(3)

(11)

(4)

(6)

(6)

(5)

(3)

(5)

幻灯片43

13.3.6 关键路径

●最早时刻和最迟时刻相同的事件(机动时间为0的作业)定义了关键路径,在图中关键

路径用粗线箭头表示。

●关键路径上的事件(关键事件)必须准时发生,组成关键路径的作业(关键作业)的实际

持续时间不能超过估计的持续时间,否则工程就不能准时结束。

幻灯片44

刮旧漆刷新漆

清理

作业

小时24681012141618202224

第一面墙第二面墙第三面墙第四面墙

甲组

乙组

幻灯片45

例题:假设一项工程分解成9个子任务,根据下表给出的信息,画出工程网络图,计

算每个事件的最早时刻和最迟时刻,找出关键路径。

子任务标识

完成任务时间

依赖关系

a 8

b 10

c 8 a, b

d 9 a

e 5 b

f 3 c, d

g 2 d

h 4 f, g i

3

e, f

8(a)0

3(i)

10(b)

8(c)

3(f)

4(h)

5(e)

9(d)0

2(g)

幻灯片53

1 2

3

5

4

6

7

10

8

9

12 8(a)

00

3(i)

10(b)

8(c)3(f)

4(h)

5(e)

9(d)

2(g)

11

幻灯片54 1

20

3

8

5

10

4

10

6

17

7

18

10

21

8

21

9

21

12

24 8(a)

00

3(i)

10(b)

8(c)3(f)

4(h)

5(e)

9(d)

2(g)

11

25

幻灯片55

10 1

20

3

8

9

5

10

10

4

10

10

6

17

18

7

18

18

10

21

22

8

21

21

9

21

21

12

24

25 8(a)

00

3(i)

10(b)

8(c)3(f)

4(h)

5(e)

9(d)

2(g)

11

25

25

幻灯片56

10 1

20

3

8

9

5

10

10

4

10

10

6

17

18

7

18

18

10

21

22

8

21

21

9

21

21

12

24

25 8(a)

00

3(i)

10(b)

8(c)3(f)

4(h)

5(e)

9(d)

2(g)

11

25

25

(1)(1)(2)(0)

(0)

(0)

(0)

(0)

(0)

(2)(1)

(7)(1)

(1)

幻灯片57

10 1

20

3

8

9

5

10

10

4

10

10

6

17

18

7

18

18

10

21

22

8

21

21

9

21

21

12

24

25 8(a)

00

3(i)

10(b)

8(c)3(f)

4(h)

5(e)

9(d)

2(g)

11

25

25

(1)(1)(2)(0)

(0)

(0)

(0)

(0)

(0)

(2)(1)

(7)(1)

(1)

幻灯片58

13.4 人员组织

●为了成功地完成软件开发工作,项目组成员必须以一种有意义且有效的方式交互和通

信。

●管理者应该合理地组织项目组,使项目组有较高生产率,能够按预定的进度计划完成所

承担的工作。

●除了追求更好的组织方式之外,每个管理者的目标都是建立有凝聚力的项目组。

●一个有高度凝聚力的小组由一批团结得非常紧密的人组成,他们的整体力量大于个体力

量的总和。

幻灯片59

13.4.1 民主制程序员组

●民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过协商做

出技术决策。因此,小组成员之间的通信是平行的,如果小组内有n个成员,则可能的通信信道共有n(n-1)/2条。

●程序设计小组的人数不能太多,否则组员间彼此通信的时间将多于程序设计时间。

●民主制程序员组通常采用非正式的组织方式,也就是说,虽然名义上有一个组长,但

是他和组内其他成员完成同样的任务。

幻灯片60

●民主制程序员组的优点:

●组员们对发现错误抱着积极的态度,有助于更快地发现错误,导致高质量的代码;

●小组成员享有充分民主,有高度凝聚力,学术空气浓厚,利于攻克技术难关;

●若组内多数成员经验丰富,那么本组织方式会非常成功。

●民主制程序员组的缺点:

如果组内多数成员技术水平不高,或是缺乏经验的新手,由于没有明确的权威指导开发工

程的进行,组员间将缺乏必要的协调,最终可能导致工程失败。

幻灯片61

13.4.2 主程序员组

●采用这种组织方式的原因:

●软件开发人员多数比较缺乏经验;

●程序设计过程中有许多事务性的工作,例如,大量信息的存储和更新;

多渠道通信很费时间,将降低程序员的生产率。

幻灯片62

●主程序员组的两个重要特性:

●专业化。该组每名成员仅完成他们受过专业训练的那些工作。

●层次性。主程序员指挥成员工作并全面负责。

典型的主程序员组由主程序员、后备程序员、编程秘书以及1~3名程序员组成。

幻灯片63

●主程序员组核心人员的分工:

●主程序员既是成功的管理人员又是经验丰富、技术好、能力强的高级程序员,负责体

系结构设计和关键部分的详细设计,并且负责指导其他程序员完成详细设计和编码工作。

●后备程序员也应该技术熟练而且富于经验,他协助主程序员工作并且在必要时(例如,

主程序员生病、出差或“跳槽”)接替主程序员的工作。

编程秘书负责完成与项目有关的全部事务性工作,例如,维护项目资料库和项目文档,编译、链接、执行源程序和测试用例。

幻灯片64

●主程序员组的组织方式不切实际:

●首先,主程序员应该是高级程序员和优秀管理者的结合体。通常,既缺乏成功的管理者

也缺乏技术熟练的程序员。

●其次,后备程序员更难找。

第三,编程秘书也很难找到。

幻灯片65

13.4.3 现代程序员组

●实际的“主程序员”应该由两个人共同担任:

●一个技术负责人,负责小组的技术活动,参与全部代码审查工作,因为他要对代码的

各方面质量负责;

一个行政负责人,负责所有非技术性事务的管理决策,不可以参与代码审查工作,因为他的职责是对程序员的业绩进行评价。行政组长应该在常规调度会议上了解每名组员的技术能力和工作业绩。

幻灯片66

幻灯片67

●由于程序员组成员人数不宜过多,当软件项目规模较大时,应该把程序员分成若干个小

组。该图描绘的是技术管理组织结构,非技术管理组织结构与此类似。

幻灯片68

●把民主制程序员组和主程序员组的优点结合起来的另一种方法,是在合适的地方采用分

散做决定的方法。有利于形成畅通的通信渠道,以便充分发挥每个程序员的积极性和主动性,集思广益攻克技术难关。

幻灯片69

13.5 质量保证

●13.5.1 软件质量

●概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。

软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。

幻灯片70

●定义强调了下述的3个要点:

●软件需求是度量软件质量的基础,与需求不一致就是质量不高。

●指定的开发标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎肯定

会导致软件质量不高。

通常,有一组没有显式描述的隐含需求。如果软件满足明确描述的需求,但却不满足隐含的需求,那么软件的质量仍然是值得怀疑的。

幻灯片71

●影响软件质量的主要因素,是从管理角度对软件质量的度量。可以把这些质量因素分

成3组,分别反映用户在使用软件产品时的3种不同倾向或观点。这3种倾向是:产品运行、产品修改和产品转移。

幻灯片72

13.5.2 软件质量保证措施

●软件质量保证(software quality assurance,SQA)的措施主要有:

●基于非执行的测试(复审或评审),主要用来保证在编码之前各阶段产生的文档的质量;

●基于执行的测试(软件测试),需要在程序编写出来之后进行,它是保证软件质量的最

后一道防线;

程序正确性证明,使用数学方法严格验证程序是否与对它的说明完全一致。

幻灯片73

● 1. 技术复审的必要性

●正式技术复审的显著优点是,能够较早发现软件错误,从而可防止错误被传播到软件

过程的后续阶段。

●统计数字表明,在大型软件产品中检测出的错误,60%~70%属于规格说明错误或设计错

误,而正式技术复审在发现规格说明错误和设计错误方面的有效性高达75%。由于能够检测出并排除掉绝大部分这类错误,复审可大大降低后续开发和维护阶段的成本。

正式技术复审是软件质量保证措施的一种,包括走查(walkthrough)和审查(inspection)等具体方法。走查的步骤比审查少,而且没有审查正规。

幻灯片74

● 2. 走查

●走查组由4~6名成员组成。走查组组长引导该组成员走查文档,力求发现尽可能多的

错误。

●走查组的任务仅仅是标记出错误而不是改正错误,改正错误的工作应该由该文档的编

写组完成。

●走查的时间最长不要超过2小时,这段时间应该用来发现和标记错误,而不是改正错

误。

●走查主要有下述两种方式:

●参与者驱动法

文档驱动法

幻灯片75

● 3. 审查

●综述。由负责编写文档的一名成员向审查组综述该文档。

●准备。评审员仔细阅读文档。

●审查。评审组仔细走查整个文档。

●返工。文档的作者负责解决在审查报告中列出的所有错误及问题。

●跟踪。组长必须确保所提出的每个问题都得到了圆满的解决。

通常,审查组由4人组成。组长既是审查组的管理人员又是技术负责人。审查过程不仅步数比走查多,而且每个步骤都是正规的。

幻灯片76

● 4. 程序正确性证明

●在20世纪60年代初期,人们已经开始研究程序正确性证明的技术,提出了许多不同

的技术方法。

●人工证明程序正确性,对于评价小程序可能有些价值,但是在证明大型软件的正确性

时,不仅工作量太大,更主要的是在证明的过程中很容易包含错误,因此是不实用的。

为了实用的目的,必须研究能证明程序正确性的自动系统。

目前已经研究出证明PASCAL和LISP程序正确性的程序系统,正在对这些系统进行评价和改进。现在这些系统还只能对较小的程序进行评价。

幻灯片77

13.6 软件配置管理

●软件配置管理是在软件的整个生命期内管理变化的一组活动。

●具体地说,这组活动用来:①标识变化;②控制变化;③确保适当地实现了变化;④

向需要知道这类信息的人报告变化。

●软件配置管理的目标是,使变化更正确且更容易被适应,在必须变化时减少所需花费

的工作量。

幻灯片78

13.6.1 软件配置

● 1. 软件配置项

●软件过程的输出信息可以分为3类:

●计算机程序(源代码和可执行程序);

●描述计算机程序的文档(供技术人员或用户使用);

●数据(程序内包含的或在程序外的)。

上述这些项组成了在软件过程中产生的全部信息,我们把它们统称为软件配置,而这些项就是软件配置项。

幻灯片79

软件工程项目管理计划书(完整版)

储蓄业务项目管理计划书 1.简介 1.1 项目概述 本项目要开发一个银行系统,系统一共分为储蓄业务、贷款业务、外汇交易、网上银行、信用卡业务和系统管理六个子系统。本团队负责其中的有关储蓄业务的子系统。通过团队合作开发整个子系统,使团队成员获得软件工程开发的实际训练。本系统采用目前主流的B/S开发架构,将与整个银行系统一起发布。不单独发布。交付的产品包括可执行的文件、源代码、技术文档与用户使用手册等。本系统的开发过程中的主要工作是子系统需求分析、系统总体设计、子系统源代码开发、子系统测试、交付团长进行最后的集成、整个系统的测试。关键里程碑是制定项目管理计划书、制定需求设计规格说明书初稿、制定系统设计报告的初稿、进行子系统运行情况的检查与测试、进行系统集成后的运行情况的检查与测试。项目所需工具是个人电脑和开发工具。进度为11周,工程量为3人/天。 1.2 项目范围说明 (1)提交文档:项目管理计划、需求规格说明,设计报告、测试报告、用户使用手册和项目个人总结。其中项目总结为每人一份,每个小组所有成员的总结装订在一起;其余文档每组提交一份。每个团队可将各小组的文档综合到一起,各小组也可自行分开提交,具体方式由团队内部协商确定。所有文档需要提交电子版和打印稿。 (2)源程序检查:一共两次。第一次检查每个小组的子系统运行情况。第二次检查每个团队内六个小组集成后完整的银行系统运行情况,检查完成后需要提交程序源文件和可执行的系统。程序检查安排在上机时间进行。 1.3 软件项目计划书的演化 软件项目计划书在第三周周末前经由小组讨论、共同撰写、汇总整合三步骤形成初稿,第四周以后根据项目的进展可以对其进行修改,需要有组员提出修改意,在全体会上讨论通过,并由组长整理修改意见并作出相应的修改。其余组员同步获得更新稿。 2.项目组织管理 2.1 过程模型

在建工程项目管理信息系统

在建工程项目管理信息系统班级:14信管B班学号:14202235 姓名:张玉珍 1 .系统背景 项目管理信息系统能够帮助进行费用估算,并收集相关信息来计算挣得值和绘制S曲线,能够进行复杂的时间和资源调度,还能够帮助进行风险分析和形成适宜的不可预见费用计划等等。例如,项目计划图表(PERT图、甘特图)的绘制,项目关键路径的计算、项目成本的核算、项目计划的调整、资源平衡计划的制定与调整以及动态控制等都可以借助于项目管理信息系统。 项目管理信息系统中采用的方法即项目管理的方法,主要是运用动态控制原理,对项目管理的投资、进度和质量方面的实际值与计划值相比较,找出偏差,分析原因,采取措施,从而达到控制效果。因此,项目管理信息系统主要包括项目投资控制、进度控制、质量控制、合同管理和系统维护等功能模块。近几年来,随着我国市场经济的不断深入,世界经济一体化进程的加快,不论政府公共投资,还是企业建设资金的管理均呈现出新的特点。主要表现在以下5个方面:1)工程数量和种类多、投资金额大,建设、管理任务十分繁重;2)项目建设周期加快,进度、资金、质量管理难度加大;3)项目资金来源多样化,资金计划性要求增强;4)资金支付要求更加准确、及时,尤其是工程款的结算更是受到各级政府、社会的关注;5)工程项目投资透明度要求提高,资金的使用及效益需接受更多部门和社会的监督。 在这样的背景下,如何有效地对在建工程项目及资金进行实时、全过程的管理和监控、加强内部控制,已成为各级领导和有关部门共同关注的重要课题。但由于受传统体制的影响,尤其是管理手段的制约,虽然投资管理体制、方式发生了一定的变化,投资项目管理中也存在着较为突出的管理问题: 1)由于缺乏先进的信息管理平台、手段,各级管理者难以及时地了解、掌握整体或单个工程项目的立项、进度完工、付款、实际成本及、决算情况,造成“三边”工程大量存在;很多项目不能及时支付工程款;款项拨出后不能真正到施工单位;完工许多年仍不能决算等。2)随着基建投资项目的增多,管理信息的准确性、及时性难以满足各级管理的需求。3)由于不能及时掌握有关的进度、完工信息,对工程项目资金使用和筹集难以进行正确的计划。4)不能有效地实现“按进度、按合同、按计划”控制工程项目资金的管理要求,很难合理、科学地进行项目资金的统筹规划,容易累积成管理中的问题。5)工程文档(如设计、概预算、合同及合同变更资料、发票等)的管理利用有很多困难,经常性的查找耗费很大的人力,更谈不上利用文档进行项目的控制。 依靠传统的手段、方式解决存在的问题具有很大的难度,也不能从根本上解决,必须依靠先进、科学的技术建立起规范、流程化的管理信息平台,创新工程项目管理模式。

浅谈软件工程管理的现状和创新策略

浅谈软件工程管理的现状和创新策略 本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本文档,请点击下载按钮下载本文档(有偿下载),另外祝您生活愉快,工作顺利,万事如意! 信息化时代的到来推动了社会的发展,人们的日常生活与工作越来越离不开计算机,然而软件工程的开发作为信息化发展的重要组成部分。在软件开发与发展过程中,软件工程管理工作始终扮演着重要的角色,是软件开发成功的关键内容。但是,在软件工程进行管理时,仍存在较多的不足与问题,严重阻碍软件工程的发展与开发。因此,为了改变当前的不足,需要从软件工程现状以及以后的创新入手,并对此进行详细的探讨。 1 软件工程的概述与管理现状 软件工程概述 软件工程管理主要是指为了完成某个软件项目中的具体目的与需求,需要利用计算机相关知识、技术以及辅助工具来完成。若要使得软件工程管理工作顺利进行,必须要经过以下几个环节:启动、执行、控制、运行以及结束。 软件工程管理现状 (1)软件开发项目经理管理意识需要加强

在部分软件开发企业中,软件工程管理培训仍处在初级阶段,缺乏相关的系统的管理,项目经理的选拔主要在企业内部进行选拨,注重员工的实际操作能力,而不是选择具备管理水平较高的人才。所以,该选拨的方法造成了项目经理对企业的项目开发管理时缺乏相关经验,与技术水平不相匹配,不能够对企业的各环节统筹安排,这在一定程度上影响到了管理的效率,成为企业发展与管理的不足,严重地还会阻碍企业的进步。 (2 )项目进度规划存在不足 软件项目开发通常包含若干个子项目,子项目的进度规划在今后的软件开发中发挥着重要的作用。然而在目前的软件工程管理中,由于软件企业对子项目的规划意识相对比较薄弱,这就会造成项目管理工作难以发挥良好的效果,规划工作的工作价值也会随之大大贬值。同时,因为软件开发项目的子项目较多,其规模庞大,其管理工作的复杂性不断加大。在软件开发实际过程中,总会出现一些突发事件,若管理不到位,这些突发事件将会对真个软件开发项目造成影响,阻碍项目的进度,将会延长软件开发的周期,不利于软件工程的顺利进行。 (3)沟通能力差,风险意识淡薄

最新软件工程与项目管理 作业五资料

软件工程与项目管理作业五 1.解释以下概念并通过一个例子加以说明: 对象;类;继承;多态性 对象是客观世界中事物的抽象表示;是其属性(状态、数据)和相关操作(行为、方法或服务)的封装体;对象之间靠消息传递相互作用。例如汽车、一个圆、等类是对具有相同属性和相同操作的一组相似对象的抽象描述。例如:学生类的属性:学号、姓名、专业、班级、电话、…… 继承是子类自动地共享基类(已有类)中定义的数据和操作的机制。例如:汽车、船都是交通工具类的子类,它们都可以继承交通工具类的属性和操作。 多态性是在一个类层次中,不同对象对相同消息做出不同的响应。例如:成员函数的重载, 2.为什么面向对象方法要从多个侧面(对象模型、动态模型、功能模型)建立系统模型? 这三种模型都涉及数据、控制、操作等共同的概念,只不过每种模型描述的侧重点 不同。这3中模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同侧面反映了系统的实质性内容:它使用的数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。 对任何大型系统来说,这3中模型都是必不可少的。在不同的应用问题中,相对的 重要程度也有所不同。但是在任何情况下,对象模型始终是最重要、最基本、最核心的。 三种模型是有区别的,各自的侧重点也不同 (1)功能模型指明了系统应该“做什么”; (2)动态模型明确规定了什么时候(即何种状态下接受什么事件的触发)做; (3)对象模型则定义了做事情的实体。是最基本最核心的模型。 3.建立符合下列陈述的对象模型 某图书馆有许多名职员为之工作,职员又进一步划分为馆长和管理员两类;馆长可对图书借阅工作进行管理,每名管理员可管理多本图书,每本图书可由多名管理员管理;图书拥有许多读者,借书证号惟一地确定一个读者;读者又可分为教师和学生两类,每名教师或学生可以借阅数本图书,每一种图书可供多名教师或学生借阅。

软件工程质量管理体系说明参考样式

**公司软件工程质量管理体系说明 我公司已软件工程要求建立了质量管理体系,严格控制产品的设计和开发的策划和过程,确保新产品满足市场要求。 一:职责分工 研发总监 ●主管公司技术、产品发展方向的调查研究,确定新产品的开发项目和新技术 的研究方向; ●主管新产品的确定、设计、开发、评审、验证、确认等过程; ●主管新产品市场推广的技术支持和新产品的试运行。 研发部 ●组织实施新产品开发之前的可行性调研; ●参与对立项报告的评审; ●实施新产品的形态设计,编制新产品研发计划; ●负责根据公司技术发展战略开展技术研究和新产品开发及老产品的改造、升 级工作; ●负责针对每个开发的软件产品进行全方位的测试,保障产品质量; ●参与对产品开发过程的阶段性评审和开发结束时的验收。 ●负责软件技术的积累和成长,产品的软件开发、测试,产品软件的技术支持 等,对软件的质量和稳定性负责,部门成员参加具体的产品的软件开发过程。 二、开发要求 1、确立设计开发项目 ●根据市场调查、技术发展或市场需要提出新产品立项或重大改进需求的由指 定专人进行可行性调研,编写《立项报告》,申请立项; ●根据立项申请,由研发总监组织相关人员(必要时聘请专家)进行评审并对 结果进行记录。 2、设计开发的策划 ●由研发部成立专门的项目小组对已立项的新产品编制《设计开发需求》,然 后开始系统设计,以此作为项目组成员进行设计开发活动的依据。应阐明设计项目的输入和输出要求、设计的进度要求、人工预计、任务描述、设计验收的时机等活动的安排,并规定实施这些活动的职责; ●研发部在系统设计完成时形成设计文档,由项目小组进行内部评审,形成记 录。然后开始进行程序代码开发;

BS 的建筑工程管理信息平台

B/S 的建筑工程管理信息平台 摘要:利用先进的IT 与通信技术,针对建筑工程管理的现实需求和未来发展要求,设计并实现了一个基于B/S 模式的建筑工程管理信息平台。重点介绍平台的解决方案、各模块设计及平台特点。主要模块包括权限管理、施工管理、成本管理和文档管理。 关键词:MIS;权限管理;施工管理;成本管理;文档管理;单位工程 1 系统总体目标 建筑业具有土地垄断性和不可移动性等特点,利用现代计算机工具及网络资源,建立一条可操作性强的、高速实时的建筑工程管理信息系统(CP_MIS),贯穿工程施工全过程,形成各管理层次、各部门、全员实时参与,信息共享、相互协作的,以项目管理为主线,以成本管理控制为核心的工程管理信息平台,促进项目各层面和整体的管理水平提高。 本文设计的建筑工程管理信息平台,以承包商、监理、中咨(中国国际咨询公司的简称,它能够对国家重大建设项目进行咨询评估)、业主4 种类型用户为主体,充分考虑建筑工程管理的业务特点,通过浏览器,实现完全的远程操作,支持远程办公,使各级用户能及时掌握工程情况,形成动态管理平台。它能从根本上改变建筑工程管理申报、审核、会签等手工管理的落后局面,提高建筑工程管理的自动化管理水平和工作效率。主要功能包括权限管理、动态施工管理、动态成本管理、文档管理等。 这样的系统打破了工程管理间互相独立、信息不流通的局面,实现整个工程数据集中透明,缩短管理链条。并且在项目施工过程中进行有效的财务监督和控制,在项目施工完成时严把质量关。另外,传统建筑施工项目中,由于地域分散,管理手段比较落后,无法及时掌握各个工程项目的成本费用发生,无法实现工程管理中各个部门间数据的集成与共享,无法实现业务处理的流程化,无法实现多项目数据的集中管理,管理较为混乱,CP_MIS 平台的建立就解决了以上问题。管理信息化是国外优秀建筑企业发展过程中的实践总结。建立CP_MIS 平台是把国内建筑行业的管理全面推向信息化的一个成功尝试。 2 系统总体设计本文的系统 针对建筑行业管理的现实需求和未来发展要求进行设计,采用平台化和模块化思想,软件开发遵循Servelet2.4 和JSP2.0 规范,以建筑工程信息管理为基础,并且支持异构数据库系统。 2.1 系统设计原则(1)先进性、实用性:系统采用目前十分流行的基于Java Servelet以及整个Java 体系的Web 开发技术。界面设计人性化、实用化,方便了用户操作,提高了工作效率。 (2)安全性、保密性:数据库不用放在Web 服务器上,减少了服务器被攻击的可能,数据的安全有足够的保证;有严格的权限管理体系和保密措施。 (3)可扩充性:系统采用模块化结构设计,可与其它功能模块整合,扩大管理范围,逐渐形成一套功能完备的建筑行业管理产品。 2.2 系统整体架构建筑工程管理信息平台实现核心业务流程的数据集中共享、业务流程处理标准规范,使关键的工程管理信息在整个项目生命周期以及主

软件工程项目管理

学生社团管理系统 课程名称: 软件项目管理 课题名称:学生社团管理系统 专业:软件工程 班级:卓越131 学号:4323 4140 学生姓名:曹泰杨东东 指导教师:贾晓辉

2016年5月

项目范围管理 系统定义 该软件是学生社团开展社团工作的一个沟通平台,通过学生社团平台学生们可以及时得到新闻以及通知,社团管理员也能更方便的管理整个社团的运作。 项目背景 随着社会发展,新的科技不断涌现,计算机在我们的生活中扮演着越来越重要的角色,办公自动化、高效的处理工作成为我们追求的目标。日常生活中,计算机被应用到更多的领域,所以,学生社团事务处理也可以交给计算机,以帮我们更好、更快的完成工作。提高工作效率,简便的解决日常管理任务,是我们所追求的共同目标。 目前,我们对社团的管理还处于手动化,纸质化的一个阶段,而日益增长的需求已经不能靠原始的管理方式来完成所需的工作,社团管理系统的开发是为解决当前的需要而设计制作的一个管理系统,为社团的管理提供更好的管理支持,这样才能节省我们在社团管理方面所占用的资源。 学生社团是学校的一个以拓展学生业余兴趣爱好的组织,是一个非盈利的组织,社团通过组织具有共同爱好的学生在一起开展一些活动,来丰富学生的课余生活,提高学生的沟通能力和组织能力以及自我表现能力,在社团里志同道合的同学们可以尽情的发挥自己的特长,从而锻炼自己各方面的能力。 随着高校的扩招,大学生群体不断壮大,学生社团这样一个学生组织也不断的壮大,在丰富学生课余生活的同时,也让同学们学到了更多的知识,但是随着学生社团的壮大,学生社团以前纸质办公已经赶不上现在快节奏的办公效率,所以为了提高办事效率以及节约人力物力资源,开发这样一个学生社团管理系统来管理整个社团的日常事务是非常必要的。 高校社团文化日渐丰富,随之而来的繁琐的社团事务,使管理学生社团的工作变得不再那么容易,随着软件行业的发展,我们可以根据学生社团管理的需求来使用办公自动化来管理学生社团,介于社团事务的繁琐性,有必要开发这样一个系统来解决社团事务的繁琐性,提高办事效率。 开发意义 学生社团活动作为学校教育的补充和延伸而存在,作为高等院校学生综合素质培养的主要载体,是学生依据自己的需要而自由拓宽的天地,是大学生培养能力、增长知识、提高素质的一条重要途径,是提高学生综合素质的第二课堂。随着教育体制改革的不断变化,社团日益成为校园里凝聚力和号召力最强的群体。

软件工程---学生成绩管理系统

软件工程课程设计报告 题目:_____学生成绩管理系统____ 专业班级:___ 计算机系计科102班___ 姓名:__________ __________ 学号:_______ ______ 同组姓名:______ _________ __________ 成绩评定 指导教师:年月日

目录 第1章绪论 (2) 第2章系统分析 (3) 2.1 系统目标 (3) 2.2 功能要求 (3) 2.3 可行性研究方法 (3) 2.4 系统可行性分析 (3) 第3章需求分析 (4) 3.1 引言 (4) 3.2 任务概述 (4) 3.2.1 编写目的 (4) 3.2.2 背景 (4) 3.3 功能需求 (4) 3.3.1 管理功能部分 (4) 3.3.1.1 管理员功能 (4) 3.3.1.2 学生功能 (4) 3.4 数据流图 (5) 3.5 学生成绩管理系统逻辑结构图 (5) 3.6 用例 (5) 第4章概要设计 (8) 4.1设计目标 (8) 4.2 编写目的 (8) 4.3 任务概述 (8) 4.4 总体设计 (9) 4.4.1 系统设计思想 (9) 4.4.2 学生成绩管理系统顺序图 (10) 4.5 接口设计 (11) 第5章详细设计 (12) 5.1 根本任务 (12) 5.2 程序流程图 (12) 5.3 详细设计说明 (14) 第六章软件测试 (16) 第七章实验结果截图显示 (18) 第八章程序源代码 (20) 第九章实验总结 (27) 第十章参考文献 (27)

第1章绪论 随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和教学结果查询是校园网建设的核心目标和核心价值,本系统立足于校园实际,争取做出一个方便快捷的成绩管理系统,实现成绩信息的管理。该项目主要是服务于学生成绩管理方面,进一步方便教师的工作和学生的成绩查询,从而从侧面达到提高学校的管理质量。它具有使用范围广,实用性强,使用简单,所花经费少等优点。 主要功能有两个方面: 管理员,登陆,进入系统,可以进行管理员操作,进行学生信息及成绩信息的编辑、查询、删除、修改、添加、排序等操作。 学生,登陆,进入系统,可以进行查询等操作。 软件系统目标: (1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。 (2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。 (3)本系统操作方便、灵活、简单。 (4)本系统可高效、快速的查询到学生的基本信息。

工程管理信息化平台建设构想

工程管理信息化平台建设的构想 前言 在网络化、信息化越来越向平台化发展的环境下,涉及交易的各方资源集成在一个平台上共享信息、步骤协同、过程实时管控,同时,在网络平台上交易留下的记录和信息,作为基础的数据资源,通过大数据技术来分析和预测相关趋势,进而为决策提供可靠的依据。作为施工企业,传统上施工过程是一种资本和劳动力密集的投入方式,我们熟悉的马云做C2C电商平台,刘强东做京东垂直电商平台,网易做游戏平台,腾讯做社交平台,这些都是新经济的产物,似乎传统的建筑施工与网络新经济没有大多交集。通过分析,电子商务等新经济的发展壮大与其说是网络社会的产物,还不如说是作为消费个体越来越分散、越来越个性化、自我化环境下的产物。而当前的施工企业管理模式中,大量使用社会资源,社会资源的特点就是分散化、个性化,同时参与工程建设的年轻一代越来越注重自我,越来越个性化,不再是整齐划一的可任由驱使的无个体意识的集体主义者,在这个大背景下,未来发展可能导致的结果是:第一,整个施工管理系统越来越趋于开放(这是针对传统的企业自有设备、自己员工干活、采用准军事化的集权式管理模式而言的),开放的结果是带来管理难度和系统风险的增加;第二,对施工企业的技术、信息沟通、社会资源协调管控能力都提出更高的要求;第三,采用信息平台化手段进行施工管理,也是未来构筑高效便捷的管理模式,是企业从传统的劳务型向科技型、管理型转变的可选道路;第四,未来一代,尤其是90、00后一

代,对于工作环境的容忍度越来越低,“民工二代”个体意识、权利意识的增强,简单的劳动力投入成本越来越高,而且随着人口红利的消退,已经不太可能有足够廉价好使唤的劳动力投入了,劳动争议的风险也随之增加。因此,就算是传统的建筑施工企业,在不远在将来,无论是从资源整合、过程管控、风险控制、人的发展的角度来看,实行平台化、集成化、远程化的管理都势在必行。 一、社会资源的特点 施工企业走管理型道路,难点在于对社会资源的管控,导致社会资源难以管控主要原因有如下: 第一是因为社会资源的分散性决定的,社会资源不同于自有资源,以前建筑施工企业拥有对资源的所有权、占用权、使用权,因此管理方式相对单一,对于资源的管控也是绝对性控制。而社会资源广泛分散于各个单位或个人,建筑施工企业与其他单位、个人之间的关系是一种平等的民事法律关系,从管理方式来看,是从过去的对资源的绝对控制式管理变成现在合同关系式管理。 第二是由社会资源自身的逐利性决定的,社会资源拥有者购臵资源的目的是为了追求自身利益的最大化,建筑施工企业与社会资源方有各自利益诉求,虽然大多数情况下,社会资源方(外协队)在建筑施工企业的统一管理协调下开展工作,有其利益的一致性,但也无法避免经常出现利益冲突,尤其是成本上升、利润趋薄、外部系统风险增大的情况下。 第三,在市场经济条件下社会资源的流动性。不同于自有资源可

计算机软件工程项目管理策略研究

计算机软件工程项目管理策略研究 摘要:近年来,随着科学技术的发展计算机已经广泛应用于各行各业,其软件 工程项目所占比重逐渐增加,因此在软件系统开发上面临着较大的风险,同时由 于其涉及面增加,使得在项目管理上得到了高度重视。本文我们主要通过阐述计 算机软件工程管理概念,分析在管理过程中遇到的一些问题,提出了有效的解决 措施。 关键字:计算机;软件工程;项目管理;策略; 近年来,随着计算机以及新技术的发展,给人们生产和生活带来了很大的便利,然而同时也面临着软件开发难度,规模,风险逐渐增加,在软件开发时很容 易引出多种问题,因此相应的项目管理是十分重要的。 一,计算机软件工程管理内容 首先从软件概念上来看,计算机软件是指系统中的一些重要文档和程序,通 常程序需要安装在内部才能够被相应的设备识别,计算机运行文档是用于日常记 录的,计算机的软件可以分为应用、系统、以及总述软件,其中系统软件是计算 机的一般功能,而应用软件是用户所在使用过程中的特殊功能。从工程项目管理 上来看是指从事项目管理的企业接受到上级委托之后能够签署合同,并代表业主 根据要求对项目进行有效干预,通常项目企业不会直接与承包项目进行合同的签订,而是帮助业主以及施工单位承包单位,供货商等进行合同的签订,同时能够 对合同内容进行有效的监督管理,确保能够按时高质量完成项目。 二,计算机软件管理的重要性 在计算机软件开发过程中,项目管理主要包括项目的成本,质量,风险,进 度等,是否能够按照预期计划完成,能够排除外界多种干扰因素,在对开发过程 中的人员质量风险等方面进行合理的安排和控制,然而涉及项目管理过程中影响 因素包括:产品的工作量、应用资源、配置等多方面,同时,相比其他的管理来说,软件项目管理同样需要进行多方的配合和项目管理。近年来,随着网络技术 的发展,在很多领域都运用了计算机,因此,从软件开发上来看占据越来越大的 比重。由于软件开发所涉及的流程比较复杂,需要多个岗位进行配合,而且软件 开发是一个复杂的大型项目,面临的风险较大,因此在后期管理过程中难度也较高,在开发过程中还很容易遇到很多问题,不同的方案管理者无法完全避免问题 的产生,因此需要制定有效的措施来解决在软件开发时遇到的多种问题。 三,计算机软件项目管理面临的问题 需求定位问题。在软件开发之前,需要与用户进行合理的沟通,确定软件的 多种功能要求,使用范围以及客户的使用需求,确保软件功能能够满足用户需求,目前在软件开发过程中,在实施项目之前由于缺乏深入的调查研究,因而现实需 求比较复杂,用户无法准确对软件需求进行分析,也无法了解开发软件的功能, 通常一些人员在开展调研工作时流于形式,因此,无法真正了解用户的需求,导 致软件在开发过程中与用户实际需求无法符合。进一步加大了用户与软件开发企 业之间的矛盾,因此在对软件开发之前需要准确定位用户需求,确定清晰的需求 之后,能够进一步确保软件开发质量。人员管理问题。由于计算机软件项目在开 发过程中复杂度较高,而且难度也高较高,应用范围较广,工作量大,通常是由 团队合作来完成的,需要有相应的开发人员,管理人员以及其他人员共同合作完成,进而能够确保队伍的稳定性,使开发人员,管理人员以及其他人员能够共同

软件工程与项目管理考试题(学生)

第一章练习题 一、单项选择题 1、软件是()。 A.处理对象和处理规则的描述 B.程序 C.程序、数据及文档 D.计算机系统 2、下列选项中()是软件开发中存在的不正确的观念、方法。 A.重编程、轻需求 B.重开发、轻维护 C.重技术、轻管理 D.以上三条都是 3、下列哪个阶段不属于软件生存周期的三大阶段()。 A.计划阶段 B.开发阶段 C.编码阶段 D.维护阶段 4、计算机系统就是()。 A.主机,显示器,硬盘,软驱,打印机等 B.CPU,存储器,控制器,I/O接口及设备 C.计算机硬件系统和软件系统 D.计算机及其应用系统 5、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 6、以下属于软件危机现象的是()。 A.软件开发进度难以预测 B.软件产品难以维护 C.软件缺少适当的文档资料 D.以上三条都是 7、软件工程的出现主要是由于()。 A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展 8、以下哪一项不属于项目成功要考虑的因素()。 A.工作范围与成本 B.进度计划 C.客户满意度 D.全都属于 9、以下对软件工程的解释正确的是()。 A.软件工程是研究软件开发和软件管理的一门工程科学 B.软件工程是将系统化的、规范化的、可度量化的方法应用于软件开发、运行和维护的过程C.软件工程是把工程化的思想应用于软件开发 D.以上三条都正确 10、一个项目是否开发,从经济上来说是否可行,归根结底是取决于()。 A.成本估算 B.项目计划

C.工程管理 D.工程网络图 11、软件生存周期包括可行性分析、需求分析、系统设计、编码、()、维护等活动。 A.应用 B.检测 C.测试 D.以上答案都不正确 12、一个软件从开始计划到废弃为止,称为软件的()。 A.开发周期 B.生存周期 C.运行周期 D.维护周期 13、软件计划时期的主要任务是:分析用户要求、新系统的主要目标以及()。 A.开发软件 B.开发的可行性 C.设计软件 D.运行软件 二、判断题 1、软件就是计算机系统中的程序、数据及其文档()。 2、程序是指计算机为完成特定任务而执行的指令的有序集合()。 3、数据是指被程序处理的信息()。 4、软件工程与项目管理是为研究克服软件危机应运而生的()。 5、软件危机是20世纪60年代以前产生的()。 6、软件缺少适当的文档资料属于软件危机现象之一()。 7、软件工程是把工程化的思想应用于软件开发()。 8、软件工程是研究软件开发和软件管理的一门管理科学()。 9、一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力()。 10、软件工程学是理论研究,没有实际用途()。 11、项目管理过程就是制定计划然后按计划工作()。 12、软件生存周期包括需求分析、系统设计、程序设计、测试、维护,五个阶段()。 13、软件生存周期是指根据某一软件从被提出并着手开始实现,直到软件完成其使命被废弃为止的全过程()。 第二章练习题 一、单项选择题 1、以下哪个不属于问题定义的步骤()。 A.调查和调研 B.形成高层逻辑模型 C.沟通和交流 D.问题定义报告 2、以下哪个不属于问题定义的内容()。 A.问题的背景 B.开发的条件、环境要求 C.实现目标的方案 D.体系结构的设计 3、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是该系统是否开发的决策依据,因此必须给出()的回答。 A.确定

国有建设平台工程管理信息化平台建设的建议

国有建设平台工程管理信息化方案建议 一、重要性和必要性 政府工程建设是一项复杂的系统工程,它具有投资大、建设周期长、牵涉面广、社会影响大等特点。如何克服传统工程管理模式人力物力投入大、效率不高的问题,更好地实现政府工程建设的优质高效,提高政府工程的建设管理水平,一直是政府工程建设管理者积极探索的课题。综合国内政府工程建设管理部门的实践经验,利用计算机、网络和通信技术建立工程项目管理信息系统辅助管理,实现工程管理的智能化、信息化,是促进工程管理精细化、提高管理效率、提升管理水平的重要手段。 (一)工程信息化管理是提高管理效率的必然选择。利用信息化工具作为项目管理的载体,使信息交流速度大大加快,减轻了项目参与人日常管理工作的负担,加快了项目管理的信息反馈速度和反应速度,保证了信息的传递快捷、及时和通畅,最大限度地实现工程进展情况的及时查询、工程质量和安全问题的及时发现、决策的及时拿出对策,提高了工作效率。 (二)工程信息化管理是强化工程监督的有效手段。如何确保项目贯彻落实工程质量管理规定,认真执行各投资管理制度,严格执行招投标、项目法人、工程监理、合同管理等制度,防止质量和安全事故,是工程管理面临的一项重要挑战。工程信息管理系统实现了每个人的权限、工作流程和过程的自动控制和记录,具备清晰和完整的项目管理流程,为强化工程招投标、设计变更、前期阶段、施工过程、造价等重点领域和关键环节的监管构建了良好的平台,也有利于纪检监察部门全程参与跟踪监督,有效预防腐败。 二、建设目标 建立以合同管理为核心,工程计划与进度控制为主线,涉及财、物、人等资源管理的工程建设管理信息系统,建成施工现场计算机网络,并利用公用通讯网络,互联网及网络视频技术,建立工程建设相关方不间断的联系,为工程建设提供可靠、快速、安全的信息服务和决策服务。

计算机软件工程项目管理方法探析

龙源期刊网 https://www.360docs.net/doc/4e12544519.html, 计算机软件工程项目管理方法探析 作者:朱丽娜 来源:《科技风》2020年第02期 摘;要:计算机软件项目管理和开发是一个复杂而系统的项目,涉及的方面相对广泛,在实际工作中也有较大的风险。因此,对计算机软件工程项目的开发和完善进行系统的管理是非常重要的。今天,随着信息技术,科学技术的迅速发展,计算机软件工程的规模和复杂性不断增加,软件开发的引入也逐渐出现各种问题,这就会给企业造成产生不必要的损失。为了提高商业经济利益,提高企业整体的竞争力,促进计算机软件工程项目的开发,就有必要对软件工程项目管理的最佳方法和措施进行讨论和分析。 关键词:计算机;软件开发;项目管理 现代社会的科学技术水平不断提高,计算机软件工程得到了广泛的应用,现今计算机软件已成为人们日常生活中不可或缺的一部分。但是,计算机软件工程的发展仍然存在一些缺点。相关工作人员只专注于研究和技术开发,忽略了软件工程的管理。目前,软件工程项目管理滞后于软件开发,因此软件开发的质量并没有提高,这在一定程度上影响了信息技术的进一步发展。根据现状,相应的研发部门需要对软件工程项目开发管理更加重视,放弃传统观念,深入研究软件开发管理,积极解决问题。可以看出,计算机软件工程的开发管理对于研发的深入改革至关重要。 1 计算机软件开发项目中存在的管理问题 1.1 软件开发项目管理人员无法综合协调的进行管理工作 特别是在目前的软件开发项目管理中,团队分工不明确,队员之间没有有效的合作。如果出现风险和管理问题,每个部门的负责人都互相推诿,希望免于承担责任,在工作中没有责任感和压力。这种工作方式不仅影响软件开发项目管理的有效性,而且还隐藏了其正常运行的潜在风险。 1.2 对风险管理的重视程度不够 事实上,计算机工程项目风险是公司必须考虑的主要问题。不同的风险可能导致公司不同程度的损失。但是,许多员工并未充分意识到与软件开发项目管理相关的风险。没有预防或及时预测到可能存在的风险,也没有采取措施消除已经发生的风险,这可能会对公司造成巨大的经济损失。 2 计算机软件项目管理对策

软件工程管理现状与创新策略.doc

软件工程管理主要是指为了完成某个软件项目中的具体目的与需求,需要利用计算机相关知识、技术以及辅助工具来完成。若要使得软件工程管理工作顺利进行,必须要经过以下几个环节:启动、执行、控制、运行 以及结束。 1.2软件工程管理现状 (1)软件开发项目经理管理意识需要加强在部分软件开发企业中,软件工程管理培训仍处在初级阶段,缺乏相关的系统的管理,项目经理的选拔主要在企业内部进行选拨,注重员工的实际操作能力,而不是选择具备管理水平较高的人才。所以,该选拨的方法造成了项目经理对企业的项目开发管理时缺乏相关经验,与技术水平不相匹配,不能够对企业的各环节统筹安排,这在一定程度上影响到了管理的效率,成为企业发展与管理的不足,严重地还会阻碍企业的进步。(2)项目进度规划存在不足软件项目开发通常包含若干个子项目,子项目的进度规划在今后的软件开发中发挥着重要的作用。然而在目前的软件工程管理中,由于软件企业对子项目的规划意识相对比较薄弱,这就会造成项目管理工作难以发挥良好的效果,规划工作的工作价值也会随之大大贬值。同时,因为软件开发项目的子项目较多,其规模庞大,其管理工作的复杂性不断加大。在软件开发实际过程中,总会出现一些突发事件,若管理不到位,这些突发事件将会对真个软件开发项目造成影响,阻碍项目的进度,将会延长软件开发的周期,

不利于软件工程的顺利进行。(3)沟通能力差,风险意识淡薄企业人力资源在软件工程管理中有着非常重要的作用,经验丰富的管理人员能够保证项目顺利完成,为企业创造利润,相反,则会损害企业的利益。若管理人员提前做好相关的沟通与事先的规划,则会减少劳动力的浪费,最终使得软件工程顺利完成。风险管理在工程管理中的作用至关重要,部分项目经理并未认识到风险管理的作用,对风险管理认识不足,并未引起其足够重视,一旦发生安全事故,就会造成一些不可预测的管理风险,给企业带来严重的经济损失。随着软件项目的规模扩大,工程管理工作也随之变得复杂,在该种情况下,若出现一些突发问题,将会给管理工作带来相当大的难度。(4)面对突发情况的能力有限在软件工程实际操作中,难免会发生一些突发事件,并且会伴随着整个开发过程,这将会给软件项目开发工作带来极大的影响,严重的会使得整个项目进度停滞不前。经过长期的调查发现,软件企业部分项目团队应对突发事件的能力有限,缺乏随机应变的能力,不能够及时提出结婚措施,延误了维护的最佳时机,限制管理工作的运行。 2软件工程管理创新策略 2.1实施精细化管理。为了提高软件项目管理工作的效率,保证工程产品的质量,促进整体人员的素质,可以从软件工程的不同阶段着手,并对软件工程的各子项目做到精细化管理,其一,相关部门部门的管理者需要对管理工作的每个阶段有所了解,只有做到充分了解才可以进行合理安排,在软件工程设计阶段主要包括技术开发、测试阶段、界面设计等发展阶段;其二,要了解软件组件的各个职能部门与软件管理部门,并知道该部门的职能

软件工程管理

幻灯片1 第13章软件项目管理 13.1 估算软件规模 13.2 工作量估算 13.3 进度计划 13.4 人员组织 13.5 质量保证 13.6 软件配置管理 13.7 能力成熟度模型 幻灯片2 ●所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达 到既定目标的过程。 软件工程计划 控制度量软件规模估算工作量 进度计划 风险管理 质量保证 配置管理 组织 明确软件开发的目标 提供组织机构和资源配置方面的保证 保证开发目标的实现 技术 管理 幻灯片3 ●软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。 ●软件项目管理过程从一组项目计划活动开始,而制定计划的基础是工作量估算和完成期 限估算。 ●为了估算项目的工作量和完成期限,首先需要估算软件的规模。 幻灯片4 13.1 估算软件规模 ●13.1.1 代码行技术 ●代码行技术是比较简单的定量估算软件规模的方法。 ●依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数。当有以往开发类似产品的历史数据可供参考时,估计出的数值还是比较准确的。把实现每个功能所需要的源程序行数累加起来,就可得到实现整个软件所需要的源程序行数。 幻灯片5

● 估算方法: ● 由多名有经验的软件工程师分别做出估计。 ● 每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m), ● 分别算出这3种规模的平均值、和之后,再用下式计算程序规模的估计值: ● 单位: LOC 或KLOC 。 6 4b m a L ++= 幻灯片6 ● 代码行技术的优点: ● 代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数; ● 有大量参考文献和数据 。 ● 代码行技术的缺点: ● 源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理; ● 用不同语言实现同一个软件所需要的代码行数并不相同; 不适用于非过程性语言。 幻灯片7 13.1.2 功能点技术 ● 功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。 ● 这种方法用功能点(FP)为单位度量软件规模。 幻灯片8 ● 1. 信息域特性 ● 功能点技术定义了信息域的5个特性: ● 输入项数(Inp):用户向软件输入的项数,这些输入给软件提供面向应用的数据。 ● 输出项数(Out):软件向用户输出的项数,它们向用户提供面向应用的信息, ● 查询数(Inq):查询即是一次联机输入,它导致软件以联机输出方式产生某种即时响应。 ● 主文件数(Maf):逻辑主文件的数目。 外部接口数(Inf):机器可读的全部接口的数量,用这些接口把信息传送给另一个系统。 幻灯片9 ● 每个特征根据其复杂程度分配一个功能点数,即信息域特征系数a1,a2,a3,a4,a5, 见表13.1。

软件工程质量管理体系说明(模版)

软件工程质量管理体系说明 我公司已软件工程要求建立了质量管理体系,严格控制产品的设计和开发的策划和过程,确保新产品满足市场要求。 一:职责分工 研发总监 主管公司技术、产品发展方向的调查研究,确定新产品的开发项目和新技术的研究方向;主管新产品的确定、设计、开发、评审、验证、确认等过程;主管新产品市场推广的技术支持和新产品的试运行。 研发部 组织实施新产品开发之前的可行性调研; 参与对立项报告的评审; 实施新产品的形态设计,编制新产品研发计划; 负责根据公司技术发展战略开展技术研究和新产品开发及老产品的改造、升级工作; 负责针对每个开发的软件产品进行全方位的测试,保障产品质量; 参与对产品开发过程的阶段性评审和开发结束时的验收。 负责软件技术的积累和成长,产品的软件开发、测试,产品软件的技术支持等,对软件的质量和稳定性负责,部门成员参加具体的产品的软件开发过程。 二、开发要求 1、确立设计开发项目根据市场调查、技术发展或市场需要提出新产品立项或重大改进需求的由指定专人进行可行性调研,编写《立项报告》,申请立项;根据立项申请,由研发总监组织相关人员(必要时聘请专家)进行评审并对结果进行记录。 2、设计开发的策划由研发部成立专门的项目小组对已立项的新产品编制《设计开发需求》,然后开始系统设计,以此作为项目组成员进行设计开发活动的依据。应阐明设计项目的输入和输出要求、设计的进度要求、人工预计、任务描述、设计验收的时机等活动的安排,并规定实施这些活动的职责; 研发部在系统设计完成时形成设计文档,由项目小组进行内部评审,形成记录。然后开始进行程序代码开发;项目负责人的选定要求其具有相当的能力和经验,项目组成员的选定也要求遵循资源优化的原则,有利于提高效率,避开矛盾,使资源得到合理的配置;项

软件工程Strategy策略模式

strategy 策略行为型设计模式 摘要: Strategy是属于设计模式中对象行为型模式,主要定义一系列的算法,把这些算法一个个封装成单独的类,并且使这些类可以相互替换,以达到能够使得算法的变化可独立于使用它的客户的目的。 关键字: 设计模式,定义算法,封装 引言: Strategy应用比较广泛,比如,公司经营业务变化图,可能有两种实现方式,一种是线条曲线,另一种是框图(bar),这两种算法可以使用Strategy实现。还有一些使用如:Context,印刷图书,Strategy,使用某种技术的印刷设备,Algorithem,具体的印刷技术,如喷墨,胶印,IStrategy,印刷 正文: 行为型模式: 1.职责链模式 Chain of Responsibility 2.命令模式 Command 3.解释器模式 Interpreter 4.迭代器模式 Iterator 5.中介者模式 Mediator 6.备忘录模式 Memento 7.观察者模式 Observer 8.状态模式 State 9.策略模式 Strategy 10.模板方法模式 Template Method 11.访问者模式 Visitor 1.职责链模式Chain of Responsibility 职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 “击鼓传球”游戏就是职责链模式的一种应用,鼓起,球从人手中传递,鼓落,拿球的人要做某件事。

命令模式Command 命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;可以对请求排队或记录请求日志,以及支持可撤销的操作。命令模式是对“行为的请求者”和“行为的实现者”进行了解耦。Invoker对象可以在不同的时刻指定、排列、执行操作,支持取消、重做的操作,支持事务,记录操作的日志. 解释器模式Interpreter 解释器模式,给定一个语言,定义它的问法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 一个特定类型的复杂问题频繁出现,这时我们可以用解释器模式将负责对象表述为一个简单的对象,再进行处理。正则表达式就是一个非常好的例子。

工程管理信息化

工程管理的信息化建设与发展 一、工程管理的现状分析 我国工程建设行业由于历史的发展制约,以及其自身的复杂性, 信息化建设进程较为缓慢。而在国外的一些大型工程企业中, 计算机技术已经广泛地应用工程管理的各个阶段, 包括成本控制、进度控制、合同管理、文档管理和监理控制等方面。 回顾国内工程建设行业的发展, 不难看出, 存在着这样或那样的问题。就工程管理而言, 推进信息化要克服的障碍包括: 管理流程规范化; 人员素质的提高; 管理模式的创新; 从应用出发, 信息化建设的最终目的不是追求高技术, 而是为了追求高效率、高质量和高效益。目前工程行业内大多使用了计算机, 但往往是报表和文字处理等工作, 还有的也仅是单项业务和单机版的工具软件, 这些信息的“孤岛”, 远远没有发挥出新技术的优势, 缺乏基于项目的业务信息交流。 工程管理侧重的是传统的管理模式, 部分的信息化手段的简单的堆积并不能优化现有的管理方法, 随着国外大型承包公司和工程公司的市场进入, 对工程管理模式将会有较大的冲击, 必须加快工程管理模式的转变, 以尽早地适应市场的需求。根据调查, 计算机技术在财务管理、工程概预算和项目管理等几项单一的应用外, 尚没有形成集成化的管理与应用。 工程建设行业在不断完善管理体系和工作流程的调整过程中, 对计算机信息化处理的需求已经越来越迫切。例如政府的监督、业主的监控、施工单位的管理、监理的过程管理等都需要最为快捷的一手信息, 能够在一个集成化的系统中获得大量的业务信息, 如项目投资信息、设备材料信息、合作信息等, 与相关业务单位进行在线合作、业务交流、数据传输等, 远程管理工程的质量、进度、材料、设备环节等等。工程管理信息化系统所带来的就是以业务数据为中心, 全面提升企业的综合管理水平, 实现管理创新, 提高运作效率。 当前, 其他行业主流企业电子商务已经发展到通过内部ERP 系统实现企业间商务自动流转的新阶段,如果再不加紧实施工程建设管理的信息化建设, 就将面临着被主流市场摒弃的威胁。 二、信息化的建设进程 随着我国加入W TO 和经济全球化一体化的进程, 我国数以万计的企业正面临着前所未有的挑战, 为适应激烈的市场竞争环境, 必须不断提升企业的核心能力, 才能赢得企业新的生存和发展空间。本着实事求是的原则, 从企业的应用和需求入手, 需要吸收国内外先进的生产管理理念, 以改善企业传统的经营管理模式。围绕着降低成本、提高效率、开拓市场和服务客户为宗旨的信息技术的应用成为企业发展的必然选择。信息与物质、能源正成为支撑当今社会发展的三大重要资源。信息资源的开发和信息管理成为现代企业发展的重要战略手段。 信息化就是指利用先进的信息技术, 实现对信息资源的开发和利用, 以达到工业社会向信息社会的转化过程。信息化的本质就是要为企业建立一套适应外界多变化的快速反应机制, 它的直接的效果是提高企业的管理效率和水平, 间接效果则是潜在的经济和社会的效益。 信息化应该是以网络技术、通信技术等高科技为依托, 以信息资源的开发利用为核心,

相关文档
最新文档