终于有了间茅草棚

——我走时,会否有随风飘散的痕迹?

外面的风好大,雨也淅淅沥沥的。

世间种种的诱惑不惊不扰我清梦,山高路远不绝我追踪你绝美的笑容,登高一呼时才懂始终在为你心痛,俯首对花影摇动都是东风在捉弄

世间种种的迷惑都是因你而猜错,水光月光又交融描述这朗朗的夜空,生死到头的相从似狂花落叶般从容,当一切泯灭如梦就在远山被绝
随笔 - 40, 文章 - 2, 评论 - 257, 引用 - 3

导航

<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

留言簿(11)

随笔档案

文章档案

收藏夹

其它的我

友情连接

网页连接

搜索

最新评论

  • 1. re: 关于质数(素数)的算法
  • 1121=19*59
  • --李圆欢
  • 2. re: void *几用
  • 方法都不错
  • --员工生日礼物
  • 3. re: void *几用
  • to oshj:
    最近才悟道这个用法,没想到你都用了很多了。

    to brent:
    不是为了玩才玩,这里每种用法在特定的情况下,都有他相应的好处。不过,我是做为自己记录的,指不定什么时候就忘记了,还可以这么用。
    1. 可以使得头文件简单,而且出于实现保密的需要,还是很有用处的。
    2. 很多时候对象本身应该简洁,但往往应对不同的需要,通常需要数据对应。举个例子,比如玩家在哪个房间,在哪个房间最好不要直接记在玩家身上,用数据注入的方式,能够很快的获得该信息。
    3. 因为是做为库暴露头文件的,使用者并不关心void *的实际意义,而且能够加快编译速度。真正要关心时,就Graphics.h这个头文件是不够的,通常会需要了解整底层个实现,才能较好的扩充。
  • --清风雨
  • 4. re: void *几用
  • 还在玩C++语言,你这玩法, 又不是用在导弹导航上...
    别人看不懂的代码,都不是好代码,分数为0

    int sub(any) { any; return TRUE;}
    (void)sub(any);

  • --brent
  • 5. re: void *几用
  • 个人用3 的情况比较多
  • --oshj
  • 6. re: 简要记录sizeof和内存对齐
  • 很清楚,受教了
  • --rdeam
  • 7. re: 局部变量
  • 我不用ATL,一般都是用标准c++支持的和平台API。
    crt里的wcs和mbs转换的函数,ms的实现是不完整的,在它的实现代码里有一段说明;而且还要设置local,比较烦琐。
  • --清风雨
  • 8. re: 简单字符串转换
  • win下,atl中有CT2CA, CW2CA等一系列转换类。
    crt中有wcstombs和mbstowcs
  • --局部变量
  • 9. re: 一个奇怪但可能有用的缓存
  • vc资料站:http://www.vcmsdn.com/     对学习很有帮助的,可以上去

    看看,或加群46138350,里面有高手可以请教的。
  • --maggie
  • 10. #progma整理
  • #pragma整理
  • --hi_wyl
  • 11. re: hpho
  • 缓冲在一等程度上是临时性的,而且实际上如果保持std::vector的iterator下次使用,也会有问题。

    所以,这个问题也就是使用时不允许这样用。
  • --清风雨
  • 12. re: 一个奇怪但可能有用的缓存
  • 如果有指针引用着arrange()所调整的那块内存,那就乱了.
  • --hpho
  • 13. re: 一个奇怪但可能有用的缓存
  • 用std::string不就行了?
  • --金庆
  • 14. re: ZiDing
  • 鉴于你的建议,前段时间我看了下boost的内存对象池,没有过于深入,
    判断下来属于做法类似,性能应该相当,甚至可能我这个略好一点。

    因为编写测试是一件相当麻烦,而且要求也很高的事,而要全面又很难。

    boost的代码我看起来比较难读,维护、调试起来对我来说是一个大麻烦。所以,我一般不选择boost。
  • --清风雨
  • 15. re: 简单内存对象池
  • 和boost的对比过没有?
  • --ZiDing

阅读排行榜

评论排行榜

软件风险管理

这篇文章是我在找资料时找到的。随便抽看了几眼,顿感胸口欢快。所以,把原文抄袭过来,以后再看。

