自考软件开发工具总复习和名词解释.docx

上传人:b****2 文档编号:24629086 上传时间:2023-05-29 格式:DOCX 页数:42 大小:44.71KB
下载 相关 举报
自考软件开发工具总复习和名词解释.docx_第1页
第1页 / 共42页
自考软件开发工具总复习和名词解释.docx_第2页
第2页 / 共42页
自考软件开发工具总复习和名词解释.docx_第3页
第3页 / 共42页
自考软件开发工具总复习和名词解释.docx_第4页
第4页 / 共42页
自考软件开发工具总复习和名词解释.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

自考软件开发工具总复习和名词解释.docx

《自考软件开发工具总复习和名词解释.docx》由会员分享,可在线阅读,更多相关《自考软件开发工具总复习和名词解释.docx(42页珍藏版)》请在冰豆网上搜索。

自考软件开发工具总复习和名词解释.docx

自考软件开发工具总复习和名词解释

第一章绪论

1.1软件开发工具的由来

一、软件开发工具:

1、软件开发工具的范围大致可以描述为:

在高级程序设计语言(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同的帮助的一类广泛的软件。

2、如何理解:

首先,是一类软件,是开发软件用的软件。

其次,是在第三代语言的基础上发展起来的。

另外,这里强调对软件开发全过程中各个阶段的支持,即不仅包含狭义的编程阶段,而是包括了相当广泛的范围和相当丰富的内容。

二、软件开发工具的产生及演变

1、软件开发工具的产生及演变

第一代语言——机器语言第二代语言——汇编语言第三代语言——高级程序设计语言(过程化语言)第四代语言——非过程化语言

2、第三代语言及第二代语言的区别

①第三代语言突破了及机器指令一一对应的限制,用尽可能接近自然语言的表达方式描述人们设想的处理过程,把这种表达方式向机器指令的转化工作交给编译系统去完成。

②另一个重要的变化是高级设计语言实现了对机器的独立性,即不依赖特定的硬件系统,抽象地逻辑地描述处理和算法,而把硬件系统之间的区别交给不同的编译系统去处理,从而大大提高了程序的可移植性。

(第三代程序设计语言一般是过程化语言)

3、第四代语言——非过程化语言思想

人们希望机器能够自动地完成更多的工作,包括自动安排某些(不是全部)工作的顺序,而做到只要给机器下达需要做什么的命令,由机器自己去安排执行的顺序。

4、软件危机:

在认识到软件工作重要性的同时,也认识到软件工作的困难性。

这就是所谓的“软件危机”问题的提出。

三、软件工作的重要性

1、软件是计算机的灵魂

(1)软件是广大使用者及计算机之间的桥梁;

(2)软件是人类的各个领域中积累的知识的结晶;(3)软件是人类文明及知识得以延续的新的载体;(4)软件是人类进一步成为一个整体,得以进一步相互联系的纽带。

2、软件工作的困难性

(1)人类社会和客观世界的复杂性,决定了软件本身的复杂性;

(2)人类知识和丰富多彩,决定了软件的极大多样性;

(3)客观世界的动态性,决定了软件对可维护性、可靠性越来越高的要求。

如何保证软件的正确性、可靠性,如何控制软件开发工作的进度及成本,成了理论上十分重要、实际中十分迫切的课题。

3、用通用软件帮助软件开发有三个主要弱点:

(1)有许多工作是通用软件所无法完成的。

(2)用通用软件完成某些工作只能表现其表面的形式,而不能反映其内涵。

(3)用通用软件来帮助人们完成软件开发工作时,常常遇到难于保持一致性的困难。

四、专门用于软件开发的软件开发工具

1、专用的软件开发工具主要分为以下几类

(1)面向特定功能模块的各种代码生成程序(报表生成器、菜单生成器、对话生成器等);

(2)综合性的第四代语言一般是立足于某种数据库管理系统或某种第三代语言之上的);

