`
fullfocus
  • 浏览: 100691 次
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

软件工程-实践者的研究方法-内容浓缩--厦大软院

    博客分类:
  • se
阅读更多

期末考了,我们班其他同学整理的一些资料,(自己有作过一些修改),对复习大有好处哇。。。感谢ING......

内容很概括,但都说出了最重要的部分,拿出来和大家分享。。。。^_^

_______________________________________________________________

                                                        问答题<o:p></o:p>

1.软件产品的特征是什么?<o:p></o:p>

          软件是与计算机系统运行和操作有关的程序、规程、规则及任何与之有关的文档和数据。软件产品的特征是:<o:p></o:p>

         软件是被开发和设计的,而不是传统意义 上被制造的;<o:p></o:p>

         软件是逻辑产品:它没有明显的物理形态,无需对实体进行制造和加工,但需要设计、实施和维护的生产过程。软件一旦开发成功,就可以大量进行复制。软件不会磨损”,不过它会退化;虽然软件产业正在向基于构件的组装前进,大多数软件仍是定制的;<o:p></o:p>

2.什么是软件危机?其产生的原因是什么?<o:p></o:p>

          软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:用户对开发出的软件很难满意。软件产品的质量往往靠不住。一般软件很难维护。软件生产效率很低。软件开发成本越来越大。软件成本与开发进度难以估计。软件技术的发展远远满足不了计算机应用的普及与深入的需要。

          造成软件危机的主要原因:  用户的需求描述不精确;软件人员对用户需求的理解与用户的原意不一致;对大型的软件项目缺乏有力的组织和管理;  容易产生疏漏和错误;  缺乏有力的方法学和工具的支持,过分依赖开发人员的技巧和经验; 软件的复杂性和人类智力的局限性。

3. 软件过程是为开发高质量软件所需要完成的任务的框架.

软件工程是一种层次化的技术。支持软件工程的根基就在于对质量的关注。软件工程的基础是过程层。软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够合理和及时地开发。过程定义了一组关键过程区域的框架。软件工程方法为软件开发提供了 如何做的技术,软件工具为软件工程方法提供了自动的或半自动的软件支撑环境<o:p></o:p>

<o:p> </o:p>

4. 软件生存期模型(也称软件开发模型、软件过程模型、软件工程范型)是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。<o:p></o:p>

<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_s1026" style="WIDTH: 237.6pt; HEIGHT: 217.7pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:title=""></v:imagedata><w:wrap type="none"></w:wrap><w:anchorlock></w:anchorlock></v:shape>

线性顺序模型<o:p></o:p>

优点:1、它提供了一个摸板,这个摸板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导。2、虽然有不少缺陷但比在软件开发中随意的状态要好得多。

缺点:开发初期需要清楚全部需求;开发周期长、风险大。<o:p></o:p>

原型实现模型<o:p></o:p>

          初始阶段人们对软件的需求认识常常不够清晰,第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求。<o:p></o:p>

          由客户评估并进一步精化待开发软件的需求。<o:p></o:p>

          逐步调整原型使其满足客户的需求,这个过程是迭代的。<o:p></o:p>

          优点1、如果客户和开发者达成一致协议:原型被建造仅为了定义需求,之后就被抛弃或者部分抛弃, 那么这种模型很合适了。2、迷惑客户抢占市场,这是一个首选的模型。

          瀑布方法假设当线性序列完成之后就能够交付一个完善的系统。<o:p></o:p>

          原型实现模型设计成帮助客户(或开发者)理解需求,它并不是交付一个最终的产品。<o:p></o:p>

          演化模型是迭代的,它的特征是使软件工程师逐渐地开发逐步完善的软件版本。

增量模型<o:p></o:p>

增量模型融合了线性顺序模型的基本成分(重复地应用)和原型实现的迭代特征。<o:p></o:p>

每一个线性序列产生软件的一个可发布的增量。第一个增量往往是核心的产品。客户对每一个增量的使用和评估,都做为下一个增量发布的新特征和功能<o:p></o:p>

优点不能在设定的期限内完成产品时可以先开发核心产品,先发布部分功能给用户,起镇静剂的作用。

螺旋模型<o:p></o:p>

与增量模型差不多,但是螺旋模型被划分为若干框架活动,也称为任务区域<o:p></o:p>

         优点:1、对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险增加了风险分析,需要相当的风险分析评估的专门技术,且成功依赖于这种技术。当没有发现,就惨了。<o:p></o:p>

没有最有效的,只有最适合的,只能根据具体的项目特点和自身人力物力等资源情况来选择合适的工程范型,才能发挥项目范型的作用。<o:p></o:p>

<o:p> </o:p>

第四章  软件过程和项目的度量<o:p></o:p>

量化是管理的一个重要手段和基础。只有通过量化,才能深刻了解所研究的对象。软件度量是对收集到的原始数据,采用一些数学函数来计算,以测量过程、项目、产品的性能。度量方法分为:直接度量(代码行)和间接度量(功能点);<o:p></o:p>

度量范围分为:过程度量(改进过程)和项目度量。<o:p></o:p>

<o:p> </o:p>

功能点:<o:p></o:p>

面向功能度量用一种称为功能点的测量。<o:p></o:p>

功能点是基于软件信息领域的可计算的(直接的)测量及软件复杂性的评估而导出的。<o:p></o:p>

     生产率=功能点数(或千代码行数)/每人月<o:p></o:p>

     成本=总费用/功能点数(或千代码行数)<o:p></o:p>

<o:p> </o:p>

一些概念:<o:p></o:p>

检查点(Check Point): 指在规定的时间间隔内对项目进行的检查与复审工作,通过比较实际进展与计划进度的差距,并根据差距进行调整。<o:p></o:p>

里程碑(Mile Stone): 完成阶段性工作的标志,往往是一些重要活动的完工,或重要文档的交付,或阶段评审的通过。<o:p></o:p>

基线(Base Line): 指一个(或一组)配置项在项目生命期的不同时间点上通过正式评审而进入正式受控的一种状态。基线其实是一些重要的里程碑。基线一旦建立后,以后的任何更改都需要受到控制。<o:p></o:p>

<o:p> </o:p>

第五章 软件项目计划<o:p></o:p>

工作量:用PM来度量,接着计算LOCFP的期望值 EE a4mb)/6 <o:p></o:p>

成本:元。<o:p></o:p>

COCOMO模型构造性成本模型),是一种自顶向下项目成本估算模型,估算公式为:<o:p></o:p>

E=A(KDSI)b  E:开发成本(PMMM)DSI:源指令条数,不包括注释,KDSI=1000DSI<o:p></o:p>

TDEV(度量单位为月)表示开发进度<o:p></o:p>

初级COCOMO模型是一个静态单变量模型,它用源代码行数(LOC)为自变量的(经验)函数来计算软件开发工作量。复杂度:组织型(小型),半独立型(中等),嵌入型<o:p></o:p>

<o:p> </o:p>

7 项目进度安排与跟踪<o:p></o:p>

项目管理者的目标是定义所有项目任务,识别关键任务,然后跟踪关键任务的进展。管理者必须建立一个具有一定详细程度的进度表,使得项目管理者能够监督进度,并控制整个项目。<o:p></o:p>

进度安排的准确程度常常比成本估算的准确程度更重要。但如果进度安排落空,会导致市场机会丧失,用户不满意,其损失将更大。 <o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

定义任务网络

多个开发活动和任务并行进行的可能性,计划者必须确定任务之间的依赖关系,

应该注意那些位于关键路径之上的任务,为了保证整个项目的如期完成,就必须保证这些任务能够如期完成.

任务网络是一个项目的任务流程的图形表示。输入任务序列和依赖关系

     网络图和甘特图是项目时间管理中常用的两种图示。

     利用网络图和甘特图,可以清楚地表示出项目中所有活动的先后顺序、依赖关系以及每个活动的持续时间。条形图(甘特图)描述了由谁具体负责某个模块及该模块的开始时间和结束时间;

     一般地,把网络图中最长的路径称为项目的关键路径。

      找出项目关键路径的意义在于,关键路径上的所有活动在项目中持续时间最长。如果要压缩整个项目的执行时间,那么,就必须首先缩短关键路径上某个活动的持续时间。当改变了关键路径的持续时间后,网络图中其他的路径有可能会变成新的关键路径。关键路径上的每个任务出现延迟都会导致整个项目的延迟,而不在关键路径上的活动,则存在一定的可延迟时间,但超出许可范围后,也会导致项目的延迟.

<o:p> </o:p>

工作分解结构(Work Breakdown StructureWBS)是项目范围管理中常用的范围分析技术之一。

编制工作分解结构的主要目的是将项目的可交付成果分解成较小的、更易管理的单元,直到每个单元的可交付成果足够具体,易于管理,并足以支持未来的项目活动(如计划编制、执行、控制和收尾等)。并依据工作任务的划分制定详细的进度和费用计划

关键路径(CPM):任何项目都会有一条总的关键路径。关键路径是为确保项目按所需日期完成而必须密切跟踪的路径<o:p></o:p>

<o:p> </o:p>

挣值分析是项目费用管理中常用的一种费用控制方法。

挣值(Earned Value,也译为盈余值)可以较为客观地显示出项目计划工作量和实际工作量之间的偏差,确定项目费用是否按计划执行。

计划工作预算成本,记作BCWS我们把BCWS曲线作为费用控制和分析的基准。

我们定期记录项目到当前时间为止的总费用、我们把后一费用称为己完成工作实际成本,记作ACWP

BCWS曲线和ACWP曲线的偏离反映了项目预算费用和实际费用的偏差。但这一偏差不能完全说明项目的费用和进展情况。(不知道实际完成的工作量)<o:p></o:p>

找出在项目预算中,要完成这些工作量,需要多少费用。已完成工作预算成本通常被记为BCWPEV,这个数值也就是我们在前面所说的挣值(盈余值)了。(我实际中完成了这么多,按照预算我需要多少费用呢???但是实际是多少呢?)

<o:p> </o:p>

项目的费用偏差CVBCWPACWP

  费用偏差考虑到了工作量的因素,客观地反映了项目在某一时刻预算费用与实际费用的偏差情况。费用偏差为正,表示项目目前的费用比较节省,在预算之内;费用偏差为负,表明项目在费用控制上超出了预算。

     项目的进度偏差SVBCWPBCWS (为负,则有所延误,为正,提前)<o:p></o:p>

     费用执行情况指数 CPIBCWP/ACWP <o:p></o:p>

进度执行情况指数SPIBCWP/BCWS

     预测完工费用=总预算费用/CPI<o:p></o:p>

利用挣值分析法,可以在项目的执行过程中随时监控项目的实际费用是否存在节约或超支的情况,也可以预测项目完工时的总费用。根据挣值分析的结果,可以适时调整项目的费用和进度计划,以保证项目的总费用不超出预算。<o:p></o:p>

<o:p> </o:p>

9  软件配置管理<o:p></o:p>

软件配置管理

分享到:
评论
5 楼 dongbin 2006-12-27  
useless. 这就是大学
4 楼 CrazyCoder 2006-12-27  
够理论。:)
3 楼 Godlikeme 2006-12-26  
还是挺有意思的,温故而知新。
2 楼 fullfocus 2006-12-26  
呵呵,这个就是了。。。^_^
不过几个知识点还是具有普遍意义的
1 楼 lighter 2006-12-26  
纯粹是理论的东西;
看起来有点是大学考试前,老师讲重点,学生画啊画,然后学生回到下边整理一下,看几天去考试,考试试题差不多和资料一个模板的;考完了,过了不到一个月,什么都忘记了...

相关推荐

Global site tag (gtag.js) - Google Analytics