当前位置:文档之家› 软件开发技术名词

软件开发技术名词

一、什么是Scrum?

Scrum(英式橄榄球争球队),软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。

Scrum的基本假设是:

开发软件就像开发新产品,无法一开始就能定义软件产品最终的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证专案成功。Scrum将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。

Scrum开发流程通常以30天(或者更短的一段时间)为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部分,开发团队必须尽力于30天后交付成果,团队每天用15分钟开会检查每个成员的进度与计划,了解所遭遇的困难并设法排除。

二、Scrum较传统开发模型的优点

Scrum模型的一个显著特点就是响应变化,它能够尽快地响应变化。下面的图片使用传统的软件开发模型(瀑布模型、螺旋模型或迭代模型)。随着系统因素(内部和外部因素)的复杂度增加,项目成功的可能性就迅速降低。

下图是Scrum模型和传统模型的对比:

三、Scrum模型

1、有关Scrum的几个名词

◆backlog:可以预知的所有任务,包括功能性的和非功能性的所有任务。

◆sprint:一次跌代开发的时间周期,一般最多以30天为一个周期。在这段时间内,开发团队需要完成一个制定的backlog,并且最终成果是一个增量的,可以交付的产品。

◆sprint backlog:一个sprint周期内所需要完成的任务。

◆scrumMaster:负责监督整个Scrum进程,修订计划的一个团队成员。

◆time-box:一个用于开会时间段。比如每个daily scrum meeting的time-box为15分钟。

◆sprint planning meeting:在启动每个sprint前召开。一般为一天时间(8小时)。该会议需要制定的任务是:产品Owner和团队成员将backlog分解成小的功能模块,决定在即将进行的sprint里需要完成多少小功能模块,确定好这个Product Backlog的任务优先级。另外,该会议还需详细地讨论如何能够按照需求完成这些小功能模块。制定的这些模块的工作量以小时计算。

◆Daily Scrum meeting:开发团队成员召开,一般为15分钟。每个开发成员需要向ScrumMaster汇报三个项目:今天完成了什么?是否遇到了障碍?即将要做什么?通过该会议,团队成员可以相互了解项目进度。

◆Sprint review meeting:在每个Sprint结束后,这个Team将这个Sprint的工作成果演示给Product Owner和其他相关的人员。一般该会议为4小时。

◆Sprint retrospective meeting:对刚结束的Sprint进行总结。会议的参与人员为团队开发的内部人员。一般该会议为3小时。

2、实施Scrum的过程简单介绍

1)将整个产品的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。

2)召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。

3)进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum meeting。

4)整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner。

5)团队成员最后召开Sprint retrospective meeting,总结问题和经验。

6)这样周而复始,按照同样的步骤进行下一次Sprint。

整个过程如下图所示:

COM技术概述

COM表示Component Object Model(组件对象模型),它是Microsoft大力推广的软件开发

技术。采用COM规范开发的应用软件具有强大的功能,主要有如下几点:

◆COM是二进制编程规范,可以编写被多种语言使用的代码。

◆用于创建ActiveX控件。

◆通过OLE Automation 控制其它的程序。

◆与其它机器上的对象或程序进行对话,构成分布式应用程序。

Microsoft推出Windows 98和Windows NT 5.0后,整个操作系统的核心都围绕着COM来建立。我们可以把Windows系统看作是一系列的COM接口,在需要是可以调用这些接口。如DirectX就是一系列的COM接口服务程序,通过它可以进行高性能的Windows图形程序设计。

用COM技术开发的应用程序从理论上说是客户/服务器模式的程序。程序员可以使用一系

列的COM服务程序来构造他们自己的应用程序,这些服务程序可以根据需要随时嵌入到主程序中。在分布式系统中,可以通过网络来访问这些服务程序。将来,操作系统和整个

网络可能会被看作是一套以COM对象形式提供的服务集。一部分程序员负责建立这些服务,而另一部分程序员只负责如何调用它们。其目的是实现软件的即插即用。

开发COM应用程序是比较复杂的,通常需采用ActiveX模板库(ATL)来编程。在这里我们推荐采用C++ Builder来开发COM程序,Inprise(Borland)公司的面向对象技术一直处

于世界领先水平,C++ Builder采用可视化方法,隐藏了ATL的实现细节,自动生成COM接

口所需的代码。

以下的程序举例采用C++ Builder 4.0 编制,在中文Windows98环境下运行。

2.建立COM服务程序

COM服务程序有三种形式,第一种是驻留在本地机器上以DLL形式提供,该服务程序

被调用时,嵌入到调用程序的线程中运行;第二种是驻留在本地机器上以EXE形式提供,

该服务程序被调用时将占用独立的线程运行;第三种驻留在远端机器上以EXE形式提供,

服务程序通过网络被调用,它在远端机器上运行,结果通过网络返回调用者。

在此采用第一种形式建立COM服务程序,这也是最常用的形式,DirectX就是采用这

种形式提供的。

C++ Builder建立COM服务程序的方法如下:

2.1创建支持COM接口对象的动态连接库文件:

◆打开File/New/ActiveX项目页,选择ActiveX Library;

◆选择Save All 将项目以PCOMServer文件名保存;此时C++ Builder 自动生成如下的文件:

PCOMServer.bpr:工程的项目文件;

PCOMServer.h,PCOMServer.cpp:支持COM对象的动态连接库源文件,其中有许多函数

用于COM接口对象的自动装配,大家不用去编辑它们;

PCOMServer_ATL.h,PCOMServer_ATL.cpp:ATL形式的文件供C++ Builder编译器调用,大家也不要去编辑它们。

◆打开Project/Options/Linker 属性页不选中Use dynamic RTL选项,打开Project/Op

tions/Packages属性页不选中Builder with runtime packages选项,这两步操作可以使

开发的COM动态连接库不依赖C++ Builder的VCL动态连接库,有利于独立发行,但在一般情况下还是建议选中这两项。

2.2建立COM接口对象

打开File/New/ActiveX属性页,选择Automation Object表示向服务程序中插入一个

自动类型的COM对象,我们选择这种类型的COM对象是为了可以自动注册,并且自动支持可以被其他语言调用。此时出现如下的对话框,输入COM类的名字MyCOM即可,对话框中的其它选项用于规定COM对象的性质,可查看帮助信息。

2.3通过类型库编辑器编辑COM对象中相应接口对象的属性和方法

此时自动进入类型库编辑器,类型库用于存储COM对象的说明,是一个可以被多

种语言调用的头文件包。在类型库中,可以定义COM对象的接口,定义接口对象的属性和

方法等。类型库编辑器如下所示:

可以看出此时自动产生了MyCOM类的一个接口类IMyCOM,在COM应用软件中我们实

际上是与接口对象打交道,下面通过类型库编辑器为IMyCOM接口定义方法和属性。

◆单击编辑器顶部的Method按钮;

◆在Arributes页面的Name字段中输入方法的名称,本例中是AddInt用于整数加法;

◆在Parameters页面中,单击Add按钮编辑方法中的参数;

x和y是输入的两个整数,ret用于返回运算的结果,必须定义为指针型

◆切换到Flags页面,可以对接口的属性作调整;

◆在Text页面中可以检查生成的IDL代码:

[id(0x00000001)]

HRESULT _stdcall AddInt([in] int x, [in] int y, [out, retval] int * ret );

◆单击Refresh按钮,此时可以关闭类型库编辑器。当需要为接口添加新的属性和方法时

,可以通过View/Type Library重新打开编辑器。选择Save All用C++ Builder提供的缺

省文件名保存类型库的相关文件如下:

PCOMServer.TLB: 类型库文件;

PCOMServer_TLB.cpp:包含COM接口和对象的说明,其主要目的是方便访问,在客户程序

中需将本文件包含到客户程序的工程中;

PCOMServer_TLB.h: PCOMSe

“北大青鸟”使用开发技术

1.使用NUnit和JUnit检测和控制软件的质量,

2.开发了自己的软件计划和进度工具Sproman,

3.用CVS实现了团队成员的并行开发,

4.实现了数据库应用的完全的脚本控制,

5.在项目中使用了OR技术实现数据库操作层的封装,除了使用Hibernate外,我们开

发了自己的OR产品——MiniDac——已经在多个项目中被成功应用,

6.使用文档工具实现了程序API文档的自动生成,

7.所有项目都使用了结构良好的分层架构,java方面主要补充了基于Struts的应用,

在.Net方面我们解剖了Comunitiy、MSPetShop等框架,并逐步形成了自主的

WebFrame框架。

8.成功使用了CodeSmith代码生成工具。

