ippd能改电脑系统吗_ipad可以更换系统吗

普天信息技术研究院 (以下简称普天研究院CP) 是中国普天投资组建的中央研究院,是从事通信领域新产品研究与开发的高新技术企业。普天研究院主要从事信息通信系统与终端的研发与中试生产、信息网络软件系统的开发、大型信息网络工程的集成、新产品的市场培育,并向中国普天提供产业技术支撑。普天研究院于2002年通过ISO9001:2000质量体系认证,获得双证书;2006年成为国内首家、全球第15家通过CMMI5级(SE/SW/IPPD)评估的企业,2006年被认定为国家级企业技术中心。普天研究院设立了国家级博士后科研工作站,与国内著名学府联合培养和输出博士后人才。

从2002年起,CP开始了关于员工职业发展的思考和探索,并通过对“职位族理论”、“员工职位价值理论”、“员工职业生涯规划理论”、“员工激励理论”的深入研究,结合非生产型研发企业的特点,坚持以提高人才管理效益为中心,以强化人才管理职能为重点,加强人才建设的统筹规划,把引进培养与大胆使用结合起来,发挥“核心人才”作用,同时注重人才开发整体效能,把解决当前突出矛盾与注重人才队伍长远发展结合起来,不断优化人才队伍结构,推进各类人才在各自的职业通道全面协调可持续发展,逐步确定了以职位为中心的人力资源管理与开发体系,搭建了集管理人员、研发人员、专业技术(非研发)人员职业发展通道为一体的全员职业发展通道。

全员职业发展通道分四步进行:

第一步,建立全员职位体系。形成以系列、族、类三个层次组成的完整的全员职位体系,将组织内部的所有职位划分为3大系列、7大职位族、14大职位类。

第二步,搭建研发人员职业发展通道。形成研发人员职位评聘制度。

第三步,完善管理人员职业发展通道。形成管理人才储备体系和干部竞聘上岗制度。

第四步,搭建专业技术(非研发)人员职业发展通道。形成专业技术(非研发)人员职位层级晋升审批制度。

建立全员职位体系

职位是企业组织结构的细胞,企业依据一定的战略而设立部门机构,企业战略的执行职能按照一定的管理关系逐级分解,最后落实到各个职位,企业的目标与实现目标的能动主体——“人”在职位上实现了最终的结合。CP公司认为,企业战略实现的重要基础是职位,人力资源管理与开发将围绕职位展开。由此,CP公司引进了先进的职位管理体系。

职位管理是以单个职位为管理对象,通过职位分析来明确不同职位在企业中的角色和职责以及相应的任职资格,然后通过职位评估等分析工具来确定职位在企业中的相对价值大小,在企业内部形成职位价值序列。

为了将全员职业发展工作做实,并为构建全员职业发展通道建立科学的理论和实践基础,CP公司于2002年就基于职位管理理论以及职位族平台,设计了员工职业发展体系的核心——CP公司全员职位体系。

依照此思路,并根据企业战略定位及中长期规划目标,确定了以系列、族、类三个层次组成的完整的CP公司全员职位体系,由此将组织内部的所有职位划分为3大系列,7大职位族,14大职位类。

在分类管理的基础上,为体现不同职位对企业相对价值的差异,CP公司运用职位价值评估工具在3大职位系列、7大职位族、14个职位类的基础上确定出来 76个职位,并从影响(影响、组织、贡献三维度)、沟通(沟通、构架二维度)、创新(创新、复杂性二维度)、知识(知识、团队、宽度三维度)等四个要素 10个维度对每个职位进行了价值评估,同时根据每个职位点值的高低,形成了所有职位的内部价值序列图,这样就使所有员工清楚地了解到自己所从事的职位在组织内部的位置以及价值所在,为全员的职业发展奠定了理论和实践基础。

搭建研发人员职业发展通道

CP公司主要承担着新技术和新产品的研究开发,提供具有市场前景和产业规模能力的新技术与新产品。占员工总数近80%的研发人员,是CP公司价值创造的主体,因而研发人员的职业发展通道建设就显得尤为重要。CP公司于2002年底开始进行研发人员职业发展通道的建设,到2003年年中全面实施。

1.研发人员职业发展通道框架

CP公司研发人员职业发展通道是以CP公司全员职位体系研发系列为基础的。由于各职位族和职位类具有相似性,所以专业系列下设的研发族中各个类别的晋升通道一致,共设置了六级职位,分别为“专业初级”、“专业中级”、“专业高级”、“专业资深级”、“专家级”、“高级专家级”。

2.研发人员职业发展

评价原则。研发族专业技术职位评聘与晋升主要是以CP公司各专业技术职位《职位说明书》为基准,对拟聘员工先评价后聘任。同时以实际工作业绩为导向,半年度或年度综合考核成绩排名在本部门相同专业技术职位前40%的员工,才具备专业技术职位晋升的资格。评价以员工是否具备各专业技术职位的胜任能力为主,聘任以职位编制为基础,对空缺的专业技术职位选才聘任。

运用适中的节奏规划研发人员的职业发展。很多企业在员工提升的速度上不够合理。一种情况是快节奏提升,快节奏提升的后果是员工到达职业顶端后,会因不再有发展空间而失去工作积极性甚至离开公司;另一种情况是慢节奏的提升,其缺点是员工得不到职业发展上的有效激励,也不能学习到其他岗位的知识。正确的做法是采取一种适中的提升,表现为对新入职的员工有计划地安排其走向上一级的职位,合理安排每次晋升的时间段。适中的节奏能不断激励员工,提高其职位的认知价值,使其有充分的时间学习和掌握拟晋升职位的技能。

