软件建模、设计模式、重构

【软件工程】软件建模基本概念和常用UML模型图 若要创建一座大厦,首先要做的肯定不是先去买所需要的材料,而是需要对建筑物的大小,形状和样式做一个规划,做出相应的图纸和模型。软件开发过程中,不同的阶段需要用到不同的UML图,选择使用那些图,需要深刻理解改图的主要用途,以及它表达的优势。软件建模体现了软件设计思想,需求和实现之间架起了一座桥梁,通过模型指导软件系统的具体实现。在不同的领域和场景下有不同的软件建模方法,其各自的建模思想和采用的建模工具也不尽相同。模型并不是软件系统的一个完备表示,而是所研究的系统的一种抽象。顺序图,活动图和状态图的对比。 阅读详情

软件建模、设计模式、重构

软件建模

软件建模体现了软件设计的思想,在需求和实现之间架起了一座桥梁,通过模型指导软件系统的具体实现。模型并不是软件系统的一个完备表示,而是所研究的系统的一种抽象。软件建模通过不同的视角去描述一个系统。

软件建模视角:外部视角,交互视角,结构化视角,行为视角。

软件建模方法:结构化方法,面向对象方法,基于构建方法,面向服务方法,面向方面方法,模型驱动方法,形式化方法。

UML特点:面向对象,可视化,表达能力强,独立于过程,独立于程序设计语言,易于掌握使用。

UML内容组成:

事务:结构事务,行为事务,组织事务,辅助事务。

关系:关联,依赖,泛化,实现。

图:静态图(用例图,类图,对象图,组件图,部署图),动态图(顺序图,合作图,状态图,活动图)。

UML 4+1视图:

逻辑视图:类图,对象图。

实现视图:组件图。

部署视图:部署图。

行为视图:顺序图,合作图,状态图,活动图。

用户视图:用例图。

UML在软件开发流程中的应用:

需求分析:用例图。

概要设计,详细设计:类图,对象图,合作图,顺序图,状态图,活动图。

编码阶段:无

测试:类图,组件图,部署图。

视角和类图:

交互化视角:用例图。

结构化视角:类图。

行为视角:顺序图,活动图,状态图。

用例图包含关系:

Include:包含也可以叫Use,表示本用例会用到被包含的其他用例,被包含的用例是可以被重用的。

Extend:扩展用例是可选的,在特定场景下可以补充基础用例,降低基础用例的复杂性。

Generalization:泛化体现了父子关系,表明存在派生和继承。

类图包含关系:

实现(Realization):是一种类与接口的关系,表示类是接口所有特征和行为的实现。例如:借阅者能查找书籍。

依赖(Dependency):是一种使用的关系,有单向依赖和双向依赖,但避免使用双向依赖。例如:借阅者查找结果依赖标题。

泛化(Generalization):是一种继承关系,指定了子类继承父类的所有特征和行为。例如:借阅者是老师或者学生。

关联(Association):是一种拥有的关系,它使一个类知道另一个类的属性和方法。例如:借阅者的借阅记录或预约记录。

聚合(Aggregation):是整体与个体的关系,可以理解成把个体聚集在一起。例如:借阅者的多条借阅记录。

组合(Composition):是整体与局部的关系,整体的对象负责代表局部的对象的生命周期,可以理解成整体是由局部组成的。例如:借阅记录必须要有相关书籍信息。

类图关系连线的箭头,指向内容和范围较小的类

各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖

用例图描述系统在干什么。动态模型是描述系统的功能是如何完成的,用顺序图、活动图和状态图从不同的角度来描述对象和对象之间的交互。

动态图作用和场景:

顺序图:强调消息时间顺序的交互图。描述复杂的多对象间交互。并发、分支过多的场景会影响可理解性。

活动图:用于对目标对象计算流程和工作流程建模。描述涉及到复杂的活动步骤的用例。特别并发、分支等场景。

状态图:描述了系统元素的状态条件和响应,它反映了类的对象可能具有的状态,以及引起状态变化的事件。涉及到复杂的状态变化的场景,也适用于并发场景,如网络连接的会话状态等。状态图仅用于具有下列特点的类:具有若干个确定的状态,类的行为在这些状态下会受到影响变为其他状态。

设计模式

所有的设计原则和设计模式都是为了更容易的实现高内聚低耦合。

正交四原则:

  1. 最小化重复。

  2. 分离变化。

  3. 缩小依赖范围。

  4. 向稳定方向依赖。

