当前位置:文档之家› 软件复用课后题

软件复用课后题

1软件复用与传统软件开发的重用的差异?
软件复用是指重复使用“为了复用目的而设计的软件”的过程。

相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用
1 分析传统产业的发展,其基本模式均是符合标准的零部件(构件)生产以及基于标准构件的产品生产(组装) ,其中,构件是核心和基础,“复用”是必需的手段.
2软件产业要发展并形成规模经济,标准构件的生产和构件的复用是关键因素.这正是软件复用受到高度重视的根本原因
2影响软件可复用性的因素
软件构件技术(Software component technology)
领域工程(Domain Engineering)
软件构架(Software Architecture)
软件再工程(Software Reengineering)
开放系统(Open system)
软件过程(Software Process)
CASE技术等以及各种非技术因素。

3、什么是领域工程?领域工程对软件复用的影响表现在那些方面?
领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动.领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域领域工程包括三个主要的阶段.
(1)领域分析
(2)领域设计
(3)领域实现
领域工程作为软件复用的核心技术之一其主要目的是实现对特定领域中可复用成分的分析、生产和管理。

领域工程的萌芽最早可以追溯到帕尔纳斯Parnas在1976年提出的“程序家族Program Family”的概念[12]。

其基本思想是把一组具有显著共性的程序作为一个整体/家族并对其共性进行分析其动机则是为了简化一组相似程序的开发和维护。

后来提出出了“领域分析”的概念[11]用来指代“识别特定问题域中一组相似系统所包含的对象和操作的活动”。

他还对领域分析和软件系统分析这两种活动进行了对比提出了“领域分析员”的概念并分析了在软件复用活动中领域分析的必要性和可行性。

或者通过领域工程获得软件构件/构架面向领域的构件数目大面向领域的构架更具体面向领域的复用复用程度高因此:领域工程是获取构件/构架的主要途径。

4、你认为软件复用成功的因素都包括那些方面?
1软件越来越多地渗透到生活的各个方面,对于许多工业和商业企业来说,他们的目标有多种:是顾客满意、提供及时的产品和服务、降低成本等。

提高业务能力通常意味者他们必须提高他们的软件开发能力。

在这种情况下,成功意味着他们的软件必须:Faster BetterCheaper “Reuse”。

The “Holy Grail”of today’s IT environment
2如何达到这个目标?两条途径:1提高软件产品的生产效率2软件复用许多公司都在试图提高他们的软件开发能力,对象和构件的复用成为他们软件工程的策略
3构件系统的思想也从简单的代码扩展到需求、分析模型、设计和测试。

所有这些软件开发过程的步骤都围绕着
4复用的成功例子1984-Hewlett-Packard achieved 25% to 50% reuse levels in firmware(固件,
韧件‘软硬结合’)。

5、结构、过程、组织几个方面是如何影响复用的?
传统的软件开发过程缺乏有计划的复用缺乏机会来鼓励复用。

系统化的复用实践非常少
1一般在某个时间都是把开发的焦点集中到一个项目上管理小组需要向前看,把着眼点放在覆盖一个应用范围内的一系列项目上。

2需要以一个领域为焦点项目和领域的固有冲突
3缺乏软件复用的知识管理者:组织复用知识开发者:复用过程的知识
6、探讨复用业务的建立与管理?
1 最佳方式是通过系统化地使用业务流程再造的方法,具体地说就是面向对象的业务工程方法(Jacobson,1994).重新设计现有的软件开发模式。

2 随着复用业务的建立,相应设置了组织机构、管理策略和规划。

一旦建立了复用业务,就需要进行管理和优化。

3 复用业务整体的管理涉及单个项目和过程管理之上的责任。

这些责任中第一位的可能是保证未来计划的制定和执行,以及与上层管理者的沟通。

4 为了解决组织和系统的复杂性和规模问题,RSEB必须以系统化方式管理风险。

