文档库 最新最全的文档下载
当前位置:文档库 › 软件工程总复习

软件工程总复习

软件工程总复习
软件工程总复习

《软件工程》期末复习

第一章软件工程概述

一、重点掌握的内容:

软件和软件工程的基本概念

二、一般掌握内容:

传统软件工程和面向对象软件工程的比较以及软件工程的应用三、主要知识点:

软件:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。

可见,软件的定义由三部分组成:

(1)在运行中能提供所希望的功能和性能的指令集(即程序);

(2)使程序能够正确运行的数据结构;

(3)描述程序研制过程、方法所用的文挡。

软件是一种产品,同时又是开发和运行产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。

软件的特征:(1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。(2)软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。

(3)软件成为产品后,其生产只是简单的拷贝,不同于硬件制造。(4)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,但维护过程比硬件复杂的多,甚至会引发新的错误。

软件危机:软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题:一是如何开发利用软件;二是如何维护数量不断膨胀的已有软件。产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。

软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

软件工程的七条基本原理是:

(1)用分阶段的生存周期计划严格管理;

(2)坚持进行阶段评审;

(3)严格实施的产品控制;

(4)采用现代程序技术;

(5)结果应能清楚地审查;

(6)开发小组的成员应该少而精;

(7)承认不断改进软件工程的必要性。

程序设计方法的两次飞跃:

(1)结构化程序设计的出现,程序设计风格从“追求技巧与效率”;

变为“清晰第一、效率第二”;

(2)从结构化程序设计到面向对象的程序设计。

面向过程的程序设计思想:程序=数据结构+算法;

面向对象的程序设计思想:程序=对象+消息。

第二章软件开发模型

一、重点掌握的内容:

软件生存周期的有关概念,面向对象的基本概念

二、一般掌握的内容:

软件开发的各种模型的特征

三、主要知识点:

软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。

软件生存周期一般可分为以下阶段:

·问题定义

·可行性研究

需求分析

·设计

·编码

·测试

·运行与维护

软件生存期也可以分为三个大的阶段:计划阶段、开发阶段和维护阶段。

对象:是现实世界中个体或事物的抽象表示,是它的属性和相关操作的统一封装体。

类: 用于表示某些对象的共同特征(属性和操作),对象是类的实例。

继承:是现实世界中遗传关系的直接模拟,可用来表示类之间的内在联系以及对属性和操作的共享。子类可以沿用父类的某些特征,同时子类也可以具有自己独立的属性和特征。

聚集:除继承关系外,现实世界中还大量存在着“部分-整体”关系。如飞机可由发动机、机身、机械控制系统、电子控制系统等构成。在面向对象方法学中这种关系表示为类之间的聚集关系。消息:消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息,完成自身固有的某些操作,从而服务于其他对象。

软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。瀑布模型即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。

其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。采用结构化的分析与设计方法,将逻辑实现与物理实现分开。此外,还有螺旋模型、第四代技术模型、原型模型、构件组装模型、混合模型等软件开发模型。

快速原型模型的主要做法是:首先建立一个能够反映用户主要需求的原型,让用户实际看一看为了系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,最终建立完全符合用户需要的新系统。

增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。这种模型把软件看成一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。

螺旋模型是目前实际开发中最常用的一种软件开发模型,它在结合瀑布模型与快速原型的基础上还增加了风险分析。

构件集成模型利用预先封装好的软件构件来构造应用软件系统,它融合了螺旋模型的很多特征,支持软件开发的迭代方法。

第三章软件需求分析

一、重点掌握的内容:

两种分析模型及两种分析方法

二、一般掌握的内容:

需求分析的任务与步骤、需求获取的方法和软件需求说明书的内容

三、主要知识点:

两种分析模型:结构化分析模型和面向对象分析模型。

OOA是采用面向对象的思想进行软件需求分析建模的过程。

DFD、DD和PSPEC:这是早期结构化分析模型的基本组成部分;

CFD、CSPEC、STD:这是对早期结构化分析模型的扩展成分,用以适应实时软件的建模需要;

E-R图:适应于描述具有复杂数据结构的软件数据模型;

用例图,对象-关系图,对象-行为图:适应于OOA的分析模型。

数据流图:

(1)组成符号:4种基本图形符号。圆框、箭头、方框、双杠(或单杠)。

(2)D FD的性质:与程序流程图不同,前者是软件分析阶段的工具,只需考虑软件“干什么”,后者用于表示程序的过程设

计,关心的是软件“怎么干”。需求分析是,常常用分层DFD

图由粗到精地表示同一软件在不同抽象级别上的功能模型。

数据字典:

作用:对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。

出现在软件中的数据,可分为3种情况:

(1)只含一个数据的数据项(或数据元素);

(2)由多个数据项组成的数据流;

(3)数据文件或数据库。

加工说明:是对DFD中每个加工所作的说明。由输入数据、加工逻辑或输出数据等部分组成。加工说明通常用结构化语言、判定表或判定树作为描述工具。需要注意的是:加工说明的作用是说明“做什么”,而不是“怎么做”。

结构化的分析方法:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。重点掌握结合实例画数据流图和定义数据字典。

面向对象的分析方法:与结构化分析方法相比,发生了根本的变化。后者从数据的“输入-加工-输出”着眼,在分析中着重于功能的分解。而OOA则是利用对象的概念和方法来构建软件需求模型,更加关注对象的内在性质,以及对象的关系与行为。OOA从理解系统的使用实例开始,建立系统需求的静态逻辑模型和动态逻辑模型。(结合第七章统一建模语言UML)

静态逻辑模型包括用例图、类图、对象图、构件图和部署图。其中用例图描述系统功能;类图描述系统的静态结构,描述各种类及其关系,结构,层次等;对象图描述系统在某个时刻的静态结构;构件图描述实现系统的元素的组织;部署图描述系统环境元

素的配置。

动态逻辑模型包括状态图、时序图、协作图和活动图。用以描述对象之间的互相作用。状态图描述一个特定对象的所有可能状态及引起其状态转移的事件;时序图用来描述对象之间动态的交互关系,着重体系对象间消息传递的时间顺序;协作图用于描述相互协作的对象间的交互关系和链接关系;活动图用来描述系统元素的活动,即可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程。

需求分析的任务:它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

一般说来,需求分析阶段的任务包括下述几方面:

①确定对系统的综合需求

对系统的综合需求主要有:系统功能需求、系统性能需求、运行需求、将来可能提出的需求。

②分析系统的数据需求

③导出系统的逻辑模型

就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统要“做什么”,可以导出系统的详细的逻辑模

型。具体做法是:首先确定目标系统与当前系统的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图进行调整;最后由外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。

④修正系统开发计划

在经过需求分析阶段的工作,分析员对目标系统有了更深入更具体的认识,因此可以对系统的成本和进度做出更准确的估计,在此基础上应该对开发计划进行修正。

⑤开发原型系统

使用原型系统的主要目的是,使用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出和确定他们的要求。

需求分析的步骤:1.调查研究;2.分析与综合;3.书写文档;4.需求分析评审

需求分析的原则:其基本原则可概括为: (1)必须能够表达和理解问题的数据域和功能域;(2)按自顶向下、逐层分解问题;(3)要给出系统的逻辑视图和物理视图。

结合实例画数据流图:

一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价

格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的cRT终端把事务报告结定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。

第四章软件设计概述

一、重点掌握内容:

软件设计的概念、原理和思想

二、一般掌握内容:

软件设计的任务、文档和复审

三、主要知识点:

模块:是一个拥有明确定义的输入、输出和特征的程序实体。模块的所有输入都是实现功能必不可少的,所有输出都有动作产生。

模块化:就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。

模块化设计:把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。分解和模块独立性,是实现模块化设计的重要指导思想。

抽象:就是抽出事物的本质特性而暂时不考虑它们的细节。

信息隐藏:模块中所包括的信息不允许其它不需要这些信息的模块调用。

模块独立性:是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。模块独立的概念是模块化、抽象、信息隐藏等概念的直接结果。独立性从两个方面来衡量:即模块本身的内聚和模块之间的耦合。

内聚:标志一个模块内各个元素彼此结合的紧密程度。按照从弱到强的顺序,分为:偶然性内聚、逻辑性内聚、时间性内聚、过程性内聚、通信性内聚、顺序性内聚、功能性内聚。

耦合:是对一个软件结构内各个模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,调用模块的方式,以及通过接口的信息。按照从弱到强的顺序,分为:非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合、内容耦合。

软件设计的任务:把分析阶段产生的软件需求说明转换为用适当手段表示的软件设计文档。不管采用何种软件设计方法,软件设计一般都包括数据设计、体系结构设计、接口时间和过程设计等内容。

软件设计任务分两个阶段完成:

第一个阶段是概要设计,包括结构设计和接口设计,并编写概要设计文档;

第二个阶段是详细设计阶段,其任务是确定各个软件组件的数据结构和操作,产生描述个软件组件的详细设计文档。

设计文档及其复审:软件设计说明书的内容以及复审的原则、内容和两种复审方式。

第五章结构化设计方法

一、重点掌握内容:

结构化设计方法

二、一般掌握内容:

过程设计的原则和方法

三、主要知识点:

结构化设计方法:是一种面向数据流的设计方法,中心任务就是把用DFD图表示的系统分析模型转换为软件结构的设计模型,确定软件的体系结构与接口。

掌握SC图的组成符号以及SC图中的模块调用:简单调用、选择调用和循环调用。

数据流图的类型:变换型结构和事务型结构。

变换型结构:由3部分组成,传入路径,变换中心,输出路径。系统的传入流经过变换中心的处理,变换为系统的传出流。

事务型结构:有至少一条接受路径,一个事务中心与若干条动作路径组成。当外部信息沿着接受路径进入系统后,经过事务中心获得某一个特定值,就能据此启动某一条动作路径的操作。

结构化方法的步骤:

(1)复审DFD图,必要时可再次进行修改或细化;

(2)鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型;

(3)按照SD方法规定的一组规则,把DFD图转换为初始的SC图。

变换型DFD图初始SC图

事务型DFD图初始SC图

着重掌握变换映射的方法和事务映射的方法。能熟练应用这两种方法把DFD图转换为软件结构图。

结构设计的优化规则:

(1)对模块分割、合并和变动调用关系的指导规则:以提高模块独立性为首要标准,除此之外,适当考虑模块的大小。

(2)保持高扇入/低扇出原则。

(3)作用域/控制域规则:

1、作用域不要超出控制域的范围;

2、软件系统的判定,其位置离受它控制的模块越近越好。

过程设计的原则与方法:

(1)清晰第一的设计风格:大多数情况下,应该优先考虑程序的清晰度,把效率的考虑放在第二位。(除开少数使用特别频

繁,或者实时程序)

(2)结构化的控制结构:所有的模块都只使用单入口单出口的3种基本控制结构—顺序、选择和循环。

(3)G OTO语句不应滥用,但也不必完全禁止。

(4)逐步细化的实现方法。

过程设计中常用的表达工具:流程图、N-S图、PDL语言

程序流程图:程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。它独立于任何一种程序设计语言,比较直观和清晰地描述过程的控制流程,易于学习掌握。在流程图中只能使用下述的五种基本控制结构。①顺序型;②选择型;③while型循环;④ until型循环;⑤多情况型选择。

N-S图:Nassi和Shneiderman提出了一种符合结构化程序设计原则的图形描述工具,称为盒图,又称为N-S图。在N-S图中,为了表示五种基本控制结构,规定了五种图形构件。①顺序型;②选择型;③ WHILE重复型;④ UNTIL重复型;⑤多分支选择型。

要求:能熟练使用这三种表达工具表示模块的逻辑过程,用能相互转换。

第六章面向对象设计方法

一、重点掌握内容:

面向对象的基本概念和特征

二、一般掌握内容:

面向对象的分析与设计方法

四、主要知识点:

面向对象设计是将分析阶段产生的OOA模型转换为软件实现做准备的OOD模型。

OOD模型可以归结为包含4个层次的金字塔形状,由底层向上移位分别为子系统设计、类和对象设计、消息设计和责任设计。

●子系统设计包含子系统及其协作关系的表示,他描述了整个系

统的总体结构。

●类和对象层包含类层次关系,使得系统能够以通用化方式创建

不断逼近特殊需求,也包含了每个对象的设计表示。

●消息层描述对象间的消息模型,包含使得每个对象能够和其协

作者通信的细节,建立了系统的外部和内部接口。

●责任层包含针对每个对象的所有属性和操作的数据结构和算

法的设计。

OOD的工作可以通过两个层次的抽象来完成----系统设计和对象设计。

在子系统设计中,涉及4类构件:领域构件、人机交互构件、任务管理构件和数据管理构件。

对象设计强调从问题领域的概念转换成计算机领域的概念,重点在于如何列举与解决问题,实现相关的类、关联、属性与操作,定义

实现时所需的对象的算法与数据结构。

设计一个新的面向对象的系统时,可以用两种方法来使用设计模板:继承和复合。当两种选择并存时,复合应该优先于继承。

第七章统一建模语言UML

一、重点掌握内容:

UML的组成、特点和应用

二、一般掌握内容:

静态模型、动态模型

三、主要知识点:

了解UML中模型元素及其图形表示。

UML模型中两类图—静态图和动态图中各有哪些内容。

标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段。

第八章软件测试

一、重点掌握内容

测试基本概念、黑盒测试法、白盒测试法

二、一般掌握内容

软件纠错、多模块测试策略、面向对象系统测试

三、主要知识点

测试与纠错:测试是通过在计算机上执行程序,暴露程序中潜在

的错误。目的是为了发现程序中的错误。纠错通过定位和纠正错误,消除软件故障,保证程序的可靠运行。

测试的特性:

(1)挑剔性:测试是为了证明程序有错,而不是证明程序无错。

(与程序正确性证明相反)

(2)复杂性:设计测试用例是,需要考虑到各种可能出现的情况切忌挂一漏万。要兼顾合理输入与不合理输入数据。

(3)不彻底性和经济性:一切实际测试都是不彻底的,测试是相对的,不能穷尽所有的测试。要据人力物力安排测试,并选

择好测试用例与测试方法。

测试的种类:按照测试过程是否在实际应用环境中来分,有静态分析与动态测试。

静态分析技术:不执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号执行来找出软件错误。一般用人工方式脱机王成,称为人工测试或代码评审;也可借助静态分析器自动完成。

动态测试分为两类:黑盒测试法,根据程序的功能来设计测试用例;白盒测试法,根据被测程序的内部结构设计测试用例。通常的做法是,用黑盒法设计基本的测试方案,再用白盒法补充一些方案。

黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功

能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

黑盒测试主要采用的技术有:等价分类法、边界值分析法、错误推测法和因果图等技术。

白盒测试是测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。

白盒测试主要采用的技术有:逻辑覆盖测试法和路径测试法。

测试用例的设计是软件测试的中心内容。测试一个程序要使用多个测试用例,而每一个测试用例都应包括一组测试数据和一个相应的预期的测试结果。

黑盒测试法中的3种常用技术:等价分类法、边界值分析法、错误猜测法。要求能熟练运用三种方法设计测试用例。

白盒测试法:早期常用逻辑覆盖测试法,目前常用路径测试法设计测试用例。

逻辑覆盖测试法:用流程图来设计测试用例,考察的重点是图中的判断框。按差错能力由弱到强分为5种覆盖标准:语句覆盖---每条语句至少执行一次;判定覆盖---每一判定的每个分支至少执行一次;条件覆盖---每一判定中的每个条件,分别按“真”、“假”至少各执行一次;判定/条件覆盖---同时满足判定覆盖和条件覆盖的要求;条件组合覆盖---求出判定中所有条件的各种可能组合值,每一可能的条件

组合至少执行一次。要求能根据题目要求的覆盖条件设计测试用例。

路径测试法:用程序图来设计测试用例,考察的重点是测试的路径。

路径测试的特征:

(1)满足结构测试的最低要求---完全覆盖。

(2)有利于安排循环测试。一般来说,对单循环测试的路径测试可包括:零次循环、一次循环、典型次数的循环、最大值次

循环。对于多重嵌套循环,根据程序实际需要选择。

要求能熟练掌握流程图与程序图之间的转换,并能根据程序图设计合理的路径覆盖测试用例。

多模块程序的测试包括4个层次:

单元测试的实施步骤:

?编译

?静态分析器检查

?代码评审

?办公桌检查

?走查和代码会审

?动态测试

?测试驱动模块:在单元测试中,代替被测模块上级模块的测试软件。

?测试桩模块:在单元测试中,代替被测模块下级模块的测试软件。

集成测试的策略:自顶向下、由底向上和从两头逼近的混合方式。

确认测试的目的在于确认组装完毕的程序是否满足软件需求规格说明书的要求。

系统测试的目的是检查软件安装到系统中以后,能否与系统的其余部分协调运行,并且完成SRS对它的要求。

设计面向对象的测试用例是需要注意两点:

(1)继承的成员函数需要测试:对父类中已经测试过的成员函数,根据具体情况仍然需要在子类中重新测试。

(2)子类的测试用例可以参照父类。

软件工程实验报告最终版

合肥师范学院实验报告册 2012 / 2013 学年第一学期 系别计算机科学与技术系 实验课程软件工程 专业计算机科学与技术 班级2010级计算机应用 姓名马军福董国运李思贤 学号1010411024 1010411008 1010411076 指导教师范庆春

实验一:结构化方法建模的基本应用 1.实验目的 (1)了解Visio工具软件的功能特色、安装、工作环境和基本操作等基本知识; (2)掌握应用Visio工具的基本使用方法和基本绘图操作; (3)熟悉结构化分析建模的基本应用。 2.实验内容 (1)使用Visio 建立期刊管理系统的实体-关系图; (2)使用Visio 建立期刊管理系统的数据流图。 3. 实验要求 使用Visio 建立期刊管理系统的实体-关系图、数据流图。数据流图要绘 制三层。 4.实验结果和体会 (1)需求陈述 在图书管理系统中,管理员要为每个读者建立借阅账户,,账户内存储读者的个人信息和借阅记录信息。持有借阅卡的读者可以通过管理员借阅、归还期刊,读者可通过互联网或图书馆内查询终端查询期刊信息和个人借阅情况,以及续借期刊。 借阅期刊时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息。然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息。最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。归还期刊时,输入读者借阅卡号和期刊号,系统显示读者和期刊的基本信息供管理员人工审核。如果有超期借阅或丢失情况,先转入过期罚款或期刊淘汰处理。然后提交还书请求,系统接受后删除借阅纪录,并登记修改可借阅期刊的数量。 期刊管理系统包括:1.读者信息管理a:借阅请求b归还请求c:查询请求d:修改自身信息2.期刊管理a:修改书目、出版日期、编辑b:增加书目数据、删除书目数据。3.期刊借阅a:增加所借读者信息b:删除所借读者信息4.期刊查询a:已借出图书列表b:未借出图书列表5.期刊的征订6.期刊内容登记题目、作者姓名、作者单位7.期刊内容查询

软件工程试题及答案34385

软件工程期末试卷(A) 说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟 一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是()。 A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统 ( B )2. 软件需求规格说明的内容不应包括()。 A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能 ( B )3. 程序的三种基本控制结构是()。 A. 过程、子程序和分程序 B. 顺序、选择和重复 C. 递归、迭代和回溯 D. 调用、返回和转移 ( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护 ( B ) 7.软件测试的目标是()。 A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 ( D )8.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 ( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 ( D )10、详细设计的基本任务是确定每个模块的( )设计 A.功能 B.调用关系 C.输入输出数据 D.算法 ( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:() A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据 ( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则() A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件工程师2018工作计划

软件工程师2018工作计划 导读:本文软件工程师2018工作计划,仅供参考,如果能帮助到您,欢迎点评和分享。 一个人在工作岗位的能力表现,并不只是能出色的完成工作,还要具备良好的人际交往能力、学习能力、抗压能力、团队协调能力等等,所以我们要对自身的不足做个良好的规划,下面编辑为你带来软件工程师2018工作计划,欢迎阅读,仅供参考。 软件工程师2018工作计划(一) 20XX年来了,在这里将自己今年的目标及其需要完成的事项留个脚印,年底的时候再来对照自己的足迹是否踩的踏实工作: 1、个人能力的提升,在这里的个人能力是很泛化的一个概念,包括人际交往能力、学习能力、抗压能力、团队协调能力、公司事务处理能力等等,人只要生活在这个社会就会和各种事务打交道,这里如何处理身边发生的各种事情就是一个个人能力的体现,俗话说龙神九子还各不相同,所以不同的人遇到不同的事。 或者相同的人遇到不同的事处理方法都是不同的,在这里看处理方法的好坏不是看但是咋处理的,而是看这样处理对以后有什么的影响,所以一个人个人能力的强弱不是以下就能看出来,相应的一个人的个人能力也不是一下子就能锻炼出来这也需要一个积累的过程,之所以在这里说这些就是让我们不要不去做那些看似小的事情。 2、新产品的学习以及新市场的发现,年末王总给我们介绍了两

种新产品,让我们了解、讨论,不论今年结果如何,只要能够引进新产品,并决定实施,那么我们大家都就又处于一个相同的起跑线,这里就能体现出学习能力的强弱,在这里我有相信能在新产品上走到前面,也一定要走到前面,因为我还年轻。 3、激情,不论做什么都要有激情,在政治学里说这是人的主观能动性,不论做什么事都要满腔热血,都要信心满满,缺少激情的人就像吸了大烟一样看上去没劲,这样谁都不喜爱,不论是哪里都不收欢迎,所以一定要有激情。 软件工程师2018工作计划(二) 在过去的工作当中,在领导和同事们的悉心关怀和指导下,通过自身的不懈努力,各方面均取得了一定的进步,但这些远远不够。俗话说:“人无远虑,必有近忧。”我明白,要学习的东西还有很多,要提升的空间还有很大。在20XX 年里,必定会不断督促自己,努力提高自身素质,克服不足,朝着以下几个方向努力: 1、学无止镜,时代的发展瞬息万变,各种学科知识日新月异。我将坚持不懈地加强学习,向理论学习,向专业知识学习,向身边的同事学习,逐步提高自己的理论水平和业务能力,并用于指导实践。 2、“业精于勤而荒于嬉”,在以后的工作中不断学习业务知识,通过多看、多学、多练来不断地提高自己的各项服务技能,克服年轻气躁,做到脚踏实地,提高工作主动性,不怕多做事,不怕做小事,在点滴实践中完善提高自己。 3、不断锻炼自己的胆识和毅力,提高自己解决实际问题的能力,

软件工程测试实验

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:软件测试实验 班级:软件121 学号:2012122722 姓名:朱德坤

软件测试验报告要求 1目的与要求: 1)系统学习和理解结构化软件工程实现阶段的基本概念、原理、技术和方法; 2)掌握软件测试的基本技术和方法,特别是白盒测试与黑盒测试技术和方法; 3)通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力; 4)熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5)按照实验题目要求独立完成本次试验任务,严禁拷贝、抄袭他人设计成果; 6)认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试结果分析等),并于5月5日以前提交。 2 实验内容或题目 1.选择结构化详细设计试验中自己设计的某一具有代表性控制结构模块(含有分支和循环结 构),并用C语言实现(提前准备好,每种测试用例分别写在作业本上,上机时带上检查),而后分别完成下述2、3、4各题测试用例设计和测试结果分析; 2.采用白盒测试技术中逻辑覆盖方法(至少包含语句覆盖、判定覆盖、条件覆盖、条件组合 覆盖)设计测试用例,完成测试(测试屏幕截图)和测试结果分析; 3.采用白盒控制结构测试技术的基本路径测试和边界测试方法设计相应测试用例,并完成测 试和测试结果分析; 4.采用黑盒测试技术中的等价类划分方法设计相应测试用例(可重选适合黑盒测试技术的模 块),并完成程序测试和测试结果分析; 3 实验步骤与源程序 程序流程图:

