方法论探讨之概念空间篇

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

2.jpg (6.49 KB, 下载次数: 0)

下载附件  保存到相册

2012-3-19 10:28 上传

 

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

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

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

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

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

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

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

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

3.jpg (14 KB, 下载次数: 0)

下载附件  保存到相册

2012-3-19 10:31 上传

 

Android核心分析 之二方法论探讨之概念空间篇的更多相关文章

  1. Android核心分析之二十三Andoird GDI之基本原理及其总体框架

     Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了.但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理. GDI主 ...

  2. Android核心分析之二十一Android应用框架之AndroidApplication

    Android Application Android提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征.在Android实际空间中看不到实际意义上的应用程 ...

  3. Android核心分析之二十二Android应用框架之Activity

    3 Activity设计框架 3.1 外特性空间的Activity    我们先来看看,android应用开发人员接触的外特性空间中的Activity,对于AMS来讲,这个Activity就是客服端的 ...

  4. Android核心分析之二十Android应用程序框架之无边界设计意图

    Android应用程序框架1 无边界设计理念 Android的应用框架的外特性空间的描述在SDK文档(http://androidappdocs.appspot.com/guide/topics/fu ...

  5. Android核心分析之二十八Android GDI之Surface&Canvas

    Surface&Canvas Canvas为在画布的意思.Android上层的作图几乎都通过Canvas实例来完成,其实Canvas更多是一种接口的包装.drawPaints ,drawPoi ...

  6. Android核心分析之二十六Android GDI之SurfaceFlinger

    Android GDI之SurfaceFlinger SurfaceFinger按英文翻译过来就是Surface投递者.SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构.Sufac ...

  7. Android核心分析之二十五Android GDI之共享缓冲区机制

    Androird GDI之共享缓冲区机制 1  native_handle_t对private_handle_t 的包裹     private_handle_t是gralloc.so使用的本地缓冲区 ...

  8. Android核心分析之二十四Android GDI之显示缓冲管理

    Android GDI之屏幕设备管理-动态链接库 万丈高楼从地起,从最根源的硬件帧缓冲区开始.我们知道显示FrameBuffer在系统中就是一段内存,GDI的工作就是把需要输出的内容放入到该段内存的某 ...

  9. Android核心分析之二十七Android GDI 之SurfaceFlinger之动态结构示

           SurfaceFlinger对象建立过程示意 1 SurfaceSession的建立 客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再 ...

随机推荐

  1. SQL Server数据库学习笔记-设计表时应该考虑的因素

    设计数据库其实就是设计数据库中的表.到底要注意些什么才能够设计好一个数据库呢?一个宗旨,8个建议. 一个宗旨“尽量少的表,每个表中尽量少的列,合理的表结构”. 8个建议: 第一个,首先要考虑的是咱们这 ...

  2. 第2章 变量和基本类型 附3---底层const和顶层const

    和英文版的对: As we’ve seen, a pointer is an object that can point to a different object. As a result,we c ...

  3. 一次我们网站的web性能优化

    1.Google的Web优化最佳实践 利用PageSpeed工具 对我们红酒世界网进行检测时,发现了下面的几个问题 1.Leverage browser caching 1.1.通过web.confi ...

  4. cocos2dx中的场景和使用方法

    1.一个游戏中有且只有一个导演,但是至少有一个场景 2.场景是游戏元素节点数的根节点,也可以理解为该场景下的渲染树的根节点 3.场景是一个容器,包含了该场景下的所有游戏元素,比如层,精灵 4.场景是导 ...

  5. C++中的抽象类及纯虚函数的实现与否

    1.含有纯虚函数的叫抽象类 2.抽象类(一般是基类)中的纯虚函数无论函数体实现与否,都没有关系,系统会自动忽略 3.继承自抽象类的子类,必须要实现父类的纯虚函数才可以实例化对象 4.抽象类不允许实例化 ...

  6. HIbernate小结

    one-to-many和cascade不是关联很紧的东西. one-to-many后最明显的改变是数据库约束的产生. cascade是指,比如你设置cacade为"save-update&q ...

  7. elasticsearch-查询的基本语法

    elasticsearch的查询有两部分组成:query and filter. 两者的主要区别在于:filter是不计算相关性的,同时可以cache.因此,filter速度要快于query. 先记录 ...

  8. android 自动化压力测试-monkey 2 获取程序包名

    monkey 1 中我们写到: C:\Users\chenshan>adb shell shell@hwG750-T20:/ $ monkey -p cn.emoney.acg -v 500 说 ...

  9. spring--注入类型--构造方法(不常用)

    3.3.1.1. Constructor Injection Constructor-based DI is effected by invoking a constructor with a num ...

  10. openwrt的交叉编译

    默认情况下,openwrt编译脚本会自动从Internet上获取所需要的软件包源代码,并把下载的源码包存放在当前目录的 dl/ 目录中:  在 build_dir/ 目录中存放编译中使用的软件包,   ...