3.研发人员职业发展评价项目

研发人员职业发展评价项目包括六个方面

4.研发人员职业发展评聘方式与流程

研发人员职业发展评聘方式分直接认定、职位评审两种方式。其中,直接认定方式包括新员工专业技术职位认定、推荐晋升认定两种方式;职位评审方式包括专业技术职位晋升评审、专业技术职位再评审两种方式。

新员工专业技术职位认定。新员工专业技术职位认定是指新员工在进入CP公司时,部门或项目负责人结合新员工学历、工作经验、既往业绩等因素,参考各《职位说明书》,初定专业技术职位。员工转正考核时,再由部门或项目负责人结合新员工转正考核成绩提出新员工专业技术职位认定建议,填写在新员工转正表中,经人力资源部及主管院领导批准聘任。

推荐晋升认定。每年年初,上年度部门/项目年度考核结果优秀的部门/项目负责人结合员工上年度工作绩效考核结果,本着宁缺毋滥的原则,推荐聘任少数优异员工晋升专业技术职位。人力资源部对推荐员工晋升资格采取考核成绩复查、员工访谈等方式进行严格审核。审核通过后,人力资源部将推荐人资料向全院公示,其后将推荐人材料及公示结果报办公会审批,最终向全院公布聘任结果。研发人员所聘任的新职位所对应的分值与价值都有一定的增加。

专业技术职位晋升评审。CP公司每年将组织一次专业技术职位晋升评审。评审前需组建专业技术职位评聘委员会,由院领导、经理、相关专业资深工程师、专家、高级专家职位员工、职位评聘顾问等组成。晋升评审程序包括个人申报、部门或项目负责人评审、人力资源部审核、公示(为保证评审流程公平、公正、公开)、人力资源测评、面向职位评聘委员会答辩、审核确认、发文公布聘任结果。

专业技术职位再评审。因员工部门/项目变动、从事专业工作方向改变、专业技术职位标准变动、编制调整等原因,部门或项目负责人对员工的专业技术职位有异议的,可在其后最近的一次专业技术职位晋升评审时期内对该员工提出专业技术职位再评审,从而重新聘任员工专业技术职位。专业技术职位再评审程序与专业技术职位晋升审批程序基本相同,但不由员工本人申报,应由各部门/项目组直接申报。

5.研发人员职业发展动态管理模式

为了时刻激励员工持续发展,CP公司在研发族专业技术职位评聘过程中,也引入了动态管理的模式。员工专业技术职位聘任后,在年度内考核成绩累计出现两次“C”(有待改进)且年度考核成绩为“C”(有待改进)的,将聘任至低一级专业技术职位。

完善管理人员职业发展通道

CP公司战略目标能否顺利实现,管理团队的专业化将起到决定性的作用。他们不仅肩负着企业目标实现的重任,而且还肩负指导员工发展、帮助员工进行职业生涯规划、为企业物色和培养后备人才的重任。为此,CP公司从2003年初,就开始了管理人员职业发展通道的建设工作,以便更好的激励管理人员提出更多的建设性的管理方法和其他富有特色的创新管理思路,并促进管理团队的长远发展。

CP公司管理人员职业发展通道是以CP公司全员职位体系管理系列为基础,包括资源管理族人员和产品管理族人员的职业发展通道。

1.资源管理族人员的职业发展通道建设

CP公司为资源管理族设置了三级的晋升通道,分别为基层管理者(部门三级经理、部门总经理助理)、中级/专项中级管理层(部门总经理、部门副总经理、院长助理)、院级/专项高级管理层(院长、常务副院长、副院长)。

2.产品管理族人员的职业发展通道建设

CP公司为产品管理族设置了二级晋升通道,分别为专项中级管理层(产品\项目经理、专项总监)、专项高级管理层(产品\项目总经理、产品\项目总监、技术总监)。

3. 晋升管理机制

对于资源管理族人员以及产品管理族人员的晋升,CP公司设置了一套科学易行的程序,包括分层次推荐候选人,人力资源部进行的 360度访谈,候选人素质评价,候选人公开竞聘,办公会讨论确定人选,人力资源部发文聘任。为引导管理人员一步一步的朝着企业所为他们设定的职业发展通道迈进,CP公司结合激励理论和职业生涯发展理论,在管理人员季度关键业绩指标以及素质评价指标设置中包括了纪律性、协作性、积极性、责任感、勤奋度、创新性、工作质量以及工作改进等内容。

这种做法也出自CP公司所提出的“职业技能生涯发展”的理论。“职业技能生涯发展”理论是指企业引导员工注重自身的职业技能的积累和提升,而不仅是关注职位提升。当员工的职业技能生涯发展到一定高度,员工的竞争力、员工自身价值以及员工的职位就会同步提升。这一理论的提出,着重引导和激发员工的主动性、进取心和事业心,而决非一厢情愿地去“塑造人”。CP公司同时运用内部驱动和外部激励来共同加速管理层的职业生涯发展。

4.晋升配套措施

CP公司管理人才培养计划。伴随着CP公司的快速发展和人员规模的激增,各级管理人员的管理幅度不断增加。随着产品、市场、企业发展,CP公司规模还将进一步扩大,一方面需要选拔更多、更优秀的人才补充到管理团队,一方面也给现有管理团队提出了更高的要求,种种情况表明,CP公司需要打造一个卓越的管理团队来有效支撑和推动自身的快速发展。