流图:

程序: //拥有超级用户superuser,密码zdk #include #include #include #include #include using namespace std; int PD; //全局判断执行码 void SetPos(int i,int j) //界面光标位置函数{ COORD pos= {i-1,j-1}; HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件工程师工作计划3篇

软件工程师工作计划3篇 XX来了,在这里将自己今年的目标及其需要完成的事项留个脚印,年底的时候再来对照自己的足迹是否踩的踏实工作: 1.按质按量完成公司给予的任务 2.熟悉电子商务的业务以及后台中进出货,支付款项的流程 3.作好测试逐步转管理的铺垫,多多积累工作的问题,多多学习如何进行项目的控制管理 生活: 1.打理好自己的小屋,自己的屋子,应该多多布置下 2.养成锻炼的好习惯,多参加公司的活动 学习: 1.的学习,争取今年在英语上有个更好的突破 2.自动化测试的学习,认真研读此书,然后进行实践 3.阅读一本测试管理的书籍,名称暂时不定 希望自己能好好的监督自己,为下一步发展计划打下坚实的基础~ 最新软件工程师工作计划例文软件工程师工作计划(2)1、个人能力的提升,在这里的个人能力是很泛化的一个概念,包括人际交往能力、学习能力、抗压能力、团队协调能力、公司事务处理能力等等,人只要生活在这个社会就会和

