- 博客(9)
- 收藏
- 关注
原创 软件构造课复习笔记【5】
5-1可维护性的度量与构造原则 (1)什么是软件维护 (2)可维护性如何度量 (3)实现高可维护性的设计原则 软件维护和演化 软件维护:修复错误、改善性能,处理来自用户报告的故障/问题 除了修复问题,修改中不能引入新的故障 软件维护的评估占比: 25% 纠错性 21% 适应性 50% 完善性 4% 预防性 软件演化:对软件进行持续的更新 (软件的大部分成本来自于维护阶段) 在设计与开发阶段就要考虑将来的可维护性 方法: 模块化 OO设计原则 OO设计模式 基于状态 的构造技术
2020-07-11 15:33:16
594
原创 软件构造课复习笔记【4】
4-1可复用性的度量、形态与外部表现 复用的级别: 源代码级别的复用 模块级别的复用:类/抽象类/接口 库级别的复用:API/包 系统级别的复用:框架 什么是软件复用 面向复用编程:开发出可复用的软件 基于复用编程:利用已有的可复用软件搭建应用系统 复用的作用: 降低成本和开发时间 经过充分 测试,可靠、稳定 标准化,在不同应用中保持一致 但支持复用性越强的软件开发成本同时越高,性能差些: 针对更普适场景,缺少足够的针对性 使用已有软件进行开发: 可复用软件库,对其进行有效的管理 往往无法拿来就用,
2020-07-10 23:18:50
405
原创 面向复用的设计模式概述
Adapter(适配器模式) 作用:1.将某个类/接口转换为client期望的其他形式 ,解决类之间接口不兼容的问题 2.通过增加一个接口,将已存在 的子类封装起来,client面向接口编程,从而隐藏了具体子类。 (加个“适配器”以便于复用) 使用适配器模式时,一般是采用委托机制,因为继承过多的话会导致结构过于复杂。 适配器类实现客户端的抽象接口,并将数据进行处理之后传入被适配的类,也可以将被适配的类的数据处理后返回客户端。 Decorator(装饰器模式) 用每个子类实现不同的特性,如果有多个客户端需要不
2020-07-10 23:17:35
323
原创 JAVA中函数重写和重载的区别
**重载(Overload)**是让类以统一的方式处理不同类型数据的一种手段,多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回类型作为重载函数的区分标准)同时存在于同一个类中,是一个类中多态性的一种表现(调用方法时通过传递不同参数个数和参数类型来决定具体使用哪个方法的多态性)。 重点: 1.同样的函数名称 2.参数必须不同,包括参数类型,参数个数等,不完全相同 3.存在于一个类中,用于实现相似但不同的功能 4.调用时根据调用的参数判断选择哪个函数 **重写(Override)**是父类
2020-07-09 15:07:30
370
原创 软件构造课复习笔记【3】
3-1数据类型与类型检验 1编程语言中的数据类型 2.静态和动态数据类型检查 3.可变性和不变性 4.快照图 5.复杂数据类型:数组和集合 6.有用的不可变类型
2020-07-09 14:48:17
691
原创 软件构造课复习笔记【2】
2-1 软件生命周期与配置管理 主要内容: 软件开发的 基本过程 传统的软件开发过程模型 敏捷开发 软件配置管理 Git作为配置管理工具 软件生命周期(Software Development Lifecycle(SDLC))
2020-07-03 09:14:03
253
原创 软件构造课复习笔记【1】
0-1 课程简介 课程目标: 1.认识软件构造的质量标准与目标,学习软件 构造的基本过程 2.初步掌握面向关键质量目标(可理解性、可维护性、可复用性、健壮性、时空性能)的软件构造基本技术 3.多种不同的软件构造方案,有什么差异? 4.如何在需求不同的情况下选择最合适的软件构造方案? 5.能力转变: 程序设计与实现能力 :功能->质量 系统设计与实现能力 :具体->抽象 系统分析与评价能力 :编程->工程 利用现代软件构造工具的能力 :手工->工具 软件设计的循环过程: 1.
2020-06-18 10:07:44
669
原创 java.lang.UnsupportedOperationException at java.util.AbstractList.add(Unknown Source)异常
在跑Junit测试时报出异常: java.lang.UnsupportedOperationException 代码如下: public String poem(String input) { List<String> inputwords = Arrays.asList(input.split(" ")); Graph<Strin...
2020-04-06 18:35:51
2551
原创 软件构造课初学时用到的一些学习网站
语言基础: 浙大翁恺老师在中国大学MOOC的课 零基础学Java语言 以及上一门课的进阶课 面向对象程序设计——Java语言 Git/GitHub: GitHub无法加载的解决办法: https://www.zhihu.com/question/20732532 https://www.cnblogs.com/jackntydrm/p/11044879.html 使用Git管理自己的代码: 安装...
2020-02-26 16:30:38
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