鉴此,CP公司制定了管理人才培养体系,建立源源不断提供合格管理人才的供给渠道,提升CP公司整体管理能力和水平,形成文化认同和管理有力的领导团队。CP公司管理人才培养体系包括管理人才培训体系,e-learning学习平台以及自学方式。

CP公司管理人才储备计划。为了保证管理人才的持续供给,CP公司也设定了管理人才储备计划,并以“不惟学历重能力,不惟资历重业绩”作为CP公司选拔后备管理人才的原则。各部门年度考核排名前20%的优秀人才、并具有管理潜质和管理意愿的员工均具备进入CP公司管理人才储备库的基本资格,同时配备管理导师。

进入CP公司后备人才库中的人员可划分为3个类别:

(1)拥有 “技术领导力潜力”的员工:此类员工具有精深的技术专长,能够担负起产品开发的领导重任,可作为CP公司专项管理类职位的人员,如研发组长、专项总监、技术总监、项目经理等。

(2)拥有“职能性领导力潜力”的员工:此类员工具有部门或某一业务单元领导的能力,可作为CP公司资源管理类职位的人选,如部门三级经理、部门总经理等。

(3)拥有“跨领域领导力潜力”的员工:此类员工不仅具有本专业管理工作的能力,同时具备其他专业管理工作的专长。此类员工可进行跨部门或业务单元培养或作为复合型综合性人才培养,使其具有多个关键业务和职能领域的经验,逐步站到组织战略和系统的高度,认识、理解和把握事物,从而正确地决策、准确地执行。

所有进入CP公司管理人才储备库的员工将根据管理导师安排参加CP公司的管理系列培训,并逐步完成相应的培训计划。

CP公司建立管理人才储备计划,不仅因为组织对后备人才培养的重视和投入,还有一个重要原因,就是后备人选本身对个人的未来发展充满着期待,而这也将自发地驱动着自我的成长与发展。

搭建专业技术(非研发)人员职业发展通道

为了满足CP公司专业技术(非研发)人员职业发展的需要,CP公司在全员职位体系专业技术(非研发)系列职位之上构建了专业技术(非研发)人员职业发展通道。

该通道的建立和管理系列人员以及研发系列人员职业发展通道建立的思路有很大的区别。当管理系列人员以及研发系列人员在所对应的职位通道上有所提升时,是通过职位的变动来体现的。而专业技术(非研发)人员所从事的职位有特定的专业领域,其职位内容以及职位价值有固定性,这就给建立职业发展通道造成了很大的困难。在经过对该系列职位的特点进行详细的分析以及研究后,在职位价值应用理论的指导上,突破性的提出了职位“层级”晋升办法:在同一职位中设置5个层级,分别为一级(助理级)、二级(专员级)、三级(主办专员级)、四级(主管级)、五级(高级主管级),将各层级与现代薪酬理论中的P值设计有效结合。

非研发族职位晋升方式与流程

因非研发族各专业职位的专业特性差异,职位晋升方式采用新员工专业岗位级别认定和在职员工专业岗位级别晋升审批两种方式。一至三层级体现从业时间、经验与业绩和能力正相关,以正常晋升体现发展;四至五层级体现专业精深,以审批方式体现组织认可。

新员工专业岗位级别认定。新员工专业岗位级别认定是指新员工在进入CP公司时,部门负责人结合新员工学历、工作经验、既往业绩等因素,参考各专业岗位级别描述和要求,初定专业岗位级别。员工转正考核时,再由部门负责人结合新员工转正考核成绩提出新员工专业岗位级别认定建议,填写在新员工转正表中,经人力资源部及主管院领导批准聘任。

在职员工专业岗位级别晋升审批。在职员工专业岗位级别晋升审批一般安排在每年年初。晋升二、三级专业岗位级别且满足累计两次年度考核结果为“B”(良好)及以上的员工,可以在原专业岗位级别基础上晋升一级。由部门负责人初审,人力资源部复审,主管院领导审批,人力资源部发文公布即可。晋升四、五级专业岗位级别员工,须依据该级别准入条件和评审条件,由员工或者部门经理提出申请,并提出相关评审证明材料,后经部门负责人初审,人力资源部复审,全院公示,办公会审批,人力资源部发文聘任等流程方可晋升。晋升到第三级别的员工将具备三级经理的竞聘资格,晋升到第四或五级的员工将具备二级经理的竞聘资格。同时晋升为第三级别以上的员工都将具有参加CP公司组织的管理培训以及经理扩大会议的资格。

同时,也引入了动态管理的模式。员工专业职位聘任后,在年度内考核成绩累计出现两次“C”(有待改进)且年度考核成绩为“C”(有待改进)的,将聘任至低一级专业技术职位。

通过建立和实施以职位为中心的全员职业发展通道,CP公司克服了所遇到的难题及困惑,并成为创造价值的部门。组建了一支结构合理的人才队伍,对业务的推进和可持续发展提供了人才资源保障;员工的职位晋升更加系统化和规范化,提升了员工对外竞争力;能够更科学的评价员工的胜任力,更好的做到公平竞争、人尽其才;统计数据表明,在员工适岗率、满意度、培训达成率、核心人才流动率等多个方面均有显著的成效。

