【软件开发工具】——大题整理

来源:互联网 发布:c语言学会了可以干吗 编辑:程序博客网 时间:2024/05/17 22:34

一二章:

第一章

1.软件开发工作发展变化的五个阶段及其特点

最初阶段,用机器语言写成一系列机器指令,供硬件执行。
第二阶段,用汇编语言开发软件,由汇编程序完成转换。
第三阶段,用高级语言开发软件,由编译程序完成转换。
第四阶段,在各种软件开发工具帮助下开发软件,由编译程序完成转换。
新阶段,由软件架构师完成架构设计,程序员用软件开发工具完成程序开发,由编译程序完成转换。

2.软件开发工具基本功能

认识与描述客观系统
②存储以及管理开发过程中的信息
③代码的编写或生成
④文档编制或生成
⑤软件项目的管理

3.软件开发工具的性能

表达能力或描述能力
②保持信息一致性的能力
③使用的方便程度
④工具的可靠程度
⑤对硬件和软件环境的要求

4.二十一世纪以来,软开工具发展有什么特点?

①使软件开发基于网络
②并在网络环境下使用
③开源软件的兴起和运用
④提高软件开发的工作效率

5.软件开发工具的发展阶段及特点

①利用通用软件作为辅助工具的阶段。有许多工作是通用软件无法完成的。通用软件完成某些工作也不能反映其逻辑内涵。常常遇到难于保持一致性的困难。
②专用的软件开发工具的阶段。对软件的开发缺乏全面的,统一的支撑环境。
③集成的软件开发环境阶段。进入集成的软件开发环境阶段的标志是IBM在1989年提出的理论框架。
④21世纪的软件开发新阶段。面向网络,开源软件的兴起和运用。

第二章

6.大型软件开发中的困难

①一致性的保持成为十分困难的问题
②测试的困难大大增加
③工作进度难以控制
④文档与代码的协调十分困难
⑤版本更新带来的困难

7.软件开发困难产生的原因

①这些困难来自大系统的复杂性
②许多具有主动性的个人之间的组织与协调带来大量的困难
③各个应用领域之间的差别导致困难的加重
④时间的因素,变化的因素给软件开发工作带来许多困难

8.软件开发者提供高效开发方法

①结构化程序设计
②软件工程方法
③面向对象的方法
④即插即用的程序设计方法
⑤面向开源软件的程序设计

9.一个好程序员的指标/可以单独地承担软件开发任务的程序员应具备的条件。(多加一点)

具有程序设计所需要的基本知识与技能
②对本项目所在的领域有较深入的了解,从而能够准确的理解用户需求,正确的把握有关的信息流程与信息处理原则
③对软件开发的技术环境熟悉,有实际运用的经验

10.怎样建立一个好项目组

①有严格的,成文的工作规范和文档标准。
②人员之间有严格的分工,除了程序员之外,必须有专门的秘书,测试人员。
③每个项目都有事先指定的时间表。

11.从支持的工作阶段来看,软件开发工具可以分为几类,他们的作用是什么?

按支持的工作阶段把软件开发工具划分为三类:

  1.设计工具:在实现阶段对人们提供帮助,是最直接帮助人们编程、调试软件与编写文档的工具。如各种代码生成器,第四代语言和测试的工具等。2.分析工具:主要用于需求分析的工具,帮助人们认识与标书信息需求和信息流程,从逻辑上明确软件功能与要求。如数据字典管理系统,绘制数据流图、系统结构图或ER图的专用工具。3.计划工具:从宏观角度看待软件开发,保存于管理的信息都是与整个项目相关的宏观信息,完全是为项目主管人员服务的。

12.学习软件开发工具的目的是什么?

作为一般的使用者,学习软件开发工具的目的在于了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便在实际工作中正确地选择与使用软件开发工具,在必要时能参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率的目标。

 

13.简述高级程序设计语言的不足。

过程化语言(1分),需要安排执行的内容(与次序)(1分),需要考虑解决问题的细节(1分),清楚如何解决问题(1分),加重了用户的负担(1分)。

14.简述实施结构化程序设计的基本思想。

在实施过程中,强调以下几点:

