首页 > 教育知识 > 手抄报内容 > 软件工程研究的内容

软件工程研究的内容

时间:2018-04-30   来源:手抄报内容   点击:

【www.gbppp.com--手抄报内容】

软件工程研究的内容 第一篇_软件工程一级学科的发展和内容

软件工程一级学科简介

一、软件工程一级学科出现的理由:

(一)软件工程学科已发展为计算机科学与技术、数学、工程学、管理学等相关学科的交叉性学科。传统的计算机科学与技术学科已经涵盖不了软件工程可归属的二级学科问题,不适应软件产业对软件工程人才培养的需要。

(二)软件工程学科已形成较完整的理论与工程技术体系,课程体系基本明确,高端人才培养能力基本形成,创新型复合型人才的社会需求不断提高。

(三)软件工程涉及软件产业、信息产业和现代服务业,代表未来社会产业发展方向。

(四)现有软件工程人才培养体系不完整,需要通过进一步学科建设方能适应产业发展对高端人才的需求。

二、软件工程学科的主要支撑二级学科:

软件工程理论

软件工程技术

软件工程管理

软件服务工程

三、软件工程学科的主要研究方向及研究内容:

(一)软件工程理论: 主要研究软件工程形式化方法、软件自动生成与演化、软件建模分析与验证、软件行为学等。

(二)软件工程技术: 主要研究需求工程、软件方法学、软件规范语言、软件体系结构、软件测试与质量保证、软件再工程、基于模型和逻辑推理的软件验证方法、软件工程环境与开发工具、面向领域的软件工程方法与技术等。

(三)软件工程管理: 主要研究软件配置管理、软件过程技术、软件项目管理、软件度量方法与技术等。

(四)软件服务工程: 主要研究软件服务的理论、方法、技术与应用,软件工程过程服务、面向服务的计算及服务工程。

四、研究生培养

软件工程学术型硕士研究生的课程设置侧重于软件理论知识和学术基础研究,核心课程包括算法分析与设计、并行与分布式计算、软件工程的形式化方法、软件工程统计方法、软件工程经济学、软件需求工程、软件体系结构、软件质量工程、软件项目管理、信息系统安全、机器学习与知识发现、数据服务工程、软件服务工程等。

软件工程研究的内容 第二篇_软件工程的研究框架

软件工程的研究框架

摘要:软件设计阶段地主要任务是社会需求分析、教学内容设计、详细设计,其中最核心的内容是教学内容设计。软件教育发展重点将向个性化和智能化方向迈进,并更加注重教育软件的情感性和互动性。结合我国制度和软件工程的研究现状,探讨了软件教育工程的研究框架和发展趋势。

关键词:教育软件工程 研究框架

现代科学技术的发展推动了教育软件的升级,随着一系列软件开发工程的展开,教育软件发展到了现代数字媒体阶段。教育软件便捷和超大知识容量受到不少学习者的亲睐,随着市场的不断拓展,规范教育软件发展趋向势在必行。

一、教育软件工程框架

1、软件生存周期

软件生存周期,即软件产品从开始计划到废弃不用的整个过程。软件制定生存周期战略,将其系统的划分为各个阶段,并严格按照计划执行,对软件产品的质量和稳定性都起着至关重要的作用。

软件生存周期大致可分为计划、开发、运行4个时期,每个时期可根据实际需要划分为若干更小的阶段:①计划期间。通常是由客户或软件开发者提出开发新软件的构想,分析客户需求,分析新系统的主要目标及开发该系统的可行性。②开发期间。开发期可分为软件设计阶段、。软件设计阶段的主要任务是教学目标分析、教学内容设计、详细设计,其中最核心的内容是教学内容设计。开放人员必须针对社会需求,严格遵循教学目标制定相应的教学知识结构,制定若干个相互关联的知识单元,将教学内容进行系统、科学的归纳和设计。实现阶段主要完成编码、试验两大步骤,编码阶段涉及大量的人机交互活动,首先由专业程序员对软件模块的层次结构,运行算法等进行初步设计,然后由专家对完成的软件进行全面审核和检查。教育软件工程是研究如何用工程的技术和方法,开发和维护作为工程化产品的教育软件③运行期。运行是软件生存周期的最后一个时期,人员在这一时期的工作,主要是做好软件维护。维护工作主要包括:修改软件运行中的错误;产品的更新升级;增添新功能和完善已有功能。软件工程是多学科之间交叉融合的产物,是近年来学界新兴的研究热点趋势。作为一门新兴的交叉学科,教育软件工程学设计的研究对象和知识面极其丰富,从事教育软件开发行业的技术人员不仅要在软件及计算机方面的专业素质过硬,还要精通其它学科(如数学、英语等),甚至需要多门交叉学科背景。