各种事务打交道,这里如何处理身边发生的各种事情就是一个个人能力的体现,俗话说龙神九子还各不相同,所以不同的人遇到不同的事。 或者相同的人遇到不同的事处理方法都是不同的,在这里看处理方法的好坏不是看但是咋处理的,而是看这样处理对以后有什么杨的影响,所以一个人个人能力的强弱不是以下就能看出来,相应的一个人的个人能力也不是一下子就能锻炼出来这也需要一个积累的过程,之所以在这里说这些就是让我们不要不去做那些看似小的事情。 2、新产品的学习以及新市场的发现,年末王总给我们介绍了两种新产品,让我们了解、讨论,不论今年结果如何,只要能够引进新产品,并决定实施,那么我们大家都就又处于一个相同的起跑线,这里就能体现出学习能力的强弱,在这里我有相信能在新产品上走到前面,也一定要走到前面,因为我还年轻。 3、激情,不论做什么都要有激情,在政治学里说这是人的主观能动性,不论做什么事都要满腔热血,都要信心满满,缺少激情的人就像吸了大烟一样看上去没劲,这样谁都不喜爱,不论是哪里都不收欢迎,所以一定要有激情。 软件工程师工作计划范文软件工程师工作计划(3)xx 年对于我来说,是独具意义的一年,因为这一年我从学校走向社会,由学习走向工作感触颇多也感触颇深。这一年在公

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程期末复习填空题

