[HITSC] 2021期末复习-第九章
CHAPTER 10 面向可维护性的构造技术
摘要:什么是软件维护;可维护性如何度量;实现高可维护性的设计原则;基于语法的构造技术
- Software Maintenance and Evolution
--软件维护:修复错误,改善性能
//老图了,章章见到
--修复代码->测试修改->回归测试->记录变化
--不得引入新故障
--保留足够的文档记录和测试
--软件维护的种类
--定义:软件演化:对软件进行持续更新
--雷曼定律:质量下降,复杂度上升
--面向维护的编程
10.2 维护策略/常用指标
--可扩展/可维护/灵活/可适应/可管理/支持性
--维护性问题:设计结构简单/模块内高内聚/模块外低耦合/继承树结构/委托代替继承/圈复杂度/重复代码
--MI(可维护性指数)based on:
--CC(圈复杂度):计算不同程序流程的数量
--LOC(代码行数)
--COM(注释百分比)
--HV(霍-容积)
10.3 模块化设计-模块化原则
--模块化设计目标:将系统划分为模块
--高内聚/低耦合(该原则是评估设计可维护性的最重要原则);分离关注点;信息隐藏
10.3.1 评价模块性的五个标准
10.3.2 模块化设计的五个原则
--直接映射/尽可能少的接口/尽可能小的接口/显示接口/信息隐藏
10.3.3 高内聚/低耦合
--耦合是模块之间依赖关系的度量,取决于接口数量和接口复杂性
--内聚是对模块的功能或职责之间的相关性的度量,时刻牢记:模块为单一目的而存在
--高内聚势必导致低耦合
10.4 面向对象的设计原则:SOLID
10.4.1 SRP-单一责任原则
10.4.2 OCP:开闭原则
--关键解决方案:抽象技术
10.4.3 LSP:liskov替换原则
--子类型->基类型,派生类->基类接口
--对基类的引用应能够无措地应用到基类的一切派生类
10.4.4 ISP:接口隔离
--实现类只需实现拆分后自己需要的小的接口
10.4.5 DIP:依赖转置
--具体依赖于抽象(单方面)
10.5 语法驱动的构造
--输入/输出流
--RE:正则表达式
10.5.1 语法成分
--为了描述一串可能由各种元素构成的符号,使用语法:一种紧凑表示
--语法定义了一组字符串,称为语法解析树的终止节点/叶节点,无法继续扩展
--语法可由一组产生式描述,每个产生式都对应一个非终结节点
--构造字符串:操作符 + 终止节点 + 非终止节点
--产生式结构如下:
--根是文法的非终结符。语法可识别匹配根非终结符(根节点)的字符串。
10.5.2 Operators in a Grammar
--三个基本操作(正则)
--优先级:后缀运算符
--克林闭包允许匹配空串,而采用S->AA*形式复杂
10.5.3 扩展操作符:由正则操作派生的语法糖
10.5.3 递归
--左右出现相同字母;如下图只有B是递归的
10.5.4 语法树-没什么说的,画就行了
10.5.5 Markdown & HTML
--虽然语法有差,但表达正则表达式的功能是等价的
10.5.6 正则语法和正则表达式
[HITSC] 2021期末复习-第九章相关推荐
- 计算机组成与系统结构期末复习 第二章 2.2
计算机组成与系统结构期末复习 第二章 2.2 1.实现下列各数的转换: (101101.011)2 = (?)10= (?) 8= (?) 16= (?) 8421 (0101 1001 0110.0 ...
- 网络经济学期末复习——第一章 导论
网络经济学期末复习 --第一章.导论 一.课程介绍 二.课本选择 三.思维导图--第一章 导论 四.温馨提示 一.课程介绍 网络经济学简介: 网络经济学是近几年的一门新兴的研究网络环境下经济活动的交叉 ...
- 【数字图像处理】2021期末复习考试重点大纲
本文目录 数字图像处理期末复习 1.填空(每空2分,共20分) 1.均值滤波计算 2.中值滤波计算 3.水平方向一阶锐化计算 4.无方向一阶锐化计算 5.位图文件存储所需要的数据量计算 2.问答(每题 ...
- 通信电子线路期末复习第一章和第二章上
写在前面:本文仅供个人学习使用.本课程授课教师为乐艳芬. 文章目录 第一章 绪论课后作业题 第二章 丙类谐振功率放大器 2.1小信号谐振放大器概述 2.2单谐振回路-LC谐振回路 电容单位的换算 计算 ...
- 通信网络基础期末复习-第一章和第二章-概论和端到端的传输协议
写在前面:本课程授课教师为韩彦芳.本文仅供个人复习学习.构建知识体系所用. 文章目录 第1章 通信网络概述及数学基础 1.1 通信网络的基本构成 1.2 协议体系及分层的概念 1.2.1分层的概念 1 ...
- 通信电子线路期末复习第二章下
文章目录 第二章 高频谐振放大器 2.5 丙类谐振高频放大器 练习题 第二章 高频谐振放大器 2.5 丙类谐振高频放大器 练习题 用到这个图
- 樊昌信版通信原理期末复习第一章绪论
第1章 绪论 一.知识点梳理 1.通信的目的:传递消息中所包含的信息. 2.消息:是物质或精神状态的一种反映. 3.信息:是消息中包含的有效内容. 4.通信系统的一般模型 信源输入变换器:将非电物理量 ...
- 操作系统期末复习-第一章:操作系统概论
目录 1.1操作系统概念功能目标 操作体统的层次结构 定义 功能 裸机 小结 1.2操作系统特征 并发 共享 虚拟 异步 小结 1.3操作噢系统分类 单道批处理 多道批处理 小结 1.4操作系统运行 ...
- 知识产权《雨课堂》2021期末复习笔记
好好复习,天天向上 最后感谢郭同学,杨同学的总结....
最新文章
- 信号系统的一些基本概念
- 基于直方图均衡化的水下激光图像处理(MATLAB仿真)
- opencv python 图像去噪
- C++ STL的妙用
- 张俊红21岁的年度总结
- python输入二维数组_python 二维数组键盘输入
- Python之网络编程(socketserver模块详解、链接认证)
- mysql lvs 读写分离_mysql高可用架构方案之二(keepalived+lvs+读写分离+负载均衡)
- Count on a tree SPOJ - COT
- moss 搜索 属性过滤 值被移除了
- 常见的前端视频播放格式
- php花瓣,php 网络爬虫,爬一下花瓣的图片
- python风变编程是骗局吗-黑猫投诉:风变编程诱导消费涉及退款无人答复霸王条款...
- vue背景图片资源加载问题
- 三、公网环境搭建Kubernetes (k8s) 集群的详细图解
- CSAPP ArchLab
- 史上最详细的LXR安装介绍
- 水星路由器wan口ip显示0_路由器wan口ip地址显示0.0.0.0怎么办(2)
- 计算机硬件加速怎么开,电脑中如何开启3d硬件加速|电脑开启3d硬件加速图文教程...
- 常用浏览器兼容性测试点总结
热门文章
- 数据流图的画法,如何画数据流图
- 全面推进实景三维中国建设 自然资源部明确这些要求 点卯-三维视频融合 魔镜系列
- 日本气象厅拟提高台风预报能力 5天前就能掌握信息
- 数据结构实训——飞机订票系统
- 基于ijkplayer+Rxjava+Rxandroid+Retrofit2.0+MVP+Material Design的android万能播放器
- ipv4地址是ip地址吗?
- 打工人、打工魂、高效MES助力打工者都是人上人
- java系统慢怎么优化_解决vmware虚拟机速度慢的3种方法
- 克罗内克递归单元(论文翻译)
- 在mysql中删除表正确的是什么原因_MySQL在删除表时I/O错误原因分析