软件开发专业技术名词的解释共15页文档

合集下载

(完整版)名词解释(软件工程)

(完整版)名词解释(软件工程)

三、名词解释1、软件:在计算机系统中,与硬件相互依存的逻辑部件,它由程序、数据及相关文档组成。

2、软件工程:是指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

3、数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

4、模块化:是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可能完成指定的功能满足问题的需求。

5、类:对具有相同数据和相同操作的一组相似对象的定义。

6、软件危机: 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

7、软件维护:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程.8、继承:子类自动地共享基类中定义的数据和方法的机制.9、投资回收期: 就是使累计的经济效果等于最初投资的需要的时间。

10、结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。

11、软件的生命周期:一个软件从定义、开发、使用和维护,直到最终被废弃所经历的一系列时期。

12、投资回收期:就是使累计的经济效果等于最初投资的需要的时间。

13、结构化分析方法:就是面向数据流自顶向下逐步求精进行需求分析的方法。

14、模块:数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问。

15、宽度:是软件结构内同一个层次上的模块总数的最大值。

16、事务流:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。

这类数据流应该划分为一类特殊的数据流,称为事务流。

17、耦合:衡量不同模块彼此间互相依赖的紧密程度。

18、事件:是某个特定时刻所发生的事情,它是对引起对象从一种状态转换到另一种状态的现实世界中的事件的抽象。

19、函数重载:指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。

名词解释题

名词解释题

第1章名词解释1、软件开发工具:在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各阶段,对软件开发者提供各种不同程度帮助(支持)的一类广泛的软件。

2、第一代语言:即机器语言,是用0、1组成的二进制字符串书写的程序,用纸带等光电设备或通过控制台上的扳键送入机器,得以存储和执行。

3、第四代语言(4GL):第四代语言的原意是非过程化的程序设计语言。

针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使用户可以只要求做什么,而把具体的执行步骤的安排交给软件自动处理。

4、CASE工具:CASE工具指“计算机辅助软件工程”或“计算机辅助系统工程”,它的基本思想与软件开发工具完全一致,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。

5、所见即所得:“所见即所得”原则力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。

6、需求分析:从用户提出的初始要求出发,经过大量的调查研究,抽象出应用领域中实际的信息需求,设计出在计算机系统内外的、合理的信息流程,并规定软件的功能与性能要求,最后形成严格的、明确的、可供实际开发使用的“软件功能说明书”,这个阶段称为需求分析。

7、总体设计:根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用数据库文件或数据库的设计、各部分的连接方式及信息交换的标准等。

8、结构设计:所谓结构设计是把软件划分成若干个模块,指定每个模块的功能要求以及它们之间的相互关系。

9、模块测试:根据整体设计时制定的各个模块的设计任务书,对程序员完成的模块进行验收,看它们是否实现了所要求的功能和性能指标。

10、总体测试:每个模块都达到了设计任务书的要求后,还要测试整个系统是否达到了预期的目标,另外还要检查完成的软件与编写的文档是否一致,这个工作成为总体测试。

11、设计工具:设计工具是最具体的,它是指在实现阶段对人们提供帮助的工具,是最直接帮助人们编写与调试软件的工具。

软件工程名词解释汇总

软件工程名词解释汇总

软件工程名词解释汇总软件工程名词解释汇总摘要本文档旨在对软件工程领域常用的名词进行解释和概述,以帮助读者更好地理解软件工程学科的相关概念和术语。

1. 软件工程(Software Engineering)软件工程是一门研究如何以系统化、规范化和可靠化的方法来开发和维护软件系统的学科。

它涉及软件开发的各个阶段,包括需求分析、设计、编码、和维护。

2. 需求工程(Requirements Engineering)需求工程是软件工程的一个重要领域,它研究如何获取、分析、规范和验证用户对软件系统的需求。

需求工程的目标是确保软件开发团队能够开发出用户所期望的软件系统。

3. 软件设计(Software Design)软件设计是指根据软件系统的需求规格说明书,通过抽象和建模的方法来定义软件系统的结构和组织的过程。

软件设计的目标是满足软件系统的功能需求、性能需求和可靠性需求。

4. 软件开发方法论(Software Development Methodologies)软件开发方法论是软件工程中用来指导软件开发过程的一种方法或框架。

常见的软件开发方法论包括瀑布模型、敏捷开发、迭代开发等。

4.1 瀑布模型(Waterfall Model)瀑布模型是一种线性顺序的软件开发方法,它将软件开发过程划分为需求分析、设计、编码、和运维等阶段,每个阶段都是按顺序依次进行的。

4.2 敏捷开发(Agile Development)敏捷开发是一种迭代、增量开发的方法论,它强调团队合作、快速响应变化和持续交付。

敏捷开发的核心原则是通过频繁地交付可用的软件来满足用户需求。

4.3 迭代开发(Iterative Development)迭代开发是一种循序渐进的软件开发方法,它将软件开发过程划分为多个迭代周期,每个迭代周期都包含需求分析、设计、编码、和反馈等阶段。