职业发展通道的建立和实施极大的调动了全体员工的工作热情,整个团队绩效表现突出:2005年在移动存储器领域形成了普天专利群效应;继TD-SCDMA无线接入系统通话成功后,2006年获得信产部电信入网许可证书,同时开通了北京规模试验网,成为世界上能够提供TD无线接入系统整体解决方案的四大设备提供商之一。

在以职位为中心的全员职业发展通道的建设中,我们认为纵向发展和横向发展空间上必然会出现交叉点,这将是CP公司适应未来变化的新职位,例如一个新的复合型职位,需要具备两个甚至三个职位族类某某层级的素质与经验,这样就形成了一个网状、多维的员工职业发展空间。

软件工程技术的发展趋势

1, 软件工程是什么

随着信息技术的发展,软件作为一种信息技术的主要载体日益渗透到社会政

治,军事,经济,文化乃至生活的各个方面和各个层次.软件无所不在,其需求

愈来愈多,复杂度愈来愈高,可用性要求愈来愈强.如何高效地开发和生产可靠,

可信的软件,是软件领域一直必须面对的问题.

20世纪60年代,随着第三代计算机的产生,计算机的硬件性能发生了翻天

覆地的变化,运行大型的复杂软件系统已经成为可能.然而,相应的软件开发技

术却难以满足大型软件系统的开发需要,因而造成:

1. 大多数大型的软件开发项目的成本都超过预算,开发进度一再拖延;

2. 软件产品质量不可靠,大型软件系统存在bug几乎成为不可避免的问题;

3. 软件产品难以维护;

4. 软件产品的开发成本过高;

5. 软件产品开发的效率跟不上计算机硬件发展以及用户需求的增长;

软件技术跟不上硬件技术发展而造成的诸多问题被称作"软件危机"

(Software Crisis).为了解决软件危机,1968年北大西洋公约组织(NATO)的

计算机科学家在德国召开的国际学术会议上第一次提出了"软件工程"的概念,

希望通过系统化,规范化,数量化等工程原则和方法来实现复杂软件系统的开发

和维护.

按照Webopedia词典中的定义,软件工程是"研究如何开发大型应用系统的

计算机科学学科.软件工程不仅覆盖构建软件系统的相关技术层面问题,还包括

诸如指导开发团队,安排进度以及预算等管理层面问题" 由这个定义可以看出,

软件工程不仅仅包括编写程序代码所涉及的技术,它包括所有对软件开发能够造

成影响的问题.Brook在1987年指出,不存在任何一个单一的开发技术或管理

技术能够解决软件工程所面临的所有问题.因而软件工程是一个包括一系列概

念,理论,模式,语言,方法以及工具的综合性学科.图1中,我们给出了一个

软件工程技术的总体框架.可以看到,软件工程技术可以分为产品实现层技术以

及开发管理层技术.其中,产品实现层技术涉及与特定软件系统开发相关的问题,

为在软件生命周期的各个阶段实现软件产品提供技术支持;开发管理层技术通常

不针对特定的某个软件开发项目,而是为管理和改进软件组织所有的业务活动提

供技术支持,例如如何使用适当的方法管理软件开发过程中所需要执行的各个活

动,以便在特定的软件项目中系统的展开软件工程的层技术,支持软件组织的业

务实现,从而控制软件产品开发的成本,提高生产的效率,保证和改进软件产品

的质量.

系统设计

设计方法,

设计模式,

设计语言,

图形符号标识,

设计工具.

系统实现

编程语言,

编程环境,

编程工具.

验证和确认

软件测试方法,

软件测试工具,

软件检测方法,

软件检测工具.

操作与维护

维护方法,

维护工具

需求描述

需求描述语言,

形式化语言,

图形符号标识,

需求分析方法,

需求确认,

需求管理,

需求工具.

软件配置管理 配置管理工具,配置管理标准及规程,变更控制

软件成本估算 成本计算模型,专家决策,估算与分析

软件质量管理 质量保证,质量计划,质量控制

软件过程改进 软件过程标准,如:ISO9001,CMM,CMMI,SPICE等

软件过程建模 软件过程建模方法,建模语言,软件工程环境,PSEE系统,CASE工具

产品实现层开发管理层

图1 软件工程技术的总体框架

2, 基本概念

软件工程技术在近半个世纪的历史中,得到了长足而迅速的发展.在经历了

多次浪潮的冲击之后,我们有必要先澄清一些基本的概念.

2.1 软件

IEEE将软件定义为"计算机程序和相关的文档",软件产品一类提供给具体

的客户使用,另一类提供给大众市场.ISO 9001:2000对软件的定义为"一个好

软件的基本属性表现为,软件实现了客户需要的功能和性能,能够维护,可以让

用户在指定环境和条件下依赖和使用".

一般来说,软件是信息的载体并且提供了对信息的处理能力,例如对信息的

收集,归纳,计算,传播等等.虽然计算机硬件设备提供了物理上的数据存储,

传播以及计算能力,但是对于用户来讲,仍然需要软件系统来反映用户特定的信

息处理逻辑,从而由对信息的增值来取得用户自身效益的增值.因而从本质上讲,

软件可以被理解为一种逻辑上的信息处理设备,该设备具有用户所需求的信息处

理能力.一个好的软件应该能够为用户提供有价值的信息输出,从而为用户带来

效益.

2.2 软件工程与计算机科学

软件工程是一门工程学科,关注于软件生产的各个方面和生产方法.计算机

科学关注所有计算机相关的理论和基础.软件工程属于计算机科学的范畴,主要

关注开发和交付可用软件的理论和实践.

软件工程方法包括: 软件系统模型,注释,规则,设计建议(advice)和过