SOLID原则.

  1. 单一职责SRP,一个类,引起它变化的原因只有一个。如果一个变化,导致多处修改,则存在重复。

  2. 开闭原则OCP,对扩展开放,对修改关闭。多个变化导致一处修改,则对变化的识别不准,容易考虑不周,修改引入。

  3. 里氏替换原则LSP,基类设定一系列的规范和契约,子类需要遵守。

  4. 接口分离原则ISP,客户只需要了解必须了解的。不要暴漏的细节。

  5. 依赖倒置原则DIP,接口为稳定的契约,双方都依赖于抽象,不依赖于具体实现;上层定义接口,下层实现接口。

23种设计模式:

创建型:

  1. Factory Method(工厂方法):隔离创建对象的细节,使得创建对象的行为可扩展
  2. Abstract Factory(抽象工厂):该模式抽象出创建一组相关对象的接口,其中每个方法即为factory method
  3. Builder(建造者):与factory不同的是,该模式包含了对象构造的若干过程,因此天然地与template结合
  4. Prototype(原型): 用于以某个对象为模子创建一个新对象的场景,例如幻灯片中的母版与普通页、对象的克隆
  5. Singleton(单例):

结构型:

  1. Adapter Class/Object(适配器):处理遗留系统的不二法宝,也可以用空方法实现接口作为抽象父类
  2. Bridge(桥接): 使用关联代替继承,解决类多维度的扩展导致的类爆炸的问题
  3. Composite(组合):将组件组装为整体使用
  4. Decorator(装饰):常见于各种wrapper,常用于在原函数执行前后做一些额外的工作
  5. Facade(外观):封装扇出,利用树状结构减少调用者的复杂度
  6. Flyweight(享元):复用变化少的对象
  7. Proxy(代理):是原对象的一个完整的替代品

行为型:

  1. Interpreter(解释器):一般用于解释执行自定义的某种语法
  2. Template Method(模板方法):框架与钩子
  3. Chain of Responsibility(责任链):一组对象按照既定的顺序关联起来,依次处理请求,其中任一对象都有权停止调用传递
  4. Command(命令): 将行为抽象和解耦
  5. Iterator(迭代器):封装数据的访问行为(顺序、可见性等)
  6. Mediator(中介者):用一个中介对象来封装一系列的交互;新增一个模块处理两个模块的交互
  7. Memento(备忘录):将当前对象的状态信息保存为另一个对象,使得当前对象可以基于状态镜像快速恢复原状态
  8. Observer(观察者): 订阅/发布模型,用于事件驱动的设计
  9. State(状态):封装FSM(有限状态机)的状态与状态迁移,每个状态定义了自身的输入与状态迁移
  10. Strategy(策略):使用接口即使用strategy,用于隔离变化
  11. Visitor(访问者):数据与行为分离方法。通过这种分离,可达到一个被访问者动态添加新的操作而无需做其他的修改的效果

工厂方法设计模式使用场景:

1:当子类型可能会有很多,以后需要不断增加不同的子类实现时;

2:当一个系统尚在框架设计阶段,还不知道将来需要实例化哪些具体类时;

3:系统设计之初不需要具体对象的概念(或者说没有具体对象的概念);

4:在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可,具体的产品对象由具体工厂类创建;

5:在工厂方法模式中,对于抽象工厂类只需要提供一个创建产品的接口,而由其子类来确定具体要创建的对象,利用面向对象的多态性和里氏代换原则,在程序运行时,子类对象将覆盖父类对象,从而使得系统更容易扩展。

抽象工厂设计模式使用场景:

1:创建产品家族,相关产品集合在一起使用的时候;

2:想要提供一个产品类库,并只想显示其接口而不是实现时;

3:通过组合的方式使用工厂时;

4:系统中有多于一个的产品族,而每次只使用其中某一产品族。可以通过配置文件等方式来使得用户可以动态改变产品族,也可以很方便地增加新的产品族;

5:属于同一个产品族的产品将在一起使用,这一约束必须在系统的设计中体现出来。同一个产品族中的产品可以是没有任何关系的对象,但是它们都具有一些共同的约束,如同一操作;

6:系统下的按钮和文本框,按钮与文本框之间没有直接关系,但它们都是属于某一操作系统的,此时具有一个共同的约束条件:操作系统的类型;

