【软件工程导论】考试夹带_第1页
【软件工程导论】考试夹带_第2页
【软件工程导论】考试夹带_第3页
【软件工程导论】考试夹带_第4页
【软件工程导论】考试夹带_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。2.产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。3.软件工程的定义:是指导计算机软件开发和维护的一门工程学科。具体如下:开发进度难以估计,开发质量难以衡量设计中的错误很难维护规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。4.怎样解决软件危机?(1)对软件要有正确的认识(2)软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。(3)应该推广使用在实践中总结出来的开发软件的成功的技术和方法。(4). 应该开发和使用更好的软件工

2、具。5.可行性研究的任务?(1)需要进一步分析和澄清问题定义。(2)导出系统的逻辑模型。(3)最根本的任务是对以后的行动方针提出建议。6.需求分析1. 功能需求 这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2. 性能需求软件开发的技术性指标。例如:存储容量限制 执行速度、响应时间 吞吐量7.形式化说明技术Z语言:形式化的规格说明语言中,较典型的一种语言。用Z语言描述的,最简单的形式化规格说明含有四个部分: (1)给定的集合,数据类型及常数;(2)状态定义;(3)初始状态;(4)操作;8.总体设计模块化:采用模块化原理可以使软件结构清晰,容易设计也容易阅读和

3、理解、测试。抽象:抽象就是抽出事物的本质特性而暂时不考虑它们的细节。逐步求精:逐步求精 :为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。信息隐蔽和局部化:该原理有利于提高模块的聚性。模块独立:模块独立重要性理由:第一,有效的模块化的软件比较容易开发出来。第二,独立的模块比较容易测试和维护。9. 详细设计第一章1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。2.产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,

4、对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规指导,造成软件维护困难。(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。/3.软件配置的主要包括程序、文文件和数据等成分。4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。/5.所谓基准配置又称基线配置。6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为型7.软件工程方法

5、学包含三个要素:方法、工具和过程。8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学9.传统方法学也称为生命周期方法学或结构化型10.面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。4.对象彼此间仅能通过发送消息互相联系。11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)12.最基本的测试是集成测试和

6、验收测试。13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。14.所谓构件就是功能清晰的模块或子系统15.RUP(Rational统一过程)软件开发的生命周期是一个二维的生命周期模型16.”极限”二字的含义是指把好的开发实践运用到极致17.微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。18.面向对象方法=对象+类+继承+用消息通信第二章可行性研究19.可行性研究的目的就是用最小的代价在尽可能多的时间确定问题能否能够解决。20.可行性包括:技术可行性,经济可行性,操作可行性。21.系统流程图是概括地描绘物理系统的传统

7、工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文文件,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流程图而不是程序流程图。22.书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流程图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。数据流程图是系统逻辑功能的图形表示。23.用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。24.有数据元素组成

8、的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次。第三章25.访谈有两种基本形式,分别是正式的和非正式的访谈26.所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析27.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。28.使用简易的应用规格说明技术分析需求的典型过程:(总结出来)29.快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。30.所谓模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。31.需求分析过程应该建

9、立3种模型,它们分别是数据模型,功能模型,行为模型.32.概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型33.数据对象是对软件必须理解的符合信息的抽象。34.数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为3种类型:一对一联系,一对多联系,多对多联系。35.状态时任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。36.事件就是引起系统做动作或(和)转换状态的控制信息。37.IPO图是输入,处理,输出图的简称。38.软件的验证:一致性,完整性,现实性,有效性第五章42.总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;

10、结构设计阶段,确定软件结构。43.模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列。44.抽象就是抽出事物的本质特性而暂时不考虑它们的细节。45.逐步求精定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。46.抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。47.信息隐藏,信息隐藏的原理,48.局部化就是把一些关系密切的软件元素物理的放得彼此靠近。49.耦合是对一个软件结构不同模块之间互连程度的度量。50.数据耦合是低耦合,控制耦合式中等程度的耦合,最高程度的耦合式容耦合。51.如果一个模块完成一组任务,这些任务彼此间即使有关

11、系,关系也是很松散的,就叫做偶然聚。52.中聚主要有两类:如果一个模块的处理元素是相关的,而且必须以特定次序执行,则称为过程聚。53.高聚也有两类:如果一个模块的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序聚。深度表示软件结构中控制的层数,它往往能粗略的标志一个系统的大小和复杂程度。54.宽度是软件结构同一个层次上的模块总数的最大值。55.扇出事一个模块直接控制(调用)的模块数目。56.一个模块的扇入表明有多少个上级模块直接调用它。57.设计的很好的软件结构通常顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇出)58.模块的作用域应该在控制域之

