204907_3ixH_178283.png (106.05 KB, 下载次数: 0)
<ignore_js_op >
205002_wpfe_178283.png (97.41 KB, 下载次数: 0)
<ignore_js_op >
205514_sxA9_178283.png (142.69 KB, 下载次数: 0)
<ignore_js_op >
205206_qMrF_178283.png (84.65 KB, 下载次数: 0)
<ignore_js_op >
205301_lUDS_178283.png (57.84 KB, 下载次数: 0)
<ignore_js_op >
004437_JOnp_178283.png (60.51 KB, 下载次数: 0)
<ignore_js_op >
14205850_bT40.png (51.86 KB, 下载次数: 0)
<ignore_js_op >
14205850_ELOc.png (23.49 KB, 下载次数: 0)
<ignore_js_op >
14205850_q7sx.png (96.44 KB, 下载次数: 0)
一、为什么要监测循环、包耦合度情况?
耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准。
耦合度很高的情况下,维护代码时修改一个地方会牵连到很多地方,如果修改时没有理清这些耦合关系,那么带来的后果可能会是灾难性的,特别是对于需求变化较多以及多人协作开发维护的项目,修改一个地方会引起本来已经运行稳定的模块错误,严重时会导致恶性循环,问题永远改不完,开发和测试都在各种问题之间奔波劳累,最后导致项目延期,用户满意度降低,成本增加
有两个测试指标有助于确定过度耦合的情况,即“传入耦合”(这个对象对其他对象负有责任)与“传出耦合”(这个对象依赖于其他对象);
高度依赖于其他对象的对象在面对变化时显得很脆弱,传入耦合与传出耦合共同组成了“不稳定性”值。
不稳定性 = 传出耦合 / (传出耦合 + 传入耦合)
另外,了解耦合度情况将可以对可维护性产生较大影响,具有高传入耦合的配件应该有大量的相关测试,因为许多代码依赖于这个配件,因此就更希望保证它是可靠的,可有效用于评估与降低软件风险。
二、如何监测循环、包耦合度情况 How to Hunt for Cycles? 如何寻找循环呢?在SonarQube中,在面板中增加相应的widget插件即可
依赖结构矩阵,DSM可以用来简洁地展示不同组件之间的依赖关系,根据不同的导航级别,这些组件可以是最基本的类级别、包或文件级别。
1.选中了.set包意味着“bidimap”包有3个文件依赖于“set”包;
2.纵列表示“set”包的传出耦合,即“set”包分别有1、6、3、8个文件依赖于“list”、“collection”、“iterators”、“collections”包;
3.横排表示“set”包的传放耦合,即“bag”、“bidimap”、“splitmap”、“map”包分别有5、3、1、8个文件依赖于“set”包;
如图:绿色组件依赖于蓝色组件,而同时蓝色组件依赖于橙色组件。
1.意味着“buffer”包有4个文件依赖于"collection"包,而同时"collection"包没有文件依赖于“buffer”包;
2.另外也就意味着,矩阵中右上侧的红色数字表示有可疑的依赖,即循环;
1.在矩阵中,处于软件结构最顶层的排在最上面,而处于软件结构最底层的组件排在最下面,例如每个组件所依赖的"collection"包自身依赖于更底层的“comparators”包;
2.位于上三角中的红色数字的是需要切断依赖的以便移除循环的地方,当没有循环时,DSM矩阵呈现为下三色形状;
如图:从“buffer”包到“iterators”包有2个传出耦合,此时双击“2”单元格即可看到详细信息。
双击组件可以得到子组件的详细依赖关系,可以看到这个包中不同类之间的依赖结构矩阵。
本小节官方文档链接:http://docs.codehaus.org/display/SONAR/Cycles+-+Dependency+Structure+Matrix
三、降低耦合度的方法 1、少使用类的继承,多用接口隐藏实现的细节。 java面向对象编程引入接口除了支持多态外, 隐藏实现细节也是其中一个目的。 2、模块的功能化分尽可能的单一,道理也很简单,功能单一的模块供其它模块调用的机会就少。(其实这是高内聚的一种说法,高内聚低耦合一般同时出现,为了限制篇幅,我们将在以后的版期中讨论)。
3、遵循一个定义只在一个地方出现。
4、少使用全局变量。
5、类属性和方法的声明少用public,多用private关键字,
6、多用设计模式,比如采用MVC的设计模式就可以降低界面与业务逻辑的耦合度。
7、尽量不用“硬编码”的方式写程序,同时也尽量避免直接用SQL语句操作数据库。
8、最后当然就是避免直接操作或调用其它模块或类(内容耦合);如果模块间必须存在耦合,原则上尽量使用数据耦合,少用控制耦
合,限制公共耦合的范围,避免使用内容耦合。
本小节源自:http://hi.baidu.com/roleya/item/5165ed9d65df35dd1f4271ac
酷派8730“移动版”手机的rom版本号是“039”,具体可通过输入*#9527*#,进入工厂模式查看。
039版是无法将应用安装在外置SD卡里的,解决办法是升级至049版;即从039-->048-->049,下面是具体做法:
1.在官网的“首页--服务中心”准备相关工具:
1)8730自助升级工具。
2)8730自助升级包048版本。
3)8730Ver049版本SD升级包。
4)8730 升级指导V2[1]。
5)USB_DRIVER。
2.开始升级工作:
1)将手机上有用的信息都备份好,例如:联系人、短信、图片等。
2)从039升级至048:
A.安装“8730自助升级工具”。我的是win7系统,运行前右击其快捷方式,在“属性”的“兼容性”中勾选“以兼容模式运行这个程序”、“以管理员身份运行此程序”,如下图:
B.设置电脑时间为2013-05-01,否则老是提示要升级。
C.在“设备管理器”中,删除类似“360手机助手”为手机自动安装的驱动程序,安装官方的驱动,重启电脑;这个很关键。
D.按照“8730 升级指导V2[1]”进行升级即可。
E.升级后,手机会提示“有系统优化”,不要升级,否则会自动升级到050版。050版是不能将应用安装到外置SD卡的,切记。
F.升级后,输入*#9527*# 进入工厂模式 查看是否升级成功。
3)从048升级至049:
A.按照“8730Ver049版本SD升级包”中的说明文档操作即可。
B.升级后,手机会提示“有系统优化”,不要升级,否则会自动升级到050版。050版是不能将应用安装到外置SD卡的,切记。
C.升级后,输入*#9527*# 进入工厂模式 查看是否升级成功。
经过以上步骤,你的手机已经可以将应用安装到外置SD卡上,赶快下载个应用来安装试试。
=====================
若想获取ROOT权限,在PC上使用软件“VRroot”进行处理即可,方便快捷。