软件设计补充|青训营笔记

144 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 17 天

软件设计

软件工程:自顶向下分阶段实施

结构化设计:自上而下逐步求精

软件开发阶段

可行性分析:经济技术和社会可行性,流程图、结构图,产生可行性报告

需求分析:产生需求规格书、用例图、业务流程图,数据流图

概要设计:把数据流图转换成软件结构和数据结构,划分模块接口、系统架构、功能模块设计、数据库设计、接口设计等。产生框架图、时序图、ER图/结构数据模型、接口文档、概要设计说明书

详细设计:概要设计基础上扩展细化,确定算法等。产生详细设计说明书

编码

测试:设计测试用例发现错误。产生测试计划、测试分析报告

运维:针对环境变化进行修改。产生程序维护手册

设计模式原则

单一职责:一个类仅有一个引起它变化的原因

开放封闭:对程序的改动可以通过增加代码来完成,但是不能改动现有的代码

里氏替换:兼容父类,不修改父类

依赖倒转:细节依赖于抽象,上层依赖于下层

迪米特:尽量降低类之间的耦合

接口隔离:不实现不需要的接口

面向过程&面向对象&泛式编程

面向过程:以过程为中心,一步步实现

面向对象:通过对象完成功能,数据和对数据的操作封装在一起。三大特征:封装继承多态

泛式编程:对类型和操作的抽象,典型STL。比面向对象中运行期的多态效率更高,且代码量小(如果每个类型都多态,就违反dry原则dont repeat urself)

面对对象设计原则

单一职责、开放封闭、依赖倒转、里氏替换、接口隔离、合成复用(多用组合设计类,少用继承)