`
yanlijun250
  • 浏览: 750807 次
文章分类
社区版块
存档分类
最新评论

分析方法论探讨

 
阅读更多

分析方法论探讨之设计意图

为什么要研究Android,是因为它够庞大,它够复杂,他激起了我作为一个程序员的内心的渴望,渴望理解这种复杂性。我研究的对象是作为手机开发平台的Android软件系统部分,而不是Dalvik虚拟机本身。

作为一个从其他平台装接过来的程序员,要从事Andoid平台系统开发,我的关于手机平台上积累的知识已经不能满足需要了,Android为我们带来了大量的新名词,ActivityManifestINTENTServiceBinderDalvik虚拟机,FrameworkLinuxNavtiveJNI.....。通过在源代码,在开发社区,在开发博客,甚至在招聘过程中,我不断的寻求Android是什么。经过一定时间的沉淀,我慢慢的理解到Android不仅仅是一类手机的总称,不仅仅是一个手机开发平台,不仅仅是一个虚拟java操作系统,不仅仅是一个开发社区,一个开发标准,不仅仅是一堆代码,Android已经成了一个新的潮流。

代码多,系统复杂,纵观社区中Android的研究者,一开始从源代码分析Android就走向迷途,不断的跋山涉水,向纵深冲刺,最终脑袋堆栈不够用,迷失在开始的旅程,或者挂在半途中,鲜有通达者。我感觉到大部分的研究者总是忘记站在高山上向下望一望设计者的意图,一味的随着代码的控制流走入繁杂的谜团,陷入到复杂性的深渊。

我的研究分析是从设计者的意图出发,从抽象的甚至从哲学的高度,从最简单的系统原型开始,从设计猜想开始,而不是一开始就从代码分析展开。首先理解Android大的运行框架,主干流程,系统原型,之后再用源代码分析充实之。当然我这里的设计者意图并不是真正的Android设计者意图,而是我以为的Android设计者意图。

要理解设计者意图,就需要抽象。我们需要在哲学意义空间中去考虑系统的描述,即系统在本质上要表达什么。在逻辑空间上去考虑系统基本构成和动态结构。从现实到虚拟对象的映射去理解系统对象的组成,在从数据流的角度分析数据的产生者和消费者之间作用关系,从控制流的角度去分析对象之间的交互关系,从函数调用去分析具体的层次关系。

在系统设计上,原型是最能表达哲学空间和逻辑空间中系统本质的东西,原型是事物本质的第一层体现。我以为任何复杂的系统都一个简洁的系统原型,都有它简洁的意义。系统原型是设计者意图的第一体现,所以我们需要从几个方向上去提炼系统原型:

1)从系统本质和基本原理出发

2)从分析系统数据流和控制流分析出发。

从设计者意图出发,得出系统原型,提取到大的逻辑结构和系统构成是第一步。之后我们可以从设计者的角度考虑系统猜想系统设计,为什么要这样设计,为什么要有这些构成。这样的基本原型是什么?系统的限制是什么,应用场景有哪些,有些设计的引进还是系统收敛性而为之呢。我们还可以从代码痕迹上去分析,这些概念是如何的得来的?从一定的抽象和高度去理解这些问题,遵循系统原型出发之原则,在深入分析代码的时候,就不容易陷入细节中。我们就可以随时跳出来想,这些代码在整体上载表达一个什么概念,在描绘一个什么逻辑,他要构成一个虚拟层吗?他是在管理这个硬件吗?他在 虚拟这个对象吗?他在构建管理机构?还是在构建一个对象管理?空间管理,为了快速引入了什么样的复杂算法,实际上的原型算法应该是什么样的?

只有深入到这个抽象层次,我们才能很好的把握住系统的每一条线,每一个对象的意义。只用从原型出发,我们才能把握住这个系统的实质所在,在干什么?他要表达什么?设计者为什么要这样想?最终极的想法是什么?这样,代码分析就变得简单明了,读代码就变成了是在印证猜想,修正方向。


方法论探讨之概念空间篇

我们潜意识就不想用计算机的方式来思考问题,我们有自己的思维描述方式,越是接近我们思维描述方式,我们越容易接受和使用。各种计算机语言,建模工具,不外乎就是建立一个更接近人的思维方式的概念空间,再使用工具从该概念空间向另外一个概念空间映射,我称之为人性思维空间向01序列描述空间的一个映射。实现方面来看,系统就是一个翻译器,将机器性更加人性化的一种机制。大学计算机经典课“计算机体系结构”,其他的可以忘记,但是下面这个图不能忘记:

这个就是概念空间最本质的原型体现:作为观测者看到了什么?设计者给了观察者什么?给出的答案是外部特性。

(1)提供给观察者的概念空间是什么?

(2)内部特性的概念空间是什么?

概念空间所表达的东西带有两个方面的缠绕:一面是人性自由,一面是物性制约(实时响应,系统资源的限制)。所以程序实现的概念空间是人性自由与特定计算机系统物性之间有一个折中,并且根据实际系统而采取某种动态的平衡。而这种平衡将会影响到系统架构,以及设计的思想。特别在手机这样的嵌入式系统中,这种矛盾和平衡无处不在,这种折中无处不在。而对系统的选取和采用,也就接受了某个方面的折中或某中即在的,也许是看不见的标准,及这样的标准有隐式和显式的。正因为如此,不管是工具的产生,新的平台的产生,都是计算机的物性向人性靠近的一个小台阶。一个新的思想的形成随即带来的新工具,新系统框架,新的体系结构。

如果设计者站的高度足够高,那么设计者一开始就会考虑到“我该给他们一个什么样的概念空间,甚至一个什么样的理念,让他们这个概念空间去建立自己的产品”,于是设计者就会开始主动的去建立概念空间,这个概念空间要表达的实际意义,概念空间应该有哪些内容构成,考虑概念空间的完备性和封闭性,考虑概念空间的边界,考虑从哪个基础上建立这个概念空间,考虑如何与概念空间外的实体进行交互,考虑系统的资源限制条件,考虑功能性构建的合理性,考虑机器系统与人的平衡问题。

我们在学习新系统时,首先映入眼帘的就是新概念。新名词,就如现在我们面临的Android大量的新名词,在程序员的世界都是从代码实践开始的,是从写应用开始去涉及。SDK给了我们一个概念,我们就在这个概念框架下,使用SDK给我提供的函数接口,数据结构,初始化过程等,我们最初的接触到原型就是“HelloWorld”之类的DEMO程序,我们在Helloworld上去使用各种不同的接口函数,对于应用程序员来讲,他说看到的系统就是系统调用接口,及其编程开发流程。实际上只要一使用这些接口,就不得不接受一系列的概念,只有在这种概念系统下,我们才能工作。但是,实际上我们却忽略了这样的概念系统的理解,只是在编程接口的这个狭窄的空间去理解系统.我们理解系统在形成理解概念的空间只是微小的一角,很少有资料来介绍这种概念系统的形成和理解,编程接口只是这个概念空间一个,对外部的一个表征。我们可以抽象起来,以接口,协议和行为,来描述系统的情况。SDKAPI的实质向上层提供了一个语义接口,从而在层间实现了一个转义过程,同时又成为一个功能的集合体。但是我们很少这样跳出来看,我们到底是处于一种什么样的概念空间,SDK除了调用接口外,还给了我们怎样一种整体概念?目标系统的基本构架在本质上的东西就是一个概念系统到另一个概念系统的映射。让我们大脑理解的概念系统映射到计算机能实现的概念域的一个映射。我们假定这个概念域E,机器能够理解的概念域为M,我们的软件工程要做的事情实质就是:EàM领域的一个映射过程。

为什么要在宏观上把握这些概念呢,显然有我的目的,理解概念空间是理解设计者意图的一个重要途径。设计者要想给开发者提供什么,设计者想要提供给最终用户什么。我们需要站在高处看待系统明白设计者意图。

Android的实质还是一套管理手机硬件系统的软件,这个话讲起来没有多大意义,计算机操作系统本质都是如此,AndroidGoogle云计算计划的一部分,我们修正成:Android建立的本质就是让计算机成为我的云接入移动智能终端。作为硬件管理软件,Android提供概念空间内涵实质上泛操作系统内涵,我们的理解可以从泛操作系统概念空间映射到Android系统中去。而作为云计算的一部分的内容,我们可以云计算的概念入手去研究Andoird



转自:maxleng的专栏


分享到:
评论

相关推荐

    [经典文档]Android核心分析

    核心分析之一 ----- 分析方法论探讨之设计意图 核心分析之二 ----- 方法论探讨之概念空间篇 核心分析之三 ----- 手机之硬件形态 核心分析之四 ----- 手机之软件形态 核心分析之五 ----- 基本空间划分 核心分析之六 -...

    android UI分析方法

    Android开发UI分析之分析方法论探讨之设计意图

    Android核心分析-050417421

    前言- 3 -本文档使用 看云 构建(一)分析方法论探讨之设计意图分析方法论探讨之设计意图为什么要研究Android,是因为它够庞大,它够复杂,他激起了我作为一

    Android核心分析

    Android 核心分析 之一 -------- 分析方法论探讨之设计意图 .......................................... 1 Android 核心分析 之二 ------- 方法论探讨之概念空间篇 .................................................

    论文研究- 关于提高工业企业经济效益的定量分析方法的探讨.pdf

    论文研究- 关于提高工业企业经济效益的定量分析方法的探讨.pdf, 本文叙述运用影子价格和多参数组合摄动的定量分析方法,来改善物资管理,合理利用有限资源,以提高经济效益,增强工业企业的应变能力、竞争能力和发展...

    Android核心分析1

    (转) Android核心分析 之一--分析方法论探讨之设计意图

    拱坝稳定分析方法总结与探讨

    拱坝稳定分析方法总结与探讨,彭小川,陆晓敏,拱坝的稳定性分析中,有几种常用的分析方法。本文概述了几种常用分析方法的特点以及应用范围,并对其中一些方法存在的问题进行了�

    人工智能技术的大数据分析方法探讨.pdf

    人工智能技术的大数据分析方法探讨.pdf

    论文研究-企业原材料利用率计算分析方法探讨.pdf

    论文研究-企业原材料利用率计算分析方法探讨.pdf, 从系统的观点出发简述了企业原材料利用率分析和计算方法。显然,技术、管理都影响原材料利用率。只考虑其中之一是片面...

    论文研究-多目标决策中灵敏度分析的方法探讨.pdf

    论文研究-多目标决策中灵敏度分析的方法探讨.pdf, 对于...为此,本文推导了几个进行灵敏度分析的基本公式,并提出了灵敏度区间和灵敏度矩阵的概念,从而为多属性决策的灵敏度分析提供了一种简单、有效、实用的分析方法。

    论文研究- 冲突分析的动态方法及其探讨.pdf

    论文研究- 冲突分析的动态方法及其探讨.pdf, 对策论(Game Theroy)是研究人类行为中含有“竞争”机制活动的主要工具之一。它在最近的10多年内有许多重大的突破,特别是对于一些重大社会、经济活动的预测和描述方面,都...

    初始地应力场分析方法研究探讨

    初始地应力场分析方法研究探讨,王大伟,赵艳,初始地应力是工程设计与施工所要考虑的重要因素之一。本文介绍了地应力场的研究方法,综述了国内外地应力场的研究现状,并分类归�

    环境影响评价中累积效应分析方法的探讨

    与单个环境要素的影响评价比较,累积效应评价是更为复杂和不确定性更大的一类分析工作。论文从累积效应的概念和分类出发,从基本方法和规划式方法介绍累积效应的分析方法。

    三角形模式识别方法的分析与改进探讨

    三角形模式识别方法的分析与改进探讨,孙桉琦,刘海涛,为了解决传统三角形识别方法准确率低及应用受限制和指数型隶属函数因次数增加而导致的精度不高的问题,利用阈值原则和最大隶属度

    论文研究- 用层次分析法探讨科研成果的综合评价.pdf

    论文研究- 用层次分析法探讨科研成果的综合评价.pdf, 层次分析法是美国运筹学家Saaty在1973年提出的一种系统分析方法。本文在此方法的基础上,结合科学学的基本原理和我国的国情与科技政策,提出了一个应用性、开发性...

    人工智能系统测试的方法论与实践探索

    AI正在为各行各业赋能,改变人们生活、生产的方式。本报告将分析AI作为一种新的编程范式,对测试带来的挑战,并从方法论的角度探讨AI测试的流程、方法与策略,并给出了一个基于深度卷积神经网络的AI应用测试实践。

    论文研究-企业集成的系统方法论研究——供应链的系统性、协调性和运作范式.pdf

    文章对供应链管理思想的集成性、协调性、系统性进行了分析 ,探讨集成化供应链管理的系统方法论和经营理念 .在供应链的运作范式研究中探讨了供应链管理的策略性原则 ,提出了基于价值增值和用户满意的供应链运作范式 .

    地下工程围岩稳定性分析方法探讨

    地下工程围岩稳定性分析方法探讨,李金波,汪明雳,地下工程地质条件复杂,地下工程的安全取决于对围岩的稳定性分析,围岩的稳定与否直接决定工程的成败,由于地下岩体这一特殊的地

    UI群英汇 用户体验 交互 视觉设计方法论

    本书汇集国内多个典型商业案例,既探讨了大公司的严谨和规范,也分析了小公司的高效和经济。每一种方法都有它的优点、缺点,该如何取舍和应用这些方法,最关键的是靠读者根据自身项目和公司的实际情况去选择适合自己...

Global site tag (gtag.js) - Google Analytics