解决规模问题的一种主要方法是采用渐进模式,即连续不断地扩充系统、过程和组织的不同部件
5 RSEB 需要的的管理功能
确定谁将拥有和维护特定的组件系统;
收集指标数据以管理和优化复用业务;
确定在所规划的业务中,需要多少工作人员,并安排招聘、培训和工资事宜;
综合考虑管理要素,例如产品上市时间、成本、功能和质量,并解决资源和进度方面的冲突;
6 复用业务的采用有的种极端的方式——一个是把整个当前机构、过程和人员小步转移到新的模式上;另一个是构建全新的复用业务机构,而让现有的软件开发机构继续进行日常话动。

7 有些公司已经成功地选择了个新机构的单一工作,然后渐进地在新机构中添加新的领域和人员,让老的机构逐渐衰退。

这种新的机构就足RSEB一个实例.
7、构件概念及特点
定义1:
一个软件构件是一个可独立交付的软件单元,封装了设计和实现的内容,并向外提供接口,通过接口与其它构件组装成更大的整体;
定义2:
一个软件构件是一个仅通过契约化的接口和显式的语境依赖进行组装的单元,能够被独立地部署和由第三方组装;
定义3:
一个构件是体现一个目标问题域的语义,并独立于复杂的实现技术;
定义4:
一个构件代表一个自包含(Self-Contained)的实体,能够向其环境输出功能并可通过定义明确的开放的接口从环境输入功能;
定义5:
一个构件由一个动态变化的对象集组成,这些对象既可以在构件的内部也可能是其接口的一
部分。

构件间既可以直接交互,也可以通过独立的对象进行胶合。

这是从对象实现技术的角度给出的构件定义;
定义6:
一个通过接口向外提供服务的软件包。

这是Microsoft的技术文档给出的定义。

2 狭义的构件
–软件系统中具有相对独立功能、可以明确辨识、接口
由契约指定、和语境有明显依赖关系、可独立部署、
且多由第三方提供的可组装软件实体。

–既包括以EJB,COM/DCOM,ActiveX,Web Services
等形式存在的可运行二进制程序,也包括经过封装的
源代码程序。

3 广义的构件
–随着对软件复用理解的不断深入,软件构件概念的外
延也在扩展。

–从构件实体到需求规约、系统构架、设计文档、测试
案例等各种具有复用价值的软件资源都可称为构件。

8、构件的特点
上述定义的共同要素是:软件构件是可以独立交付、发布的二进制功能单元,符合构件模型(或具有规范接口),不同构件开发机构开发的构件能够按应用的需要进行组装。

构件具有多种形态
类、类树、框架、构架等
构件具有多种层次
分析件、设计件、代码件、运行件等
构件需要多方面描述
名称、属性、对外接口、所需接口等
9、基于构件的软件开发方法。

基于构件技术的软件开发方法的基本思想和目的基于构件技术的软件开发方法的基本思想是将需要设计的软件分解成一些有基本功能的“构件”,在开发过程中不必重新设计这些基本功能模块,只需从现有构件库中寻找合适的构件组装成软件,这种软件工业化的思想无疑将大大提高软件的可复用性[4]。

基于构件技术的软件开发不仅使软件产品在客户需求吻合度、上线时间、软件质量上领先于同类产品,提高项目的成功率,而且对软件的开发和维护变得十分简单,客户可以随时随地应对商业环境变化和IT技术变化以实现“快速定制”。

基于构件技术的软件开发方法的基本目的是以构件组装方式进行应用系统开发,这种组装基于那些以独立服务的形式开发出来的构件来进行,构件的服务通过在某种通用的基础设施上调用某种通用的服务进行信息交互的。

因此,基于构件技术的软件开发具备以下要素:由构件组装的应用程序、独立服务提供、公共的构件基础设施及使用通用服务。

10、中间件概念及特点:
1 中间件是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。

人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,因此,
定义:中间件=平台+通信
这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。

2 IDC(互联网数据中心)给出的一个定义:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

特点:
·中间件是一类软件,而非一种软件;
·中间件不仅仅实现互连,还要实现应用之间的互操作;
·中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。

相关主题