7:产品等级结构稳定,设计完成之后,不会向系统中增加新的产品等级结构或者删除已有的产品等级结构。

适配器模式:

场景:现有类的接口不满足需求时。复用现有类,并使不兼容的类一起协同工作。复用现有的子类,通过对象适配器来适配父类接口

优点:提升现有类的复用性。提升系统的扩展性。可避免对现有代码的修改

缺点:过度使用适配器,会引入较多零散的类,导致系统变得凌乱

外观模式:

场景:为一个复杂的系统对外提供一个统一的接口。对子系统进行分层,并简化层次间的接口依赖

优点:降低系统间及系统与外部的耦合度,提升安全性。简化了系统的接口,更易于使用系统

缺点:对统一接口的使用可能会引入较多约束,降低了使用系统的灵活性。不易于修改,子系统的变动可能会引起外观层甚至客户端的改动,违背开闭原则

适配器模式与外观模式对比:

1:二者都是对现有接口进行转换以满足需求

2:适配器模式是将现有接口转变成需要的接口,外观模式是为各子系统的提供一个统一接口,简化系统对外接口

观察者模式:

场景:对象间存在一对多关系,一个对象的状态发生改变会影响其他对象。当一个抽象模型有两个方面,其中一个方面依赖于另一方面时,可将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。

优点:降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。目标与观察者之间建立了一套触发机制。

责任链模式:

场景:有多个对象可以处理一个请求,哪个对象处理该请求由运行时刻自动确定。可动态指定一组对象处理请求,或添加新的处理者。在不明确指定请求处理者的情况下,向多个处理者中的一个提交请求。

优点:降低了对象之间的耦合度。发送者和接收者也无须拥有对方的明确信息。增强了系统的可扩展性。可以根据需要增加新的请求处理类,满足开闭原则。增强了给对象指派职责的灵活性。可以动态地改变责任链的顺序,也可动态地新增或者删除责任。责任链简化了对象之间的连接。每个对象只需保持一个指向其后继者的引用。责任分担。每个类只需要处理自己该处理的工作,符合类的单一职责原则。

设计模式小结:

1:适配器模式将某个类的接口转换成客户端期望的另一个接口,消除由于接口不匹配所造成的类的兼容性问题;外观模式为一个复杂的系统对外提供一个统一的接口,将复杂屏蔽在内部,让客户端更易于使用。

2:观察者模式实现了依赖倒置,让数据持有者不再去关注数据消费者;责任链模式将可能新增的处理行为以链条的方式串联起来,为使用者提供了新增行为和排布行为间的先后顺序的扩展机制。

3:行为型模式用于描述多个类或对象之间,怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。能体现出程序在运行时复杂的流程控制。

重构

所谓重构(refactoring) 是这样一个过程: 在不改变代码外在行为的前提下, 对代码做出修改, 以改进程序的内部结构。

产品存量问题:

1:难以添加新特性。

2:存量代码难以理解。

3:难以保证产品的质量。

4:接口混乱。

5:简单堆砌式修改。

6:系统资源不足。

7:员工工作疲惫。

重构的好处:

1:改进软件设计。

2:使软件更容易被理解。

3:帮助你找到bugs。

4:助你提高编程效率。

Program SMaRT:performance高效,portable可移植,security安全,maintainable可维护,readable可读,reliability可靠,testable可测试。

重构等级要求:

L0:功能正确。功能点验收,自动化测试。

L1:无风险漏洞。门禁,静态检查,CodeDex,安全编码规范,CQI。

L2:代码整洁。通用编码规范,CodeStyle,CMetircs。

L3:架构敏捷。持续重构,架构可视化,SAI。

L4:持续演进。

重构场景对人的要求有不同:

1:小颗粒重构(函数级,小模块级),以开发人员为主,committer审核辅导。

2:大颗粒重构(架构级,大模块级),业务专家,软件专家。

重构时机:

1:事不过三。

2:添加功能时,让未来增加新特性时更加快速,更流畅。

3:修补错误时,因代码不够清晰而无法一目了然地发现错误。

4:复审代码时:经验传递,改善设计。

什么时候不适合做重构?

1:代码太混乱,设计完全错误,与其重构,还不如重新开始(重写)。

2:明天就是DeadLine,永远不要做“最后一分钟的修改”

3:重构工作量显著的影响估计,一个任务估计是3天,如果为了重构,需要更多时间(2天或更多)

