咱们潜意识就不想用计算机的方式来思考问题,咱们有本身的思惟描述方式,越是接近咱们思惟描述方式,咱们越容易接受和使用。各类计算机语言,建模工具,不外乎就是创建一个更接近人的思惟方式的概念空间,再使用工具从该概念空间向另一个概念空间映射,我称之为人性思惟空间向01序列描述空间的一个映射。实现方面来看,系统就是一个翻译器,将机器性更加人性化的一种机制。大学计算机经典课“计算机体系结构”,其余的能够忘记,可是下面这个图不能忘记: 程序员
这个就是概念空间最本质的原型体现:做为观测者看到了什么?设计者给了观察者什么?给出的答案是外部特性。编程
(1)提供给观察者的概念空间是什么?数据结构
(2)内部特性的概念空间是什么?架构
概念空间所表达的东西带有两个方面的缠绕:一面是人性自由,一面是物性制约(实时响应,系统资源的限制)。因此程序实现的概念空间是人性自由与特定计算机系统物性之间有一个折中,而且根据实际系统而采起某种动态的平衡。而这种平衡将会影响到系统架构,以及设计的思想。特别在手机这样的嵌入式系统中,这种矛盾和平衡无处不在,这种折中无处不在。而对系统的选取和采用,也就接受了某个方面的折中或某中即在的,也许是看不见的标准,及这样的标准有隐式和显式的。正由于如此,无论是工具的产生,新的平台的产生, 都是计算机的物性向人性靠近的一个小台阶。一个新的思想的造成随即带来的新工具,新系统框架,新的体系结构。框架
若是设计者站的高度足够高,那么设计者一开始就会考虑到“我该给他们一个什么样的概念空间,甚至一个什么样的理念,让他们这个概念空间去创建本身的产品”,因而设计者就会开始主动的去创建概念空间,这个概念空间要表达的实际意义,概念空间应该有哪些内容构成,考虑概念空间的完备性和封闭性,考虑概念空间的边界,考虑从哪一个基础上创建这个概念空间,考虑如何与概念空间外的实体进行交互,考虑系统的资源限制条件,考虑功能性构建的合理性,考虑机器系统与人的平衡问题。函数
咱们在学习新系统时,首先映入眼帘的就是新概念。新名词,就如如今咱们面临的Android大量的新名词,在程序员的世界都是从代码实践开始的,是从写应用开始去涉及。SDK给了咱们一个概念,咱们就在这个概念框架下,使用SDK给我提供的函数接口,数据结构,初始化过程等,咱们最初的接触到原型就是“HelloWorld”之类的DEMO程序,咱们在Hello world上去使用各类不一样的接口函数,对于应用程序员来说,他说看到的系统就是系统调用接口,及其编程开发流程。实际上只要一使用这些接口,就不得不接受一系列的概念,只有在这种概念系统下,咱们才能工做。可是,实际上咱们却忽略了这样的概念系统的理解,只是在编程接口的这个狭窄的空间去理解系统.咱们理解系统在造成理解概念的空间只是微小的一角,不多有资料来介绍这种概念系统的造成和理解,编程接口只是这个概念空间一个,对外部的一个表征。咱们能够抽象起来,以接口,协议和行为,来描述系统的状况。SDK API的实质向上层提供了一个语义接口,从而在层间实现了一个转义过程,同时又成为一个功能的集合体。可是咱们不多这样跳出来看,咱们究竟是处于一种什么样的概念空间,SDK除了调用接口外,还给了咱们怎样一种总体概念?目标系统的基本构架在本质上的东西就是一个概念系统到另外一个概念系统的映射。让咱们大脑理解的概念系统映射到计算机能实现的概念域的一个映射。咱们假定这个概念域E,机器可以理解的概念域为M,咱们的软件工程要作的事情实质就是:EàM领域的一个映射过程。工具
为何要在宏观上把握这些概念呢,显然有个人目的,理解概念空间是理解设计者意图的一个重要途径。设计者要想给开发者提供什么,设计者想要提供给最终用户什么。咱们须要站在高处看待系统明白设计者意图。学习
Android的实质仍是一套管理手机硬件系统的软件,这个话讲起来没有多大意义,计算机操做系统本质都是如此,Android是Google云计算计划的一部分,咱们修正成:Android创建的本质就是让计算机成为个人云接入移动智能终端。做为硬件管理软件,Android提供概念空间内涵实质上泛操做系统内涵,咱们的理解能够从泛操做系统概念空间映射到Android系统中去。而做为云计算的一部分的内容,咱们能够云计算的概念入手去研究Andoird。云计算