限制(甚至不用)GOTO语句(1分),进制超越模块边界的GOTO语句(1分)。

子程序尽可能做到只有一个入口、一个出口(1分)。

程序风格应明确。(1分)

完成有关的文档编撰(1分)。

15.简述对“软件实际上是人类知识与经验的结晶”的理解。

硬件和软件缺一不可(1分);有事先编好的指令(代码、软件、程序),硬件才能完成任务(1分);这些指令就是人们在实践中形成的工作规范(1分);可以对不同的数据反复使用(1分);进一步提高了人类的能力(1分)。

16.程序员做好软件工作的关键是什么?

关键是两个转换(1分):首先是从用户的理解到程序员的理解(2分),其次是从程序员的理解到程序的实现(2分);

17.简述结构良好的软件应满足的条件。

第一,  模块的功能在逻辑上尽可能地单一化、明确化(1分),最好做到一一对应(1分)。(即每一个模块实现一项明确的任务,反之每一项任务仅由一个模块来完成)。

第二,  模块之间的联系及影响尽可能地少(1分),应当尽量避免逻辑耦合,而仅限于数据耦合(1分)。

第三,  模块的规模应当足够小。(1分)

18.简述软件工程思想的产生。

软件危机的发生(1分);程序员的技能与认真负责是不牢靠的(1分);从根本上,要想大幅度地提高软件开发的效率和质量,应吸取人们的成功经验(1分),从组织和管理的角度加强力量(1分);使软件生产从程序员的个人劳动提高成为可控制的工程(1分),这就产生了软件工程。

19.简述软件工程从传统产业工程方法中吸取的成功经验。

对软件工程工作的步骤做了严格的规定(2分);工作顺序不能颠倒(1分);每一个阶段都有各自的明确的任务(1分);在质量、表达方式等方面要有统一的、并为人们共同遵守的标准(1分);利用有关各方沟通与交流的手段,使参加工作的人们称为一个整体,共同地完成一项大的工程任务。

20.什么样的软件才是好的软件?

    1.正确地实现所要求的功能,准确地给出预定的输出结果

    2.用户界面友好,符合实际用户的使用习惯和知识水平

    3.具有足够的速度(不是越快越好),能在符合用户要求的时间限度内,给出所要求的结果

    4.具有足够的可靠性,能够在各种干扰下保持正常工作

5.程序易读,结构良好,文档齐全,从而保证系统易于修改。

21.面向开源软件的程序设计的基本思想是什么?

随着开源软件的出现和发展,利用开源软件进行程序设计,已经成为越来越普遍的方法。目前社会上和学术界对开源软件有不同看法,有支持者有反对者。在实际使用中,在一些应用面广,流程比较清晰、比较规范的应用领域,开源代码的重用是比较有把握的,如:网站的设计。但由于应用领域的复杂性和多样性,在使用开源软件前还需要仔细权衡。这里起决定作用的是两面因素,一方面是对应用领域的充分了解,这是判断能否用开源软件的主要依据;另一方面是开源软件的质量,包括文档和代码的规范程度。

 

 

 

第三章和第六章:

1.用户界面设计基本原则:(第三章P63)

(1)用户界面主要功能是通信

(2)用户界面必须始终一致

(3)用户界面必须使用户随时掌握任务的进展情况

(4)用户界面必须能提供帮助

(5)宁可让程序多干,不可让用户多干

 

2. 简述采用RationalRose建模的过程

(1)需求分析

(2)映射需求

(3)分辨和设计对象

(4)对软件组成部分映射成对象

 

3.简述实体关系图的组成和作用。58

实体联系图由实体、联系和属性三部分组成

一种用于描述静态数据结构的概念模式、经常与数据流程图、结构图配合使用,广泛应用于数据库设计。

 

4.简述信息库中保存的编程阶段成果的内容。61

包括程序代码与框图、变量说明、测试情况、验收报告和使用说明

简述信息库中保存的运行与使用情况的内容。

包括每次使用的时间(1分)、状态(1分)、问题(1分),有关错误的记录(1分)和有关故障的记录(1分)。

 

 

5.项目管理的基本目标 65

(1)使产品(工程)的质量得到有效的控制

(2)保证整个系统按预定的进度完成