9.重构:使用together(支持java和https://www.doczj.com/doc/a815379650.html,)、https://www.doczj.com/doc/a815379650.html,2005等。

10.构造:使用Ant(支持java和https://www.doczj.com/doc/a815379650.html,),https://www.doczj.com/doc/a815379650.html,中的builder。

11.Aop(面向方面的开发):使用spring(支持java和https://www.doczj.com/doc/a815379650.html,)。

软件开发技术名词

"Win32编程”

很不幸,我从开始学习编程到理解这个名词中间隔了很长的时间(上个世纪的学习环境可见一斑)。很长时间里我都不明白32是指什么,我用过Dos,Win31,win95,win97...但好像没用过名为Win32的操作系统啊?很久以后我才知道,32在这里并不是指操作系统的版本号,而是指32位。微软操作系统在win31及其以前都是DOS系统,windows 只是在dos下运行的一个大程序而已。在其后win95则稍有改变,windows除了DOS

核心以外也真正成为了操作系统的一部分,提供着各类操作系统提供的服务。应该说,在win95之后的windows(新近的64位win系统以前)都可以称之为win32系统平台(95/98实际上是16与32位混合)。所以在这样的平台上,直接或间接使用系统提供的API编程,就称之为Win32编程。对Visual Studio而言,Win32编程一般指SDK、MFC、A TL 这几类开发方法,其中A TL在国内应用不是很广泛,一般应用于以COM组件为架构的中大型软件产品。

"SDK" :Software Development Kit,常译为软件开发(工具)包

在Win32编程领域一般指与MFC这类框架编程相区别的,直接调用Windows提供的API的开发方式,与字面原意有一些区别。另外一个经常见到的说法就是某软件(硬件)带有自己的一套SDK,这里其实一般是指一套API库函数或者类库,供上一层的开发者调用。又譬如常说的DX的SDK,其实是微软开发的一套COM组件,供上层开发者使用。总之,供程序员使用的比较完备的代码库,就可以称之为SDK;

“MFC”: Microsoft Fundation classes 微软基础类库

大家都知道,使用SDK编程方式往往有很多每次都重复的固定不变的一些代码,为了提高编程的效率,减少上千个API带给开发人员巨大的精神压力,微软开发出了这么一个类库,注意,这个类库与操作系统本身无任何关系,它只是对API进行了一个面向对象的封装,当然,还给出了一系列编程的框架。使用SDK的方法,使用Visual Studio,通过调用Windows API,MFC你也可以做得出来。MFC把一些固定不变的代码已经写好了,只在编译时候链上,所以我们的代码里看不到WinMain(),而事实上整个程序的运行,和SDK的方式无任何区别,初学者请记住这一点。另,补充一点个人感想,MFC 的初衷,带给开发人员更多的便利,我觉得并不太成功。学习MFC所费的力气和最终的所得,并不太成正比。

"API":Application Programming Interface,应用程序接口

这个词的出现频率很高,从某种意义上来说,也可以看作是SDK的一个子集。这也是做给程序员的程序,不过一般指用导出函数的方式提供服务的函数库,不包括类库和组件。

“GDI”:Graphic Device Interface,图形设备接口

这个是Win32程序下最常用的显示方式,与DirectX、OpenGL处于同一级。在DOS 要显示一些东东可不是容易的事,最简单的是调用一些C的图形库函数来实现显示,不过一般也就是些画线,填色,输出几个文字,效果很弱(所以DOS程序界面一般都不怎么样,且实现起来不是一般的复杂),要复杂一点的动画/图片显示什么的,经常要用到的就是硬件中断,调用一些显卡自身的子程序(固化在显卡内的)来做。因为每一个显卡都不同,所以DOS的游戏兼容常常由于显卡的差异而很糟糕。到Windows下大家就幸福多了,Windows将硬件这一层屏蔽起来,用一个表格(Device Context)来代表一个显示,我们要做的就是在这个表格上填好相关参数,然后画上我们想画的东东,然后操作系统会依照这个表格(DC),把相应的显示内容(一般是一块显示内存)传送到指定显卡的指定的显存,再由显卡传给显示屏。我们不再需要与不同的显卡打交通,这是一个十分伟大的胜利!GDI中最常用的是双缓存技术,就是说你可以在内存中创建(也就是复制)一个DC,只不过在这个DC中显示的不再被传送到显示器上。有什么用呢?因为它的各参数是与当前屏幕DC一致的(COPY嘛,当然是这个结果),所以它的显

示内容可以完整无失真地传送到屏幕DC上。我们通常在内存DC上画图,譬如画一圆,再画一条直线,画完后一次性地传送到屏幕DC上,这样对用户来说屏幕只刷新了一次,可以解决你画一点内容屏幕即刷新一次导致的闪烁问题。当然,双缓冲甚至多缓冲还有很多别的用处,那就要靠自己揣摩了。

"DirectX"

通常简称为DX(读音:低叉)这是个很吸引人眼球的名词,读起来就很上口:)。Windows为我们作了许多屏蔽底层硬件的工作,其中DX是最知名的技术之一。操作系统要与各类硬件打交道,特别是多媒体相关的,譬如显卡、声卡、手柄输入、多媒体流的网络传输等等,这些事情如果都自己来弄的话,那就太要命了(这些一般都涉及系统底层,自己也很难做出来)。而DX则正是这么一套操作系统提供的隔离多媒体硬件与程序员的间质,DX自身一般并不实现处理的能力,它是一个标准,要求硬件来满足,好比DX提供一个函数名,硬件来实现函数内容一样。通过它我们可以非常简单而快速地调用硬件提供的各类服务。它主要包括DirectDraw(通过直接访问显示硬件来提供快速的图象处理能力),DirectSound(提供了软硬件的低延迟声音混频和回放,以及直接访问音频设备的能力),DirectPlay (它明确的提供了通用环境连接能力来简化你应用程序之间的通讯服务),Direct3D(DirectDraw的3D版),DirectInput(简化你的应用程序访问鼠标、键盘和操纵杆设备的能力),DX5.0之后又增加了一些(如DirectShow),不再详述。DX 一个重要的特点就是你可以通过它直接访问硬件而无需知道硬件的具体细节。譬如DirectDraw,就能够越过内存而直接访问显存,这样的速度将比GDI快很多,不在一个数量级上。补充一点:DX是以组件的方式提供的,而不是通常的导出API的形式。DX SDK 的最新版本是9.0

"COM”:component object model,组件对象模型,一般简称组件

这是微软为了解决代码重用的一个重要机制。重用代码的最简单办法是源代码重用,把写好的函数和类加到自己当前的代码中,编译即可。简单是简单,敝病却显然的多。另一个常用的方法是单独做成模块,以DLL的形式分发,DLL导出函数或者类,客户程序用动态/静态链接的方法将其加载,这显然比前一种源代码的方法好一些,难度也不大,最为常用。但DLL也有一些不足,最根本的,它不是二进制兼容,DLL版本升级一次就需要与客户程序代码重链接一次,有些时候这几乎是不可能的任务。为了更好地让编程像“搭积木”一样简单,让模块可以完美地配合,完美地替换,COM产生了。COM不是类库,不是代码,不是操作系统的服务,而是一套编程模型,理论上来说,它与语言无关,与操作系统无关,unix下同样可以做COM。COM是一种程序结构模型标准,你做的DLL或EXE在结构上满足这么一个标准,那这个DLL或EXE就是一个组件,它将在该平台上成为二进制兼容。COM主要利用了注册表来登记本模块的信息。客户程序调用时首先查注册表,找到所需组件的位置(这实现了位置透明),然后就用Loadlibrary把它加载进来,这和普通调用没有本质区别,区别在于由于组件特殊的实现方法使得整个过程中用户程序都不知道组件的位置,组件的类的实例化过程,如何销毁,不能直接访问组件的任何实现细节,用户只与组件的几个public接口打交道。这将实现真正的模块之间的独立。对用户程序而言,对于目标组件的认识,除了接口,一无所知。在接口不变的情况下,组件可任意替换而客户程序不作任何改动,无需编译,仅这一点,在中大型程序的模块集成的过程中就将节约相当多的时间。

"STL":Standard Template Library,标准模板库

这是最早由Alexander Stepanov和Meng Lee(蛮像中国人的名字)完成,于1994

年提交给ANSI/ISO 标准C++委员会并通过而成为标准C++的一部分。望文生义即可知这是一个代码库标准,不是语法标准。简单地说,STL是以C++中的模板语法为基础建立起来的一套包含基础数据结构和算法的代码库。STL的特点是实现了“类型参数化”,即STL的代码中可处理任意自定义类型的对象,如果不使用模板技术的话,这是一件相当困难的事。也因为这个原因,在最新的java及C#语法中均加入了对模板语法的支持,可见其重要性。另外一个有关STL重要的话题是GP(Generic Programming),泛型。这是与面向对象相并列的另外的一个编程模型,它以模板为基础,弱化了实体类型的差异,简化了编程时问题抽象的模型,提供了更好的封装性和弹性,对于繁杂的面向对象编程毫无疑问是一种解脱,至少是精神上的。GP并不是用来取代面向对象的,而是作为一个有益的补充体,是面向对象很好的合作伙伴。GP是最近几年软件架构的一个研究热点,但国内真正的应用似乎并不多见,这项技术本身还基本处于研究前沿。<>一书对C++中的GP应用有很好的诠释,而这本书对脑细胞的杀伤力之大,也是其它C++书藉望尘莫及的。想知道C++的代码技巧

可以做到怎样的出神入化吗?不妨看看这本书。

"A TL":Active Template Library,活动模板库

这在VC编程下应该算是比较高级的话题了,它集COM和模板技术于一身,带来了极方便的组件编写方法和极高的学习门槛。可以说,进入A TL领域就算是进入了中级以上的编程领域。ATL是为组件而生,它的目的是为了让程序员更方便地编写组件(纯用C++写一个最简单的组件实现一个“Hello World”对初学者来说都是要命的),同时它使用模板技术来类似于MFC一样建立了一个开发COM的框架代码库(模板库),使用该框架及模板库可以相对方便地进行组件开发。A TL中的一个特点就是你自己的类将成为ATL代码库中某些类的父类,这是一件很有趣的事(这也是模板技术的一个特点)。

"HANDLE": 句柄

这是一个中文翻译很古怪的字,对初学者来说是百思不得其解的东东。这其实等价于void*(顺便提一下,初学者往往对VC代码中各种古怪的符号、类型标记/宏等百思不得其解,其实它们大多来自基本类型的#define或者typedef,请将光标移到这些符号上(譬如HANDLE),然后按下F12,编译器自会把你带到它的声明处,反复使用几次,你终会见到它的原貌,然后长吁一口气:原来不过如此而已。没用过的初学者请牢记:F12)。很多初学者总想知道一个HANDLE代表一个什么对象,我的建议是不要去理解为某对象,而就是理解为访问某一个对象的入口,事实上HANDLE大多数时候是一个整数索引(标志该对象在操作系统的某表中的位置,就好像一个数组的下标一样),Windows系统核心中主要是几张大表,这样一个整数索引就是标记目标在这个表中的位置,供操作系统访问时查询用。偶而它的确是指向某对象的指针,有时它还携带一些额外辅助信息。总之,我们不要去直接访问它,把访问HANDLE的任务交给操作系统好了,除非你还嫌写程序不累:)。

"DLL": Dynamic Link Library 动态链接库

DLL的一个特点就是可以动态加载(顾名思义),即在主程序(我更喜欢称为客户程序)需要该模块时才由操作系统加载到内存。毕竟一个大型应用程序我们经常使用到的功能并不多,这样一些不常用的功能模块(DLL)在程序运行时一般将不被载入,可极大节省内存开销。DLL同时也是目前最常用的分发模块的方法,便于彼此协作。程序中对DLL的调用主要有两种方法:1 针对使用DEF文件导出函数的DLL,使用API 函数LoadLibrary(“DLLModuleName" )加载,然后使用GetProcAddress()得到函数

指针,进而调用 2 直接将类、函数等导出,客户程序使用同一份头文件声明,加入对应的lib链接库,即可在客户程序中直接使用DLL中的类或函数,无需LoadLibrary。

"Process": 进程

进程是一个动态的概念,包括从进程的创建申请,PCB(Process Control Block进程控制块,一般操作系统实现为一个表格(struct))的创建,地址空间的内存分配,模块代码载入并执行,执行完以后进行撤销,整个过程被称为"进程"。在Win32下,一个进程有4G的逻辑空间。但我们也常把它作为静态概念来使用,在Win32下,一个EXE的执行就是一个进程(如果它内部又开了新进程,另当别论)。

"Thread": 线程

为了更有效的提高CPU的利用率,更好地实现多任务并发,微软将进程进行进一步分割,实现了CPU任务调度的新对像:线程。一个进程拥有至少一个线程。我们在实现多任务并发的时候通常是建立一个新线程(建立线程的系统开销要小于进程),线程以我们自己的一个函数作为入口,函数执行完毕自动撤销(当然你也可以在执行过程中强制结束该线程)。顺便提一下,在UNIX下并没有线程这个概念,想来是因为UNIX 主要是以多进程的并发服务为主(所以它更适合于做服务器),系统运行时通常已经有了太多的进程,所以没有必要再对进程进行细化,因为这样做甚至会降低系统效率(CPU 调度不过来),当然,这是我个人的猜想:)

"C语言"

到目前为止,C语言应该是传播最为广泛的语言,特别在UNIX的世界里依然扮演着主角的位置,在其余如硬件开发,嵌入式系统(如手机)皆有十分突出的表现,即便在win32平台下SDK的开发中也有一席之地。更主要的是它是大多数国内(国外我不敢说)程序员的启蒙语言,通过它许多人才领会了程序的思维。C最大的特点就是快,除了汇编以外效率可以达到最高,而它的灵活性,对硬件的直访性也完全符合程序员自由的天性。如果说学习别的技术尚有犹豫和徘徊,那么学C只有一句话:相信我,没错的!也有许多人主张可以直接学习面向对象语言,我不太同意。面向对象语言对机器模型的抽象十分容易让程序员迷糊,心中难以建立准确的程序运行时的模型。毕竟我们是程序员,不是用户,我们不能把所有的问题都想当然地交给编译器和操作系统去解决,它们也解决不了。至少学习一门面向过程的语言,才能知其所以然。

C++

这是贝尔实验室的又一杰作,同时,也伤透了全球太多程序员的心,脑细胞杀伤力十分之大。C++比大多数初学者想像的都要复杂得多,它基本包括:一个类化了的C语言,模板,标准模板库.很多初学者掌握的C++仅仅只是一个类化了的C语言的一个子集(不相信的话,你不妨看一看<>中的C++代码,看看能理解多少)。更麻烦的是使用C++不得不谈到面向对象的编程风格,这同样比初学者想像的难很多,要有打持久战的准备。而最让我这类C++爱好者忧心的还是它目前在Win平台中的前景,在.net平台上很难找出不用C#而使用C++写新代码的理由:(。而它的复杂性和目前许多诸如java/C#及一些动态语言(python/ruby)比起来,开发效率显然的低,大有退出上层应用程序开发的趋势。这么一个包含了最多范式的近乎完美的语言,我实在不想放弃。我唯有祈祷在未来C++的路可以走得更远更好一些。

源代码版本控制

这是软件开发中一个十分重要的工程手段,几乎是必须的一个Process(过程)。很多作坊式的开发团队在采用软件工程的一些方法的时候,第一个要进行改进或增加的,往往就是这个过程。对初学者学习而言,建议在开始进行实践小项目的阶段即进行源代码版本控制,因为这在以后的工作中,是一定会用到的。

源代码版本控制的基本原理如下:

在服务器端建立该项目的数据库,并保存你选定的项目源文件的第一个版本。客户端任一用户要获得某源文件的修改权利,需进行check out操作。之后客户端一般每完成一个无编译错误的版本想保存的时候,进行check in操作,将当前版本保存在服务器端上并成为最新版本(注意,不是覆盖以前的哟)。任一客户端可以方便地得到服务器上的文件的任意版本(如果有权限的话)。一般还实现了一个重要的功能是版本比较,任一客户端可以利用版本控制工具对某文件的不同版本进行版本比较,它会标记出不同版本的同名文件的不同点,可以轻易地看出版本内容的演化,这一招很常用。下面介绍一下我接触过的三种版本控制工具(也是国内用得比较多的)

"C语言"

到目前为止,C语言应该是传播最为广泛的语言,特别在UNIX的世界里依然扮演着主角的位置,在其余如硬件开发,嵌入式系统(如手机)皆有十分突出的表现,即便在win32平台下SDK的开发中也有一席之地。更主要的是它是大多数国内(国外我不敢说)程序员的启蒙语言,通过它许多人才领会了程序的思维。C最大的特点就是快,除了汇编以外效率可以达到最高,而它的灵活性,对硬件的直访性也完全符合程序员自由的天性。如果说学习别的技术尚有犹豫和徘徊,那么学C只有一句话:相信我,没错的!也有许多人主张可以直接学习面向对象语言,我不太同意。面向对象语言对机器模型的抽象十分容易让程序员迷糊,心中难以建立准确的程序运行时的模型。毕竟我们是程序员,不是用户,我们不能把所有的问题都想当然地交给编译器和操作系统去解决,它们也解决不了。至少学习一门面向过程的语言,才能知其所以然。

C++

这是贝尔实验室的又一杰作,同时,也伤透了全球太多程序员的心,脑细胞杀伤力十分之大。C++比大多数初学者想像的都要复杂得多,它基本包括:一个类化了的C语言,模板,标准模板库.很多初学者掌握的C++仅仅只是一个类化了的C语言的一个子集(不相信的话,你不妨看一看<>中的C++代码,看看能理解多少)。更麻烦的是使用C++不得不谈到面向对象的编程风格,这同样比初学者想像的难很多,要有打持久战的准备。而最让我这类C++爱好者忧心的还是它目前在Win平台中的前景,在.net平台上很难找出不用C#而使用C++写新代码的理由:(。而它的复杂性和目前许多诸如java/C#及一些动态语言(python/ruby)比起来,开发效率显然的低,大有退出上层应用程序开发的趋势。这么一个包含了最多范式的近乎完美的语言,我实在不想放弃。我唯有祈祷在未来C++的路可以走得更远更好一些。

源代码版本控制

这是软件开发中一个十分重要的工程手段,几乎是必须的一个Process(过程)。很多作坊式的开发团队在采用软件工程的一些方法的时候,第一个要进行改进或增加的,往往就是这个过程。对初学者学习而言,建议在开始进行实践小项目的阶段即进行源代码版本控制,因为这在以后的工作中,是一定会用到的。

源代码版本控制的基本原理如下:

在服务器端建立该项目的数据库,并保存你选定的项目源文件的第一个版本。客户端任一用户要获得某源文件的修改权利,需进行check out操作。之后客户端一般每完成一个无编译错误的版本想保存的时候,进行check in操作,将当前版本保存在服务器端上并成为最新版本(注意,不是覆盖以前的哟)。任一客户端可以方便地得到服务器上的文件的任意版本(如果有权限的话)。一般还实现了一个重要的功能是版本比较,任一客户端可以利用版本控制工具对某文件的不同版本进行版本比较,它会标记出不同版本的同名文件的不同点,可以轻易地看出版本内容的演化,这一招很常用。下面介绍一下我接触过的三种版本控制工具(也是国内用得比较多的)

VSS: Visual Sourcesafe

这是微软Visual Studio自带的源代码版本控制工具,它最大的特点就是易安装(与Visual Studio集成在一起,装VC/VB的时候就顺便搞定,不用别外费工夫),使用简单(服务器端设置相对容易,一般个人稍加摸索就可以轻松搞定,客户端更是只管check in/out),基本功能完善,版本比较很直观(我喜欢)。它的特点是某人check out了某版本以后,别人将无法对此版本check out,也就是说同一时间只有一个可以修改某一个文件,这样就避免了不同的人对同一文件的修改造成彼此冲突(注:可通过设置服务器端实现多人check out,但几乎不会这样做,因为那样就失去了VSS的一个最重要的功能)。另,VSS可集成于VS环境,但根据我的经验,直接在VC里对版本的check操作,常常不生效,所以最好还是到VSS程序里去进行check操作。补充:单机上也可以使用VSS,这样的好处是在对当前某些文件进行了误操作或大规模地误修改之后,可以恢复到最近的无错误的版本,最大程度地挽回损失。VSS实际应用较普遍,如果你是走Visual Studio路线的话,一定要用一下。

CVS: Concurrent Versions System

这个也是一个大名鼎鼎的开源的版本控制工具,主要活跃在UNIX世界。CVS我使用不多,一般而言好像功能比较偏向于命令行方式(UNIX下开发很多人也都使用着命令行方式)。当然,Windows下面也实现了几个版本的CVS,也可以集成于VS,好像还有一个可以挂接在IE上的,我没试过。著名的开源项目管理网站https://www.doczj.com/doc/a815379650.html,也是用的CVS,如果你要和全世界的程序员一起协作开发,CVS是必须要安装的。在JA V A的世界里,也是以CVS为主。

Rational Clearcase

这个工具就比较上档次了,Rational公司(现在是IBM)的出品,价格昂贵。我最初参加工作的时候用过一小段时间,简单谈一下。这个工具的特点是复杂,安装及设置就十分复杂,我的印像中客户端甚至不得不加入到NT域里面去,导致我在本机的权限都不够,安装新程序都很麻烦,很郁闷(不知道是不是我们公司的相关人员安装设置错了,想来应该是这样,但其复杂性可见一斑)。对使用而言,它有一个功能挺有用的,就是它能够根据你每次check的版本号,自动生成版本树(一个树状图表),你可以清晰地看到版本的演化过程。所以严格地说,像CVS/Clearcase这样的才真正称得上“版本”控制,VSS还太勉强。Clearcase的功能十分强大,我不详述了(我还不想出书),较适于大型软件公司实施软件配置管理时采用。虽然它的名气十分之响亮,但我不知道国内有多少公司在真正使用正版的Clearcase这样的工具,想来应该是十分之少。

OpenGL

OpenGL至今颇有一点英雄落寞的味道,这一套标准是实现得如此之好,以至于曾经一度成为游戏界面华丽的标准。它的低落也是一个必然,毕竟在微软的强力打压下鲜

有不挫败的。但它曾经能够给微软带来如此的压力,至今也依然在工业界被广泛使用,大多数游戏/显卡依然保留着对它的支持(CS里我喜欢的还是OpenGL)。而它的性能在某些方面与D3D比较,依然占着上风。不幸的是DirectX在不停地向前发展,而它,几乎止步不前了,前景并不光明。OpenGL目前在工业领域应用较为广泛,它的优秀的矢量图的操作性能,华丽的色彩,在专业的图形图像处理领域表现突出。游戏中使用相对以前而言则是越来越少。新近听说微软的最新操作系统Vista对OpenGL进行了极大的打压,不但性能上折扣,支持的版本也只到1.4(最新版本好像是2.0),不知道最后如何收场,拭目以待。

DirectDraw & D3D

大凡像样的2维Windows游戏,几乎都是采用此技术来实现显示的。DirectDraw 有两种模式:全屏和窗口。其中全屏应用更多一些。在全屏下,DirectDraw有一个十分著名的“换页”技术,即在两个显示页面之间用“交换”来实现显示刷新,这个速度十分地快,只是一个显存内一个指针的交换,比你用BitBlt复制一屏的像素快太多太多,游戏的高效的动画效果大多源于此技术。

DirectDraw主要用于娱乐领域和一些实时显示要求较高的场合,如医疗图像。D3D 是目前大多三维游戏的标准采用,我没钻研过,不敢多言。它的效果嘛,玩玩游戏就知道了:)

UML:Unified Modeling Language,多译为统一建模语言

这个语言是一种图形语言,主要是作为设计时建模的一种标准的图形模型,便于程序员与程序员、程序员与客户、设计员与代码员之间的沟通,同时它也帮助设计人员将头脑中的基于程序代码的对程序功能的理解形成文档,便于理清头绪,进行下一步编码的工作。换言之,设计过程的产品,可以表现为一些文本文档,或者一些框架代码,或者一些伪代码,但比较标准通用的,是表现为一堆UML图。UML包括动态图和静态图两大类,其中静态图中的类图最为常用。很多人初学时不知道该怎么做设计,写小软件时常常没有设计过程,其实很简单,把软件的类图画出来就好了。学做设计时未必要找一个像Together或者Rational Rose一样的巨无霸。用一些简单的可以做UML图的工具就好,专门用来画UML图的小工具很多,网上容易找。补充一点:画UML图不要面面俱到,不要什么都画,突出重点方便理解就好,甚至使用不规范的记号也不要紧(当UML的功能是草稿的时候)。

RTTI: Runtime Type Information 运行时类型信息

在程序中,当我们得到某一个对象的实例或者指针时,大多数时候并不能直接肯定它的类型(都是继承以及类型转换惹的祸),这个时候,依靠VC4.0或更高版本的编译器提供的RTTI支持,调用库函数typeid()即可在运行时获取这个对象的“类型信息”,在一些动态处理中“类型信息”很重要,获取了类型信息以后,你就可以有十分把握地调用该类型的相关操作,或者类型转换,或动态生成。因其重要性,在JA V A和.net库中借助单根继承和“虚拟机”对此有了更优雅的做法,每一个自object继承的类天然就有了表述自己类型信息的能力(继承的好处),并且容易扩展,现在你需要类型信息的时候,大可直接ask那个对象:tell me, what type are you?它就会告诉你答案。

debug & release 调试& 发行

大家都知道,debug是调试版,release是发行版,区别在于debug版生成的程序中包含大量供调试用的场景代码(不是真正运行需要的),而release一般去掉了这些信息,

并进行了某些代码优化,所以release版的程序会比debug版的程序小很多,运行速度也快一些。同时,debug版为了便于调试,往往会对调试使用的诊断代码加上DEBUG一类的宏,使得在release下不对这些代码进行编译。正由于两种版本编译使用的源代码的差异(以及release糟糕的优化),常常使得两种版本运行时产生截然不同的效果,一个正常一个崩溃是大多数人都遇到过的。导致问题的可能性很多,注意事项详见各论坛的诸多精华贴。另,同一个程序如果DLL之间的链接使用了不同版本(譬如EXE是release版,dll是debug版),有时会无法正常运行,所以我一般的做法是每一个DLL 针对不同版本使用两个DEF文件,编译生成不同名的两个文件(debug版文件名后加d),调用时各个版本针对自己的版本调用,这在一定程度上可避免混乱。另,release也是可调试的,在工程设置里把调试信息打开即可。

XP:eXtreme Programming 极限编程

这是近几年才时兴起来的开发模型,国内大致是01/02年开始有所宣传。

它主要是针对中小型开发团队在开发时间要求紧、需求不稳定的中小项目(大多数软件项目都是这个情况)时使用。它打破了传统软件工程的框架,非常新巧。譬如整个开发过程中文档很少,大量使用“卡片(如CRC卡片)”来描述开发计划和内容;没有真正意义上的软件功能规格说明书,取而代之的是一系列可测试的用例;没有独立的设计和测试阶段,它们总是在迭代中增量反复进行;设计:尽可能小和简单;一般没有代码复审(code review),大家共同拥有代码。而它的最显著的一个外在特征是它常使用“成对开发”,即一台机器前坐两个开发人员,共同开发(一个看,一个写),这乍听起来真是蛮有趣的:),它的基本出发点是认为成对开发的效率在一定条件下要高于两个人独立开发的和。不要觉得天方夜谭,在很多项目中,这种做法的有效性已经被证实。

XP的特点可以用“快、小、灵”来概括,它和传统瀑布模型(自顶向下)的区别在于它使用迭代增量(设计->代码->测试->设计->代码...)的方式。想法很简单:没有什么目标是可以一开始就容易确定的。用爬山来做一下比喻的话,传统的是在山下研究地图,选好一条路线,然后沿着此路前进,XP则是走一走,停一停,看一看,对下一步的方向作出新的选择,在很多时候,这样做会让你选择到更好的捷径。

ICONIX:

这个字相信很多人都没见过,我也不知道是什么字拼起来的,作为开拓眼界,我还是提一下吧。这是一种界于XP和RUP(Rational Unified Process)之间的开发模型,换言之,它比XP“大”,比“RUP”要小。它采用了UML的一个子集,特点是用例驱动,保持良好的进度跟踪能力。它的目标是用最短的时间来把用例变成代码。具体来说,这种开发模型相对精简的XP而言,更加强调用例的建立、分析和代码化,用例是其中心地位。

RUP:Rational Unified Process

前面已经提到了,相信你已经感觉出它是一个丰富的软件开发模型。这是由IBM 提出来的软件工程模型,它使用完整的UML图,对开发的各阶段(需求、设计、代码、测试、维护)均有十分完善而复杂的标准,就不详述了。RUP本质上是迭代式开发,在每一次迭代中均完成以下四个阶段:初始阶段(inception)、详述阶段(elaboration)、构

建阶段(construction)、转换阶段(transition)。

CMM:Capability Maturity Model 软件成熟度模型

这是卡内基*梅隆大学软件工程研究所(我的专业正是软件工程,所以这也成为我心目中的圣地)的一大力作,一度曾形成了席卷全球软件开发的CMM浪潮。CMM分为五级,大多数软件企业都处于第一级,而得到第五级认证的全球也没有多少,国内去除掉挂羊头卖狗肉的,也是寥若星辰(嗯,比星辰是寥多了)。所以CMM实施一般是从第二级开始,能做到第三级的都是颇有实力的软件公司了。CMM是以Process(过程)为中心的模型,从二级始每一级都有几个Key Process(关键过程),每一个KP又分为若干Key Active(关键活动)。CMM的实施一般不能越级实施,并且每一级的实施通常都要一年以上,所以要达到较高等级是一级很困难的事。另,CMM不仅可用于较大规模公司,同样也可实施于小公司,小项目组(这是很多人所不知道的)。实施视具体情况等级之间可交叉,譬如实施时采用二级的某些KP再加上三级甚至四级的KP,但你只有实施了所有二级的KP,你才能也只能通过二级认证,即便你采用了某些四级的KP。CMM最新发展成果是CMMI(Integration),这主要是新考虑了软件与非纯软件因素的关系(譬如系统),以及团队之间的协作问题。CMM在国内的发展似乎有点走向ISO同样的道路,这实在不是一个好消息。

Callback Function: 回调函数

在侯sir的<<深入浅出>>中一开始就提出了这个概念,大概的提法是说回调函数是操作系统调用而你永远不要去调用的函数。这个提法让初学者有点望而生畏,以为是一种多么高深而难以领会的系统底层的核心技术。其实不然,这个技术本质很简单,而且很常用。它实质就是函数指针的基本运用(如果不知道什么是函数指针的话,翻翻书)。在一个模块中,有时想让一部分功能由其它模块实现,譬如说一个做显示的模块,它只想实现显示的资源配备,画面的刷新,缩放等控制功能,而把画具体实体(譬如圆、多边形,都可以有很多种不同效率的实现方法)的代码由别的模块来实现,怎么办呢?用函数指针。在自己的类中放一个画圆的函数指针,使用时由外部为这个函数指针赋值(其实就是指向了一个外部的函数),在自己的代码中直接调用这个函数指针来画就可以了(本模块完全不知道外部模块是怎么画圆的)。那个外部的函数在这里就是回调函数!

在很多系统API中就使用了这种函数回调的方法,让我们开发的代码实现可以嵌入到API的代码实现当中,其实我们就是传了一个函数地址给它而已。换句话说,这些API搭好了某些运行的代码框架,我们来为它具体实现。

XML: Extensible Markup Language 可扩充标记语言

也许你还在为选择.net和j2ee而徘徊不前,如果是这样的话,不妨先着手学一下它们所共通的一个基础:XML。有了HTML为什么我们还要XML?很简单,HTML重在表现文本/图片以及一些多媒体内容,它很难表达数据,因为它的标记是固定的,而数据类型千千万,根本无法描述。.net和j2ee都要解决一个信息传输格式标准化的难题,这个格式要能承载文本/数据,最好还能描述程序接口,同时又应该像HTML一样简单,具有通用性,能够在HTTP下很好的运作。在这种要求下,XML产生了。它的特点正如其名,和HTTP一样,它也是一种标记语言,但是它的标记不是固定的,是可自定义(也就可无限扩展)的,这些自定义标记能够很好的描述数据类型以及对应的数据内容(乍看起来很像数据库表的定义)。除此以外,XML还可以描述程序接口,所以XML 可以方便地与网络程序构件(COM、EJB等)直接交互。由于它也是一种ASCII文本

流,所以与当前的HTTP兼容,在当前的internet上畅通无阻(这很重要)。有了以上功能,XML就名副其实地成为了新一代互联网技术的标准信息载体,在.net和j2ee的网络架构中,各种“构件”的信息交互都交给了XML,可谓任重而道远。

XML我自己没怎么写过,单就学习上的经验而言,感觉语法上比HTML更琐碎一些,小细节更多,没那么容易速成:)好在根本同源,有HTML基础甚至WEB开发基础的,学起来也很轻松。