原文地址:http://www.sqlsky.com/soft-engineering/070801/15340/

[作者]:菩提树下的杨过 [来源]:互联网 [收录时间]:2007-8-1 20:15:42

  摘 要:介绍了项目风险管理的过程及常用的工具和方法,讨论了软件项目中经常面临的风险类型和经典的风险管理模型。

  关键词:项目管理;风险管理;风险管理模型

  引言

  软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。如果对项目进行风险管理,就可以最大限度的减少风险的发生。但是,目前国内的软件企业不太关心软件项目的风险管理,结果造成软件项目经常性的延期、超过预算,甚至失败。成功的项目管理一般都对项目风险进行了良好的管理。因此任何一个系统开发项目都应将风险管理作为软件项目管理的重要内容。

  在项目风险管理中,存在多种风险管理方法与工具,软件项目管理只有找出最适合自己的方法与工具并应用到风险管理中,才能尽量减少软件项目风险,促进项目的成功。

  项目风险管理

  项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的科学与艺术。项目风险管理的目标是使潜在机会或回报最大化,使潜在风险最小化。风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控,如图1所示。风险识别在项目的开始时就要进行,并在项目执行中不断进行。就是说,在项目的整个生命周期内,风险识别是一个连续的过程。

软件项目管理中的风险管理研究
图1 项目风险管理过程

  (1)风险识别:风险识别包括确定风险的来源,风险产生的条件,描述其风险特征和确定哪些风险事件有可能影响本项目。风险识别不是一次就可以完成的事,应当在项目的自始至终定期进行。

  (2)风险量化:涉及对风险及风险的相互作用的评估,是衡量风险概率和风险对项目目标影响程度的过程。风险量化的基本内容是确定那些事件需要制定应对措施。。

  (3)风险应对计划制定:针对风险量化的结果,为降低项目风险的负面效应制定风险应对策略和技术手段的过程。风险应对计划依据风险管理计划、风险排序、风险认知等依据,得出风险应对计划、剩余风险、次要风险以及为其它过程提供得依据。

  (4)风险监控:涉及整个项目管理过程中的风险进行应对。该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。

  每个步骤所使用的工具和方法详见表1:

  表1 风险管理过程中所使用的工具、方法