2、软件工程概念

软件开发模式是一种指软件开发全部过程、活动和任务的结构框架,大多用直观的图表形式展现。常见的软件开发模型有瀑布模型和原型模型。

软件工程研究的内容 第三篇_软件工程基本概念

软件工程基本概念

考点1 软件的定义与软件特点

1软件的组成

软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和相关的文档。

软件由两部分组成:

(1)机器可执行的程序和数据;

(2)与软件开发、运行、维护及使用等有关的文档。

2软件的特点

软件具有如下特点:

(1)软件是逻辑产品,而不是物理实体,它具有无形性,通过计算机的执行才能体现它的功能和作用;

(2)没有明显的制作过程,其成本主要体现在软件的开发和研制上,可进行大量的复制;

(3)不存在磨损和消耗问题;

(4)软件的开发、运行对计算机系统具有依赖性;

(5)开发和维护成本高;

(6)软件开发涉及诸多社会因素。

3软件的分类

结合应用观点,软件可分应用软件、系统软件和支撑软件3类。

(1)应用软件是特定应用领域内专用的软件;

(2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计

算机使用效率并为计算机用户提供各种服务的软件;

(3)支撑软件介于系统软件和应用软件之间,是支援其他软件的开发与维护的软件。 4软件的作用

软件是用户与硬件之间的接口,是计算机系统的指挥者,是计算机系统结构设计的重要依据。

考点2 软件危机与软件工程

1软件危机

随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了人们难以控制软件发展的局面,即所谓的“软件危机”。软件危机主要表现在:

(1)软件需求的增长得不到满足;

(2)软件开发成本和进度无法控制;

(3)软件质量难以保证;

(4)软件不可维护或维护程度非常低;

(5)软件成本不断提高;

(6)软件开发生产效率的提高赶不上硬件的发展和应用需求的增长。

总之,可以将软件危机归结为成本、质量和生产率等问题。

2软件工程的产生

国标(GB)中指出软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。

软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。

考点3 软件工程过程

ISO9000定义:软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。 软件工程过程包含4种基本活动:

(l)软件规格说明P(Plan):规定软件的功能及其运行机制;

(2)软件开发D(Do):产生满足规格说明的软件;

(3)软件确认C(Check):确认软件能够满足客户提出的要求;

(4)软件演进A(Action):为满足客户的变更要求,软件必须在使用的过程中演进。 考点4 软件生命周期

软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。 在国家标准“计算机软件开发规范”中,把软件生命周期划分为三个阶段、八个子阶段,即定义阶段(可行性研究与计划、需求分析)、开发阶段(概要设计、详细设计、实现、综合测试、确认测试)、维护阶段(使用与维护),对每个阶段,都明确规定了该阶段的任务、实施方法、实施步骤和完成标志,其中特别规定了每个阶段需要产生的文档。

考点5 软件工程的目标与原则

1软件工程的目标

软件工程的目标是,在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性巨满足用户需求的产品。

软件工程研究的内容主要包括:软件开发技术和软件工程管理。【软件工程研究的内容】

(1)软件开发技术。软件开发技术包括:软件开发方法学、开发过程、开发工具和软

件工程环境,其主体内容是软件开发方法学。

(2) 软件工程管理包括软件管理学、软件工程经济学、软件心理学等内容。 2软件工程的原则

软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

(1)抽象。抽象事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向下,逐层细化的办法控制软件开发过程的复杂性。

(2)信息隐蔽。采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单

(3)模块化。模块是程序中相对独立的成分,一个独立的编程单位,应有良好的接口定义。模块的大小要适中,模块过大会使模块内部的复杂性增加,不利于模块的理解和修改,也不利于模块的调试和重用;模块太小会导致整个系统表示过于复杂,不利于控制系统的复杂性。

(4)局部化。要求在一个物理模块内集中逻辑上相互关联的计算资源,保证模块间具有松散的耦合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。

(5)确定性。软件开发过程中所有概念的表达应是确定的、无歧义的且规范的这有助于入与入的交互,不会产生误解和遗漏,以保证整个开发工作的协调一致。

(6)一致性包括程序、数据和文档的整个软件系统的各模块应使用已知的概念、符号和术语;程序内外部接口应保持一致,系统规格说明与系统行为应保持一致。

(7)完备性。软件系统不丢失任何重要成分,完全实现系统所需的功能:

(8)可验证性。开发大型软件系统需要对系统自顶向下,逐层分解。系统分解应遵循容易检查、测评、评审的原则,以确保系统的正确性。

考点6 软件开发工具与软件开发环境

(l)软件开发工具。是协助开发入员进行软件开发活动所使用的软件或环境,它包括需求分析工具、设计工具、编码工具、排错工具、测试工具等。

(2)软件开发环境。是指支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。工具集包括支持软件开发相关过程、活动、任务的软件工具,以便对软件开发提供全面的支持。环境集成机制为工具集成和软件开发、维护与管理提供统一的支持,它通常包括数据集成、控制集成和界面集成3个部分。

3.2 结构化分析方法

考点7 可行性研究

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 1经济可行性研究

分析系统的估算开发成本是否会超过项目预期的全部利润。分析系统开发对其他产品或利润的影响。

2技术可行性研究

根据客户提出的系统功能、性能及现实系统的各项约束条件,从技术角度研究实现系统可行性。

3法律可行性分析

研究在系统开发过程中可能涉及的各种合同、侵权、责任以及同法律相抵触的问题。 4开发方式的选择性研究

提出并评价实现系统的各种开发方案,并从中选出一种最适宜项目的开发方案。 考点8 需求分析方法

软件工程研究的内容 第四篇_本科-软件工程复习资料

软件工程期末复习

一、 选择题

1、软件工程的研究者将软件开发和维护过程概括为(c)大活动。

A.5 B.7 C.8 D.3 2、(a)是职业软件工程师的必要条件。

A.自律、善于沟通、具有一定的软件技能 B.编程速度快 C.熟悉众多的软件环境 D.语言天赋 3、 计算机病毒是指(b)。

A.计算机系统的漏洞 B. 一组自我复制和自动执行的具有破坏能力的代码

C.一种细菌 D. 程序中的BUG 4、软件需求具有(d)。

A.主观性 B.不确定性 C.多变性 D.以上全部 5、描述软件需求通常不用哪个工具(c)。

A.数据流程图 B.数据字典 C.模块结构图 D.E-R图 6、软件结构图中没有(d)元素。

A.模块 B.调用参数 C.返回结果 D.判断 7、程序流程图与数据流程图的关系(a)。

A.不确定 B.数据流程图可以转换成程序流程图 C.数据调用关系 D.程序流程图可以转换成数据流程图 8、包含关系用于构造多个用例(b)。

A. 关系 B.共性的部分 C.角色 D.特殊活动 9、如果说用例F被用例T扩展,意思是(a)。 A.F是一个一般用例,T是一个特殊用例 B.F是一个特殊用户,T是一个一般用例 C.都是一般用例 D.都是特殊用例

10、用(c)对需要长久保存的信息进行建模。 A.实体类 B.数据库表 C.E-R图 D.对象类 11、美国卡内基﹒梅隆大学制定的SW-CMM是(c)。

A.软件工作规范 B.软件工作流描述 C.软件成熟度模型 D.软件描述的一般方法

12、螺旋模型是一种将(d)结合起来的软件开发模型。

A.原型化模型和增量模型 B.风险判断和瀑布模型 C.瀑布模型和原型化模型 D.瀑布模型和增量模型 13可行性研究的四大要素是(a)。

A.经济、技术、法律和社会环境

B.经济、技术、开发组织能力和领导者水平 C.经济、技术、计算机硬件环境和网络带宽 D.经济、技术、软件开发工具和人员的稳定性 14、软件调研报告是在(b)提交的。

A. 可行性分析之前 B. 需求分析之前 C.签合同之前 D.设计的时候

15、系统流程图的主要作用(a).

A.描述系统的物理模型 B.业务流程 C.系统处理过程 D.数据处理过程

16、PDL是一种(d)语言。 A.低级程序设计语言 B.建模语言 C.高级程序设计语言 D.过程设计语言

17、结构化设计方法划分模块的原则是(c)。 A.模块扇出小于5 B.模块扇入小于5 C.低耦合,高内聚 D.模块深度小于7

18、配置视图体现了系统的实现环境,反映系统的(b)。 A. 逻辑架构 B. 物理架构 C.组成结构 D.体系结构

19、角色可以有四种类型:系统的使用者,硬件设备,外部系统和(d)。

A.数据库 B.接口 C.对象 D. 时间

20、功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由(c )实现。

A. 场景描述 B.活动图和场景描述 C. 用例图和场景描述 D.交互图和场景描述

21、下面的哪个选项不是软件工程的宗旨(b)。

A.开发满足用户需求的软件 B.研究算法 C.及时交付软件 D.生产无故障软件

22、针对需求不确定的软件开发,比较好的模型是(a)。

A. 快速原型化模型 B. 瀑布模型 C.软件成熟度模型 D.系统化模型

23、可行性分析研究的费用大约是项目总经费的(b)。

A.2% B.6% C.20% D.5‟ 24、业务需求描述的是(d)。

A.功能需求 B.用户需求 C.用户的具体业务流程 D.软件的目标、规模和范围

25、一个数据流程图中的图形符号有且仅有(c)种。

A.3 B.5 C.4 D.7

26、非直接耦合的模块独立性最强,(a)的模块独立性最弱。 A.内容耦合 B.数据耦合 C.控制耦合 D.外部耦合 27、信息隐藏的核心内容是(c)。 A.把数据都放在公共的区域 B.数据不能被其他模块访问

C.一个模块的内部信息不允许其他模块直接访问 D.把信息加密,只能让有密钥的模块访问 28、面向过程的方法最关心的是(a),而过程实施的对象是作为过程参数传递的。

A.参数 B.主体 C.过程 D.数据结构 29、(c)用于描述系统的功能集。

A. 组件视图 B.逻辑视图 C. 用例视图 D.对象视图 30、用(d)模型建立系统组织结构。 A.组织 B.CMM C.数据 D.静态

31、对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,由(b)实现。 A.顺序图 B.类图 C.状态图 D.组件图

32、如果对象之间的耦合是通过(a)来实现的,则这种耦合就是交互耦合。

A.消息机制 B.参数 C.方法 D.公共数据区

33、定义类的属性类型时尽量使用已有类型,太多自定义类型会降低系统的(c)指标。

A.有效性 B.安全性 C. 可维护性 D. 开发效率 34、在设计测试用例时,应该包括(d)测试用例。 A. 可能产生无效输出的输入情况 B.无效的和不期望的输入情况 C.有效的和期望的输入情况 D.上面所有情况 35、(b)属于功能测试方法。

A.等价类划分和判定覆盖 B.边值分析和等价类划分 C.边值分析和判定覆盖 D.判定覆盖和回归测试 36、一个软件项目大约(a)的工作量在开发阶段,()的工作量在维护阶段。

A.30%,70% B. 70%,30% C. 30%,30% D. 70%,70% 37、软件项目管理的内容不包括(b)。

A.人员的组织与管理 B. 技术和算法 C.软件配置管理 D.软件开发进度计划

38、通俗的说,软件项目管理中常说的基线是(d)。 A.管理的基本思路 B. 一种软件开发的基本策略 C.基本的技术路线 D. 通过正式复审的文档 39、科学计算领域一般选择(b)语言。 A.HTML B.C C.汇编语言 D.XML

40对于嵌套的循环和分支程序,层次不要超过(c)层。 A.1 B.2 C.3 D.5

41、在分析模型内表示协调、顺序、事务处理以及控制其他对象的类是(a)。

A.控制类 B.组件类 C.主函数 D.事务类

42、继承耦合是(b)之间的一种关联形式,设计时应该适当使用这种耦合。

A. 虚类与实体类 B. 一般化类与特殊化类 C.控制类与界面类 D.数据类与处理类

43、构架设计的主要目的是(d),这项工作由经验丰富的构架设计师主持完成。

A.类图 B.确定系统数据结构 C.处理流程 D. 确定系统总体结构

44、测试用例是一组(a)。

A.测试用的输入数据以及对应的预期结果

B.测试驱动程序 C.测试数据 D.测试程序及数据

45、由于面向对象中的继承和消息机制,使得软件测试(b)。 A.更加简单 B.更加复杂 C.没变 D.不确定

46、软件维护过程中产生的副作用,一般是由(b)引起的。 A.算法说明 B.修改程序 C.优先级 D.环境要求 47、项目计划活动的主要任务是(d)。

A.估算项目的进度 B.分配工作量 C.计划资源使用 D.以上全部

48、如果程序代码的(c)好,则调试的成本就可以大幅度降低。 A.性能比 B. 可扩充性 C. 可读性D.可移植性

49、两个浮点数X0和X1比较相等时,应该用(c)比较。 A.X0==X1 B.X1-X0<ε C. |X0-X1|<ε D.X0=X1 50、瀑布模型存在的问题是(d )。 A.用户容易参与开发 B.适用可变需求 C.用户与开发者易沟通 D.缺乏灵活性

51、( b)不是分析建模的目的。 A. 定义可验证的软件需求 B. 开发一个简单的问题解决方案 C. 描述客户需求

D. 建立软件设计的基础【软件工程研究的内容】

52、对用例进行设计,发现实现用例功能的(d),确定类之间的关系。

A. 算法 B.业务流程 C.数据结构 D. 关键类 53、框架是一组可用于不同应用的(a)的集合。 A.类 B.数据结构 C.函数 D.过程

54、从狭义上讲,软件测试是(a)的过程。

A. 为发现错误而执行程序 B.为了验证程序正确 C.用不同的数据验证程序正确性 D.区分程序员水平

55、在设计黑盒测试用例时,主要研究(d)。

A. 概要设计说明书 B.详细设计说明 C.项目开发计划 D. 需求规格说明 56、(b)时,测试人员必须接触到程序源代码。

A、黑盒测试 B、白盒测试C、压力测试 D、外观测试 57、一般维护程序代码的策略(b)。

A. 从需求开始重新开发 B.根据维护申请读源程序,并修改 C.找一个新的模块替换 D. 不用读源程序,从新编写代码 58、Gantt图直观简明、易学易用,但它不能(a)。 A.直接反应任务间的依赖关系和关键路径 B.反应任务的分解情况 C.直接反应任务的起止日期 D.反应具体任务的时间段 59、(d)针对开发过程中的程序、数据、文档提出使用和管理策略。 A.组织管理 B.过程管理 C.风险管理 D.软件配置管理 60、程序的三种基本控制结构,包括顺序结构、(a)和循环结构。 A.判断结构 B.说明结构 C.输入结构 D.输出结构

61、软件工程的研究内容具有层次化结构,最底层是质量保证层,中间层是(c),最上层是工具层。

A.过程层 B.方法层 C.过程层和方法层 D.系统层

62美国著名软件工程专家B.W.Boehm于1983年提出了软件工程的(a)条基本原理。

A.7 B.5 C.3 D.12

63、下面哪个选项不是软件工程研究的内容(b)。 A. 生产无故障的软件 B. 精通一门编程语言 C.生产满足用户需求的软件 D.生产及时交付的软件 64可行性研究的主要任务是(d)。

A.确定系统做什么 B. 确定性能 C.确定功能 D. 进行一次简要的需求分析 65、用户需求描述的是(a)。

A.用户使用该软件要完成的任务 B.业务需求 C.功能需求 D.软件目标、规模和范围

66、数据流程图的主要作用是(d)。

A.描述模块组成 B.说明用户数据结构 C.描述软件功能 D. 描绘系统的逻辑模型 67、软件设计的目标是(a)。

A.在最短的时间内,生产出可靠性、可维护性俱佳的软件方案。 B.为软件编码设计模块结构。 C.确定软件要做什么。 D.确定软件的实现算法。 68、内容耦合是模块间最紧密的耦合,(b)是模块间最松散的耦合。 A.数据耦合 B.非直接耦合 C.控制耦合 D.外部耦合 69、面向对象是“先”确定()“后”(c)。

A.属性/方法 B.数据结构/方法 C. 动作的主体/执行动作 D.动作/操作

70、UML是一种(b)语言。

A.高级编程语言 B.面向对象建模语言 C.分析方法 D.过程 71、软件工程强调将(d)的方法应用于软件的开发和维护过程之中。

A.规范化 B.系统化 C.可度量 D.以上全部 72、软件开发活动的顺序应该是(a)。

A.问题定义、可行性研究、需求分析、设计、编码和测试。 B.问题定义、设计、可行性研究、编码和测试。 C.需求分析、设计、编码和测试。 D.需求分析、编码和测试、试运行。

73假定银行的存款年利率是2%,请问现在存5000元,两年后的价值应为(a)元。

A.5202 B.4500 C.5100 D.4712 74、系统物理模型用(a)表示。

A.系统流程图 B.数据流程图 C.程序流程图 D.E-R图 75、关于软件需求特性不正确的描述是“软件需求具有(c)”。

A.多变性 B.模糊性 C. 准确性 D.主观性 76、随着模块规模减小,模块开发成本(b),模块集成成本()。 A.减小/减小 B.减小/增加 C.增加/减小 D.增加/增加 77、反映模块独立性的指标是(d)。

A.模块的复杂性 B.模块的大小 C.模块的参数 D.内聚和耦合 78、面向过程的方法最关心的是(a),而过程实施的对象是作为过程参数传递的。

A.过程 B.主体 C.参数 D.数据结构 79、UML是一种(c)语言。

A.建模工具 B.可视化的程序设计语言 C. 面向对象建模语言 D.过程

80、用(d)模型分析和定义用户的需求。 A.数据 B.静态 C. 动态 D.用例 81、动态模型描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统“控制”特性。面向对象方法中,常用(d )实现。A.状态图 B.交互图 C.活动图 D.以上全部 82、面向对象分析和设计的界限是(b),从分析到设计是一个逐渐扩充模型的过程。

A.清晰的 B.模糊的 C.非线性的 D.确定的 83、每个子系统的接口定义了若干(a),体现了子系统的功能,而功能的具体实现方法应该是隐藏的。 A. 操作 B.参数 C.算法 D.控制 84、测试最早的开始时间是(c)。 A.从详细设计阶段开始 B.从编码阶段开始 C.从需求分析阶段开始 D.以上都对

85、从测试对象的粒度上划分测试为(c)。 A.单元测试、集成测试

B.压力测试、功能测试、性能测试和系统测试 C.单元测试、集成测试、系统测试和验收测试 D.黑盒测试、白盒测试、功能测试和性能测试 86、维护的工作量与软件规模成(b),软件的规模可以由源程序的语句数量、模块数、输入输出文件数、数据库的规模,以及输出的报表数等指标来衡量。

A.反比 B.正比 C.没关系 D.不确定

87、上世纪70年代,美国国防部的研究结果发现70%的项目是因为(b)原因,造成项目失败。

A. 技术不精 B.管理不善引起 C.测试不充分 D.人员不够 88所有程序设计语言的基本成分都可归纳为:数据成分、(b)、控制成分和传输成分。

A.循环成分 B.运算成分 C.说明成分 D.输入成分

89程序结构清晰且简单易懂,一个函数的规模一般(d)行。 A.等于300 B.大于500 C.不超过30 D.100左右 90、不属于软件项目管理的是(a)。

A.软件销售利润 B.项目风险评估 C.质量监控 D. 开发机构能力评估

91、用(d)模型描述和分析业务流程。 A.交互 B.业务 C.数据 D.动态

92、用(b)描述系统与角色之间的接口。 A. 表单 B.界面类 C.窗体 D.对话框 93、对类进行详细设计,主要是设计类的(c),优化类之间的关系。 A. 数据结构 B.处理流程 C. 属性和方法 D.算法 94、面向对象设计强调定义(a),并且使它们相互协作来满足用户需求。

A.软件对象 B.物理模型 C.E-R模型 D.接口 95、软件测试的目标是设计优秀的测试用例,(b)。 A.最快速地找出程序中的问题

B.以最小的代价、在最短的时间内尽可能多地发现软件中的错误 C.保障程序的正确性

D.区分出程序员的编程水平 96、(b)不符合软件测试原则。

A.对每个测试结果进行检查,不漏掉已经出现的错误迹象 B.程序员应该仔细测试自己编写的程序代码 C.程序员要避免测试自己编写的程序代码 D.测试工作越早开始越好

97、引起软件改变的原因主要有(d)。

A.运行环境变化 B. 需求变化 C.系统有错 D.以上全部 98、(c)针对开发过程中的程序、数据、文档提出使用和管理策略。 A.组织管理 B.过程管理 C.软件配置管理 D.风险管理 99、现在人们更强调程序代码的(a)。

A.可维护性 B.可移植性 C.可扩充性 D.高效性 100、程序的三种基本控制结构,包括顺序结构、(a)和循环结构。 A.判断结构 B.说明结构 C.输入结构 D.输出结构

二、简答题

1、试从软件的特点出发分析软件危机产生的原因。

答案

1) 软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察、分析、思考和判断才能了解它的功能和性能。 2) 软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。计算机硬件和支撑环境不断升级,为了适应运行