12、(2种方法)?59.面向数据流的设计方法把信息流映像成软件成结构,信息流的类型决定了映射的方法。信息流有两种类型:变换流,事务流。60.总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案。并且进而确定组成系统的每个程序的结构。61.在进行软件结构设计时应该遵循的最主要的原理是模块独立原理。62.第六章63.结构程序设计的经典定义:如果一个程序的代码仅仅通过顺序,选择和循环这3种基本结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。64.系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标),到软件给出

13、预期的响应(输出信息或动作)之间的这段时间。65.系统响应时间有两个重要的属性:长度和易变性。66.易变性指系统响应时间相对于平均响应时间的偏差。67.一般交互指南涉及信息显示,数据输入和系统整体控制。68.过程涉及的工具:程序流程图,盒图,PAD图,判定表,判定树69.PDL作为一种设计工具有如下一些特点(要求看懂伪码)第七章70.通常把编码和测试统称为实现。71.编码和单元测试属于软件生命周期的同一个阶段。72.编码的标准:1.系统用户的要求2.可以使用的编译程序3.可以得到的软件工具4.工程规模5.程序员的知识6.软件可移植性要求7.软件的应用领域73.所谓程序部的文文件包括恰当的标识符

14、、适当的注释和程序的视觉组织等。74.当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。75.效率主要指处理机时间和存容量两个方面。76.在大型计算机中必须考虑操作系统页式调度的特点,一般说来,使用能保持功能域的结构化控制结构,是提高效率的好方法。77.二级存的输入输出应该以信息组为单位进行。78.测试阶段的根本目标是尽可能地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。79.软件测试的目标:1.测试是为了发现程序中的错误而执行程序的过程 2.好的测试方案是发现了至今为止发现的错误的测试 3.成功的测试是发现了至今为止尚未发现的错误的测试。80.测试的正确定义是

15、“为了发现程序中的错误而执行程序的过程”。第八章81.软件工程的主要目标就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。82.所谓软件维护就是在软件应经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。83.四种维护的定义:1.改正性维护2.适应性维护3.完善性维护4.预防性维护。P18984.用于维护工作的劳动可以分成生产性活动和非生产性活动。85.每个维护要求都通过维护管理员转交给熟悉该产品的系统管理员去评价。86.适应性维护和完善性维护的要求沿着相同的事件流通路前进。87.当发生恶性的软件问题时,就出现所谓的“救火”维护要求。88.评价维护活动:1.每

16、次程序运行平均失效的次数2、用于每一类维护活动的总人时数。3.平均每个程序、每种语言、每种维护类型所作的程序变动数4.维护过程中增加或删除一种源语句平均花费的人时数5.维护每种语言平均花费的人时数6.一维护要求表的平均周转时间7.不同维护类型所占的百分比。89.可以把软件的可维护性定性的定义为:维护人员理解,改正,改动或改进这个软件的难易程度。90.决定软件可维护性的因素:1.可理解性可测试性可修改性可移植性可重用性91.所谓重用是指同一事物不做修改或稍加改动就在不同环境中多次重复使用。92.软件系统的文文件可以分为用户文文件和系统文文件两类。用户文文件主要描述系统功能和使用方法,并不关心这些

17、功能是怎样实现的;系统文文件描述系统发设计、实现和测试等各方面的容预防性维护方法是由Miller提出来的,他把这种方法定义为“把今天的方法学应用到昨天的系统上,以支持明天的需求。”第九章面向对象方法学引论93.使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。94.人们把计算机中的实体称为解空间对象。95.对对象施加的操作就是该对象的行为。96.面向对象方法学的优点:1.与人类习惯的思维方法一致2.稳定性好3.可重用性好4.轻易开发大型软件软件产品5.可维护性好97.面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型,开发出尽可能直观、自然

18、地表现求解的软件系统。98.传统的软件重用技术是利用标准函数库。99.对象的概念:在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是认为的概念,或者是任何有明确边界和意义的东西。100.通常把对象的操作称为服务或方法。101.对象的定义:定义1.对象是具有相同状态的一组操作的集合定义2.对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或它交互的能力,也就是说,对象是对属性值和操作的封装。102.对象是封装可数据结构及可以施加在这些数据结构上的操作的封装体103.对象中的数据表示对象的状态,一个对象的状态只能由该