软件工程填空题 1、软件危机是指在计算机软件的_开发和维护_过程中所遇到的一系列严重问题。 2、软件危机包含下述两个方面的问题:一是 _如何开发软件,以满足对软件日益增长的需求;二是_如何维护数量不断膨胀的已有软件_。 3、软件不同于硬件,它是计算机系统中的_逻辑部件_而不是物理部件。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为__生命周期__。 5、软件配置主要包括 __程序、文档_和_数据_ 等成分。 6、软件工程学的一个重要目标就是提高软件的 _可维护性、减少 _软件维护_ 的代价。 7、软件工程是指导计算机软件 __软件开发_ 和 __维护_ 的一门工程学科。 8、软件工程包括 _技术_ 和 __管理__ 两方面的内容,是技术与管理紧密结合所形成的工程学科。 9、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 _方法学_ ,也称为范型。 10、软件工程方法学包含_方法、工具和_过程_ 三个要素。 11、目前使用最广泛的软件工程方法学,分别是 _传统方法学和面向对象方法学 __ 。 12、概括地说,软件生命周期由 _软件定义_ 、 __软件开发_ 和 __运行维护(软件维护)__ 3个时期组成,每个时期又进一步划分为若干个阶段。 13、软件定义时期通常进一步划分为3个阶段,即 _问题定义__ 、 __可行性研究__ 和需求分析。、 14、螺旋模型将 _瀑布、_ 模型和 __快速原型_ 模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。 15、瀑布模型 _不能_ 适应需求可变的软件开发,只有到 _开发结束_ 才能见到整个软件系统。 16、可行性研究阶段当从系统逻辑模型出发,探索若干种可供选择的主要解法,对每种解法都应该从 __技术可行性、经济可行性_和 _操作可行性__ 这三个方面研究每种解法的可行性。

