前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UML面向对象建模与设计阅读笔记-第二章

UML面向对象建模与设计阅读笔记-第二章

原创
作者头像
Sky_Mao
修改2020-11-10 10:17:48
5220
修改2020-11-10 10:17:48
举报

第二章:建模是一种设计技术

一、建模:

建模是对某个事物的抽象,目的是在构建这个事物之前先来理解它。忽略事物的具体细节,关注到事物的本质,来处理复杂的问题。


二、模型的用途:

1、在构建物理实体之前先进行测试,建筑师在建造建筑之前,会通过模型来测试结构的受力,工程师在风洞中测试飞机和汽车模型以及在水箱中测试轮船模型,以改进他们的动力学特征。建模可以在构造具体事物之前,发现潜在的问题,并在前期进行修改。

2、与客户交流,架构师和产品设计师通过构建模型来为客户演示。

3、可视化,艺术家在正式绘制画作和雕塑的时候,会先绘制一幅草图,并进行修改。我的理解是,可以使用图形来描述具体的构造结构,并可以随时找出错误与缺陷,在开始构建具体事物之前,把这些错误与缺陷修正。

4、降低复杂度,建模最主要的目的是为了处理过于复杂而难以理解的系统,人在认识复杂事物的时候容易只关注到细节上,例如为一个门建立模型,可以忽略它的门栓是铁制的还是铜制的,油漆是喷涂还是刷子涂刷的等等非常具体的细节,而只需要关注他的抽象(门)以及行为(开/关)。


三、三种模型:

类模型表示系统静态的、结构化的“数据”层面,状态模型表示系统时序的、行为的“控制”层面,交互模型表示各个对象的协作,是系统的“交互层面”。

类模型:类模型描述系统中对象的结构(它们的标识)、与其他对象的关系、属性和操作。类模型提供了状态和交互模型的上下文。类模型在构建的时候应包含具体事物的领域内的术语,比如构建的是商业问题模型,应该使用商业术语。如果构建的是建筑方面的模型,就应该使用建筑领域的术语。

状态模型:状态模型描述了,操作时间与操作顺序相关的对象层面,标记变化的事件,界定事件上下文的状态,状态捕获控制,描述操作出现顺序的系统层面,不用考虑操作做了什么。使用状态图来标识状态模型。状态图会引用其他的模型,状态图中的事件都变成了类模型中的对象的操作,状态图之间的引用,包含了交互模型。

交互模型:交互模型描述对象之间的交互,各个对象如何协作,用例图、时序图、活动图用来描述交互模型。


四、模型间的关系:

类模型描述了状态模型和交互模型操作的数据结构。类模型中的操作对应事件和动作。状态模型描述控制结构,它显示了依赖于对象取值的决策,并引发动作来改变对象取值和状态。交互模型专注于对象之间的信息互换,并提供了系统操作的整体视图。


五、小结:

模型就是对现实事物的抽象,构建模型是为了在实现解决方案之前,关注事物的本质,忽略具体细节,达到更好和更深入的理解问题。


六、习题:

1、第一种情况,如果要模拟计算机控制的汽车防滑系统的性能,与材料、内部结构(斜纹层、钢带)等因素是相关的。

第二种情况,如果要使用轮胎做一个秋千,那么 与尺寸和重量因素是相关的。

2、选择金属丝通马桶,坚硬度、强度、重量、可用性,首先不能太脆,一碰就断的,不能太细,不能太重等等,其他的特性在这个使用场景中,根本不需要关注。

3、根据场景来选择具体的金属丝

a、建造横跨大西洋的电缆的金属丝,第一个特性就需要绝缘耐盐水,海水是盐碱性质的,其他的坚硬度、强度、抗拉伸等。

b、用来创作彩色艺术品的金属线,只需要关注绝缘色。

c、设计飞机的电气系统,关注绝缘防火特性。

d、在树上挂一个喂鸟灌,需要关注重量、可用性,不能太粗和太重

e、制作钢琴,需要关注抗电噪声特性。

f、生成灯泡的灯丝,肯定是需要关注耐高温的特性的,灯泡很烫、很热。

4、使用电话线,从一台计算机向另外一台计算机传输文件,需要关注哪些细节。

a、传输线上的电噪声,这个很明显不需要关注它,它的噪声大不大,对文件的传输没有任何影响。

b、串行数据传输速度(串行传输:使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、外设之间的远距离通信),毫无疑问,这条细节肯定是要关注的,如果传输一份文件需要一年,我想是谁都会抓狂的。

c、数据库可用性,这个也和传输扯不上关系。

d、良好的全屏幕编辑器的可用性,这和传输文件有啥关系呢?

e、缓冲和流控制,例如调节到达数据流的XON/XOFF协议(XON/XOFF 是一种流控制协议(通信速率匹配协议),用于数据传输速率大于等于1200b/s时进行速率匹配,方法是控制发送方的发速率以匹配双方的速率),而且这个协议还是串口传输的握手协议,当然需要关注的细节。

f、磁盘驱动器上的磁道和扇区数,这条细节在传输的场景中也不需要关注,并且现在磁盘的读写都被系统抽象成了文件系统,而开发人员并不需要关注这些底层细节。

g、字符解释,例如控制字符的特殊处理。控制字符的用途为:打印和显示、数据结构化、传输控制、其他零散用途。打印和显示使用最多的是换行控制符。数据结构化,主要用到分隔符。传输控制,传输控制符是设计用来将数据包结构化以及在传输发生错误时,何时进行重传控制的,报头开始(SOH)、转义符(ESC)、替换符(SUB)、取消符(CAN)。所以这个细节也需要关注。

h、文件组织结构,例如线性字节流与面向记录的组织结构,面向字节流(TCP)是有缓冲区的,当传输的数据过长,TCP传输会进行拆分,当传输的数据过断,会进行积累,等待足够多的数据时,进行发送。面向报文(UDP)传输,没有缓冲区,在传输数据时,无论数据的长短,都不会进行任何的拆分或者积累,原样发送。所以这条细节也需要关注。

i、数学协处理器(一种芯片,用于减轻系统微处理器的特定处理任务。例如,数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。)这条细节也不需要关注。

5、在分析和设计电动机的时候,可以使用好几种模型。电气模型涉及电压、电流、电磁场、电导和阻抗。机械模型要考虑硬度、密度、运动、力和力矩。温度模型

处理热扩散和热传导。流体模型描述制冷空气的流通。

a、预转电动机需要多大功率?其中多少是因为发热而浪费掉了?这里需要使用机械模型和温度模型。

b、电动机有多重?需要用到机械模型。

c、电动机会有多热?需要用到温度模型。

d、电动机会产生多大震动?需要使用机械模型。

e、电动机轴承使用多长时间会磨损?需要使用机械模型。

6、描述哪种模型(类模型、状态模型、交互模型)与下列情景哪个特征相关?

a、显示计算机下棋和接受选手下棋的用户界面,状态模型,表示操作后的对象的状态。

b、表示棋盘上旗子的格局, 类模型,描述对象的结构,以及与其他对象的关系、属性和操作。

c、考虑一系列可能的合法走子,交互模型,描述对象之间的交互,各个对象如何协作。

d、检验选手所请求的走子,状态模型,标记上下文的状态。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档