Java2:

这是近几年最吸引大众焦点的语言,在Web开发,网络平台,移动开发的世界里发光发热。你可以不用java,但你不可以不了解java,毕竟这是一个极大且丰富的软件开发领域。有些没使用过java的VS阵营里的人可能还不明白java2里的那个2是什么意思,容我先解释一下。Java最初正式推出1.0时,并没有受到如此多的好评,受到颇多责难,于是它不断地推出新版本来完善自己,其中变化显著的一个版本是 1.2(我没记错吧),Java的每一个新版本除了语法上的更新,还有一明显的标志,那就是JDK(Java Development Kit,就是Java自带的一套SDK)的更新,版本1.2以后的java为了在宣传上与以前的java相区别,便被称为java2。目前用得比较多的jdk是1.3/1.4 ,最新的JDK 是1.5(代号tiger)。java开发的IDE国内主要以JBuilder为主,另外就是在开源领域如雷贯耳的Eclipse,而sun也力推自己的开源java IDE:Netbeans(从sun的网站上可下载,免费)。Java运行是虚拟机机制,相当于在操作系统上增加了一个软操作系统,源码被编译成一种字节中间码,由虚拟机解释执行,只要有对应的虚拟机,java程序就可以在该操作系统上运行,这就是java号称的一次编译,到处运行的由来。而附带而来的不可避免的性能问题也让Java难以成为桌面程序开发的主流。补充一下:对初学者学习而言最好的Java IDE我推荐使用JCreator,这是一个C++写成的IDE,几MB的大小,比Eclipse快十倍以上的启动速度,对初学者带来极大的便利。

