《软件开发工具复习整理资料(权威完整版)(共17页).docx》由会员分享,可在线阅读,更多相关《软件开发工具复习整理资料(权威完整版)(共17页).docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第1-6章 名词解释2、第一代语言:即机器语言,是用0、1组成的二进制字符串书写的程序,用纸带等光电设备或通过控制台上的扳键送入机器,得以存储和执行。3、第四代语言(4GL):第四代语言的原意是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使用户可以只要求做什么,而把具体的执行步骤的安排交给软件自动处理。4、CASE工具:CASE工具指“计算机辅助软件工程”或“计算机辅助系统工程”,它的基本思想与软件开发工具完全一致,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。5、所见即所得:“所见即所得”原
2、则力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。8、结构设计:所谓结构设计是把软件划分成若干个模块,指定每个模块的功能要求以及它们之间的相互关系。9、模块测试:据整体设计时制定的各个模块的设计任务书,对程序员完成的模块进行验收,看它们是否实现了所要求的功能和性能指标。10、总体测试:每个模块都达到了设计任务书的要求后,还要测试整个系统是否达到了预期的目标,另外还要检查完成的软件与编写的文档是否一致,这个工作成为总体测试。14、工具的可靠程度:软件开发工具应具有足够的可靠性,即在各种各样的干扰下仍能保持正常工作,而不致丢失或弄错信息。15、软件危机:指随着软件功能
3、越来越多,规模越来越大,复杂性越来越高,引出一系列问题:软件产品交付拖延、错误多、不可靠、费用增大、不能适应应用变化等,因此怀疑大型软件的复杂性是否超越了人的处理能力。16、水波效应:因修改程序带来的连带影响。当人们修改程序的某一处时,由于没有充分考虑到这一修改对相关部分带来的影响,结果出现了新的错误。17、黑箱检验:输入一些信息,通过观察是否能得出预期输出来判断软件是否正确的一种软件测试方法。黑箱检验只能证明程序有错,而不能证明程序没错。18、模块的凝聚性:模块的功能在逻辑上尽可能的单一化、明确化,最好做到模块与任务的一一对应,即每个模块完成一个任务,反之每一项任务仅由一个模块来完成。这也称
4、为模块的凝聚性。19、模块间的耦合(耦合性):模块之间的联系及相互影响称为耦合。20、模块间逻辑耦合:如果模块间传递的是控制信号,则称模块间具有逻辑耦合。21、(对象的)封装性:把对象的静态属性和相关操作作为一个整体,对外不必公开这些属性与操作。22、(对象的)遗传性:对象所具有的性质,包括静态属性和动态操作,自然地成为其子类的性质,不必加以重复说明或规定。27、框图:框图是人们在编写软件时最早使用的一种概念模式,它用来描述程序执行的逻辑过程。28、结构图:结构图是描述大型软件的层次结构(模块的结构)的概念模式。它以模块调用关系为线索,从宏观上使人一目了然地掌握软件的全貌。29、数据流程图:数
5、据流程图是描述系统信息流程的一种概念模式,它描述系统的信息来源、存储、去向的全面情况。它的基本思想是把信息流看作一个组织或系统运作的线索,力图简明扼要地勾画出全局。30、实体关系图:是一种用于描述静态数据结构的概念模式,它以实体、关系、属性三个基本概念概括数据的基本结构。31、数据字典:是一种用于描述数据内容的概念模式,它用表格的形式列出数据的基本属性以及相互关系。32、时序网络(Petri Net):主要用于描述系统状态及其转换方式的概念模式,常用于一些实时控制方面的软件的功能。33、数学与逻辑模型:用于描述客观世界的状态与规律的概念模型,具有严格、准确、可计算性的特点,一般只能描述比较单纯
6、、基础的功能。决策表和决策树是常用的两种表达方式。34、计算机模拟模型:利用计算机大量、高速处理信息的能力,在计算机内设置一定的环境,用程序来表现客观系统中的某种规律与规则,这样计算机就可以高速运行,以便人们观察与预测客观系统的状况。36、项目管理:指与固定的生产线上的日常生产活动不同的、具有更大变动性、时间性的一类管理任务。37、版本管理:实现软件工程的跨周期管理,保持系统功能在时间上的一致性,功能逐步完善,成果不丢失,可回溯,可重用,使系统在局部和整体上保持一致性的管理工作。38、软件配置(集成)问题:软件配置或集成问题的实质是设立一个有效的总控部分,能够在各个具体工具之上实现信息的正确传
7、递与转换,帮助人们完成软件开发各阶段的协调与配合工作,从而形成一个统一的、完整的支撑环境,并通过一个统一的、友好的人机界面与用户对话。39、信息流通模型:用需求分析阶段建立的逻辑模型来表达信息的来源、去向、存储及处理的逻辑过程。40、代码生成器:代码生成器的基本任务是根据设计要求,自动或半自动地生产相应的某种语言程序。41、项目数据库:项目数据库是信息库的一部分,它记录项目本身进展的各种信息。42、(软件)审计:审计是对一个系统的运行状况及效率进行检测与评价,以便进一步用好或改进这个系统。43、开发工具的工作环境:软件开发工具都是在一定的工作环境中工作的,包括硬件配置、系统软件、数据库管理系统
8、、网络通信条件等。第7-14章 名词解释1. JDK:Java开发工具,是一个写Java的applet和应用程序的程序开发环境。它是整个Java的核心,包括了Java运行环境、Java工具和Java基础的类库。2. Eclipse CDT:专门用于编写C和C+程序的Eclipse开发环境。3. Eclipse的视图:视图是Eclipse工作台中的一个可视化的组件,它提供了用户正在工作台中使用的一些对象的详细信息。通常用来浏览工作台中的资源,显示编辑器中的属性,显示程序状态等。4. 编译器:编译器是工作台中的一个可视化组件,是用来处理各种文档的,它允许用户打开、编辑、查看和保存文档对象。5. 项
9、目:在Eclipse集成开发环境中,每个小程序都是以项目为单位存在的,源代码、注释、配置文件、各种文件夹等都封装在项目里。6. 归档文件:包括通过Jar命令或War命令打包后形成的压缩文件。7. 文件系统:指操作系统文件夹中的各类文件。8. 首选项文件:用户可以通过首选项文件来个性化定制Eclipse 。9. MinGW编译器:MinGW是指用来生成纯粹的Win32可执行文件的编译环境,它是以GNU为基础的开发C/C+项目的工具集,能够提供C/C+所需要的头文件和库文件。10. 浏览功能:浏览功能可以从多个角度快速查看并定位到程序中的各个元素,包括代码的层次结构、调用关系、继承关系等。11.
10、打开变量声明:Eclipse提供的浏览功能,可以从变量的任意引用位置直接定位到变量的定义行。12. 打开类型层次结构:Eclipse提供的浏览功能,可以快速打开程序中已经在使用的特定数据类型及其相关继承结构。13. 打开调用层次结构:Eclipse提供的浏览功能,可以浏览函数的定义与调用层次关系并快速定位到需要的函数。14. 文件包含浏览器:用于浏览程序中包含的头文件。15. 打开元素:Eclipse将命名空间、类、结构、类型定义符、函数、变量等定义为元素,通过浏览功能,可以迅速打开需要的元素。16. GDB:GDB是GNU开源组织发布的一个强大的UNIX (不仅限于UNIX )工具,搭配Mi
11、nGW使用,可以使用户完成整个C/C +程序的编译和运行工作。17. 格式化代码:格式化代码功能可以帮助用户将凌乱的程序代码格式化为自己习惯的排列方式。18. 版本控制软件:版本控制软件能够完整的保存软件开发中对应用程序每一个源文件所有的修改记录。19. 并发版本控制系统CVS:使用CVS可以对代码进行集中管理,记录代码所有的更改历史,提供协作开发的功能并支持多人同时修改代码文件。20. 互斥性修改:某一程序在同一时间只能由一个开发人员修改。21. CVS资源库:资源文件的集合。即软件资源的存放地,是放置开发的代码并对其进行控制管理的一个文件夹。22. 工作备份:用户对资源的修改不是直接在Se
12、rver端进行的,而是根据资源库的内容创建一个本地的工作备份,用户在工作备份中工作,工作完成后再将修改的内容提交到资源库。23. 提出(签出)Check Out:获得工作备份的操作。从CVS资源库中复制一个软件镜像到本机的工作空间中,此时代码和CVS中的代码是一致的。这项技术称为“提出”。 24. 提交:将对工作备份的修改反映到资源库中的操作。25. 代码同步:程序开发过程中,本地代码和CVS资源库代码可能会产生差别,这可能是代码之间存在增减或冲突等关系造成的,代码同步操作可以使代码保持一致。26. CVS中的冲突:在资源库与工作备份之间状态不一致的状态下进行签入或更新操作时,版本管理系统可能
13、会尽量进行合并,如果版本管理系统不能完全处理上述不一致,就称之产生了冲突。27. 插件:插件是一种遵循其所依附的软件的接口规范所编写出来的程序,是对原有软件的扩展。28. 惰性导入机制:在Eclipse启动时,仅加载必要的核心,其它的功能插件使用时才加载进来,这样节省了大量的导入和初始化插件的时间,提高了Eclipse平台的运行效率,这一机制称为惰性机制。29. PDE:插件开发环境,帮助开发者创建、开发、测试、调试和部署插件,同时提供开发片段、功能部件和更新站点的工具,协助开发者完成插件开发的全过程。 30、UML:统一建模语言,是一种面向对象的建模语言,它提供了描述软件系统模型的概念和图形
14、表示法,采用了面向对象的技术和方法,体现面向对象的分析与设计风格。它可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,是一种定义良好、易于表达、功能强大且普遍适用的建模语言。 31、抽象:抽象是人们认识客观世界复杂性的一种基本方法。抽象是事物或现象的简括描述,突出事物或现象之间的共性,而暂不考虑它们之间的差异。 32、方法:方法是驻留在对象中的过程。方法是当对象接受消息时执行的操作,方法还能发送消息至其他请求动作或信息的对象。 33、类:类是对一组几乎相同的对象的描述。34、属性:属性由静态的数据组成,用以描述类和对象所固有的特征,是类和对象的性质。 35、
15、封装:封装即信息隐藏。封装使一个对象形成两个部分:接口部分和实现部分。对用户来说,接口部分是可见的,而具体实现部分则不可见。继承:继承指对象继承它所在类的结构。体现了父类和子类之间的共享机制。子类可以继承其父类的特性,同时可以有自己的新特性和新方法。 多态:多态指不同事物具有不同表现形式的能力,多态机制使具有不同内部结构的对象可以共享相同的外部接口,不同对象接到同一个消息可以产生完全不同的结果。 简答题 第一章1、什么是软件开发工具?在高级程序设计语言的(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类广泛的
16、软件。软件开发工具概念要点有三:(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;(2)它的目的是在人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助;(3)它支持软件开发的全过程,而不是仅限于某个特定的阶段。2、简述计算机软件发展的几个阶段。四个阶段:(1)第一代计算机语言机器语言阶段。把用户已经明确表述出来的算法,用机器语言写成一系列机器指令,供硬件运行使用。(2)第二代计算机语言汇编语言阶段。编程工作改为汇编语言进行,编好的指令由汇编程序转化为机器指令,再交硬件执行。与用户的距离近了。(3)第三代计算机语言高级程序设计语言,过程化语言。不再与机器指令一一
17、对应,更加接近自然语言,离机器更远了,离用户更近了。(4)第四代计算机语言非过程化语言(4GL)(见名词解释)3、简述软件工作的重要性和困难性。软件工作的重要性越来越为人们所认识,软件是计算机的灵魂,是广大使用者与计算机之间的桥梁,是人类在各个领域中积累的知识的结晶,是人类文明与知识得以延续的新的载体,是人类进一步成为一个整体、得以进一步相互联系的纽带。人们在认识到软件工作的重要性的同时也越来越认识到了它的困难性。这就是所谓的“软件危机”问题。人类社会和客观世界的复杂性,决定了软件本身的复杂性;人类知识的丰富多彩,决定了软件的多样性;客观世界的动态性,决定了软件对可维护、可重用性越来越高的要求
18、。面对规模日益扩大的软件,如何保证它的正确性、可靠性,如何控制软件开发的进度与成本,成为十分重要的课题。4、简述软件开发工具的演变过程。软件开发工具的演变是从无到有,从分散到集中的过程,是软件发展的必然趋势。主要分为四个阶段:第一阶段:利用通用软件作为辅助工具的阶段没有专用软件开发工具的阶段。第二阶段:专用的软件开发工具阶段。第三阶段:集成的软件开发工具阶段。第四阶段:面向网络和开源软件的软件开发工具阶段。5、试述用通用软件辅助软件开发的弱点。用通用软件来帮助开发人员编写文档或画图可以减少很多工作量,但是与软件开发工作相比,这种帮助实在太表面、太初级了。用通用软件帮助软件开发有三个主要弱点:(
19、1)许多工作通用软件无法完成。(2)用通用软件完成某些工作,只能表现其表面的形式,不能反映其逻辑内涵(形似,神不似)。(3)常遇到难于保持一致性的困难。6、集成化的软件开发工具是在什么背景下产生的?大批专用软件开发工具的出现并未解决一致性的问题。其根源在于对软件的开发缺乏全面的、统一的支撑环境。这些零散的、分散的支持软件开发各个阶段、各项具体工作的专用工具之间没有有机的联系起来,必然造成冲突与矛盾。这对用户造成了沉重的负担,以致抵消了使用工具带来的益处,从而导致集成软件开发工具的产生。7、试述软件开发工作的发展变化。软件开发工作的发展变化主要有五个阶段:(1)(3)阶段同第2题(4)第四阶段以
20、应用软件开发工具为标志,把需求分析纳入了软件开发工作中,进一步扩大了软件开发的范围。(5)新阶段规模更大、应用更广的阶段,大量开源软件出现,总体设计的作用进一步加强,并出现了软件构架师的概念。8、试述现阶段软件技术的特点(作为软件技术发展的一个新阶段,使用软件开发工具与以往的区别)(1)自动化程度的提高。由于代码生成等技术的应用,在特定条件下,可以较容易地自动生成第三代语言(或更低的语言)的代码,从而大大节省人力和时间。(2)明确地把需求分析纳入软件工作范围之内,从而使软件开发过程进一步向用户方面延伸,离用户更近了。这是软件技术向前迈进的重要一步。(3)把软件开发工作延伸到项目及版本管理,从而
21、超出了一次编程的局限,而扩大到了作为一个不断发展的客体的生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。(4)吸收了许多管理科学的内容与方法,如程序员的组织,质量的控制,使软件开发技术不再只是讨论单个程序员自己工作的技术与方法问题,而是把组织、管理等项目负责人的思想与方法放到了更重要的位置。总之,软件开发工具的提出与使用,是软件技术发展的一个新阶段。9、软件开发一般分为哪几个阶段?其主要任务和形成的文档是什么?开发阶段主 要 任 务文 档需求分析从用户提出的初始要求出发,经过大量的调查研究,抽象出应用领域中实际的信息需求,设计出在计算机
22、系统内外的、合理的信息流程,并规定软件的功能与性能要求,最后形成严格的、明确的、可供实际开发使用的“软件功能说明书”。软件功能说明书总体设计根据软件功能说明书的要求,完成软件的总体设计,包括整个软件的结构设计、公用数据库文件或数据库的设计、各部分的连接方式及信息交换的标准等。系统的总体设计文件(结构图、模块清单、公用数据结构)和各个模块的设计任务书实现阶段两个并行的工作:程序的编写与文档的编写程序代码、文档(使用说明、用户手册)测试阶段完成模块的调试与整个软件的联调测试报告10、什么是功能?软件开发工具应具有什么样的功能?功能是软件能做什么事。软件开发工具的主要功能:(1)认识与描述客观系统(
23、2)存储与管理开发过程中的信息(3)代码的编写与生成(4)文档的编制或生成(5)软件项目的管理11、什么是性能?软件开发工具重要的性能指标有哪些?性能是软件能把事情能做到什么程度。性能指标主要有:(1)表达能力或描述能力(2)保持信息一致性的能力(3)使用的方便程度(4)工具的可靠程度(5)对软、硬件环境的要求12、试述软件开发工具的类别。1)按支持的工作阶段把软件开发工具划分成三类:(1)设计工具:在实现阶段对人们提供帮助,是最直接帮助人们编程、调试软件与编写文档的工具。如各种代码生成器,第四代语言和测试的工具等。(2)分析工具:主要用于需求分析的工具,帮助人们认识与表述信息需求和信息流程,
24、从逻辑上明确软件功能与要求。如数据字典管理系统,绘制数据流图、系统结构图或ER图的专用工具。(3)计划工具:从宏观角度看待软件开发,保存与管理的信息都是与整个项目相关的宏观信息,完全是为项目主管人员服务的。2)按集成程度划分成两类:(1)专用的工具:面对某一工作阶段或某一工作任务的软件开发工具。(2)集成化的工具:是集成化的、面对软件开发全过程的软件开发工具。3)按与硬件、软件的关系划分成两类:(1)依赖于特定机器或软件的工具,如多数设计工具和集成化的工具。(2)独立于硬件与软件的工具,如分析工具和计划工具。13、对软件开发工具的研究来源于哪些方面? 对软件开发工具的研究主要来源于三方面:(1
25、)软件开发工具的使用者。他们是软件开发工具得以发展的基础。这些人员大致有两种:一种是计算机专业出身的技术人员;一种是应用领域的人员,如会计、金融、企业管理等。(2)一些厂家和研究单位。既包括一些计算机硬件的制造商,也包括一些软件公司,如DEC、HP、ORACLE等,由此形成了软件开发工具的研制队伍。(3)软件技术专家(如ACM、IEEE)和系统工程专家。14、学习软件开发工具的目的是什么?作为一般的使用者,学习软件开发工具的目的在于了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便在实际工作中正确地选择与使用软件开发工具,在必要时能参加或组织软件开发工具的自行研制,从而达到提高软
26、件工作水平与效率的目标。软件开发工具总结:软件开发工具非软件开发工具专用的软件开发工具设计工具各种代码生成程序(代码生成器);综合性的第四代语言;专用于某种文档的编写工具;测试工具通用软件字处理软件(wordstar)分析工具数据字典管理系统(CDD、Dictionary/3000);专用于画数据流程图(FLOW)、ER图或程序框图的绘图软件计算机硬件;操作系统、汇编程序、编译系统;磁盘处理程序、病毒防治程序、系统备份;pctools;第三代高级程序设计语(C,COBOL,FORTRAN)集成的软件开发工具IBM的AD/Cycle理论框架;Rational公司的Objectory、Rose;北
27、大青鸟系列第二章1、软件开发中的基本问题及解决办法是什么?(单个程序员做好软件工作的关键是什么?)对单个程序员来说,做好软件的关键是做好两个转换:第一个转换:从用户对软件功能的理解到程序员对软件功能的理解之间的转换。第二个转换:从程序员的理解到程序的实现。保证第一个转换顺利完成的手段:利用尽可能标准化的方法编写程序设计任务书,用明确的语言或图形、表格,把程序要处理的信息的内容、格式、来源、去向、存储、处理清楚地表达出来,作为双方共同理解。保证第二个转换顺利完成的手段:提高程序员的知识水平和实际经验。2、大型软件开发中的困难体现在哪些方面?困难产生的原因是什么?大型软件开发中的困难主要有:(1)
28、一致性的保持成为十分困难的问题(2)测试的困难大大增加(3)工作进度难以控制(4)文档与代码的协调十分困难(5)版本更新带来的困难困难产生的原因:(1)大系统的复杂性;(2)个人之间的组织与协调;(3)各应用领域间的差别;(4)时间、变化的因素。3、几十年来,为了提高软件开发的水平和效率人们提出了哪些软件开发方法?面对软件开发中的种种困难和问题,软件工作者千方百计从各种不同角度,用各种不同方法试图使软件开发工作的水平和效率有大幅提高。仅从软件开发方法而言,先后提出了:结构化程序设计方法 软件工程方法 面向对象的程序设计方法 即插即用的程序设计方法 面向开源软件的程序设计方法4、大型软件开发过程
29、中涉及几种角色,他们承担的工作有哪些?(1)用户:提出需求、验收软件、使用软件、提出修改要求(2)程序员:编程、写文档、调试自己的程序、向项目负责人提交工作成果(3)项目负责人:分析用户需求形成设计方案、向程序员分配任务、验收程序员的工作成果、对整个软件联调、向用户交付使用、接收与分析用户的修改要求、向程序员分配修改任务、验收修改成果、向用户提交新的版本或修改的结果(4)计算机硬件:运行、试运行5、试述结构化程序设计的基本思想与方法(论述)。结构化程序设计的基本思想是把程序的结构分解成三种基本模块:处理单元、循环机制、二分决策机制,并保证模块的划分符合“结构良好”的要求:(1)模块的功能在逻辑
30、上尽可能的单一化、明确(2)模块间的联系及相互影响尽可能的少(3)模块的规模应当足够小,以便其易于调试划分模块时采用“自顶向下”的方法,即不管软件多大,都采取自上而下、逐步分解的办法,分成若干部分,并把他们之间的关系明确地表达出来,画出系统结构图,直到最底层的模块达到所要求的规模为止。实施结构化程序设计的思想时,要遵守以下原则:(1)限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句。(2)子程序尽可能做到只有一个入口、一个出口;(3)程序风格应尽量明确、清晰,包括适当增加注释,书写格式体现层次结构,变量名称的选用尽量具有逻辑意义等;(4)在程序编写的同时完成有关的文档编撰,不要拖延
31、时间。结构化程序设计的方法主要是为程序员服务的。它的缺点是增大了程序的工作量,增加了编程中的麻烦与琐碎的工作,降低了程序的运行效率。但它保证了软件的可靠、准确与易于修改。6、试述软件工程的基本思想和方法(论述)。软件工程的基本思想来源于传统工程,要想大幅度地从根本上提高软件开发的质量和效率,就应当吸取各种传统产业的成功经验,从组织和管理的角度加强力量,使软件生产从程序员的个人劳动提高成为有组织、可控制的工程。软件工程借鉴传统工程的思想,从软件开发的经验中归纳出相应的工作步骤和交流标准,大家都来遵守和执行,从而保证软件开发的进度与质量。软件工程的实施方法:首先,对软件开发的工作过程进行规范。如I
32、BM的AD/Cycle,对应用软件的开发过程做了如下划分和规定:第一阶段,需求分析。了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。第二阶段,分析与设计。进行功能分解及数据分析,完成处理过程及数据库的逻辑设计。第三阶段,编程阶段。完成具体的程序编写工作。第四阶段,测试阶段。对已有代码进行认真检测与试用。第五阶段,使用及维护。组织使用者有效的使用,并及时检查与修正发现的错误。在标准化方面主要从两个方面探索。(1)表达方式的标准化,如统一规格的数据流程图、数据字典、模块结构图等。(2)对工作的质量及检查制定标准,在一定的时候作一定的检查。如著名的ISO9001标准。软件工
33、程的思想主要集中于加强项目管理者的工作上,对程序员关系不大,与结构化程序设计方法刚好互补。目前软件开发还主要依赖程序员的个体工作,完全做到工程还是相当困难的。7、面向对象程序设计的基本思想(论述)。面向对象的程序设计是人们试图解决软件危机的又一种尝试,近年来,随着面向对象语言的普及,这种思想得到了广泛的传播。面向对象程序设计的基本思想可以归纳为四点:(1)客观世界的任何事物都是对象,它们都有一些静态属性(相应于数据结构)和相关的操作(相应于程序模块)。作为一个整体,这些对象不必对外公开这些属性与操作。这就是“封装性”。(2)对象之间有抽象与具体、群体与个体、整体与部分等几种关系。这些关系构成对
34、象概念之间的网络结构。(3)抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以重复说明或规定。这就是“遗传性”。(4)对象之间可以互送消息,这一消息可以是传送一个参数,也可以是使这个对象开始某个操作。面向对象程序设计语言反映了程序设计的思想方法越来越接近人们思维的方式,它摒弃了持续许久的“自顶向下”和“自底向上”的争论,把对于复杂系统的认识归结为对一批对象及其关系的认识,通过合理地选择认识的层次,使系统的复杂性保持在可控制的范围内。8、即插即用程序设计的基本思想?即插即用程序设计是在面向对象程序设计方法的基础上提出来的。它的基本思想是用制造硬件的思路来生
35、产软件。在硬件的制造中,芯片的制造与整机是分开进行的。制造芯片的厂家只管制造芯片,而制造整机的厂家则利用这些芯片组成完整的计算机。人们想用同样的思路来处理大型软件的开发,一部分人专门生产软件组件,一部分人设计整个软件结构,并且把软件组件插入这个结构,以便迅速完成大型软件的研制工作。然而这种思想的真正实现并不那么简单。首先,标准化的问题十分困难。其次,软件部件的提供方式也是问题。依照这种思路,一些软件公司或机构已经在标准化方面提出了方案,如著名的CORBA和COM101。9、面向开源软件的程序设计的基本思想?随着开源软件的出现和发展,利用开源软件进行程序设计,已经成为越来越普遍的方法。目前社会上
36、和学术界对开源软件有不同看法,有支持者有反对者。在实际使用中,在一些应用面广,流程比较清晰、比较规范的应用领域,开源代码的重用是比较有把握的,如:网站的设计。但由于应用领域的复杂性和多样性,在使用开源软件前还需要仔细权衡。这里起决定作用的是两方面因素,一方面是对应用领域的充分了解,这是判断能否用开源软件的主要依据;另一方面是开源软件的质量,包括文档和代码的规范程度。10、什么样的软件才是好的软件?(1)正确地实现所要求的功能,准确地给出预定的输出结果;(2)用户界面友好,符合实际用户的使用习惯和知识水平;(3)具有足够的速度(不是越快越好),能在符合用户要求的时间限度内,给出所要求的结果;(4
37、)具有足够的可靠性,能够在各种干扰下保持正常工作;(5)程序易读,结构良好,文档齐全,从而保证系统易于修改。11、评价单个程序员的主要性能指标是什么?就单个程序员来说,主要的指标有: (1)具有程序设计所需要的基本知识与技能,如关于数理逻辑的知识与训练,关于各类数据结构的概念及处理方法等;(2)对本项目所在的那个领域有较深入的了解,从而能够准确的理解用户的信息需求,正确地把握有关的信息流程与信息处理原则;(3)对于软件开发的技术环境比较熟悉,包括硬件设备、软件环境和网络环境,特别是对于所用的语言,应当有足够的、实际运用的经验。12、作为项目组的一员,要遵守哪些要求?作为项目组的一员,除了完成自
38、己承担的任务之外,重要的是使自己的工作融入整个系统,与其他部分协调一致的工作,以下几点必须严格遵守:(1)保证严格在本模块内操作,绝不要使用可能干扰其它模块的命令或函数。 (2)严格按总体设计的要求和理解去传递参数值,绝不要随意修改其内容或含义。(3)在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作, 绝不能擅自改变。(4)在使用标识符时,应按照统一的原则尽量使用易于看出逻辑含义的名称。特别是涉及公用数据及参数的时候。(5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定。(6)尽量保持程序风格的一致。如注释行的安排,行首空格的使用等
39、。13、一个好的项目组应具备哪些条件?好的项目组是在长期工作中逐渐形成的,根据衡量项目组的CMM模型,一个好的项目组至少应当具备以下几个条件:(1)有严格的、成文的工作规范和文档标准,而且应当为全体成员所熟知,并切实得到遵守。 (2)人员之间有严格的分工,除了程序员之外,必须有专门的秘书(负责文档的收集、审核及保管),必须有专门的测试人员(负责测试和验收有关的部分),特别是要有专职的、不陷入具体编程的项目负责人。(3)每个项目都要事先制定详细的时间表,并且得到严格执行每一项目完成之后都有完整的资料,并得到妥善保存,一但需要修改或更新版本时可以立即使用。第三章1、简述在软件开发过程中,信息流通的
40、主要内容。软件开发过程的信息流通状况图描述了各种信息在各种人员与计算机之间的流通状况。其中涉及到四类人:用户、分析人员、程序员和维护人员。涉及四类信息:第一类,有关环境、现状及需求的信息。第二类,有关软件的功能设计与物理设计的各种信息。第三类,软件成果本身,包括程序和文档。第四类,用户对系统的各种变更要求,以及系统的各种变更记录。是跨越开发周期的。2、软件开发过程中涉及的信息管理工作有哪些?软件开发过程中涉及的信息管理工作包括:(1)信息的存储(2)数据的转换与加工: 手工形式和计算机形式之间的相互转换; 计算机内部不同形式数据的转换。(3)人与人之间的信息交流:分析人员、程序员、用户和维护人
41、员软件开发工具正是为软件开发过程中涉及的四类信息的合理存储、正确转化和顺畅流通提供帮助的。3、软件开发工具涉及到的理论和方法主要有哪些?第一,认知科学中关于概念模式的概念与方法。第二,数据库技术的理论与方法。第三,编译技术的有关方法。第四,关于人机界面的理论与方法。第五,管理科学中关于项目管理与版本管理的理论与方法。第六,系统科学与系统工程中的有关理论与方法。4、概念模式的作用和意义。概念模式是指人们在认识事物过程中,对某一事物或某一系统形成的抽象的、一般化的概念框架。概念模式具有二重性意义,它既反映了客观现实,同时又具有主观性。概念模式是在客观事物或系统的基础上形成的,在某种程度上反映了客观
42、现实。但它又不等同于客观事物本身,因为它常常是抽象出的某一事物的部分属性,所以往往只反映事物的某一方面。至于选取那些属性或哪些方面,还决定于观察者本身的目的与状态。概念模式的作用:(1)概念模式是人们认识客观世界的一种方法和工具。(2)概念模式是人们进行交流与表达的重要工具。5、举出三种常用的概念模式,说明他们的作用与使用方法。(参考名词解释)6、什么是信息库?它与数据库、数据仓库有什么区别?信息库是针对软件开发或信息系统开发中的大量信息管理工作提出来的,它存放软件开发全过程中所有有用信息。数据库是指在文件系统基础上发展起来的一种数据管理技术,它的重点在于合理地组织数据,体现出数据之间的逻辑关
43、系,并尽可能地帮助用户检索,减少冗余。数据仓库是针对大批数据的分析利用而提出的概念。基本思想是对现实中的大量原始数据进行多次加工与提炼,得出许多派生的或综合的数据,保证原始数据和派生数据的一致性,就是数据仓库的任务。信息库是一个包罗万象的,随着项目进展而不断修改与补充的数据集合。它在规模上不一定像数据仓库那么大,分析提炼的要求也与数据仓库不同,然而作为软件开发全过程的信息管理总枢纽,它的特点是数据结构相当复杂,而且会不断变化,保持一致性的任务十分艰巨。7、信息库中应该包括哪些内容?(1)软件的工作环境、功能需求、性能要求,有关的各种信息来源的状况、用户状况、硬件环境以及在该领域中的作用等外部信
44、息。(2)需求分析阶段中收集的有关用户的各种信息。 (3)逻辑设计阶段的各种调查材料和由此生成的各种文档调查记录、原始数据、报表及单证的样本、绘制的各种图、系统说明书。(4)设计阶段的各种资料数据库与数据文件格式、数据字典、程序模块的要求、总体结构、各种接口及参数的传递方式、设计方案。(5)编程阶段的所有成果程序代码、框图、变量说明、测试情况、验收报告、使用说明。(6)运行及使用情况的详细记录。(7)维护及修改的情况。(8)项目管理的有关信息,版本信息。8、信息库应具备哪些管理功能?1)一般数据库的基本功能:增、删、改操作2)特殊功能:(1)把计算机内外的信息存储统一起来管理规定复杂的内部结构
45、以存放信息。(2)面对分析人员、程序员和维护人员等不同的对象,他们有各自的权限和使用目标需要认真设计有关的界面以便使用。9、信息库应该如何保持一致性?(1)信息库中的内容一般不删除,老信息加上时间标志移入历史信息中,并与新信息保持着历史的、逻辑的联系,在需要时可以随时调出来。 (2)由多个程序模块组成的大型软件系统中,如何保证某个模块更新后与其它模块一起构成一个新的版本。(3)保证程序和使用手册之间的一致性。(4)对国际性的大软件公司来说,各种语言的资料之间的一致性同样需要认真地、细致的组织与安排。10、用户界面设计的基本原则是什么?(1)用户界面的主要功能是通信。 (2)界面必须始终一致。
46、(3)界面必须使用户随时掌握任务的进展情况。(4)界面必须能提供帮助。 (5)宁可让程序多干,不可让用户多干。11、IBM的AD/Cycle框架中,应用系统框架SAA(系统应用体系结构)由哪几部分构成?具体内容是什么?构成硬件平台用户接口CUA程序员接口CPI通信接口CCS内容键盘操作、屏幕滚动、菜单选择、帮助系统、鼠标操作、色彩应用、数据录入、信息显示语言:过程化语言、非过程化语言、生成器服务:数据库查询、对话显示、通信服务面向对象的结构、数据流、应用服务、作业管理、网络管理、数据安全控制12、人机界面的技术手段有哪些?(包含在11题中)13、与一般日常生产管理相比,项目管理的突出特点是什么
47、?(1)子任务多,关系复杂。(2)任务不可重复,形势不断变更。(3)组织协调的任务十分突出,资源浪费闲置的风险与合理地优化组合、提高效益的机会并存。 (4)信息处理工作的作用与意义更为突出。14、项目管理的基本目标是什么?(1)使产品(或工程)的质量得到有效的控制。 (2)保证整个系统按预定的进度完成。(3)有效的利用各种资源,尽可能使资源的闲置与浪费减少。(4)控制与降低成本。15、版本管理的核心是什么?具体方法有哪些?版本管理的核心是保持两个一致性:从时间上说,要保证系统的逐步完善,以前达到的结果不丢失,需要时可以回溯,必要时可以重用;每一步新的进步都要切实与以前的工作一致,是改进而不是破坏或者降低系统的已有功能。从系统各部分之间的关系上说,要求局部与整体保持一致,合理地判断每一次修改的必要性及影响范围,合理地组成每一个新版本,并通过命名、编号等方法,使新的版本成为系统进步的漫长过程中的一个台阶,一个有目的、有方向的稳定的进步。版本管理的具体方法:规定长远的版本更新计划;制定版本有关的信息范围及收集、管理方法;在项目组内明确分工;在编程、测试、文档编写等工作中贯穿项目管理的思想及要求。第四章1、完整的、一体化的软件开发工具应具备哪些基本功能?(1)提供描述软件状况及其开发过程的概念模式,协助软件开发人员认识软件工作的环境与要