软件开发工具 第1章 绪论 1.1软件开发工具的由来 1、软件产品的(质量)(效率)(价格)已成为各方面关注的十分重要的问题。(多选题) 2、名词解释:软件开发工具 在高级程序设计语言的基础上,为提高软件的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度帮助的一类广泛的软件。 3、简答:如何理解软件开发工具的概念 (1)是一类软件,是开发软件用的软件 (2)它是在第三代语言的基础上发展起来的。 (3)强调对软件开发全过程中各个阶段的支持,即不仅包含狭义的编程阶段,而是包括了相当广泛的范围和相当丰富的内容。 4、60年代初期的高级语言有(FORTRAN)(ALGOL)(COBOL)。(多选或填空题) 5、第三代语言实现了对机器的(独立性),(抽象)地(逻辑)地描述处理和算法,提高了程序地(移植性)。(填空题) 6、第三代语言地瓶颈-(处理过程的描述)(单选或填空题) 7、名词解释:软件危机认识到软件工作地重要性地同时,也认识到了软件工作地困难性。 8、简答:软件的重要性 (1)软件是计算机的灵魂 (2)软件是使用者与计算机之间的桥梁 (3)软件是人类在各个领域中积累的知识的结晶 (4)软件是人类文明与知识得以延续的新的载体 (5)软件是人类进一步成为一个整体,得以进一步相互联系的纽带 9、简答:软件的困难性 (1)人类社会和客观世界的复杂性,决定了软件本身的复杂性 (2)人类知识的丰富多彩,决定了软件的极大的多样性 (3)客观世界的动态性,决定了软件对可维护性、可重用性越来越高的要求。 10、通用软件的弱点 (1)有许多工作是通用软件所无法完成的 (2)用通用软件完成某些工作,只能表现其表面的形式,而不能反映其逻辑内涵 (3)用通用软件来帮助人们完成软件开发工作时,常常遇到难于保持一致性的困难 11、属于专用软件开发工具的有(代码生成器:报表生成器、菜单生成器、对话生成器)(第四代语言)(数据字典管理系统DDMS)(画数据流程图、ER图或程序框图的绘图软件)(多选题) 12、进入集成的软件开发环境阶段的标志是IBM公司(AD/Cycle理论框架的提出)(单选题) 1.2软件开发工具的概念 1、简答:软件开发工具概念的要点 (1)它是在高级程序设计语言之后,软件技术进一步发展的产物 (2)它的目的是人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助 (3)它支持软件开发的全过程,而不是仅限于编码或其它特定的阶段 2、认识软件开发工具的概念,应同时认识它的(继承性)与(创造性)(填空题) 3、指令是人们在实践中形成的工作(规范)与(步骤)(填空题) 4、软件应当包括(程序)和(文档)两个不可缺少的组成部分。(填空题) 5、目前软件开发的新阶段是以(应用软件开发工具)为标志的新阶段。(单选、填空题) 6、软件和软件开发过程的实质是知识的(提炼)(表述)(固化)的作用。(多选、填空题) 7、简答:软件开发新阶段的特点(表现) (1)自动化程度的提高 (2)这一阶段的工作明确地把需求分析包括进了软件工作地范围之内,从而使软件开发过程进一步向用户延伸,离用户更近了。 (3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程地局限,而扩展到了作为一个不断发展地客体生长完善地全过程。 (4)这一阶段的研究吸收了许多管理科学的内容与方法 8、名词解释 第四代语言(4GL):原义是非过程化的程序设计语言。针对以处理过程为中心的第三代语言,它希望通过某些标准处理过程的自动生成,使用户可以只说明要求做什么,而不把具体的执行步骤的安排交由软件自动处理。 9、名词解释 可视化编程:强调“所见即所得”得原则,力图实现编程工作的可视化,即随时可以看到结果,程序的调整与后果的调整同步进行。 10、名词解释 CASE工具:一种理解是计算机辅助软件工程,另一种是计算机辅助系统工程,即应用计算机自身处理信息的巨大能力,帮助人们开发复杂的软件或应用系统。 1.3软件开发工具的功能与性能 1、名词解释 需求分析:从初始要求出发,经过大量的调查研究工作,抽象出应用领域中的实际的信息需求,设计出在计算机系统内外的、合理的信息流程,并规定软件系统的功能与性能要求。这些调查分析的成果体现在了软件功能说明书中。 2、总体设计包括(软件的结构设计)(公用的数据文件或数据库的设计)(各部分的连接方式)(信息交换的标准)等(多选题) 3、总体设计的成果是(系统的总体设计文件及各个模块的设计任务书)(单选题) 4、总体设计文件包括(结构图)(模块清单)(公用数据结构)(多选题) 5、名词解释 模块的测试:根据总体设计时制定的各个模块的设计任务,对程序员完成的模块进行验收,看他们是否实现了所要求的功能,是否达到了所要求的性能指标。 6、认识与描述客观系统主要用在软件开发工作的第一个阶段(需求分析阶段)(单选、填空) 7、简答:软件开发工具的性能 (1)表达能力或描述能力:选择软件开发工具时首先要考虑的 (2)保持信息一致性的能力 (3)使用的方便程度 (4)工具的可靠性 可靠性:在各种各样干扰下仍能保持正常工作,而不致丢失或弄错信息。(名词解释) (5)对硬件和软件环境的要求 一般说来,软件开发工具对环境的要求不应当超出它所支持的应用软件的环境要求。(选择题) 1.4软件开发工具的类别 1、按工作阶段划分(单选、多选题) (1)设计工具 如:代码生成器、4GL、测试工具,出现最早数量最大的 (2)分析工具 如:数据字典管理系统、画数据流程图工具FLOW、画结构图或ER图的工具 (3)计划工具 为(项目主管人员)服务的 2、按集成程度划分 (1)专用的、面对某一工作阶段或某一工作任务的工具 (2)集成化的、面对软件开发的全过程的工具 名词解释 软件工作环境:集成化的软件开发工具被称为软件工作环境。 3、按与硬件、软件的关系划分 (1)依赖于特定的计算机或特定的软件 设计工具、集成化的软件开发工具 (2)独立于硬件与其他软件的 分析工具、计划工具 4、简答:学习软件开发工具的目的(P16) 第2章 软件开发过程及其组织 2.1软件开发中的困难 1、软件开发的基本问题(单个程序员遇到的问题) 两个转换 (1)第一个转换是用户对软件功能的理解与程序员对软件功能的理解之间的转换 手段:用尽可能标准化的方法编写程序设计任务书 (2)第二个转换解决的是人和机器之间的交流与协调问题:人和机器之间的思维方式、工作方式上都有许多根本的区别。 关键在于程序员的知识水平与实际经验 2、简答:大型软件开发中的困难 (1)一致性的保持成为十分困难的问题 (2)测试的困难大大增加。 名词解释:水波效应 当人们修改程序的某一处时,由于没有充分考虑到这一修改对相关部分带来的影响,结果出现了新的错误。 “黑箱”检验方法 输入一些信息,观察是否能否得出预期输出来判断 (3)工作进度难以控制 (4)文档与代码的协调十分困难 文档包括(功能说明书)(总体设计、各模块的设计任务书)(每个部分的研制报告)(测试报告)(验收报告)(用户手册)(多选题) (5)版本更新带来的困难 3、简答:大型软件开发困难产生的原因 (1)这些困难来自大系统的复杂性 (2)许多具有主动性的个人之间的组织与协调本身也会带来大量的困难 (3)各个应用领域之间的差别也导致这些困难的加重 (4)时间的因素、变化的因素也给软件开发工作开来许多困难 2.2软件开发方法的发展 1、大型软件开发中的角色及其任务 (1)用户 任务:提出要求、验收、使用、要求修改 (2)项目负责人 任务:分析需求,向程序员分配任务,验收程序员的工作成果代码与文档,对整个软件进行联调,向用户交付使用,接收与分析用户的修改要求,向程序员布置修改任务,验收修改成果并向用户提交新的版本或修改的结果 (3)程序员 任务:编写程序,编写文档,调试自己编码的程序,向项目负责人提交工作成果 2、结构化程序设计的起点标志:《GO TO语句是有害的》《结构化程序设计》(多选题) 3、简答:结构化程序设计的思想和方法 思想:把程序的结构分解成三种基本模块:处理单元、循环机制、二分决策机制 方法(模块划分原则): (1) 模块的功能在逻辑上尽可能地单一化、明确化,最好做到模块与任务地一一对应。 名词解释:凝聚性 每一个模块实现一项明确地任务,反之每一项任务仅有一个模块来完成。 (2) 模块之间的联系及其相互影响尽可能地少,对于必要地联系都应当加以明确地说明。 名词解释:耦合 模块之间地各种联系及其相互影响称为耦合。 尽量避免(逻辑耦合),使用(数据耦合)(选择、填空题) (3) 模块的规模应当足够小,以便使它本身的调试易于进行。 4、如何实施结构化程序设计的思想? (1)限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句 (2)子程序尽可能做到只有一个入口、一个出口 (3)程序风格尽量明确、清晰 (4)在程序编写的同时完成有关的文档编撰,不要拖延时间 5、结构化程序设计方法主要是为(程序员)服务的。(单选、填空题) 6、结构化程序设计方法的优点:保证了软件可靠、准确度,易于修改 缺点:增大了程序工作量,增加了编程中的麻烦与琐碎的工作(多选题) 7、工程思想的核心:(标准化的表达方式)(规范化的工作步骤)(填空题) 8、简答:软件工程的思想 (1)对软件开发过程进行规范,把开发过程分为:需求分析、分析与设计阶段、编程阶段、测试阶段、使用及维护阶段五个阶段。 (2)在标准化方面,一方面是表达方式的标准化,另一方面是对工作的质量及检查制定标准。 9、软件工程的思想主要集中于加强(项目管理者)的工作上(单选、填空题) 10、Object Oriented的翻译方法有:(面向客体)、(面向目标)、(物件导向)(面向对象),(面向客体)更为准确(选择题) 11、简答:面向对象的思想 (1)客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的操作。作为一个整体,这些对象对外不必公开这些属性与操作,称为“封装性”(名词解释) (2)对象之间有抽象与具体、群体与个体、整体与部分等几种关系。 (3)抽象的、较大的对象所具有的性质包括静态属性和动态操作,自然地成为它地子类地性质,不必加以重复说明或规定,这就是“遗传性”(名词解释) (4)对象之间可以护送消息。 12、与即插即用的程序设计方法相关的概念有:(组件程序设计)(组合文件)(宏观程序设计)(多选题) 13、名词解释:即插即用在软件生产过程中,一部分人专门生产软件组件,而另一部分人则设计整个软件的结构,并且把软件组件插入这个结构,以便迅速地完成大型软件地研制工作。 14、名词解释:可视化程序设计是指用图标、图像、图表,甚至随手画的素描等可视化的元素来编制程序。 2.3软件开发过程的管理 1、项目管理的要素是(进度)(质量)(费用)(资源利用)(多选、填空题) 2、好软件、好程序员、好项目组的标准(P29-30) 3、项目组中的一员必须具有高度的(组织纪律性)和(团队精神)(填空题)
|