软件工程师工作计划(完整版)

软件工程师工作计划 软件工程师工作计划 1、计划背景 据id对全球软件外包市场预测,到201X年全球软件外包市场规模将达到201X亿美元,我国目前占有率仅为 1.5%。我国计划到201X年占有率为10%,达到200亿美元,就需要100万软件工程师,现在仅有 6.5万人,软件人才缺口极大。 我国面向计算机软件教育体系培养的学生,目前还不能达到毕业后就能从事计算机软件开发工作。尤其是培养不出适应软件市场需求、软件外包需求为主的软件开发人员,造成软件企业招不到合格的人才。存在的主要问题是传统的计算机教育仍以学习知识为主,缺少实训项目和软件工程项目训练,学生仍然掌握不到实际的软件开发技能。 2、培训目的 为加大软件人才的培养力度,本培养计划将以实际软件工程项目为课题进行实训,提高学员软件项目开发实际技能,充实软件开发技术和积累经验。培训后,即可从事软件工程工作。在校学生亦可借此机会,完成信息类、管理类、金融财会类或其他类专业的毕业设计和论文,并增强就业能力。 3、培养方向 1)适应本地软件市场需求的软件工程师。 2)适应本省软件市场需求的软件工程师。

3)适应软件外包市场需求的软件工程师。 4、实训内容 1)基础课程: 结合软件项目 2)实训项目: “选择一个软件项目” 5、培养对象 1)大学本科毕业生和在校生。 2)大专、中专毕业生和在校生。 3)高中毕业生。 4)机关、事业、企业从事it业相关工作的技术人员。 6、课程时间 1)1个月基础理论学习。 2)2个月实训项目。 7、师资力量 由***公司软件部和***软件公司直接参加设计制作软件工程项目的软件工程师授课和指导。 8、工资水平 以北京地区为例,可以达到的工资水平。 职位 程序员 软件工程师月薪 3000-6000元 4000-10000元 项目经理 架构设计师

