软件开发工具知识点(老版)
第一章
1、什么是软件开发工具?
在高级程序设计语言的(第三代语言)的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同程度的帮助的一类广泛的软件。
软件开发工具概念要点有三:
(1)它是在高级程序设计语言(第三代语言)之后,软件技术进一步发展的产物;
(2)它的目的是在人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助;
(3)它支持软件开发的全过程,而不是仅限于某个特定的阶段。
2、简述计算机软件发展的几个阶段。
四个阶段:
第一代计算机语言——机器语言阶段。
第二代计算机语言——汇编语言阶段。
第三代计算机语言——高级程序设计语言,过程化语言
第四代计算机语言——非过程化语言(4GL)
3、简述软件工作的重要性和困难性。
软件工作的重要性越来越为人们所认识,软件是计算机的灵魂,是广大使用者与计算机之间的桥梁,是人类在各个领域中积累的知识的结晶,是人类文明与知识得以延续的新的载体,是人类进一步成为一个整体、得以进一步相互联系的纽带。
人们在认识到软件工作的重要性的同时也越来越认识到了它的困难性。这就是所谓的“软件危机”问题。人类社会和客观世界的复杂性,决定了软件本身的复杂性;人类知识的丰富多彩,决定了软件的多样性;客观世界的动态性,决定了软件对可维护、可重用性越来越高的要求。面对规模日益扩大的软件,如何保证它的正确性、可靠性,如何控制软件开发的进度与成本,成为十分重要的课题。
4、简述软件开发工具的演变过程。
软件开发工具的演变是从无到有,从分散到集中的过程,是软件发展的必然趋势。主要分为三个阶段:
第一阶段:利用通用软件作为辅助工具的阶段——没有专用软件开发工具的阶段。
雨后彩虹第二阶段:专用的软件开发工具阶段。
第三阶段:集成的软件开发工具阶段。
5、试述用通用软件辅助软件开发的弱点。
用通用软件来帮助开发人员编写文档或画图可以减少很多工作量,但是与软件开发工作相比,这种帮助实在太表面、太初级了。用通用软件帮助软件开发有三个主要弱点:
(1)许多工作通用软件无法完成。
(2)用通用软件完成某些工作,只能表现其表面的形式,不能反映其逻辑内涵(形似,神不似)。
(3)常遇到难于保持一致性的困难。
6、集成化的软件开发工具是在什么背景下产生的?
大批专用软件开发工具的出现并未解决一致性的问题。其根源在于对软件的开发缺乏全面的、统一的支撑环境。这些零散的、分散的支持软件开发各个阶段、各项具体工作的专用工具之间没有有机的联系起来,必然造成冲突与矛盾。这对用户造成了沉重的负担,以致抵消了使用工具带来的益处,从而导致集成软件开发工具的产生。
7、试述软件开发工作的发展变化。
软件开发工作的发展变化主要有四个阶段:
(1)最初阶段——把用户已经明确表述出来的算法,用机器语言写成一系列机器指令,供硬件运行使用。
(2)第二阶段——编程工作改为汇编语言进行,编好的指令由汇编程序转化为机器指令,再交硬件执行。
与用户的距离近了。
(3)第三阶段——汇编语言换成了高级程序设计语言(第三代语言),不再与机器指令一一对应,更加接近自然语言,离机器更远了,离用户更近了。
(4)第四阶段——以应用软件开发工具为标志,把需求分析纳入了软件开发工作中,进一步扩大了软件开发的范围。
8、试述现阶段软件技术的特点(作为软件技术发展的一个新阶段,使用软件开发工具与以往的区别)
(1)自动化程度的提高。由于代码生成等技术的应用,在一些特定条件下,可以较容易地自动生成第三代语言(或更
低的语言)的代码,从而大大节省人力和时间。
(2)明确地把需求分析纳入软件工作范围之内,从而使软件开发过程进一步向用户方面延伸,离用户更近了。这是软件技术向前迈进的重要一步。
(3)把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限,而扩大到了作为一个不断发展的客体的生长完善的全过程。这也是软件研制从个体的、手工作坊的方式向科学的、有组织、有计划的方式转变的一个重要表现。(4)吸收了许多管理科学的内容与方法,如程序员的组织,质量的控制,使软件开发技术不再只是讨论单个程序员自己工作的技术与方法问题,而是把组织、管理等项目负责人的思想与方法放到了更重要的位置。
总之,软件开发工具的提出与使用,是软件技术发展的一个新阶段。
搞笑电视剧排行10、什么是功能?软件开发工具应具有什么样的功能?
功能是软件能做什么事。软件开发工具的主要功能:
(1)认识与描述客观系统
(2)存储与管理开发过程中的信息
(3)代码的编写与生成
(4)文档的编制或生成
(5)软件项目的管理
11、什么是性能?软件开发工具重要的性能指标有哪些?
性能是软件能把事情能做到什么程度。性能指标主要有:
(1)表达能力或描述能力
(2)保持信息一致性的能力
(3)使用的方便程度
(4)工具的可靠程度
(5)对软、硬件环境的要求
12、试述软件开发工具的类别。
1)按支持的工作阶段把软件开发工具划分成三类:
(1)设计工具:在实现阶段对人们提供帮助,是最直接帮助人们编程、调试软件与编写文档的工具。如各种代码生成器,第四代语言和测试的工具等。
(2)分析工具:主要用于需求分析的工具,帮助人们认识与表述信息需求和信息流程,从逻辑上明确软件功能与要求。如数据字典管理系统,绘制数据流图、系统结构图或ER图的专用工具。
(3)计划工具:从宏观角度看待软件开发,保存与管理的信息都是与整个项目相关的宏观信息,完全是为项目主管人员服务的。
2)按集成程度划分成两类:
(1)专用的工具:面对某一工作阶段或某一工作任务的软件开发工具。
(2)集成化的工具:是集成化的、面对软件开发全过程的软件开发工具。
3)按与硬件、软件的关系划分成两类:
(1)依赖于特定机器或软件的工具,如多数设计工具和集成化的工具。
(2)独立于硬件与软件的工具,如分析工具和计划工具。
13、对软件开发工具的研究来源于哪些方面?
对软件开发工具的研究主要来源于三方面:
(1)软件开发工具的使用者。他们是软件开发工具得以发展的基础。这些人员大致有两种:一种是计算机专业出身的技术人员;一种是应用领域的人员,如会计、金融、企业管理等。打不出字怎么办
(2)一些厂家和研究单位。既包括一些计算机硬件的制造商,也包括一些软件公司,如DEC、HP、ORACLE等,由此形成了软件开发工具的研制队伍。
(3)软件技术专家(如ACM、IEEE)和系统工程专家。
14、学习软件开发工具的目的是什么?
作为一般的使用者,学习软件开发工具的目的在于了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便在实际工作中正确地选择与使用软件开发工具,在必要时能参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率的目标。
第二章
1、软件开发中的基本问题及解决办法是什么?(单个程序员做好软件工作的关键是什么?)
对单个程序员来说,做好软件的关键是做好两个转换:
第一个转换:从用户对软件功能的理解到程序员对软件功能的理解之间的转换。
第二个转换:从程序员的理解到程序的实现。
保证第一个转换顺利完成的手段:利用尽可能标准化的方法编写程序设计任务书,用明确的语言或图形、表格,把程序要处理的信息的内容、格式、来源、去向、存储、处理清楚地表达出来,作为双方共同理解。
保证第二个转换顺利完成的手段:提高程序员的知识水平和实际经验。
2、大型软件开发中的困难体现在哪些方面?困难产生的原因是什么?
大型软件开发中的困难主要有:
(1)一致性的保持成为十分困难的问题
(2)测试的困难大大增加
(3)工作进度难以控制
(4)文档与代码的协调十分困难
(5)版本更新带来的困难
困难产生的原因:
(1)大系统的复杂性;
(2)个人之间的组织与协调;
(3)各应用领域间的差别;
(4)时间、变化的因素。
3、几十年来,为了提高软件开发的水平和效率人们提出了哪些软件开发方法?
面对软件开发中的种种困难和问题,软件工作者千方百计从各种不同角度,用各种不同方法试图使软件开发工作的水平和效率有大幅提高。仅从软件开发方法而言,先后提出了:
结构化程序设计方法
●软件工程方法
●面向对象的程序设计方法
●即插即用的程序设计方法
●可视化程序设计方法
4、大型软件开发过程中涉及几种角,他们承担的工作有哪些?
大型软件开发过程中涉及几种角,他们承担的工作有:
(1)用户:提出需求、验收软件、使用软件、提出修改要求
(2)程序员:编程、写文档、调试自己的程序、向项目负责人提交工作成果
(3)项目负责人:分析用户需求形成设计方案、向程序员分配任务、验收程序员的工作成果、对整个软件联调、向用户交付使用、接收与分析用户的修改要求、向程序员分配修改任务、验收修改成果、向用户提交新的版本或修改的结果
(4)计算机硬件:运行、试运行
5、试述结构化程序设计的基本思想与方法(论述)。
结构化程序设计的基本思想是把程序的结构分解成三种基本模块:处理单元、循环机制、二分决策机制,并保证模块的划分符合“结构良好”的要求:
(1)模块的功能在逻辑上尽可能的单一化、明确
(2)模块间的联系及相互影响尽可能的少
(3)模块的规模应当足够小,以便其易于调试
划分模块时采用“自顶向下”的方法,即不管软件多大,都采取自上而下、逐步分解的办法,分成若干部分,并把他们之间的关系明确地表达出来,画出系统结构图,直到最底层的模块达到所要求的规模为止。
实施结构化程序设计的思想时,要遵守以下原则:
(1)限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句。
(2)子程序尽可能做到只有一个入口、一个出口;
(3)程序风格应尽量明确、清晰,包括适当增加注释,书写格式体现层次结构,变量名称的选用尽量具有逻辑意义等;
(4)在程序编写的同时完成有关的文档编撰,不要拖延时间。
结构化程序设计的方法主要是为程序员服务的。它的缺点是增大了程序的工作量,增加了编程中的麻烦与琐碎的工作,降低了程序的运行效率。但它保证了软件的可靠、准确与易于修改。
6、试述软件工程的基本思想和方法(论述)。
软件工程的基本思想来源于传统工程,要想大幅度地从根本上提高软件开发的质量和效率,就应当吸取各种传统产业的成功经验,从组织和管理的角度加强力量,使软件生产从程序员的个人劳动提高成为有组织、可控制的工程。软件工程借鉴传统工程的思想,从软件开发的经验中归纳出相应的工作步骤和交流标准,大家都来遵守和执行,从而保证软件开发的进度与质量。
软件工程的实施方法:
首先,对软件开发的工作过程进行规范。如IBM的AD/Cycle,对应用软件的开发过程做了如下划分和
规定:第一阶段,需求分析。了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况。
第二阶段,分析与设计。进行功能分解及数据分析,完成处理过程及数据库的逻辑设计。
第三阶段,编程阶段。完成具体的程序编写工作。
第四阶段,测试阶段。对已有代码进行认真检测与试用。
第五阶段,使用及维护。组织使用者有效的使用,并及时检查与修正发现的错误。
在标准化方面主要从两个方面探索。
(1)表达方式的标准化,如统一规格的数据流程图、数据字典、模块结构图等。
(2)对工作的质量及检查制定标准,在一定的时候作一定的检查。如著名的ISO9001标准。
软件工程的思想主要集中于加强项目管理者的工作上,对程序员关系不大,与结构化程序设计方法刚好互补。目前软件开发还主要依赖程序员的个体工作,完全做到工程还是相当困难的。
7、面向对象程序设计的基本思想(论述)。
面向对象的程序设计是人们试图解决软件危机的又一种尝试,近年来,随着面向对象语言的普及,这种思想得到了广泛的传播。面向对象程序设计的基本思想可以归纳为四点:
(1)客观世界的任何事物都是对象,它们都有一些静态属性(相应于数据结构)和相关的操作(相应于程序模块)。作为一个整体,这些对象不必对外公开这些属性与操作。这就是“封装性”。
(2)对象之间有抽象与具体、体与个体、整体与部分等几种关系。这些关系构成对象概念之间的网络结构。
(3)抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,不必加以重复说明或规定。这就是“遗传性”。
(4)对象之间可以互送消息,这一消息可以是传送一个参数,也可以是使这个对象开始某个操作。
面向对象程序设计语言反映了程序设计的思想方法越来越接近人们思维的方式,它摒弃了持续许久的“自顶向下”和“自底向上”的争论,把对于复杂系统的认识归结为对一批对象及其关系的认识,通过合理地选择认识的层次,使系统的复杂性保持在可控制的范围内。
8、即插即用程序设计的基本思想?
即插即用程序设计是在面向对象程序设计方法的基础上提出来的。它的基本思想是用制造硬件的思路来生产软件。在硬件的制造中,芯片的制造与整机是分开进行的。制造芯片的厂家只管制造芯片,而制造整机的厂家则利用这些芯片组成完整的计算机。人们想用同样的思路来处理大型软件的开发,一部分人专门生产软件组件,一部分人设计整个软件结构,并且把软件组件插入这个结构,以便迅速完成大型软件的研制工作。
然而这种思想的真正实现并不那么简单。首先,标准化的问题十分困难。其次,软件部件的提供方式也是问题。
依照这种思路,一些软件公司或机构已经在标准化方面提出了方案,如著名的CORBA和COM101。
9、什么样的软件才是好的软件?
(1)正确地实现所要求的功能,准确地给出预定的输出结果;
(2)用户界面友好,符合实际用户的使用习惯和知识水平;
(3)具有足够的速度(不是越快越好),能在符合用户要求的时间限度内,给出所要求的结果;
(4)具有足够的可靠性,能够在各种干扰下保持正常工作;
(5)程序易读,结构良好,文档齐全,从而保证系统易于修改。
10、评价单个程序员的主要性能指标是什么?
就单个程序员来说,主要的指标有:
(1)具有程序设计所需要的基本知识与技能,如关于数理逻辑的知识与训练,关于各类数据结构的概念及处理方法等;
(2)对本项目所在的那个领域有较深入的了解,从而能够准确的理解用户的信息需求,正确地把握有关的信息流程与信息处理原则;
(3)对于软件开发的技术环境比较熟悉,包括硬件设备、软件环境和网络环境,特别是对于所用的语言,应当有足够的、实际运用的经验。
11、作为项目组的一员,要遵守哪些要求?
作为项目组的一员,除了完成自己承担的任务之外,重要的是使自己的工作融入整个系统,与其他部分协调一致的工作,以下几点必须严格遵守:
终极三国孙策(1)保证严格在本模块内操作,绝不要使用可能干扰其它模块的命令或函数。名门口袋学院2攻略
东北种什么树(2)严格按总体设计的要求和理解去传递参数值,绝不要随意修改其内容或含义。
(3)在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作,绝不能擅自改变。
(4)在使用标识符时,应按照统一的原则尽量使用易于看出逻辑含义的名称。特别是涉及公用数据及参数的时候。
(5)严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定。
(6)尽量保持程序风格的一致。如注释行的安排,行首空格的使用等。
12、一个好的项目组应具备哪些条件?
好的项目组是在长期工作中逐渐形成的,根据衡量项目组的CMM模型,一个好的项目组至少应当具备以下几个条件:
(1)有严格的、成文的工作规范和文档标准,而且应当为全体成员所熟知,并切实得到遵守。
(2)人员之间有严格的分工,除了程序员之外,必须有专门的秘书(负责文档的收集、审核及保管),必须有专门的测试人员(负责测试和验收有关的部分),特别是要有专职的、不陷入具体编程的项目负责人。
(3)每个项目都要事先制定详细的时间表,并且得到严格执行每一项目完成之后都有完整的资料,并得到妥善保存,一但需要修改或更新版本时可以立即使用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。