如何设计软件系统结构 如何设计软件

今天给各位分享如何设计软件的知识,其中也会对如何设计软件系统结构进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!  
如何软件系统设计一、善用UML工具  
用例图  
用于需求分析阶段,从用户角度描述系统功能 。  
用例图  
静态图:类图、对象图、包图  
静态图  
交互图-时序图(注重时间)  
常用组合片段:选项(Opt)、循环(Loop)、并行(Par)、抉择(Alt)、中断(Break)  
时序图  
交互图-协作图(注重对象)  
协作图  
行为图-状态图(注重状态)  
状态图  
行为图-活动图(注重活动)  
活动图  
实现图-组件图  
组件图  
实现图-部署图  
部署图  
二、遵从设计原则  
设计模式基础  
单一职责:一个类只负责一个职能;  
里氏转换:在子类中不应重写、重载父类的方法,子类要能替代父类;  
接口隔离:不依赖不需要的接口,拆分大接口;  
迪米特法则:一个对象应该对其他对象保持最少的了解(低耦合);  
开放封闭:对扩展开放,对修改关闭;  
依赖倒置:抽象不应该依赖细节,细节应该依赖抽象,即针对接口编程,所有依赖关系都终止于抽象类或接口,不要对实现编程 。  
设计模式  
创建型  
工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)、单例(Singleton)、原型(Prototype) 。  
结构型  
组合(Composite)、代理(Proxy)、外观(Facade)、适配器(Adapter)、装饰(Decorator)、桥接(Bridge)、享元(Flyweight) 。  
行为型  
策略(Strategy)、模板方法(Temple  
Method)、观察者(Observer)、状态(State)、备忘录(Memento)、迭代器(Iterator)、命令(Command)、责任链(Chain  
Of Responsibility)、中介者(Mediator)、访问者(Visitor)、解释器(Interpreter) 。  
分布式设计原则  
高可用  
降级、限流(漏桶-平滑、令牌桶-可突发、环形队列+滑动窗口)、切流、熔断、回流、可回流、超时、隔离(线程、读写、资源、热点、爬虫)、负载均衡 。  
高并发  
无状态、拆分、服务化、队列、数据异构(异构-原子化-聚合-缓存)、缓存、并发化(Future、Callback、Completable Future)、池化 。  
业务设计  
防重、幂等、规则引擎、状态机、审计、审批 。  
分布式理论  
CAP:一致性、可用性、分区容错性(三选二);  
BASE:基本可用、软状态、最终一致性;  
ACID:原子性、一致性、隔离性、持久性 。  
一致性原则  
XA协议:准备 - 提交(具有阻塞、协调者单点、脑裂等缺点);  
XA三段协议:询问 - 准备 - 提交;  
TCC:try - confirm / try - cancel 锁定 - 确认/释放;  
最终一致性:查询、补偿、定期校对、可靠消息、缓存一致性 。  
超时处理  
原则:谁超时谁处理,即接口调用超时,查询+补偿;接口调用成功后,接口内部服务超时须自己补偿 。  
两状态同步接口(OK/ERR):接口调用超时,调用方查询+补偿;接口内部服务超时,内部快速失败+冲正;  
三状态同步接口(OK/ING/ERR):接口调用超时,调用方查询+补偿;接口内部服务超时,返回处理中,内部查询+补偿到成功,调用方轮询;  
异步接口:接口调用超时,调用方查询+补偿;接口内部服务超时,内部查询+补偿到成功,回调通知;接口回调通知超时,指数补偿回调;  
消息队列:生产者发送超时,持久化可靠发送+幂等消费;消费者消费超时,消息处理完偏移量增加 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。