软件工程实验答案

实验一 实验内容: 1.上网了解查询软件工程网站和相关软件工程知识 2.了解软件工程环境概念、层次、组成和开发要求。 3.查询现有主流的软件工程工具及其功能、用途、特点及适用范围。 4.浏览CASE工具。通过互联网了解现有软件工程主流工具,完成表的内容。 表1-2软件工程工具分类

Firefly 开源奇葩: CVS 5、 1:自动化测试工具,其中有Web的,应用软件的,还有单兀测试的?以上具有代表]性常用的软件是: Sele nium, Watir, Winrunner, Loadr unner, Junit 等等 2:软件测试管理工具。代表性常用软件 有:Testdirector , ClearQuest 和bugzilla 等 6、版本控制工具;文档 分析工具;开发信 息库工具;逆向工 程工具;再工程工 具。 7、DbgView 调试信息查 看器 8、SFRE 9、gprof 上的存储目录以供客户端访问,这将带来 F /V 虫 定安全隐忠 Firefly服务器上的存储目录不用共享,对客户端不透明,客户端不可直接访问存储目录,使 系统更安全可靠 CVS采用C/S模式,不需要共享服务器上的存储目录,安全性较好 PVCS基于文件系统共享,而且需要以"可 写"的权限共享存储目录,存在较大的安全隐患VSS基于文件系统共享实现对服务器的访问,需要共享存储目录,这将带来一定安全隐患 5、提高测试人员的工作效率和质量 6、 7、bgView调试信息查看器不仅仅能作为调试信息输出,而且可以作为一个信息输出软件,监视您的软件运行,目前支持mfc和windows 下dos信息输出. &从整体上支持该分析阶段的再工程自动化工具 9、用gprof对程序进行分析主要分以下三个步 骤: l 用编译器对程序进行编译,加上-pg 参数。 l 运行编译后的程序。 l 用gprof命令查看程序的运行时信 息 1-3

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