(3)有效的利用各种资源

(4)控制降低成本

6.简述软件开发工具的网络化发展方向。

互通信息(2分),共享知识(2分),利用网络进行开发(1分)

7.比较国内、外软件开发工具的发展状况

  从软件开发工具的研究水平上看,国内并不比国外低,主要差别在于没有广泛地使用这些工具。总的来说,我国的软件产业还没有形成一批稳定的、高度有组织的软件开发群体,因而能够真正发挥软件开发工具作用的环境与社会需求还不具备。

  我国软件产业当务之急是大力普及软件工程及方法学的知识,提高软件开发工作的水平,这才能使软件开发工具的应用具有实践的基础。

8.计算机网络的普遍使用对软件开发工具有什么影响?

 通过网络,人们可以更方便地互通信息,共享知识,这就给人们所梦想的软件重用、知识重用提供了新的机会。

9.人工智能技术在软件开发工具的发展中有什么作用?

 可以提高信息处理的功能及效率。

10.软件开发过程中需要哪些 信息 与 信息处理方面的帮助和支持?

(P 53)信息:

1.有关系统环境,现状及需求的信息

2.软件功能设计与物理设计

3.软件成果本身,包括程序和文档

4.用户对系统的各种变更要求,以及变更记录

 

11.软件开发工具的理论基础

(P 54)

1.认知科学中关于概念模式的概念与方法

2.数据库技术的理论与方法

3.编译技术的有关方法

4.关于人机界面的理论与方法

5.管理科学中关于项目管理与版本管理的理论与方法。

6.系统科学与系统工程中的有关理论与方法。

 

12.什么是概念模式? 作用? 意义?

(P 55)

   概念模式:人们在认识事物过程中,对于某一事物或某一系统形成的、抽象的、一般化的框架。

作用:人们在相互配合、相互协调、共同完成某项任务的时候,需要统一的思想、统一的认识、协同行动就必须有某种公认的方式来进行表述。

 

13.举出三种常用的概念模式? 作用? 使用方法?

(P 56)

框图  结构图  数据流图  ER图 数据字典 时序网络 数学与逻辑模型 计算机模拟模型(8种)

 

14.什么是信息库?与数据库、数据仓库有什么区别?

(P 59)

信息库:是一个包罗万象的,随着项目进度不断修改和补充的数据集合。

 

数据库:在文件系统基础上发展起来的一种数据管理技术,它的重点在于合理的利用组织数据,体现数据之间的逻辑关系,并尽可能的帮助用户检索,减少冗余。

 

数据仓库:大批数据分析。

 

15.为什么信息库一致性很重要?

由于软件的环境、需求以及他本身都在变化,信息库中的信息需要不断的更新。

 

16.人机界面常用的技术手段?

(P 64)

键盘操作,屏幕滚动,菜单选择,帮助系统,鼠标操作,色彩应用,数据录入,信息显示。

记忆方式:Ares通过“鼠标”“键盘“来操控电脑,打开淘宝,输入检索信息(内存条),看到色彩缤纷的界面,在菜单中选择金士顿,检索出不同内存条信息,然后通过屏幕滚动,找最优的商品,通过旺旺帮助联系店家。

 

17.项目管理?任务?

(P 64)

定义:与固定的生产线上的日常生产管理不同的,具有更大的变动性,时间性的另一类管理工作。

 

任务:

1.使产品的质量得到有效的控制

2.保证整个系统按预定的进度完成

3.有效的利用各种资源,尽可能使资源的闲置与浪费减少。

4.控制和降低成本。

 

18.版本管理? 任务?

   (P 66)

   保持两个一致性

 

   任务:

   规定长远的版本更新计划,制定版本的有关信息范围及收集管理方法,在项目内明确分工,在程序编写、测试、文档缩写等工作中贯穿项目管理的思想和要求。

 

第四章

1. 信息库的内容?(10分论述题)74

(1)  有关软件外部环境的信息(1分)

(2)  需求分析阶段中收集的有关用户的信息(1分)

(3)  逻辑设计阶段的各种调查材料和由此生成的各种文档(1分),包括系统说明书(1分)。

(4)  系统设计阶段的文档,包括系统设计方案等各种资料(1分)。