J2EE:

Java实际上又被分为3类:J2EE/J2SE/J2ME,不同类分别对应不同的JDK,J2EE针对企业平台开发,J2SE是标准版,J2ME针对移动平台开发。J2EE现在实在是热得烫手,我前不久翻了一下程序员早期的杂志,发现在第一期创刊号里(2001.1)已经有了j2EE 方面的讨论,现在已经是2004.6了,你对它的认知又多了多少?J2EE不是一种单纯的技术,而是一种体系架构以及组成该架构的诸多标准。企业平台开发和桌面/简单Web 数据库开发有很大的不同,它的程序规模往往很大(不是一个或者几个EXE可以搞定的),用到的往往是海量的数据库和海量的通信,并且常常是不可中断的,这些特殊性都使得企业平台开发更多地去关注架构的问题。而我们写一个熟悉的java客户端程序,或者消息处理中间件,又或者数据库处理程序,都只是这样一个架构里的一小部分。J2EE 是很宠大的,所以请不要写了几个EJB(这是java世界里的构件,概念上大概是类似于COM)的例子程序就感觉自己精通j2EE。

J2EE中传递消息时往往引入了一个被称作消息管理器的中间件,在服务器端使用EJB的容器来管理和调用EJB。在J2EE中一个重要的概念是Transaction(事务)处理,事务的概念最早广泛应用于数据库技术。这实际上是一个封装了很多操作的单元,它的作用是中间任何一个操作失败,可以自动依次整体撤销,所以一个transaction就是操作成功/失败的最小单元,不存在一个transaction只成功了部分操作的情况。

