软件架构的一种新表示方法-EAD模型.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件架构的一种新表示方法-EAD模型,经济模型的表示方法,三层架构开发模型,模型驱动架构,简述三层架构开发模型,架构模型,工业4.0参考架构模型,系统架构模型,三层架构模型,软件架构模型

《EAD模型》 ⼀种程序架构描述⽅法 柯元旦2015年7 ⽉25 ⽇(⻄安) 序:想写这个⽂章很久了,忙(亦或是盲),今天把TA完成,作为本⽉给各位技术朋友们 的礼物。在Google的Android部⻔,⼯程师使⽤Omni Graffle(/)这个软件 进⾏软件架构描述,上的相关软件架构图描述,都是使⽤这个软件完成的, 本⽂所提出的EAD模型描述⽅法,也可以使⽤Omni Graffle这个软件完成,因为我设计了⼀套Omni Graffle的库,以形成统⼀的规范。这种⽅法本质并不复杂,因此,我希望⽤最简短的篇幅描述,让 ⼤家能迅速的⽤起来。 本⽂⺫的:程序员在设计软件架构师,尤其是代码级别的分析、设计,通常使⽤线框图 表⽰,对于读者⽽⾔,⼤多都会出现误解,因为线框图不能清晰表⽰程序架构的以下⼏个重要⽅⾯ : 1 ,线程模型。架构中有多少个线程在执⾏,彼此的关系是什么? 2 ,主流程中包含的关键类、⽅法是什么? 3 ,关键辅助类、⽅法是什么,和主流程之间的调⽤关系? 4 ,明确区分函数之间的调⽤关系。 EAD模型的全称是Entity(主体)、 Action(⾏为)、 Data(数据)的缩写,因为从代码实现的⾓度 来讲,代码的本质可以抽象为这三类元素。 Entity包括:线程、类、函数 Action包括:调⽤、展开、⼲播、读写数据、发送消息等等。 Data包括:队列、⽂件、⼆进制数据、池、列表等。 本⽂提出了⼀种⽅法,定义三类重要元素的图⽰,并定义⼀种规则(或者叫经验)能够清晰、 ⽆歧义的表⽰以上三类元素在代码中的关系,从⽽⽅便设计者进⾏⾃检,以及⼯程师之间的代码思 路交流,也便于源码解读者描述源码的关键代码逻辑。我曾经⽤这种⽅法描述了Android 内核源码的 很多关键流程,⽐如: “Android系统的启动流程” “第⼀个Android应⽤的启动流程” “Android内部消息处理流程” 由于这些流程图是在以前所在公司完成的,所以不能秀给⼤家。 好了,现在开始吧。下⽂的撰写思路是,⾸先定义EAD三元素的内容、以及所使⽤的图⽰, 然后再举例说明这些元素使⽤的规则,最后再附加⼀个常⻅问答。 第⼀部分:主体(Entity) 主体包括,线程、类、函数、模块。三者所使⽤的图⽰如下: Class 以上图⽰的特点在于。 类,这是⾯向对象中最常⻅的主体,在UML语⾔的表⽰⽅法中,使⽤的就是这种图⽰,因 此,我们只是沿⽤。 函数,⾮常普遍,所以我们采⽤最常⻅的矩形框,程序员之间在讨论代码时,经常画⼀个框, 让对于听者很容易混淆,这到底是⼀个函数呢、模块、类?所以,本⽂严格定义,矩形框仅仅代表 ⼀个函数。 线程,当别⼈告诉你,他的软件设计思路时,其中重要的⼀点就是线程模型,⽐如这个架构 在运⾏时,⼀共有多少个线程?每个线程的作⽤是什么?会不会存在线程效率问题?线程之间如何 传递数据?从视觉的⾓度来看,我们希望能够⼀⺫了然,⼀眼看过去,就能⽴即看出以上问题,因 此,使⽤了粗⿊线的矩形框。 模块,架构设计时,往往是多个模块之间共同的关系,为了描述⾃⼰所负责模块的内部逻辑, 可以忽略外部模块的具体细节,只⽤⼀个模块表⽰,模块我们定义为倒圆⾓的矩形。 第⼆部分:⾏为(Action) 过去,所有的程序员交流时,想表达两个主体之间的关系时,都喜欢画⼀个带指向的剪头, 可是这个剪头却让听着不爽,时间⻓了连⾃⼰也不清楚这个剪头是啥意思,因为,剪头所代表的⾏ 为实在很丰富,本⽂重新定义这些⾏为。 图⽰的规则是,在剪头的下⽅⽤不同的⼩图案代表不同的⾏为,这是很好的,之前我还想过 ⽤不同的剪头表⽰不同的⾏为,经过⾃⼰实际尝试,最后选择了这种⽅法

您可能关注的文档

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档