(5)  编程阶段的所有成果(1分)。

(6)  运行与使用情况的详细记录(1分)。

(7)  维护与修改的情况(1分)。

(8) 项目管理的有关信息(1分)和版本管理的有关过程记录(1分)。

2. 简述信息库中保存的版本管理信息的内容(5分简答题)61

包括各个(1分)版本的备份(1分)、每个版本的推出日期(1分)、与以前版本相比的变更说明(2分)。

3. 简述软件开发工具生产代码依据的资料(5分简答题)78

(1)  信息库中的资料(2分)

(2)  利用标准模块的框架(1分)和构件(1分)。

(3)  依据使用者通过屏幕前操作送入信息(1分)。

4.软件开发工具的基本功能有哪些?

1.提供描述软件状况及其开发过程的概念模式,协助软件开发人员认识软件工作的环境与要求,合理地组织与管理软件开发的过程。

2.提供存储和管理有关信息的机制与手段。

3.帮助使用者编制、生成及修改各种文档。

4.帮助使用者编写程序代码,即代码生成。

5.对于历史信息进行跨生命周期的管理,把项目运行与版本更新的有关信息科学地管理起来。

5.一体化的软件开发工具包括哪几个主要组成部分?

1.总控和人机界面——中心位置,使用者和工具间的桥梁,工具实用性和灵活性的保证。

2.信息库和信息库管理模块——工具功能与作用的最基本依据。

3.文档生成和代码生成——两个重要输出。

4.项目管理和版本管理——跨周期信息共享、知识重用、软件重用的关键问题。

6.为什么说总控和人机界面是系统开放性和灵活性的关键?

总控和人机界面是使用者和软件开发工具之间交流信息、实现所有的支持功能的桥梁。这一部分的有效实现对于软件开发工具来说,是实用性和灵活性的主要保证。  一方面,人机界面面对不同类型的用户,这些用户既有区别,又有共性,人界界面既要保持统一和一致,又要能够在正确区分和识别用户的基础上,针对不同用户的要求与习惯提供有效的帮助。另一方面,总控部分面对系统内部的各种功能与各种信息,它要保证各部分之间信息有效地、准确地流通。

7.总控和人机界面的设计原则是什么?

 面向使用者(用户)的原则;保证各部分之间的信息的准确传递;

保证系统的开放性或灵活性——理想的系统结构应当是模块式的,易于剪裁的。

8.信息库的内容应包括哪些方面?

1.关于软件应用的领域与环境的状况

2.设计成果,包括逻辑设计与物理设计的成果。

3. 运行状况的记录。

4.有关项目管理与版本管理的信息。

9.信息库的结构方式有几种?为什么要有专门的信息库管理模块?

 结构方式有三种,分别是:集中存储,分散存储,逻辑上统一、物理上分散(信息库管理模块);原因:通过信息库管理模块对分散的个数据库进行存取,并进行一致性检查与维护,使数据库与模块都实现了模块化,保持了一致性和灵活性。

10.代码生成的输出形式有几种?各有什么特点?

代码生成的输出主要有两种形式:

1.某种高级程序设计语言的代码

优点:使用者可以利用自动生成的模块为原型,在此基础上修改加工,形成自己所要求的系统或系统的某一部分。

缺点:功能较死,效率不高,需要修改

2.某种机器环境下可运行的机器指令

优点:可以直接运行,如果不合要求可以立即调整命令或参数重新生成一遍

缺点:这种代码一般无法直接修改,对硬件环境的依赖性大,用的不多。

11.代码生成器依据哪些资料工作?

代码生成器依据三方面的资料:1.信息库里已有的有关资料 2.各种标准模块的框架和构件  3.使用者通过屏幕临时送入的信息

12.项目管理的任务包括哪些方面?

1.研究与确定开发工作的方针与方法。如采用什么样的阶段划分方法,什么样的系统描述方案等。

2.开发任务的划分与分工。整个开发任务如何逐层分解为具体任务,任务之间的相互关系(顺序、制约等),委托给什么人来做。

3.资源情况。有多少人力、物力、设备、软件、资金,是否得到充分利用,是否需要增加投入。