5. 软件(Software Testing)软件是一种评估软件质量和发现软件缺陷的过程。

软件开发术语

软件开发术语

软件开发术语⼀、结构化程序设计 结构化程序设计是以模块功能和详细处理过程设计为主的⼀种传统的程序设计思想,通常采⽤⾃顶向下、逐步求精的⽅式进⾏。

在结构化程序设计中,任何程序都可以由顺序、选择、循环三种基本结构构成。

结构化程序采⽤模块化设计思想来实现,基本思路是把程序要解决的总⽬标分解为若⼲个简单的⼩⽬标来处理,再进⼀步分解为具体的任务项来实现,在模块化的程序设计中,应尽量做到模块之间的⾼内聚、低耦合。

⼆、⾯向对象的基本概念 (1)对象:是要研究的任何事务,可以是⾃然界的任何事物。

对像由数据和作⽤于数据的操作构成⼀个独⽴整体,从程序设计者来看,对象是⼀个程序模块,从⽤户来看,对象可以提供⽤户所希望的⾏为。

(2)类:类是⼀组有相同数据和相同操作对象的定义,⼀个类包含的⽅法和数据描述⼀组对象的共同属性和⾏为。

类是在对象之上的抽象,对象则是类的具体化,是类的实例。

⾯向对象的程序设计语⾔通过类库来代替传统的函数库。

(3)消息和⽅法:对象之间进⾏通信的机制叫作消息。

(4)软件复⽤ 软件复⽤是指在两次或多次不同的软件开发过程中重复使⽤相同或相拟软件元素的过程,软件元素包括程序代码、测试⽤例、设计⽂档、设计过程、需求分析⽂档甚⾄领域知识。

根据复⽤跨越的问题领域,软件复⽤可分为垂直式复⽤和⽔平式复⽤。

垂直式复⽤:指在⼀类具有较多公共性的应⽤领域之间进⾏软件重⽤,⼤多数软件组织采⽤这种重⽤形式。

⽔平式复⽤:重⽤不同应⽤领域中的软件元素,例如数据结构、分类算法、⼈机界⾯构件等,标准函数库属于⽔平式重⽤。

三、⾯向对象的主要特征 (1)继承性 继承性是⼦类⾃动共享⽗类的数据结构和⽅法的⼀种机制。

在类层次中,若⼦类只继承⼀个⽗类的数据结构和⽅法,则称为单重继承,若⼦类继承多个⽗类的结构和⽅法,则称为多重继承。

(2)多态性 多态性是指相同的操作、函数或过程可作⽤于多种不同类型的对象上,对象收到同⼀个消息可以产⽣不同的结果,这种现象称为多态性。

软件开发名词解释

软件开发名词解释

软件开发名词解释软件配置(集成)答:设立一个有效的总控部分,它能够在各个具体工具之上,实现信息的正确传递与转换,帮助人们完成上述协调与配合的工作,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。

CASE工具指“计算机辅助软件工程”或“计算机辅助系统工程”,它的基本思想与软件开发工具完全一致,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。

水波效应:因修改程序带来的连带影响。

当人们修改程序的某一处时,由于没有充分考虑到这一修改对相关部分带来的影响,结果出现了新的错误。

项目管理(Project Mangement)答:项目管理指与固定的生产线上的日常生产管理不同的,具有更大变动性、时间性的一类管理任数据字典(DataDictionary)答:数据字典是一种描述数据内容的概念模式。

它用表格形式列出数据的基本属性以及相互关系。

它的雏型是编写软件时的变量说明或标识符清单。

它也常常与其他描述工具互相补充、配合使用。

实体关系图答:实体关系图是一种用于描述静态数据的概念模式。

它以实体、关系、属性三个基本概念概括数据的基本结构。

数据流程图(DataFlowDiagram)答:数据流程图描述某一业务处理系统的信息来源、存储、处理、去向的全面情况,简明扼要地勾画全局。

项目管理答:项目管理是与固定的生产线上的日常生产管理不同的,具有更大的变动性、时间性的一类管理任务。

项目数据库答:项目数据库实际上是信息库的一个组成部分。

它记录的是项目本身进展的各种有关信息。

项目负责人应当随时掌握这些情况,一方面把住验收质量关,使每一步都扎扎实实,同时掌握全局,及时发现瓶颈环节,从组织上加以解决。

黑箱检验:输入一些信息,通过观察是否能得出预期输出来判断软件是否正确的一种软件测试方法。

黑箱检验只能证明程序有错,而不能证明程序没错。

模块的凝聚性:模块的功能在逻辑上尽可能的单一化、明确化,最好做到模块与任务的一一对应,即每个模块完成一个任务,反之每一项任务仅由一个模块来完成。

软件工程专业术语

软件工程专业术语

软件工程专业术语软件工程专业术语第一章概述软件工程专业术语是指在软件工程领域中使用的一系列特定术语和定义。

这些术语涵盖了软件开发、测试、部署和维护过程中的各个方面,为工程师和相关人员提供了交流和理解的基础。

本文档将详细介绍软件工程中常用的术语和其相应的定义。

