导图社区 软件工程
大学的软件工程的学习笔记希望对大家有用
编辑于2019-10-29 02:52:44正则表达式:文本处理的万能钥匙!一、基础概念:用模式描述字符串规则,掌握元字符、量词、分组即可入门二、核心语法:从简单匹配到复杂逻辑,精准控制文本三、高级特性:零宽断言等技巧解决棘手问题,注意不同语言引擎差异四、应用场景:格式验证、日志分析、批量替换,覆盖编程语言(Python/Java)、编辑器(VS Code)、数据库(MySQL)等附赠工具:regex101在线调试,regexr可视化学习,助你快速上手!
G1垃圾回收器:高效分代式内存管理的革新者! G1(GarbageFirst)是面向多核大内存的垃圾回收器,通过分区模型(Region)和分代设计实现低延迟。其核心包括内存模型(分区、分代、收集集合CSet)和活动周期:RSet维护、并发标记(初始标记→根扫描→并发标记→重新标记→清除)、混合收集(转移失败触发Full GC)以及年轻代收集(动态调整GC线程)。G1以可预测停顿为目标,平衡吞吐量与响应速度,适合现代Java应用。
"Redis三高架构与新版本黑科技,解锁大厂实战秘籍! 内容亮点: 1. 深度解析Redis高可用(哨兵/Cluster)、高扩展及性能调优核心策略 2 揭秘微博亿级流量下的缓存实践与监控体系化方案 3. 新版本特性全览:多线程IO、Stream类型、ACL安全防护等 4 避坑指南:缓存击穿/雪崩、bigkey、内存碎片等高频问题解决方案 5. 从Redis4到6的演进路径与未来模块化生态展望。
社区模板帮助中心,点此进入>>
正则表达式:文本处理的万能钥匙!一、基础概念:用模式描述字符串规则,掌握元字符、量词、分组即可入门二、核心语法:从简单匹配到复杂逻辑,精准控制文本三、高级特性:零宽断言等技巧解决棘手问题,注意不同语言引擎差异四、应用场景:格式验证、日志分析、批量替换,覆盖编程语言(Python/Java)、编辑器(VS Code)、数据库(MySQL)等附赠工具:regex101在线调试,regexr可视化学习,助你快速上手!
G1垃圾回收器:高效分代式内存管理的革新者! G1(GarbageFirst)是面向多核大内存的垃圾回收器,通过分区模型(Region)和分代设计实现低延迟。其核心包括内存模型(分区、分代、收集集合CSet)和活动周期:RSet维护、并发标记(初始标记→根扫描→并发标记→重新标记→清除)、混合收集(转移失败触发Full GC)以及年轻代收集(动态调整GC线程)。G1以可预测停顿为目标,平衡吞吐量与响应速度,适合现代Java应用。
"Redis三高架构与新版本黑科技,解锁大厂实战秘籍! 内容亮点: 1. 深度解析Redis高可用(哨兵/Cluster)、高扩展及性能调优核心策略 2 揭秘微博亿级流量下的缓存实践与监控体系化方案 3. 新版本特性全览:多线程IO、Stream类型、ACL安全防护等 4 避坑指南:缓存击穿/雪崩、bigkey、内存碎片等高频问题解决方案 5. 从Redis4到6的演进路径与未来模块化生态展望。
软件工程
概述
软件
内容
程序
数据
文档
特点
软件危机
定义
产生背景
主要表现
原因分析
软件工程
目标
软件生存周期
软件定义(计划)时期:做什么
需求获取
要解决什么问题
目标
可行性分析
可行性论证报告
初步的项目开发计划
方面
经济可行性
技术可行性
社会可行性
需求分析
软件开发时期:如何做
软件设计
总体设计(概要设计)
设计的内容
详细设计
每个模块的算法
编码
测试
单元测试
综合测试
集成测试
确认测试
系统测试
运行维护时期
软件交付
培训
培训种类
用户培训
操作员培训
特殊培训需求
培训助手
文档
演示和上课
图元和联机帮助
文档
使用与维护
完善性维护
适应性维护
纠错性维护
预防性维护
软件工程学方法
方法:技术手段
传统方法
结构化范形(瀑布模型)当软件过大,需求不明确的时候容易出事故
面向对象方法
1.易维护
即使需求改变也只需要修改部分模块
2.质量高
在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。
3.效率高
接近于现实生活,易于理解
4.易扩展
由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。
需求分析和测试工具
形式化方法
工具
编码工具和调试工具
测试工具
过程:管理手段
软件工程知识体系
开发与维护过程
支持和组织过程
开发模型
瀑布模型
过程增量模型
螺旋模型
演化过程模型
面向对象方法与UML
面向对象
类
对象
封装
多态
消息通信
面向对象的开发方法
统一建模语言UML
事物
结构事物
行为事物
分组事物
注释事物
关系
依赖
关联
泛化
实现
图
结构图
类图
关联
单向
无向
聚合
组合
依赖
泛化
构件图
部署图
行为图
活动图
用例图
关联
泛化
扩展
包含
状态图
顺序图
通信图
1.分析
需求分析
需求定义
产生需求文档SRS
1.引言
2.任务概述
3.功能需求
4.数据描述
5.性能需求
6.运行需求
附录
需求获取
需求获取
功能获取
非功能需求
可行性
技术可行性
经济可行性
社会可行性
结构化分析
分成数据流图【功能建模
E-R图【数据建模
实体
属性
关系
状态迁移图【行为建模
数据字典【核心
其它补充材料
面向对象分析
用例图:用例模型
类图:对象模型
状态图和顺序图:交互模型
2.设计
软件设计原则
模块独立
低耦合
无直接耦合
数据耦合
标记耦合
控制耦合
公共耦合
内容耦合(最高,也最差
高内聚
偶然内聚
逻辑内聚
时间内聚
通信内聚
顺序内聚
功能内聚
提高抽象层次
复用性设计
灵活性设计
结构化设计
体系结构设计
接口设计
数据设计
面向对象设计
设计原则
开闭原则
里氏置换原则
单一职责原则
依赖倒置原则
接口隔离原则
组合聚合原则
迪米特原则
概要设计
选定体系结构
确定设计方案
设计软件结构
数据结构和数据库设计
制定集成测试计划
编写概要设计文档
详细设计
为每个模块进行详细算法设计
为每个模块的数据结构进行设计
对数据库进行设计
其他设计
代码设计
输入/输出格式设计
界面设计
制定单元测试计划
评审
详细设计的描述方法
流程图
PAD图
过程设计语言
3.实现
设计语言
程序设计风格
编码规范
程序效率与性能分析
4.测试
种类
静态测试
代码检查
静态结构分析
代码质量度量
动态测试
白盒测试
语句覆盖(弱
判定覆盖
判定-条件覆盖
条件组合覆盖(强
路径覆盖
黑盒测试
边界值分析
等价类划分
步骤
单元测试
驱动模块
桩模块
集成测试
确认测试
a测试,b测试
系统测试
功能测试
回归测试
性能测试
恢复测试
安全性测试
压力(强度)测试
5.维护
纠错性维护
适应性维护
完善性维护
变更控制
文档说明
跟踪系统
授权准核机构
预防性维护
步骤
确定维护类型
建立维护优先级
修改需求说明
修改软件设计
修改代码
进行测试步骤
6.管理
项目管理
步骤
项目的启动
项目的计划
项目的实施及控制过程
项目的收尾
项目的后期维护
核心三角因素
范围
时间
成本
风险管理
进度管理
需求管理
配置管理