📄 200602281725525.html
字号:
<P><FONT face=Verdana> 第四,重视开发过程的管理。软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。</FONT></P>
<P><FONT face=Verdana> 这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方法,要提供高质量的工程支撑,要实行开发过程的有效管理;软件工程活动主要包括需求、设计、实现、确认和支持等活动,每一活动可根据特定的软件工程,采用合适的开发范型、设计方法、支持过程以及过程管理。根据软件工程这一框架,软件工程学科的研究内容主要包括:软件开发范型、软件开发方法、软件过程、软件工具、<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200602282250045.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200602282250045.html'" tppabs="http://www.itisedu.com/phrase/200602282250045.html" target="_new">软件开发环境</a>、计算机辅助软件工程(CASE) 及软件经济学等。 </FONT></P>
<P><FONT face=Verdana> 作用:高效开发高质量软件 </FONT></P>
<P><FONT face=Verdana> 自从软件工程概念提出以来,经过30多年的研究与实践,虽然“软件危机”没得到彻底解决,但在软件开发方法和技术方面已经有了很大的进步。尤其应该指出的是,自80年代中期,美国工业界和政府部门开始认识到,在软件开发中,最关键的问题是软件开发组织不能很好地定义和管理其软件过程,从而使一些好的开发方法和技术都起不到所期望的作用。也就是说,在没有很好定义和管理软件过程的软件开发中,开发组织不可能在好的软件方法和工具中获益。</FONT></P>
<P><FONT face=Verdana> 根据调查,中国的现状几乎和美国10多年前的情况一样,软件开发过程没有明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全组织的过程改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高。</FONT></P>
<P><FONT face=Verdana> 这一事实告诉我们,只有坚持软件工程的四条基本原则,既重视软件技术的应用,又重视软件工程的支持和管理,并在实践中贯彻实施,才能高效地开发出高质量的软件。 </FONT></P>
<P><FONT face=Verdana><STRONG>二、软件工程的七条基本原理</STRONG></FONT></P>
<P><FONT face=Verdana> 自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续 提出了100多条关于软件工程的准则或信条。 美国著名的软件工程专家 Boehm 综合这些专家的意见,并总结了TRW公司多年的开发软件的经验,于1983年提出了软件工程的七条基本原理。 </FONT></P>
<P><FONT face=Verdana> Boehm 认为,着七条原理是确保软件产品质量和开发效率的原理的最小集合。 <BR> 它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。 </FONT></P>
<P><FONT face=Verdana> 人们当然不能用数学方法严格证明它们是一个完备的集合,但是可以证明,在此之前已经提出的100多条软件工程准则都可以有这七条原理的任意组合蕴含或派生。 </FONT></P>
<P><FONT face=Verdana> 下面简要介绍软件工程的七条原理: </FONT></P>
<P><FONT face=Verdana> 1 用分阶段的生命周期计划严格管理 <BR> 这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把<a href="200603061230195.html" tppabs="http://www.itisedu.com/phrase/200603061230195.html" target="_new">软件生命周期</a>分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。 Boehm 认为,在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。 </FONT></P>
<P><FONT face=Verdana> 2 坚持进行阶段评审 <BR> 统计结果显示: 大部分错误是在编码之前造成的,大约占63%; <2> 错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 因此,软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。 </FONT></P>
<P><FONT face=Verdana> 3 实行严格的产品控制 <BR> 开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200602271137552.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200602271137552.html'" tppabs="http://www.itisedu.com/phrase/200602271137552.html" target="_new">配置管理</a>。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。 </FONT></P>
<P><FONT face=Verdana> 4 采纳现代程序设计技术 <BR> 从六、七时年代的结构化软件开发技术,到最近的<a href="200603101726185.html" tppabs="http://www.itisedu.com/phrase/200603101726185.html" target="_new">面向对象</a>技术,从第一、第二代语言,到第四代语言,人们已经充分认识到:方法大似气力。采用先进的技术即可以提高软件开发的效率,又可以减少软件维护的成本。 </FONT></P>
<P><FONT face=Verdana> 5 结果应能清楚地审查 <BR> 软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限, 尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。 </FONT></P><FONT face=Verdana>
<P><BR> 6 开发小组的人员应少而精 <BR> 开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。 <BR> 这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多; 当开发小组为N人时,可能的通讯信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大。 </P>
<P> 7 承认不断改进软件工程实践的必要性 <BR> 遵从上述六条基本原理,就能够较好地实现软件的工程化生产。但是,它们只是对现有的经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。因此,Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条原理。根据这条原理,不仅要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错<a href="200603051002565.html" tppabs="http://www.itisedu.com/phrase/200603051002565.html" target="_new">类型</a>和问题报告统计。这些数据既可以用来评估新的 软件技术的效果,也可以用来指明必须着重注意的问题和应该优先进行研究的工具和技术。 </P>
<P> 面向方面的编程(Aspect Oriented <a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604232129205.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604232129205.html'" tppabs="http://www.itisedu.com/phrase/200604232129205.html" target="_new">Programming</a>,简称<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604231341385.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604231341385.html'" tppabs="http://www.itisedu.com/phrase/200604231341385.html" target="_new">AOP</a>)被认为是近年来软件工程的另外一个重要发展。这里的方面指的是完成一个功能的<a href="200603090845215.html" tppabs="http://www.itisedu.com/phrase/200603090845215.html" target="_new">对象</a>和函数的集合。在这一方面相关的内容有泛型编程(Generic Programming)和模板。</P>
<P>参考<BR> 胡崑山,《中国软件产业发展现状与人才需求》,2003年9月1日, http://software.ccidnet.com/pub/article/c372_a62973_p1.html </P>
<P><FONT face=Verdana><STRONG>三、软件工程的目标与常用模型</STRONG> </FONT></P>
<P><FONT face=Verdana> 软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。生产率是软件供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。 </FONT></P>
<P><FONT face=Verdana> 软件供需双方的代表能在餐桌上谈笑风生,归功于第一线开发人员的辛勤工作。质量与生产率的提高就指望程序员与程序经理。对开发人员而言,如果非得在质量与生产率之间分个主次不可,那么应该是质量第一,生产率第二。这是因为:(1)质量直接体现在软件的每段程序中,高质量自然是开发人员的技术追求,也是职业道德的要求。(2)高质量对所有的用户都有价值,而高生产率只对开发方有意义。(3)如果一开始就追求高生产率,容易使人急功近利,留下隐患。宁可进度慢些,也要保证每个环节的质量,以图长远利益。 </FONT></P>
<P><FONT face=Verdana> 软件的质量因素很多,如正确性,性能、可靠性、容错性、易用性、灵活性、可扩充性、可理解性、可维护性等等。有些因素相互重叠,有些则相抵触,真要提高质量可不容易啊! </FONT></P>
<P><FONT face=Verdana> 软件工程的主要环节有:人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试、维护等,如图1.1所示。 </FONT></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -