软件开发概念解释

返回列表

  软件开发概念解释 软件配置(集成) 答:设立一个有效的总控部分,它能够在各个具体工具之上,实现信息的正确传 递与转换,帮助人们完成上述协调与配合的工作,从而形成一个统一的、完整的 支撑环境,并通过一个统一的、友好的人机界面与用户对话。 CASE 工具指“计算机辅助软件工程”或“计算机辅助系统工程”,它的基本思 想与软件开发工具完全一致, 即应用计算机自身处理信息的巨大能力,帮助人们 开发复杂的软件或应用系统。 水波效应:因修改程序带来的连带影响。当人们修改程序的某一处时,由于没有 充分考虑到这一修改对相关部分带 来的影响,结果出现了新的错误。 项目管理(Project Mangement) 答:项目管理指与固定的生产线上的日常生产管理不同的,具有更大变动性、时 间性的一类管理任 数据字典(DataDictionary) 答: 数据字典是一种描述数据内容的概念模式。它用表格形式列出数据的基本属 性以及相互关系。 它的雏型是编写软件时的变量说明或标识符清单。它也常常与 其他描述工具互相补充、配合使用。 实体关系图 答:实体关系图是一种用于描述静态数据的概念模式。它以实体、关系、属性三 个基本概念概括数据的基本结构。 数据流程图(DataFlowDiagram) 答:数据流程图描述某一业务处理系统的信息来源、存储、处理、去向的全面情 况,简明扼要地勾画全局。 项目管理 答:项目管理是与固定的生产线上的日常生产管理不同的,具有更大的变动性、 时间性的一类管理任务。 项目数据库 答: 项目数据库实际上是信息库的一个组成部分。它记录的是项目本身进展的各 种有关信息。项目负责人应当随时掌握这些情况,一方面把住验收质量关,使每 一步都扎扎实实,同时掌握全局,及时发现瓶颈环节,从组织上加以解决。 黑箱检验:输入一些信息, 通过观察是否能得出预期输出来判断软件是否正确的 一种软件测试方法。黑箱检验只能 证明程序有错,而不能证明程序没错。 模块的凝聚性:模块的功能在逻辑上尽可能的单一化、明确化,最好做到模块与

  任务的一一对应,即每个模块完成 一个任务,反之每一项任务仅由一个模块来完成。这也称为模块的凝聚性。

  信息库答: 信息库是一个包罗万象的, 随着项目进度不断修改与补充的数据集合。 它在规模上不一定像数据仓库那么大, 分析提炼的要求也与数据仓库不同。 然而, 作为软件开发全过程的信息管理总框纽,它的数据结构是相当复杂的,而且会随 时间不断变化,因此,保持一致性的任务变得十分复杂和艰巨。 模块的藕合性答: 模块之间的联系及互相影响应尽可能地少, 对于必需的联系都 应当加以明确的说明。而且一般来说,尽量避免传递控制信号,而仅限于传递处 理对象。这种联系及相互影响称为藕合性。 面向对象的程序设计面向对象的特别高设计是人们为模仿现实世界模型而建立 的程序设计方法, 这种思想源于对现实世界自然结构的认识。人们为了应付现实 世界的复杂性,逐渐形成了很好的概括、分类和抽象的能力,并在此基础上应用 于程序设计就形成了面向对象的概念。 遗传性答:抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然 地成为它的子类的性质,不必加以说明或规定。这就是所谓的“遗传性” 。 文档答:功能说明书、总体设计、各模块的设计任务书、每个部分的研制报告、 测试报告,直到最终的验收报告和给使用者的用户手册等通称为文档。 黑箱检验答: 输入一些信息, 通过观察是否能得出预期输出来判断软件是否正确 的一种软件测试方法。 封装性 答:客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的 操作。作为一个整体,这些对象对外不必公开这些属性与操作。 模块的凝聚性答:模块的功能在逻辑上尽可能地单一化、明确化,最好做到一一 对应。 即每一个模块实现一项明确的任务, 反之每一项任务仅由一个模块来完成。 此即为模块的凝聚性。 软件工程答: 为了从根本上提高软件开发的效率和质量,人们吸取在各种传统产 业中的成功经验, 从组织和管理的角度加强力量,使软件生产从程序员的个人劳 动提高成为有组织的、可控制的工程,这种开发软件的方法就是软件工程方法。 简言之,软件工程方法就是以工程化的观点来指导软件开发的方法。 软件开发工具答:在高级程序设计语言(第三代语言)的基础上,为提高软件开发 的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者 提供各种不同程度的帮助的一类新型的软件。其要点是: (1)它是在高级程序设 计语言(第三代语言)之后,软件技术进一步发展的产物;(2)它的目的是在人们开 发软件中给予各种不同方面、不同程度的支持或帮助; (3)它支持软件开发的全 过程,而不是仅限于编码或其他稳定的工作阶段。

  第四代语言(4GL)答:第四代语言的原意是非过程化的程序设计语言。针对以 处理过程为中心的第三代语言, 它希望通过某些标准处理过程的自动生成,使得 用户可以只说明要求做什么,而把具体的执行步骤的安排交由软件自动处理。

  可视化编程答:可视化编程:以“所见即所得”的编程思想为原则,力图实现编 程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。 总体测试答: 由于设计不可能是百分之百地完美的,即使每个模块都达到了设计 任务书的要求,整个系统能否达到预期的目标还需要进行测试,另外,完成的软 件与编写的文档是否一致也是必须认真检查的。这一测试称为总体测试。 所见即所得答: 在程序设计时, 对于界面上的设计只需要用键盘或鼠标在屏幕上 直接设计,不用手写代码。设计人员在屏幕上看到的界面,就是所生成程序的运 行界面。 设计工具答: 设计工具是指在实现阶段对人们提供帮助的工具。例如各种代码生 成器,一般所说的第四代语言,帮助人们进行测试的工具(包括提供测试环境或 测试数据)等,都属于设计工具之列;它是最直接地帮助人们编写与调试软件的 工具。 分析工具答: 分析工具主要是指用于支持需求分析的工具。它们虽不是直接帮助 人写程序, 但是它们帮助人们认识与表述信息需求与信息流程,从逻辑上明确软 件的功能与要求。 计划工具答: 计划工具是从宏观角度去看待软件开发的软件开发工具。它不仅从 项目管理的角度,帮助人们组织与实施项目,并且把有关进度、资源、质量、验 收情况等信息有条不紊地管理起来,而且考虑到了项目的反复循环、版本更新实 现了“跨生命周期”的信息管理与共享,为信息以至软件的重用创造了条件。 模块测试答: 模块测试是根据总体设计时制定的各个模块的设计任务书,对于程 序员完成模块进行验收看它们是否实现了所要求的功能是否达到了所要求的性 能指标。 需求分析答:软件开发人员从用户的初始要求出发,经过大量的调查研究工作, 抽象出应用领域中的实际的信息需求,设计出在计算机系统内外的、合理的信息 流程,并规定出软件系统的功能与性能要求。 程序答:程序是指一套事先编好并存人机器的指令。 所见即所得: “所见即所得”原则力图实现编程工作的可视化即随时可以看到结 果,程序的调整与后果的调整同步进行。

  开源软件: 开放源代码的软件。 由开发者或知识产权所有者开放该功能模块的源

  代码,提供给后续开发者免费使用。 运行时内核: Eclipse 中的平台运行库是内核, 它在启动时检查已安装了哪些插 件, 并创建关于其注册表信息。 JDK: Java 开发工具, 是一个写 Java 的 applet 和应用程序的程序开发环境。它是整个 Java 的核心,包括了 Java运行环境、 Java 工具和 Java 基础的类库 Eclipse CDT:专门用于编写 C 和 C程序的 Eclipse 开发环境。 Eclipse 工作台: Eclipse 工作台是一个高级用户界面, 它为用户提供了一个整 体架构和可扩展的用户界面。它是使用标准窗口工具包(SWT)和一个更高级的 API(JFace)来构建 Eclipse 工作空间: 工作空间是 Eclipse 在用户计算机磁盘上划出的一块区域, 用来存放用户工作资料,如代码、配置信息等。 Eclipse 的视图:视图是 Eclipse 工作台中的一个可视化的组件,它提供了用 户正在工作台中使用的一些对象的详细信息通常用来浏览工作台中的资源, 显示 编辑器中的属性显示程序状态等。 导航器视图:又称资源管理器,显示当前 Eclipse 集成环境中加载的所有项目 和各个项目中的文件列表。 大纲视图:显示当前活动编辑器中所打开文件的纲要,如函数、变量等的视图, 其内容是特定于某个编辑器的。 控制台视显示程序运行结果的视图。 错误视图:编写代码时,显示程序中的错误,提示用户及时改正的视图。 搜索视图:显示用户搜索结果的详细信息的视图。 任务视图:显示程序代码中未完成的任务的视图。 编译器:编译器是工作台中的一个可视化组件,是用来处理各种文档的,它允许 用户打开、编辑、查看和保存文档对象。 项目:在 Eclipse 集成开发环境中,每个小程序都是以项目为单位存在的,源 代码、注释、配置文件、各种文件夹等都封装在项目里。 归档文件:包括通过 Jar 命令或 War 命令打包后形成的压缩文件。 文件系统:指操作系统文件夹中的各类文件。 首选项文件:用户可以通过首选项文件来个性化定制 Eclipse 。

  MinGW 编译器:MinGW 是指用来生成纯粹的 Win32 可执行文件的编译环境,它 是以 GNU 为基础的开发 C/C 项目的工具集,能够提供 C/C所需要的头文件和库文件。 浏览功能: 浏览功能可以从多个角度快速查看并定位到程序中的各个元素包括代 码的层次结构、调用关系、继承关系等。 打开变量声明: Eclipse 提供的浏览功能, 可以从变量的任意引用位置直接定位 到变量的定义行。 打开类型层次结构: Eclipse 提供的浏览功能, 可以快速打开程序中已经在使用 的特定数据类型及其相关继承结构。 打开调用层次结Eclipse 提供的浏览功能可以浏览函数的定义与调用层次关系 并快速定位到需要的函数。 文件包含浏览器:用于浏览程序中包含的头文件。 打开元素:Eclipse 将命名空间、类、结构、类型定义符、函数、变量等定义为 元素,通过浏览功能,可以迅速打开需要的元素。 重构功能:使用 Eclipse 重构功能,可以在不影响程序行为的情况下进行系统 范围内的代码更改。 抽取方法: 将程序中多次出现的代码段抽取出来形成方法,可以减少代码的长度 并增加程序的可读性和易维护性,同时使方法的调用清晰简单。 抽取常量:抽取常量是将程序中的数字、字符等定义为常量,使得对常量的调用 和修改变得简单。 GDB:GDB 是 GNU 开源组织发布的一个强大的 UNIX (不仅限于 UNIX )工具, 搭配 MinGW 使用,可以使用户完成整个 C/C 程序的编译和运行工作。 断点: 断点是程序调试中的重要概念,它可以使程序在运行到断点位置时自动暂 停并且显示程序的当前状态。 方法断点: 对某个方法或函数设置断点,在程序运行到该方法的第一行时自动暂 停。 事件断点:在程序运行过程中发生特定事件时(如异常触发、线程启动、线程退 出等)将程序暂停。 调试视图:显示当前调试的程序的线程和所处的状态。 变量视图: 显示整个调试过程中程序变量值的变化情况,变量视图是帮助程序员

  差错和纠错的主要手段。 单步遍历程序:单步遍历程序可以让用户逐行地运行整个程序。 单步跳入:线程将运行所在行的程序,并在下一个可暂停位置后暂停执行。 单步跳过: 线程将跳过该行, 并运行至下一个可暂停位置后暂停执行。 单步返回: 单步返回仅对函数调用时有效, 如当 main 函数调用其他函数时,执行单步返回 操作即可跳出该函数返回 main 函数继续执行调试。 格式化代码: 格式化代码功能可以帮助用户将凌乱的程序代码格式化为自己习惯 的排列方式。 版本控制软件: 版本控制软件能够完整的保存软件开发中对应用程序每一个源文 件所有的修改记录。 并发版本控制系统 CVS:使用 CVS 可以对代码进行集中管理,记录代码所有的 更改历史,提供协作开发的功能并支持多人同时修改代码文件。 互斥性修改:某一程序在同一时间只能由一个开发人员修改。 资源库:资源文件的集合。即软件资源的存放地,是放置开发的代码并对其进行 控制管理的一个文件夹。 工作备份:用户对资源的修改不是直接在 Server 端进行的, 而是根据资源库的内容创建一个本地的工作备份,用户在工作备份中工作,工作 完成后再将修改的内容提交到资源库。 提出(签出)Check Out:获得工作备份的操作。从 CVS 资源库中复制一个软件 镜像到本机的工作空间中,此时代码和 CVS 中的代码是一致的。这项技术称为 “提出”。 提交:将对工作备份的修改反映到资源库中的操作。 代码同步:程序开发过程中,本地代码和 CVS 资源库代码可能会产生差别,这 可能是代码之间存在增减或冲突等关系造成的, 代码同步操作可以使代码保持一 致。 CVS中的冲突:在资源库与工作备份之间状态不一致的状态下进行签入或更新操 作时, 版本管理系统可能会尽量进行合并,如果版本管理系统不能完全处理上述 不一致,就称之产生了冲突。 插件: 插件是一种遵循其所依附的软件的接口规范所编写出来的程序,是对原有 软件的扩展。

  惰性导入机制:在 Eclipse 启动时,仅加载必要的核心,其它的功能插件使用 时才加载进来,这样节省了大量的导入和初始化插件的时间,提高了 Eclipse 平台的运行效率,这一机制称为惰性机制。 PDE:插件开发环境,帮助开发者创 建、开发、测试、调试和部署插件,同时提供开发片段、功能部件和更新站点的 工具,协助开发者完成插件开发的全过程。 UML:统一建模语言,是一种面向对象的建模语言,它提供了描述软件系统模型 的概念和图形表示法, 采用了面向对象的技术和方法,体现面向对象的分析与设 计风格。 它可以实现大型复杂系统各种成分描述的可视化、 说明并构造系统模型, 以及建立各种所需的文档, 是一种定义良好易于表达功能强大且普遍适用的建模 语言。 抽象: 抽象是人们认识客观世界复杂性的一种基本方法。抽象是事物或现象的简 括描述,突出事物或现象之间的共性,而暂不考虑它们之间的差异。 方法:方法是驻留在对象中的过程。方法是当对象接受消息时执行的操作,方法 还能发送消息至其他请求动作或信 息的对象。 类:类是对一组几乎相同的对象的描述。 属性:属性由静态的数据组成,用以描述类和对象所固有的特征,是类和对象的 性质。 封装:封装即信息隐藏。封装使一个对象形成两个部分:接口部分和实现部分。 对用户来说,接口部分是可见的, 而具体实现部分则不可见。 继承:继承指对象继承它所在类的结构。体现了父类和子类之间的共享机制。子 类可以继承其父类的特性,同时可以有自己的新特性和新方法。 多态: 多态指不同事物具有不同表现形式的能力,多态机制使具有不同内部结构 的对象可以共享相同的外部接口, 不同对象接到同一个消息可以产生完全不同的 结果。 组件:组件是一个可重用的软件构件,一个预先构建的封装的代码模块,它能够 与其他组件或硬编码一起很快地生成定制的应用程序。 视图:视图是从不同角度来观察待建模的系统。它是由多个图表组成的抽象体。 使用事件视图(用例视图):从系统外部使用者对系统的需求来描述该系统工程 所应具备和完成的功能,是 UML的核心视图。 逻辑视图: 用于描述系统内实现的逻辑功能。它描述了系统的静态结构关系和系

  统内的动态协作关系。 组件视图:从系统实现的角度描述模型对象间的关系。 配置视图: 用于说明系统的物理配置,如所用的计算机和设备以及相互间的连接 关系。 用例图:用于描述外部项与系统提供的使用事件之间的联系。 类图:用于描述系统的静态结构。 对象图:用于表述系统的静态结构。它使用与类图一样的符号表示, 但不是同 一种图,对象图表示的是类中的许多对象实例,而不是类本身。 状态图用于说明类中的对象可能具有的状态以及由事件引起状态改变。 顺序图:用于描述对象间的动态协作关系。由一条纵线上的一些对象组成,以时 间流动为方向,表达对象间消息 的交换。 协作图用于描述对象动态协作关系。 活动图:用于描述系统活动的流程。 组件图:用于描述组件代码的物理结构。可以是代码组件、二进制文件或任意可 执行的组件。 配置图:用于描述系统中软件和硬件的物理结构。 模型元素:各种图表中所用的概念符号称为模型元素。 UML 的基本机制:UML 的基本机制表现为各种图表上的附加信息,用于描述那些 模型无法表达的内容。包括修 饰、注释、说明三种方式。 简述软件开发工具的演变过程和原因 软件开发工具的演变是从无到有, 从分散到集中的过程, 是软件发展的必然趋势。 主要分为四个阶段: 第一阶段:利用通用软件作为辅助工具的阶段——没有专用软件开发工具的阶 段。 第二阶段:专用的软件开发工具阶段。如: 第三阶段:集成的软件开发工具阶段。如: 第四阶段:面向网络和开源软件的软件开发工具阶段。 试论述软件开发方法发展的新阶段的特点。 答:要点:(1)自动化程度的提高。(2)明确地把需求分析包括进了软件工作的范

  围之内。(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局 限。(4)在这一阶段的研究中,吸收了许多管理科学的内容与方法,如程序员的 组织、质量的控制等。 软件开发工具的性能指标: 表达能力或描述能力 保持信息一致的能力 使用的方 便程度 工具的可靠程度 对硬件软件的环境的要求

  软件开发工具概念的要点是什么? 答: (1)它是在高级程序设计语言(第三代语言)之后, 软件技术进一步发展的产物; (2)它的目的是在人们开发软件中给予各种不同方面、 不同程度的支持或帮助; (3) 它支持软件开发的全过程,而不是仅限于编码或其它稳定的工作阶段。 试述软件开发的过程。 答:(1)需求分析阶段:根据初始要求形成严格的、明确的、可供实际开发使用 的软件功能说明书。(2)总体设计阶段:根据软件功能说明书的要求,完成软件 的总体设计,这包括整个软件的结构设计,公用的数据文件或数据库的设计,各 部分的连接方式及信息交换的标准等几个主要内容。 (3)实现阶段:完成程序的 编写与文档的编写。(4)调试阶段:进行模块的调试与整个软件的联调。 学习软件开发工具的目的是什么? 答:了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能 够在实际工作中正确地选择与使用软件开发工具, 在必要时能够参加或组织软件 开发工具的自行研制, 从而达到提高软件工作水平与效率之目标。这就是学习软 件开发工具的目的。 试述软件开发工具的类别。 答:(1)按支持的工作阶段划分:设计工具:是最具体的工具,在实现阶段对人 们提供帮助。 分析工具:主要用于支持需求分析。计划工具:从更宏观的角 度去看待软件开发。(2)按集成程度划分:单向工具:专用的、面对某一工作阶 段或某一工作任务的工具。 集成工具: 集成化的、 面对软件开发的全过程的工具。 (3)按与硬件、软件的关系划分:依赖于特定机器或软件的工具。独立于机器与 软件的工具。 试述现阶段软件技术的特点 答:(1)自动化程度的提高。由于代码生成等技术的应用,在一些特定的条件下, 可以较容易地自动生成第三代语言(或更低级的语言)的代码,从而大大节省人力 和时间。(2)明确地把需求分析包括进了软件工作的范围之内,从而使软件开发 过程进一步向用户方面延伸, 离用户更近了。 这是软件技术向前迈进的重要一步。 (3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩 展到了作为一个不断发展的客体生长完善的全过程。这也是软件研制从个体的、 手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。 (4)在 这一阶段的研究中,吸收了许多管理科学的内容与方法,如程序员的组织、质量 的控制等。

  软件开发工具的范围是什么? 答:软件开发工具的范围大致可以描述为:在高级程序设计语言(第三代语言)的 基础上,为提高软件开发的质量和效率,从规划、分析、测试、成文和管理各方 面, 对软件开发者提供各种不同程度的帮助的一类新型的软件。对于本概念可以 从以下几个方面去理解。首先,它是一类软件,是开发软件用的软件。其次,它 是在第三代语言的基础上发展起来的。第三,这里强调对软件开发全过程中各个 阶段的支持。 软件开发工作的发展过程是什么? 答:四个不同的阶段(1)用机器语言开发软件把用户已经明确表述出来的算法, 用机器语言写成一系列机器指令,供硬件运行使用。这是人们对软件开发工作的 最初的认识。(2)用汇编语言开发软件,由汇编程序完成转换。汇编语言产生之 后, 编程工作改为用汇编语言进行, 编好的汇编指令由汇编程序转化为机器指令, 再交硬件执行。软件开发工作离硬件远了,离用户近了(3)用高级语言开发软件, 由编译程序完成转换高级程序设计语言不再与机器指令一一对应, 而且更加接近 人类习惯的自然语言。软件开发离机器更远了,离用户更近了 (4)在各种软件开 发工具的帮助下开发软件, 由编译程序完成转换。这是软件开发工作发展的新阶 段,也使软件开发工作的概念从一次性的、具体的编程,扩大到了长期的、不断 更新的过程。 试述用通用软件帮助软件开发的弱点 答: 用通用软件来帮助软件开发人员编写文档或画图可以减少不少工作量,但是 这种帮助实在是太表面、 太初步了。 用通用软件帮助软件开发有三个主要的弱点。 第一,有许多工作是通用软件所无法完成的。第二,用通用软件完成某些工作, 只能表现出其表面的 形式,而不能反映其逻辑内涵。第三,用通用软件来 帮助人们完成软件开发工作时,常常遇到难于保持一致性的困难。 软件开发分为那几个阶段,各阶段的文档是什么? 答:(1)需求分析。根据初始要求形成严格的、明确的、可供实际开发使用的功 能说明书。(2)总体设计。根据软件功能说明书的要求,完成软件的总体设计, 这包括整个软件的结构设计用的数据文件或数据库的设计, 各部分的连接方式及 信息交换的标准等几个主要内容。(3)实现阶段。完成程序的编写与文档的编写。 (4)测试或调试阶段。包括模块的调试与整个软件的联调。

  简述软件开发工具的功能要求 答:(1)认识与描述客观系统。主要是用在软件开发工作的第一个阶段——需求 分析阶段。需求分析工作不确定程度高,更需要经验,更难形成规范化, (2)存 储及管理开发过程中的信息 在软件开发的各阶段都要产生及使用许多信息 (3) 代码的编写或生成 在整个软件开发工作过程,程序编写工作占了相当比例的 人力物力和时间, 提高代码的编制速度与效率显然是改进软件工作的一个重要方 面。(4)文档的编制或生成文档 编写工作也是软件开发工作中十分繁重的一项 工作,不但费时费力,而且很难保持一致。在这方面,计算机辅助的作用可以得

  到充分的发挥。(5)软件项目的管理 这方面的功能更明确地是为项目管理人员 提供支持,而不是为程序员提供支持。 简述软件开发工具的项目管理功能。 答: 项目管理功能明确地是为项目管理人员提供支持, 而不是为程序员提供支持。 一般来说,项目管理包括进度管理,资源与费用管理,质量管理三个基本内容, 在这方面项目管理已有不少成功的经验、方法与软件工具。对于软件项目来说, 还有两个比较特殊的问题。 首先是测试工作方面的支持,由于软件的质量比较难 以测定, 所以不仅需要根据设计任务书提出测试方案,而且还需要提供相应的测 试环境与测试数据。人们很自然地希望软件开发工具能够在这些方面提供帮助。 另一个问题是版本管理问题。当软件规模比较大的时候,版本的更新,各模块之 间以及模块与使用说明之间的一致性,向外提供的版本的控制等,都带来一系列 十分复杂的版本管理问题。如果软件开发工具能够在这些方面给予支持或帮助, 无疑将有利于软件开发工作的进步。 为什么说高级语言出现后计算机真正获得了应用? 答: 第三代语言突破了与机器指令一一对应的限制,用尽可能接近自然语言的表 达方式描述人们设想的处理过程,而把这种表达方式向机器指令的转化工作,交 给专门的“工具”——编译系统去完成。另一个重要的变化是高级设计语言实现 了对机器的独立性, 即它不依赖特定的硬件系统, 抽象地逻辑地描述处理和算法, 而把硬件系统之间的区别交给不同的编译系统去处理, 从而大大提高了程序的可 移植性。这一进步的影响非常巨大、非常深远。从六十年代以来,面向各个领域 的,面向各种应用的程序设计语言如雨后春笋般涌现出来,至今势头不减。也正 因为有了这些语言,在短短的二、三十年中,计算机技术才真正地获得了应用。 何谓第四代语言的非过程化思想? 答:人们希望机器能够自动地完成某些工作,包括自动安排某些(不是全部)工作 的顺序, 而做到只要给机器下达做什么的命令, 由机器自己去安排执行的/顷序。 这就是第四代语言——非过程化语言的思想。 软件工作的重要性何在? 答:软件工作的重要性现在已经为越来越多人所认识。软件是计算机的灵魂。的 确,如果没有相应的、适用的软件,计算机是不可能在各种应用领域中发挥作用 的。我们可以进一步说,软件是广大使用者与计算机之间的桥梁,软件是人类在 各个领域中积累的知识的结晶, 软件是人类文明与知识得以延续的新的载体,软 件是人类进一步成为一个整体,得以进一步相互联系的纽带。 集成化的开发工具是在什么背景下产生的? 答: 由于大量的专用软件开发工具的出现,为软件开发的各个阶段提供了具体的 支持,但它们是零散、分散地支持各个工作阶段,这些专用工具之间没有有机地 联系起来,从而必然造成冲突与矛盾。这就给用户造成了沉重的、不堪忍受的负 担,使用工具越多这种负担越重,以致抵消了使用工具带来的益处。这种情况导 致了集成的软件开发工具的产生。 试述软件开发工具的性能指标。

  答:(1)表达能力:因为软件项目的情况干变万化,软件开发工具要能够适用于 某些软件项目, 就要能适应软件项目的种种不同的情况,否则就不可能对软件开 发提供有效的、实际的帮助。(2)逻辑能力(一致性的保证)软件开发工作要求软件 开发工具不但要为人们存储大量的有关信息,而且要有条不紊地管理这些信息, 而管理的主要内容就是保持它的一致性, 至少在出现不一致的情况时要能够给出 警告与提示。(3)人机界面水平(易用程度)对于软件开发工具来说,是否易用是一 项重要的性能指标。(4)防错能力(可靠性)软件开发工具应当具有足够的可靠性, 即在各种各样干扰下仍能保持正常工作,而不致丢失或弄错息。 (5)对硬软环境 的要求软件开发工具对环境的要求不应当超出它所支持的应用软件的环境要求, 有时甚至还应当低于应用软件的环境要求。 软件开发工具的环境要求应当尽量降 低,以有利于广泛使用。 什 么是对 象 ? 答:面向对象的方法是人们试图解决软件危机的一种尝试。 E.Yourdon 在回顾从事信息处理工作的实践经验中,谈到了多次出现的矛盾与 冲突,认为其根源在于割裂了数据和功能这两个要素。如果从一开始,就把数据 和功能结合在一起,即把信息的静态属性-数据结构,和的处理-功能模块,从 根本上结合起来,那么这些矛盾和冲突也就迎刃而解了。这就是“对象这个概念 的由来。 什么是即插即用的软件设计方法答: 一部分人专门生产软件组件, 而另一部分人 则构造整个软件的结构, 并且把软件组件插入这个结构,以便迅速地完成大型软 件的研制工作,这就是即插即用的软件设计方法。 试述软件组件的概念答:软件组件相当于硬件中的芯片,具有一定的标准,如输 入输出的格式、参数的数量与类型类型等。从另一方面讲,软件组件 C++库中的 函数是一回事。 如果类库中有足够多的类及相应的函数的话,程序设计的工作量 就会减轻许多。 什么是标准化的软件部件? 答: 标准化软件部件指按一定的标准制作的软件组件,如同硬件芯片那样为大家 共用, 因而要对每一个输入与输出进行详细的规定。对一大批变量与结构进行说 明和定义,而这些至今尚无统一的标准。特别是对于各种对象的定义,很难写出 标准。 试述结构化程序设计的要点 1) 限制甚至不用 GOTO 语句, 绝对禁止超越模块边 界的 GOTO 语句。2)子程序尽可能做到只有一个入口、一个出口。3)程序风 格应尽量明确、清晰,包括适当增加注释,书写格式体现层次结构(如循环内的 语句一致地右移两格) ,变量名称的选用尽量具有逻辑意义等。4)在程序编写的 同时完成有关的文档编撰,不要拖延时间。 工程化思想的要点是什么?答: 对一项工作的步骤作出严格的规定, 其顺序决不 能颠倒, 前一项任务没有完成或没有达到必要的标准时, 后一项任务就不能开始, 每一个阶段都有各自的明确的任务,明确的起点,明确的终点,特别是要有确切 的、可以检查的成果。

  软件工程的基本方法是什么?1)对于软件开发的工作过程进行规范。将软件开 发过程分为若干个阶段,如需求分析、总体设计、编码、测试、运行及维护等。 2)加强标准化。一方面是表达方式的标准化,另一方面是对工作的质量及检查 制订标准 设置检查点, 面向对象的程序设计方法的要点?答 1)客观世界的任何事物都是对象,它们都 有一些静态属性,也都有一些有关的操作。作为一个整体,这些对象对外不心公 开这些属性与操作。2)对象之间有抽象与具体,群体与个体,整体与部分等几 种关系。这些关系则构成对象的网络结构。3)抽象的、较大的对象所具有的性 质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以说明或规 定。4)对象之间可以互送消息,这一消息可以是传送一个参数,也可以是使这 个对象开始某个操作。 大型软件开发中的困难有哪些?答:1)一致性的保持。每个人对这些问题的理 解可能有同,而程序的编写又是个人的、脑力的劳动,很难加以控制。2)测试 的问题。修改程序时,改动一处,影响到多处而检验只能证明程序有错,不能证 明程序没错 3) 工作进度的控制。 4) 文档与代码的协调 5) 版本更新带来的问题。 很容易出现新版本中各部分代码不一致和代码与文档不一致的情况。 大型软件开发时产生困难的原因何在 ?答 (1)大系统的复杂性。大系统之所以复 杂,是由于量的变化引起了质的变化。同一个问题,在小程序中容易解决,而在 大型软件很难处理。(2)多人协同工作的组织管理。当组织许多人共同完成一项 大的软件开发任务时,分工和协调颇为关键。分工是否合理,信息是否能及时地 沟通,步调是否能一致,都需要精心地安排与考虑。(3)领域知识与软件技术 (4) 时间因素及变更因素。用户需求的变化,社会环境的变化,硬件及相关技术的变 化,处处给软件工作提出新要求 组合文件的思想是什么?答组合文件的思想源于硬件制造。 一部分人专门生产相 当于芯片的软件组件,而另一部分人则构造相当于计算机结构的整个软件的结 构,并且把软件组件插入这个结构,迅速地完成大型软件的研制工作。 试述面向对象的的基本特征和优点。 答:(1)封装性:把数据和对它的处理综合成一个整体。 (2)遗传性:类与子类之 间属性的传递。(3)多态性:同样的消息被不同的对象接受以后,会因不同对象 中所含方法的不同,而导致不同的行动。 (4)持久性为对象分配空间确实驻留内 存时间长短保证内存的有效使用 怎样建立一个好的项目组 ?答:(1)有严格的工作规范和文档标准必须要有严格 的、成文的工作规范和文档标准,而且应当为全体成员所熟知,并且切实得到遵 守。(2)人员之间有严格的分工。除了程序员之外,必须有专门的秘书(负责文档 的收集、审核及保管),必须有专门的测试人员(负责测试和验收有关的部分),特 别是要有专职的,不限于具体编程的项目负责人。 (3)每个项目有详细的时间安 排并严格执行每个项目都要事先制定详细的时间表,并且得到严格执行。每一项 目完成之后都有完整的资料, 并得到妥善保存,一旦需要修改或更新版本时可以 立即使用。

  项目组对程序员的约束有哪些?答:(1)保证严格地在本模块范围内操作,决不要 使用可能干扰其它模块的命令或函数。 (2)严格按总体设计的要求和理解去传递 参数值,决不要随意修改其内容或含义。(3)在对公用的文件或数据库进行存取 时,必须完全地、准确地按统一规定的格式去操作,决不能擅自改变。 (4)在使 用标识符时,应按照统一的原则,尽量使用易于看出逻辑含义的名称。特别是涉 及公用数据及参数的时候。(5)严格按照统一的要求编写文档,在内容、格式、 表达方式、符号使用上遵循项目组的统一规定。 (6)尽量保持程序风格的一致。 如注释行的安排,行首空格的使用等。 软件质量的评测有哪些? 答:(1)正确性:正确地实现所要求的功能,准确地给出预定的输出结果。 (2)易 用性:用户界面友好,符合实际用户的使用习惯与知识能力。 (3)效率:具有足 够的速度,能在符合用户要求的时间限度内,给出所要求的处理结果。 (4)可靠 性:具有足够的可靠性,能够在各种干扰下保持正常的工作。 (5)可维护性:程 序易读,结构良好,文档齐全,从而保证系统易于修改。 IBM 的 AD/Cycle 把软件开发过程分为那几个阶段?各阶段的任务是什么? 答:五个阶 1)第一阶段,需求分析,其任务是:了解企业的结构与功能,掌握 组织及管理者的信息需求,弄清信息流通的实际情况。(2)第二阶段,分析与设 计阶段,其任务是:进行功能分解及数据分析,完成处理过程及数据库的逻辑设 计。(3)第三阶段,编程阶段,其任务是:完成具体的程序编写工作。(4)第四阶 段,测试阶段,其任务是:对已有的代码进行认线)第五阶段, 使用及维护阶段,其任务是:组织使用者有效地使用,并及时检查与修正发现的 错误。 简述面向对象方法出现的背景。 答:面向对象的方法是人们试图解决软件危机的一种尝试,近年来,随着 C, Smalltalk 等面向对象的语言的普及,这种方法得到了广泛的传播。E.Yourdon 在一本书中曾回顾了他自己从事信息处理工作多年的实践经验。 他谈到了多次出 现的矛盾与冲突, 认为其根源在于割裂了数据和功能这两个要素,因此两方面之 间的认识和结论越差越远。 如果从一开始,就把数据和功能不可分割地结合在一 起,即把信息的静态属性—数据结构,和对它的处理——功能模块,从根本上结 合起来, 那么这些矛盾和冲突也就迎刃而解了。 这就是面向对象方法出现的背景。 面向对象程序设计方法对软件开发工作有何影响? 答:面向对象的程序设计语言使程序设计的思想方法越来越接近人们思维的方 式。它屏弃了持续好久的“自顶向下”和“自底向上”的争论,把对于复杂系统 的认识归结为对一批对象及其关系的认识。事实上,对象这个概念是相对的,它 的选择是和信息处理的目的的相连的。在认识的无穷的阶梯式的层次结构中,原 则上每一层都可以作为观察的基点,认识的方法既不是笼统地自顶向下,也不是 笼统地自底向上, 而是在于合理地选择层次,使得系统的复杂性保持在可控制的 范围内,而不致由于细节过多而无所适从。因此,面向对象的程序设计语言使软 件工作进一步向用户方面靠近, 这对于计算机应用深入到各个应用领域是十分有 利的。面向对象的程序设计语言的出现,使软件开发工作更加方便。

  即插即用程序设计方法实现起来有何困难? 答:有两个困难。1)标准化的问题。软件部件很复杂,它涉及一大批变量与结构 的说明与定义的标准。而这些至今没有统一。2)软件部件的提供方式问题。软件 部件应当是封装起来的,以二进制的机器代码方式提供,看不到源程序,一般来 说不必了解也不能改动它的内部过程。但是,这就出现了与硬件、与操作系统的 关系问题。目前仍存在着多种硬件,多种操作系统,即使 UNIX 也还有许多大同 小异的版本。但按这样的思想设计的软件部件不能容忍这种差异的,哪怕是“小 异” ,它要求的是绝对相同。 自顶向下的设计方法。 答:在实施模块划分时,不管软件多大,都采取自上而下、逐步分解的办法,分 成若干部分, 并把它们之间的关系明确地表达出来,直到最低层的模块达到所要 求的规模为止。 简述应用领域之间的差别给软件开发带来的困难。 答:软件作为应用领域与硬件之间的桥梁,一头是固定的,另一头却是变化无穷 的。世间各行各业尽管都要用到信息,都力图与现代信息技术相结合,但是它们 之间的差别却是如此之大,给软件开发工作者带来了许多困难、 几十年来,为了提高软件开发的水平和效率人们提出了哪些软件开发方法?结 构化程序设计方法, 软件工程方法面向对象的程序设计方法,即插即用的程序设 计方法,面向开源软件的程序设计方法 大型软件开发过程中涉及几种角色,他们承担的工作有:(1)用户:提出需求、 验收软件、使用软件、提出修改要求 2)程序员:编程、写文档、调试自己的程序、向项目负责人提交工作成果3)项 目负责人:分析用户需求形成设计方案、向程序员分配任务、验收程序员的工作 成果、对整个软件联调、向用户交付使用、接收与分析用户的修改要求、向程序 员分配修改任务、验收修改成果、向用户提交新的版本或修改的结果(4)计算 机硬件:运行、试运行 结构化程序设计方法中,如何实施模块的划分? 答:方法是:不管软件多大,都采取自上而下、逐步分解的方法,分成若干部分, 并把它们之间的关系明确地表达出来, 直到最低层的模块达到的所要求的规模为 止。基本要求:1 模块的基本功能在逻辑上尽可能单一化明确化最好做到一一对 应 2 模块的间的联系和互相影响尽可能的少对于必须的联系加以明确说明 3 模块 的规模应当足够小以便易于调试 结构化程序设计的缺点是什么?如何看待这些缺点? 答:其缺点是它增大了程序工作量,增加了编程中的麻烦与琐碎的工作,并且降 低了程序的运行效率。但是,使用这种方法,可以保证软件的可靠、准确,而且 使软件易于修改,故这种代价是值得的。 简述软件工程方法的由来。 答:工程常常是指复杂的、需要认真组织的、有许多人参加的事情。工程的观点 是和近、 现代的大生产联系在一起的,它是和依靠个人技艺的手工的生产方式相 对立的。 人类的生产从靠工匠手艺到靠工程化生产是一个重要的进步。这个思想

  正是软件工程思想的由来。由于软件危机的发生,人们认识到,把软件的质量寄 托于各个程序员的技能与认真负责是不牢靠的、危险的,也是不现实的。要想大 幅度地从根本上提高软件开发的效率和质量, 就应当吸取人们在各种传统产业中 的成功经验, 从组织和管理的角度加强力量,使软件生产从程序员的个人劳动提 高成为有组织的、可控制的工程,这就产生了软件工程。 即插即用程序设计方法的要点是什么? 答:一部分人专门生产软件组件,而另一部分人则构造整个软件的结构,并且把 软件组件插入这个结构,以便迅速地完成大型软件的研制工作。 人们对即插即用程序设计方法的态度如何? 答:在即插即用程序设计方法中,由于标准化问题和软件部件提供方式问题,对 于这种思路的实现可能性仍是众说纷纭。 赞成者认为这将彻底改变程序设计的概 念,加上可视化等方法,总有一天会实现不用写程序的软件开发。但是,持怀疑 态度的人认为,由于应用系统的复杂多样,公共的部件库是不可能实现的,至少 在某个特定的领域中可以有限制地实现。也有人认为,如果真分解到能封装起来 的程度, 那也就和高级语言的语句差不多了,至多不过是把编译功能加强一点罢 了。 无论如何, 这是人们试图解决软件危机的一种尝试。 其结果如何尚有待观察。 软件开发的基本问题是什么? 答: 软件开发中的基本问题是两个转换,一是从用户的理解到程序员的理解的转 换,另一是从程序员的理解到程序的实现的转换。 保证从用户的理解到程序员的理解这一转换顺利完成的手段是什么? 答: 保证这一转换顺利完成的手段就是利用尽可能标准化的方法编写程序设计任 务书,用明确的语言或图形、表格,把程序要处理的信息的内容、格式、来源、 去向、存储与处理清楚地表达出来,作为双方共同的理解。 保证从程序员的理解到程序的实现这一转换顺利完成的关键是什么? 答:保证这一转换顺利完成的关键在于程序员的知识水平与实践经验。 在开发大型软件时,版本更新会带来怎样的困难? 答: 版本更新是大型软件开发工作的不可缺少的部分。版本更新的大量工作往往 在于审核与回顾, 包括对代码和文档两方面的认真检查。 这种工作是十分繁琐的, 它需要人们付出艰苦的劳动,但成果往往不明显。因此,在这种情况下,很容易 出现新版本中各部分代码不一致和代码与文档不一致的情况。 举例说明为什么大系统比小系统复杂得多。 答:例如,一个程序如果只有五十行,那么,不管出现什么问题,都是好解决的。 但是,如果一个软件有五十万行,那么即使是最简单的问题,如搜索、标识符选 用等都会成为相当困难的问题。这是由于量的变化造成了质的差别。正因如此, 大系统比小系统复杂得多。 在开发大型软件的过程中,为什么软件开发人员的组织与协调会带来困难? 答:从管理学的观点来看,当组织许多人共同完成一项大的软件开发任务时,分 工和协调就成为关键因素。分工是否合理,信息是否能及时沟通,步调是否能一

  致,这都不是自然形成的,都需要精心地安排与考虑,因而许多具有主动性的个 人之间的组织与协调本身也带来大量的困难。

  为什么时间因素、变更因素也会给软件开发工作带来困难? 答现实的社会经济生活每日每时都在变化, 作为与社会生活紧密联系的应用软件 当然也处在不断的变化之中。用户需求的变化,社会环境的变化,硬件及相关技 术的变化,无处不给软件工作提出新的要求。这种易变的性质,自然给软件开发 工作带来了不少困难。 什么是数据仓库? 答: 数据仓库是近年来针对大批数据的分析利用而提出来的概念, 其基本思想是: 现实中的大量原始数据与实际的应用是具有相当距离的, 为了能够切实为企业管 理者提出对管理真正有用的信息,就要对信息或数据进行多次的加工或提炼,从 而得出许多派生的或综合的数据。 什么是数据库? 答: 数据库是指在文件系统基础上发展起来的一种数据管理技术,其重点在于合 理地组织数据,体现出数据之间的逻辑关系,并尽可能地帮助用户检索,减少冗 余。 试述版本管理的意义与方法。 答:版本管理的重要意义在于保持一致性。从时间上来说,后续的工作与以前的 工作一致;从系统各部分之间的关系来说,它要求每一局部与整体保持一致。版 本管理的具体方法包括规定长远的版本更新计划, 制订与版本有关的信息范围及 收集、管理方法,在项目组内明确分工,在程序编写、测试、文档缩写等工作中 贯穿项目管理的思想及要求。 软件开发过程中设计的信息类型有哪些? 答:(1)需求信息:用户提出,分析人员采集,系需求分析及设计的依据。2)设计 信息:分析人员(或设计人员)根据需求分析形成,体现为设计方案。3)软件成果: 程序员根据设计方案,依据某种计算机语言编制出来的代码(程序)。4)变更信息: 用户在使用过程中逐步形成,由维护人员收集、整理,并实施必要的修改。 软件开发过程中常用的概念模式有哪些? 答:(1)框图:用于描述程序执行的逻辑过程。(2)结构图:用来表示大型软件的 层次结构, 即模块结构。 3)数据流程图: 用于描述某一业务处理系统的信息来源、 存储、处理、去向的全面情况。4)实体关系图:用于描述静态数据结构。5)数据 字典:用于描述数据内容。6)时序网络:用于描述系统状态及其转换方式。7)数 学与逻辑模型:用于描述客观系统的状态或运动规律。8)计算机模拟模型:用于 以程序的形式来实现客观系统中的某些规律或规则, 以便人们观察与预测客观系 统的状况。 项目管理的含义与内容是什么? 答: 项目管理是指与固定的生产线上的日常生产管理不同的, 具有更大的变动性、

  时间性的另一类管理任务。 项目管理的内容包括: 进度、 质量、 费用和资源利用。 软件开发过程中的信息管理有哪些? 答: (1)合理存储, 包括一致性检查与维护和方便迅速地查询与调用。 2)正确转化, 即在许多环节上正确地进行数据的转换或加工。3)顺畅流通,使信息交流渠道通 畅无阻。 信息库的研究方向是什么? 1)信息库的内容: 有关软件开发全过程的所有有用的信息(2)信息库的功能:除增 删改等数据库的基本操作外, 还需要把计算机内外的信息存储统一起来管理,还 需要认真设计有关界面以便使用。(3)信息库的一致性:信息库中的信息需要不 断更新。但原有内容一般不删除,新信息存入时,老信息只是加上时间标志移入 历史信息中去,并且它还与新的信息保持着历史的、逻辑的联系,在需要时可以 随时再调出来。 项目管理的目标是什么? 答:(1)质量控制。 (2)进度控制。 (3)资源质量控制。4)费用控制。控制与降低 成本。成本的降低是项目管理状况的综合 的最终体现。 AD/Cycle 包括哪三个方向的接口? 答:对程序员的接口 CPI,对其它计算机系统的接口 CCS,对用户的接口 CUA。 CUA 这一部分包括八种人机交互手段:键盘操作、屏幕滚动、菜单选择、帮助 系统、鼠标操作、色彩运用、数据录入、信息显示。 简述数学与逻辑模型的作用、基本思想及优、缺点。 答: 数学与逻辑模型用于描述客观世界状态与规律。数学与逻辑模型的基本思想 是用一些数学公式或逻辑表达或来描述客观系统的状态或运动规律。 数学与逻辑 模型的最大优点是严格、准确、可计算,也正因为如此,所以限制颇多,一般只 能描述比较单纯、比较基础的功能。 简述数据流程图(DFD)的作用、基本思想。使用范围。 答:数据流程图用于描述某一业务处理系统的信息来源、存储、处理、去向的全 面情况。 数据流程图的基本思想是把信息流看作—个组织或系统运作的线索,力 图简明扼要地勾画出全局。 简述 DD 的作用、基本思想、使用范围。 答:DD 用于描述数据内容。DD 的基本思想在于以表格的形式列出数据的基本 属性以及相互关系, 作为人们对于数据的认识和了解。 DD 更适于记录各种细节, 所以常常与其他描述工具互相补充、配合使用。 简述时序网络的作用、基本思想、使用范围、图例及优点。 答:时序网络的作用、基本思想、使用范围、基本图例及优点:时序网络用于描 述系统状态及其转换方式。时序网络的基本思想是,当满足某个条件时,系统从 一个状态向另一个状态转换。 时序网络常常用于一些实时控制方面的软件的功能

  描述。 版本管理的方法是什么? 答: 版本管理的具体方法包括规定长远的版本更新计划,制订与版本有关的信息 范围及收集、管理方法,在项目组内明确分工,在程序编写、测试、文档缩写等 工作中贯穿项目管理的思想及要求。无论对于软件产品来说,还是对应用系统来 说,用户的反馈信息是版本管理的重要资源。 版本管理的核心是什么? 答:版本管理的核心是保持两个一致性。从时间上来说,它的主要关心点是系统 的逐步完善,以前已经达到的成果不要丢失掉,而且在需要时可以回溯,并且在 必要时可以重用; 而每一步新的进步都要切实与以前的工作一致,是改进而不是 破坏或降低系统的已有功能。 从系统各部分之间的关系来说,它要求每一局部与 整体保持一致, 合理地判断每一次修改的必要性及影响范围从而合理地组成每一 个新的版本, 并通过命名、 编号等方法使新的版本成为系统进步的漫长过程中的 一个台阶一个有目的有方向的稳定的进步。 什么叫项目管理?其特点是什么? 答: 项目管理是指与固定的生产线上的日常生产管理不同的, 具有更大的变动性、 时间性的另一类管理任务。 它的典型代表是建筑工程的管理,特别是大型建设工 程,如水电站的建造、高炉的大修或改造、铁路或公路的修建等等。项目管理具 有以下四个突出的特点。第一,子任务多,关系复杂。第二,任务不可重复,形 势不断变更。第三,协调组织的任务十分突出,资源浪费闲置的风险与合理地优 化组合、提高效益的机会并存第四,信息处理工作的作用与意义更为突出。 如何理解“用户界面的主要功能是通信”? 答: 人机交互时, 最关键的是要使人与计算机之间能够准确地交流信息。 一方面, 由人向机器输入时应当尽量采取自然的方式, 另一方面由机器向人传递的信息必 须准确、不致引起误解或混乱。另外,不要把内部的处理与加工与人机界面混在 一起,人机界面的程序只是用于通讯,以免互相干扰及影响速度。 信息库的内容包括那几个方面? 答(1)所述软件的工作环境、功能需求、性能要求、有关的各种信息来源的状况、 用户状况、硬件环境以及在该专业领域中的作用等外部信息。 (2)需求分析阶段 中收集的有关用户的各种信息, 包括用户本身提供的,也包括在调查研究中得到 的。(3)逻辑设计阶段的各种调查材料和由此生成的各种文档,这包括调查记录、 原始数据、报表及单证的样本、绘制的各种图以及最后生成的系统说明书。 (4) 设计阶段的各种资料,包括所有的数据库与数据文件格式、数据字典、程序模块 的要求、总体结构、各种接口及参数的传递方式以及最后形成的设计方案。 (5) 编程阶段的所有成果,包括程序代码、框图、变量说明、测试情况(输人数据及 输出结果),验收报告、使用说明等。(6)运行及使用情况的详细记录,包括每次 使用的时间、状态、问题,特别是有关错误及故障的记录情况。 (7)维护及修改 的情况,包括修改的目标、责任人、过程、时间、修改前后的代码与文档以及修 改后的结果,原系统的备份。(8)项目管理的有关信息、人员变更、资金投入、 进度计划及实施情况。这项还包括版本信息,即各次版本的备份,每个版本的推

  出日期,与以前版本相比的变更说明等。 什么是信息库?它与数据和数据仓库有什么区别?其特点是什么? 答:信息库是一个包罗万象的,随着项目进度不断修改与补充的数据集合。它在 规模上不一定象数据仓库那么大,分析提炼的要求也与数据仓库不同,然而,作 为软件开发全过程的信息管理总枢纽,它的数据结构是相当复杂的,而且会随时 间不断变化, 因此保持一致性的任务变得十分复杂和艰巨。这些就是信息库的特 点。 简述信息库这一概念提出的背景。 答: 信息库是针对软件开发或信息系统开发中的大量信息管理工作提出来的。早 在手工进行系统分析的阶段人们已经发现, 许多问题出在信息交流中的误解与损 失。按照传统的生命周期法,每一阶段都是用相应的文档实现过渡的,在信息传 递中,误解与丢失十分严重。另外,软件的修改与版本更新也引起一些问题,有 时不得不从头收集基础信息。不但浪费很大,而且引起用户的厌烦。随着数据库 技术的发展, 人们很自然地想到用计算机来办这件事。这就是信息库这个概念提 出的背景。 什么叫数据库?其本质是什么?什么叫数据仓库?其本质是什么? 答: 数据库是指在文件系统基础上发展起来的一种数据管理技术,它的重点在于 合理地组织数据,体现出数据之间的逻辑关系,并尽可能地帮助用户检索,减少 冗余。 数据库的本质是以时间来换取空间。数据仓库是近年来针对大批数据的分 析利用提出来的概念。它的基本思想是:对原始数据进行多次的加工或提炼,计 算出许多派生的或综合的数据, 存放在大容量硬盘里, 从而使检索速度大大加快。 数据仓库的本质是用容量来换速度。

  简述计算机模拟模型的作用。 答:计算机模拟模型的作用:计算机模拟是一种强有力的概念模式。它利用计算 机大量、高速处理信息的能力,在计算机内设置一定的环境(如资源条件等),又 以程序来实现客观系统中的某些规律或规则,在以上二者的基础上,计算机就可 以高速运行,以便人们观察与预测客观系统的状况。 简述 ER 图的作用、基本思想、使用范围。 答:ER 图的作用、基本思想、使用范围:ER 图用于描述静态数据结构。其基本 思想在于以实体、关系、属性三个基本概念概括数据的基本结构。它广泛应用于 数据库的设计中,常常和数据流程图、结构图等互相配合使用。因为前二者重点 描述信息的处理与流通,而缺乏对静态数据结构的描述方法。 简述结构图的作用、基本思想、优点。 答:在结构化程序设计方法中,结构图用来表示大型软件的层次结构,即模块结 构。 结构图以模块的调用关系为线索, 从宏观上使人一目了然地掌握软件的全貌。 其中,模块调用方式有三种:顺序调用、选择调用、循环调用。结构图的基本图 例为模块,用自上而下的连线表示调用关系,并注明参数传递的方向与内容。它 用箭头上的附加记号来表明这一点。结构图的优点是能够体现层次观点,由粗到

  细、自顶向下地描述程序。特别是它可以迫使人们逐个地详细划分与描述模块, 体现结构化程序设计的思想。 人机界面设计应遵循的原则是什么? 答:(1)用户界面的主要功能是通信。 (2)界面必须始终一致。让用户始终用同一 种方式思考与操作。(3)界面必须使用户随时掌握任务的进展状况。人机界面应 当随时告诉用户当前工作的进展情况。4)界面必须能提供帮助。5)宁可让程序多 干,不可让用户多干。能够由程序完成的工作,尽量由程序完成。 试述概念模式的意义及其在认识中的作用。 答: 概念模式是人们在认识事物过程中,对于某一事物或某一系统形成的抽象的 它具有客观性、片面性,同时又具有主观性。概念模式是人们认识客观世界的一 种方法、一种工具,也是人们在长期的实践活动中逐渐形成的。它是在一定的理 论、思想指导之下形成的,同时又不断地根据实际情况加以修正。在这个不断循 环的过程中,概念模式逐渐完善、逐渐准确地反映客观事物的实质。 试论述人机界面设计原则。 答:五个要点:(1)用户界面的主要功能是通信(2)界面必须始终一致(3)界面必须 使用户随时掌握任务的进展状况(4)界面必须能提供帮助(5)宁可让程序多干,不 可让用户多干 软件开发过程中信息处理工作包括那几个方面? 答:软件开发过程中信息处理工作包括如下几个方面: (1)合理存储:许多信息 需要长期保存,因为它们并非只用一次,而是需要不断更新,不断被调用。这种 存储工作并不是只起一个简单的存放作用,它包括一致性的检查与维护,包括方 便迅速的查询与调用。(2)正确转化:在许多环节上都要进行数据的转换或加工, 包括从手工方式向计算机方式的转换,也包括从计算机方式向手工方式的转换, 有时也有在计算机内部的不同形式的数据的转换。在软件开发过程中,这些信息 必须能够正确地进行转换。(3)顺畅流通:软件开发过程中,分析人员、程序员、 用户和维护人员之间存在着各种交流,这些信息交流渠道的通畅,对于软件开发 的成功,也具有非常重要的作用。 简述软件开发工具在信息处理方面的帮助与支持。 答: 软件开发工具在信息处理方面的帮助与支持如下: 软件开发工具对需求信息、 设计信息、软件成果和变更信息的合理存储、正确转化和顺畅流通提供帮助。当 然,帮助的程度各不相同。人与人之间的交流,显然主要是人来进行,工具至多 只能起到帮助与提示的作用, 如用数据流程图,或模拟图形来沟通分析人员和程 序员;另一些工作则可以用计算机来提供更多的帮助,如,可以提供方便迅速得 多的数据库技术服务。 只要人们规定了合理的存储模式和检索途径,就能在信息 存储、 检索以至一致性的保持上得到很大的帮助。至于象代码与文档的自动生成 则可以在更大的程度上给人们提供帮助。 软件开发工具的理论基础与技术基础主要包括哪些方面? 答:软件开发工具的理论基础与技术基础主要包括以下六项: (1)概念模式的概 念与方法 (2)数据库技术的理论与方法(3)编译技术的有关方法(4)人机界面的 理论与方法(5)项目管理与版本管理的理论与方法(6)系统科学与系统工程中的有

  关理论与方法。 试论信息库的管理功能。 答:信息库的管理功能有三项,录入更新、使用查询、一致性维护。其中许多功 能是一般数据库管理系统所已经具备的, 与一般数据库管理系统不同的主要有下 面两点。首先,信息之间逻辑联系的识别与记录。如,简单地说,信息库管理模 块必须“记住”信息之间的逻辑联系。另一个特殊的问题是如何实现定量信息与 文字



上一篇:软件工程基础
下一篇:南京某单位电子荣誉墙软件研制项目竞争性商洽公告