(3)专用于某种文档的编写工具;

(4)数据字典管理系统(DDMS);

(5)专用于画数据流程图、ER图或程序框图的绘图软件等。

2、专用的软件开发工具的出现,并未解决第三个困难,一致性的保持仍然是悬而未决的难题。

这种情况导致集成的软件开发工具的产生。

3、1989年,IBM开发的AD/Cycle的主要失误在于两点:

(1)拘泥于集中式的处理思路,对于新的客户机/服务器结构未能及时适应;

(2)坚持在OS/400等自己特殊平台上开发,背离了开放性的大趋势。

1.2软件开发工具的概念

一、概念

1、三个要点:

(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;

(2)它的目的是在人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助;

(3)它支持软件开发的全过程,而不是仅限于编码或其它特定的工作阶段。

2、软件开发工具有继承性和创新性

一方面,软件开发工具是软件技术发展的必然产物和自然的趋势,它的基本思想是致力于软件开发的高效优质;

另一方面,随着人类对软件及软件开发过程理解的深入,它又具备了新思想及方法。

3、软件用来特指看不见、摸不着的,但又发挥着十分重要的作用、事先编好的指令系列。

硬件是躯体,软件是灵魂。

4、软件一头连着计算机硬件,向硬件提供它可以执行的机器指令,另一头面向用户,接受用户提出的要求,提供的算法。

(软件是用户及硬件之间的桥梁)

5、软件实际上是人类知识及经验的结晶。

6、软件包括程序和文档两个不可缺少的组成部分。

二、软件开发工作的四个阶段:

最初阶段的工作仅限于把用户已经明确表述出来年算法,用机器语言写成一系列机器指令,供硬件运行使用。

第二阶段:

汇编语言第三阶段:

高级程序设计语言

第四阶段:

目前进入的以应用软件开发工具为标志的新阶段。

三、对于本书讨论的软件开发工具及新的软件开发方法来说,客观存在的发展主要表现在四个方面:

首先是自动化程度的提高。

其次,这一阶段的工作明确地把需求分析包括进了软件工作的范围之内,从而使软件开发过程进一步向用户方面延伸,离用户更近了。

第三,把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩展到了作为一个不断发展的客体生长完善的全过程。

(这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。

最后,这一阶段的研究吸收了许多管理科学的内容及方法,如程序员的组织、质量的控制等。

总之,软件开发工具的提出及使用,是软件技术发展的一个新的阶段。

四、涉及到的一些类似、相关的概念或术语:

1、第四代语言(4GL):

原义是非过程化的程序设计语言。

第四代语言可以被看作软件开发工具中的一类,而不是全部。

软件开发工具的范围还要更宽一些。

2、CASE工具:

两种解释。

一种是计算机辅助软件工程,另一咱是计算机辅助系统工程。

3、可视化编程、最终用户计算、组合编程、即插即用编程、组合软件等。

4、软件开发工具学:

也即软件开发工具

1.3软件开发工具的功能及性能

一、软件开发的过程:

第一阶段:

初始要求的提出。

软件开发工作者的任务是根据这种初始要求形成严格的、明确的、可供实际开发使用的功能说明书。

(成果:

软件功能说明书)

第二阶段:

总体设计。

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

(成果:

系统的总体设计文件及各个模块的设计任务书)

第三个阶段:

程序的编写和文档的编写,统称为实现阶段。

第四个阶段:

测试或调试阶段。

包括两部分:

模块的高度、整个软件的联调。

(测试工作最好由专门的小组去进行。

二、软件开发工具的功能要求:

(五个主要方面)

1、认识及描述客观系统。

这主要是用在软件开发工作的第一个阶段——需求分析阶段。

2、存储及管理开发过程中的信息。

3、代码的编写或生成。

4、文档的编制或生成。

5、软件项目的管理。

这一功能是为项目管理人员提供支持(包括:

进度管理、资源及费用管理、质量管理三个基本要求)。

三、软件开发工具的性能

功能:

是指软件能做什么事。

性能:

是指事情做到什么样的程度。

●软件开发工具的五项重要性能:

1、表达能力或描述能力。

2、保持信息一致性的能力。

3、使用的方便程度。

4、工具的可靠程度。

5、对硬件和软件的要求。

1.4软件开发工具的类别

一、按工作阶段划分:

设计工具、分析工具、计划工具

1、设计工具:

从工作的抽象程度来看,设计工具是具体的,它是指在实现阶段对人们提供帮助的工具。

如:

代码生成器、一般所说的第四代语言以及帮助人们进行测试的工具

2、分析工具:

主要是指用于支持需求分析的工具。

3、计划工具:

从更宏观的角度去看待软件开发。

(实现了“跨生命周期”的信息管理及共享)

实践中,设计工具出现得最早、数量最大。

分析工具出现得较晚、数量也少一些。

设计。

计划工具完成是为项目主管人员服务的,再现和开发得比较晚。

计划工具的重要性及地位将随着软件产业的发展而越来越为人们所认识。

二、按集成程度划分:

专用、集成

1、专用的、面对某一工作阶段或某一工作任务的工具

2、集成化的、面对软件开发的全过程的工具(集成化的软件开发工具也常常被称为“软件工作环境”)

三、按及硬件、软件的关系划分

1、依赖于特定的计算机或特定的软件(如某种数据库管理系统)

2、独立于硬件及其它软件的开发工具。

一般来说,设计工具多依赖于特定的软件,分析工具及计划工具则往往是独立于机器及软件的,集成化的软件开发工具又常常是依赖于机器及软件的。

(会判断)

软件开发工具是否依赖于特定的计算机硬件或软件系统,对于应用的效果及作用有直接影响。

1.5软件开发工具的研究及应用

一、应用软件开发队伍中的两种人员:

1、一种是计算机专业出身的技术人员。

(面临的主要问题是如何尽快地进入新的应用领域,成为这个领域的内行,从而发挥自己的长处)

需求及分析工具是最直接、最急需的。

2、另一种人员来自各个应用领域,他们出身于计算机以外的各种专业领域。

感兴趣的是设计工具——第四代语言,各种代码生成系统等。

当以上两种人逐步超出个人编程阶段成为项目负责人时,对计划工具的需求也就随之产生。

他们的需求及愿望是软件开发工具产生及发展的根本动力。

二、学习软件开发工具的

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

这也是本书的目的。

课后习题(在哪个位置)

第二章软件开发过程及其组织

2.1软件开发中的困难

软件的复杂性超出了人类的处理能范围。

软件危机的情况及根源。

一、软件开发的基本问题

1、软件开发过程的两个转换:

首先是从用户的理解到程序员的理解,其次是从程序员的理解到程序的实现。

2、两个转换的基本情况:

第一个转换是用户对软件功能的理解和程序员对软件功能的理解之间的转换。

保证这一转换顺利完成的手段就是利用尽可能标准化的方法编写程序设计任务书,用明确的语言或图形、表格,把程序要处理的信息的内容、格式、来源、去向、存储及处理清楚的表达出来,作为双方共同的理解。

第二个转换所要解决的是人和机器之间交流及协调问题:

人和机器之间在思维方式、工作方式上都有许多根本区别。

做好第二个转换的关键在于程序员的知识水平及实际经验。

3、对于单个程序员来说,做好软件工作的关键是以上两个转换。

二、大型软件开发中的困难(大题)

当程序的规模超出一个人的力量范围时,一系列新的、更难以克服的困难就出现在人们的面前了。

(1)一致性的保持成为十分困难的问题。

(2)测试的困难大大增加。

[名词]水波效应:

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

黑箱检验方法(只能证明程序有错而不能证明程序没错)

(3)工作进度难以控制。

(及其他工作相比,大型软件开发中的进度控制是非常困难的)

(4)文档及代码协调十分困难。

(文档包括:

功能说明书、总体设计、各模块的设计任务书、每个部分的研制报告、测试报告,直到最终的验收报告和给使用者的用户手册)

(5)版本更新带来的困难。

(大量的工作在于审核及回顾)

总之,如果说单个程序员的软件开发工作面临的困难是一分的话,那么多人参加的大型软件开发工作面临的困难将是十分的,或者更多。

三、困难产生的原因

原因是复杂的、多方面的,不能得意地归结为程序员或软件工作者的弱点:

首先,这些困难来自大系统的复杂性。

其次,许多具有主动性的个人之间的组织及协调本身也会带来大量的困难。

另外,各个应用领域之间的差别也导致这些困难的加重。

最后,时间的因素、变化的因素也给软件开发工作带来许多困难。

软件危机的研究及克服,是当代人类思想发展的前沿课题之一。

2.2软件开发方法的发展

软件开发的方法:

结构化程序设计、软件工程方法、面向对象的方法、即插即用的程序设计方法、可视化设计编程

软件开发工作中涉及到的人员及承担的工作

用户:

提出要求、验收、使用、要求修改

项目负责人:

分析需求、向程序员分配任务、验收程序员的工作成果代码及文档、对整个软件进行联调,向用户交付使用,接收及分析用户的修改要求,向程序员布置修改任务、验收修改成果并向用户提交新的版本或修改的结果等。

(十分关键的作用)

程序员:

编写程序、编写文档、调试自己编码的程序、向项目负责人提交工作成果。

一、结构化程序设计:

1、《程序结构及设计的技术》一书中关于好的程序结构的各种看法:

(1)它能够保证程序正常地,按照功能说明书运行;

(2)它具有灵活性,没有错误,即使有了错误也能够很快地改正;

(3)它的文档齐全,一旦需要变更,很容易找到应当改动的地方;

(4)它运行速度快;

(5)它在经济上能够保证投资很快地得到回报。

2、程序的结构分解成三种基本模块:

处理单元、循环机制、二分决策机制。

问题的关键在于合理地划分模块

3、模块的划分应当符合以下三条基本的要求:

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

(凝聚性)

(2)模块之间的联系及互相影响尽可能地少,对于必需的联系都应当加以明确的说明,如参数传递,共享文件的内容民格式等。

(各种联系及相互影响称为耦合,应当尽量避免逻辑耦合,而仅限于数据耦合。

(3)模块的规模应当足够小,以便使它本身的调试易于进行。

如果一个软件能够分解成满足上述三条原则的模块,那么它就可以称为有良好结构的软件,能够避免前面所讲的各种问题。

实施这种方法应当采取自顶向下的方法。

自上而下、逐步分解的办法。

4、结构化程序设计的基本思想:

(1)限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句;

(2)子程序尽可能做到只有一个入口、一个出口;

(3)程序风格应尽量明确、清晰,包括适当增加注释,书写格式体现层次结构,变量名称的选用尽量具有逻辑意义等;

(4)在程序编写的同时,完成有关的文档编撰,不要拖延时间。

★结构化程序设计方法主要是为程序员服务的。

○结构化程序设计方法的缺点:

增大了程序工作量,增加了编辑中的麻烦及琐碎的工作,并且降低了程序的运行效率。

但这种是为保证软件的可靠、准确度及易于修改付出的代价。

二、软件工程的方法

1、工程思想的核心有两点:

标准化的表达方法及规范化的工作步骤。

2、软件工程的产生背景:

由于软件危机的发生,人们认识到,把软件的质量寄托于各个程序员的技能及认真负责上是不牢靠的、危险的、不现实的。

(P25)

3、软件开发工作中需要加强的两个方面

一方面,对工作的步骤做出了严格的规定。

每一个阶段都有各自明确的任务、明确的起点、明确的终点,特别是要有确切的、可以检查的成果。

另一方面,在质量、表达方式等方面要有统一的、为人们共同遵守的标准。

4、对软件开发工作过程进行规范化:

第一阶段,需求分析,也可以称之为企业模型建立阶段。

任务:

了解企业的结构及功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。

第二阶段,分析及设计阶段,任务:

进行功能分解及数据分析,完成处理过程及数据库的逻辑设计。

第三阶段,编程阶段,任务:

完成具体的程序编写工作。

第四阶段,测试阶段,任务:

对已有的代码进行认真的检测及试用。

第五阶段,作用及维护阶段,任务:

组织使用者有效地作用,并及时检查及修正发现的错误。

5、标准化方面主要从两个方面去探索:

一方面是表达方式的标准化。

另一方面是对工作的质量及检查制订标准。

6、软件工程的思想主要集中于加强项目管理者的工作,对程序员关系不大。

完全的工程化还远远没有做到。

三、面向对象的方法

○面向对象的程序设计(OOP)的基本思想可以归纳为以下四点:

(1)客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的操作。

(封装性)

(2)对象之间有抽象及具体、群体及个体、整体及部分等几种关系。

(3)抽象的、较大的对象所具有的性质包括静态属性和动态操作,自然地成为它的子类的性质。

(遗传性)

(4)对象之间可以互送消息,这一消息可以是传送一个参数,也可以是使这个对象开始某个操作。

○摒弃了持续许久的“自顶向下”和“自底向上”的争论,把对于复杂系统的认识归结为对一批对象及其关系的认识。

○面向对象的程序设计语言使用软件工作进一步向用户靠近,这对于计算机应用深入到各个领域是十分有利的。

四、即插即用的程序设计(是在面向对象的程序设计方法的基础上提出来的)

1、基本思想:

一部分人专门生产软件组件(相当于芯片),而另一部分人则设计软件的结构(相当于计算机结构),并且把软件组件插入这个结构,以便迅速地完成大型软件的研制工作。

2、即插即用的程序设计的实现有一定的困难

首先,标准化的问题就十分困难

其次,软件部件的提供方式也是问题。

五、面向开源软件的程序设计方法

1.开源思想,是相对于封源思想来说的,指的是软件的源代码是开放的,而且是免费获取的。

2.开源软件同时涉及源码本身和开发过程,涵盖了三个方面的意义:

免费分发的源代码、模块化的体系和集市式的开发--在这种开发方式中,任何地方的任何人都可以参及最终产品的制造,三个方面互相之间有密切的联系,集市式的开发过程给开源软件以强大的改错能力,因为它将程序中的错误公开给了数量巨大的观众,他们都是潜在的改错者。

另一方面,任何人都可以复用和发行开源软件的代码这一事实又支持了公众利益,因为创新的观念被整个集市所共享。

另外,"opensource"这一术语还被延伸到其他智力团体中,指那些可通过公开手段获得的智力资源,比如报纸、教学课件等。

3.开源(开源代码):

用于描述那些源码可以被公众使用的软件,并且此软件的使用修改和发行也不受许可证的限制。

4.决定使用面向开源软件的程序设计方法的因素:

一方面是对于应用领域的充分了解,这是我们判断能否利用某开源软件的主要依据;另一方面是开源软件的质量,包括文档和代码的规范程度。

2.3软件开发过程的管理

对于软件开发来说,核心是质量问题。

一、什么样的软件才是好的(好软件的评价标准)(重要的简答)

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

(2)用户界面友好,符合实际用户的使用习惯及知识水平;

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

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

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

二、好程序员及好项目组

1、单个程序员的主要的指标(P29)

(1)具有程序设计所需要的基本知识及技能,如关于数理逻辑的知识及训练,关于各类数据结构的概念及处理方法等;

(2)对本项目所在的领域有较深入的了解,从而能够准确地理解用户的信息需求,正确地把握有关的信息流程及信息处理原则;

(3)对于软件开发的技术环境比较熟悉,包括硬件设备、软件环境和网络环境,特别是对所用的语言,应当有足够的、实际运用的经验。

以上三个条件基本上能保证程序员单独地承担软件开发任务。

2、项目组的一员必须严格遵循:

(1)保证严格地在本模块范围内操作,决不要使用可能干扰其它模块的命令或函数;

(2)严格按总体设计的要求和理解去传递参数值,决不要随意修改其内容或含义;

(3)在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作,决不能擅自改变;

(4)在使用标识符时,应按照统一的原则,尽量使用易于看出逻辑含义的名称。

特别是涉及公用数据及参数的时候。

(5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定;

(6)尽量保持程序风格的一致。

总之,项目组的成员,必须放弃自己的某些“自由”去接受项目组的限制和约束,服从项目组的管理。

必须具有高度的组织和团队精神。

三、怎样建立一个好的项目组

CCM模型。

一个好的项目组应当具备以下几个条件

(1)有严格的、成文工作规范和文档标准,而且应当为全体成员所熟知,并且切实得到遵守。

(2)人员之间必须有严格的分工,除了程序员之外,必须有专门的秘书,必须有专门的测试人员,特别是要有专职的、不陷入具体编程的项目负责人。

(3)每个项目都要事先制定详细的时间表,并且得到严格招待。

每一项目完成之后都有完整的资料,并得到妥善保存,一旦需要修改或更新版本时可以立即使用。

课后习题

第三章软件开发工具的理论基础

3.1软件开发过程的信息需求

一、软件开发过程中涉及的信息主要有以下几方面:

第一类,有关系统环境、现状及需求的信息。

第二类,有关软件的功能设计及物理设计的各种信息。

第三类,软件成果本身,包括程序及文档。

第四类,用户对系统和各种变更要求,以及系统的各种变更记录。

二、以上四类信息涉及的信息管理工作有以下几个方面:

首先,许多信息需要长期保存,因为它们并非只用一次,而是需要不断更新,不断被调用。

(合理存储)

其次,在许多环节上都要进行数据的转换或加工。

(正确转化)

再次,还有大量的人及人之间的信息交流。

(顺畅流通)

所以可以说,软件开发工具正是为对上述四类信息的合理存储、正确转化和顺畅流通提供帮助。

三、软件开发工具用到的理论和方法

第一、认知科学中关于概念模式的概念及方法

第二、数据库技术的理论及方法

第三、编译技术的有关方法

第四、关于人机界面的理论及方法

第五、管理科学中关于项目管理及版本管理的理论及方法

第六、系统科学及系统工程中的有关理论及方法

3.2概念模式及其作用(考试的重点)

1、定义:

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

2、概念模式的意义:

①概念模式是人们认识客观世界的一种方法、工具。

②概念模式是人们的长期的实践活动中逐渐形成的。

③要领模式总是在一定的理论思想指导下形成的,同时又不断根据实际情况得到修正。

④概念模式在认识过程中十分重要,同时作为交流及表达工具也是十分重要的。

3、概念模式具有相对性,即面对各种不同的用途,必然会有不同形式的概念模式。

它们各有各有用处,不能互相代替,也无法说哪个更好或更有力。

4、概念模式的特点:

简单明了,易于理解。

一、框图(P35)

人们在编写软件时最早使用的一种概念模式。

用来描述程序执行的逻辑过程的。

基本步骤:

处理、判断、输入输出、起始或终止等几个基本功能。

适用范围:

当软件规模不太大的时候(至今还在普遍地使用)

二、结构图(P35)

在结构化程序设计中引入结构图,用以表示大型软件的层次结构,即模块结构。

以模块调用的关系为线索,从宏观上使人一目了然地掌握软件的全过程。

用自上而下的连线表示调用关系。

基本程序调用方式有三种:

顺序调用、选择调用、循环调用

优点:

能够体现层次,由粗到细

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1