(1)保存和管理所有软件配置(包括各种文档、源程序清单、数据和各种磁介质资料);
! O! o: c7 @. S6 U& \& h/ h(2)协助收集和整理软件生产率数据;0 U8 J4 K6 z, L8 A4 X, J
(3)对可修改的模块分类及编写索引;& O8 g0 K. H. p- S
(4)协助小组进行调查、评价和准备文档等。主程序员小组的主要目标是发挥集体力量。因引,小组要培养从“全局”观点出发进行程序设计,把“我的”程序变为“我们的”程序;帮助消除软件的个人属性,小组可以鼓励更加彻底的评审,并在共同的工作中增加学习,从而改善软件质量。在本章的第3节中,我们曾讨论过人们在工作中有一个需要交流的问题。当采用主程序员小组这种形式时,必须会增加交换意见所需的工作量,这似乎不利于提高软件开发的生产率。然而,不管怎样组织,在软件整个开发过程的总工作量的相当一部分总是要花费在交换意见方面(如计划、分析和评审等)。虽然,小组的形式增加了内部交换意见的工作量,但是这是有组织的评审,必将减少在设计和编码中引入的错误。结果是测试工作量减少了,从而使小组有更高的生产率。当然,小组中技术人员的数量不宜过多,一般建议2~5人为好。# |, F- \/ J* ?1 q$ S* p" c
(五) 软件计划
2 Z: Q* o5 c* a+ V: h0 H软件开发过程的每一步都要生产出可交付的文档,这些文档可以用来进行评审和作为下一步工作的基础。软件计划是一份比较简短精炼的文件。它应该发给有关部门,其中包括:) V: Y* Y+ D, R; _9 q7 j$ r) V
(1)把该项目所确定的工作范围和所需的资源告诉软件主管部门、技术人员和该项目的需求者;: O; p$ K0 c* {; a" i3 J
(2)有关该项目的成本估算和进度安排,应告诉软件主管部门,以便他们进行评审;# t6 Z. f' Y/ ]1 x+ K
(3)还要发给与该项目开发有关的所有人员,给他们提供有关该项目开发的总办法。软件计划应包含以下内容:
0 q6 N/ Q0 V1 ]9 R1.工作范围* y9 h" R9 R* x
(1)项目目标(2)主要功能(3)其他特性(4)开发情况
( l3 g- U+ Z$ E5 j3 {* E6 d2.资源
9 _6 Z1 U3 Q( f(1)人员资源(2)硬件资源(3)软件资源(4)可利用的窗口
& F" H' Q5 j+ n2 X+ d( B+ n" l3.成本估算/ l5 v7 X% F! D4 \5 N
4.进度安排3 X$ x9 D. Q8 M A5 E
六、软件开发工具与环境
, o c& A& A z2 T$ b# H3 L3 _" `目前,软件开发工具种类繁多,按功能可将软件开发工具分为8类:
$ r/ G3 \- X) _3 i(1)业务系统规划工具
# Z+ h( a+ p! Q通过将企业的策略性信息需求模型化,这类工具提供一个可导出特定信息系统的“原模型”,这样可使业务信息运行于企业的各个部门。3 {0 d/ d. s; m: B6 Y, J( D. I
(2)项目管理工具3 F {! t- s4 a3 \! @
借助这类工具,项目管理者可以有效地估算软件项目所需的工作量、成本和研制周期等,可以定义一个功能分解结构WBS,并制定可行的项目开发计划;基于需求跟踪项目的开发情况;可采集度量数据,以此评价软件开发效率和产品质量。由此可见,这类工具又可详细分为项目计划工具、需求跟踪工具及度量和管理工具等。
7 M: F9 b0 d3 q5 W1 @0 k# N(3)支持工具
9 z- F& e- ^ p7 S9 w" s3 h这类工具用于支持软件工程过程,具体包括文档编制工具、系统软件工具、质量保证工具、数据库管理工具和软件配置管理工具等。
/ n: ~- @% K, W. _* A; Z3 G* C(4)分析和设计工具( |. _0 Q: k. f$ @, X$ J
这类工具是用于建立待开发系统的模型,并评价模型的质量,通过对模型进行一致性和有效性检查,保证分析与设计的完整性。它除包括支持某种开发方法的工具外,还包括基于规则体系的分析与设计机,这种分析与设计机是90年代的期望产品,它可使工具适用于各种分析和设计方法。: o5 o2 Z" W: e
(5)编程工具
, m1 k$ D C/ B6 }# H+ o) ?- C这类工具包括用于支持大多数传统编程语言的编译器、编辑器和调试器等,从工具输出来看,4GL也属于这一类。1 `+ P8 v2 \& q& h8 F: x. L, E
(6)测试与分析工具 常用的测试与分析工具包括静态分析工具和动态测试工具。
9 s# T5 x8 N$ N1 j9 v" y6 C$ x: j(7)原型工具 作为除瀑布式开发模式以外的另一主要开发模式是原型开发模式,因其运用的灵活性和用户需求反应的快捷性- W% {9 ^2 K8 `3 A/ Y
愈来愈受到重视,特别是随着软件构件重用研究的深入,更增强了这种开发模式的实用价值。但原型的构造离不开经验信息,所以支持原型开发模式的原型工具的发展日趋专用化,诸如用于用户界面设计的原型工具可利用图形包快速构造出应用系统的界面,供用户评价,以确定最终产品的界面形式。( v( e; g8 ]( A- |
完成,包括当运行发现问题时,定位到相应的软件开发基线;软件配置不完备时由源程序到分析与设计模型的逆转换工具等。软件开发环境的分类方法很多。这里介绍三种:$ ^9 t( C2 A) o: {4 j
(1)按解决的问题分类;
9 U$ a- w8 y3 t5 G4 [ N(2)按现有的软件开发环境的演变趋向分类;- Y& b7 W) B* T9 b% l
(3)按集成化程度分类。 |