程指导等等.

2.3 软件工程与系统工程

系统工程关注开发基于计算机的系统的所有方面,包括硬件,软件和过程.

软件工程是其中的一部分.

2.4 软件过程和过程模型

ISO9000:2000将过程的定义为"任何使用资源将输入转化为输出的活动或

一组活动可视为一个过程".ISO15504将过程定义为"能够将输入转化为输出的

一组相互关联的活动".CMM将过程定义为"人们用来开发和维护软件及其相

关产品的一组活动,方法,实践和转化."

由上面的几个定义可以看出,软件过程可以被理解为开发和软件产品的一组

活动以及与实施这些活动相关的要素.这里我们给出一个更加细致的软件过程的

定义――软件过程是设计,开发,应用和维护软件产品的一组相互关联的活动,

方针,组织结构,技术方法,规程以及工作产品.它定义了对软件开发进行组织,

管理,度量,支持和改进的途径.

从这个定义可以看出,软件过程是一个由诸多与实现软件产品相关的要素组

成的复杂系统.如何将这些要素有机地组合在一起,从而有效并且高效地实现软

件产品开发是软件过程技术所关注的问题.

相应地,我们可以定义软件过程模型为――使用适当的方法表达的一个软件

过程抽象描述.模型是对其所表示的现实的抽象,是一个部分的描述.软件过程

模型通常包含与各种软件过程要素相关的模板或类型,或者它们的实例.模型对

现实的抽象描述了一组现实对象的共同特征,并且在特定的环境,参数和约束条

件下能够被实例化为现实的对象.从这个意义上讲,软件过程模型可以被理解为

"对一组软件过程的共同特征的抽象描述".软件过程由一组软件过程要素及其

相互的关系组成,软件过程模型是对软件过程要素及其关系的抽象描述.

2.5 软件成本

软件成本指开发软件产品所需要花费的资金.一般来说,开发一个软件项目

的成本包括以下几个方面:

1.软硬件成本,包括维护费用;

2.旅行及培训费用;

3.工作成本(effort cost).

对于大多数软件项目来说,其成本中最主要的部分是工作成本.工作成本并

不能简单的理解为对参与项目的软件开发人员支付的薪金.软件组织通常采用将

其运营组织的总成本除以参与开发的人员数量的方式核算工作成本.工作成本一

般包括:

1.办公环境的采暖,照明等费用;

2.组织管理人员的费用,例如财务,行政管理人员,经理等等;

3.网络及通讯费用;

4.辅助基础设施管理费用,例如图书馆以及娱乐设施费用等;

5.开发人员的社会保障金,健康保险等等;

工作成本通常是开发人员薪水的两倍或以上.

2.6 计算机辅助软件工程――CASE

CASE是一个软件系统,用于对软件过程的活动提供自动化支持.CASE系

统常常用作方法支持.

2.7 软件质量

尽管ISO9000等对质量有定义,但在一种大众的观点中,质量并没有明确的

含义.质量是一种多维的概念,包括客观的实体,实体各个方面的视角,以及实

体的质量属性.

从大众的观点看,通常认为质量是无形的,没有明确的特征.它可以被讨论,

感觉和判断,但不能度量.大多数人认为质量类似于美国联邦法庭关于*秽的说

法,"当我看见它的时候我知道". 一些关于质量好,质量坏的说法都没有明确

的定义.这种情况反映公众是可以接受从不同的角度去解释质量.这也隐含着认

为质量既不能被控制和管理,也不能被量化.另外也有一种观点认为,质量是奢

侈,分等级并且可以体验的.一些昂贵复杂的产品被认为比他们伸手可及的产品

具有更高的质量.譬如根据实际的可靠性和维修记录,卡迪拉克(cadillac)是好

汽车, 雪佛兰(Chevrolet)不是;高保真环绕系统是高质量的系统,单声道收

音机就不是.从这样的观点看,质量被归约到一类具有复杂功能的昂贵产品.

大众观点中的误解和含混,非常不利于工业界对质量的改进.所以质量应该

被准确,可理解,可操控的方式定义.针对这一点,Juran等人指出,质量是"适

于使用",Crosby指出,质量应该是"顺应需求".这两种观点是一致的,目前

被大多数质量专家所采纳."适于使用"考虑了客户的需求和期望,包括产品和

服务是否适合于他们的使用.不同的客户可能以不同的方式使用产品,这就意味

着产品必须拥有多种元素来适合使用.按Juran的观点,每一个元素就是一个质

量特征,他们可以归为一些类,作为适合使用的参数.最重要的两种参数是设计

质量(quality of design)和符合质量(Quality of Conformance).设计质量是对需

求的确定和说明,而符合质量就是符合需求.满足需求,意味着需求必须被清楚

地描述,不会导致误解.在开发和生产的过程中,要持续地度量以确定是否满足

需求,不满足的部分被认为是缺陷.

前面对于软件的定义可以看出,软件作为信息技术的一个载体,其质量应该

与其所能够为用户提供的信息处理能力,或者更直接地讲,用户对于软件产品的

质量要求更多是关注于软件所能提供的有用信息,而非软件产品本身.很多软件

产品失败的原因恰恰是因为忽略了这一个根本问题.

此外,用户对产品的需求并不仅仅与产品的功能性特征相关.用户为了取得

产品需要为产品的提供方支付一定的费用(产品的价格),而用户仅仅在其通过

使用该产品取得的效益(或者更一般地讲,获得的效用)高于其支付时,才愿意