辽师软件工程期末复习题

说明: 以下试题虽然经过多次整理,但由于时间有限,存在错误或不足之处在所难免。同学们在阅读和使用过程中如发现问题,请你在课程评价的“建议”中指出,具体方法是: 写明大小题号:问题所在;正确内容。 在此谢谢你提供的方便和指正。 一、概念题 1、软工程:是1)将系统性的、规范化的、可定量的方法应用于软件的开发、 运行和维护,即将工程化应用到软件上;2)对1)中所述方法的研究。 2、软件:是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。 3、软件危机:是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 4、软件过程:是软件工程人员为了获得软件产品而在软件工具的支持下实施的 一系列软件工程活动。 5、基线:是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开 发的基础,并且只有通过正式的变化控制过程才能改变。 6、软件配置项:是为配置管理而作为单独实体处理的一个工作产品或软件。 7、对象:是系统中用来描述客观事物的一个实体,它是构成系统给的一个基本 单位,有一组属性和对这组属性进行操作的一组服务组成。 8、软件过程模型:是描述软件过程的整体框架,它是软件过程的一种抽象表示。 9、类:是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提 供了统一的抽象描述,其内部包括属性和服务两个主要部分。 10、实体类:用于描述必须存储的信息及其相关行为,它是对系统核心信息的建 模,通常这些信息需要长久地保存。 11、版本:是确定在明确定义的时间点上某个配置项的状态。

