软件构造学习笔记第五章#1

软件构造学习笔记第五章#1

运维是软件开发中最困难的环节,处理来自用户报告的故障/问题
纠错性:对BUG进行维护
适应性:例如吧APP从电脑移植到手机
完善性:软件的功能不足,对功能进行扩充
预防性:预见软件后期需要升级,为了适应后期的升级,对软件结构来进行很好的设计。

软件演化:对软件进行持续的更新
如现在大部分的成本都在维护阶段

可维护性指标度量方式:
1)圈复杂度CC=E-N+2, CC=P+1, CC = number of areas
E = 边数,N = 节点数,P = 判定的个数 number of areas:边组成的区域的个数

2)代码行数:行数越多越复杂
继承的层数,类之间的耦合度,单元测试覆盖度

模块化编程
1)高内聚:每个模块完成一个功能
2)低耦合:每个模块关联少
3)分离关注点:每个模块功能少
4)信息隐藏:模块的信息被隐藏

模块设计五种指标
可分解性:软件可以分成不同模块(每个模块有自己的功能,功能不能太多)。
可组合性:多个模块,把他们组合可以完成软件要求
可理解性:每个模块的类的职责清晰,每个操作有单独的类来完成
可持续性:发生变化时受到影响小
出现异常之后的保护:出现异常后影响范围小,波及的模块越少,异常保护的性能越好

帮助模块化设计的五个指标
直接映射
尽可能少的接口
尽可能小的接口
显示接口
信息隐藏

耦合和内聚
耦合:模块与模块之间的联系程度。耦合的极致就是把所有功能放到一个模块 里
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
策略模式主要用了2和5
单一责任原则SRP 开放封闭原则OCP open close
里氏替换原则LSP 接口分离规则 ISP 依赖注入或倒置原则DIP
高层和底层模块都应该依赖抽象
Creation Patterns
GRAPG(通用职责分配原则):程序有多个职责,应该怎么把职责分到各个类中。

工厂模式(创建模式) 用户不知道要创建哪个类的具体实例
定义一个用来创建具体对象的接口让它的子类来决定实例化哪个类
缺点:会引入额外的复杂性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值