在企业服务平台开发中比较知名的有一个叫BEA公司(这是一家不错的公司,应该知道它的名字),它的产品是Weblogic。

.net

.net是微软为下一个十年准备的技术,你呢?.net也是一种平台技术,而不是单一技术。它主要分为.net运行时平台(对应java的虚拟机)和.net类库(对应java的jdk)。目前只有Windows2003是天然集成了.net运行时平台的操作系统,所以如是你写的.net 程序想要在别的操作系统上运行,该操作系统必须先安装.net平台,这是一件蛮烦人的事,也是为什么到目前为止,还没有太多的人改用.net来写程序(尽管可极大提高开发效率)。希望Longhorn的出现可以扭转这一现状。那我们就终于可以和MFC这样过时的框架类库说再见了,一大快事。

.net采用了很多最新的技术和思想,对走VS路线的人来说(特别是有COM概念的),学起来相对轻松且很过瘾,前人推荐的“.net框架程序设计“和”.net本质论“都是很好的书。当然,看它们之前你最好基本掌握一门.net语言,譬如C#,掌握语言对我们来说是最easy的。

有哪些靠谱的软件开发公司

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 软件开发可划分为6个阶段 1、对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。

2、软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。

教师资格证高等教育学习题及答案:名词解释

1.教育方针:国家在一定历史时期,根据社会政治经济发展的需要和基本的国情,通过一定的立法程序,为教育事业确立总的工作方向和奋斗目标,是教育政策的总概括。 2.高等教育:高等教育是在完全中等教育基础上进行的专业教育,是培养各类高级专门人才的社会活动。 3.教育目的:各级各类教育培养人的总的质量目标和总的规格要求。 4.高等教育的目的:各级各类高等院校培养人的总的质量目标和总的规格要求。 5.我国的教育方针:坚持教育为社会主义现代化建设服务,为人民服务,与生产劳动和社会实践相结合,培养德、智、体、美全面发展的社会主义建设者和接班人。 6.个人本位论:以个人为中心的价值观强调,高等教育目的在于促进作为个人的个性和理性的发展,即培养全面和谐的人。 7.社会本位论:以社会为中心的价值观强调,高等教育的目的在于直接满足社会的现实需要. 8.高校教师聘任制:根据教学与科研任务的需要,高校设立何种工作岗位,采取何种方式聘任教师,并规定受聘者应具备哪些条件和承担哪些责任和义务的制度。 9.高等学校的学制:一个国家各级各类高等学校的系统。 10.专业:专业是高等学校根据社会专业分工需要和学科体系的内在逻辑而划分的学科门类。 11.教学过程:教学过程是学生在教师的引导下,系统学习科学文化基础知识和掌握基本技能,同时发展智力和体力,树立辩证唯物主义世界观和社会主义道德品质的过程。 12.高校教学计划:按照高等学校培养目标制定的指导教与学活动的规范性文件。//体现了社会对某一种专业人才培养规格的基本要求,是学校组织和管理教学工作的主要依据。 13.教学大纲:以系统和连贯的形式,按章节、课题和条目叙述该学科的主要内容的教学指导文件。一般分说明、正文和附录三部分。 14.学年制:按学年或学期排定的课程进度进行教学,以学年规定学生达到的水平的教学制度。 15.学分制:与学年制相对应,衡量某一种教学过程对完成学位要求所贡献的一种管理方法,也是计算学生学习进程或学习份量的一种方法、手段或尺度。 16.通才教育:通才教育是一种通识教育,其目的是为了培养具有高尚情操,有高深学问、有高级思维,能自我激励、自我发展的人才。

几种常用软件开发工具比较

几种常用软件开发工具比较(2008-10-27 10:11:59) 标签:职场it [转]近日和公司的系统分析员探讨了几种开发工具的特性,由其总结了下面的内容。 文章客观评价了各种开发工具的优缺点,本人把文章拿来和大家一起讨论一下,欢迎专业人事补充和指正。 一、跨平台特性 VB:无★ PB:WINDOWS家族, Solaris,Macintosh ★★★ C++ Builder/Dephi:WINDOWS家族,Linux ★★★ VC:无★ JAVA:所有能够运行JAVA虚拟机的操作系统★★★★ 二、组件技术支持 VB:COM,ActiveX ★★★ PB:COM,JavaBean,Jaguar,UserObject使用:CORBA+Acti veX ★★★ C++ Builder/Dephi:COM, ActiveX CORBA(本身自带CORBA中间件VisiBroker,有丰富向导)★★★★★ VC:COM,ActiveX,CORBA(没有任何IDE支持,是所有C编译器的功能,需要CORBA中间件支持) ★★★ JAVA:JavaBean,CORBA;ActiveX ★★★★ 三、数据库支持级别 数据访问对象: VB:DAO,ADO,RDO功能相仿;★ PB:Transaction,DwControl,可绑定任何SQL语句和存储过程,数据访问具有无与比拟的灵活性★★★★ C++ Builder/Dephi:具有包括DataSource,Table,Query,Midas,ADO在内的二十多个组件和类完成数据访问★★★ VC:同VB,但有不少类库可供使用,但极不方便,开发效率很低★★ JAVA:JAVA JDBC API,不同的IDE具有不同的组件★★ 数据表现对象: VB:DBGriD,与数据库相关的数据表现控件只有此一种,只能表现简单表格数据,表现手段单一★ PB:DataWindow对象(功能异常强大,其资源描述语句构成类似HTML的另外一种语言,可在其中插入任何对象,具有包括DBGrid在内的数百种数据表现方法),只此一项功能就注定了PB在数据库的功能从诞生的那 一天起就远远超过了某些开发工具今天的水平★★★★★ C++ Builder/Dephi:具有包括DBGrid,DBNavigator,DBEdit,DBLookupListBox在内的15 个数据感知组件,DecisionCube,DecisionQuery在内的6个数据仓库组件和包括QRChart, QRExpr在内的20多个报表组建,可灵活表现数据★★★

秋季学期教师专业发展第二次作业答案

秋季学期《教师专业发展》第二次作业答案 一、名词解释(每小题5分) 1.教师合作——所谓教师合作,就是教师们为了改善学校教育实践,以自愿、平等的方式,就共同感兴趣的问题,共同探讨解决的办法,从而形成的一种批判性互动关系。 2.教师文化—根据加拿大学者哈格里夫斯(Hargreaves, A.)的论述,对教师文化概念的理解,应从“内容”和“形式”两个方面进行。所谓教师文化的内容,是指在一个特定的教师团体内,或者在更加广泛的教师社群之间,各成员共享的实质性的态度、价值、信念、假设和处事方式等;所谓教师文化的形式,是指教师与同事之间具有典型意义的相互关系的类型和联系的方式。 3.实践性知识——所谓实践性知识,是教师真正信奉的,并在其教育教学实践中实际使用和(或)表现出来的对教育教学的认识。它包括教师的教育信念、教师的自我知识、教师的人际知识、教师的情境知识、教师的策略性知识、教师的批判反思知识等。 4.批判性思维——泛指个人对某一现象和事物之长短利弊的评断,它要求人们对所判断的现象和事物有其独立的,综合的,有建设意义的见解。 5.(加德纳的)多元智能理论——1983年,加德纳提出了多元智能理论。根据加德纳的理论,智力是多方面的,并且有多种表现形式。加德纳确定了七种人类智力:语言智力、数学逻辑智力、空间智力、躯体运动智力、音乐智力、社交能力。加德纳最近又增加了自然智力,作为第八种智力。在他看来,这些智力都不是独立存在的,而是总是相互作用的。6.教师职业道德——教师职业道德,简称师德,是指教师在从事教育劳动过程中所应遵循的调整教师与学生、教师与教师之间关系的比较稳定的行为规范和应具备的道德品质。作为职业道德的一种表现形式,它是一定社会或阶级对教师职业行为的基本要求的概括。 7.探究性教学——探究性教学由英文“inquiry learning”翻译而来,它最初由美国生物学家、课程专家施瓦布提出。按照施瓦布的定义,探究性教学即是指儿童通过自主地参与获得知识的过程,掌握研究自然所必须的探究能力;同时形成认识自然的基础——科学概念;进而培养探索未来世界的积极态度。根据美国《国家科学教育标准》的表述,“探究性教学”也包含了“科学探究”在科学教育中的含义,即探究性教学是对“科学探究”的探究,也即探究性教学是要让学生像科学家从事科学研究那样未学习科学,领悟科学研究的直谛。8.人本化学生观——人本化学生观至少包括三个方面的含义:其一,学生是发展中的人。学生是不断成长发展的个体,具有巨大的发展潜能;其二,学生是独特的人。把学生看作是单纯抽象的学习者是错误的,学生是有着丰富个性的完整的人。其三,学生是具有自主性的人。学生是学习的主体,他们有权利、有能力就自己的学习做出合理的决定,教师不能代替他们读书、求知,不能代替他们发展自我。教师应该充分尊重学生的自主性,为充分发挥学生的自主性营造和谐的氛围和创造便利的条件。 9.教育机智——教育机智就是教师在特定的教育情境中,依据学生的具体情况,选择能对学生施加积极的教育影响、促进学生全面发展的手段,并作出符合各种具体教育情境的教育决策和付诸实施的能力。 二、简答题(每小题5分) 1.合作对于促进教师专业发展有何重要意义? 答:合作对教师专业发展的意义:(1)合作有助于教师发展意愿的激发与强化。(2)合作有助于教师个体反思能力的提高;(3)合作有助于促进学校组织学习。合作有助于教师的个人知识、实践知识的总结和推广;合作有助于学校组织文化的形成、传授与变革。

几种软件开发工具的区别