环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高许多。

3) 软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用“量身订做”软件。长期以来,软

件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求。因此,软件产品大多是为客户“订做”的,通用性差。

4) 软件涉及人类社会的各行各业,常常涉及一些行业知识,这对软件工程师提出了很高的要求。

5) 软件是与文学艺术作品相似的精神作品,与体力劳动相比,精神活动过程的特点是“不可见性”,这大大增加了组织管理上的

困难。

2、一个程序片段如下,请设计符合条件组合覆盖的测试用例。 „„

if (a>=4) && (b<0) { c=a+b; else c=a-b;

if (c>3) || (c<1)

printf(“c不在计算区域\n”) else

printf(“%d\n”, c); „„ 答案 a>=4 b<0 a>=4 b>=0 a<4 b<0 a<4 b>=0 c>3 c<=3 c<1 c>=1

综合以上条件组合,设计测试用例如下(注意结果不唯一,只要满足上面的组合条件即可): a=4 b=-1 c=3 a=4 b=0 c=4 a=-1 b=-1 c=0 a=-1 b=0 c=-1

3、面向对象的分析通常要建立三个模型,请问三个模型的作用? 答案

1)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。2)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。3)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。 4、软件工程为什么要强调规范化和文档化?

答案

软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。

5、读懂下面的程序,调整格式,使其更容易理解,并添加注释。 int main() {

int a[10];

for (int i =0;i<10;i++) scanf(“%d”,a[i]); int max=a[0],min=a[1]; for (int j = 0;j<10;j++) {

max=(max>a[j]?max:a[j]); min=(min<a[j]?min:a[j]); }

printf("max= %d",max); printf("min= %d",min); printf("\n"); return 0; }