4:没有任何更好的思路时不可重构。

两顶帽子:添加功能和重构,一次只做一件事。

1:添加新功能时,你不应该修改既有代码,只管添加新功能

2:重构时,你就不能再添加功能,只管改进程序结构

重构流程:

1:深入业务:挖掘问题,深入代码。

2:重构设计:领域建模,重构规划,兼容方案。

3:重构实施:工程基线,代码重构。

4:持续演进:模型演进,人员赋能。

重构手法

重构手法概述:抽取方法,内联方法,抽取类,重命名,移动方法。

十六字真言:旧的不变,新的创建,一步切换,旧的再见。

简化语句:

1:合并条件表达式。

2:移动语句。

3:以卫语句取代嵌套条件表达式。

重组函数:

1:将查询函数和修改函数分离

2:已明确函数取代参数

3:提炼函数:提取功能,将部分代码提取到独立函数,方便复用和维护,提升可读性,提炼到一个独立的函数中, 并以这段代码的用途为这个函数命名,方便理解。

4:内联函数:消除多余的间接性,将函数和被调用的代码合并了,方便理解,重新组织函数的过程中,把多个函数代码内联到一个函数中,方便后续重构。

重组数据:

1:拆分变量:如果变量被多次赋值,且赋值的意义不同,意味着它们在函数中承担了多个职责,容易造成理解困难和修改出错,应该根据不同的职责被拆分成不同的变量,每个变量只承担一个职责。

2:提炼类:单一职责,将不同职责的代码提取到独立的类(模块)。重新组织类,将多个类合并到一起,以便按照其他方向进一步拆分。

3:内联类:消除多余的间接性,消除不在有独立职责的类。重新组织类,将多个类合并到一起,以便按照其他方向进一步拆分。

4:类继承体系重构手法系列

a:函数上移(反 函数下移)。字段上移(反 字段下移)。移除子类(反 以子类取代类型码)。

b:提炼超类,折叠继承体系,以委托取代超类,以委托取代子类。

系统级重构:

拆解后带来的收益:业务复杂度,需求变化频率,平均日活。

拆解中的成本:系统集成关系,数据迁移量,代码改动量。

软件工程期末考点精析:从理论到实践的全面回顾 本文全面解析软件工程期末考点,涵盖软件生命周期、设计模式、迭代开发等核心概念,以及高频题型突破技巧、软件质量与测试重点、UML建模实战等内容。特别强调功能性需求与项目进度管理等关键知识,帮助考生从理论到实践系统复习,提升应试能力与实战技能。 阅读详情

相关推荐

系统架构设计:1论软件系统建模方法及其应用(试读)

UML定义了几种不同类型的模型图。实体-联系图(E-R图)是一种表示实体类型、属性和联系的方法,用于描述现实世界关系的概念模型。功能分解法将一个系统看成若干功能的集合,将系统划分为若干功能块,较大的功能模块则细分为较小的子模块,直到可以方便设计者定义为止。构件就是系统中有价值的、独立的、可替换的部分,可以通过接口访问构件的服务。定义和描述数据的数据项、数据结构、数据流、数据存储、处理逻辑等,其目的是详细说明数据流图中的各个元素。软件建模体现了软件设计的思想,是连接需求和实现的桥梁,用于指导软件的具体实现。

静谧、淡雅 1980

软件建模与设计 —— 入门

对于软件建模与设计,非科班出身的同学可能和我一样比较陌生,虽然日常开发中也涉及到建模,但是并没有系统的学习过软件建模设计。类似于设计模式,软件建模与设计也有一套三板斧。

四问四不知的博客 2363

2019新版软件设计师教程第5版:全面提升软件设计能力

本文还有配套的精品资源,点击获取 简介:《2019新版软件设计师教程第5版》旨在为IT专业人士提供软件设计领域的全面知识,覆盖理论与实践,并特别强调Java编程语言的应用。教程内容包括软件设计基础、设计模式、面向对象设计原则、UML建模语言、软件架构设计、Java核心技术、设计决策与评估、重构与代码质量、软件设计过程和软件项目管理等关键知识点。本教程适合备考软件设计师考试和...

weixin_35982453的博客 1646

对软件建模的全面认识

软件建模就是对一个系统的抽象化(并不是一个完全的表示),属于解决方案域,在需求和实现之间架起一座桥梁,通过模型指导一个软件系统的具体实现。简单来说,软件建模就是对软件系统设计思想的一个体现。