java、c、c++、vc、vc++、vb的区别和联系 java:分三大平台java se (j2se),java ee(j2ee),java me(j2me) java se是java ee和java me的基础 java ee是目前位置企业级开发平台中最牛的 java me是用来开发移动嵌入式程序的,例如手机游戏 java 的优点是非常适合用于开发大型企业级项目,我们曾为网通公司开发过的上千万级的项目,用的后台程序就是java ee。 java的主要领域还有开源技术,那要学的东西就太多了,比如(Spring,Ibatis,DWR,Hibernate,Tapestry等) 缺点是要学的技术太多,二是在底层开发中不行 C:经久不衰的语言 主要应用在嵌入式编程,硬件驱动程序设计中,说白了是计算机底层的编程设计 优点是可以嵌入汇编,可以直接与硬件打交道,做底层开发 缺点是在企业级开发中,几乎无用武之地 我朋友是做这个的,在长沙这种小地方,年薪也能达到10万以上 与北京的java程序员收入差不多 在北京的话,年薪20万不是大问题。 c++ :我非常钦慕的语言,又AT&T的贝尔实验室研发 主要开发工具是微软的Visual C++和Borload的BCB(Borload C++ Builder) 优点在于含有大量的库,如MFC,可直接调用windows库函数干很多事情 其中的消息处理机制令我感觉尤为经典 缺点是,要想精通真不容易 主要领域一是做桌面程序,像QQ,迅雷这种桌面软件 领域二是做游戏后台开发,大部分游戏(包括魔兽等)后台语言就是使用C++ 精通的话,收入和C程序员差不多 vc :刚说过了,vc全名是(Microsoft Visual C++) 是微软研发的一种开发C++的开发工具(IDE) vc++:同vc 注意c++是语言,vc++是工具,是一门使用c++语言的工具,记清楚,以后不要问这样肤浅的话。 以上几种,对比一下学java,学的不仅仅是技术,而是一种思想,架构项目的思想 所以java是培养架构师,培养System Designer,Project Manager的 c语言和c++只能培养技术专家,资深程序员 vb:曾经很流行的一种桌面程序开发技术 微软研发的(Visual Basic)是一种工具,用的语言是Basic Basic是比尔盖兹发家致富的一大工具

软件开发文档范例

文档编号:_________ _________ 文档名称:____________ 项目名称:____________ 项目负责人:____________ 编写:___________ ____年__月__日 校对:___________ ____年__月__日 审核:___________ ____年__月__日 批准:___________ ____年__月__日

开发单位:传讯网络信息 ________________________ 系统规格说明 一、系统功能和目标: 随着因特网的不断普及,国的用户数呈指数级增长。作为因特网最为常用的电子系统越来越受到人们的喜爱,为了满足不断增长的信息交换的需要,各行各业都希望有自己的系统。传讯网络信息自主设计开发了适合中国国情的免费电子系统,用以解决这一日益突出的问题。CHINATION 免费电子系统是专为免费电子服务商、企业集团设计的电子系统。 Chination免费电子系统的设计目标是立足于一个高度集成的、功能强大、技术先进的电子系统。高度集成意味着本系统将把硬盘软件集成在一起。系统是基于LINUX下的,硬盘和软件的集成使得系统具有绝对的安装优势。功能强大意味着系统的实用性,功能的全面性,系统的安全性和可靠性。技术先进意味着将最新版本的LDAP,IMAP,POSTFIX,MYSQL,APACHE和PHP的巧妙结合。 本系统要实现的主要功能有:

1.用户申请注册功能。用户通过申请可以得到一个自己命名的信箱,容量大小为10M。 2.用户忘记密码处理功能。用户忘记密码可以通过注册时设置的密码提示问题来重设密码。 3.用户收功能。它包括SMTP收、POP3取和WWW读三种方式。 4.用户发功能。它包括SMTP发、WWW直接发送、暗送、抄送、定时发送。 5.用户信件处理功能。系统初始设置4个文件夹来分类处理信件:收件箱、发件箱、草稿箱和垃圾箱。用户还可以自己建立新的文件夹。信件在各个信箱之间可以相互移动。 6.用户查找功能。用户可以使用查找功能通过查找信件主题或信件容来找到自己需要的信件。 7.用户信箱配置设置。它包括个人资料更改、密码更改、参数设置、POP3服务器设置、过滤器设置、自动转信、定时发信、签名设置。 8.管理员管理用户和信箱功能。包括输入(增删改)、查询、统计、报表。系统性能参数设置。 9.广播功能。它用于公司定期向一定的用户发送信息,由于一般的用户数有一定数量,所以必须用数据库管。 二、可行性分析 1.技术可行性 本软件拟决定最终在分布式系统上来运行。硬件方面,由于传讯网络信息是国外多家公司并行处理产品的代理商,而且自己本身拥有ALPHA机等先进设备,所以有足够能力开发出先进的电子系统。软件方面,我们拟采用以下几种软件: 1)操作系统用LINUX。Linux作为一个优秀的网络操作系统,它的发行版本中集成了大量的网络应用软件,如Web服务器(apache)、Ftp服务器(wu-ftp)、服务器(sendmail+imap4)、SQL数据库(postgresql)等,可以快速的构建Intranet环境,并且也有精致的收发程序(metamail)和强大的Web 服务器端开发工具(PHP4)。当你配置好sendmail并激活imapd后,你的Linux用户都可以使用Outlook等客户端软件进行收发,只要通过将它们集中进行应用,便可以实现一个简单的Webmail 服务器的功能。但是随着自由软件的不断开发,要构架一个好的电子系统,就面临着软件选择是否适当、性能是否比别人好的问题。下面列出我们所使用的软件。 2)本系统壳软件用imap。有几种方法可以构造电子系统的壳:共享文件系统的策略,基于局域网的专用协议,X.400P7协议和因特网消息存取协议。而基于INTERNET的协议主要有:POP (Post Office Protocol), DMSP (Distributed Mail System Protocol), 和IMAP (Internet Message Access Protocol).POP是最原始,最为人们所知的一种。DMSP仅局限于一个简单应用——PCMAIL,它的优点主要在于对脱机状态操作的支持。IMAP不但继承了POP和DMSP的优点,而且超越了他们的缺点,提供了三种状态下对远程信箱的访问:在线、不连接和脱机状态。在脱机状态,可以发送到一个共享的服务器,但是客户并不是马上全部把它们COPY过去之后在服务器上删掉它们,

《教师专业发展》第一次作业答案

《教师专业发展》第一次作业答案一、名词解释(每小题5分) 1.教师角色——所谓教师角 色是指处在教育系统中的教师 所表现出来的由其特殊地位决 定的符合社会对教师期望的行 为模式。 2.教师专业化——具体来讲 是指教师个体专业水平提高的 过程以及教师群体为争取教师 职业的专业地位而进行努力的 过程,前者是指个体专业化, 后者是指职业专业化,二者共 同构成了教师专业化。 3.专业自主权——初任教师 ——所谓专业自主权是指专业 成员不受专业外势力的控制与 限定,有权做出“自主的”职业 判断。 4.教师专业发展——是教师 个体的专业成长或教师内在专 业发展结构不断更新、演进和 丰富的过程。 5.入职教育——就是新教师 从受聘上岗到转正前这一段时 期所接受的指导和训练。这是 新教师过渡、体验、培养责任 感和使命感、更快进入学校文 化系统扮演职业角色的重要环 节。 6.职业倦怠——是个体因不 能有效地缓解工作压力或妥善 地应付工作中的挫折所经历的 身心疲惫的状态。 7.反思日记法——反思日记 法是指教师以写教学日记的方 式来促进其反思型能力的发 展。日记的内容通常包括教师 自己在教学过程中的所思、所 感、所知、所做,并对为什么 要做某事的原因进行反思,从 中得出结论。这种方法对于教 师改善教学,提高教育质量和 专业发展水平等大有裨益。 8.微格教学法——微格教学 法是20世纪60、70年代兴 起于西方的一种教师教育方 法。它最初用于训练师范生和 在职教师掌握课堂教学基本技 能,当今又应用于教师教育教 学经验总结和课堂研究等方 面。在实践中,它是把教师的 教学活动进行录像,然后重放 录像,教师和有关人员边看边 评议,分析问题,设想解决问 题的办法。它对促进教师的反 思和专业发展具有重要意义。 9.教师反思——教师反思是指教师在教学过程中,将自我 和整个教学活动本身作为意识 的对象,不断地对自我及教学 进行积极、主动的计划、检查、 评价、反馈、控制和调节的过 程。 二、简答题(每小题5分) 1.教师角色有哪些特点? 答:教师角色具有这样一些基 本特点:教师角色具有自主性; 教师角色具有个体创造性;教 师角色具有人格化特征;教师 角色具有多样性和发展性;教 师角色具有弥散性和模糊性。 2.当代西方对教师角色是如何 定位的? 答:当代西方是从多个纬度对 教师角色进行定位的:①经济 全球化背景下的教师角色—— 教师的职责更为突出地表现为 市场经济培育应用型人才,是 具有“全球化思维”品质、能包 容多种文化和从事多元文化教 学的人;②民族国家中的教师 角色——政治家、知识分子、 社会公共文化和个人文化之间 的传递者、社会上最重要的行 动者等;③教育改革中的教师 角色——教育改革的参与者和 决策者,是“改革派知识分子”、 “改革的行动者”。④学校情境 中的教师角色——“教师作为 管理者”和“教师作为决策者”; ⑤中小学教师的课堂教学角色 ——“教学专家”、学生学习的 “促进者”“和激发者”、“艺术 家”和“演员”、“环境工程师” 等;⑥教师的自我职业角色 ——“自我发展者”、“反思型实 践者” 等。 3.谈一谈对教师专业化理念的 理解。 答:教师专业化,简而言之, 就是指教师在整个专业生涯 中,通过终身的专业训练,习 得教育专业知识技能,实施专 业自主,表现专业道德,并逐 步提高自身从教素质,成为一 个良好的教育专业工作者的专 业成长过程。这一过程应是连 续不断的深化发展过程,是动 态的、多方面的变化过程,它既 是教师认识过程的不断变化发 展,又是教师情感、意志、个性 等方面的不断变化发展,是教 师职业生涯成熟的过程。也有 的学者认为,教师的专业化可 以从两个方面来理解——广义 的专业化 (professionalization)和狭 义的专业化 (professionalism)。广义的 专业化指的是改善专业人员的 能力,使他们的知识合理化, 它主要关心教师在对学生展开 教育行为时运用了多大程度的 专业知识和技术,它将教师的 专业知识与专业实践结合起来 审视教师的专业化问题,关注 教师的“任务”、“角色”、或“实 践”;狭义的专业化指的是从集 体的前途和战略出发,提高一 种专业的社会地位,它着眼于 教学工作在多大程度上获得了 作为专业性职业的地位。此外, 也有学者从教师个体的专业化 与教师群体的专业化的角度来 认识教师的专业化问题。他们 认为,教师的专业化具体来讲 是指教师个体专业水平提高的 过程以及教师群体为争取教师 职业的专业地位而进行努力的 过程,前者是指个体专业化, 后者是指职业专业化,二者共 同构成了教师专业化。但是, 教师专业化最终体现于个体专 业发展的水平,依赖于个体专 业发展的追求。 4.简述初任教师的专业发展特 征。 答:初任教师在入职段通常要 经历两个发展阶段:适应期和 发奋期。(1)初任教师在“适应 期”所表现出的专业特征如下: 适应期通常是初任教师受聘于 一所学校从事教学工作的第一 年。这个时期的初任教师的主 要专业特征为“求适应,求生 存”。在此阶段的教师,刚踏入 一个新的环境,再加上没有太 多的实际教学经验,对教学活 动及环境只有非常有限的知 识,因此,对于所面对的各种 事物都在适应之中。所以在此 阶段,教师所关注的首先是自 己的生存问题,即能否适应新 环境并在这个新环境中生存下 来,为此每一位新任教师通常 都会努力寻求学生、同事、督 导人员的接纳,并设法在处理 每日问题和事务时获得被肯定 的信心。此外,教师不仅关切 自己的生存问题,而且会发现 他们所预想的成功与教学实际 状况之间存在着差距,也就是 说,初任教师往往会经历一种 “现实的冲击”。(2)初任教师 在“发奋期”所表现出的专业特 征如下:“发奋期”大约是从初 任教师从教的第二年开始到第 四年。这个时期的主要特征是: 发愤图强,大量学习,以便尽快 成为一个“胜任教师”。在此阶 段的教师会努力增进和充实与 教育相关的知识,并注意提高 教学技巧与能力,设法获得新 的信息、材料、方法和策略。 5.教师专业发展结构包括哪些 方面? 答:教师专业发展的结构应重 点包括以下一些方面:(1)专 业理念。教师具有的教育理念 反映的是教师对教育、学生及 学习等的看法,它指导着教师 的教育教学行为,统摄着教师 专业发展结构的其他方面。(2) 专业知识。主要包括广博的普 通文化知识、系统的学科专业 知识(本体性知识)、坚实的教 育专业知识(条件性知识)、实 践性知识、边缘学科知识和新 学科知识、最新科学技术和社 会科学信息、多元学科知识结 构。(3)专业能力。教师的专 业能力是教师专业发展结构中 的一个重要组成部分。有的学 者认为,教师的专业能力应包 括思维条理性、逻辑性,口头 表达能力与组织教学能力。有 的学者认为,教师应具有信息 的组织与转化能力、信息的传 递能力、运用多种教学手段的 能力、接受信息的能力,等等。 (4)专业态度与动机。教师的 专业态度与动机是教师的专业 活动和行为的动力系统,涉及 到教师的职业理想、对教师专 业的热爱程度(态度)、工作的 积极性能否维持(专业动机) 和某种程度的专业动机能否继 续(职业满意度)等方面的问 题。 6.简述费斯勒的教师发展阶段 论。 答:美国学者费斯勒于1985 年推出了一套动态的教师生涯 循环理论。在对该理论的研究 过程中,费斯勒将教师的发展 分为八个阶段:(1)职前阶段 (Pre-survive),指教师在大 学或师范学院进行的职前培养 阶段,也包括在职教师从事新 角色或新工作的再培训的阶 段;(2)入职阶段 1 / 2