4.人员情况。个人进度、技术水平如何,是否需要重新培训,是否需要调动工作。

5.变更情况。需求、环境、人员、设备、技术的变更。

6. 质量情况。检验的标准是什么,如何检验,由谁来检验,用什么数据检验。

 

13.项目管理工作的困难何在?

 历史信息的处理

 

 

第五章

1、引入软件开发工具之后,应当进行的组织管理工作包括哪些方面?

     1、严格使用制度

     2、记录使用的详细过程

     3、培训使用人员

     4、经常进行审计与评价工作

2.简述对开发工具使用过程进行审计的主要内容。

     在工具使用过程中,有没有出现错误(1分),有没有出现过数据丢失(或错误的情况)(1分),有没有出现过由于误操作而引起的异常情况(1分),对这些情况有哪些纠正和补救措施(1分),其效果如何(1分)。

3.简述软件开发工作中审计的意义和目的。

     审计是指对系统的运行状况(1分)及效率(1分)进行检测(1分)与评价(1分),以便更好或改进系统,保证取得实际的应用效果(1分)。

4、考虑购置还是自行研制工具的权衡,哪些因素必须考虑?

   1、准备从事的软件开发工作的性质和要求

2、开发人员对支持工作与支持程度的实际需要

3、工作环境

4、人员因素

 

5、软件开发工具的市场调查应包括哪些内容?

   1、功能

2、性能

3、开发方法或理论

4、运行环境

5、文档资料是否齐全

6、软件开发工具的服务、培训条件如何?

7、价格

 

6、购置软件开发工具的方法步骤?

1、明确购买软件开发工具的目的与要求

2、明确购买软件开发工具的环境条件与制约条件

3、市场调查

4、对于可供选择的各种工具进行综合比较

5、测试 检验

6、正式签约购置

7、安装与试用

 

7、自行研制软件开发工具要主要哪些问题?

1、要在确实需要的地方开发与使用工具

2、坚持短小实用

3、注意文档的齐全与资料的积累

   

 

其他:

简述操作系统的出现对计算机的应用产生的影响。

操作系统的出现改善了人们应用计算机的条件(1分)。操作系统利用计算机本身迅速处理信息的优势,自动地完成系统初始化、文件管理、内存管理、作业管理、处理机管理等一系列工作(3分),把计算机系统中的各种资源有效地、协调地管理起来(1分),把原先由操作员担负的大部分职责接过来。

简述在Windows操作系统的环境下,VisualStudi0与Eclipse相比的优势。

Visual Studio在微软环境下和其他产品的交互协同能够浑然一体(1分);开发使用容易(1分);产品间的差别透明度高(1分);在运行速度(1分);代码提示显示速度(1分)等方面也强于Eclipse。

与Visual Studio相比,Eclipse的优势表现在哪些方面?

大平台(1分),小核心(1分),多插件(1分),更富灵活性(1分),在各种操作系统上表现差异小(1分)。

简述统一建模语言(UML)中顺序图(Sequence Diagram)的含义。

描述对象间的动态协作关系(2分)。表达对象间发送消息的时序(1分),表达对象间的相互作用(1分),表达执行中可能会发生的事(1分)。

试论软件开发工具的提出与使用,是软件技术发展的一个新的阶段。

区别于以往阶段的特点,它的发展主要表现在四个方面:

自动化程度的提高(1分)。编程中的部分工作已由工具代替执行(1分)。

将需求分析和架构设计(1分)包括在软件工作的范围之内,从而使软件开发过程进一步向用户方面延伸。顺应大量开源软件出现的客观环境(1分),进一步显示出软件开发的继承性和开放性,进一步证明了软件是人类知识积累和传承的新 的、有力的手段(1分)。

将软件开发工作延伸到项目及版本管理(1分),从而超出了一次编程的局限,而扩展到了作为一个不断发展的客体生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织的、有计划的方式转变的一个重要表现(1分)。

吸收了许多管理科学的内容和方法(1分),将组织、管理等项目负责人的思想与方法放到了更重要的位置(1分)。人们越来越深刻地认识到,软件生产的成败更多地依赖于合理地组织与协调,而不是领导者或程序员个人的编程能力(1分)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

0 0