答案 int main() {

int a[10];

//读入10个数据

for (int i =0;i<10;i++) scanf("%d",a[i]);

//max存放最大值,min存放最小值 int max=a[0],min=a[0];

//从10个数中发现最大、最小值 for (int j = 0;j<10;j++) {

max=(max>a[j]?max:a[j]); min=(min<a[j]?min:a[j]); }

//输出结果

printf("max= %d",max); printf("min= %d",min); return 0; }

6、软件需求可以分为业务需求、用户需求、功能需求和非功能需求,请分析业务需求与用户需求的区别? 答案

业务需求是用户高层领导机构决定的,它确定软件的目标、规模和范围。业务需求一般在进行需求分析之前就应该确定,需求分析阶段要以此为参照制定需求调研计划、确定用户核心需求和软件功能需求。业务需求通常比较简洁,大约三~五页纸就可以描述清楚,也可以将它直接作为需求规格说明书中的一部分。

用户需求是用户使用该软件要完成的任务。这部分需求应该充分调研具体的业务部门,详细了解最终用户的工作过程、所涉及的信息、当前系统的工作情况、与其他系统的接口等等。用户需求是最重要的需求,也是出现问题最多的。 7、一个程序片段如下,请设计符合判定覆盖的测试用例。 if (a>=5) && (b<0) { c=a+b; else c=a-b;

if (c>5) || (c<1)

printf(“c不在计算区域\n”) else

printf(“%d\n”, c);

答案 条件: a>=5 b<0 a>=5 b≮0 c<1 1<c<5

符合判定覆盖的测试用例(不唯一):a=5,b=-1,c=4; a=5,b=5,c=0;

8、请说明对象模型的作用是什么? 答案

对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构建对象模型的核心工具。

9、请说明IPO图的作用,并给出一个IPO图的模板。 答案

数据流程图中的处理本应该放在数据字典中进行定义,但是由于处理与数据是有一定区别的两类事物,它们各自有独立的描述格式,

10、什么是耦合?什么是内聚? 答案

在软件设计中应该保持模块的独立性原则。反映模块独立性的有两个标准:内聚和耦合。内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量模块之间彼此依赖的程度。软件设计时追求高内聚、低耦合。

请画图说明软件工程的层次化结构,并详细分析中间两层的内容。 11、

答案

其中过程层定义了一组关键过程域,目的是保证软件开发过程的规范性和可控性。方法层提供了软件开发的各种方法,包括如何进行软件需求分析和设计,如何实现设计,如何测试和维护等方法。

12、请为下面的程序设计符合判定覆盖的测试用例。 int main() {

int a,b,c,x,y,z;

scanf(“d%,d%,d%),&a,&b,&c); if a>5 x=10 else x=1; if b>10 y=20 else y=2; if c>15 z=30 else z=3;

printf(“d%,d%,d%\n”,x,y,z)

} 答案 条件: a>5 a<=5 b>10 b<=10 c>15 c<=15

