软件复用

UML将复用定义为:已有人工制品的使用。

记住,除了继承,还可以通过其他方式进行复用,包括代码拷贝。在建模中的最大错误之一就是为了获得复用而强迫使用不适当的泛化,这种做法通常会造成混乱。

软件复用的粒度及对应的复用策略:

  • 类 ~ 工具包(类库)
  • 构件 ~ 框架
  • 解决方案 ~ 分析与设计模式

工具包复用

工具包强调在类一级进行代码复用。

在这种层次的复用中,程序员通过调用某些类库中的具体类来完成程序。
此程序的主题是程序员编写的,而不是复用的。
(就好比你调用Guava库的某些API来简化你的Java编程)

有两种工具包:

  • 基础工具包:基础类由对象编程环境广泛提供,包括实现原始数据类型的类、结构化数据类型与集合。
  • 体系结构工具包:体系结构类通常作为系统软件的一部分,如OS、DB、GUI软件。

框架复用

框架强调构件级的设计复用。

与工具包复用不同,一个框架提供程序的骨架,程序员通过编写框架需要调用的程序代码在框架骨架里完成程序,程序本身是定制的。

除了框架本身的具体类,框架提供了大量的抽象类用于程序员实现定制的程序。

(就好比你基于Spring框架来开发Web系统的Java后端)

一个框架是可定制的应用软件。

虽然框架是一种极有吸引力的复用建议&

【软件工程】软件复用相关推荐

  1. 软件工程知识点整理(复习用)

    文章目录 概述 1.1 什么是软件 1.2 ==优良软件的属性== 1.3 工程与工程活动 1.4 软件危机 1.5 什么是软件工程 1.6 软件过程与软件生命周期 1.7 软件工程方法 1.8 == ...

  2. 软件工程---15.软件复用

    复用的图(牢记) 软件复用的好处 开发加速 有效的专家利用 提高可依赖性 降低开发成本 降低过程风险 符合标准 软件复用的缺点 创建,维护以及使用一个构件库 查找,理解以及适配可复用构件 维护成本增加 ...

  3. 软件工程技术基础-(软件复用技术)

    软件可重用问题,包括源程序代码重用.静态库重用和组建重用. 源程序代码重用是直接将其他项目或系统开发完成的代码复制过来,直接使用. 限制源程序代码重用技术使用的关键因素是要考虑代码的语言实现,以及源代 ...

  4. 软件工程能力漫谈:比编码更重要的,是项目管理能力

    章老师博士毕业后在清华待了 12 年,主要是做网络方面的研究,到 2006 年的时候离开清华,进入到工业界,首先做了六年的用户产品研发,之后在 2012 年加入百度,一直做网络基础架构相关的开发工作, ...

  5. 论面向对象方法与软件复用关系-z

    1.软件复用的特点和现状 软件复用就是将已有的软件成分用于构造新的软件系统.可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可 ...

  6. 【转】软件工程能力漫谈:比质量更重要的,是项目管理能力

    转自:软件工程能力漫谈:比质量更重要的,是项目管理能力 | ArchSummit 章淼老师在软件工程能力方面,积累了多年的经验,这个话题他之前也分享过多次,整体上内容有修改调整. 章老师博士毕业后在清 ...

  7. 软件工程环形复杂度计算方法有哪些_软件工程复习6165组考题

    黑色字体为原本答案,蓝色字体修改补充了 复习题组「61-65/61-65/13/13」 一.名词解释 61.确认测试 检查已实现的软件是否满足了需求规格说明中所确定的各种需求,以及软件配置是否完全.正 ...

  8. 软件工程复习提纲——第一章

    软件工程复习提纲,期末.考研的学霸笔记 第一章--软件工程基本概念 第一章软件工程基本概念 软件危机的概念:指在计算机软件的开发和维护过程中所遇到的一系列严重问题. 软件危机包含两方面的问题:1)如何 ...

  9. 47 软件工程34h-北京大学孙艳春老师

    P11. 1.2软件工程课程介绍第一讲48:03 P22. 1.2软件工程课程介绍第二讲50:53 P33. 2.1软件生存周期过程第一讲49:51 P44. 2.1软件生存周期过程第二讲46:35 ...

最新文章

  1. 获取服务器路径的方式 【记录】
  2. 《数学之美》第3章 统计语言模型
  3. termux python 打开摄像头_【图片】将termux打造成合格的python环境(假装是教程贴)_termux吧_百度贴吧...
  4. 互联网+办公”中的网红企业网盘——坚果云
  5. python os.environ gpu_Tensorflow下如何实现多GPU数据并行训练?
  6. VMware下安装Ubuntu不支持1920X1080分辨率问题
  7. 第三次学JAVA再学不好就吃翔(part24)--构造方法
  8. tomcat 指定的服务未安装(总结验证)
  9. HardSoft-Viewer PHP_index.php
  10. Java 窗口菜单
  11. SylixOS IO层源代码解析
  12. Python读取微信朋友圈
  13. 大数据分析平台搭建指南
  14. 服务器2008系统安全狗,win2008 r2 服务器安全设置之安全狗设置图文教程
  15. 7.25 1figting!
  16. Win10系统双击无法打开图片的解决方法
  17. EmpireToken创造超级代币
  18. 2023元旦倒计时代码
  19. 快手磁力聚星浪漫七夕活动圆满收官
  20. 知识图到文本的生成——叁

热门文章

  1. 【python】BytesIO与串化
  2. MySQL数据库编译过程
  3. java利用htmlparser得到网页html内容
  4. Shell基本命令汇总
  5. silverlight动态创建WCF服务
  6. 大数据可视化案例分析_Tableau数据可视化分析案例
  7. zemax设计35mm镜头_ZEMAX怎样优化MTF?
  8. mysql查询当前库的实例名_oracle查询数据库名、实例名等
  9. 利用计算机找出函数关系式,使用 CHOOSE 查找函数中类似于表的信息 - Excel公式函数运用大全...
  10. python查询斐波那契数列通项公式_斐波那契数列求解总结(Python版)