12、耦合度:是表示两个子系统之间的关联程度。当一个子系统发生变化时对另 一个子系统的影响很小,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。 13、软件需求:1)用户解决问题或达到目标所需要的条件或能力。2)系统或系 统部件要满足合同、标准、规范或其他正式规定文档所需要具有的条件或能力。3)一种反映上面1)或2)所描述的条件或能力的文档说明。 14、软件实现:是软件产品由概念到实体的一个关键过程,它将详细设计的结果 翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。 15、内聚性:是子系统内部的相关程度。当子系统中彼此相关的多个对象执行类 似的任务时,则认为该子系统是高内聚的;反之,当子系统内的多个对象彼此不相关时,则认为是低内聚的。 16、软件验证:是指试图证明在软件生存期各个阶段,软件产品或中间产品是否 能够满足客户需求,包括逻辑协调性、完备性和正确性。 17、软件测试:广义上讲,测试是指软件产品生存周期内所有的检查、评审和确 认活动。狭义上讲,测试是对软件产品质量的检查和评价,它一方面检查软件产品中存在的质量问题,同时对产品质量进行客观的评价。 18、软件再工程:是以系统理解为基础,结合逆向工程、重构和正向工程等方法, 将现有系统重新构造成为新的形式。 19、软件确认:是一系列的活动和过程,其目的是保证软件产品能够符合其描述 要求。 20、软件维护:是指在软件运行或维护阶段对软件产品所进行的修改,做这些修 改时可能改正软件中的错误,也可能是增加新的功能以适应新的需求,但是

软件工程实验课题

图书管理系统 组长:杨晓华 组员:巴雅尔图、那日苏、张天、 牛莉、杨宇婷 作业提交日期:二О一五年十月3三十日

作者简介 组长:杨晓华学号:120714241 学院:经济管理学院 组员:巴雅尔图学号:110412185 学院:生态环境学院那日苏学号:111710874 学院:兽医学院 张天学号:120714242 学院:经济管理学院 牛莉学号:120714767 学院:经济管理学院 杨宇婷学号:120715553 学院:经济管理学院

图书管理系统 摘要 简单介绍了图书管理系统数据库的设计和系统功能的实现过程。该系统是运行在学校网络上的网络图书管理系统,由图书编目,图书管理,读者管理,资料管理,Web查询等几个子系统组成,,实现了图书资料的计算机网络管理和Web查询功能。计算机技术的迅猛发展,特别是随着网络技术的出现标志着信息时代已经来临。信息化浪潮、网络革命在给社会带来冲击的同时,也使图书馆业务受到了强烈的冲击,图书馆传统的管理和服务方式已不能适应读者对日益增长的文献信息的需求,建设图书馆信息网络系统,是图书馆现代化建设的客观要求。建设以计算机为核心的图书馆信息网络,实现图书馆管理和服务的自动化,更好地为科技工作服务,是图书馆发展的必由之路。目前,国内大部分高校图书馆都实现了网络管理,目前图书馆都在在朝着这个方向发展。 关键词:图书,网络,数据库,管理系统,VC

一、系统可行性分析 1.总体功能设计 根据高校图书馆的实际情况和校园网网的现状,我们确定了网络图书系统应该具备8个方面的功能,它们是图书编目,图书采购,图书管理,读者管理,标准管理,资料管理,系统维护,Web查询。其中Web查询是该系统突出的特点,它的实现是因为有学校校园网的支持。系统组成和功能框图见图1。 图2 业务流程图 图3 读者

软件工程试题库集及答案

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

河北工业大学软件工程期末复习

软件工程期末复习总结 第一讲概述(选择U填空U简答) 1.1 软件工程的研究内容 软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题 软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题 1.2 什么是软件? 软件包括:---软件的内涵 ①能够提供客户所需功能与性能的计算机程序; ②使程序能够适当的操作信息的数据结构; ③用以描述程序开发过程及使用的文档。 软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。 软件产品可以分成: 一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。 1.3 什么是软件工程? 软件工程是涉及软件生产各个方面的一门工程学科 软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法. ——IEEE[IEE93] 1.4 什么是成功的软件项目 一个成功软件项目的三个要素包括: 按时交付不超预算满足用户要求。 1.5 软件过程与软件生命周期的相关概念 软件过程是指开发或制作软件产品的一系列活动及其成果. 所有的软件过程中都包括四个基本活动:(填空) 1. 描述( Specification)- 系统应该提供的功能及其开发约束; 2. 开发( Development)- 软件产品的生产过程; 3. 有效性验证(Validation )- 检验软件产品是否满足了客户的需要; 4. 进化( Evolution )- 按照用户的变更要求不断的改进软件。 软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。 1.6什么是优良软件的属性? P8 (填空U选择) 优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配) 可维护性(Maintainability) Software must evolve to meet changing needs; 可依赖性(Dependability) Software must be trustworthy;

相关文档