软件开发文档模板

软件开发文档模板 1 可行性研究报告 可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能先择的各种方案;说明论证所选定的方案。可行性研究报告的编写内容要求如下: 1.1 引言 1.1.1 编写目的 1.1.2 背景 1.1.3 定义 1.1.4 参考资料 1.2 可行性研究的前提 1.2.1 要求 1.2.2 目标 1.2.3 条件、假定和限制 1.2.4 进行可行性研究的方法 1.2.5 评价尺度 1.3 对现有系统的分析 1.3.1 数据流程和处理流程 1.3.2 工作负荷 1.3.3 费用开支 1.3.4 人员 1.3.5 设备 1.3.6 局限性 1.4 所建议的系统 1.4.1 对所建议系统的说明 1.4.2 数据流程各处理流程 1.4.3 改进之处 1.4.4 影响 1.4.4.1 对象设备的影响 1.4.4.2 对软件的影响 1.4.4.3 对用户单位机构的影响 1.4.4.4 对系统动行的影响 1.4.4.5 对开发的影响 1.4.4.6 对地点和设施的影响 1.4.4.7 对经费开支的影响 1.4.5 局限性 1.4.6 技术条件方面的可行性 1.5 可选择其他系统方案 1.5.1 可选择的系统方案 1 1.5.2 可选择的系统方案 2 …… 1.6 投资及收益分析 1.6.1 支出 1.6.1.1 基本建设投资

1.6.1.2 其他一次性支出 1.6.1.3 非一次性支出 1.6.2 收益 1.6. 2.1 一次性收益 1.6. 2.2 非一次性收益 1.6. 2.3 不可定量的收益 1.6.3 收益/投资比 1.6.4 投资回收周期 1.6.5 敏感性分析 1.7 社会条件方面的可行性 1.7.1 法律方面的可行性 1.7.2 使用方面的可行性 1.8 结论 2 项目开发计划 编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度所需经费预算、所需软、硬件条件等问题作出安排记载下来,以便根据本计划开展和检查本项目的开发工作。编制内容要求如下: 2.1 引言 2.1.1 编写目的 2.1.2 背景 2.1.3 定义 2.1.4 参考资料 2.2 项目概述 2.2.1 工作内容 2.2.2 主要参加人员 2.2.3 产品及成果 2.2. 3.1 程序 2.2. 3.2 文件 2.2. 3.3 服务 2.2. 3.4 非移交产品 2.2.4 验收标准 2.2.5 完成项目的最迟期限 2.2.6 本计划的审查者与批准者 2.3 实施总计划 2.3.1 工作任务的分解 2.3.2 接口人员 2.3.3 进度 2.3.4 预算 2.3.5 关键问题 2.4 支持条件 2.4.1 计算机系统支持 2.4.2 需要用户承担的工作 2.4.3 需由外单位提供的条件 2.5 专题计划要点

教育学基础名词解释

教育学基础名词解释汇总 第一章教育与教育学 教育(期末重点+真题) 是在一定社会背景下发生的促使个体的社会化和社会的个体化的实践活动。 教育要素(考研真题) 作为在一定社会背景下发生的促使个体的社会化和社会的个体化的实践活动,教育是一个相对独立的社会子系统,这个子系统包括三种要素——“教育者”、“学习者”和教育影响。深入地认识这三个要素,一个方面对“教育”概念认识的一个深化,另一方面也为教育形态的认识提供了概念基础。 教育者 是指能够在一定社会背景下促使个体社会化和社会个体化活动的人。 教育影响(期末重点) 教育活动中教育者作用于学习者的全部信息,既包括信息的内容,也包括信息选择、传递和反馈的形式,是形式与内容的统一。 非制度化的教育 是指那些没有能够形成相对独立的教育形式的教育。这种教育是与生产或生活高度一体化的,没有从日常的生产或生活中分离出来成为一种相对独立的社会机构及其制度化行为。 制度化教育 是从非制度化的教育中演化而来的,是指由专业的教育人员、机构及其运行制度所构成的教育形态。 家庭教育 是指家庭为单位进行的教育活动。 学校教育(期末重点+考研真题) 是指学校为单位进行的教育活动,是依据一定的社会现实和未来的发展需要,遵循年轻一代的身心发展规律,有目的、有纪律、有组织地引导受教育者获得知识技能,陶冶思想品德,发展智力、体力等一系列行为,以便把受教育者培养适应一定社会或阶段促进社会发展的人。 社会教育 是指在广泛的社会生活和生产过程中所进行的教育活动。

实验教育学(考研真题) 是19世纪末20世纪初在欧美一些国家兴起的用自然科学的实验法研究儿童发展及其与教育的关系的理论。 生物起源论 认为教育起源于各种动物的生存本能活动,代表人物有法国的里托尔诺和英国的沛西·能,其错误在于完全否认了人与动物的区别,否认了教育的社会性。 心理起源论 认为教育起源于儿童对成人无意识的模仿,代表人物有美国孟禄。它虽然纠正了生物起源论的错误,把教育归结为人类的行为,但它却归结为人类无意识的模仿行为,同样是错误的。生物起源论和心理起源论的错误都在于否认了教育的社会属性,即教育是自觉的有意识的活动。 劳动起源论 这是马克思的观点,认为教育起源于劳动,起源于劳动过程中社会生产需要和人的发展需要的辩证统一。依照马克思的观点,首先推动教育起源的直接动因是生产过程中人们需要传递生产和生活经验;其次也与人类自身的发展需要有关。 第二章教育功能 教育功能(考研真题) 是教育活动和教育系统对个体发展和社会发展所产生的各种影响和作用。 教育的个体功能 是教育本质和教育目的的体现,也被称为教育的本体功能。 教育的社会功能 教育的社会功能表现在教育对其他社会子系统的作用。 教育的正功能 是教育在促进社会和人发展上所产生的积极效果。 教育的负功能 是指教育与教育目标、教育主体愿望相反的效果。 教育的本体功能: 指教育自身直接具有的功能,即教育的职能(教育自身具有的能力或承担的职责)。 第三章教育目的 教育目的(期末重点+考研真题) 教育意欲达到的归宿所在或所预期实现的结果。它是教育活动的出发点和归宿,本身就反映着办教育的主体对教育活动在努力方向、社会倾向性和人的培养规格标准等方面的要求和指向。

软件开发过程概述

第1章软件开发过程概述 1.1 软件开发过程概述 1.1.1 软件的概念 软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的所有文档的集合软件分为系统软件和应用软件。 软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。 1. 系统软件 系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。 一般来讲,系统软件包括操作系统和一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。 2. 应用软件 应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。较常见的有:文字处理软件如WPS、Word等;信息管理软件;辅助设计软件如AutoCAD ;实时控制软件;教育与娱乐软件。 1.1.2 编程与软件开发 软件开发的内容是:需求、设计、编程和测试。 (1)需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。 (2)设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。 (3)编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。

基于软件定制,软件公司介绍范例

