- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件系统的架构
UML系统建模及系统分析与设计 王欣 张毅 编著 中国水利水电出版社 第7章 软件复用与软件构件技术 第7章 软件复用与软件构件技术 7.1软件复用技术的发展与应用 7.1.1 软件复用技术的发展 1.1968——1978年:萌芽、潜伏期 2.1979——1983年:再发现期 3.1983——1994年:发展期 4.1994年至今:成熟期 7.1.2 软件复用的形式 7.1.3 软件复用的类型与优点 1.软件复用的类型 软件复用可以分为横向复用和纵向复用两种类型。 2.软件复用的优点 ⑴ 提高生产率 ⑵ 减少维护代价⑶ 提高互操作性 ⑷ 支持快速原型⑸ 减少培训开销 7.1.4 可复用软件构件的生产与使用 1.可复用软件构件的开发思路 2. 可复用软件构件的使用 ⑴ 构件分析与设计 ⑵ 构件实现及局部测试。 ⑶ 基于构件的应用程序组装。 ⑷ 应用系统整体测试。 3. 采用构件编程的优势 ⑴ 面向对象编程的重用属于白盒复用,是对源代码的复用,而构件复用可以是黑盒复用,使用者可以不对它进行继承、重载等操作而直接使用。 ⑵ 面向对象编程的复用要受到其开发环境的制约,如用C++产生的类很难在以Object Pascal为开发语言的项目中复用,而构件复用则不然。 ⑶ 面向对象编程的复用是基于源代码级的,而很多程序员出于技术保密,不会公开其源代码,这使得研究成果的复用范围很小。采用构件就不一样了,因为构件是一段二进制码,其内部具体实现是无法看到的,可以将成熟的构件当作商品出售,可有效地重用他人已有的劳动成果。 7.1.5 可复用软件的生产与复用 1. 可复用软件的生产过程 ⑴ 领域分析 ⑵ 建立领域中特定的体系结构模型 ⑶ 识别将要建立或准备复用的候选构件 ⑷ 完成共性/差异分析 ⑸ 再造可复用构件 ⑹ 构件的封装 2. 基于复用的应用系统构造 7.1.6 面向对象技术与软件复用的关系 1. 面向对象技术对软件复用的支持 面向对象方法对软件复用技术提供了良好的支持。 2. 复用技术对面向对象的方法的支持 面向对象的软件开发和软件复用之间的关系是相辅相成的。 7.2软件构件技术 7.2.1 软件构件技术 1.软件构件技术的发展历史 2.软件构件技术的发展现状 3.基于构件的软件复用的关键技术 7.2.2 软件架构 1. 软件架构的概念 2. 软件架构的要素 一般而言,软件系统的架构(ArchitECture)有两个要素: ⑴ 它是一个软件系统从整体到部分的最高层次的划分。 ⑵ 建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。 3. 软件架构的目标 可靠性(Reliable) 安全行(Secure) 可扩展性(SCAlable) 可定制化(CuSTomizable) 可扩展性(Extensible) 可维护性(MAIntainable) 客户体验(Customer Experience) 市场时机(Time to Market) 4. 软件架构的种类 ⑴ 逻辑架构 ⑵ 物理架构 ⑶ 系统架构 7.3 软件再工程 7.3.1 软件运行维护遇到的问题 1. 软件维护费用高 2. 软件维护难度大 3. 软件资产数额巨大 7.3.2 软件再工程的概念 再分析 再编码 再测试 7.3. 3 软件再工程的模型 1. 传统的软件再工程模型 2. 面向对象软件再工程模型 7.3.4 实用的重用战略 界面重用策略 2. 逻辑层包装原则 3. 数据层重用策略 7.3.5 再工程活动类型级别 1. 系统级 2. 数据级 3.程序级 7.3.6 再工程活动的步骤 ⑴ 逆向工程(reverse engineering)阶段 ⑵ 正向工程(forward engineering)阶段,即软件开发过程 7.3.7 再工程的相关软件技术 ⑴ 逆向工程 ① 反汇编、反编译 ② 设计信息提取 ⑵ 正向工程 ① 4GL ② OOP ③ CASE *Company Logo * 代码构件复用 设计结果复用 分析结果复用 测试信息复用 主要包括测试用例的复用和测试过程信息的复用。 受实际环境影响小,可复用机会多,所需修改少。 针对问题域的某些事物或某些问题的抽象程度更高的解法。 针对问题域的某些事物或某些问题的抽象程度更高的解法。 抽象 程度 高 低 图7. 1软件复用的级别 图7.2基于构件的软件开发基本思路 构件需求,领域分析 构件库 构件开发与维护 构件设计和实现 构件测试 采购新构件 从已有系统中发掘、提炼构件 开发新构件 应用系统开发 设计软件体系结构 检索、获取构件 组装应用系统 领域需求分析 领域
文档评论(0)