当前位置: 首页 > news >正文

软考--软件设计师(软件工程总结3)

目录

1.面向对象技术

2。面向对象分析

3.面向对象程序设计(选用一种面向对象的程序语言)

4.面向对象测试

5.UML

​编辑6.UML的图

​编辑7.设计模式


1.面向对象技术

面向对象=对象+继承+类+消息通信

对象:是基本运行时的实体,包括数据(属性),数据的操作。一个对象一般由对象名,属性,方法组成。

消息:对象间的通信靠消息传递。

类:类是创建对象的模板,是对对象的抽象。

继承:是父类与子类之间共享数据和方法的机制。是类之间的一种关系。

多态:不同对象收到同一消息可以产生不同的行为结果,这种现象是多态。在面向对象设计中,多态性是通过继承和方法来实现的。

参数多态是应用比较广泛的多态,被称为最纯的多态。

包含多态在许多语言中都存在,最 常见的例子就是子类型化,即一个类型是另一个类型的子类型。

过载(Overloading)多态是同 一个名字在不同的上下文中所代表的含义不同。

动态绑定:动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以 父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请 求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定

2。面向对象分析

面向对象设计是将面向对象分析模型转化为设计模型,其目的是定义系统构造蓝图。

面向对象设计同样应遵循抽象,信息屏蔽,功能独立,模块化等设计准则。

面向对象设计原则:

3.面向对象程序设计(选用一种面向对象的程序语言)

1.类

类具有实例化功能,包括实例生成(由类的Constructor完成)和实例消除(由类的Destructor 完成)。类的实例化功能决定了类及其实例具有下面的特征。

(1)同一个类的不同实例具有相同的数据结构,承受的是同一方法集合所定义的操作,因 而具有规律相同的行为。

(2)同一个类的不同实例可以持有不同的值,因而可以具有不同的状态。

(3)实例的初始状态(初值)可以在实例化时确定

2.继承和类层次结构

在一个面向对象系统中,子类与父类之间的继承关系构成了这个系统的类层次结构,可以 用树(对应于单继承)或格(对应于多继承)这样的图来描述。

4.面向对象测试

5.UML

UML的词汇表包含3种构造块:事物、关系和图。事物是对模型中最具有代表性的成分 的抽象;关系把事物结合在一起;图聚集了相关的事物.

UML中有4种事物:结构事物、行为事物、分组事物和注释事物。

6.UML的图

UML 2.0提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活 动图、构件图、组合结构图、部署图、包图、交互概览图和计时图。序列图、通信图、交互概 览图和计时图均被称为交互图

1.类图

类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系(依赖,泛化,关联)。在面向对象系统 的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。

2.对象图

对象图(Object Diagram)展现了某一时刻一组对象以及它们之间的关系,描述了在类图 中所建立的事物的实例的静态快照。对象图一般包括对象和链

3.用例图

用例图(Use Case Diagram)展现了一组用例、参与者(Actor)以及它们之间的关系。 用例图通常包括以下内容。

(1)用例。

(2)参与者。

(3)用例之间的扩展关系(>)和包含关系(>),参与者和用例之间 的关联关系,用例与用例以及参与者与参与者之间的泛化关系

4.顺序图

5.活动图

6.状态图

7.设计模式

设计模式的核心在于提供了相关问题的解决方案。

设计模式的四个基本要素:模式名称,问题,解决方案,效果。

1.创建型设计模型

2.结构型设计模型

3.行为型设计模型

三个模型简单记忆

相关文章:

  • 天眼护航 安全无界:天通哨兵PS02—电力巡检保护的智能利器
  • Redis主从集群-主从复制(通俗易懂)
  • electron入门教程
  • LeetCode 1365. 有多少小于当前数字的数字
  • fastjson list转json
  • 用TOMCAT部署web项目教程
  • JavaScript权威指南(第7版) 笔记 - 扩展操作符总结
  • 小林coding图解计算机网络|TCP篇06|如何理解TCP面向字节流协议、为什么UDP是面向报文的协议、如何解决TCP的粘包问题?
  • 律所如何做好内容运营,提升品牌影响力
  • 数据生成 | Matlab实现基于DE差分进化算法的数据生成
  • vue + koa + Sequelize + 阿里云部署 + 宝塔:宝塔数据库连接
  • OpenCV中的模块:三维重建-SFM(1)
  • 设计模式 --5观察者模式
  • 威胁建模与网络安全测试方法
  • Android adb 常用命令
  • 230. Kth Smallest Element in a BST
  • Docker入门(二) - Dockerfile
  • DOM的那些事
  • HashMap剖析之内部结构
  • JavaScript的使用你知道几种?(上)
  • leetcode-27. Remove Element
  • Linux后台研发超实用命令总结
  • Linux链接文件
  • Markdown 语法简单说明
  • MySQL-事务管理(基础)
  • Redis 懒删除(lazy free)简史
  • 分布式任务队列Celery
  • 计算机常识 - 收藏集 - 掘金
  • 将回调地狱按在地上摩擦的Promise
  • 近期前端发展计划
  • 我这样减少了26.5M Java内存!
  • 线上 python http server profile 实践
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • Spring Batch JSON 支持
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • ###C语言程序设计-----C语言学习(3)#
  • #Linux(帮助手册)
  • (11)MSP430F5529 定时器B
  • (SpringBoot)第七章:SpringBoot日志文件
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • .gitignore
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .NET大文件上传知识整理
  • [1127]图形打印 sdutOJ
  • [acm算法学习] 后缀数组SA
  • [AIGC 大数据基础]hive浅谈
  • [Angular 基础] - 指令(directives)
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [Avalon] Avalon中的Conditional Formatting.
  • [C#] 如何调用Python脚本程序
  • [C/C++]数据结构 循环队列