资源复用(精选7篇)
资源复用 篇1
苏州工业园区政府长期以来致力于完善政务数据平台, 构建以人口库、法人库、地理信息库为基础的“园区三库”。园区政务数据资源既是战略性、全局性的信息资源共享库, 又是政府各部门业务应用系统构建的基础库。
教育部关于建设“三通两平台”的发展战略中, 对建设教育资源和管理两大公共服务平台的阐述也明确了应按照“两级建设、五级应用”的模式来推进。基于此背景, 苏州工业园区教育信息中心借鉴新加坡“智慧教育”的成熟经验, 提出了“复用政务数据资源, 架构区域性教育基础数据平台”的发展思路, 以此为教育行政管理决策提供高效、准确的基础数据, 为园区教育软件平台枢纽提供底层支撑, 满足教育参与者对教育资源的使用需求, 这一创新理念解决了信息沟通壁垒问题, 实现了政教双赢。
云模式下的整合需求
2012年开始, 苏州工业园区教育局已逐步实现园区直属学校全面接入园区教育城域网。基于复用政务云资源的创新链路模式, 实现了网络资源与带宽共融、集约管理, 教育城域网将拥有20G的主干交换, 并实现了千兆光纤到校, 园区区域整体推进数字化建设取得了初步成效。然而, 在基础线路搭建完成后, 基于城域网的区域性应用系统的开发与完善若不及时规划和实施, 区域性教育管理与教育应用信息化绩效受到影响, 仍然会造成各中小学应用平台的重复投资、资源浪费。园区教育系统专门为此申请立项了《园区教育信息枢纽平台的可行性研究》课题, 对此进行了深入调研。
苏州工业园区提倡的“智慧教育云”工程打破了传统的教育信息化边界, 推出了全新的教育信息化概念, 集教学、管理、学习、交流于一体。教育部门、学校、教师、学生、家长及其他教育参与者, 可以在同一个平台上, 根据权限去完成不同的工作。
教育信息枢纽平台应是以教育管理的各类数据和教学应用的诸多资源等为基础, 按照统一的数据接口规范, 定制开发的满足各种教育管理与应用需要的平台的集合体, 涵盖了面向管理人员的教育管理, 如学籍、成绩、教务、校产、办公等内容;涵盖了面向教师的资源库和备课、授课、教研、师资培训等应用平台;涵盖了面向学生的学习资源和方式, 如自主学习、协作学习、探究学习;以及面向家长的家校互联等应用子系统, 可以满足教育管理、教育教学、家校联系等多功能、多途径、高效快捷的云计算服务。
区域教育基础数据库是教育信息枢纽平台的底层支撑, 园区教育城域网上所有应用均由本数据平台提供统一身份认证。涵盖教育单位、教师、学生三大基础数据库, 每个数据库具备可扩充性, 并及时更新完善数据, 对接各大应用平台, 所有用户可按不同权限检索、交换想要的数据, 减少重复录入和重复统计, 极大地提高了教育行政管理效率。
政教互联的创新理念
目前, 园区人口库能基本满足园区政府各部门对涉及人口信息的一般性查询和统计的需求, 并为园区社区、医疗、教育平台提供了基础的信息服务, 人口信息资源利用初显成效。法人库入库企业数据累计约3万家, 其中就包括教育系统内部的法人、经营、年检、证照等相关信息, 初步形成了较为统一、规范、丰富的信息库。并提供跨部门查询、横向资源比对和数据统计分析等业务功能。地理信息库, 在电脑中真实展现土地、规划、房产以及地下管线等信息, 实现了土地、规划、房产、市政等相关部门的高效运作与长效管理。
苏州工业园区政务数据资源既是战略性、全局性的信息资源共享库, 又起到政府各部门业务应用系统构建的基础纽带作用。作为园区推行的“三库九枢纽”的信息化建设架构中的重要一环, “智慧教育”必须与整个政务云融通, 共享数据。为此园区专门成立了政务数据 (园区三库) 推进工作组, 研究如何将各机关局办的数据壁垒打通。
园区教育局在制定信息化发展战略时, 清楚地认识到构建符合标准规范的基础数据库的重要作用, 积极与政府进行深入沟通磋商, 了解园区信息化建设进展并提出自己的数据共享请求。初期已经将人事管理、财务申报、校园地理等信息与政务相容互通。未来还将在督导评估、师生成长档案、校园安全、终生学习生态系统等领域全面实现无边界融合。
共享扩展的数据架构
根据国家、省、市的数据结构标准和《教育信息化建设指南》指导思想, 经过不断的研究论证, 园区区域教育基础数据库将分为学校、教师和学生三个基础表。学校 (含教育机构、社区教育中心) 库表里包含学校名称、建制、建筑面积、法人、班级、师生规模、财务、地理、联系方式等相关信息;教师库表里包含姓名、年龄、性别、学历、专业、工作经历、荣誉奖惩等相关信息;学生库表里包含姓名、年龄、性别、学习经历、荣誉奖惩、家庭、社区等相关信息。
在建设初期, 很多数据在园区政府数据中已经存在, 如法人库已经包括联系人、经营、年检、证照等相关信息, 人口已经包含了园区籍学生的信息, 地理信息库中已经可以检索查询学校的位置、规模、施教区域等信息。我们只需向园区政务数据资源发起请求, 经过审核通过后, 便可检索并共享到教育数据库内, 不需要另外再收集汇总和整理, 节省了大量的采集时间和人力。
与此同时, 其他兄弟局办也会向教育基础数据平台请求数据资源共享, 如医疗卫生机构会定期收集适龄儿童的疫苗接种情况, 社会事业局会在学年度开始时收集各类办学机构的审批、登记注册等信息。公积金中心也会检索在编教师的信息做适时调整。
这些信息都会随着时间的推移不断产生更新, 也会因为上级的平台需求增设更多的数据字段, 信息中心为此制定了《园区教育信息化建设管理意见》来制度化地规范, 确保数据的规范性、准确性和及时性。
问题与困惑
在数据库架构的同时, 要涉及外部数据的请求和同步, 牵涉很多单一数据始料未及的问题及困惑。这些问题得不到彻底解决, 会严重影响整个“智慧教育”的推进。
1.数据库缺乏统一标准
目前全国、省、市各级机构对于教育信息化平台的建设还处于试验阶段, 各级平台的数据库建设情况不一, 数据标准各异, 教育系统本身还缺乏一套完整的、有实际操作价值的教育管理信息数据标准。各平台采集数据的字段也是想到什么收集什么, 缺乏长期规划和扩展性。上级主管部门应考虑尽快建立统一的教育数据库标准, 并可与其他外部数据库实现无缝对接。
2.更新缺乏长效机制
园区政务云的数据建设需要20余个局办通力合作, 将基础信息资源共享与整合。异步数据请求往往带来这样的情况:我们请求的数据可能是前一年的过期数据, 而新的数据还没有来得及更新;或者因为许多单位信息共享的决定权取决于管理机制、保密条例、法律法规等外部制约, 具体工作支持乏力。
如何开发针对政务云数据的应用服务支撑体系, 如何确认外部数据的真实性和实效性;如何建立安全、长效的运营维护机制, 这些都是我们在实践中产生的困惑。
3.数据共享途径要权衡
“数据共享”的通行办法是“使用统一数据库”和建立“统一数据接口标准”, 那么在什么情况下利用接口融通数据?在什么情况下推行统一后台, 集约管理?教育局内部有关教师和学生的私密信息如何做到有条件的检索和交换, 遵循什么原则?基于基础数据库应用系统是B/S还是C/S的结构?
应该在建构数据库前, 就考虑制定并发布《教育基础信息使用规范》、《用户身份信息获取与认证接口规范》、《单点登录服务接口规范》、《消息中心消息发送接口规范》、《应用系统接入规范》等相关政策文件。
教育系统借力政务数据平台, 复用政务私有云的数据来实现政教共赢的新局面, 已经成为苏州工业园区教育信息化建设三年行动计划的重点工作。如何借鉴北美和新加坡的教育信息化先进经验, 量身开发符合“智慧教育”基本理念的数据交换平台和基于政务云上的教育应用, 从而为“三通两平台”建设打下坚实的基础, 服务区域教育信息化, 值得我们认真思考和实践。
参考文献
[1]陈慧.我国教育信息化基础数据库平台原型的设计与开发[D].华中师范大学, 2012.
[2]许哲.我国教育信息化基础数据库平台的设计与开发[D].华中师范大学, 2011.
[3]汪珺, 冯有文.美国国家教育统计中心对我国教育基础信息数据库建设的启示[D]北京邮电大学国际学院, 2011.
[4]陈庆贵, 申屠祖斌.教育基础数据库建设的探索与应用[J].中国信息技术教育, 2009 (23) .
[5]江苏省扬州市电化教育馆;建好基础数据库服务区域教育信息化[J].中国信息技术教育, 2009 (23) .
[6]教育基础数据库架构设计[DB]http://www.zdsoft.net/浙大万鹏.2013, 3.
资源复用 篇2
关键词:D2D通信,蜂窝网络,下行资源,干扰抑制
D2D通信是指移动设备之间的通信终端在系统的控制下, 通过使用小区资源的新技术从而允许直接通信, 采用该技术可以有效的增加蜂窝通信系统频谱效率, 降低终端的发射功率, 在处理技术方案的时候, 由于无线通信系统频谱资源比较缺乏, 因此在3GPP研究项目的LTE-A中, 运用该技术是必要的, 它能够提供先进的技术支持, 达到IMT-Advanced的技术要求, 能够提供更高的数据速率和系统容量。
一、干扰的产生
依据D2D的通信频段我们能够把其划分为使用许可频段的通信D2D (Flash LinQ系统) 和未经授权使用D2D通信频带 (例如蓝牙系统) 。无线宽带通信技术在不断的发展进步, 在高速无线通信下, 广覆盖和高容量的需求是通过基站之间的传统的蜂窝用户的信息传递, 即消息源的通信终端从一个基站发送到另一个基站, 然后转发到目的地的通信。但是, 倘若源端和目标端的通信渠道比较好, 就能产生直接沟通而无无中继通信基站, 这样将获得接收低延迟、高速和低功率广播一系列优点。由于D2D通信适用于当地的业务, 所以如果基站前端预留资源给D2D通信模式则会引发资源的有效使用率偏低, 特别当是D2D出现的机率低的情况下。当普通用户和D2D用户共享相同使用资源的时候, 就会在小区中产生一定的干扰, 导致使用性能的损失。当出现这种问题时, 从保证原有蜂窝用户的使用性能的角度来说, D2D用户必须适当控制其发射功率。然而, 如果D2D移动通信用户和复用相同的资源的蜂窝用户的距离近, 那么, 距离D2D用户控制干扰抑制效果是不理想的, 值得注意的是, 造成此种结果的原因是由于基站与用户间的发送功率差别太大。
二、干扰的解决建议
在查阅了许多科研工作者关于D2D通信蜂窝网络下行资源的干扰抑制措施的基础上, 并进行分析后可以知道:我们可以做这样一个假设, 倘若D2D通信干扰的受限范围通过精简的路径损耗模型得出, 并且能够通过假设基站来获得相关用户的位置信息, 那么其系统容量就得可以得到扩增。动态功率在控制策略的时间内通过D2D的通信系统链路, D2D通信链接的和监测将复用信号和资源得到用户的测量报告到BS, BS根据最终依据的信息接报D2D的发送功率, 以便于实现动态功率控制的目的。用户信息D2D在CCCH进行广播是为了便于开展传输资源的分配, 用户可以检测周边小区是否存在的D2D用户和及时报告给BS, 以便于避开两种通信方式之间的干扰。从出发点MIMO来看, 干扰的消除是通过牺牲用户MIMO自由度来实现的。该方案充分利用固有的小区内的分集, 以实现最小化的干扰。并提出了两个建议:第一个方案是通过干扰追踪的方式, 用该方式来降低住宅用户对D2D用户的干扰作用。第二个方案通过是播报D2D通信的干扰容忍来减少干扰。研究表明:衰减干扰可以增加中断概率及降低小区容量, 但是, 小区容量依然比没有D2D通信的小区提高了很多。因此我们必须建立一个机制, 通过使用该机制来限制D2D最大发送功率, 通过有效的方法来避免下行干扰。对于用户的平台D2D通信的下行资源的干扰抑制, 我们必须要合理的进行资源程序的调度, 通过合理配对用户和选择正确的信息传输方式, 来达到减少由用户造成的干扰的目的, 以实现提高小区的吞吐量的目的。
三、结论
本文简单的解释了D2D通信的含义, 简要的分析了D2D通信复用蜂窝网络下行资源的干扰产生方法, 最后在查询资料的基础上提出了抑制该干扰的可行性方案。本文讲述的内容将会对相关科研工作者和学者关于抑制D2D通信复用蜂窝网络下行资源的干扰的研究产生一定的参考作用。
参考文献
[1]聂高峰, 卢博, 杨光.一种复用蜂窝网络下行无线资源的D2D通信干扰抑制方法[J].电信网技术.2012, 01 (11) :35-37
[2]林楠.蜂窝网络下D2D通信重用多用户资源研究[J].软件.2012, 36 (6) :63-66
[3]徐同刚.LTE系统中引入D2D技术后的干扰研究[J].电信快报.2011, 04 (12) :46-47
软件复用技术 篇3
1. 软件复用内容
应用软件系统的开发过程包含以下几个阶段:领域和需求分析、设计、编码、测试以及维护等, 各个阶段的工作中均存在重复, 而这些重复都可以作为软件复用的内容。一般可以分四个层次:第一, 领域和需求分析阶段的复用。这个层主要包括对领域知识、软件总体框架结构、项目计划、成本估计等的复用;第二, 设计阶段的复用。这个层主要包括对分析建模方法、领域模型、软件功能模型等的复用;第三, 编码阶段的复用。这个层主要包括对功能模块、用户和技术文档、用户界面风格等的复用;第四, 测试阶段的复用。这个层主要包括对测试方法、测试用例等的复用。
2. 软件复用的优势
软件复用的优势主要表现在以下几个方面:第一, 软件复用使软件生产率得以提高, 并且也使开发代价因此而少。由于可复用构建经过了高度优化和考验, 其构造的系统更加可靠、性能更加强大;第二, 软件复用也使系统的维护代价得以减少。用可复用的构件构建系统减少了错误的发生, 也就是减少了维护频率;第三, 软件复用使系统间的互操作性得以提高。系统由于使用了统一的接口, 使其与其他系统之间的互操作性得以实现;第四, 软件复用对快速原型设计有一定的支持效果, 那么快速有效地构造出应用程序的原型可以充分利用可复用构件和构架, 从而获得用户对系统功能的反馈;第五, 培训成本的减少也可以通过软件复用来实现。总而言之, 采用软件复用技术提高了软件质量。
3. 软件复用的关键技术
3.1 软件构件技术
软件构件技术是软件复用的核心。构件是系统中可以明确辨识的构成成分;而软件构件则是软件系统中具有一定意义的相对独立的构成成分;可复用构件是指在具有独立功能的基础上, 实现复用功能的构件。随着人们对软件复用技术研究越来越深入, 构件的概念也得到了延伸。它们应用于各个不同的开发过程, 目前, 主要关注的构件是代码级构件, 它可以直接由工具进行支持。代码级构件主要分为源代码和二进制代码构件两种, 其源代码所采用的复用方式也有两种, 即黑盒复用和白盒复用两种方式;而二进制代码构件的复用方式主要就是一种, 即黑盒复用方式, 通常也只能对构件的接口和属性等信息进行了解。软件构件技术的研究内容主要包括: (1) 构件获取。构件生产是有目的的, 其构件是从已有的系统中挖掘出来的; (2) 构件模型。在对构件本质特征研究的基础上, 充分认识构件间的关系; (3) 构件描述语言。此目的就是为了使构件的精确描述、理解和组装问题进行解决; (4) 构件分类和检索。对构件分类和检索策略进行研究, 为构件库系统的构建创造良好的条件; (5) 构件复合组装。对构件组装机制进行研究且在构件模型的基础上进行; (6) 标准化。这里的标准化主要是构件模型和构件库系统的标准化。
3.2 构件构架
对于软件架构, 目前还没有一个统一的定义。一个典型的定义是:一个程序或计算系统的软件构架是系统的一个或多个结构, 包含软件构件、这些构件的对外可见的性质以及它们之间的关系。体系结构描绘的是系统的蓝图, 是沟通软件需求与软件设计的一座桥梁。体系结构的研究, 使软件复用从代码复用发展到设计复用和过程复用。在基于构件和体系结构的软件开发方法下, 程序开发模式也相应地发生了根本变化。软件开发不再是“算法+数据结构”, 而是“构件开发+基于体系结构的构件组装”。软件构架包括全局组织与控制结构, 构件间通讯、同步和数据访问的协议, 设计元素间的功能分配, 物理分布, 设计元素集成, 伸缩性和性能, 设计选择等。软件构架研究如何快速、可靠地从可复用构件构造系统的方式, 着重于软件系统自身的整体结构和构件间的互联。其中主要包括:软件构架原理和风格、软件构架的描述和规约、特定领域软件构架、构件向软件构架的集成机制等。
3.3 领域工程
领域工程是针对一组相似或相近应用的共同领域及用户需求进行分析, 识别这些应用的共同特征和可变特征, 进行面向复用的开发, 产生出特定领域的构件和构架。它覆盖了建立可重用构件的所有活动;主要过程分为领域分析 (定义“问题空间”) 、领域设计 (提出“解决问题的框架”) 和领域实现 (实现所提出的“解决空间”) 三个阶段。它以领域分析为出发点, 对领域中的系统进行分析, 包括识别、搜集、组织、分析和表示领域中相关的共性和个性信息, 形成领域定义和领域模型。其中领域模型确定了该领域系统的公共功能和数据;依据领域模型, 设计面向特定领域的软件构架DSSA, 包括系统中各种构件间交互关系的共性和差异, 并以此领域构架为中心, 识别、开发和组织可重用构件, 供应用工程师使用。这样, 当开发同一领域中新的应用时, 可以根据领域分析模型, 确定新应用的需求规约;根据特定领域的软件构架形成新应用的设计, 并以此为基础选择可复用构件进行组装, 从而形成新系统。
3.4 软件再工程
随着软件技术的不断开发, 一些遗产软件系统已经不能在满足现今的要求, 慢慢地退出软件舞台, 如果能够从这些系统中获取有用的软件构件, 再对它们进行维护, 使其系统软件生命周期得以延长, 而这个过程就是软件再工程所要解决的问题, 从而构造出新的系统来。如果没有对其进行维护, 即使获取了有用的软件构件, 那么这些软件构件随着技术的发展最终还是被淘汰。
3.5 开放系统技术
使用接口标准是开放系统技术的基本原则。开放系统技术能够为系统开发的决策设计提供良好的依据, 尤其是为系统的演化提供了稳定的基础, 同时也进一步保证了各子系统间的互操作。开放系统技术不仅能够确保系统效率的稳定进行, 而且在此基础上, 能够使开发成本得以降低以及开发周期得以缩短。系统依赖稳定的接口标准促进了开发系统更容易适应技术。
3.6 软件过程
软件过程就是从软件需求定义开始, 直至软件使用后废弃为止, 针对系统开发、运作和维护所实施的全部过程、活动和任务的结构。随着软件工程的快速发展, 软件过程也发生了一些变化。软件过程又称软件生存周期过程, 软件生存周期主要可划分为三个时期, 第一时期就是计划、分析时期, 第二时期就是设计、实现时期, 第三时期就是运行、维护时期。当前, 软件工程研究的热点就是软件过程及其完善。
3.7 CASE技术
软件工程思想已经在人们心中有了更深入的渗透, 其已经越来越受到广大软件开发者的欢迎, CASE工具和CASE环境得到越来越广泛的应用。对于软件工程而言, CASE技术是非常重要的, 它能够支持软件工程, 并且使软件开发的复杂性有所降低, 也就是说, 能够促使软件开发人员有效控制软件开发的复杂性, 进而使软件开发的效率和质量得以提高。同理, CASE技术也能够有效地支持软件复用。其主要内容包括:在面向复用的软件开发中, 可复用构件的抽取、描述、分类和存储;在基于复用的软件开发中, 可复用构件的检索、提取和组装;可复用构件的度量等。
4. 结语
面对软件危机的发生, 软件复用技术起到了非常重要的作用。软件复用技术是缓解软件危机的重要手段, 它不仅能够提高软件开发效率, 而且还能够提高软件的可靠性, 以及能够降低软件开发成本, 在软件测试和维护方面也有一定的优势。因此, 软件复用技术已经成为现在软件工程方面的研究热点。
摘要:为了能够更好的解决软件危机, 加快了软件复用技术研究和使用的步伐。并且经过实践证明, 软件复用技术不仅提高了软件工程开发的效率以及软件系统的质量, 而且也降低了软件开发成本, 总而言之, 促进了软件开发的进程。本文主要对软件复用内容、软件复用的优势、软件复用的关键技术进行了分析。
关键词:软件复用,内容,优势,技术
参考文献
[1]朱俊波, 史素娟.浅议软件开发中的复用技术[J].福建电脑, 2008, (02) .
[2]杨敬君.基于构件的软件复用技术研究与应用实践[D].大连海事大学, 2009.
[3]仉新刚.浅谈软件复用的理论与技术[J].科技信息 (学术研究) , 2008, (13) .
[4]吴树德, 曾庆弘, 左壮.软件复用技术在管理信息系统设计中的应用[J].通化师范学院学报, 2006, (06) .
[5]武伟, 张明新.基于构件的软件复用技术应用研究[J].山西大同大学学报 (自然科学版) , 2009, (01) .
浅谈软件复用 篇4
传统的大型应用软件的主要特点有:重复编码式开发方式和一次开发持续运行的应用软件。重复编码式开发方式, 使快速开发企业级应用软件难以实现。一次开发持续运行的方式, 导致了软件的僵化和濒危。
我们不妨参考PC电脑硬件设计:它由一块主板和一系列的设备部件组成。无论是CPU、内存条、显卡、声卡、U盘, 只要符合一定的标准就可直接在主板上进行插拔和替换。如果软件框架可以做得像主板, 软件组件做得像设备部件, 那么软件就可以像硬件一样实现快速组装和大规模生产。这实际上就是软件复用所追求的终极目标。
2 软件复用基本概念介绍
2.1 真正的软件复用
在软件演化的过程中, 重复使用的行为可能发生在三个方向上:时间上, 使用以前的软件版本作为新版本的基础, 加入新功能, 适应新需求;平台上, 以某平台上的软件为基础, 修改其和运行平台相关的部分, 使其运行于新平台;应用上, 将某软件 (或其中构件) 用于其他应用系统中, 新系统具有不同功能和用途。
这三种行为中都重复使用了现有软件。但是第一种复用实际上是软件维护, 第二种实际上是软件移植, 都不能算真正的软件复用。第三种复用是为了支持软件在应用方向上的演化, 使用“为复用而开发的软件 (构件) ”来更快、更好地开发新的应用系统, 这才是真正的软件复用。
2.2 软件复用的发展
复用概念的第一次引入早在1968年, Mc Ilroy在其论文《大量生产的软件构件》中提出。在此以前, 子程序的概念也体现了复用的思想, 但目的是为了节省当时昂贵的机器内存资源, 并不是为了节省开发软件所需的人力资源。然而子程序的概念可以用于节省人力资源的目的, 从而出现了通用子程序库, 供程序员在编程时使用。
2.3 软件复用的关键
分析传统产业的发展, 其基本模式均是符合标准的零部件 (构件) 生产以及基于标准构件的产品生产 (组装) , 其中, 构件是核心和基础, “复用”是必需的手段。标准零部件生产业的独立存在和发展是产业形成规模的前提, 软件产业发展完全可以借鉴这种模式。软件产业要发展并形成规模, 标准构件的生产和构件的复用是关键因素。这正是软件复用受到高度重视的根本原因。
3 软件复用的实现方法
3.1 与软件复用相关的技术
软件复用技术是一系列的相关技术的综合运用, 包括软件构件技术;领域工程、软件构架技术;软件再工程、开放系统技术;软件过程、CASE技术以及一些非技术因素。实现软件复用的各种技术因素和非技术因素是互相联系的, 它们互相结合共同影响软件复用的实现。
3.2 软件构件技术
构件是指应用系统中可以明确辨识的构成成分, 具有相对独立的功能和可复用的价值。可复用构件应该具有如下特点:
独立性:构件可独立开发、部署和发布, 软件构件是一个软件组装单元;
有一组定义良好的接口:构件通过一组接口对外完成其功能, 接口可分为对外服务接口和服务请求接口;
封装性:构件是一个高内聚的软件包, 通过接口对外交互, 屏蔽了内部实现细节, 构件可通过独立开发封装为符合业界认可的模型标准的二进制代码。当前构件封装采用的标准有:微软的COM+和.NET、SUN公司的Java Bean和EJB、国际组织的CORBA等;
可替换性:构件被组装到软件系统中后, 可以用具有相同接口和相同封装标准的其他构件将其替换, 替换中无须编码, 不影响系统运行;
可组装可调整性:构件可以在定义良好的体系结构下方便地组装到软件系统中, 也可以与其他构件组装成为粒度更大的构件。一般情况下, 构件要有方便的可调整机制以便于复用, 即提供多个可变点以利于客户化。
3.3 领域工程
为了能够很好的实现软件复用, 复用必须是系统化的。系统化复用的成功依赖于很多因素, 其中领域工程是系统化软件复用成功的关键。
通过领域工程, 将某一特定领域的知识转化成为一组规约、构架和相应的可复用构件。由于这些信息来自于同一领域中现有的系统, 因此它们具有较高的可复用性, 而且当一个领域中的应用系统增加了的时候, 通过领域工程, 可以对这些系统进行新的分析, 将新系统的特征也包含在规约、构架和可复用构件中, 从而使本领域系统开发的知识和经验尽可能地积累到复用基础设施中, 以促进新系统的开发。领域工程对于系统化软件复用的意义还在于, 领域工程不仅产生了可复用性较高的构件, 而且通过产生构架定义了复用时机和复用的上下文。这样对开发者复用这些构件提供了有力的支持, 使得复用变得规范、系统和高效。
3.4 软件构架
通过对软件构架的研究, 有利于发现不同系统在较高级别上的共同特性;从构架的层次上表示系统, 有利于系统较高级别性质的描述和分析。特别重要的是, 在基于复用的软件开发中, 为复用而开发的软件构架可以作为一种大粒度的、抽象级别较高的软件构件进行复用, 而且软件构架还为构件的组装提供了基础和上下文。软件构架研究如何快速、可靠地通过可复用构件构造系统的方式, 着重于软件系统自身的整体结构和构件间的互联, 对于成功的软件复用具有非常重要的意义。
3.5 软件再工程
软件再工程是指对既存对象系统进行调查, 并将其重构为新形式代码的开发过程。最大限度地重用既存系统的各种资源是再工程的最重要特点之一。再工程的主要工作是对既存系统中非可重用构件的改造。软件再工程的思想实际上和回收业的“变废为宝”的思想是十分相近的。
软件再工程是一个工程过程, 它将逆向工程、重构和正向工程组合起来, 将现存系统重新构造为新的形式。再工程的基础是系统理解, 包括对运行系统、源代码、设计、分析、文档等的全面理解。但在很多情况下, 由于各类文档的丢失, 只能对源代码进行理解, 即程序理解。
4 基于复用的软件开发过程
电力光纤通道复用保护 篇5
光纤为光导纤维的简称, 由直径大约为0.1mm的细玻璃丝构成。光纤作为继电保护的通道介质, 具有不怕超高压与雷电电磁干扰、对电场绝缘、频带宽和衰耗低等优点。继电保护所用光纤为通信光纤, 是由纤芯和包层两部分组成的:纤芯区域完成光信号的传输, 包层则是将光封闭在纤芯内, 并保护纤芯, 增加光纤的机械强度, 如图1所示。光在纤芯中形成全反射, n1 (纤芯折射率) >n2 (包层折射率) 。按光在光纤中的传输模式, 光纤可分为单模光纤和多模光纤。单模光纤 (single mode fiber) 的中心玻璃芯很细, 其纤芯直径一般为:4~10μm, 只能传一种模式的光。多模光纤 (multi mode fiber) 在一定工作波长下, 可传多种模式的光。多模光纤的中心玻璃芯较粗, 其纤芯直径一般为:50~70μm, 但其模间色散较大, 限制了传输数字信号的频率。随着距离的增加, 其限制效果更加明显。
传输衰耗和色散是光纤的两大特性。继电保护用光纤对衰耗值要求较高, 不同波长的光信号衰耗值不同, 附表对单模光纤和多模光纤在工作波长区域的传输特性进行了比较。由表中可以看出, 单模光纤的传输衰耗最小。色散是指输入脉冲在传输过程中的展宽, 产生码间干扰, 增加误码率, 限制通信容量及传输距离。色散包括模式色散、材料色散、波导色散。模式色散存在于多模光纤中;材料色散由于光纤材料本身的折射率随频率而变化;波导色散是由于光纤的制作工艺 (几何结构、形状) 的不完善而产生。综合传输衰耗和色散, 可知单模光纤1310nm波段是最佳传输窗口, 所以现在继电保护用光纤均使用单模光纤1310nm波段。
2 电力网络用光纤
目前电力光纤网络使用的光缆主要有3种:普通非金属光缆、自承式光缆 (ADSS) 和架空地线复合光缆 (OPGW) 。架空地线复合光缆虽然造价较高, 但在高电压等级及同杆双回和多回线路使用时, 占线路综合造价比例较低, 并可以兼作继电保护通道。以1条220 kV线路为例, 采用光纤保护与采用高频保护的价格相当, 但高频保护在线路两侧还需要增设阻波器、耦合电容器和结合滤波器等设备, 架空地线复合光缆则显得更为经济, 且具有可靠性高、维护费用低的优点, 所以架空地线复合光缆在电力光纤网络中越来越广泛的应用。
由于光纤网络的传输性能、稳定性及其自愈的保护恢复能力, 对光纤继电保护工作的可靠性起到关键作用。目前, 在湖南省电力通信网络中, 广泛使用的是SDH同步数字体系网络, 它具有强大的保护恢复能力和固定的时延性能。
3 光纤保护通道的几种方式
3.1 线路保护专用光纤通道
俗称为裸纤保护, 是指占用光缆中的一对纤芯, 无需经过光纤通信设备的保护传输方式。其特点是共享光缆资源, 为确保保护的稳定性和可靠性, 两站间的距离一般在30km以内, 湖南省目前裸纤保护最长距离为60km, 这对保护设备提出较高要求。通道组织如图2。
注: (1) 保护装置的尾纤及光缆由保护专业开列, 熔接及光缆的敷设由电气负责; (2) ODF架 (光配线架) 上的跳纤 (保护用光缆与通信用光缆间) 必须使用桔红色尾纤, 便于与通信用黄色尾纤区分; (3) ODF架上光缆位置安排:通信用光缆由顶端开始, 保护用光缆由底端开始; (4) 保护用光纤在ODF架上必须作醒目标识 (红色, 注明保护类型) 。
3.2 线路保护复用2M通道
俗称为2M保护, 是指占用由光纤通信传输设备 (SDH, 光端机) 提供的一对2M通道的保护传输方式, 其特点是共享光纤通信设备资源, 对光纤通道的依赖性强, 要求通道不中断、误码率低。通道组织如图3。
注: (1) 保护装置的尾纤及光缆由保护专业开列, 熔接及光缆的敷设由电气负责; (2) DDF架 (数配线架) 与保护接口屏间的2M电缆一般由保护提供, DDF架2M接头由通信提供, 在扩建变保护专业不具备2M电缆时, 也可由通信专业协助提供; (3) DDF架上2M位置安排:省网通信用2M一般习惯从1开始, 保护用2M从最大数字开始, 即从最后 (第63) 开始安排, 依次倒推上来; (4) 保护用2M在DDF架上必须作醒目标识。
3.3 线路保护复用64k通道
俗称为PCM保护, 是指占用由光纤通信接入设备提供的一个64k通道的保护传输方式, 其特点是共享光纤通信接入设备资源, 对PCM接入设备的依赖性强, 要求设备运行稳定、不中断。在同一变电站内, 为便于维护, 保护用PCM一般与通信用PCM同规格型号, 依据使用的要求不同, 具体配置不同, 但要作醒目标识 (红色标识, 注明复用保护) , 以便于区别。
4 通道双重化问题
(1) 高频保护通道。高频保护由于是在不同的相别上耦合, 因此能满足双通道的要求。如两种保护都是高频通道, 一般A、C相用于保护, B相用于载波通信, 以调度电话等的备用通道。目前此种通道方式已不常用。
(2) 光纤保护通道与高频保护通道配合使用。一般一种保护通道采用2M通道或光纤通道, 另一种保护通道采用高频通道。目前此种通道方式, 在某些光纤通信电路不很完善的地区, 新建变电站仍有使用。
(3) 光纤保护通道。一般一种保护通道采用2M通道, 另一种保护通道采用专用光纤通道;或两种保护通道均采用2M通道。目前随着光纤通信电路的完善, 此种通道方式已被越来越广泛的使用。
同一光缆的不同纤芯能否构成通道的双重化需要根据光缆的型式来确定。对于普通光缆和ADSS光缆, 由于其可靠性较差, 同一光缆内的光芯不同不能视为通道双重化, 只能通过光缆的双重化达到通道双重化的要求。对于OPGW光缆, 由于其具有较高的可靠性, 在目前光纤网络未能形成环网的现状下, 同一光缆纤芯的不同可视为通道双重化;当形成了光纤网络环网后, OPGW光缆也应实现两条路由的双重化, 能在一条光缆损坏后通过另一个路由正常运行。
5 光纤保护应用中存在的问题
浅议软件复用技术 篇6
随着软件需求的激增、软件规模和复杂度的不断增大, 大量资源被浪费在重复开发上, 传统的开发方法无法适应用户在质量、效率等方面对软件的需求。软件复用又称软件重用或软件再用, 是指重复使用“为了复用目的而设计的软件”的过程, 是利用现有的软件成分来构造新的软件系统的过程。近十年来软件复用被认为是解决软件危机、提高软件生产率和质量的最有效和最具潜力的手段。
2 软件复用简介
软件复用不仅仅是对程序的复用, 还包括对软件生产过程中任何活动所产生的制成品的复用, 如项目计划书、可行性报告、需求分析、概要设计、详细设计、编码 (源程序) 、测试用例、文档与使用手册等等。按抽象程度的从低到高, 软件复用可以被划分为如下5个级别[1]:
(1) 代码的复用, 包括目标代码和源代码的复用。当前大部分编程语言的运行支持系统都提供了连接 (Link) 、绑定 (Binding) 等功能来支持目标代码的复用。源代码的复用级别略高于目标代码的复用, 程序员在编程时把一些想复用的代码段复制到自己的程序中, 但这样往往会产生一些新旧代码不匹配的错误。大规模的实现源代码的复用只有依靠含有大量可复用构件的构件库, 如”对象链接及嵌入” (OLE) 技术。
(2) 设计的复用。这种复用有三种途径, 第一种途径是从现有系统的设计结果中提取一些可复用的设计构件, 并把这些构件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现, 也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用, 有计划地开发一些可复用的设计构件。
(3) 分析的复用。可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法, 受设计技术及实现条件的影响很少, 所以可复用的机会更大。复用的途径也有三种:从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作输入产生针对不同软硬件平台和其它实现条件的多项设计;独立于具体应用, 专门开发一些可复用的分析构件。
(4) 测试信息的复用, 主要包括测试用例的复用和测试过程信息的复用。前者是把一个软件的测试用例在新的软件测试中使用, 或者在软件作出修改时在新的一轮测试中使用。后者是在测试过程中通过软件工具自动地记录测试的过程信息, 包括测试员的每一个操作、输入参数、测试用例及运行环境等一切信息。
因为软件的开发过程主要是从抽象级别较高的形态向抽象级别较低的形态演化的正向过程, 所以较高级别的复用容易带动较低级别的复用。开发者可充分利用其它已有的分析件和设计件, 自己设计或编程, 完成系统的剪裁、扩充、维护、演化等活动。
3 实现软件复用的关键技术因素
软件复用的过程实际上是一系列的相关技术的综合运用过程。这些技术包括软件构件技术、领域工程、软件构架技术、软件再工程、开放系统技术、软件过程、CASE技术以及一些非技术因素。实现软件复用的各种技术因素和非技术因素是互相联系的, 它们互相结合共同影响软件复用的实现。
3.1 领域工程、软件构架技术
可复用信息依赖于特定的问题和特定的问题解决方法, 具有领域特定性。为此, 在识别、获取和表示可复用信息时, 应采用面向领域的策略。领域的需求具有一定的稳定性, 使得获取的信息可以在较长时间内多次复用。领域工程是一组相似或相近系统的应用工程建立基本能力和必备基础的过程, 覆盖了建立可复用软件构件的所有活动, 可划分为以下三个阶段[2]:
(1) 领域分析。这个阶段的主要目标是获得领域模型。领域模型描述领域中系统之间的共同需求。这个阶段的主要活动包括确定领域边界, 识别信息源, 分析领域中系统的需求, 确定哪些需求是被领域中的系统广泛共享的, 哪些是可变的, 从而建立领域模型。
(2) 领域设计。这个阶段的目标是获得领域构架 (Domain-Specific Software Architecture, 简称DSSA) 。DSSA描述了领域模型中表示需求的解决方案, 它不是单个系统的表示, 而是能够适应领域中多个系统需求的一个高层次的设计。建立了领域模型之后, 就可以派生出满足这些被建模的领域需求的DSSA。由于领域模型中的领域需求具有一定的变化性, DSSA也要相应地具有变化性。
(3) 领域实现。这个阶段的主要行为是定义将需求翻译到由可复用构件创建系统的机制。根据所采用的复用策略和领域的成熟和稳定程度, 这种机制可能是一组与领域模型和DSSA相联系的可复用构件, 也可能是应用系统的生成器。
这些活动的产品 (可复用的软件构件) 包括:领域模型、领域构架、领域特定的语言、代码生成器和代码构件等。
研究实践表明, 软件复用在特定领域内更容易获得成功。因此, 领域工程受到高度重视, 已有许多研究成果。有代表性的工作包括卡耐基梅隆大学的软件工程研究所 (CMU/SEI) 提出的面向特征的领域分析方法 (Feature Oriented Domain Analysis method, 简称FODA) , 它支持对某领域中系统共性和个性的发现、分析和文档记录。
对于软件架构, 目前还没有一个统一的定义。典型定义是, 软件架构是对构成系统的构件接口、行为模式、协作关系等体系问题的决策总和。研究软件构架有利于发现不同系统的高层共性, 保证灵活和正确的系统设计, 对系统的整体结构和全局属性进行规约、分析、验证和管理。
这样, 在基于复用的软件开发中, 为复用而开发的软件构架可以作为一种大粒度的、抽象级别较高的软件构件进行复用, 而且软件构架还为构件的组装提供了基础和上下文。构架描绘的是系统的蓝图, 是沟通软件需求与软件设计的一座桥梁, 使软件复用从代码复用发展到设计复用和过程复用。
3.2 软件再工程、开放系统技术、软件过程
现存大量的遗产软件系统由于技术的发展, 正逐渐退出使用, 如何对这些系统进行挖掘和整理, 得到有用的构件;己有的构件随着时间的流逝会逐渐变得不可使用, 如何对它们进行维护, 以延长其生命期等等。软件再工程正是解决这些问题的主要技术手段。软件再工程是一个工程过程, 它将逆向工程、重构和正向工程组合起来, 将现存系统重新构造为新的形式[3]。再工程的基础是系统理解, 包括对运行系统、源代码、设计、分析、文档等的全面理解。但在很多情况下, 由于各类文档的丢失, 只能对源代码进行理解, 即程序理解。
开放系统技术的基本原则是在系统的开发中使用接口标准, 同时使用符合接口标准的实现。开放系统技术为软件复用提供了良好的支持。特别是分布对象技术使得符合接口标准的构件可以方便地以“即插即用”的方式组装到系统中, 从而实现黑盒复用。这样, 在符合接口标准的前提下, 构件就可以独立地进行开发, 从而形成独立的构件制造业。
软件过程又称软件生存周期过程, 是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。一个良好定义的软件过程对软件开发的质量和效率有着重要影响。然而, 基于构件复用的软件开发过程和传统的一切从头开始的软件开发过程有着实质性的不同, 探讨适应于软件复用的软件过程自然就成为一个迫切的问题。
3.3 CASE技术等以及各种非技术因素
计算机辅助软件工程 (Computer Aided Software Engineering, 简称CASE) 可使系统按照开发商规定的应用规则, 由计算机自动生成合适的计算机程序。软件复用同样需要CASE技术的支持。CASE技术中与软件复用相关的主要研究内容包括:可复用构件的抽取、描述、分类和存储;可复用构件的检索、提取和组装;可复用构件的度量等等。
除了上述的技术因素外, 软件复用还涉及人的素质、教育、法律等非技术因素问题, 如:知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题;机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心理障碍等等。
3.4 软件构件技术
基于构件的软件复用是迄今为止最优秀的软件复用手段, 是支持软件复用的核心技术, 并在近几年迅速发展成为受到高度重视的一门学科分支。构件技术的应用必须遵循一些共同的规范, 当前流行的有OMG的CORBA、SUN的EJB和微软的DCOM。
构件是具有内部结构和功能的软件构成元素, 可通过标准接口独立提供特定服务, 并且可由一些连接器及相关规则与其它构件组装成符合要求的新软件或构件。从抽象程度来看, 面向对象技术已达到了类级复用, 因为它是以类为封装单位的。但这样的复用粒度还太小, 不足以解决异构互操作和效率更高的复用。构件将抽象的程度提到一个更高的层次, 它是对一组类的组合进行封装, 并代表完成一个或多个功能的特定服务, 也为用户提供了多个接口。整个构件隐藏了具体的实现, 只用接口对外提供服务。
因此, 在基于构件的软件开发方法下, 程序开发模式也相应地发生了根本变化, 不再是“算法+数据结构”, 而是“构件开发+基于构架指导的构件组装”。基于构件的软件开发过程 (Component-based Software Development, 简称CBSD) 有五个主要的组成部分:需求分析、构件库、 (下转第3页) (上接第17页) 构件的获取、构件的复用、构件的组装。计算机软件开发技术从面向对象技术 (OO) 和分布式面向对象技术 (DOO) 发展到软件构件技术, 并向构件技术方向演变, 软件构件以至组件技术为应用软件产品化提供了理论基础, 这是应用软件产业化发展的基本方向。
4 结束语
国际上, 软件复用在领域工程、构件及构件库的标准化、构件组装技术、基于复用的软件开发过程和复用成熟度模型等方面已经取得了重大成功。国内的相关研究也较多, 如北京大学软件工程研究所提出的青鸟构件模型, 它的目标是致力于软件复用, 以构件作为软件复用的基本单位, 提供一种有效的管理和检索构件的工具。
参考文献
[1]张韧志, 田丽芳, 葛文庚.软件复用探讨[J].电脑知识与技术, 2009, 5 (23) :6452-6453.
[2]张友生, 等.软件体系结构[M].清华大学出版社, 2006.11:6.
软件复用技术的分析与应用 篇7
引入新的软件复用系统也可能存在风险。软件复用是在新项目中使用老项目中的代码的工作。这可能节省软件公司开发新产品的时间, 但也可能浪费时间, 这一切都取决于代码如何复用和使用的复用工具。复用代码的开发员必须很好地了解代码能做什么, 怎么做和为什么必须复用。许多代码在编写的过程中没有考虑在以后的项目中能否使用, 因此很难打破旧代码的单一功能, 而编写的复用代码需要包含更好的软件文档和描述性的变量名。大多数开发员从老项目中复制代码并粘贴到自己的项目中, 这是一个非常简单的实现代码复用的方式。代码复用期间使用的工具也是影响花在寻找所需代码的时间多少的重要因素。
1 软件复用理论
1.1 软件复用的概念
目前, 对于软件复用还没有一个形式化的概念, 许多研究人员从各自不同的角度对软件复用这个概念作了说明。Biggerstaff和Ritcoher认为软件复用是在新的开发项目中使用以前已获得的概念和对象。Tracz认为软件具有事先性, 复用特别为复用目的而设计的软件过程, 而把使用不是特别为复用目的的设计的软件称为软件挽救。Gambhir把在多个应用中使用相同的构件称作软件复用, 不区分软件复用和软件挽救之间的区别。
软件复用是一个系统到另一个系统的各种知识的重新应用, 为了减少开发和维护成本的新的系统。可利用的现有软件成分即复用成分是软件复用的核心。
1.2 软件复用的讨论
Mcilroy于1968年首次提出了软件复用的概念, 从那以后就不断地被讨论和运用。软件复用的想法是好的, 但是实现起来却是困难的, 主要是由于软件复用在软件开发中实现的复杂性。Krueger在他的研究中提出了为什么软件复用从来没有成为一个标准的软件工程方法的原因。Larsen提出了大量有关老项目投入新项目的复用部分, 这是首次展现软件复用的前景。Tabatabai在他的文章中介绍了关于软件复用更具体的问题和项目, 如在编译器中复用代码。
1.3 软件复用的优点
软件复用可以让开发公司受益良多。例如, 当在一个项目中需要一个公共函数时, 开发人员可以导入经过测试的能正常工作的这个函数。当开发一个新的系列产品时这是特别好的方法。
软件复用的主要优点:
1) 增加可靠性:以前使用的软件往往缺陷更少。
2) 减少过程风险:构建一个新的组件可能比复用现有的组件更容易失败。
3) 提高互操作性:通过使用同一个接口的实现, 系统将更为有效地实现与其它系统之间的互操作。
4) 促进标准遵循:复用组件可以促进开发员遵循软件的开发标准, 提高组件的可用性。
5) 支持快速原型:可以快速构造出系统可操作的模型, 以获得用户对系统功能的反馈。
1.4 软件复用的缺点
Stephen在他的《Quality Impacts of Clandestine Common Coupling》一书中描述了软件复用的危险性。他们通过对跟踪耦合和整个Linux内核的代码复用的研究, 表明同一个模块在许多版本中被不做更改地广泛使用。示例表明代码复用为什么会威胁到另一个项目:“假设程序员负责开发和维护一个模块M, 如果意识到常见耦合的不良影响, 那么他会想尽一切办法来减少模块M和产品其它部分之间的耦合。即使程序员不会以任何方式改变模块M, 开发另一模块的程序员的后续更改也会增加模块M和产品其它部分的耦合。”
在他们的介绍中描述了许多关于耦合的问题, “虽然所有类型的耦合在设计时是有用的, 但是也证明某些类型的耦合可能引起软件存在更大的故障。人们普遍认为, 一些耦合类型应该限制使用”。
软件复用的主要缺点:
1) 增加维护成本:复用组件的外部更改可能会迫使改变复用软件;更改一个复用组件比自定义一个组件难。
2) 缺乏工具支持:维护复用组件的目录和寻找组件的支持较少;开发工具不能较好地支持复用组件的开发。
3) 非我发明综合症:许多软件工程师更倾向于重写一个组件而不是复用别人开发的组件。
4) 复用的障碍:一个软件开发人员只会寻找一个他期望最合适的可复用的组件;寻找他能辨认的提供了解决方案的组件;只会用他能够理解的组件;如果组件能够解决最紧要的问题它才能被成功使用;只有开发人员在初期认为所有步骤是成功的复用过程才会开始。
5) 复用适用于许多通用组件, 但是不适用域名具体的组件。
2 案例实施与分析
2.1 研究目的
软件复用过程中存在的问题是:如何使开发人员很容易地寻找到他们所需要的特定代码, 并根据客户的要求来完善它。
本文的目的是识别并尝试解决软件复用的缺陷。软件复用的想法已经存在几十年了, 但尚未挖掘出它的全部潜力。由于没有软件复用的标准工具, 所以本文试图通过实现一个原型来解决软件复用过程中存在的问题, 并且处理客户提出的要求。
2.2 研究方法
研究方法由行动研究图来描述, 如图1所示。
在“识别问题/问题调查”阶段, 将识别最关键的问题, 是当前周期中重点关注的对象。在“开展研究”阶段, 将获得解决问题的一个好的方法。“制定行动计划”阶段将包括“修复”第一阶段中确定的问题。“反思和评价行动”阶段, 所做的更改将会评估对问题的修改有多大的影响。
“行动研究可以被视为一个可变的案例研究, 而案例研究员是一个独立的观察者, 一个行动研究者:在系统的实现中是一位参与者, 同时要评估某些干预技术。行动研究员不是一个独立的观察者, 但是一个参与者。”
选择行动研究是因为一个原型是基于采访和文档资料的开发。事实上, 行动研究是一个迭代, 根据新的访谈和发现的文档实现自然更新。每个研究周期将不超过两周, 因为事实上时间是至关重要的。
2.3 案例实施
为了开发出解决软件复用中存在问题的原型, 本文以Reveny公司作为研究对象。Reveny AB公司是Jeeves AB信息系统公司的子公司, 大约20个开发人员, 是一个开发商业系统的软件公司。
在实验过程中, 处理软件复用需要一个解决方案, 使设计的原型能够帮助Reveny公司管理代码并使他们的代码很容易搜索到。在构造这个原型时许多因素都要考虑到。原型的实现必须把执行速度和可用性作为主要考虑因素。因为如果程序执行缓慢, 很难使用, 就没有人会用它, 使得实现变得冗余, 而且不能解决问题。代码还应该易于维护。因此一个好的设计很有必要, 代码良好的层次结构使得扩展起来也更容易。
原型以这样一种方式工作:开发人员通过某些关键字搜索一个指定的文件夹, 文件列表包含这些关键字。在分析特定的文件后, 开发人员可以看到他正在寻找的代码片段。所有的代码存储在同一个地方——代码库, 它可以使所有的开发人员拥有最新的文件。原型的目的是使开发人员的工作更容易, 让他们通过访问代码, 找到他们所要寻找的功能。代码库可以设置, 但它的本质是在一个地方存储所有代码, 使其可以让每个需要访问的人访问它。设计原型的时候, 时间和可用性是两个主要因素。原型的第一个版本需要许多时间来显示文件和文件夹。时间的问题通过文件和文件夹数量的算法来解决。
2.4 案例分析
解决软件复用存在的问题相当简单的办法是设置一个SVN (Subversion) 服务器, 这能够使利用版本处理问题变得可能。由于目前的原型没有SVN功能, 迫使Reveny公司让所有开发人员在安装SVN客户机的系统上工作。解决这个问题的另一种方式是将代码存储在一个服务器上, 让开发人员通过磁盘共享进行访问, 这使得原型的使用非常容易, 但是没有版本处理问题的优势。
现在, 这个原型用c#语言开发。如果Reveny公司未来开发这个系统, 它必须包含一个针对文件夹库的“active directory listener”的功能, 通知其他的客户机轮流更新资源库。CVS (Concurrent Versions System) 系统已经实现的功能可以提醒开发员, 如果要添加新文件他必须把新文件提交到资源库。
3 结束语
虽然已经有很多关于代码复用的讨论, 但是仍然没有通用的工具或过程应用于代码复用方面。一个正常工作的软件复用工具能够让开发公司受益:使开发人员在单位时间内能够产生更多的代码;确保插入的代码能正常工作;节省开发人员调试和测试的时间;创建一个代码存储的标准过程;如果使用, 开发公司可以获取版本修订的好处。
参考文献
[1]Krueger C W.Software Reuse[J].ACM Computing Surveys, 1991, 41 (2) .
[2]郑明春, 张家重, 王岩冰.关于软件复用[J].计算机科学, 1994, 21 (4) .
[3]陈东升.软件复用技术研究[J].硅谷, 2008 (18) .