购买该产品.因此,产品的质量并不能够在忽略用户支付条件的前提下无止境地

提高.对于用户来讲,完美但是价格昂贵的产品是无法接受的,一个能够最好的

满足用户需求的产品应该是"刚刚好"(just good enough)的.

3, 软件工程发展的历史

从1968年以来,软件工程有了很大的发展,并对软件产品的改进也是显而

易见的.我们对软件开发的活动有了更好的理解,有了更有效的方法支持软件系

统的设计和实现.这些新的方法和技术也有效地减少了大型复杂系统的开发成

本.然而,不可否认的是,软件组织在预算成本和预计工期内交付客户期望的复

杂系统仍然存在问题.因此,有人评论软件工程一直处在慢性的,持续痛苦的状

态.

总的看来.计算机技术的发展趋势呈现为:硬件价格降低,人力费用增加,

应用复杂度增加,社会对软件的依赖程度增加,具体如表1所示:

表1

工具 硬件 软件工程技术

1950

2000

机器码

汇编

第三代语言

4GLs

AI 语言

面向对象

Vacuum tube 电子管

Transistors 晶体管

Semiconductors 半导体

Integrated circuits集成电路

Parallel Processing 并行处理

VLSI 超大规模集成电路

结构化程序设计

功能分解

结构分析

以数据为中心的分析

面向对象的分析

3.1 结构化程序设计

结构化程序设计(Structured Programming, SProg)方法始于60年代后期,

典型的代表是Goto语句从软件中驱逐出来.其动机就是改进软件源码的结构,

增加软件的鲁棒性和可靠性.但随着系统复杂度的提高,单独使用结构化方法并

不能保证软件的质量.尽管使用了结构化方法,开发出来的软件依然难于理解和

使用.于是导致了功能分解技术的出现.

3.2 功能分解

功能分解(Functional Decomposition, FD)技术是一个过程方法,它将要实

现的最终系统分解成一系列逐步细化的概念化的模块(conceptualization).概念

之间的关系用结构图(structure Chart)来表示.FD通常在面向过程的paradigm

中使用.这些系统的概念模块是以面向过程的方式定义的.(每一个模块代表一

个过程或者子过程).FD的目标提供一种方法通过抽象来逐步求精地理解系统,

其开发的产品具有良好的结构.系统的概念模型和表示与源代码的结构是一致

的.这种方法今天依然在使用,但结构图已经不能提供足够的信息来保证可以得

到一个结构良好,准确的解决方案了.为了增加一些必要的信息,出现了结构化

分析与设计方法.

3.3 结构化分析与设计

结构化分析与设计(Structured Analysis and Design, SAD)的降临标志着第一

个软件工程方法的诞生.它用一组技术共同来表示整个软件开发的过程.SAD

基于SPrag和FD,并进一步用抽象的技术来产生模块化的输出.随着SAD的引

入,最终实现系统的交付变成一系列的里程碑而不仅是一个里程碑.分析要解决

的问题以及解决办法的设计都被认为是软件开发过程的重要步骤.

3.4 以数据为中心的设计方法

以数据为中心的设计方法(Data-Centered Design Method, DCM)的贡献是在

结构化分析中扩充了数据模型,其目的是确定整个组织的数据需求,创建一个中

心的,集成的数据库.单独的应用程序开发并从中心数据库取数据.数据模型用

ER模型表示.ER最初的目的是为关系数据库的设计,建立了数据模型之后,应

用程序的开发就可以用结构化的分析和设计来关注中心数据库的数据.

3.5 面向对象的设计方法

面向对象的方法(Object-Oriented Method, OO)是软件工程方法的又一次飞

跃.对象是一个具有一组状态的实体,并封装了附加于这些状态的操作.状态描

述了对象的属性或特征,操作描述了对象改变其状态的方法以及该对象为其他对

象所提供的服务.面向对象方法认为,人类生活在一个由对象(Object)组成的

世界中.对象可以被归类,描述,组织,组合,创建和操纵.面向对象方法是一

种模型化世界的抽象方法,结构上具有良好的高内聚低耦合特性.采用面向对象

技术设计和开发的软件系统更易于维护,在对系统进行修改时,能够产生较少的

副作用.同时,面向对象技术提出了类,继承,接口等等概念,从而为对象的复

用提供了良好的支持机制.因而采用面向对象技术对软件产品进行设计和开发,

也能够有效地提高软件组织的开发效率.

90年代开始,面向对象方法已经成为软件组织分析,设计和开发软件产品

的首选范型.

3.6 以过程为中心的软件开发方法

前面的各种软件工程方法严格说来,都属于软件产品的实现层技术.它们提

供了一系列方法,技术和工具支持软件被设计为具有良好定义的结构,使得其复

杂度可以得到控制,软件易于实现,易于维护和移植.这些方法和技术在一定程

度上可以改进软件质量,可靠性,结构以及成功交付软件概率.但事实上,单纯

依赖实现层技术并不能够保证软件组织高质量并且高效地开发软件产品,即使到

了今天,软件危机依然存在,甚至由于应用领域的普及,需求的频繁变化,有着

愈演愈烈的趋势.

1. 软件的设计方法出现转移.面向业务过程的方法被面向对象的方法所代

替.但许多人认为OO的方法在工业界使用还不足够成熟.虽然事实并非如此.

2. 一些非技术的管理人员常常把软件理解为是一组计算机指令.从这个观

点看,只有一种任务是软件开发,那就是写指令.技术人员常常通过度量代码行

