面向对象嵌入式系统开发笔记1-面向对象与UML建模

第一章 面向对象与UML建模

1.1 面向对象思想及其应用简介

计算机技术发展,设计问题空间广阔,程序语言无法担任描述问题的重任,解决问题的关键不再是如何构建系统,而是如何理解系统问题的本质和如何准确地描述。
越来越多的公司转向面向对象技术。 面向对象思想表示现实世界是由类(对象)及其关系所组成,都具有结构和行为两个特征。

1.1.1 面向对象的问题描述

在这里插入图片描述

类是最最基本实体,设计时静态逻辑实体。
对象是类的实例,运行时的动态实体。
实体的3种行为:简单、连续、状态。
简单:没有记忆比如数学公式
连续:依赖于过去的连续行为,比如pid.
状态:依据触发事件改变状态,通过状态机实现。也称反应式系统比如嵌入式和用户交互(GUI)。

子系统和组件:中间部分,更具逻辑意义。(类元:描述事物的离散概念)有多个类元组成,类元之间通过各种关系进行协作和交互。
协作通常反应结构关系,交互反应类元实例(对象)的动态行为。结构关系通过协作图/类图描述,行为关系通过顺序/通信图描述。

系统:常用功能说明。黑盒/用户视角描述。避免传统系统需求通过文本描述,考虑主观性等缺陷,加大需求分析比重,通过使用UML工具建模而使问题早期发现,通过迭代增量式开发兼容需求变更,通过用例来准确捕获系统需求。

1.1.2 面向对象的基本特征

抽象:更高逻辑层面提取问题的本质特征。相同属性和行为的对象对象被分组为一个类。
继承:公共特征提取组成父类叫泛化,继承父类添加自己属性/操作叫特化。
封装:相互作用紧密实体绑定为一个整体,整体之外隐藏必要的实现细节,例如显示器对CPU.
多态:相同操作不同的动作。

1.1.3 面向对象的其他重要概念

模式:已验证的通用问题的解决方案。分析、架构、设计和实现都存在,一般用在设计阶段,分为结构/行为模式。
复用:已存在制品的使用 。减少开发时间、节约开发成本、增加系统稳定性和可靠性。可以是一个函数、类、设计模式、分析模型等。
架构:软件系统的组织。实体、接口、协作的组合风格。全局性和策略性。体系结构:嵌入式系统范围内机械、电子和软件组成的系统构成。
框架:构建完整应用的一种程序结构。UML2.0中是包的构造型,某一领域中的应用提供可扩展的模板。部分完整的应用。
用例驱动:沿着一个从用例开始的工作流程进行的。反映了系统外部参与者与系统之间交互顺序的规格说明。目的是定义应用系统中表示某个实体的一个完整行为。
模型驱动:作用于软件周期中,作为特定目标的实施依据。是从一个特定的视角对应用系统进行的完整抽象。采用结构和行为视角并通过类模型、交互模型、状态模型形成的框架对应用系统建模描述。
迭代式开发:给系统构建带来灵活性。首先开发基点,然后逐步扩大系统范围,添加属性/行为。会交织不同的阶段。
职责分配:对多对象系统职能分配时根据不同的优化要求所采取的原则。就近解决、低耦合、高内聚、Liskov替换、开闭准则。

1.2 UML建模的基本概念

1.2.1 模型

模型是集成的、相互关联的抽象集合,准确地描述了要实现的系统。模型有语义和语义的用户视图两部分组成。语义是含义的正式说明。视图是语义在某个特定视角的可见表示法中的投影。
模型的结构主要是识别建立系统的各个事物以及它们间的关系。模型的行为定义了系统执行时结构类元是如何工作和交互的,从整体外部功能和内部观察协作两个视角完成。外部功能可通过用例、状态、活动图,内部协作可通过顺序、协作、活动图。
通常系统分析中首先从功能入手,转化成用例图来对系统行为建模。系统作为整体行为用状态图来建模,二作为某个具体功能侧面交互可用场景的顺序图来建模。
子系统级别的结构描述成为框架。结构维度用类图或者协作图建模。行为维度通过顺序图。
建模最底层是个体的类和对象,结构维度通过属性,行为维度通过操作。状态图对整个类/对象行为建模,活动图对算法建模。

1.2.2 UML建模概念简介