代码充实生活的博客 3759

软件设计模式与重构大作业-心算大师游戏

西南科技大学软件设计模式与重构大作业-心算大师游戏(高分作业)

rv1126 读取sensor输入,输出到屏幕显示【RK_MPI API接口】

rv1126 libdrm VO

学习记录 1万+

软件设计建模与重构知识点

这篇文章主要介绍软件设计建模与重构

晴山の博客 1557

基于ROS2系统开发机器人

以上是基于ROS 2开发机器人的基本流程和一个简单的发布者-订阅者示例。通过这个流程,你可以逐步扩展和优化你的机器人系统,实现更复杂的功能。

xuweilin的博客 1496

数据建模和设计模式经典书籍

设计模式方面: 《设计模式》、《重构-改善既有代码的设计》、《重构与模式》、《敏捷软件开发-原则、模式与实践》 数据建模方面:《数据模型资源手册》

hyc023的专栏 1742

解决fetch_california_housing数据集403错误的3种实用方法(附手动下载地址)

本文针对机器学习中常见的fetch_california_housing数据集403 Forbidden错误,提供了三种实用的解决方案。从理解HTTP 403错误的根源出发,详细介绍了修改源码路径、使用国内镜像源以及手动下载并配置数据文件这三种方法,并附带了可靠的手动下载地址,帮助开发者彻底解决数据加载障碍,确保机器学习项目顺利进行。

weixin_29062963的博客 561

从零开始:如何在STM32上搭建QP框架实现事件驱动开发(附完整代码)

本文详细介绍了如何在STM32嵌入式平台上从零开始搭建QP框架,实现事件驱动开发。通过对比传统前后台系统与RTOS的局限,深入剖析了QP框架基于活动对象和层次式状态机的核心优势,并提供了完整的环境配置、代码移植及一个智能灯光控制器的实战案例,帮助开发者构建清晰、可维护的复杂嵌入式应用。

weixin_29200741的博客 489

MSE考研--961--第二部分 软件工程 软件设计与构造

三、 软件设计与构造 软件体系结构及体系结构风格的概念;设计模式的概念;模块化设计的基本思想及概念(抽象、分解、模块化、封装、信息隐藏、功能独立);软件重构的概念;软件体系结构的UML建模(包图、类图、构件图、顺序图、部署图);接口的概念;面向对象设计原则(开闭原则、Liskov替换原则、依赖转置原则、接口隔离原则);内聚与耦合的概念、常见的内聚和耦合类型。 1. 软件结构及体系结构风格的...

u011275375的专栏 345

2025华为OD机试真题目录汇总 B+C+D+E卷(570道)(Python语言)

本文是华为OD机试真题(Python 语言)专栏的目录贴(持续更新中…)华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 18万+

第一部分软件工程基础[专业课考试1]

软件工程基础题纲 考试题型:概念问答题、实践案例题总分:50分一、软件过程软件过程的概念;经典软件过程模型的特点(瀑布模型、增量模型、演化模型、统一过程模型);过程评估与CMM/CMMI的基本概念;敏捷宣言与敏捷过程的特点。二、软件需求软件需求的概念;需求工程的基本过程;分层数据流模型;用例和场景建模及其UML表达(用例图、活动图、泳道图、顺序图);数据模型建模及其UML表达(类图);...

210

多智能体强化学习MATD3算法完整复现与分析

多智能体强化学习MATD3算法复现与分析摘要 MATD3算法是多智能体深度强化学习领域的重要进展,通过改进MADDPG算法,引入双Q学习、延迟策略更新和目标策略平滑等技术,显著提升了算法稳定性。本文完整复现了MATD3算法,详细解析了其数学原理,包括部分可观测马尔可夫博弈模型和TD3核心思想。在实现层面,设计了集中式Critic和分布式Actor的神经网络架构,采用PyTorch框架构建了Actor-Critic网络模块,包含精心设计的权重初始化和训练流程。该算法有效解决了多智能体环境中的非平稳性、信用分配

max500600的博客 535

13、核心网络模块:VyOS 设备配置实战

本文详细介绍了如何使用 Ansible 核心网络模块对 VyOS 虚拟设备进行自动化配置,涵盖环境搭建、变量设置、任务编写、playbook 运行及配置验证全过程。通过实际案例展示了 Ansible 在网络设备管理中的强大功能,包括多设备支持、模板化配置、备份回滚等优势,并提供了最佳实践建议与未来发展趋势分析,帮助读者提升网络运维效率。