19、对象的操作来改变。104.对象的特点:1.以资料为中心 2.对像是主动的 3.实现了数据封装4.本质上具有并行性5.模块独立性好105.类是具有相同属性和行为的一个或多个对象的描述。106.类是支持继承的抽象的抽象数据类型,而对象就是类的实例。107.实例就是由某个特定的类型所描述的一个具体的对象。108.消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明109.消息的3个组成部分:1.接收消息的对象2.消息选择符(也称为消息名)3.零个或多个变元110.方法就是对象所能执行的操作,也就是类中所定义的服务,方法描述了对象执行操作的算法,响应消息的方法,在C+语言中把方法称为成

20、员函数。111.属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类中的每个实例都有自己特有的属性值。在C+语言中把属性称为数据成员。112.所谓封装就是把某个事物包起来,使外界不知道该事物的具体容。113.对象具有封装性的条件:1.有一个清晰地边界2.有确定的界面(即协议)3.受保护的部实现。114.对象类实质上是抽象数据类型。115.继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。继承具有传递性116.多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象

21、。也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需求来实现这个行为。117.在C+语言中,多态性事通过虚函数来实现的。虚函数机制使得程序员能在一个类等级中使用相同函数的多个不同版本,在运行时刻才根据接收消息的对象所属于的类,决定到底执行哪个特定的版本,这称为动态联编,也叫滞后联编。118.函数重载是指在同一作用域的若干参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一运算符可以施加与不同类型的操作数上面。119.在C+语言中函数重载时通过静态联编(也叫先前联编)实现的。120.通常需要建立3种形式的模型,它们分别是描述系统数

22、据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。121.类图描述类及类之间的静态关系。123.类的属性中还可以有一种能够该类所有对象共享的属性,称为类的作用域属性,也称为类变数。124.关联表示两个类的对象之间存在某种语义上的联系。125.关联:普通关联,关联的角色,限定关联,关联类 P219126.聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系式整体与部分的关系。127.除了一般聚集之外,还有特殊的聚集关系,分别是共享聚集和组合聚集。128.没有具体对象的类称为抽象类。抽象类通常作为父类,用于描述其它类(子类)的公共属性和行为。129.多重继承指的是,一个子类可

23、以同时多次继承同一个上层基类130.与多重继承相反的是不相交继承,即一个子类不能多次继承同一个基类131完全继承指的是父类的所有子类都已在类的图中穷举出来了。132不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护。133依赖和细化:1.依赖关系2.细化关系134.动态模型它规定了对象模型中的对象的合法变化序列。136. 所谓状态是对对象属性值的一种抽象137.一个触发行为称作一个事件138.一个事件分开两个状态,一个状态隔开两个事件,事件表示时刻,状态代表时间间隔。139.功能模型有一组数据流程图组成。140.一幅用例图包含的模型元素有系统、行为

24、者、用力及用例之间的关系。141.用例的定义:一个用例是可以被行为者感受到的、系统的一个完整的功能。142.行为者指与系统交互的人或其它系统,它代表外部实体。143.行为者代表一种角色,而不是某个具体的人或物。144.可以把行为者分成主行为者和副行为者,还可以分成主动行为者和被动行为者。145.UML用例之间主要有扩展和使用两种关系,它们是泛化关系的两种不同形式。第十章146.面向对象分析(OOA)的关键是识别出问题域的类和对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。146.一个用例必须至少与一个行为者相关联。147.面向对象分析,就是抽取和整理用户需求并建立

25、问题域精确模型的过程。148.面向对象建模型得到的模型包含形同的3个要素,即静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)。149.复杂问题(大型系统)的对象模型通常由下述5个层次组成:主题层、类与对象层、结构层、属性层、服务层。150.建立对象模型的5项主要活动:找出类与对象,识别结构,识别主题,定义属性,定义服务。151.需求述的容包括:问题围,功能需求,性能需求,应用环境及假设条件等。152.面向对象分析首要的工作,是建立问题域的对象模型。这个模型描述了现实世界中的“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构。153.典型的工作步骤是:首先确定对象类和关