静态事物:用雷表达应用系统中的概念。类是一组对象。多个类可泛化,子类可继承。
设计构造:结构化类元扩展了类,表现为一组通过关系连接在一起的类的集合。
布置构造:节点,定义了物理位置。工件被布置在节点上。
动态行为:与外界交互;相关对象通信;不同活动的演变。
孤立对象:状态机。
交互:结构化类元/协作,各部分之间传递的消息流。交互用序列/通信图。
活动:一段计算过程的执行,用一组活动节点表示,各节点用控制流和数据流连接起来。
用例视图:对搜友行为视图起指导作用。序列图和文本。
模型组织:大型系统,建模信息必须划分成连贯的部分。对于小型系统,也要求将整个模型组成大小适当的具有依赖关系的包。
特性描述:构造型是一种新的模型元素,附加了约束,具有新的解释和图标。

1.2.3 uml的构造事物

三种构造块:事物;关系;图。事物是模型中最具代表成分的抽象。关系把事物结合在一起;图是相关事物的集合。
结构事物:名词元素,通常是静态部分,描述概念和物理实体。7种:类、接口、协作、用例、主动类、组件和接点。

 类:

在这里插入图片描述

接口:获得的服务申明。目的是将实现和具体类元的依赖种分离出来。

在这里插入图片描述

协作:完整的交互,描述了结构。

在这里插入图片描述

用例:一组动作序列的描述。包括常规主线行为和常规顺序的变化,比如可选顺序、异常行为和错误处理。

在这里插入图片描述

主动类:进程/线程,拥有控制任务,与其他主动类对象并发。

在这里插入图片描述

组件:一个逻辑/物理的可替代的模块化组件。

在这里插入图片描述

节点:运行时存在的物理实体。表示一种可计算的资源,通常至少有一些记忆能力和处理能力,比如显示器和处理器。组件可驻留在一个节点内,一般在布置图中出现。

在这里插入图片描述

行为事物:动词,描述了跨越时间和空间的行为。2种:交互和状态。

交互:消息在对象间交换。

在这里插入图片描述

状态:单一对象(类元)生命周期中满足满足特定条件,执行某些活动/等待时间的一种行为状况。状态分简单、复合、子状态机。

在这里插入图片描述

分组事物:UML模型的组织部分,主要是包。

包:组织实体的常规工具,拥有自己的内容并可定义命名空间。一种通用的名称空间,恶意拥有任何类型的模型元素。包存粹是概念上的(仅在设计开发时存在),组件(在设计和运行时都存在)。

在这里插入图片描述

注释事物:描述、说明和标注任何事物。在模型级别对模型实体的说明,有重要影响,如对实体的约束。系统的非功能性(实时性、资源限制)建模主要通过约束实现。
在这里插入图片描述

1.2.4 UML的关系和图

UML构造事物将单词通过关系构成了UML句子,一个以上的句子在一起构成了UML图。图就是模型。
1.UML中的关系:依赖;关联;泛化、实现。
在这里插入图片描述

2.UML中的图:模型元素集。

类图是系统结构方面的最重要的视图,动态特征在其他视图比如状态/通信。分析中概念的建模,设计中协作的建模以及各类模式都是通过类图实现。

在这里插入图片描述

对象图

在这里插入图片描述

  内部结构图

在这里插入图片描述

  协作图

在这里插入图片描述

  组件图

在这里插入图片描述

  用例图

在这里插入图片描述

  状态图

在这里插入图片描述

  活动图

在这里插入图片描述

  顺序图

在这里插入图片描述

  通信图

在这里插入图片描述

  布置图

在这里插入图片描述

  包图

在这里插入图片描述

  时间图

在这里插入图片描述

UML是一种语言,句子是事物和关系,段落是多个句子也叫图,每一种图构成描述事物的一个侧面视图,文章是所描述事物的模型,也就是说多个视图组成。
UML中,各种图都可以归结到结构和行为或者静态和动态两个方面。

  实例:
    用例图和顺序图描述各级别需求;
    类图和协作图确定系统和子系统级的静态和交互结构,顺序图捕获系统和子系统级别的交互行为;
    状态图确立每一个活动对象(任务,进程)的全景行为;
    活动图设计状态内部或对象方法的算法;
    布置图适合多控制器系统。

1.3 基于模型的计算系统

狗窝->平房->别墅->大厦
建模是对所要认识的事物进行抽象的过程,也就是透过现象看本质的过程。欧姆定律简单电阻对象建模,微分对pid建模;状态机对离散状态行为建模;状态内又可以递归上述过程。
在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值