第二章软件开发流程2.1 需求分析需求分析是指对用户需求进行详细调研和理解,从而确定软件系统的功能和性能要求。

2.2 设计设计阶段包括系统设计和详细设计两个层次。

系统设计是基于需求分析的基础上,确定整个软件系统的体系结构、模块划分和接口定义。

详细设计则是在系统设计的基础上,对具体模块进行功能描述和算法设计。

2.3 编码编码是将设计的算法和功能转化为计算机可执行的代码的过程。

在编码阶段,软件工程师使用编程语言来实现设计阶段确定的功能和算法。

2.4 测试测试是验证软件系统是否符合需求规格的过程。

测试阶段包括单元测试、集成测试和系统测试,以确保软件系统的质量和功能完整性。

2.5 部署和维护部署是将已经测试通过的软件系统安装到目标机器上的过程。

维护是指对软件系统进行修复漏洞、优化性能和添加新功能等后续工作。

第三章软件质量保证3.1 验证和验证验证是指确认软件系统是否满足规定的需求和规格,通过测试和审查等手段来验证软件系统的正确性。

验证是指确认软件系统是否满足特定标准和质量要求,例如ISO 9001等。

3.2 声明和规格声明是指系统的功能、性能和界面等要求的正式定义。

规范是对系统进行详细描述的文档,包括输入、输出、算法和接口等方面。

3.3 缺陷和补丁缺陷是指软件系统中存在的错误或问题。

补丁是对软件系统进行修复缺陷和改进功能的代码修改。

第四章软件工程管理4.1 需求管理需求管理是对软件系统的需求进行识别、记录、分析和跟踪的过程。

包括需求获取、需求分析、需求动态管理等。

4.2 项目管理项目管理是指对软件项目的规划、组织、协调和控制等活动。

包括项目计划、人员管理、任务分配和进度控制等。

软件中的专业名词解释

软件中的专业名词解释

软件中的专业名词解释随着科技的发展,软件已经成为人们日常生活和工作中不可或缺的一部分。

然而,对于很多非专业人士来说,软件中常见的专业名词可能会令人困惑。

本文将解释一些常见的软件专业名词,帮助读者更好地了解软件技术。

1. 用户界面(User Interface,UI)用户界面是软件与用户之间的桥梁,通过它用户可以与软件进行交互。

UI设计旨在提供直观、易于理解和操作的界面,使用户能够快速、高效地完成任务。

主要包括图形界面、菜单、工具栏、按钮等元素。

2. 操作系统(Operating System,OS)操作系统是计算机中的重要软件组件,负责管理和控制计算机硬件资源,为应用程序提供必要的服务和接口。

常见的操作系统有Windows、macOS、Linux等。

操作系统的主要功能包括进程管理、内存管理、文件系统管理等。

3. 数据库(Database)数据库是一个用来存储和管理数据的系统。

它采用结构化的数据模型,以表格的形式组织数据,并提供灵活的查询和操作功能。

数据库在许多应用领域广泛使用,如企业管理系统、电子商务网站等。

4. 网络协议(Network Protocol)网络协议是计算机网络中用于控制和管理数据传输的规则和约定。

常见的网络协议有TCP/IP、HTTP、FTP等。

网络协议确保数据能够在不同的计算机和网络设备之间传输,实现信息的交换和共享。

5. 编程语言(Programming Language)编程语言是一种用于编写和组织计算机程序的形式化语言。

常见的编程语言有C、C++、Java、Python等。

每种编程语言都有其独特的语法和特性,用于实现不同类型的软件应用。

6. 编译器(Compiler)编译器是将高级编程语言转换为机器语言的软件工具。

它将程序源代码逐行翻译成计算机可以理解的指令,然后生成可执行文件。

编译器起到了连接开发人员和计算机硬件的关键作用。

7. 进程和线程(Process and Thread)进程是在计算机中运行的程序的实例。

软件开发技术名词

软件开发技术名词

一、什么是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前召开。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【转载】软件开发专业技术名词的解释【转载】软件开发专业技术名词的解释2019-11-25 13:09"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、ATL这几类开发方法,其中ATL在国内应用不是很广泛,一般应用于以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++的代码技巧可以做到怎样的出神入化吗?不妨看看这本书。

"ATL":Active Template Library,活动模板库这在VC编程下应该算是比较高级的话题了,它集COM和模板技术于一身,带来了极方便的组件编写方法和极高的学习门槛。

可以说,进入ATL领域就算是进入了中级以上的编程领域。

ATL是为组件而生,它的目的是为了让程序员更方便地编写组件(纯用C++写一个最简单的组件实现一个"Hello World"对初学者来说都是要命的),同时它使用模板技术来类似于MFC一样建立了一个开发COM的框架代码库(模板库),使用该框架及模板库可以相对方便地进行组件开发。

ATL中的一个特点就是你自己的类将成为ATL代码库中某些类的父类,这是一件很有趣的事(这也是模板技术的一个特点)。

"HANDLE":句柄这是一个中文翻译很古怪的字,对初学者来说是百思不得其解的东东。

相关文档
最新文档