当前位置:首页 > 3173软件开发工具复习资料
第一章 绪论
1、软件开发工具概念(范围):在高级程序设计语言的基础上,为提高软件开发的质量和效率,从规划、分析、设计、测试、成文和管理各方面,对软件开发者提供各种不同的帮助的一类广泛的软件。
2、软件开发工具的概念的三要点:1它是在高级程序设计语言之后 ,软件技术进一步发展的产物;2它的目的是在人们开发软件过程中给予人们各种不同方面、不同程度的支持或帮助3它支持软件开发的全过程,而不是仅限于编码或其它特定的工作阶段。
3、软件开发工具的地位:软件开发工具的提出与使用,是软件技术发展的一个新阶段,它是软件发展的必然趋势,是软件技术发展到一定阶段的必然产物。软件开发工具的作用:软件开发工具可以提高软件开发的效率,保证软件开发的质量,加快软件开发的周期,同时使得系统更加规范,而且节省人力、财力。 4、软件开发工具的产生与演变1第一代语言——机器语言2第二代语言——汇编语言3第三代语言——高级程序设计语言4第四代语言——非过程化语言 5、第三代语言与第二代语言的区别 ① 第三代语言突破了与机器指令一一对应的限制,尽可能接近自然语言的表达方式描述人们设想的处理过程,把这种表达方式向机器指令的转化工作交给编译系统去完成。②一个重要的变化是高级设计语言实现了对机器的独立性,即不依赖特定的硬件系统,抽象地逻辑地描述处理和算法,而把硬件系统之间的区别交给不同的编译系统去处理,从而大大提高了程序的可移植性。
6、第四代语言——非过程化语言思想给机器下达需要做什么的命令,由机器自己去安排执行的顺序。
7、软件危机:在认识到软件工作重要性的同时,也认识到软件工作的困难性。 8、软件工作的重要性(1软件是计算机的灵魂1软件是广大使用者与计算机之间的桥梁2)软件是人类的各个领域中积累的知识的结晶3软件是人类文明与知识得以延续的新的载体4软件是人类进一步成为一个整体,得以进一步相互联系的纽带。
9、软件工作的困难性1人类社会和客观世界的复杂性,决定了软件本身的复杂性2人类知识和丰富多彩,决定了软件的极大多样性3客观世界的动态性,决定了软件对可维护性、可靠性越来越高的要求。
10、用通用软件帮助软件开发有三个主要弱点:1许多工作是通用软件无法完成的2只能表现其表面的形式,不能反映其内涵3常常遇到难于保持一致性的困难。 11、专用的软件开发工具主要分为以下几类1面向特定功能模块的各种代码生成程序2综合性的第四代语言一般是立足于某种数据库管理系统或某种第三代语言之上的3专用于某种文档的编写工具4数据字典管理系统5专用于画数据流程图、ER图 等。
12、软件开发的过程:第一阶段:初始要求的提出。成果:软件功能说明第二阶段:总体设计。任务是根据软件功能说明书的要求,完成软件的总体设计,(成果:系统的总体设计文件及各个模块的设计任务书)第三个阶段:程序的编写和文档的编写,统称为实现阶段。第四个阶段:测试或调试阶段。包括两部分:模块的高度、整个软件的联调。
13、软件开发工具的功能要求:1认识与描述客观系统。用在软件开发工作的需求分析阶段2存储及管理开发过程中的信息3代码的编写或生成4文档的编制或生成5软件项目的管理。这一功能是为项目管理人员提供支持(包括:进度管理、
资源与费用管理、质量管理三个基本要求)。
14、软件开发工具的五项重要性能:1、表达能力或描述能力2、保持信息一致性的能力3、使用的方便程度4、工具的可靠程度5、对硬件和软件的要求。 15、学习软件开发工具的目的是什么?了解软件开发工具的概念、理论基础、基本功能、发展现状与前景,以便能够在实际工作中正确地选择与使用软件开发工具,在必要时能够参加或组织软件开发工具的自行研制,从而达到提高软件工作水平与效率之目标。
16、软件开发工具的发展(新阶段的特点)1自动化程度的提高2明确地把需求分析和架构设计包括进了软件工作的范围之内3把软件开发工作延伸到项目及版本管理,从而超出了一次编程的局限4在这一阶段的研究中,吸收了许多管理科学的内容与方法,如程序员的组织、质量的控制等。
17论述工具产生之前,第一代到第四代程序设计语言的主要特征1第一代机器语言阶段:使用“0”和“1”代码进行编程,难于阅读,难于维护,且程序高度依赖于计算机硬件,难于移植2第二代汇编语言:使用助记符来编写程序,由汇编系统将汇编指令转化为机器指令,编程工作量大大降低,但依然依赖于计算机硬件3第三代高级程序设计语言,高级语言突破了与机器指令一一对应的限制,实现了对机器的独立性,从而大大提高了程序的可移植性。程序员需要逐行编写语句来实现算法的过程,因此它属于过程化的语言4第四代语言(4GL)是非过程化的程序设计语言,用户只说明要求做什么,而把具体的执行步骤交由软件自动执行。
第二章 软件开发过程及其组织
1、两个转换的基本情况:第一个转换是用户对软件功能的理解和程序员对软件功能的理解之间的转换。保证这一转换顺利完成的手段就是利用尽可能标准化的方法编写程序设计任务书,第二个转换所要解决的是人和机器之间交流与协调问题:做好第二个转换的关键在于程序员的知识水平与实际经验。
2、大型软件开发中的困难1一致性的保持成为十分困难的问题2测试的困难大大增加3工作进度难以控制4文档与代码协调十分困难5版本更新带来的困难。 3、大型软件开发困难产生的原因:原因是复杂的、多方面的,不能特意地归结为程序员或软件工作者的弱点:1这些困难来自大系统的复杂性2个人之间的组织与协调本身也会带来大量的困难。3各个应用领域之间的差别也导致这些困难的加重。4时间的因素、变化的因素也给软件开发工作带来许多困难。
4、软件开发的方法:结构化程序设计、软件工程方法、面向对象的方法、即插即用的程序设计方法、可视化设计编程 5、软件开发工作中涉及到的人员及承担的工作1用户:提出要求、验收、使用、要求修改2项目负责人:分析需求、向程序员分配任务、验收程序员的工作成果代码与文档、对软件进行联调,向用户交付使用,接收与分析用户的修改要求,向程序员布置修改任务、验收修改成果并向用户提交新的版本或修改的结果等。 3程序员:编写程序、编写文档、调试编码的程序、向项目负责人提交工作成 6、《程序结构与设计的技术》一书中关于好的程序结构的各种看法; 1它能够保证程序正常地,按照功能说明书运行2它具有灵活性,没有错误,即使有了错误也能够很快地改正3它的文档齐全,一旦需要变更,很容易找到应当改动的地方4它运行速度快5它在经济上能够保证投资很快地得到回报。
7、模块的划分应当符合以下三条基本的要求:1模块的功能在逻辑上尽可能地单一化、明确化,最好做到模块与任务的一一对应,(凝聚性强)2模块之间的
联系及互相影响尽可能地少,对于必需的联系都应当加以明确的说明3模块的规模应当足够小,以便使它本身的调试易于进行。
8、结构化程序设计的原则:1限制甚至不用GOTO语句,绝对禁止超越模块边界的GOTO语句2子程序尽可能做到只有一个入口、一个出口3程序风格应尽量明确、清晰,变量名称尽量具有逻辑意义等4在程序编写的同时,完成有关的文档编撰,不要拖延时间。
9、结构化程序设计方法的缺点:增大了程序工作量,增加了编辑中的麻烦与琐碎的工作,降低了程序的运行效率。但这种是为保证软件的可靠、准确度与易于修改付出的代价。 10、软件开发工作中需要加强的两个方面1对工作的步骤做出了严格的规定。每一个阶段有明确的任务、明确的起点、明确的终点,特别是要有确切的、可以检查的成果。2在质量、表达方式等方面要有统一的、为人们共同遵守的标准。 11、对软件开发工作过程进行规范化:1需求分析。了解企业的结构与功能,掌握组织及管理者的信息需求,弄清信息流通的实际情况2分析与设计阶段,进行功能分解及数据分析,完成处理过程及数据库的逻辑设计3编程阶段,完成具体的程序编写工作4测试阶段,对已有的代码进行认真的检测与试用5作用及维护阶段,组织使用者有效地作用,并及时检查与修正发现的错误。
12、标准化方面主要从两个方面去探索:1是表达方式的标准化2是对工作的质量及检查制订标准。
13、面向对象的程序设计的基本思想:1客观世界的任何事物都是对象,它们都有一些静态属性,也都有一些有关的操作。(封装性2对象之间有抽象与具体、群体与个体、整体与部分等几种关系3抽象的、较大的对象所具有的性质包括静态属性和动态操作,自然地成为它的子类的性质。(遗传性)4对象之间可以互送消息,这一消息可以是传送一个参数,也可以是使这个对象开始某个操作。 14、即插即用的程序设计基本思想:一些人生产软件组件,另一些人则设计软件的结构,并把软件组件插入这个结构,以便迅速地完成大型软件的研制工作。 15、即插即用的程序设计的实现的困难1标准化的问题困难 2软件部件的提供方式也是问题。 16、运用可视元素时所用的技术手段:1指点与卡嗒 2删剪与粘贴3拖拉与扔下 17、什么样的软件才是好的(好软件的评价标准1正确地实现所要求的功能,准确地给出预定的输出结果2用户界面友好,符合实际用户的使用习惯与知识水平3具有足够的速度,能在符合用户要求的时间限度内,给出所要求的处理结果;4具有足够的可靠性,能够在各种干扰下保持正常的工作5程序易读,结构良好,文档齐全,从而保证系统易于修改。
18、单个程序员的主要的指标1具有程序设计所需要的基本知识与技能 2对本项目所在的领域有较深入的了解,从而能够准确地理解用户的信息需求,正确地把握有关的信息流程与信息处理原则3对于软件开发的技术环境比较熟悉,特别是对所用的语言,应当有足够的、实际运用的经验。以上三个条件基本上能保证程序员单独地承担软件开发任务。
19、项目组的一员必须严格遵循(项目组对程序员的约束有哪些):1保证严格地在本模块范围内操作,决不要使用可能干扰其它模块的命令或函数2严格按总体设计的要求和理解去传递参数值,决不要随意修改其内容或含义3在对公用的文件或数据库进行存取时,必须完全地、准确地按统一规定的格式去操作,决不能擅自改变4在使用标识符时,应按照统一的原则,尽量使用易于看出逻辑含义
的名称5严格按照统一的要求编写文档,在内容、格式、表达方式、符号使用上遵循项目组的统一规定6尽量保持程序风格的一致7总之,项目组的成员,必须接受项目组的限制和约束,服从项目组的管理。必须具有高度的组织和团队精神。 20、怎样建立一个好的项目组 一个好的项目组应当具备以下几个条件1有严格的、成文 工作规范和文档标准,且应当为全体成员所熟知,并且切实得到遵守。2人员之间必须有严格的分工,除程序员之外,必须有专门的秘书,必须有专门的测试人员,特别是要有项目负责人3每个项目都要事先制定详细的时间表,并且得到严格招待。 21、结构化程序设计的基本思想:把程序的结构分解成三种基本模块:处理单元、循环机制、二分决策机制,并保证模块的划分符合‘结构良好’的要求:1模块的功能在逻辑上最好做到一一对应;2尽可能地减少模块之间的联系及相互影响,对必需的联系都应当加以明确的说明。应尽量避免逻辑耦合,而仅限于数据耦合;3模块的规模应当足够小,以便使它本身的调试易于进行。
第三章 软件开发工具的理论基础 1、软件开发过程中信息流通的主要内容:1有关系统环境、现状及需求的信息2有关软件的功能设计与物理设计的各种信息。3软件成果本身,包括程序与文档。4用户对系统和各种变更要求,以及系统的各种变更记录。
2、软件开发工具的理论及技术基础:1认知科学中关于概念模式的概念与方法 2数据库技术的理论和方法3编译技术的有关方法4关于人机界面的理论与方法5管理科学中关于项目管理与版本管理的理论与方法6系统科学与系统工程中的有关理论与方法。
3、概念模式的意义:①概念模式是人们认识客观世界的一种方法、工具②概念模式是人们的长期的实践活动中逐渐形成的③要领模式总是在一定的理论思想指导下形成的,同时又不断根据实际情况得到修正④概念模式在认识过程中十分重要,同时作为交流与表达工具也是十分重要的
4、传统的以文档形式交流带来的两个严重的问题①首先在信息传递中,误解与丢失十分严重②另一个问题是由软件的修改与版本更新引起的。
5、信息库的特点:数据结构是相当复杂的,且会不断变化,保持一致性的任务十分复杂
6、应当存入信息库的内容:1所述软件的工作环境、功能需求、性能要求,各种信息来源的状况以及在该领域中的作用等外部信息2需求分析阶段中收集的有关用户的各种信息3逻辑设计阶段的各种调查材料和由此生成的各种文档,包括调查记录、原始数据、报表及单证的样本、绘制的各种图以及最后生成的系统说明书4设计阶段的各种资料,包括所有的数据库与数据文件格式、数据字典、程序模块的要求、总体结构、各种接口及参数的传递方式以及最后形成的设计方案。5编程阶段的所有成果,包括程序代码、框图、变量说明、测试情况(输入数据及输出结果)、验收报告、使用说明等6运行及使用情况的详细记录,包括每次使用的时间、状态、问题,特别是有关错误及故障的记录情况7维护及修改的情况,包括修改的目标、责任人、过程、时间,修改前后的代码、文档以及修改后的结果、原系统的备份。8项目管理的有关信息,即各次版本的备份、每个版本的推出日期和以前版本相比的变更说明等。
7、信息库与数据库、数据仓库的区别:信息库是针对软件开发或信息系统开发中的大量信息管理工作提出来的,它存放软件开发全过程中所有有用的信息、并随着项目进展而不断修改与补充的数据集合。数据库是指在文件系统基础上发展
共分享92篇相关文档