linux6sysadmin的博客 114

设计模式学习

关系类型描述强度生命周期UML 表示法示例继承一个类从另一个类继承属性和行为,实现代码重用很强子类随父类存在实线三角形箭头Bird类继承自Animal类,Bird类获得了Animal类的属性和方法组合一个类完全拥有另一个类,且后者依赖于前者很强依赖实心菱形Car类组合了Engine类,汽车销毁时引擎也随之销毁聚合一个类包含另一个类,但后者可以独立存在较强独立空心菱形Team类聚合了Player类,球队解散,球员仍然存在关联一个类知道另一个类,并且可以与之交互中独立。

X131644的博客 1067

通信算法之334:无人机侦测-DJI 大疆云哨接收机系列

【代码】通信算法之334:DJI 大疆 云哨接收机算法流程。

leegang12的专栏 844

软件设计书籍推荐

设计模式最经典的书籍自然是GOF的《设计模式》,但很多人的反应是这本书太难理解了,并不适合初学者阅读。这话说得在理。一方面,本书使用的C++示例难倒了一大群Java和.NET的开发人员;另一方面,这本书的风格过于专业化,更偏向于学术论文的风格(事实上,本书的雏形就是来源于GOF中Erich Gamma的博士论文),因此就显得有些晦涩难懂了。 基本上,本书可以作为我们参考的标准,是经常查阅的文

编程之路 856

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

复旦大学961-软件工程-第三章-软件设计与构造

软件体系结构及体系结构风格的概念 设计模式的概念 模块化设计的基本思想及概念 抽象 分解 模块化 封装 信息隐藏 功能独立 软件重构的概念 软件体系结构的UML建模 包图 类图 构件图 顺序图 部署图 接口的概念 面向对象设计原则 开闭原则 Liskov替换原则 依赖转置原则 接口隔离原则 内聚与耦合的概念 常见的内聚与耦合类型 ...

iioSnail的博客 906

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

设计模式-前导知识

设计模式-前导知识1. UML2. 时序图3. 类图4. 用例建模识别抽象用例标注高级用例分析扩展用例用例模型可视化5. 领域建模5.1 采集领域信息5.2 头脑风暴5.3 领域知识分类5.4 模型可视化6. 对象交互建模6.1 识别非琐碎步(Nontrivial Step)6.2 情景分析建模6.3 构建情景表6.4 模型可视化7. 类图设计通用责任链分配(Grasp)模式1. 专家模式 Information Expert Pattern2. 控制器模式 Controller Pattern3. 创建者

Holy 1282

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

软件设计师推荐阅读书籍列表

* 《UML宝典》 * 《UML业务建模》 * 《设计模式》GOF * 《面向模式的软件体系结构》1-3 * 《数据库重构》 * 《重构》 * 《UML企业应用建模》ORM POEAA * 《高质量编程艺术》...

来杯咖啡,随便聊聊。 306

UML复习资料 软件建模技术选择 仅供参考】

【用例图】 用例图的节点包括(ABD) A、用例 B、边界 C、关联 D、执行者 用例之间的关系主要有(BCD) A、聚合 B、继承 C、扩展 D、包含 在采用用例模型捕获需求时,需要执行如下(ABCD)操作 A、描述非功能需求 B、用例建模 C、识别用例 D、识别参与者 在识别用例时,以下(ABC)问题可以帮助识别用例 A、当系统状态发生故障时,是否需要通知参与者 B、系统是否存在外部事件,如果存在,是哪个能参与者通知系统这些个部事件 C、参与者希望系统为他提供什么样的功能 D、系统运行环境是什么 在用

alovelypeach的博客 4502

UML和模式应用(软件分析设计与建模期末复习)

UML和模式应用(软件分析设计与建模期末复习)

2302_80981029的博客 1042

记一次代码重构

单一职责 功能单一 功能单一是SRP最基本要求,也就是你一个类的功能职责要单一,这样内聚性才高。 比如,下面这个参数类,是用来查询网站Buyer信息的,按照SRP,里面就应该放置查询相关的Field就好了。 @Data public class BuyerInfoParam { ...

chuohuanghan7401的博客 185
上一篇: javawweb三大组件
下一篇: mac java开发环境搭建
kingzdm
博客等级 码龄9年 6粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值