风险管理步骤 所使用的工具、方法
风险识别 头脑风暴法、面谈、Delphi法、核对表、SWOT技术
风险量化 风险因子计算、PERT估计、决策树分析、风险模拟
风险应对计划制定 回避、转移、缓和、接受
风险监控 核对表、定期项目评估、挣值分析

  软件项目中的风险管理

  1、软件项目中的风险

  软件项目的风险无非体现在以下四个方面:需求、技术、成本和进度。IT项目开发中常见的风险有如下几类:

  (1)需求风险

  ①需求已经成为项目基准,但需求还在继续变化;

  ②需求定义欠佳,而进一步的定义会扩展项目范畴;

  ③添加额外的需求;

  ④产品定义含混的部分比预期需要更多的时间;

  ⑤在做需求中客户参与不够;

  ⑥缺少有效的需求变化管理过程。

  (2)计划编制风险

  ①计划、资源和产品定义全凭客户或上层领导口头指令,并且不完全一致;

  ②计划是优化的,是"最佳状态",但计划不现实,只能算是"期望状态";

  ③计划基于使用特定的小组成员,而那个特定的小组成员其实指望不上;

  ④产品规模(代码行数、功能点、与前一产品规模的百分比)比估计的要大;

  ⑤完成目标日期提前,但没有相应地调整产品范围或可用资源;

  ⑥涉足不熟悉的产品领域,花费在设计和实现上的时间比预期的要多。

  (3)组织和管理风险

  ①仅由管理层或市场人员进行技术决策,导致计划进度缓慢,计划时间延长;

  ②低效的项目组结构降低生产率;

  ③管理层审查 决策的周期比预期的时间长;

  ④预算削减,打乱项目计划;

  ⑤管理层作出了打击项目组织积极性的决定;

  ⑥缺乏必要的规范,导致工作失误与重复工作;

  ⑦非技术的第三方的工作(预算批准、设备采购批准、法律方面的审查、安全保证等)时间比预期的延长。

  (4)人员风险

  ①作为先决条件的任务(如培训及其他项目)不能按时完成;

  ②开发人员和管理层之间关系不佳,导致决策缓慢,影响全局;

  ③缺乏激励措施,士气低下,降低了生产能力;

  ④某些人员需要更多的时间适应还不熟悉的软件工具和环境;

  ⑤项目后期加入新的开发人员,需进行培训并逐渐与现有成员沟通,从而使现有成员的工作效率降低;

  ⑥由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作;

  ⑦不适应工作的成员没有调离项目组,影响了项目组其他成员的积极性;

  ⑧没有找到项目急需的具有特定技能的人。

  (5)开发环境风险

  ①设施未及时到位;

  ②设施虽到位,但不配套,如没有电话、网线、办公用品等;

  ③设施拥挤、杂乱或者破损;

  ④开发工具未及时到位;

  ⑤开发工具不如期望的那样有效,开发人员需要时间创建工作环境或者切换新的工具;

  ⑥新的开发工具的学习期比预期的长,内容繁多。

  (6)客户风险

  ①客户对于最后交付的产品不满意,要求重新设计和重做;

  ②客户的意见未被采纳,造成产品最终无法满足用户要求,因而必须重做;

  ③客户对规划、原型和规格的审核 决策周期比预期的要长;

  ④客户没有或不能参与规划、原型和规格阶段的审核,导致需求不稳定和产品生产周期的变更;

  ⑤客户答复的时间(如回答或澄清与需求相关问题的时间)比预期长;

  ⑥客户提供的组件质量欠佳,导致额外的测试、设计和集成工作,以及额外的客户关系管理工作。

  (7)产品风险

  ①矫正质量低下的不可接受的产品,需要比预期更多的测试、设计和实现工作;

  ②开发额外的不需要的功能(镀金),延长了计划进度;

  ③严格要求与现有系统兼容,需要进行比预期更多的测试、设计和实现工作;

  ④要求与其他系统或不受本项目组控制的系统相连,导致无法预料的设计、实现和测试工作;

  ⑤在不熟悉或未经检验的软件和硬件环境中运行所产生的未预料到的问题;

  ⑥开发一种全新的模块将比预期花费更长的时间;

  ⑦依赖正在开发中的技术将延长计划进度。

  (8)设计和实现风险

  ①设计质量低下,导致重复设计;

  ②一些必要的功能无法使用现有的代码和库实现,开发人员必须使用新的库或者自行开发新的功能;

  ③代码和库质量低下,导致需要进行额外的测试,修正错误,或重新制作;

  ④过高估计了增强型工具对计划进度的节省量;

  ⑤分别开发的模块无法有效集成,需要重新设计或制作。

  (9)过程风险

  ①大量的纸面工作导致进程比预期的慢;

  ②前期的质量保证行为不真实,导致后期的重复工作;

  ③太不正规(缺乏对软件开发策略和标准的遵循),导致沟通不足,质量欠佳,甚至需重新开发;

  ④过于正规(教条地坚持软件开发策略和标准),导致过多耗时于无用的工作;

  ⑤向管理层撰写进程报告占用开发人员的时间比预期的多;

  ⑥风险管理粗心,导致未能发现重大的项目风险。

  2、软件项目风险管理模型

  针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型。主要的风险管理模型有:Boehm模型,CRM模型和SERIM模型。

  2.1 Barry Boehm模型

  模型:RE=P (UO)*L (UO)

  其中RE表示风险或者风险所造成的影响,P(UO)表示令人不满意的结果所发生的概率,L(UO)表示糟糕的结果会产生的破坏性的程度。Boehm思想的核心是10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。

  2.2 SEI的CRM(Continuous Risk Management)模型

  SEI CRM模型的风险管理原则是:不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。

  2.3 SERIM(Software Engineering Risk Model)模型

  SERIM从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。

  结束语

  软件项目管理从某种意义上讲,就是风险管理。我们尽量去定义明确不变的需求,以便进行计划并高效管理,但商业环境总是快速变化的,甚至是无序的变化。所以,软件企业在进行项目管理的过程中,必须采用适合自己的风险管理方法进行风险管理,以确保软件项目在规定的预算和期限内完成项目。

posted on 2007-10-14 12:19 终于有了间茅草棚 阅读(1255) 评论(0)  编辑 收藏

评论

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]