《软件工程导论》考试夹带

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。2.产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。3.软件工程的定义:是指导计算机软件开发和维护的一门工程学科。具体如下:开发进度难以估计,开发质量难以衡量设计中的错误很难维护规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。4.怎样解决软件危机?(1)对软件要有正确的认识(2)软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。(3)应该推广使用在实践中总结出来的开发软件的成功的技术和方法。(4).应该开发和使用更好的软件工具。5.可行性研究的任务?(1)需要进一步分析和澄清问题定义。(2)导出系统的逻辑模型。(3)最根本的任务是对以后的行动方针提出建议。6.需求分析1.功能需求这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2.性能需求软件开发的技术性指标。例如:存储容量限制执行速度、响应时间吞吐量7.形式化说明技术Z语言:形式化的规格说明语言中,较典型的一种语言。用Z语言描述的,最简单的形式化规格说明含有四个部分:(1)给定的集合,数据类型及常数;(2)状态定义;(3)初始状态;(4)操作;8.总体设计模块化:采用模块化原理可以使软件结构清晰,容易设计也容易阅读和理解、测试。抽象:抽象就是抽出事物的本质特性而暂时不考虑它们的细节。逐步求精:逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。信息隐蔽和局部化:该原理有利于提高模块的内聚性。模块独立:模块独立重要性理由:第一,有效的模块化的软件比较容易开发出来。第二,独立的模块比较容易测试和维护。9.详细设计第一章1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。2.产生软件危机的原因:(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。//3.软件配置的主要包括程序、文文件和数据等成分。4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。//5.所谓基准配置又称基线配置。6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型7.软件工程方法学包含三个要素:方法、工具和过程。8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学9.传统方法学也称为生命周期方法学或结构化范型10.面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。4.对象彼此间仅能通过发送消息互相联系。11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)12.最基本的测试是集成测试和验收测试。13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。14.所谓构件就是功能清晰的模块或子系统15.RUP(Rational统一过程)软件开发的生命周期是一个二维的生命周期模型16.”极限”二字的含义是指把好的开发实践运用到极致17.微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。18.面向对象方法=对象+类+继承+用消息通信第二章可行性研究19.可行性研究的目的就是用最小的代价在尽可能多的时间内确定问题能否能够解决。20.可行性包括:技术可行性,经济可行性,操作可行性。21.系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文文件,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流程图而不是程序流程图。22.书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流程图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。数据流程图是系统逻辑功能的图形表示。23.用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。24.有数据元素组成的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次。第三章25.访谈有两种基本形式,分别是正式的和非正式的访谈26.所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析27.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。28.使用简易的应用规格说明技术分析需求的典型过程:(总结出来)29.快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。30.所谓模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。31.需求分析过程应该建立3种模型,它们分别是数据模型,功能模型,行为模型.32.概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型33.数据对象是对软件必须理解的符合信息的抽象。34.数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为3种类型:一对一联系,一对多联系,多对多联系。35.状态时任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。36.事件就是引起系统做动作或(和)转换状态的控制信息。37.IPO图是输入,处理,输出图的简称。38.软件的验证:一致性,完整性,现实性,有效性第五章42.总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。43.模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列。44.抽象就是抽出事物的本质特性而暂时不考虑它们的细节。45.逐步求精定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。46.抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。47.信息隐藏,信息隐藏的原理,48.局部化就是把一些关系密切的软件元素物理的放得彼此靠近。49.耦合是对一个软件结构内不同模块之间互连程度的度量。50.数据耦合是低耦合,控制耦合式中等程度的耦合,最高程度的耦合式内容耦合。51.如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。52.中内聚主要有两类:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。53.高内聚也有两类:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序内聚。深度表示软件结构中控制的层数,它往往能粗略的标志一个系统的大小和复杂程度。54.宽度是软件结构内同一个层次上的模块总数的最大值。55.扇出事一个模块直接控制(调用)的模块数目。56.一个模块的扇入表明有多少个上级模块直接调用它。57.设计的很好的软件结构通常顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇出)58.模块的作用域应该在控制域之内(2种方法)?????59.面向数据流的设计方法把信息流映像成软件成结构,信息流的类型决定了映射的方法。信息流有两种类型:变换流,事务流。60.总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案。并且进而确定组成系统的每个程序的结构。61.在进行软件结构设计时应该遵循的最主要的原理是模块独立原理。62.第六章63.结构程序设计的经典定义:如果一个程序的代码仅仅通过顺序,选择和循环这3种基本结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。64.系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标),到软件给出预期的响应(输出信息或动作)之间的这段时间。65.系统响应时间有两个重要的属性:长度和易变性。66.易变性指系统响应时间相对于平均响应时间的偏差。67.一般交互指南涉及信息显示,数据输入和系统整体控制。68.过程涉及的工具:程序流程图,盒图,PAD图,判定表,判定树69.PDL作为一种设计工具有如下一些特点(要求看懂伪码)第七章70.通常把编码和测试统称为实现。71.编码和单元测试属于软件生命周期的同一个阶段。72.编码的标准:1.系统用户的要求2.可以使用的编译程序3.可以得到的软件工具4.工程规模5.程序员的知识6.软件可移植性要求7.软件的应用领域73.所谓程序内部的文文件包括恰当的标识符、适当的注释和程序的视觉组织等。74.当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。75.效率主要指处理机时间和内存容量两个方面。76.在大型计算机中必须考虑操作系统页式调度的特点,一般说来,使用能保持功能域的结构化控制结构,是提高效率的好方法。77.二级内存的输入输出应该以信息组为单位进行。78.测试阶段的根本目标是尽可能地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。79.软件测试的目标:1.测试是为了发现程序中的错误而执行程序的过程2.好的测试方案是发现了至今为止发现的错误的测试3.成功的测试是发现了至今为止尚未发现的错误的测试。80.测试的正确定义是“为了发现程序中的错误而执行程序的过程”。第八章81.软件工程的主要目标就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。82.所谓软件维护就是在软件应经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。83.四种维护的定义:1.改正性维护2.适应性维护3.完善性维护4.预防性维护。P18984.用于维护工作的劳动可以分成生产性活动和非生产性活动。85.每个维护要求都通过维护管理员转交给熟悉该产品的系统管理员去评价。86.适应性维护和完善性维护的要求沿着相同的事件流通路前进。87.当发生恶性的软件问题时,就出现所谓的“救火”维护要求。88..评价维护活动:1.每次程序运行平均失效的次数2、用于每一类维护活动的总人时数。3.平均每个程序、每种语言、每种维护类型所作的程序变动数4.维护过程中增加或删除一种源语句平均花费的人时数5.维护每种语言平均花费的人时数6.一张维护要求表的平均周转时间7.不同维护类型所占的百分比。89.可以把软件的可维护性定性的定义为:维护人员理解,改正,改动或改进这个软件的难易程度。90.决定软件可维护性的因素:1.可理解性可测试性可修改性可移植性可重用性91.所谓重用是指同一事物不做修改或稍加改动就在不同环境中多次重复使用。92.软件系统的文文件可以分为用户文文件和系统文文件两类。用户文文件主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;系统文文件描述系统发设计、实现和测试等各方面的内容预防性维护方法是由Miller提出来的,他把这种方法定义为“把今天的方法学应用到昨天的系统上,以支持明天的需求。”第九章面向对象方法学引论93.使描述问题的’问题空间’(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。94.人们把计算机中的实体称为解空间对象。95.对对象施加的操作就是该对

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功