判定测试用例(不唯一):a=6 b=11 c=16; a=5 b=10 c=15

13、请说明快速原型化模型的基本思想。 答案

在需求分析的同时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统。用户在原型系统上可以进行基本操作,并且提出改进意见,分析人员根据用户的意见完善原型,然后再由用户评价,提出建议,如此往复,直到开发的原型系统满足了用户的需求为止。基于快速原型化模型的开发过程基本上是线性的,从创建系统原型到系统运行,期间没有反馈环。这是由于开发人员是在原型的基础上进行系统分析和设计,而原型已经通过了用户和开发组的审查,在设计阶段由于有原型作设计参考,所以设计的结果正确率比较高。

14、下面的程序段A被程序员误写成程序段B,请设计合适的测试用例发现其中的错误。

条件组合: A>=1 B>=2; A>=1 B>2 A<1 B>=2 A<1 B<2

X>=90 Y>=75 X>=90 Y<75 X<90 Y>=75 X<90 Y<75

由此获得测试用例:A=1 B=2; A=1 B=1;A=0 B=2;A=0 B=1;X=90 Y=75;X=90 Y=1;X=1 Y=75;X=1 Y=1;其中 X=90 Y=75能够发现错误。 评分标准:答案不唯一,不管用什么方法,给出的测试用例能够发现错误就给满分。参考答案为X=90 Y=75。 15、请举例说明用例之间的包含关系和扩展关系的区别? 答案

包含关系用于构造多个用例共同的活动。例如,在ATM系统中,取钱、查询、更改密码等功能都需要验证用户密码。这种情况下应该将密码验证功能独立出来,便于复用、减少冗余。一个用例扩展另一个用例的功能,例如,在图书馆信息管理系统中,读者还书时,系统检查所还图书是否有预订记录,如果有则执行“通知”用例。

16、软件设计中的抽象是什么意思? 答案

所谓抽象就是将事务的相似方面集中和概括起来,暂时忽略它们之间的差异。或者说,抽象就

本文来源:http://www.gbppp.com/jy/440940/

推荐访问:软件工程专业研究方向 软件工程研究方向

热门文章