26、联(因为它们影响系统整体结构和解决问题的方法),对于大型复杂问题还要进一步划分出若干主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进一步合并和组织类。而对类中操作的最后确定,则需要等到建立了动态模型和功能模型之后,因为这两个子模型更准确地描述了对类中提供的服务的需求。154.非正式分析:这种分析方法以用自然语言书写的需求述为依据,把述中的名词作为类与对象的候选者,用形容词作为确定属性的线索,把动词作为服务(操作)的候选者。155.本身具有属性需独立存在的操作,应该作为类与对象。156.可以使用两种建立继承(即泛化)关系:自底向上自顶向下157.建立动态模型的第一步,是

27、编写典型交互行为的脚本。158.脚本是指系统在某一执行时间期间的交互过程,以便对目标系统的行为有更具体的认识。159.功能模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能,它由一组数据流程图组成。160.应该仔细对照状态图和数据流程图,以便更正确地确定对象应该提供的服务。161.尽量利用继承机制以减少所需要定义的服务数目。第十一章面向对象设计162.设计则是把分析阶段得到的需求转变成符合成本和质量要求的,抽象的系统实现方案的过程。163.系统设计确定实现系统的策略和目标系统系统的高层结构。对象设计确定解空间中的类,关联,接口形式及实现服务的算法。164.所谓优秀设计,就是权衡了各种因

28、素,从而使得系统在其整个生命周期中的总开销最小的设计。165.面向对象设计准则:1.模块化2.抽象3.信息隐藏4.弱耦合5.强聚6.可重用166.在面向对象设计中存在下述3种聚;1.服务聚2.类聚3.一般-特殊聚167.重用有两个方面的含义:一是尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类),二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。168.保证设计结果清晰易懂的主要因素如下:1.用词一致2.使用已有的协议3.减少消息模式的数目4.避免模糊的定义169.一个类提供的公共服务不超过7个170.消息中参数不要超过3个171.一般只有3

29、-5行源程序语句。172.通常把类属的体系结构模板称为领域体系结构。173.面向对象技术中的”类”,是比较理想的可重用软构件,不妨称之为类构件。类构件有3种重用方式,分别是实例重用、继承重用、和多态重用174.可重用软构件应具备的特点:1.模块独立强2.具有高度可塑性3.接口清晰,简明、可靠。175.转换接口,是为了克服与表示方法、数据结构或硬件特点相关的操作给重用带来的困难而设计的,这类接口是每个类构件在重用时都必须重新定义的服务的集合。当使用C+语言编程时,应该在根类(或适当的基类)中,把属于转换接口的服务定义为纯虚函数。176.当用C+语言实现时,在基类中把这类服务定义为普通的虚函数。1

30、77.178. 系统的主要组成部分称为子系统179.子系统的数目应该与系统规模基本匹配。180.子系统之间的两种交互方式:客户-供货商关系平等伙伴关系181.层次结构又可以进一步划分成两种模式:封闭式和开放式。182.窄菱模式,阔菱模式 P271183.所谓命令层次,实质上是用过程抽象机制组织起来的、可供选用的服务的表示。184.所谓控制线,是一条编辑状态图集合的路径,在这条路径上每次只有一个对象是活动的。在计算机系统中用任务实现控制线,一般认为是进程的别名。通常把多个任务的并发执行称为多任务。185.事件通常是表明某些数据到达的信号。186.时间驱动型任务的工作过程如下:任务设置了唤醒时间后

31、进入睡眠状态;任务睡眠(不消耗处理器时间),等待来自系统的中断;一旦接收到这种中断,任务就被唤醒并做他的工作,通知有关的对象,然后该任务又回到睡眠状态。187.设计者必须通过计算系统载荷(即每秒处理的业务数及处理一个业务所花费的时间),来估算所需要的CPU(或其它固件)的处理能力。188.使用硬件实现某些子系统的主要原因:1.现有的硬件完全能满足某些方面的需求2.专用硬件比通用的CPU性能更高。189.功能模型指明了系统必须提供的服务。190.通过某种运算而从其它数据派生出来的数据,是一种冗余数据。191.委托:把一类对象作为另一类对象的属性,从而在两类对象间建立组合关系第十二章192.面向对象实现主要包括两项工作:把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;测试并调试面向对象的程序。193.所有面向对象语言都允许用户动态创建对象,并且可以用指针引用动态创建的对象。194.一般说来,有两种实现方法,分别使用指针和独立的关联对象实现整体-部分结构。195.通常使用强类型编译型语言开发软件产品,使用弱类型解释型语言快速开发原型。196.所谓参数化类,就是使用一个或多个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论