第一篇:软件项目管理面试题
软件项目管理面试题
1.范围、时间,成本,这三项中哪些是可以由客户控制的?
范围、时间、成本,是项目管理中常说的三角关系。任何一方改变都可能牵扯到其他两方的变动。项目管理的本质,就是在保证质量的前提下,寻求这三者之间的最佳平衡。因为客户是需求方和投资方,客户有权对这三者进行控制,当然客户主要控制范围,即提出他们的需求——项目要实现的功能特性,其次,客户也非常关心能交付的时间和所付出的成本。在满足客户的需求情况下,可以在时间、成本上和客户进行交流、谈判。从项目管理的角度看,最好固定其中一项,其他两项可以根据实际状况来调节保证项目质量。
2.谁该对项目中所要付出的一切做出估算?谁有权设置最后期限?
项目成功是团队协作的结果。在对项目进行估算的时候,需要由参与项目各个环节的人进行符合实际的估算,最后汇总起来进行综合分析计算,获得项目总的估算结果。
项目的最后期限设置除了客户定死最后交付时间,其他的情况都是根据项目的进度估算结果而进行符合实际的计划得出的。
3.减少交付的次数,或是减少每个每个交付中的工作量,你喜欢哪种做法?根据项目的类型和项目进行中的实际情况来决定,如果项目是规模比较大,时间长的,那么就应增加交付次数或者减少每个每个交付中的工作量,以便及时考察项目进展,保证项目进度。例如,一个项目按计划进行到第一个里程碑发现项目进度明显落后,而下一个检查点(也就是交付的工作量)距离还很长管理层需要及时了解其进展,那么交付的次数的就要根据现在的时间状况来增加。反过来,如果这个项目的进度非常好,甚至超前,而下一个检查点(也就是交付的工作量)距离还很短,我们就可以减少交付次数。
在传统的软件项目中,开发周期比较长,往往减少交付的次数,更好地控制质量;而现在,有一部分公司比较倾向于敏捷方法,喜欢减少每个交付中的工作量,交付周期只有几周时间(最短的周期,可能是一周),拥抱变化,更好地、更及时地满足用户的需求。而对互联网上的 web应用软件开发,“减少每个每个交付中的工作量”是一个比较好的策略,力求及时获得用户的反馈,将用户的需
求及时融入新的版本,及时发布出去,赢得竞争市场。例如,在我新书《软件工程导论》中专门有一节讨论“永远的Beta”的软件工程思想。
4.你喜欢用哪种图来跟踪项目进度?
还是要根据项目的特点来决定,具体项目具体对待,当然,有时也不能由自己决定,而是取决于公司已有的工具和习惯。对于复杂、规模大的项目,可能要借助甘特图和网络图来分析和跟踪进度。简单、规模小的项目根据进度报告百分比和表格跟踪就可以了。
5.迭代和增量的区别在哪里?
软件开发不是一躇而就,其过程犹如雕琢一件工艺品,由无形到有形、由粗到细,很难一次就能开发出功能完善、强大的一个版本,而往往是分阶段进行,一个版本接一个版本的发布出去。软件开发分阶段可以通过两种模型来描述,即增量模型和迭代模型。
增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要功能,然后,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出一个强大的、功能完善的、高质量的、稳定的产品。
迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分,先将产品的整个框架都建立起来,在系统的初期,已经具有用户所需求的全部功能。然后,随着时间推进,不断细化已有的功能或完善已有功能,这个过程好像是一个迭代的过程。最终的目标是一致的,也是为了实现一个强大的、功能完善的、高质量的、稳定的产品。
举一个例子:假设现在要开发A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间.则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二次增量完成C,D功能;而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑.在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个的基础功能都已经完成.6.试着解释一下风险管理中用到的实践。风险该如何管理?
风险管理的实践很多,包括头脑风暴、风险列表(checklist)等。例如,人
们常采用十大风险清单:在项目进行中,不时地更新和处理项目当前风险最高的前十项风险,以保证项目不脱离主轨道。因为项目中的风险大大小小会很多。十大风险清单就是抓住重要的风险及时处理,而又关系的小风险可能也就随之消失。从这里可以看出,风险也是动态的,需要经常地、及时地评估当前的风险,例如每周或每两周进行一次风险评估。
风险管理就是通过风险的识别、预测、估算和衡量、选择有效的方法和手段,对风险进行预防、避免、降低或者转移的管理过程。
7.你喜欢任务分解还是滚动式计划?
根据项目特点来定,一般会选用任务分解的计划,责任清楚,可控性更强。滚动式计划的灵活性比较强,适应性比较好,但容易引起大家对计划不够重视,计划能力降低,或者可控性会差些。有时会将这两种方法结合起来使用。
8.你需要哪些东西帮助你判断项目是否符合时间要求,在预算范围内运作?前提是这个项目的进度计划和成本计划是符合项目实际情况并不断随着项目的时间发展而滚动更新的。
确保收集的进度和花费的成本就真实可靠的。
在此时项目的范围没有影响到时间和成本的规划。
那么就可以根据项目时间与计划的内容进行对比来判断项目符合时间要求,在预算范围内运作。常用的方法有基线对比法和挣值法。
9.DSDM、Prince2、Scrum,这三者之间有哪些区别?
动态系统开发方法(Dynamic System Development method,DSDM)是众多敏捷开发方法中的一种,它倡导以业务为核心,快速而有效地进行系统开发。该方法的详细内容,可以参考:DSDM业务中心框架开发方法(第二版)。这种方法主要是在英国应用比较广泛。一般来说,敏捷方法适合于规模比较小、变化比较快(需求不够稳定)的项目,而对大规模软件,特别是在关键性、可靠性、安全性方面有很高要求的开发项目,则不适合。当然,可以在某些项目小组内实施;也是可以的。敏捷开发的方法很多,包括下面所说的 Scrum、自适应软件开发(Adaptive Software Development,ASD)、Crystal方法和特性驱动开发(Feature-Driven Development,FDD),可以参考《敏捷软件开发生态系统》。PRINCE2(PRojects IN Controlled Environments 2)为项目管理提供了一种结
构化的方法,这种方法最早是在1989年由英国政府计算机和电信中心(CCTA)开发的,作为英国政府IT项目管理的标准。PRINCE2如今日益流行,是英国项目管理的标准,它为管理项目提供清晰界定工作框架,介绍如何协调项目中的人和活动、如何设计和监督项目以及在项目发生变更的情况下如何调整的流程。每一个流程都详细标出关键的输入、输出和具体目标及要执行的活动,这为计划偏差提供了自发的控制。这种方法把项目划分为多个管理阶段,保证让所有资源得到有效的控制。依靠严格的监控,项目在控制和组织的方式下得到执行。Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。Scrum是一个包括了一系列实践和预定义角色的过程骨架,其主要角色包括同项目经理类似的Scrum主管角色——负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。在每一次冲刺(一般为15到30天周期),开发团队创建可用的、可随时推出的软件一个增量(小版本)。每一个冲刺所要实现的特性来自产品订单(product backlog),产品订单是按照优先级排列的工作需求。在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。
管理Scrum过程有很多实施方法,从白板上的即时贴到软件包。Scrum最大的好处是它非常容易学习,而且应用Scrum不需要太多的投入。方法的应用,同样由项目规模、业务特点(需求是否稳定)等决定,而且还受企业文化、流程和领导意识等决定。如果需求稳定、项目规模比较大或周期比较长,一般会选用 PRINCE2,相反,可能会选择DSDM或Scrum,后两者没有本质区别,只是具有不同的最佳实践。
正如有人评论,国内对Scrum还比较熟悉,对DSDM、PRINCE2等不够熟悉,应用不多。而业界最熟悉的是CMMI、RUP(IBM Rational Unify Process 统一过程)、XP(敏捷方法的极限编程extreme Programming)和MSF(Microsoft Solution Framework,微软公司软件开发解决方案框架),可参考:软件开发过程(CMMI/RUP/XP/MSF)是与非
10.如果客户想要的东西太多,你在范围和时间上怎样跟他达成一致呢?首先要向客户说明,如果在某个时间内去做不可能完成的工作,其结果必然是质量得不到保证,或者所化的成本过大。应该没有客户想做赔本的生意,每个
客户都会重视质量,而不愿意损害自己的利益。
然后,和客户一起,按需求重要性、紧急性等对需求进行分类,分为不同的等级,然后从优先级高的需求开始,来估算不同优先级类别的需求实现的工作量。设定几个不同的开发周期或交付时间,从而由用户作出选择,例如:
(1)只做优先级最高的那类需求,开发周期需要3个月;
(2)做优先级最高和优先级高的那两类需求,开发周期需要7个月;
(3)做优先级最高、高和中等的共3类需求,开发周期需要12个月;
(4)所有需求都实现,开发周期需要18个月
第二篇:项目管理面试题
1. 举例说明项目管理的概念和特点?
答:概念:现代项目管理理论认为:项目管理是运用各种相关的知识、技能、方法与工具,为满足或超越项目有关各方对项目的要求与期望,所开展的项目起始、计划、组织、控制和结束的管理。
特点:项目管理的普遍性、目的性、独特性、集成性、创新性、过程性。共六点
2. 项目管理包括什么?
答:1.项目范围管理.项目时间管理
3.项目成本管理
4.项目质量管理
5.项目集成管理
6.项目风险管理
7.项目沟通管理
8.项目组织管理
9.项目人力资源管理
10.项目采购管理
11.项目决策管理
3. 什么是WBS?他的作用体现在哪些方面?
答:WBS:工作分解结构(Work Breakdown Structure)。WBS的基本定义 :以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。
作用:(1)初期作用:明确项目任务
(2)项目计划时:帮助制定项目时间表WBS能帮助改进时间、成本和资源估计的准确度。
(3)WBS可视化有利于多方沟通
(4)明确划分和落实人员职责
(5)有利于全过程进度控制
因此,“做正确的事,正确地做事”是我们从事ERP实施的一句格言,WBS解决的是“做正确的事”问题,只有明确了做正确的事,正确地做事才有基础。所以,我们说WBS是ERP实施管理的重要基石。
第三篇:软件项目管理
软件项目经理所需的素质
许多人都以为项目经理总是与“理想与光荣”相伴的,其实作为一个有志于改进中国软件开发流程的项目经理来说,他们承担的更多的是“艰辛与痛苦”。
一个优秀的软件项目经理应该具备以下素质。
一、执着
可以这么说,在中国如果不执着是做不成任何事情的,因为在软件开发流程中推行各种规范和管理制度的时候,你可能遇到各种各样的阻力和障碍,如果没有应付挫折的思想和准备,你是很难推行成功的。要知道这样一个基本事实,项目管理成败的关键是:如果你不坚持,谁也不会坚持下去的。指望领导的扶持和群众的自觉是不可能的。只有坚定信念,努力打动别人,才能成功。
坚持到成功为止。只要决定上管理流程了,就不要后悔,唯有坚持,因为你拼命努力而实现了99%,你却不知,最后当你决定放弃的时候也许就是你要成功之时。要知道你准备放弃的时候可能正是对方也准备放弃之时,唯有坚持,你才能成功
二、亲和力
亲和力是指你和团队相互依赖,相互信任能力的大小。亲和力是你领导团队走向成功的基础,如果一个团队的向心力不够,各自为政,那么失败就会在身边陪伴你。要团队的每个成员都信任你,你必须要做到关心下属,主动与下属沟通,为下属争取合法权利等。关心下属就是在日常工作中对下属的工作状况,发展方向进行指导,避免其走弯路;在生活中也对其身体状况进行关心,促进身体和心理健康的恢复。
多找下属沟通是消除误会的润滑剂,同时也是了解下属内心真实想法唯一捷径。做项目经理的人,在某些事情上的处理的确会与人不同,也难以令人理解。这个时候只有多与下属沟通,逐步达成共识,争取大家的理解和支持。记住,没有下属的理解和支持,你永远无法实现项目管理的规范化。另外就是了解下属的真实想法,经常了解一下下属的真实想法有利于我们不断改进和调整流程,使生产流程更加符合本团队的实际。切记一点,做领导的一定要多尊重下属的想法,并且与之沟通,若一味等下属找自己,那么是一般下属与之水火不容要摊牌时,才会与你沟通,这样悔之晚矣。
为下属争取合法权利是项目经理的一项重要职责。敢负责任是项目经理基本素质,如果你不经常研究工作数据保障下属的合法权益时,你就很难让你的团队保持高效率。
三、品德高尚
“一撇一捺是个人,世世代代学做人。”在这个世界上最难做的就是做个品德高尚的人。试想一个思想猥亵的人很难取得成功,即使靠钻营取得也只是暂时的,他不可能取得长久的成功。只有品德高尚的人才能感染周围的人,使团队具有向心力,从成功走向成功。
人有三种,一种是仗势欺人,一种是持才压人,最后一种是以德服人。仗势欺人的人自持地位高而指三道四,自然是不可能团结人,更不可能获得成功;持才压人的人自持学识高而盛气凌人,或咄咄逼人。殊不知“闻到有先后,术业有专攻”,“尺有所长,寸有所短”,难以学到更高的知识,也就难以取得更大的成功。只有以德服人的人以自己的修养和品德感染人,勇于吃亏,乐于助人,以德报怨,只有这样才能使你对立面德人都不忍心伤害你,团结到一切可以团结到的人,拥有这样的环境,你怎么可能不成功。
勇于吃亏,首先要放下私心,如果一个人始终 围着自己转的人是不可能做到的。“人不为己,天诛地灭”是八十年代后出生的人心灵普遍反应;但是要记住人首先是社会中的人,如果脱离了社会,人恐怕已不会成其为人了。因此只有当你抛弃私心,主动为人,别人才会反过来支持你,帮助你。
乐于助人,是人类的一个良好品质,就象一首歌中所唱的“人字的结构就是相互支撑”。管理流程是不可能靠项目经理一个人维持的,必须要大家支持你。但是这却需要你多帮助别人,别人才会帮助你。不管团队成员发生什么事情,你要尽你所能去帮助他,这样团队才可能继续前进。
以德报怨,可能是人最难做到的。中国人就强调“人若犯我,我必犯人”,其实在这回中不会有真正的仇敌,大家明争暗斗的结果如果过20年后再去看的时候,保准一大半的人都会觉得不值得,许多人赌得就是一口气,将自己成功的希望给湮灭了。当你能用宽容喝善良对待你对立面的人的时候,还有什么东西能阻挡你成功?
“得道多助,失道寡助;多助之至,天下顺之,失道之至,亲戚叛之;以天下之所顺,攻亲戚之所叛;故君子有不战,战必胜矣。”
四、口才
良好的口才是项目经理打动项目成员的必备武器,当你拥有良好的口才将会使你无往不利。当年希特勒就是用他那天才般的口才征服了德国,使他的《我的奋斗》贯彻到每一个德国人的心中,从而成立了第三帝国。
要使自己的项目管理思想贯彻到每一个项目成员心中,就必须要做到以下的演讲原则:
1.根据项目成员的共同目标象他们制定演讲内容,只有让他们信服你才有意义;
2.调动听众的这种感官,诉之触觉、视觉、听觉,用黑板、姿势来辅助你的内容。
3.不断的总结效果,改进自己演讲宣传的接受度,如果效果不理想,尝试换一个方式来表达.调动听众的这种感官,诉之触觉、视觉、听觉,用黑板、姿势来辅助你的内容。
3.不断的总结效果,改进自己演讲宣传的接受度,如果效果不理想,尝试换一个方式来表达和描述。
4.让听众学以至用,只有他们积极反馈,才能更深入的听你的思想。
五、循序渐进
循序渐进,不急于求成是项目经理在项目管理中必需具备的品质,在中国CMM过程改进的热潮中,真正实现CMM管理的企业屈指可数,而以CMM改进过程实质性为企业带来质量提升和效益改进的公司更是寥落晨星。
为什么会出现这种情况?难道CMM真的不适应中国过情吗?不是,绝对不是。是这些企业的项目经理太心急,连CMM2还不知道怎么回事就直奔CMM3,他们忽视了事务发展的客观规律,凡事必须循序渐进。如果有一个企业在2年内通过了CMM4,我有十足的信心说,那是花钱买征;如果乐观一点,一个中小企业从CMM1走到CMM2大约要2年时间,大型企业只会更长,不会更短,因为他们需要在培训和沟通上付出更大的代价。
“循序渐进,循序渐进,再循序渐进。”这句巴斯德德经典名言同样适用于我们项目管理领域,他将逐步把我们带向成功。
六、持久求学
“书到用时方恨少,学至成时始知卑。”学无止境,我在生产实践中发现,整个项目管理过程改进就是“学习-培训-实施-发现问题-再学习”的循环过程,项目经理如果不学习将不能解决现实工作中出现的新问题,更不可能站在一个战略的角度来解决问题。
事实上,求学也不能没有目标,否则学到的知识太庞杂,而不能融会贯通,这样的知识对实际工作指导甚少,真正的知识是一个目标体系,严格按照流程来一步步的掌握我们所需要的知识。
最后,我总结一下中国项目经理所必需掌握的知识:
1.专业知识:数据结构、关系数据库、操作系统、软件工程、编译原理。(外国的项目经理可能不需要掌握)
2.管理知识:项目计划、项目配置管理、成本核算、风险预估、绩效考核。这是项目经理必须掌握的内容。
3.网络知识:服务器的架构、各种服务的配置。因为管理的大厦是基于软件的管理,没有一个服务管理的网络配合是不可以想象的。
4.“越过高峰,另一峰却又现”,这是中国项目经理在持续求学中会不停的挑战自我,向更高的山峰迈进。
七、敢负责任
一个人因为有责任才有生存的意义。一个人随着年龄的增长,责任感也会愈来愈重。成年时,法律也会赋予一些年少时没有的责任。同时地位逐渐提高,责任也会相对加重。
一个人惟有负责,才能产生做人的价值。所负责任愈大,价值就愈高。换句话说,有责任,生命才有意义。如果没有感受到自己该负的责任,即使年龄超过20岁,也不算是一个成年人。
因此,经理就是要负责任,如果不负责任就可以不要经理了!项目经理关系到一个项目的成败;对于公司他必须要承担及时汇报项目进度、成本核算和质量系数的责任,同时也必须保证项目组成员绩效考核,政策落实,预留人才储备等责任,是整个项目中责任最大的人,如果没有良好的心理素质和应对能力是无法担负责任的。
实际工作中项目经理主要要负责项目组的人员安排调度、工作分配、工作审核、工作跟踪、项目计划、项目汇报总结、成本核算、利润分配等职责。
八、以身作则
项目管理的一个重要工作就是定义各种规范和制定,但是这些规范和制度的执行除了靠项目经理的执着推行,口才宣传,力主培训、惩戒得当之外,关键还是在于项目经理的以身作则。如果项目经理自己都违反自己定义的条款的话,那么就别指望团队会自觉遵守这些规定。
作为一个管理者以身作则是最基本的素质,千万不要为自己违反规范和制度找各种借口,例如我我是公司只属考核,我因为某某更重要的事情而不得不违反。“只许周宫放火,不许百姓点灯”的话,是无法将规范和制度推入人心的。项目经理如果违反了规范,只有当众加重处罚,别无他法。
因此,鉴于规范制度的权威性主要还是靠项目经理自己,只有坚持以身作则,才能将自己优秀的管理思想贯穿下去,取得开发过程改进的成功。
九、要有威信
一个项目经理说话有没有人听,必须要靠威信,这种威信是靠自身的素质,而不是狐假虎威。靠高层领导的支持来强迫团队执行项目制度过程的话,是注定会失败的。因为团队成员不信任你,表面服从,实际消极怠工,就足以让流程实质瘫痪。
做事要有信用,说一不二,不能因为朋友关心就讲情面。公是公,私是私。平时可以稀稀拉拉,关键问题决不手软,不因为朋友关系妥协,这样才能树立威信,便于工作。
威信除了必要的威信之外,最主要的还是信用,项目经理在做事没有绝对把握的时候千万不要承诺,一旦承诺就无论如何一定要实现。否则,当实现不成功而丢失信用之后,再想让团队相信你,信任你就是非常困难的事情了。
十、善于总结
项目经理要善于总结,只有不断的总结才能不停的完善自己,成功的事情总结经验,失败的事情要总结教训,总结的过程就是不断改进的过程,这也是CMM规范所必需的素质。
总结
总结的过程要多吸取别人的意见,不要武断自己的结论。博人所长,综合起来才算趋于完美。这个原因有二:其一,项目经理不是孤立的一个人,而是必须融于团队之中,一个流程合不合理,不是由项目经理说了算,而是要由团队的成员说了算,注意倾听团队成员的真实感受,不断改进流程才能成功。中国的许多CMM改进失败,并不是项目经理知识能力不够,而是他们没有一起与团队总结,经多年经验,我们发现大多数规范,必须要有一套合理的软件支持才能成功,否则无论你的理想多先进,想靠程序员工作来提高过程质量的改进是不现实的。其二,“闻道有先后,术业有专攻”,项目经理不可能是全才,什么都懂。因此要和哪些与专攻方向不同的人一起总结。比如项目经理可能精通软件开发流程的改进,但是却不知道测试流程、网络管理流程、品质保证流程的改进,而这些流程又直接作用于软件开发流程。这个时候必须与测试人员、网管人员、质量保证人员共同探讨,找出一条切实可行的改进方案。
第四篇:浅谈软件项目管理范文
浅谈软件项目管理
1.软件项目管理的概念
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,通过计划、组织、控制等一系列活动,合理地配置和使用各种资源,对成本、人员、进度、质量、风险等进行分析和管理,以达到既定目标的过程。其根本目的是对软件开发的各个阶段进行管理,增强对软件开发的控制能力,提高软件开发质量。项目管理可以让一个项目获得高额的盈利也可以让一个项目损失惨重,而编码的影响力则相对小一些。软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。软件因其复杂性和难以度量,使软件项目管理较之其他项目管理而言有其特殊性。
2.软件企业管理国际标准
软件项目管理日趋成熟,并且已在软件业发达的欧美日及印度等国得到广泛应用,而在我国,由于大多数软件企业规模较小,生产方式依然是倚仗个人英雄主义的作坊式生产,软件开发缺乏严格的项目管理和质量保证体系。标准化、管理过程标准化、度量标准化、应用领域内业务的标准化,都是推动整个软件行业内、软件产业链上各个企业规范软件开发过程的前提基础和有力保障。目前,软件研发项目进行管理必须依据一定的标准,主要有ISO9000系列和能力成熟度模型(capabilitymaturity modeloISO9000系列和CMM的比较从背景上看,ISO9000系列国际标准是在总结了英国的国家标准基础之上产生的,因此,欧洲通过ISO9000认证的企业数量最多,约占全世界的一半以上。受此影响,相当多的欧洲软件企业选择了IS09001认证。CMM是由美国卡内基一梅隆大学的软件工程研究所(SEI)开发的软件成熟度模型,美国的软件企业更多的选择取得CMM等级证书。在形式上,CMM分为5个等级(第1级级别最低,第5级级别最高),与ISO9000审核后只有“通过”和“不通过”两个结论相比,CMM是一个动态的过程,企业在取得低级别证书后,可根据高级别的要求确定下一步改进的方向。从内容上看,IS09001和CMM都十分关注软件产品质量和过程改进。尤其是ISO9000:2000版标准增加持续改进、质量目标的量化等方面的要求后,在基本思路上和CMM更加接近。尽管ISO9001标准的一些要求在CMM中不存在,而CMM的一些要求在ISO90O1标准中也不存在,但两者之间的关系非常密切,都强调“该说的要说到,说到的要做到”。对每一个重要的过程应形成文件,包括指导书和说明,并检查交货质量水平。CMM强调持续改进,ISO9001的1994版标准主要说明的是“合格质量体系的最低可接受水平”(ISO9001的2000版标准也增加了持续改进的内容)。
对于企业来说,取得ISO9001认证并不意味着完全满足CMM某个等级的要求。表面上看,获得ISO9001标准的企业应有CMM第3至第4级的水平,但事
实上,有些获得CMM第1级的企业也获得了ISO9001证书,原因是ISO9001强调以顾客的要求为出发点,不同的顾客要求的质量水平也不同,而且各个审核员的水平也有些差异,取得ISO9001认证所代表的质量管理和质量保证能力的高低与审核员对标准的理解及自身水平的高低有很大的关系。
3.软件项目管理软件
项目管理技术的发展与计算机技术的发展密不可分,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。根据项目管理软件的功能和价格水平,大致可以划分为两个档次:一种是供专业项目管理人士使用的高档项目管理软件,这类软件功能强大,价格一般在2000美元以上,如Primavera公司的P3、Gores技术公司的Artemis、ABT公司的WorkBench、Welcom公司的OpenPlan等。另一类是低档项目管理软件,应用于一些中小型项目,这类软件虽功能不很齐全但价格较便宜,如TimeLine公司的TimeLine、Scitor公司的Pro—iectScheduler、Primavera公司的SureTrak、Microsoft公司的Project等。根据我国软件行业的现状,下面介绍目前软件开发进程中的一些有用的工具。
3.1项目计划工具MicrosoftProject2003是一个业界领先的项目管理应用软件,利用它可以发现新的、更有效率的方法来分配任务和资源、跟踪项目进程及互相沟通项目的状况直观的计划编制。在“项目指南”这种新的交互式工具的协助下,用户将逐步建立一个新的项目、管理任务和资源。全面的整合,在MicrosoftProjec和微软其他应用程序之间,用户可以进行更加紧密的整合和更为流畅的转换。更好的状况更新,在新Wizard的指导下管理项目,可以允许调整MicrosoftProject计算实际状况的方式。合理分配资源改进的搜索和过滤功能及新的图表可以为项目鉴别和分配合适的资源。增强的个性化功能,个性化的MicrosoftProject之所以能具有更大的弹性,是因为它具有一种新的基于XML的文件格式、一种可扩展的对象模式及更强的OLEDB提供者。
3.2软件开发管理工具美国Intersolv公司的PVCS,是世界知名的软件开发管理工具。它作为当今优秀的软件开发管理解决方案,可通过对软件开发过程中产生的变更进行追踪、组织、管理和控制,建立规范化的软件开发环境。PVCS是软件开发的基础结构,在软件开发过程中可以完善地管理软件系统中的多种版本自动创建完整的文档,保障软件的维护;全面记载系统开发的历史过程,包括谁作了修改、修改了什么、为什么修改;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化;管理需求分析等。
PVCS在以下几个方面给软件开发带来了益处:规范开发过程缩短开发所需的时间、减少开发成本:它能完整详细地记载开发历史过程,便于软件维护;同时通过排除开发中的错误、加强软件一致性和可重用性,以提高软件质量。当前的开发人员常常工作在含有众多开发工具的环境中,如:编辑器、语言、编译器、Debugger、数据库等。而在这样的环境中,PVCS这种跨平台开发管理工具带来的效益会十分明显。
3.3软件配置管理工具Rational公司推出的软件配置管理工具ClearCase是目前所有配置管理工具中功能较全面和使用最广泛的工具之一。它提供了全面的配置管理功能,包括版本控制、工作空间管理、建立管理和过程控制。版本控制ClearCase可对所有文件系统对象(包括文件、目录和链接)进行版本控制,同时还提供了先进的版本分支和归并功能,用于支持并行开发。
4结语
在软件项目管理活动中,既要研究技术层面的问题,也要仔细考虑认识层面的问题,成功的软件项目开发一定是两者相辅相成的结晶。现阶段,我国软件业的业内项目管理人员仍然更多关注于技术问题而忽视了认识问题,但对于成功的软件项目管理二者是缺一不可的,甚至后者在更高的层次上决定着一个软件项目的最终成败。运用项目管理软件来指导、管理软件开发,用软件能力成熟模型对软件质量进行管理,是科学可行的。
第五篇:软件工程师面试题
1.C#中,string str = null 与 string str ="",请尽量用文字说明区别
2.Override, Overload,的区别?
3.a=10,b=15,在不用第三方变量的前提下,把a,b的值互换
4.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
5.请编程实现一个冒泡排序算法?
6.描述以下几种连接方式,并加已说明(文字和SQL语句):
A:left outer join:
B:right outer join:
C:full outer join:
7.什么叫做SQL注入,如何防止?请举例说明。
8.有张订单表,需要实现它的编号,格式如下:201302010001(YYYYMMDD+4位流水号)等