亿赛德信息科技有限公司 作者:亿赛德软件 全国通用:4oo-o8o-o574 亿赛德信息科技有限公司是一家专业从事软件开发、软件定制、软件实施的高新技术企业。拥有一批长期专业从事软件开发、软件定制的专业人才,具有雄厚的技术开发实力,全方位满足政府与企业信息化需求。 公司非常重视企业的内部管理工作,市场销售、软件研发、技术支持是公司的三大核心部门,现已经建立了一套比较完善的管理体制。在客户服务方面,本着为客户服务的思想,设立了24小时产品咨询电话、24小时售后技术支持电话等多个无障碍通道,为客户提供了高质量的售前和售后的服务,为亿赛德软件“‘软硬’融合之剑,开辟信息创新之路!”的目标提供了强有力的支持。 公司主营业务包括软件外包、软件定制开发、系统维护、OA办公系统、手机软件定制等等。 亿赛德软件领域经过十多年的经验积累,总结出了针对各行业、不同规模和不同阶段的企业信息化解决方案,我们的项目实施团队能够更加准确快捷地找出客户的具体需求,为您的企业度身定做真正切合实际需求的解决方案。我们实施方面多年的实践积累与将为您的企业带来最大投资回报。 亿赛德提供符合软件整个开发生命周期的过程服务。 亿赛德提供的服务:定制应用开发,实施电子商务网站,移动和无线应用发展,垂直搜索引擎等。 亿赛德提供产品:楼宇能耗系统、4S店管理软件综合平台、大型门户软件、项目综合管理系统、车辆GPS跟踪定位系统、育苗工厂无线监管系统、无线生产流程管理系统、工资核算管理系统、外贸订单跟踪管理系统、移动外勤管理平台、政府内外网、行业门户软件、垂直及时搜索引擎等。 配套的硬件包括:手机系统、条码技术、RFID技术、短信猫、GPRS传输、手持机、触摸屏、采集器、能源监测等多种配套硬件。 服务理念:技术为本,服务制胜 客户的感动源于我们高度的责任感、敬业精神与专业素质。帮助客户不断创造价值,才能实现自身价值的升华,亿赛德软件助力您企业的发展,实现共赢。

开发文档介绍

开发文档介绍 软件开发文档是软件开发使用和维护过程中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料。 软件文档可以分为开发文档和产品文档两大类。 开发文档包括:《功能要求》、《投标方案》、《需求分析》、《技术分析》、《系统分析》、《数据库文档》、《功能函数文档》、《界面文档》、《编译手册》、《QA 文档》、《项目总结》等。产品文档包括:《产品简介》、《产品演示》、《疑问解答》、《功能介绍》、《技术白皮书》、《评测报告》。用户文档《安装手册》、《使用手册》、《维护手册》、《用户报告》、《销售培训》等。 开发文档 1. 《功能要求》-- 来源于客户要求和市场调查,是软件开发中最早期的一个环节。 客户提出一个模糊的功能概念,或者要求解决一个实际问题,或者参照同类软件的一个功能。有软件经验的客户还会提供比较详细的技术规范书,把他们的要求全部列表书写在文档中,必要时加以图表解说。这份文档是需求分析的基础。 2. 《投标方案》-- 根据用户的功能要求,经过与招标方沟通和确认,技术人员开 始书写《投标方案》,方案书一般包括以下几个重要的章节:前言-- 项目背景、公司背景和业务、技术人员结构、公司的成功案例介绍等。需求分析-- 项目要求、软件结构、功能列表、功能描述、注意事项等。技术方案-- 总体要求和指导思想、技术解决方案、软件开发平台、网络结构体系等。项目管理-- 描述公司的软件开发流程、工程实施服务、组织和人员分工、开发进度控制、软件质量保证、项目验收和人员培训、软件资料文档等。技术支持-- 公司的技术支持和服务介绍、服务宗旨和目标、服务级别和响应时间、技术服务区域、技术服务期限、授权用户联系人等。系统报价-- 软、硬件平台报价列表、软件开发费用、系统维护费用等。项目进度-- 整个项目的进度计划,包括签署合同、项目启动、需求分析、系统分析、程序开发、测试维护、系统集成、用户验收、用户培训等步骤的时间规划。 3. 《需求分析》-- 包括产品概述、主要概念、操作流程、功能列表和解说、注意 事项、系统环境等。以《功能要求》为基础,进行详细的功能分析( 包括客户提出的要求和根据开发经验建议的功能) ,列出本产品是什么,有什么特殊的概念,包括哪些功能分类,需要具备什么功能,该功能的操作如何,实现的时候该注意什么细节,客户有什么要求,系统运行环境的要求等。这里的功能描述跟以后的使用手册是一致的。 4. 《技术分析》-- 包括技术选型、技术比较、开发人员、关键技术问题的解决、 技术风险、技术升级方向、技术方案评价,竞争对手技术分析等。以《需求分析》为基础,进行详细的技术分析( 产品的性能和实现方法) ,列出本项目需要使用什么技术方案,为什么,有哪些技术问题要解决,估计开发期间会碰到什么困难,技术方案以后如何升级,对本项目的技术有什么评价等。 5. 《系统分析》-- 包括功能实现、模块组成、功能流程图、函数接口、数据字典、 软件开发需要考虑的各种问题等。以《需求分析》为基础,进行详细的系统分析( 产

教师招聘名词解释汇总

教育学及教育心理学概念 1.教育学 教育:有目的地增进人的知识与技能、发展人的智力与体力、影响人的思想观念的活动。 学校教育:狭义的教育主要指学校教育,是教育者根据一定的社会需要和受教育者身心发展规律,有目的、有计划、有组织地对受教育者的身心施加影响,促使其朝着所期望的方向发展。 教育学:研究教育现象和教育问题,揭示教育规律的科学。 个体身心发展:个体从生命开始到结束的全部人生过程,身心不断发生变化的过程,特别是只个人的身心向积极方面的变化。 广义的教育制度:国民教育制度,一个国家为实现其国民目的,从组织系统上建立起来的一切教育设施和有关制度。 学校教育制度:简称学制,指一个国家各级各类学校教育的系统,他规定各级各类学校的性质、任务、入学条件、修业年限以及他们之间的关系。 终身教育:人的一生中都应当和需要接受的各种教育。时间上的延展、空间上的包容 全民教育:人人都有接受教育的权利,且必须接受一定程度的教育。 义务教育:国家用法律的形式规定的,对一定适龄儿童、少年免费实施的某种程度的学校教育。国家、社会、学校、家庭都必须予以保证,具有一定的强制性。 基础教育:人们在成长中为了获取更多学问而在先期要掌握的知识。 教育结构:通常指包括基础教育、职业技术教育、高等教育、成人教育在内的各种不同类型和层次的学校组合和比例构成。 人力资本:人所拥有的诸如知识、技能等可以影响生产性工作的能力。 学校文化:学校全体成员或部分成员习得且共同具有的思想观念和行为方式。

教育现代化:基于传统教育,积极吸收国外优秀教育成果,创造适应大工业生产和社会生活方式的教育的历史变化。 教育内容:学校向学生传授的人类优秀经验的综合,它包括学校的课程、教材和教学辅导资料所含有的一切内容。 课外活动:学校为实现其教育目的,与课堂教学相配合,在课堂教学以外对学生身心实施影响的正规教育活动。 年龄特征:在发展的不同年龄阶段形成的一般的、典型的、本质的特征。 环境:围绕在人们的周围,对人的生存和生活起作用的因素,包括物质环境和精神环境。 最近发展区:前苏联心理学家维果斯基认为,儿童有两种发展水平,一是儿童的现有水平,二是儿童即将达到的发展水平,这两种水平之间的差异,即最近发展区。 身心发展的阶段性:个体在不同的年龄阶段表现出身心发展的不同的总体特征及主要矛盾,面临着不同的发展任务。 环境决定论:环境决定论认为儿童认知发展的原因在于后天,人的心理发展的差异90%是由教育决定的。 教育目的:指国家要把受教育者培养成为什么样人的总要求,他规定各级各类教育培养人的总的质量规格和标准要求。 培养目标:各级各类学校对所培养的人的具体要求。 教学目标:教育者在教学过程中,在完成某一阶段工作时,希望受教育者达到的特定要求或产生的预期变化。 教育方针:国家根据政治、经济和文化的要求,为实现教育目的所规定的教育工作总方向。 我国教育目的:以培养学生的创新精神和实践能力为重点,造就有理想、有道德、有文化、有纪律的德智体等全面发展的社会注意事业的建设者和接班人。《关于深化教育改革,全面推进素质教育的决定》 我国教育方针:教育必须为社会主义现代化建设服务,为人民服务,必须与劳动和社会实践相结合,培养德智体美全面发展的社会主义事业的建设者和接班人。——《国家中长期教育改革和发展规划纲要》

软件开发及培训

软件开发及文档培训 (仅供内部使用) 深圳市华为技术有限公司 版权所有侵权必究 1 软件开发过程介绍 华为公司的软件开发过程基本上由以下几个开发过程组成: ?系统需求分析过程 ?系统设计过程 ?软件需求分析过程 ?软件概要设计过程 ?软件详细设计过程 ?软件编码和单元测试过程 ?软件集成与集成测试过程 ?系统集成和系统集成测试过程 ?系统验收测试过程 ?软件维护过程

图一. 软件开发相关的过程示意图: 各软件开发过程中应该输出的文档如下 软件开发过程输出文档名称文档模板系统需求分析操作概念文档OCD 系统/子系统需求规格书SSS IRS 系统/子系统接口需求规 格书 系统结构设计系统/子系统设计描述SSDD IDD 系统/子系统接口设计描 述 软件需求分析软件需求规格书SRS 接口需求规格书IRS 软件概要设计软件设计描述SDD 接口设计描述IDD

数据库设计描述DBDD 软件详细设计 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2. 软件开发过程详细要求

系统需求分析 开发者应该根据以下要求参与系统需求分析。 注:如果一个系统分成多个版本开发,可能直到最后一个版本需求才能完全定义。开发者的计划中应该定义在每个版本中确定的需求子集,每个版本中实现的需求子集。某个版本的需求分析应该理解为定义那个版本的系统需求。 2.1.1 分析用户的输入 开发者应该通过分析用户的输入来理解用户的需求。这个输入的形式可能是需求报告单、调查、问题/修改报告,原型的反馈,访谈或其他用户或反馈。 2.1.2 操作概念 开发者应该参与定义和记录系统的操作概念。结果应该包括在《操作概念描述(OCD)》文档模板中的所有条目。 2.1.3 系统需求 开发者应该参与定义和记录系统应该满足的需求以及验证每个需求已经被满足的方法。结果应在包括《系统/子系统规格说明书(SSS)》中的所有可能的条目。根据实际情况,有关系统接口的需求可以在SSS中规定或者在《接口需求规格说明书(IRSs)》中规定。 注:如果一个系统由子系统组成,系统需求分析)中的活动应该同系统设计中的活动叠代进行。定义系统的需求,设计系统并定义它的子系统,定义这些子系统的需求,设计子系统并定义他们的部件,如此下去。 系统的设计 开发者应该按照下列要求参与系统的设计。 注:如果系统分成多个版本开发,系统的设计可能要等到最后一个版本才完成。开发者的计划中应该定义每个版本中所要完成的设计。一个特定版本的设计应理解为那个版本中应完成的设计内容。 2.2.1 系统范围的设计决定(System-wide design decisions) 开发者应该参与定义和记录系统范围的设计决定(这就是,有关系统运行设计和其它影响到系统部件选择、设计的决定)。结果应该包括《系统/子系统设计说明书(SSDD)》模板中有关系统范围设计决定的所有内容。根据实际情况,有关接口的设计可以包括在SSDD中或者《接口设计说明书》中,有关数据库的设计可以包括在SSDD或者《数据库设计说明书(DBDDs)》中。

相关主题
文本预览
相关文档 最新文档