的进展来迎合管理人员的要求.但软件工程技术的目标是改进代码的质量而不是

代码的数量,所以工业界一些人常常认为软件工程技术对软件开发过程几乎没有

贡献.事实上,当实践好的软件工程技术时,软件开发人员有时会从事一些并不

直接产生代码的活动,这些活动的目标是得到一个模块化的,鲁棒的,可靠的解

决方案.但常常人们只关注了最终实现系统的代码行数量,实现的功能,以及测

试出来的Bug,对软件的形成过程没有给予足够的重视.

显然,信息技术的飞速发展,把软件推到了一个前所未有的重要高度.随着

软件的应用范围,复杂度和规模的急剧增大,传统软件工程基于实体驱动和确定

目标,有序控制的开发模式开始让位于Internet环境下以过程为中心,基于协同

驱动和动态目标,实体聚合的开发模式.软件的生产必然向着工业化和过程化的

方向发展,支持软件开发工业化的方法和技术已经成为影响软件产业发展的重要

因素.

4, 软件过程技术

软件过程概念的形成可以追溯到20世纪60-70年代.1969年,Lehman花费

了一年时间研究IBM公司的编程实践,并首次提出了"编程过程"(programming

process)的概念――"将一个微小的想法转化成二进制程序代码的所有相关技术

和活动的集成".这一概念初步确立了软件过程概念的基础.

人们对软件过程的认识经历了一个从将软件过程当作一个"黑盒子"过渡到

对软件过程产生透彻认识的过程.将软件过程作为一个"黑盒子"来看待,软件

产品(过程输出)则仅仅依赖于产品的需求(输入).在这种模型中,产生软件

产品的过程没有被描述出来.使用这种模型的一个问题是难以估计实现软件产品

的时间和成本.此外,在软件开发项目初期,软件产品的需求往往是非形式化的

和不明确的,因而造成软件开发的输出在很多情况下不是用户所希望的产品.

为了降低软件开发的风险,人们需要打开软件过程的"黑盒子"从而对生成

软件产品的软件过程作出更清晰细致的了解.因此,研究人员提出了软件生命周

期的概念,例如Royce提出的瀑布模型以及Boehm提出的螺旋模型等等.软件

生命周期定义了软件产品开发中的所要经历的一系列不同的阶段,一般包括:需

求分析和规约,设计,开发,确认,安装,应用,维护以及退役等等.同时,软

件生命周期还为如何实现这些不同的开发阶段定义了相关的概念和指导.总的来

说,软件生命周期定义了软件过程的框架和原则.它并没有详细描述软件过程的

活动,组织形式,工具和操作规程,以及开发方针和约束.软件生命周期模型是

定义软件开发如何进行的一个重要的起点,但是单纯应用软件生命周期来指导和

控制软件开发实践仍然是不足的.

20世纪80年代,软件过程技术开始形成一个独立的学科.软件过程的概念

建立在软件生命周期的基础之上,并且提供了一系列更为广泛和全面的概念来设

计和组织与软件开发活动相关的各种要素.软件过程技术是一个集成了组织,文

化,技术以及经济等多种因素的综合性学科.有效地识别,定义,管理和改进组

织的软件过程,对于一个软件组织实现其经营目标,改进其业绩是至关重要的.

总的来说,软件过程技术的意义在于:

1. 在产品实现前估计产品开发的进度和成本:软件组织在系统地识别和管理

其所使用的过程基础上,能够在产品实现之前策划产品从设计,开发到实

现的全部过程.对过程的策划来源于组织对自身业务活动的分析以及以往

项目的成功经验.基于这些分析和经验,组织能够有效地估计产品开发的

进度和成本.

2. 有效地利用资源,降低成本,缩短周期:资源是实现软件产品开发的必要

条件.通过确定产品实现的过程,软件组织就可以根据过程实现所需要的

资源要求有目的地并且有效地投入和利用资源,防止资源不足或浪费.有

效地利用资源可以降低产品开发的成本,提高软件开发所产生的效益,从

而使顾客和所有其它相关方受益.

3. 确保软件产品开发及软件产品质量的稳定性和持续性:软件过程的一致遵

循和有效控制能够使产品的生产和产品的质量保持持续稳定的状态,使得

软件产品的质量变成可预期的指标.持续稳定的开发过程能够有效地降低

不合格的产生,从而降低开发的成本,提高软件产品的质量.

4. 对软件产品开发的全过程进行有效地监控,尽可能早地发现问题或可能产

生问题的趋势,并予以解决:软件过程的识别和控制使得对软件产品生产

过程的监控成为可能.通过对过程特征的考察和分析,软件组织能够确定

有效的监控措施以确保过程的执行不会偏离预期的目标或超过规定的阈

值.通过对过程参数的监测和分析,组织能够在过程出现不稳定或出现变

坏的趋势时及时采取必要的措施,防止问题的产生.

5. 发现改进的机会,以及确定过程改进实施的优先次序:软件组织持续改进

其业绩的重点在于过程改进.对于改进产品质量来说,改进其生产过程是

更根本的.过程定义为过程改进提供了必要的基础.良好定义的过程有利

于对过程特点和性能的考察和分析,也有利于取得过程改进所需要的信

息.同时,系统地考察组织内的过程,分析其相互关系,有利于发现改进

的关键区域,确定过程改进实施的优先次序.

6. 有效的实现和改进软件产品的质量,使所有相关方获益:良好定义的软件

过程能够持续稳定地实现产品的质量.软件组织能够通过不断地改进软件

过程从而使其产品更好地满足顾客的要求和期望.产品质量的提高,组织

过程的改进最终能够使所有相关方获益.

7. 再现组织自己或其他组织的成功经验:软件过程模型能够使软件组织将以

往的成功经验以正规的形式予以保持,并且在未来的项目中予以重现.组

织还可以参考其他类似组织的好的管理和生产经验,并以软件过程模型的

形式确定下来,从而指导自己的生产和管理,为自己带来效益.

4.1 软件过程管理及软件过程改进

80年代初,软件产业逐步进入过程化生产的时代,同时一些重要的国际标准

和模型纷纷提出,其中最主要的三个流派是:CMM/PSP/TSP,ISO 9000 系列和

ISO/IEC15504 标准,其中以美国国防部支持的CMM/PSP/TSP流派研究得最为

深入,在软件领域应用得最为广泛.

4.1.1 CMM系列模型

软件工程20世纪60年代开始研究支持软件开发活动的CASE技术和工具,

其间研究硕果累累,但对软件产业的发展却没有起到预期的作用.此时人们意识

到,单纯依靠软件产品的实现技术并不能够解决软件危机所带来的问题.软件产

品的生产是一个多人协作的复杂活动.成功地开发大型软件系统,还需要相关的

方法和技术对软件开发过程实施管理.

20世纪80年代,卡内基-梅隆大学(CMU-Carnegie Mellon University)的

软件工程研究所(SEI-Software Engineering Institute)在美国DoD的支持下,提

出了评价软件供应商过程能力的模型CMM(Capability Maturity Model).1987

年,SEI首先提出了能力成熟度框架,并于1991年和1993年陆续推出了CMM

模型的1.0版和1.1版.此后SEI针对具体软件生产要求,进一步推出SA-,SE-,

IPPD-,P-CMM等一系列成熟度模型.为了和其它模型相区别,SEI将最初的CMM

更名为SW-CMM.CMM将组织的成熟能力划分为五个等级,这五个等级定义了

度量软件组织生产过程成熟度的标准,以及评估软件组织生产能力的标准.

CMM模型为软件组织提供了一个分层的,螺旋上升的过程改进途径.软件

过程管理涉及很多问题,CMM最大的贡献在于指出了软件组织处于不同的能力

成熟度级别时,所应关注和改进的关键问题(关键过程域).这就使得软件组织

能够了解在其当前状态下所最迫切需要解决的问题,从而更加有效地实施过程改

进.

为了整合现有CMM模型和相关的工作,1998年,SEI启动了CMMI(CMM

Integration)计划,并于2000年8月11日推出CMMI SE/SW v1.0正式版.已经

开始的SW-CMM v2.0的草案停止推进并被集成在CMMI框架中.目前已经推出

集成了系统工程,软件工程,集成产品和过程开发,供应商管理四部分的

CMMI-SE/SW/IPPD/SS(CMMI for Systems Engineering,Software Engineering,

Integrated Product and Process Development,and Supplier Sourcing)1.1版. CMMI

通过提供统一的过程改进框架,消除了不同模型之间的不一致性和重复性,同时

也降低基于模型进行过程改善的成本.另外,CMMI提供了两种模型表示方式―

―分级(staged)模型表示和连续(continuous)模型表示.

CMMI 分级模型主要对应于已有的CMM模型,依然分为五个成熟度级别,

CMMI连续模型摒弃了传统的台阶式上升的模型.它认为软件组织的改进是持续

的,并从它自身最希望的,可以给组织带来效益的地方进行.因此组织完全有理

由把某些过程域的成熟度能力提高到很高级别,而把其它某些过程域继续留在较

低级别.连续模型为组织的过程改进提供更加方便的途径,并且在结构上和正在

制定中的ISO15504兼容.

CMM的出现带来了软件产业发展新的浪潮,为软件大规模生产带来了生机.

CMM以及相关技术的推广和应用使人们逐渐认识到:技术提高和过程改善同时

进行,才是促进软件产业发展的最佳途径.

此外,人对过程改进和技术提高依然起着非常重要的作用,如图2所示.

人技术

过程

图2:人,过程和技术的三角形关系

从图2我们可以看到,人,过程和技术共同构成了一个相互支持,相互制约,

均衡发展的三角形.事实上,人是过程和技术的主体,人,过程和技术三位一体

构成现代企业全面质量管理的核心内容.其中:

过程:指产品生产的过程,如计划,跟踪,度量,审计等等,以及过程

流程,如生产线,工序等

技术:指产品生产的技术,譬如工艺,软件的需求分析技术,设计技术,

编码技术,测试技术等等

人:指可以胜任过程管理和技术活动的人力资源.这就涉及到要招聘合

适的人才,对组织内的员工进行培训,提供人员之间有效沟通的

渠道,以及客户/供应商/合作伙伴之间的关系维护

可以看到,现代企业(组织)管理都围绕这个铁三角在运行,过程是三角形

的支点,过程通过一系列相互关联的方针,程序和规则将企业的经营活动串起来,

形成企业的业务流程;人是过程的执行者,其行为规范要受到过程的约束,并在

执行中接受必要的服务支持,通常表现为一组支持过程;技术则要通过过程来实

现,通常表现为一组工程过程.可见企业中一切活动都是过程,或者过程的一部

分.过程成为企业(组织)管理的中心.

对软件组织而言,软件生产环节中的所有过程组成软件过程.CMMI将软件