‘壹’ 电脑应该怎么改善硬件和软件可以提高电脑速度
1、首先得承认你的电脑配置确实该更新换代了,内存过小,主频很低,硬盘转数过低,CPU也过时很久了。等等,所以说硬件方面没的说,就是该换了。
2、操作系统方面:由于你的硬件配置过低,所以更换系统就不要考虑了。
3、使用习惯上:安装360卫士,又安装了其他的杀毒软件,一定会影响电脑处理速度,个人建议把360卫士和杀毒软件都卸载掉,电脑管家式集电脑维护和杀毒为一身的很好的软件,推荐安装。
4、电脑开机后会有很多后台程序在运行,有的是系统文件,有的是可有可无的,可以选择性的关闭一些没有用的后台程序以此来释放一些内存。
‘贰’ 物业如何从硬件软件上提高服务质量
提高物业管理服务水平的整体设想及策划整体构想和管理策划思路概括为:一个中心,两个基本点,三个效益,四个满意,五项达标,六项保证。一个中心---以用户为中心,站在用户的立场上研究和设计服务,重视用户的意见,并顺应用户需求趋势,不断完善服务系统,为用户提供高品质管家式服务。基本点---一手抓服务质量,一手抓成本管理。顺应用户-需求,制定服务项目,确定服务标准,在保证服务品质的同时,积极开拓创新,节能挖潜,控制成本。三个效益---环境效益、社会效益、经济效益三者是密不可分,物业管理是一个微利行业,更应重视三者的有机结合,三种效益齐抓并举。四个满意---根据服务项目,制定服务标准,加强日常管理和服务,面向社会和企业内部,招聘适当的人在适当的岗位,为用户提供高质量的服务,为企业创造良好的社会口碑和经济效益,最终实现用户满意、社会满意、员工满意、企业满意。五项指标---根据《全国物业管理示范大厦标准及评分细则》有关要求,结合自身管理实际和大厦的软硬件设施设备情况,设定了设备运行维护达标、环境管理达标、公共秩序维护达标、无重大安全事故达标、用户满意率(95以上)达标。
六项措施---B措施一:超前化服务启动某物业公司特别重视物业管理的前期介入,在工程施工期,物业管理工程部的人员深入现场,积极与施工方接触,并根据大厦使用功能,结合设计、施工、用户入驻后的使用和方便管理的角度,提出意见和建议,从而保证了大厦使用功能的充分发挥。措施二:个性化服务设计某物业公司每承接一个新的项目,都不是原有模式简单的“克隆”、“拷贝”,而是在延续公司企业文化基础上的再创新、再升华,在考虑区域因素、施工单位要素、用户要素以及需求的基础上,为项目度身定做“时尚且适合”的管理方案。某大厦的硬件设施在某市的各个办公大厦中都堪称一流。某物业公司在某市的物业管理
‘叁’ 如何狠抓规章制度落实,不断提升制度执行力
一、构建好的制度,保证制度的严肃性。公共选择管理理论认为:在好的制度和制度环境下,坏人可以做好事;在坏的制度和制度环境下,好人可以做坏事。把制度制定好,是制度建设的重要前提。
(1)成立专门的建章立制机构。具体负责制度体系的设计和制度制定的审定工作,相当于人大立法机关。
企业成立独立于其他业务部门的立制机构的目的,就是要解决政出多门,各行其是的问题,保持制度的公正性,避免个别部门把设立制度作为利益切割、维护本部门利益的工具。
(2)精简制度,建立精干高效的制度体系。制度不是越多越好,而是要符合实际、满足需要、解决实际问题。制度过多反而会形成“文山会海”,增加管理成本,降低组织效率。
对内容空泛、缺乏约束力的制度该取消的取消;对带有部门利益保护色彩的该废止的废止。
(3)要注重调查研究。制度要符合实际需要,突出企业特色,制度出台前必须开展调查研究、广泛征求各方意见,达成广泛共识,为制度执行打下良好的群众基础。
(4)提升制度的亲和力。制度建设要遵循“人本精神”,体现制度对人的情感、公平关怀。对一些特殊情况要作出相应的规定。
二、抓制度落实,提高制度执行力。
首先,制度的生命力在于执行。制度一旦建立就必须不折不扣地执行,维护制度的权威性,否则再好的制度也会形同虚设。在一定意义上执行制度比制定制度更重要。执行制度实际上是排除执行干扰、解决制度梗阻的问题。
对制度执行干扰程度最大的是权力集中、管钱、管物的关键岗位和要害部门,这些岗位和部门可以利用手中的权力干扰某些制度的执行,摆脱制度的约束,谋求制度外的待遇和利益。
其次,各职能部门作为制度的制定者,他们可以发挥获取制度信息的优势和熟知业务运作的能力,采取规避和变通的办法,维护本部门、本业务系统的利益。
公正执法就是要做到“制度面前人人平等”,干部职工一视同仁,人情面前坚持原则。通过刚性公正执法,消除制度执行中的权力干预、部门干预和人情干预,解决制度执行不力的问题。
要提高执“法”队伍的整体素质。把原则性强、作风正派、素质高、能力强的人员不断充实到企业执“法”队伍中,进一步提升制度执行的能力和水平。
三、建立制度执行奖惩、制度监督和制度评价机制,为制度执行提供保障。
(1)建立制度执行考核奖惩机制。制度考核是检验制度执行的重要手段,要保证制度落实,必须把制度考核纳入绩效考核体系,建立制度执行考核奖惩机制,对制度执行好的单位和个人进行表彰奖励,执行差的给予经济处罚。
(2)建立制度执行监督机制。权力缺乏监督会产生腐败,制度缺乏监督会导致群体“失约”、行为“失常”,因此制度缺乏监督比权力缺乏监督造成的危害更大。
要加强上下级监督,做到责任层级清晰化,一级抓一级,逐级抓落实。加强平行监督,以新的内控制度为平台,建立各业务部门分工明确、互相制约、互相监督的制衡机制。
(3)建立制度评价机制。制度实施后,针对制度执行情况和执行效果,定期组织各业务部门进行分析评价,认真查找制度本身和制度执行方面存在的问题和缺陷,并给予完善。
通过建立制度评价机制,形成持续改进、不断创新的制度运行机制,努力构建科学合理、可操作性强的制度管理体系。
四、建设制度执行文化,创造高效执行力。
制度执行必须依赖执行文化的力量,执行文化是企业提高执行力所要追求的最高境界。建设制度执行文化其核心就是营造尊重制度、以制度作为行动最高准则的文化氛围。
培育团队执行文化。制度的最终执行,需要一个单位和组织的全体人员共同遵守。“木桶原理”认为:木桶的最大容量不取决于长的木板,而取决于最短的那块木板。
同样制度执行力不取决执行力最好的员工,而取决于执行力最差的员工。“木桶原理”告诉我们要提升整体执行力,必须提升每个个体的执行力,不断缩小个体执行力之间的差异。
每个员工要树立集体和团队意识,学习上互相提高,工作上密切配合协作,形成执行合力,努力完成共同的工作目标,最终建立起团队执行力文化。
五、加强制度管理应处理好三个关系
1、是行政指令与制度管理的关系。制度的制定、执行离不开行政指令,而行政指令代替不了制度管理。行政干预过多本身就说明了制度管理的缺失或制度执行的弱化。
在制度健全的情况下,应尽量减少行政干预,把注意力放在如何提高制度执行力上。
2、是活动安排与制度管理之间的关系。活动安排具有阶段性,是制度管理的一个辅助工具,相当于计算机软件上的一个补丁。制度管理不到位,一些企业和部门经常通过开展集中整治和专项治理活动来弥补。
如果活动安排过多,不仅会给基层带来额外的工作负担,同时也反衬出制度执行力的弱化。
3、 三是文化管理与制度管理的关系。文化管理是企业管理的最高境界,建设执行力文化不是一朝一夕的事情,它需要一个漫长的实践过程;
只有在执行文化理念深入到每个员工心里,转化为自觉行动,形成执行合力的时候,才能最终建立起有效的团队执行力文化。
(3)如何抓硬软件规范提升的扩展阅读
重要性
企业的规章制度是体现企业与劳动者在共同劳动,工作中所必须遵守的劳动行为规范的总和.依法制定规章制度是企业内部的”立法”,是企业规范运行和行使用人权的重要方式之一,企业应最大限度地利用和行使好法律赋予的这一权利。
聪明的企业都看到了这一点,但实践中还有很多企业并未对此予以重视,认为反正有国家法律,法规,出了事按国家法律,法规处理就行,其不然卖国家法律,法规是大法,不可以针对某个单位的具体情况,而企业的具体是千变万化的。
成功的企业多制度其效果是使企业运行平稳,流通,高效,并可基本上防患于未然.俗话说:”不成规矩,何以成方圆”,成功的企业及规章制度,50%更是直接因它而产生.
可以说规章制度的主要功能是:
1. 规范管理,能使企业经营有序,增强企业的竞争实力.
2. 制订规则,能使员工行为合矩,提高管理效率.
它的重要意义是:
制定企业规章制度是建立现代企业制度的需要.
制定企业规章制度是规范指引企业部门工作与职工行为需要.
企业的规章制度是完善”劳动合同制”,解决劳动争议不可缺少的有力手段。
‘肆’ 如何进行软硬件设置,使系统性能达到最优化
全面优化你的电脑,先用优化大师或超级兔子优化后,再挑选以下办法进行再优化。
一、系统属性设置
1、进BIOS由默认值改为优化设置值,将开机启动顺序设硬盘为第一启动。
2、禁用闲置的IDE通道
右键点击“我的电脑-属性”--“硬件”--“设备管理器”,在其中展开“IDE ATA/PATA控制器”然后分别右击“主要”和“次要”IDE通道--“高级设置”--将“设备类型”设置为“无”,将“传送模式”设为“DMA(若可用”。
3、优化视觉效果
右键单击“我的电脑”--“属性”—“高级”,在“性能”栏中,点击“设置”--“视觉效果”,调整为最佳性能,或去掉一些不需要的功能。
4、优化性能
右键单击“我的电脑”--“属性”—“高级”,在“性能”栏中,点击“设置”—“高级”—将“处理器计划”、“内存使用”,均选“程序”。
接着单击“虚拟内存”区“更改”--在驱动器列表中选中系统盘符--自定义大小--在“初始大小”和“最大值”中设定数值,然后单击“设置”按钮,最后点击“确定”按钮退出。虚拟内存最小值物理内存1.5—2倍,最大值为物理内存的2—3倍。
5、启动和故障恢复
"我的电脑"--"属性"--"高级"--"启动和故障修复"--“设置”,在“系统失败区中,去掉"将事件写入系统日志","发送管理警报","自动重新启动"前边的勾;将"写入调试信息"设置为"无";点击"编辑",在弹出记事本文件中:
[Operating Systems] timeout=30 把 30 秒改为 0 秒。
6、禁用错误报告
"我的电脑"--"属性"--"高级"--点"错误报告",选择"禁用错误汇报",勾选“但在发生严重错误时通知我”—确定。
7、关闭系统还原功能
单击“开始”--右键单击“我的电脑”--“属性”—“系统还原”,为了兼顾系统性能和系统安全,建议关闭 XP系统盘以外的分区磁盘的系统还原功能,点击“设置”,将“要使用的磁盘空间”设为最小。
8、关闭自动更新
单击“开始”--右键单击“我的电脑”--“属性”—-“自动更新”--选择“关闭自动更新”或选择“有可用下载时通知我……”。
9、关闭远程桌面
开始--右键单击“我的电脑”--“属性”--“远程”,去掉“远程协助”和“远程桌面”里的“允许从这台计算机发送远程协助邀请”和“允许用户远程连接到这台计算机”前边的勾--确定。
10、禁用消休眠功能
单击“开始”--“控制面板”--“电源管理”--“休眠”,将“启用休眠”前的勾去掉。
二、设置显示属性能
1、右击桌面空白处—属性 –将“背景”和“屏幕保护程序”设为“无”;去掉“开启桌面壁纸自动转换”前边的勾;
2、右击桌面空白处—属性 –-外观—效果—去掉“为菜单和工具提示使用下列过渡效果”前边的勾,勾选“使用下列方式使屏幕字体边缘平滑”—确定。
3、右击桌面空白处—属性 –设置—“屏幕分辨率”可设为800×600或1024×768;“颜色质量”一般不要设的太高,以设“中”为好。
4、右击桌面空白处—属性 –设置—高级—监视器—将“屏幕刷新率”纯平设为“75—85HZ”,液晶自动。
5、右击桌面空白处—属性 –设置—高级—“疑难解答”—将“硬件加速”调到“全”—确定。
三、关闭“Internet时间同步”功能
右击任务栏通知区时间—选“调整日期/时间”--“Internet时间”,取消“自动与Internet时间服务器同步”前的勾—确定。
四、关闭一些启动程序 开始-运行-msconfig---启动 ,除杀毒软件、输入法外一般的程序都可以关掉。
五、禁用多余的服务组件
右键单击“我的电脑”--“管理”--“服务和应用程序”--“服务”,在右窗格将不需要的服务设为禁用或手动。
六、关闭华生医生Dr.Watson
单击“开始”--“运行”--输入“drwtsn32”命令,或者“开始”--“所有程序”--“附件”--“系统工具”--“系统信息”--“工具/Dr Watson”,调出系统里的华生医生Dr.Watson ,只保留“转储全部线程上下文”选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。
七、修改注册表
1、加快开机及关机速度
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[HungAppTimeout]的数值数据更改为[200],将字符串值[WaitToKillAppTimeout]的数值数据更改为1000.另外在[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control],将字符串值[HungAppTimeout]的数值数据更改为[200],将字符串值[WaitToKillServiceTimeout]的数值数据更改1000.
2、自动关闭停止响应程序
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[AutoEndTasks]的数值数据更改为1,重新启动即可。
3、清除内存内被不使用的DLL文件
在[开始]-->[运行]-->键入[Regedit]-->[HKKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Windows]-->[CurrentVersion],在[Explorer]增加一个项[AlwaysUnloadDLL],默认值设为1。注:如由默认值设定为[0]则代表停用此功能。
4、加快菜单显示速度
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[MenuShowDelay]的数值数据更改为[0],调整后如觉得菜单显示速度太快而不适应者可将[MenuShowDelay]的数值数据更改为[200],重新启动即可。
5、加快自动刷新率
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control]-->[Update],将Dword[UpdateMode]的数值数据更改为[0],重新启动即可。
6、加快预读能力改善开机速度
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager]-->[MemoryManagement],在[PrefetchParameters]右边窗口,将[EnablePrefetcher]的数值数据如下更改,如使用PIII 800MHz CPU以上的建议将数值数据更改为4或5,否则建议保留数值数据为默认值即3。
7、利用CPU的L2 Cache加快整体效能
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager],在[MemoryManagement]的右边窗口,将[SecondLevelDataCache]的数值数据更改为与CPU L2 Cache相同的十进制数值:例如:P4 1.6G A的L2 Cache为512Kb,数值数据更改为十进制数值512。
8、在启动计算机时运行Defrag程序
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Dfrg]-->[BootOptimizeFunction ],将字符串值[Enable]设定为:Y等于开启而设定为N等于关闭。
9、关机时自动关闭停止响应程序
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_USERS]-->[.DEFAULT]-->[Control Panel],然后在[Desktop]右面窗口将[AutoEndTasks]的数值数据改为1,注销或重新启动。
10、加快宽带接入速度
在[开始]-->[运行]-->键入[regedit]-->在[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Policies]-->[Microsoft] -->[Windows],增加一个名为[Psched]的项,在[Psched]右面窗口增加一个Dword值[NonBestEffortLimit]数值数据为0。
11、加快宽带网速
打开注册表编辑器,找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip \ parameters, 右击parameters在右边空白处,选择左“新建”—>DWORD值边,将其命名为“DefaultTTL”,右击鼠标选出择“修改”,值改为 80(十六进制),或128(十进制)。
将 GlobalMaxTcpWindowSize 的值改为7FFF。
12、加速网上邻居
打开注册表编辑器,找到HKEY_LOCAL_MACHINE/sofew
are/Microsoft/Windows/Current Version/Explore/RemoteComputer/NameSpace,删除
其下的{2227A280-3AEA-1069-A2DE08002B30309D}(打印机)和{D6277990-4C6A-11CF8D87- 00AA0060F5BF}(计划任务)。
‘伍’ 三维动作捕捉软硬件要求
这个帖子没人回答估计大家都觉得难度很大。我来尝试下。不保证我对你帮助怎样,我尽力而为。三维动画捕捉只是三维软件里面的一种功能或插件。用来实现动画捕捉。3dmax,maya都可以做到。maya是专业的三维动画软件。您电视或网络看到的大型科幻片,动画片。都是它的杰作。至于硬件方面,目前配的3,4千的电脑都可以正常运行。如果您要配专业机,最少要准备12000左右。我工作的专业机就是DELL。最少2G内存。(内存取决于您制作当中的渲染速度)CUP跟显卡要求较高。当然还有行业专业的动作捕捉软件,boujou.这个软件估计很少人接触,它是摄像机跟踪软件电影特效的幕后英雄。也可以跟踪一些三维的动画捕捉。我上学的时候学过一个星期,因为不是主流软件。也没好好学。其他就没什么了,大概就是这些。不知道楼主满意不满意。
‘陆’ 如何测试软硬件配置的正确性给最佳答案
有硬件和软件两种方式
硬件可以用debug卡,市面上有买,你可以咨询装机公司,有不同型号
软件可以在网上下载,会显示你机器的各种配置
‘柒’ 软件与硬件是怎么结合的
软件(中国大陆及香港用语,台湾称作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。
硬件(英文名Hardware)是计算机硬件的简称(中国大陆及香港用语,台湾作硬体),是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。
简言之,硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。
实际上软件需要硬件的支撑才能使用,而同样硬件本身需要驱动程序和操作系统等软件支持才能使用。这形成了一个相互联系,协同作战的局面。人们把不装备任何软件的计算机机称为硬件计算机或裸机。裸机由于不装备任何软件,所以只能运行机器语言程序,它的功能显然得不到充分而有效的发挥。普通用户面对的一般不是裸机,而是在裸机之上配置若干软件之后所构成的微机系统。有了软件,就把一台实实在在的物理机器变成了一台具有抽象概念的逻辑机器,从而使人们不必更多地了解机器本身就可以使用计算机,软件在计算机和使用者之间架起了桥梁。正是由于各种完成不同任务的软件包(若干软件的集合),才使得计算机的应用领域日益广泛。当然,计算机硬件是支撑计算机软件工作的基础,没有足够的硬件支持,软件也无法正常地工作。实际上,在计算机技术的发展过程中,计算机软件随硬件技术的迅速发展而发展,反过来,软件的不断发展与完善又促进了硬件的新发展,两者的发展密切地交织在一起,缺一不可。
‘捌’ 如何从软硬件层面提升 Android 动画性能
动画放映过程中每帧画面可能都要重绘。如果使用视图层,,渲染过的视图可以存入离屏缓存以待将来重用,而无需每帧重绘。
此外,硬件层缓存与 GPU 中,这使得动画放映中的某些操作更加快速。简单的转换(平移,旋转,缩放,开端)可通过硬件层快速渲染。由于许多动画只是这些转换的组合,使用硬件层可大大提高动画性能。
‘玖’ 如何提高软件的质量
一、什么是质量? 作为软件产品的销售人员,市场人员或维护人员经常会受到客户这样那样的指责或抱怨,客户说:你们产品的质量太差,不稳定等等。那么什么是质量呢?我们该如何来衡量质量呢? 质量具有三个维度: �6�1 符合目标。目标是客户所定义的,符合目标即判断我们是不是在做需要做的事情。 �6�1 符合需求。即产品是不是在做让它做的事情。 �6�1 符合实际需求。实际的需求包括用户明确说明的和隐含的需求。 ISO 关于质量的定义表示如下: “ 一个实体(产品或服务)的所有特性,基于这些特性可以满足明显的或隐含的需要。 ” 注意,在这个定义中包含明显的需求和隐含的需求。而往往我们会忽略隐含的需求。因此在控制一个产品的质量的过程中必须关注这些隐含的需求,并给予应有的验证。 另一方面因为我们的产品是为客户提供服务的,因此凡是不满足客户需求的,我们都认为是一个失效( failure )。所以我们的产品必须始终围绕着客户的需求进行开发和验证。 这里我们谈到客户,其实在一个软件的需求收集过程中需要关注客户和用户。而我们经常会忽略客户与用户之间的区别。那么谁是客户?谁是用户呢?简单的来说,客户是真正能够决定是否购买你软件的人,而用户是实际使用软件的人。了解了这个区别,对于你在分析需求的重要性的时候就可以进行参考。同时在产品质量验证的时候也可以做出不同的权衡。另一方面我们在考虑我们用户需求的时候,往往只考虑了实际使用软件的人员,而忽略了其它一些人员对软件的要求或对软件造成的潜在竞争,这包括维护人员的要求、系统管理人员的要求、软件上下游人员的要求、先前版本的情况、市场上竞争对手的软件情况等。 每个人提到质量的时候,经常会遇到下列矛盾,在这些矛盾中隐含着对质量的承诺【 5 】: �6�1 质量需要一个承诺,尤其是高层管理者的承诺。但为了得到质量,高层管理者必须和其雇用的员工进行紧密合作; �6�1 许多人相信没有缺陷的产品和服务是不可能的。但是控制在一定级别的缺陷数是正常并可接受的; �6�1 质量经常是和成本紧密联系在一起,一个高质量的产品同时也意味着高投入。这是设计的质量和一致性质量的一个矛盾; �6�1 一个高的质量要求需求规格说明书足够详细,以便产品可以根据这些规格说明书进行定量的分析。然而许多组织没有能力或者不愿意产生如此详细程度的规格说明书; �6�1 技术人员经常相信规范和标准会束缚他们的创造力,因此就不遵照标准做事。然而如果要得到高质量的产品,就必须遵循良好定义的标准和过程。 二、流程对质量的贡献 好了,既然已经了解了什么是质量,那么怎么才能改进软件产品的质量呢?从一个企业的长远发展来看,首先应当从流程抓起,规范软件产品的开发过程。这是一个软件企业从小作坊的生产方式向集成化、规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。 软件产品的开发同其它产品(如汽车)的生产有着共同特性,即需要按一定的过程来进行生产。在工业界,流水线生产方式被证明是一种高效且能够比较稳定地保证产品质量的一种方式。通过这种方式,不同的人员被安排在流程的不同位置,最终为着一个目标共同努力,这样可以防止人员工作间的内耗,极大的提高工作效率。并且由于其过程来源于成功的实例,因此其最终的产品质量能够满足过程所设定的范围要求。软件工程在软件的发展过程中吸取了这个经验并把它应用到了软件开发中,这就形成了软件工程过程,简单的说就是开发流程。 无论做什么事情,都有一个循序渐进的过程,从计划到策略再到实现。软件流程就是按照这种思维来定义开发过程,它根据不同的产品特点和以往的成功经验,定义了从需求到最终产品交付的一整套流程。流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。 目前流行的流程方法有很多种,不同的过程模型适合于不同类型的项目。瀑布模型是应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而它的缺陷也是显而易见的。遗漏的需求或者不断变更的需求会使得该模型无所适从。然而,对于那些容易理解但很复杂的项目,采用瀑布模型会是比较适合的,因为你可以按部就班的去处理复杂的问题。在质量要求高于成本和进度要求的时候,该模型表现的尤其突出。 螺旋模型是也是一个经典模型,它关注于发现和降低项目的风险【 8 】。螺旋型项目从小的规模开始,然后探测风险,制定风险控制计划,接着确定下一步项目是否还要继续,然后进行下一个螺旋的反复。该模型的最大优点就是随着成本的增加,风险程度随之降低。然而螺旋模型的缺点是比较复杂,且需要管理人员有责任心,专注以及有管理方面经验。 RUP ( Rational Unified Process )是 Rational 公司提出的一套开发过程模型,它是一个面向对象软件工程的通用业务流程【 9 】。它描述了一系列相关的软件工程流程,它们具有相同的结构,即相同的流程构架。 RUP 为在开发组织中分配任务和职责提供了一种规范方法,其目标是确保在可预计的时间安排和预算内开发出满足最终用户需求的高品质的软件。 RUP 具有两个轴,一个是时间轴,这是动态的。另一个是工作流轴,这是静态的。在时间轴上, RUP 划分了四个阶段:初始阶段、细化阶段、构造阶段和发布阶段。每个阶段都使用了迭代的概念。在工作流轴上, RUP 设计了六个核心工作流程和三个核心支撑工作流程,核心工作流轴包括:业务建模工作流、需求工作流、分析设计工作流、实现工作流、测试工作流和发布工作流。核心支撑工作流包括:环境工作流、项目管理工作流和配置与变更管理工作流。具体可以参考图 1 。 RUP 汇集现代软件开发中多方面的最佳经验,并为适应各种项目及组织的需要提供了灵活的形式。作为一个商业模型,它具有非常详细的过程指导和模板。但是同样由于该模型比较复杂,因此在模型的掌握上需要花费比较大的成本。尤其对项目管理者提出了比较高的要求。 图1 RUP 工作流程示意图 IPD ( Integrated Proct Development )流程是由 IBM 提出来的一套集成产品开发流程,非常适合于复杂的大型开发项目,尤其涉及到软硬件结合的项目。 IPD 从整个产品角度出发,流程综合考虑了从系统工程、研发(硬件、软件、结构工业设计、测试、资料开发等)、制造、财务到市场、采购、技术支援等所有流程。是一个端到端的流程。在 IPD 流程中总共划分了六个阶段(概念阶段、计划阶段、开发阶段、验证阶段、发布阶段和生命周期阶段),四个个决策评审点(概念阶段决策评审点、计划阶段决策评审点、可获得性决策评审点和生命周期终止决策评审点)以及六个技术评审点,具体可以参考图 2 。 IPD 流程是一个阶段性模型,具有瀑布模型的影子。该模型通过使用全面而又复杂的流程来把一个庞大而又复杂的系统进行分解并降低风险。一定程度上,该模型是通过流程成本来提高整个产品的质量并获得市场的占有。由于该流程没有定义如何进行流程回退的机制,因此对于需求经常变动的项目该流程就显得不大适合了。并且对于一些小的项目,也不是非常适合使用该流程。 图2 IPD 流程示意图 三、流程与技术 流程和成功不是等价的。没有流程就成功是不可能得到保证,但有了流程并不意味着肯定能够成功。这恐怕是很多迷信于流程的人所不能接受的。但这的确是个事实。记得有个做了将近 30 多年的需求分析专家说过:即使是一个已经达到 CMM4 级的公司,也完全有可能做不好需求分析。为什么?技术,技术是成功的另外一个必要条件。就好比现在你要从上海到北京去,流程给你指出了最短的路径,技术提供给你最快的交通工具。两者结合就是完美。 对于软件开发来说,要保证软件的质量,需要掌握多方面的技术,包括分析技术、设计技术、编码技术和测试技术等等。在国内有一个普遍的非正常现象,就是大家觉得只有编程能力才是玩电脑的真正技能。就好像造一套房子,其它都不重要,只要砖瓦匠有高超的技能就行了。尽管这个比喻会打击很多程序员的自尊心,但这的确是一个事实。我们缺少系统级的工程师,在分析和设计方面的工作做得很不扎实。 需求是一个项目的灵魂。模棱两可的需求带来不可避免的后果便是返工 —— 重做一些你认为已做好的事情。返工会耗费开发总费用的 4 0 % ,而 7 0 % ~ 8 5 % 的重做是由于需求方面的错误所导致的( l e ff i n g w e l l1 9 9 7 )【 10 】。想象一下如果你能减少一半的返工会是怎样的情况?你能更快地开发出产品,在同样的时间内开发更多、更好的产品,甚至能偶尔回家休息休息。在《软件需求》一书中关于如何进行需求分析给出了比较详细的介绍【 7 】, RUP 中关于需求的指导也是很实用的。 设计是最能体现一个工程师能力和水平的环节。一个好的设计基本上决定了产品的最终质量。设计是把需求转换成系统的一个关键步骤,它需要从自然语言描述的需求中寻找出设计的基础单元,构建出整个系统的构架。在 RUP 中关于系统构架师和设计师的定位是相当高的。关于设计方面的技能涉及面是很广的,包括传统的结构化设计到面向对象设计。设计人员需要掌握一定的建模技术。 UML 是国际上比较流行的一种建模语言【 11 】。在嵌入式方面, SDL 也是一种非常好的选择。《设计模式》是在设计思想方面总结的非常出色的一本书【 6 】,作为一名设计人员(尤其是面向对象设计人员)必须要好好研究一下。但是对这些模式的应用应当讲究一种自然的应用,千万不要因为模式而去设计模式,否则会适得其反。 现在的程序员热中于掌握多种编程语言,或者讲究语言的过分技巧化,而往往忽略了编程语言的规范化。不规范的语言应用给程序的可理解性、可维护性以及可测试性带来了大的伤害,进而损害了产品的质量。某公司曾对中国程序员和印度程序员做过一个测验,这个测验要求参加者对一组数进行排序。测试结果发现,印度程序员设计的程序使用的算法并不是最优,但却是最不容易出错的,并且几个程序员写出来的代码如出一辙。而几个中国程序员写出的代码,有的非常漂亮,很精练,效率很高;有的却很冗杂,还有错误。如果大家是在做研究性的项目或纯粹兴趣性的项目,那么充分发挥自己的编程天才也无可厚非。然而,对于一个软件公司,产品最终是要交给用户的,需要遵循的是一个软件产品的开发工程。因此这类软件的开发需要遵循一定的编程规范,毕竟开发的软件不是自己用,还需要和别人的集成,还需要给以后版本重用和维护。 测试的技术将在第五节进行阐述。总之流程很关键,技术也很重要,我的观点是:鱼和熊掌,两者都不能放。 四、全面质量管理 自从 Deming 的全面质量管理( TQM )原则在日本工业界获得了巨大成功之后,这个原则迅速被传播到了世界各个地方,同样,全面质量管理原则也被应用到了软件开发当中。如前面提到的,软件开发也是一个工程性的工作,因此必须提高整个工程的质量。产业界的大量研究( TRW 、 Nippon Electric 和 Mitre Corp. 以及其它一些公司)表明设计活动引入的错误占软件过程中出现所有错误(和最终的缺陷)数量的 50 %到 65 %。根据 IBM 的研究表明,假定在分析阶段发现的错误其改正成本为 1 个单位的话,那么在测试之前(设计编码阶段)发现一个错误的修改成本约为 6.5 个货币单位,在测试时(集成测试,系统测试和验收测试)发现一个错误的修改成本约为 15 个货币单位,而在发布之后(已经交到用户手上)发现一个错误的修改成本约为 60 到 100 个货币单位。同样该比例也适用用于发现一个错误需要的时间。我们可以看下面两条曲线图: 图3 缺陷代价曲线 为了提高产品质量,缩短产品开发进度,节约产品开发成本,必须尽早的进行产品质量控制。全面质量控制要求在过程的每个阶段每个步骤上都要进行严格的验证和确认活动。 什么是验证? 验证 就是要用数据证明我们是不是在正确的制造产品。注意这里强调的是过程的正确行【 12 】。 什么是确认? 确认 就是要用数据证明我们是不是制造了正确的产品。注意这里强调的是结果的正确性。 IEEE 给出的验证和确认过程可以用下图来表示。验证和确认是一个广泛的概念,感兴趣的读者可以参考 IEEE Std 1012-1998 。
图4 验证和确认模型 五、关注测试 软件测试是软件质量控制中的关键活动。业界的统计数据表明,测试的成本大约占软件开发总成本的 50 %左右。 软件测试的目的是要发现软件中的错误。一个好的测试是发现至今没有被发现的错误。传统的软件测试专注于动态测试范畴,如:单元测试,集成测试和系统测试。而测试工程的发展已经进入到了全流程的测试,包括开发过程前期的静态测试。 一般我们可以把测试分为白盒测试和黑盒测试。 白盒测试 :顾名思义,白盒测试应当是透明的。的确,该类测试是根据程序代码的内部逻辑结构来设计测试用例进行测试。那么什么是测试用例? 一个 测试用例 就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。 黑盒测试 :看了白盒测试的解释,我想你很快就能猜出黑盒测试是不考虑程序内部结构情况的。事实上也是这样。黑盒测试是根据规格说明书进行的测试。 规格说明书 记录了用户的需求。比如用户希望在编辑器中增加查找功能,那么我们把该需求写入规格说明书,根据该项要求,直接调用应用程序的该项功能进行测试,而不管其内部是用什么算法实现的。 白盒和黑盒这两类测试是从完全不同的出发点,并且是两个完全对立点,反映了事物的两个极端,两种方法各有侧重,不能替代。但是在现代测试理念中,这两种测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法,在黑盒测试中交叉使用白盒测试的方法。 常见的白盒测试是单元测试。 单元测试 是测试中最小单位的测试。简而言之,就是拿一个函数出来,加上驱动模块,桩模块,让它能够运行起来,然后设计一些用例测试其内部的控制点(如:条件判断点,循环点,选择分支点等)。 驱动模块 是模拟调用被测函数的函数。 桩函数 是模拟当前测试函数所调用的函数。 常见的黑盒测试包括:集成测试,系统测试。 集成测试 是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。 系统测试 的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下来运行。系统测试的内容极其广泛,包括功能测试、协议测试、性能测试、压力测试、容量测试等等。有关测试方面的概念可以参考本人已出版的《软件测试技术概论》。 软件测试是产品最终交付到用户之前的最后一道防线,有着举足轻重的地位。然而,做好软件测试却是不容易的,一方面你需要同时掌握软件开发的技能和软件测试方面的技能;另一方面产品必须给予测试充分的独立性和资源保证。 六、成功的铁三角 在一个软件企业中,如果能够良性的发展,必须关注组织,流程和人三者之间的关系。组织是流程成功实施的保障,好的组织结构能够有效的促进流程的实施;流程对于产品的成功有着关键的作用,一个适合于组织特点和产品特点的流程能够极大的提高产品开发的效率和产品质量,反之则会拖延产品开发进度,并且质量也无法得到保证;对企业来说,人是最宝贵的财富,它们是技术的载体。对于一个软件公司来说,无论是开发人员还是测试人员,都非常关心其今后的发展通道,如果有一条清晰的技术发展线为其指明今后的职业发展方向的话,这可以大大激励员工的士气和工作积极性。另外技术发展的方向应该与现在的开发流程和规范相结合,这样有利于专业技能的提高。 总之,组织,流程和人这三者是一个企业成功的铁三角,理想的情况下它们彼此促进,糟糕的情况下它们彼此制约。 七、国际上流行的质量标准 最早进入国内的质量标准是 ISO 系列。在软件方面主要使用 ISO9000 系列标准。 ISO9000 是一个非常完整的标准,并且定义了供应商设计和交付一个有质量产品的能力所需要的所有元素。 ISO9002 涵盖了对供应商控制设计和开发活动所认为重要的质量标准。 ISO9003 用于证明供应商在检视和测试期间检测和控制产品不一致性的能力。 ISO9004 描述和 ISO9001 、 ISO9002 和 ISO9003 相关的质量标准,并提供了一个完整的质量查检表。 软件能力成熟度模型是目前国内软件企业中非常受欢迎的一个质量标准。并且该标准已经成为业界一个事实上的标准。 CMM 为软件组织提供了一个指导性的管理框架。在这个框架的指导下: �6�1 软件组织可以对其软件开发、维护过程获得控制。 �6�1 软件组织可以推进其软件工程更为科学、推进软件过程管理更为卓越。 �6�1 CMM 通过确定当前软件过程管理的成熟度,通过标识软件的质量和过程改进中关键的、要害的问题,可以指导软件组织选择正确的软件过程改进策略。 �6�1 CMM 将其焦点,聚焦在一系列具体的软件过程活动上,并以侵略方式( Aggressively )达到这些活动。一个软件组织就可以稳定地、持续地改进其整个软件组织过程,使得其软件过程管理能力取得持续地、持久地不断争长提高。 在 CMM 中,把软件工厂分为五个等级:初始级、可重复级、已定义级、管理级和优化级。其中: 初始级 :软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。 可重复级 :人们根据多年的经验和教训,总结出软件开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,可重复的过程才能逐渐改进和成熟。可重复级的管理过程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面;其中项目管理过程又分为计划过程和跟踪与监控过程。通过实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的软件开发过程。 已定义级: 要求制定企业范围的工程化标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程裁剪出与项目适宜的过程,并且按照过程执行。过程的裁剪不是随意的,在使用前必须经过企业有关人员的批准。 管理级 :所有过程需建立相应的度量方式,所有产品的质量(包括工作产品和提交给用户的最终产品)需要有明确的度量指标。这些度量应是详尽的,且可用于理解和控制软件过程和产品。量化控制将使软件开发真正成为一种工业生产活动。 优化级: 的目标是达到一个持续改善的境界。所谓持续改善是指可以根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。如果企业达到了第五级,就表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最佳。 美国国防部规定,重要性级别高的软件应该由质量级别高的企业承担。不同等级的软件公司提交的软件,其软件质量也相差很大,国外的一份统计资料如下: 表 1 、 CMM 级别与软件质量关系表格 每千行软件的缺陷数目
软件过程成熟度等级
软件准时提交的百分比
每人每月生产的程序行数
软件需要返工的百分比
平均软件失效时间(近似)
大于 10
初始级
<=50
Z
>=45
2 到 60 分钟
小于 10
可重复级
90
1.5Z
20
1-160 小时
小于 1
已定义级
99
2.5Z
10
不确定
小于 0.1
管理级
降低开发时间到 1/2
5 Z
5
不确定
小于 0.01
优化级
降低开发时间到 1/4
10Z
<=2
近似完全可靠
对于很多已经推行或者准备推行 CMM 的公司来说, CMM 的起步是很难的,因此 Humphrey 又提出了 PSP ( Person Software Process )和 TSP ( Team Software Process )【 2 】【 3 】。 CMM 是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式【 1 】。企业只有开始 CMM 改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。 PSP 能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。经过 PSP 学习和实践的正规训练,软件工程师们能够在他们参与的项目工作之中充分运用 PSP ,从而有助于 CMM 目标的实现。 TSP 结合了 CMM 的管理方法和 PSP 的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与组织进而整个管理系统相联系;通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项目的管理,向组织展示如何应用 CMM 的原则和 PSP 的技能去生产高质量的产品。 软件的生产过程及其它的许多子过程、软件的开发者和用户、以及系统的使用中存在着巨大的变化和不同,要使一个软件过程对软件生产的改善真正有所帮助,其框架应是由 CMM 、 TSP 和 PSP 组成的一个完整体系,即从组织、群组和个人三个层次进行良好的软件工程和管理实践的指导和支持。总而言之,单纯实施 CMM ,永远不能真正做到能力成熟度的升级,只有将实施 CMM 与实施 PSP 和 TSP 有机地结合起来,才能发挥最大的效力。 八、如何起步? 质量改进需要花费成本,因此改进的途径需要视不同公司的规模、业务、财务状况、人员技术水平等多方面综合进行考虑。一般建议中型以上的较大的软件公司实施 CMM 体系。而对于一些小型的软件公司可以采取比较实际的,相对成本较少,且容易操作的方面进行,这些方面大致如下: �6�1 实施简洁的开发过程体系,根据不同业务特点可以选择瀑布模型,迭代模型等,并在这些模型上进行适当的变化以适应于短平快的产品开发特点。 �6�1 提高需求分析和设计方面的技术,例如:原型法技术,分析模式,设计模式,面向对象设计, UML 等; �6�1 加强文档化工作。文档是经验的保留,对于一个企业要想获得长期的发展,必须加强文档化工作; �6�1 加强编程规范工作; �6�1 进行适当的测试工作,建议进行单元测试和系统测试; �6�1 实施配置管理工作,加强版本控制; �6�1 开展走读、评审和检视活动,尤其要加强代码走读,建议进行每日交叉走读活动; �6�1 进行简单的度量分析获得;建议实施 PSP 活动;