软件工程概论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第13章软件重用技术
13.1 典型问题分析和解答
【例1】实施软件重用的目的是要使软件开发工作进行得( A )。软件重用的实际效益除了( B )之外,在企业的经营管理方面也渴望达到理想的效益。
新的应用软件开发技术和工具是以( C )作为关键,重用大粒度的( D ),为的是快速开发应用软件。这些新技术包括微软的( E )、( F )、(G ),SUN公司的Java,OMG公司的CORBA、IDL等。
供选择的答案:
A. ①更简捷②更方便③更快、更好、更省④更丰富
B. ①重用率②功能扩充③效率④空间利用率
C, D. ①软件②固件③构件④属性
⑤对象⑥事物⑦数据⑧代码
E~G. ①office ②Visual Basic ③Active X ④Photoshop
⑤OLE ⑥Fortran ⑦COBOL ⑧Delphi
答案:A. ③, B. ①, C. ③, D. ⑤, E. ②, F. ③, G. ⑤。其中,E、F、G的答案顺序可互换。
分析:实施软件重用的目的是要使软件开发工作进行得是更快、更好、更省。“更快”是指在市场竞争环境中,软件开发工作能满足市场上时间方面的要求(即在提供软件产品的时间方面能赛过竞争对手);“更好”是指开发出来的软件在未来的运行中失效可能性小;“更省”是指在开发和维护期间所花费的开销少。
日美一些大公司的资料表明,软件重用率最高可望达到90 %,而且软件重用使得企业在及时满足市场、软件质量、软件开发和维护费用等方面都得到显著的改进。
除了重用率之外,在企业的经营管理方面也可望达到理想的效益。例如,上市时间可缩短2 ~ 5倍;软件产品的缺陷密度可减少5 ~ 10倍;软件产品的维护费用可减少5 ~ 10倍;软件开发总费用可减少15% ~ 75%,其中,75%是针对长期项目,包括开发可重用构件及支持重用的负担。
新的应用软件开发技术和工具是以“构件”作为关键,重用大粒度的“对象”,为的是快速开发应用软件。这些新技术包括微软的Visual Basic、Active X、OLE(对象链接与嵌入),SUN公司的Java,OMG公司的CORBA(公用对象请求代理程序体系结构)、IDL(接口定义语言)等。非面向对象语言(如COBOL和Fortran)在重用实践中已经相当的成功。这些非面向对象程序设计语言构件技术的成功实践说明了实现软件重用并不限于面向对象语言构件或类库。
【例2】以往的软件工程技术不能满足重用的需要,体现在工程、( A )、( B )、经营业务等4个方面。“工程”指软件开发工程,表现在缺乏( C )手段,缺乏( D )构件,缺乏对潜在可重用的( E ),缺乏实施重用的工具。
供选择的答案:
A, B. ①需求②过程③环境④组织管理
C ~ E. ①重用②可靠性③灵活性④界定
⑤工具⑥互连性
答案:A. ②, B. ④, C. ④, D. ①, E. ③。其中,A、B的答案的顺序可互换。
分析:以往的软件工程技术不能满足重用的需要,体现在工程、过程、组织管理、经营业务等4个方面。这里所说的“工程”是指软件开发工程,其技术和方法面对重用的需要已显得低效,主要表现在:
▪缺乏界定手段:为了软件重用,需要循软件开发流程的各个阶段,通过分析它们的描述模型,明确界定出潜在可重用的部分,被界定出的部分,可能是可被重用的部分,也可能是可被可重用构件代用的部分。而以往的软件工程缺乏这种界定手段。
▪缺乏可重用的构件:这反映在许多方面。例如,不能有效地挑选出可重用构件并对它们进行强化;缺乏对构件打包、文档化、分类、界定的技术;缺乏有效方法进行(构件)库的设计和实现;缺乏良好的构件库存取方法。
▪缺乏对潜在可重用构件的灵活性:如果一个构件很死板,那么它被重用的机会就很少。而过去的软件工程方法在设计灵活的、分层的软件体系结构方面一直没有成熟的办法。过去的方法是对构件进行调节使之满足新的需求,或者使对新的体系结构进行限制。
▪缺乏实施重用的工具:为了实施重用,需要一系列新的工具,并把它们集成到面向重用的软件工程环境中去。而过去的工程缺乏这方面的工具。
【例3】论域工程过程要在选定的应用论域中界定出( A )和( B ),要为多个应用和构件定义一个( C ),并开发一系列可适度扩展的( D )。创建可重用构件既困难又昂贵。所以,应当帮助软件人员进行界定工作,以及按重要性对各项( E )进行优先性排队。在一定程度上,这项工作要依赖于( F )。
供选择的答案:
A, B, E, F:①共性②特性③可变性④属性
⑤灵活性⑥可靠性⑦健壮性⑧适用性
C, D:①固件②构件③体系结构④组件
⑤总体框图⑥数据结构
答案:A. ①, B. ③, C. ③, D. ②, E. ②, F. ⑥。其中,A、B的答案顺序可互换。
分析:论域工程过程要在选定的应用论域中界定出共性和可变性,要为多个应用和构件定义一个体系结构,并开发一系列可适度扩展的构件。创建可重用构件既困难又昂贵。所以,应当帮助软件人员进行界定工作,以及按重要性对各项“特性”进行优先性排队。在一定程度上,这项工作要依赖于预测的可靠性(预测需要哪些应用层的可靠性和构件层的可靠性),这也关系到我们要冒多大的风险。
【例4】软件体系设计的一个中心问题是能否( A ),以及采用何种软件体系结构风格。有原则地使用体系结构风格可带来一些实际的好处:
(1)它促进了对设计的( B );
(2)它可以带来显著的( C )(体系结构风格的不变部分使它们可以共享同一个实现代码);
(3)只要系统是使用常用的、规范的方法组织起来的,就可以让其它设计者很容易地理解软件的体系结构;
(4) 对标准或规范风格的使用也支持了( D ),例如像CORBA这样的面向对象的架构和基于事件机制的工具的集成;
(5)在限制了设计空间的情况下体系结构风格通常允许进行特殊的与风格有关的分析;
(6)通常可以对特定的风格提供( E )手段。
供选择的答案:
A C. ①使用特定的体系模式②使用重复的体系模式