软件工程复习资料10-11-2

合集下载

软件工程复习资料精选全文完整版

软件工程复习资料精选全文完整版

可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。

(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。

(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。

(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。

(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。

(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。

(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。

软件工程自考复习资料参考

软件工程自考复习资料参考

軟件工程复习资料一:选择题1:需求分析2:喷泉模型3:SA 4:PAD图5:模块结构图6:Pascal语言7:逻辑内聚8:单元测试9:确认测试10:扇出11:1 12:人工检测13:可理解性,可修改性,可移植性14:设计工具15:喷泉模型二:填空题1:软件工具一般是指为了支持软件人员(开发和维护)活动而使用的软件。

2:任何软件工程项目的基础是(软件需求)。

3:需求阶段的主要任务一般包括需求发现、需求分析、需求认证、最终形成系统的(软件需求规格说明书)。

4:数据流图一般可分为变换型和(事务性)。

5:面向对象分析中,动态模型使用(状态图),作为扫描工具,该图反映了状态和事件的关系。

6:在软件结构的设计中,各个模块之间要求降低耦合性、提高(内聚性)。

7:Jackson方法是一种面向(数据结构)的开发方法。

8:结构化语言是介于(自然语言)。

9:在UML中,扫描系统与外部系统及用户之间交互的图是(用况图)。

10:软件产品在交付使用之前一般要经过(单元测试)、集成测试。

11:子类自动共享父类,属于(继承性)。

12:效率是指处理时间、(存储空间)。

13:调试技术有简单的方法,归纳方法、(演绎法)、和回溯方法。

14:软件维护的内容包括校正性维护、适应性维护、(完善性维护)和预防性维护。

15:软件维护性用七种特性来衡量,分别是(可理解性)、可测性、可修改性、可靠性、可移植性、可使用性。

16:渐增模型是瀑布模型的变种,分为两类:增量构造模型和(演化提交模型)。

17:软件版本控制是属于(软件控制)的活动内容。

18:Rup是基于(UML)的一种软件开发过程框架,两者一起才能称得上是一种软件开发方法学。

19:状态图反映了...(事件与状态)的关系20:软件的生产经历了三个阶段,程序设计、程序系统时代、和(软件工程时代)。

三:简答题1什么是软件生存周期,他可以分为几个阶段。

一个软件从提出开发需求直到该软件报废为止的整个时代。

软件工程复习资料

软件工程复习资料

软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。

程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。

它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。

开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。

五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。

瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。

“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。

在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。

实际的项⽬很少按照顺序模型进⾏。

⽤户必须有耐⼼,等到系统开发完成。

缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。

反馈信息慢,开发周期长。

虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。

快速原型模型增量模型增量模型是迭代和演进的过程。

增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。

每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。

软件工程复习资料

软件工程复习资料

1、 软件产品的概念、特征P1-3软件就是一个信息转换器,它的功能不外是产生、管理、获取、修改、显示或转换信息。

它是开发和运行产品的载体,是计算机控制(操作系统)、信息通信(网络)的基础,也是创建和控制其他软件(软件工具和开发环境)的基础。

软件产品的特征:(1) 软件是一种逻辑实体,具有抽象性。

(2) 软件的生产与硬件不同。

(3) 软件产品不会“磨损” 2、 软件危机的原因、解决的途经P5-7软件危机的原因:1)它的生产过程和产品都具有明显的“不可视”特征,这就导致在完成编码并且上机运行之前,对于软件开发过程的进展情况较难衡量;2)归于在计算机系统发展的早期,软件开发的“个体化”特点解决的途经:从管理层面上考虑,应当注意推广和使用在实践中总结出来的开发软件的成功的技术和方法,并且探索更好的、更有效的技术和方法,注意积累软件开发过程中的经验数据财富,逐步消除在计算机系统早期发展阶段形成的一些错误概念和做法。

3、 软件工程的定义、要素、基本原则P8-9 软件工程是指导软件开发和维护的工程学科。

将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程。

即将工程化方法应用于软件开发与维护过程中。

软件工程应当包括三个要素:方法、工具和过程。

基本原则:(1) 用分阶段的生命周期计划严格管理软件工程过程。

(2) 坚持在软件工程过程中进行阶段评审。

(3) 实行严格的产品控制。

(4) 采用现代的开发技术进行软件的设计与开发。

(5) 工作结果应当是能够清楚地审查的。

(6) 开发小组的人员应该“少而精”。

(7) 承认不断改进软件工程实践的必要性4、 软件工程过程的层次划分、软件工程的四种基本活动P10-11软件工程过程的层次划分: 软件工程的四种基本活动:(1) 软件规格说明(2) 软件开发(3) 软件确认(4) 软件演进5、 软件工程过程模型的概念及几种常见的软件过程模型P12-18软件工程过程模型的概念:用以覆盖软件开发过程中的基本活动,确定所涉及的过程、方法、工具的策略称为软件工程过程模型。

软件工程复习资料整理

软件工程复习资料整理

《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。

A.问题分析B.系统设计C.需求描述D.需求评审。

2、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。

0802A.判定表和判定树C.流程图3、以下不属于逻辑覆盖的是(D)。

1402A.语句覆盖C.条件覆盖B.盒图D 关系图B.判定覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为( B)。

1501A.纠错性维护B.适应性维护C.改善性维护 D 预防性维护二、填空题(每空2分,共18分)1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。

01012. 高级语言:独立于机器,面向过程或面向(对象)01013. 软件项目管理的范围主要集中于 3 个P 上,即:People 人员、Problem 问题和(过程)。

02014. 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。

15045. 在公式V(G) = E – N + 2 中: E 为程序图G 中边的总数;N 为程序图中结点的总数。

V(G)又称为图 G 的环形(复杂度)0204。

6. 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。

03037. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。

12048. 文档是一种数据媒体和其上所记录的(数据)。

0101三、判断题(每小题2分,共24分,错误打X、正确打√)1. 用户对软件需求的描述不准确,往往是产生软件危机的原因之一。

(√)01022. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。

(√)02063. 目前的绝大多数软件都不适合于快速原型技术。

软件工程复习资料

软件工程复习资料

软件工程复习资料1. 软件工程概述软件工程是一门研究如何构建和维护软件系统的学科。

它涵盖了软件开发的各个方面,包括软件需求、设计、编码、测试、维护等。

本节将对软件工程的基本概念和重要原理进行介绍。

1.1 软件工程的定义软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的系统工程。

它关注软件开发过程中的各个环节,以提高软件质量和开发效率。

1.2 软件工程的目标软件工程的目标是开发高质量的软件系统,满足用户需求,具备良好的可维护性和可扩展性。

通过采用合适的开发方法和工具,提高软件开发过程的可靠性和效率。

1.3 软件工程的原则软件工程遵循一些重要的原则来指导软件开发过程,包括模块化、抽象、信息隐藏、接口规范、单一职责等原则。

这些原则有助于提高软件质量和可维护性。

2. 软件开发过程软件开发过程是指将软件需求转化为可执行软件的过程。

它包括需求分析、设计、编码、验证和维护等阶段。

本节将介绍常用的软件开发过程模型和相应的方法。

2.1 瀑布模型瀑布模型是一种线性的软件开发过程模型,包括需求分析、设计、编码、测试和维护等阶段。

瀑布模型适用于需求稳定的项目,但不适用于需求频繁变更的项目。

2.2 敏捷开发敏捷开发是一种迭代的软件开发过程模型,强调快速反馈和适应需求变化。

敏捷开发方法包括Scrum、XP等。

它适用于需求不确定或频繁变更的项目。

2.3 增量开发增量开发将软件系统划分为多个增量,每个增量包含了一个或多个功能模块。

每个增量的开发和测试独立进行,逐步完善系统。

增量开发适用于大型项目和复杂项目。

2.4 软件开发过程的选择选择适合项目的软件开发过程模型非常重要。

需要考虑项目的规模、需求的稳定性、团队的能力等因素来决定采用哪种开发过程模型。

3. 软件需求工程软件需求工程是软件工程的一项重要活动,旨在准确捕获用户需求,并将其转化为可执行的软件需求规格。

本节将介绍软件需求的定义、分类和常用的需求获取和分析方法。

软件工程复习资料-完整版

软件工程复习资料-完整版

软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。

它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。

软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。

二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。

通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。

2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。

设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。

3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。

编码时应遵循编程规范,确保代码的可读性和可维护性。

同时,要进行单元测试,确保每个模块的功能正确。

4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。

单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。

5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。

同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。

三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。

模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。

2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。

在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。

3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。

在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。

4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。

在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。

5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。

软件工程知识点复习资料

软件工程知识点复习资料

软件工程知识点复习资料一、软件工程概述软件工程是一门研究如何以系统性的、规范化的、可度量的方法进行软件开发、运行、维护和管理的学科。

它涵盖了软件开发生命周期的各个阶段,包括需求分析、系统设计、编码实现、测试和维护等。

二、软件生命周期与开发模型1. 软件生命周期包括需求分析、系统设计、编码实现、测试和维护等阶段。

不同的项目可以采用不同的开发模型,常见的有瀑布模型、迭代模型和敏捷模型。

2. 瀑布模型是一种线性顺序开发模型,各个阶段严格按序进行,适用于需求较为稳定的项目。

3. 迭代模型将软件开发过程划分为多个迭代阶段,每个迭代阶段都包含需求分析、设计、编码和测试等活动,适用于需求较为不确定或需要持续改进的项目。

4. 敏捷模型强调快速响应需求变化和灵活合作,通过迭代、增量的方式进行开发,适用于需求频繁变更的项目。

三、需求工程1. 需求分析是软件开发的第一步,包括需求获取、需求分析、需求建模等过程,目的是明确系统的功能和性能需求,并与客户达成一致。

2. 需求获取可以通过面谈、问卷调查、观察等方式进行,需求分析则要对已收集到的需求进行分析、整理和归纳。

3. 需求建模使用UML(统一建模语言)等工具,将需求表示为用例图、活动图、时序图等形式,便于后续的系统设计和编码实现。

四、设计与架构1. 系统设计是软件开发的关键阶段,包括软件架构设计和详细设计等过程,目的是指导后续的编码和测试工作。

2. 软件架构设计确定系统的整体结构、模块划分和模块间的关系,常见的架构风格包括层次结构、客户-服务器、面向对象等。

3. 详细设计是对系统模块的具体设计,包括数据结构设计、算法设计和接口设计等,常用的设计方法有结构化设计和面向对象设计。

五、编码实现与调试1. 编码实现是将设计阶段得到的设计方案转化为计算机可执行的代码,采用合适的编程语言和开发工具进行。

2. 编码时要注重代码的可读性、可维护性和可重用性,采用良好的编程风格和命名规范。

软件工程复习资料-完整版

软件工程复习资料-完整版

一、选择题:1、用例图中,用来表示用例的符号为( B ) 。

2、协作图中包含的元素包括(A ) 。

A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。

A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。

A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。

A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。

A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。

A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。

A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。

A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。

A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。

A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。

A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。

A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。

软件工程复习资料(提纲+答案)

软件工程复习资料(提纲+答案)

软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。

可以写作为:软件=程序+数据+文档。

2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。

6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。

本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。

(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。

(3)编写文档,也就是完成“需求规格说明书”的编写工作。

2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。

非功能需求是对系统提供的服务或功能给出的约束。

包括时间约束、开发过程的约束、标准等。

3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。

软件工程复习资料

软件工程复习资料

软件工程(第二版)(高等学校21世纪教材)张海藩编著人民邮电出版社出版知识点整理DX:单项选择题DU:多项选择题MC:名词解释JD:简答题LS:论述题第1章:软件工程1、工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( 生产工程化) DX2、工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指(结构化方法) DX3、件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(软件工程经济)DX4、软件工程学的概念除指软件开发技术研究外,另一重要内容为(软件工程环境) DX5、软件危机是软件产生过程中出现的一种现象,下述选项都是软件危机的表现( ) DUA.软件需求增长难以满足B软件开发成本提高C.软件开发进度难以控制D.软件质量不易保证6、软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的(.工程管理) DX7、件危机: 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

MC8、软件危机通常是指在计算机软件开发和维护中所产生的一系列严重问题,这些问题中相对次要的因素是(软件性能) DX9、下列哪一项不是软件危机的表现形式?( 系统软件与应用软件的联系越来越困难) DX10软件工程:是指导计算机软件开发和维护的工程学科。

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

MC11、软件:在计算机系统中,与硬件相互依存的逻辑部件,它由程序、数据及相关文档组成。

MC12、件工程的要素是(方法、工具、过程)DU13、工程开发涉及的内容是(软件开发工具、软件工程环境、软件管理学)DU14、个完整的软件有哪几个组成部分?(程序、数据、相关文档)DU15、件危机的解决途径有哪些?(技术措施、必要的组织管理措施)DU16、件工程是一种( 自顶向下)分阶段实现的软件程序开发方法DX17、件工程管理涉及的内容是(软件管理学软件工程经济学)。

软件工程复习资料全

软件工程复习资料全

软件工程复习材料一、考试复习围:1、软件工程基本概念、基本原理2、需求分析,结构化分析、面向对象分析,结构化分析建模、面向对象分析建模3、软件设计,结构化程序设计,概要设计、详细设计4、软件测试二、考试题型:单项选择题、简答题、综合应用题(要求会画:数据流图、软件结构图、用例图、类图、N-S盒图、PAD图)三、复习容:1、什么是软件危机?人们把软件开发和维护中的各种问题称为“软件危机”。

2、软件危机主要包含哪两方面的问题?①如何开发软件以满足软件日益增长的需求。

②如何维护数量不断增长的已有软件。

3、软件危机的表现有哪些?①对软件开发成本和进度的估算很不准确。

②用户对完成的软件很不满意。

③软件产品的质量很不可靠。

④没有完整的文档。

⑤软件成本比重上升。

⑥软件开发生产效率低下,软件开发技术进步落后与需求的增长,造成“供不应求”的局面。

4、什么是软件工程?软件工程的定义:采用工程的概念、原理和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。

5、.软件工程包括3个要素有哪些?方法、工具和过程。

6、软件生命周期各阶段有哪些?软件生命周期包括:软件定义、软件开发、软件维护三个时期。

其中:软件定义包括:问题定义、可行性研究、需求分析阶段;软件开发包括:总体设计、详细设计、编码、软件测试阶段。

7、需求分析的任务有哪些?需求分析的任务主要有两个方面:①通过对问题及环境的理解、分析和综合,建立分析模型。

②在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。

8、软件系统需求分类是哪些?软件系统需求可以分为功能需求、非功能需求和领域需求:1)功能需求描述系统所预期提供的功能或服务。

即定义系统应该做什么,系统要求输入什么信息,输出什么信息,以及如何将输入变换为输出。

它由开发的软件类型、软件未来的用户以及开发的系统类型决定。

软件工程10—11章答案.docx

软件工程10—11章答案.docx

10.1请读者谈谈对“软件产品的分类”的看法。

软件产品分为三类:笫一类为:不需要客户化的软件产品如系统软件中的操作系统、编译系统、数据库管理系数、CASE 工具,以及应用软件中的杀病毒工具、游戏系统等。

这些软件产品的通用性太强,用户买来安装Z后,直接使用即可。

所以用户群特大,儿乎是全球所有客户。

第二类是只需要少量客户化工作的软件产品,如财务系统、保险系统、金融证券系统、税务系统、海关系统、政府办公系统、公检法系统、电力控制系统、电信计费系统等。

因为这些行业专业性强,各种法规制度健全,业务流程规范,信息标准化工作基础扎实。

这些软件产品尽管也需要适当的客户化,如代码表的修改及初始化,报表与查询格式的调整,但全局性的数据库和数据结构不会改变。

这种客户化的工作,仅仅是程序代码级的,不是数据库和数据结构级的。

第三类是需要重新做业务流程规范和需求规格定义的软件产品,这种软件产品的客户化工作量大,工期也较长,如分行业的管理信息系统MIS、分行业的企业资源规划系统ERP、分行业的客户关系。

10.2怎样解释“客户化”和“初始化”两个名词的含义及关系?客户化:按照客户的实际需求,对软件产品的功能、性能、接口作适当的修改。

初始化:按照客户的实际情况,对软件产品的代码表(又称数据字典)进行初始化,即将客户的各种信息编码录入到相应的代码中。

此外,初始化还包插数据库中所有基本表的数据加载, 即所有基本表屮必要记录的录入工作。

二者关系:初始化工作简单,客户化工作复杂。

客户化工作中自然包含了初始化工作,初始化工作只是客户化工作的一小部分。

10.3软件项目与软件产品有什么不同?软件产品是指不局限于特定业务领域、能被广大用户直接使用的软件系统。

软件项目是指针对特定业务领域、需要提供业务流程重组与优化的软件系统。

软件产品主要考虑通用性,而软件项目更多是满足具体客户的特点。

10.4软件产品发布的方式有哪几种?⑴聘请各有关领导、新闻媒体记者及大客户代表,召开新闻发布会,宣布新产品的优点,描述其市场前景,现场演示介绍,厂商给嘉宾和客人送产品资料和纪念品。

软工复习资料

软工复习资料

软工复习资料软件工程是计算机科学与工程学科的重要分支,它研究的是软件系统的设计、开发、测试和维护等方面的理论和方法。

在软件工程的学习和实践过程中,掌握一些复习资料是十分必要的,有助于学生更好地理解和掌握软工的相关知识。

本文将介绍一些软工复习资料,希望对读者有所帮助。

一、教材类资料教材是软件工程学习的重要依据,掌握一本优秀的教材对于学习软工是非常有益的。

以下是一些常用的软工教材推荐:1. 《软件工程导论》(第9版)霍华德·P.佩特森等著该书是软件工程学习的经典教材,系统地介绍了软件工程的基本概念、原理和方法,适合初学者阅读。

2. 《软件工程》(原书第9版)伊恩·索莱文等著这本教材是软工领域的权威之作,全面介绍了软件工程的理论和实践,对于深入理解软工概念和方法非常有帮助。

3. 《软件需求工程》(第3版)伊恩·索莱文等著该书详细介绍了软件需求的概念、分析和规范等内容,是研究软件需求工程的学生必备参考资料。

二、参考书籍类资料除了教材外,还有一些学术专著和参考书籍也是软工复习资料的重要来源。

以下是一些值得推荐的参考书籍:1. 《架构之美》布鲁斯·巴特勒等著这本书介绍了软件架构的基本原理和实践方法,通过实例分析,让读者更好地理解和应用软件架构。

2. 《软件测试:一种实用方法》(第3版)桥本还等著软件测试是软工过程中不可或缺的环节之一,这本书详细介绍了软件测试的原理、方法和工具,对于深入理解和应用软件测试非常有帮助。

3. 《敏捷软件开发:原则、模式与实践》罗伯特·C.马丁等著敏捷开发是当前软件工程领域的热门话题之一,这本书系统地介绍了敏捷开发的原则、模式和实践经验,对于学习敏捷开发非常有益。

三、在线课程和视频资料除了书籍,还可以通过在线课程和视频资料来学习和复习软工知识。

以下是一些建议的在线学习资源:1. Mooc网Mooc(大规模开放在线课程)网站上有很多软件工程相关的在线课程,课程内容丰富,可以根据自己的兴趣和需求进行选择。

软件工程复习资料

软件工程复习资料

软件工程复习资料第一章1、软件的特点:①是一种逻辑实体,而不是有形的系统元件,开发成本和进度难以准确地估算。

②软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

③软件的使用没有硬件那样的机械磨损和老化问题。

2、软件危机:随着计算机在各个领域的广泛应用,软件的需求量越来越大,软件的复杂度也越来越高,导致软件的开发远远满足不了社会发展的需要,超出预算的经费、超过预期的交付时间的事情经常发生。

由于缺乏文档以及没有好的开发方法指导,使得大量已有的软件难以维护。

2、软件的分类:1.系统软件2、支撑软件3、应用软件3、软件语言:1.需求定义语言 2.功能性语言 3.设计性语言 4.实现性语言5.文档语言3、软件工程定义:建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效地运行。

4、软件的发展:1.第一阶段,从第一台计算机的第一个程序的出现到实用的高级程序设计语言出现以前。

2.从实用的高级程序设计语言出现以后到软件工程出现以前 3.从软件工程出现以后至今。

5、软件工程的原则:1.选取适宜的开发模型2.采用合适的设计方法 3.提供高质量的工程支撑 4. 重视软件工程管理6、软件的生存周期:指软件产品或软件系统从产生、投入使用到被淘汰的全过程7、软件的过程:生产一个最终满足需求且达到工程目标的软件产品的所需的步骤。

8、软件工程模型:软件开发全部过程活动和任务的结构框架9、瀑布模型:特征:1.接受上一阶段活动的结果作为本阶段活动的输入2.依据上一阶段活动的结果实施本阶段应完成的活动3.对本届阶段的活动进行评审。

4.将本阶段活动的结果作为输出,传递给下一阶段。

其优点:确保软件开发的顺利进行、提高软件项目的质量和开发效率起到重要的作用。

其缺点:1、客户常常难以清晰地描述所有的需求,而且开发过程中,用户的需求常常有所变化,使得不少软件的需求存在着不确定性2、瀑布模型使得客户在测试完成以后才看到真正可运行的软件,此时,如果发现不满足客户需求的问题,那么修改软件的代价是巨大的。

软件工程复习资料

软件工程复习资料

1.什么是软件工程他的基本原理是什么1)软件工程是指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。

2)用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚的审查、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。

2. 是什么导致了软件工程主要是软件危机的出现导致了软件工程3. 通常我们所见的软件工程模型有哪些瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。

21.软件危机的现象:1)经费超出预算,项目一再拖延。

2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。

3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。

3)开发工具落后,手工方式,开发效率低。

22.软件工程的三要素1)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量开发出软件。

2)“方法”为软件开发提供“如何做”的技术。

它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。

3)“工具”可为过程和方法提供自动的或半自动的支持。

这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。

通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为计算机辅助软件工程,即CASE。

CASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

23.简述软件工程的目标,过程和原则1)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。

软件工程的目标:降低成本,及时交付高质量的软件产品。

实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。

软件工程复习资料

软件工程复习资料

软件工程复习资料软件工程复习资料软件工程是现代社会中一门重要的学科,它涉及到软件开发、项目管理、质量保证等多个方面。

对于学习软件工程的同学来说,复习资料是必不可少的工具。

本文将为大家介绍一些软件工程复习资料,希望能够帮助大家更好地备考。

一、教材首先,教材是复习软件工程的基础。

常用的软件工程教材有《软件工程导论》、《软件工程》等。

这些教材系统地介绍了软件工程的基本概念、原理和方法,对于初学者来说是非常有帮助的。

在复习时,可以结合教材的章节内容进行有针对性的复习,加深对知识点的理解。

二、经典案例软件工程的学习离不开实践,而经典案例是理论与实践结合的重要途径。

比如,著名的软件项目管理案例——泰坦尼克号项目,可以帮助学生了解项目管理的流程、方法和技巧。

此外,还有一些软件开发的经典案例,如微软的Windows操作系统、谷歌的搜索引擎等,通过研究这些案例,可以更好地理解软件开发的过程和技术。

三、学术论文学术论文是了解软件工程最新研究进展的重要途径。

在复习软件工程时,可以阅读一些相关领域的学术论文,了解最新的研究成果和前沿技术。

同时,学术论文还可以帮助学生提升论文写作和研究能力。

可以通过学术搜索引擎或学术期刊网站获取相关的学术论文。

四、在线资源互联网是获取各种复习资料的重要渠道。

有很多网站提供软件工程的学习资源,如Coursera、edX等在线学习平台,可以免费或付费学习软件工程的相关课程。

此外,还有一些技术博客、论坛等社区,可以与其他学习软件工程的同学进行交流和讨论,共同进步。

五、考试题库考试题库是复习软件工程的重要辅助工具。

通过做题,可以检验自己对知识点的掌握程度,找出自己的不足之处,并加以改进。

可以通过搜索引擎或者考试题库网站获取相关的软件工程考试题目,进行练习和复习。

六、实践项目最后,实践项目是巩固软件工程知识的有效方法。

通过参与实践项目,可以将理论知识应用到实际中,提升自己的实践能力。

可以选择一些开源项目或者自己感兴趣的项目进行参与,通过实践来巩固和扩展学习的知识。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章1.1基础知识1.1.1 软件工程的产生软件是计算机程序及其说明程序的各种文档。

软件的生产经过三个阶段:程序设计时代、程序系统时代和软件工程时代。

软件发展的第二阶段的末期,计算机硬件技术的进步,为计算机的广泛应用创造了条件。

一些复杂的大型的软件开发项目提出来了,但是,软件开发技术一直未能满足发展的要求。

在软件开发中遇到的问题,在找不到解决的办法时,问题积累起来,形成了尖锐的矛盾,导致了软件危机。

软件危机主要表现在以下几点:(1)软件需求增长得不到满足。

(2)软件生产成本高、价格昂贵。

(3)软件生产进度无法控制。

(4)软件需求定义不准确,而偏离用户需求。

(5)软件质量不易保证。

(6)软件的可维护性差归纳起来,软件危机主要表现在两个方面:(1)无法满足日益增长的对软件的需求。

(2)难以满足对已有的软件系统的维护需求。

软件危机得出现,使得人们去寻找产生人际危机的内在原因,发现其原因可归纳为两方面:(1)由于软件生产本身存在着复杂性。

(2)与软件开发所使用的方法和技术有关。

为了克服软件危机,人们提出了“软件工程”的概念,要用工程化的思想来开发软件。

1.1.2 软件工程的概念软件工程是用科学知识和技术原理来定义、开发、维护软件的一门综合性的交叉学科。

软件工程的目的是成功地建造一个大型软件系统,所谓成功是要达到一下的几个目标:(1)付出较低的开发成本。

(2)达到要求的软件功能。

(3)取得较好的软件性能。

(4)开发的软件易于移植。

(5)需求较低的维护费用。

(6)能按时完成开发任务。

(7)及时交付使用。

(8)开发的软件可靠性高。

软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。

在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境;在软件开发管理中,主要研究软件管理学、软件经济学、软件心理学等。

1.1.3 软件开发环境软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成。

软件开发环境与软件生存周期、软件开发方法和软件处理模型是紧密相关的。

其分类方法很多。

按解决的问题分类,软件开发环境可分为程序设计环境、系统合成环境、项目管理环境。

按软件开发环境的演变趋向分类,分为以语言为中心的环境、工具箱环境和基于方法的环境。

按集成化程度分类,第一代:建立在操作系统之上;第二代:具有真正的数据库;第三代:建立在知识库系统上。

1.1.4 软件工具软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。

开发软件工具的主要目的是为了提高软件生产率和改善软件的质量。

软件工具通常由工具、工具接口和工具用户接口三部分构成。

工具通过接口与其他工具、操作系统或网络操作系统,以及通信接口、环境信息库接口等进行交互作用。

软件工具的发展有以下几个特点:软件工具由单个工具向多个工具集成化方向发展;重视用户界面的设计;不断地采用新理论和新技术;软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。

软件工具可分为六类:模拟工具、开发工具、测试和评估工具、运行和维护工具、性能测量工具和程序设计支持工具。

1.1.5 计算机辅助软件工程计算机辅助软件工程(缩写为CASE)是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。

CASE系统所涉及到的技术有两类:一类是支持软件开发过程本身的技术,如支持规约、设计、实现、测试等。

另一类是支持软件开发过程管理的技术,如支持建模、过程管理等等。

1.2 单元练习1.2.1 填空题1.软件工程需要解决的问题,有_______、_______、_______、______和________。

2.到目前为止,软件生产的发展经历了三个阶段,即________、________、________。

3.计算机科学中的研究成果均可用于软件工程,但计算机科学侧重于_________,而软件工程侧重于_______.4.软件工程要用管理科学的方法和原理进行_________.5.软件工程是用科学知识和技术原理来________、________、_______软件的一门学科.6.软件工程研究的主要内容包括软件开发技术和软件开发管理两个方面.在软件开发技术方面,主要是研究_______、_______、_________.在软件开发管理方面,主要是研究____________、_________、________.7.作为一门交叉学科,软件工程具有很强的综合性,它涉及_______、______、________、______等领域。

8.软件工程要用工程科学的观点来进行__________、__________、________.9.计算机程序及其说明程序的各种文档称为_______。

计算任务的处理对象和处理规则的描述称为______。

有关计算机程序功能、设计、编制、使用的文字或图形资料称为_______-。

10.软件工程要用________的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型.11.软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。

通常,软件生存期包括______、______、______、______、_______、______、等活动,可以将这些活动以适当方式分配到不同阶段去完成。

12.开发软件工具的主要目的是为了提高软件生产效率和改善________。

1.2.2选择题1. 软件是一种()产品。

A.有形B. 逻辑C. 物质D.消耗2.软件工程学的目的应该是最终解决软件生产的()问题。

A. 提高软件的开发效率B. 使软件生产工程化C. 消耗软件的生产危机 D. 加强软件的质量保证3.与计算机科学的理论研究不同,软件工程使一门()学科。

A. 理论性B. 工程性C. 原理性D. 心理性4.软件危机的主要原因有()。

(1)软件本身的特点(2)用户使用不当(3)硬件可靠性差(4)对软件的错误认识(5)缺乏好的开发方法和手段A .(3)(4) B. (1) (2) (4)C. (1) (5)D. (1) (3)5. 在计算机软件开发和维护中所产生的一系列严重的问题通常称为软件危机,这些问题中相对次要的因素是()。

A. 文档质量B. 开发效率C. 软件功能D. 软件性能6.软件工程与计算机科学性质不同,软件工程着重于()。

A. 原理探讨B. 理论研究C. 建造软件系统D. 原理的理论7.软件工程学科出现的主要原因是()。

A. 计算机的发展B. 其他工程科学的影响C. 软件危机的出现D. 程序设计方法学的影响8.软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,其期望达到的最终目标是()。

A. 软件开发工程化B. 消除软件危机C. 实现软件可重用D. 程序设计自动化9.由于软件生产的复杂性和高成本性,使大型软件的生存出现危机,软件危机的主要表现包括了下述()方面。

(1)生产成本过高(2)需求增长难以满足(3)进度难以控制(4)质量难以保证10.软件工程方法学中的软件工程管理使其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标使()。

A. 管理开发人员,以开发良好的软件B. 采用先进的软件开发工具,开发优秀的软件C. 消除软件危机,达到软件生产的规模效益D. 以基本的社会经济效益为基础,工程化生产软件11.软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。

A. 硬件环境B. 开发人员的素质C. 软件开发工具和软件开发的环境D. 软件开发的环境12.有关计算机程序功能,设计,编制,使用的文字或图形资料称为()。

A. 软件B. 文档C. 程序D. 数据13.软件工程是一种()分阶段实现的软件程序开发方法。

A. 自顶向下B. 自底向上C. 逐步求精D. 面向数据流14.软件方法学是以软件方法为研究对象的一门学科。

从开发风范上看,可分为(A)。

从性质上看,可分为(B)。

从适应范围来看,可分为(C)。

软件自动化方法是指利用计算机使软件的设计实现自动化的方法和相关的技术。

软件自动化的实现途径有四种:过程途径,归纳途径,(D)。

形式方法的目的是把软件作为数学来重新发现。

形式方法被用来避免系统中的(E),不一致性。

供选择的答案:A:(1)面向对象开发方法与自底向上的开发方法(2)自顶向上的开发方法与结构化开发方法(3)面向对象开发方法与结构化开发方法(4)自顶向上的开发方法与自底向上的开发方法B:(1)面向对象开发方法与形式方法(2)面向对象开发方法与结构化开发方法(3)形式方法与非形式方法(4)面向对象开发方法与非形式方法C:(1)整体性方法与局部性方法(2)面向对象开发方法与结构化开发方法(3)面向对象开发方法与非形式方法(4)形式方法与非形式方法D: (1) 演绎途径,编译途径(2)转换途径,编译途径(3)编译途径,解释途径(4)演绎途径,转换途径E:(1)歧义性,不完全性(2)歧义性,不安全性(3)歧义性,不适应性(4)歧义性,不可靠性15.()是计算机程序及其说明程序的各种文档。

A. 软件B. 文档C. 数据D. 程序16.软件开发环境支持一定的()或按照一定的软件开发模型组织而成。

A. 软件生存周期B. 软件过程C. 软件开发方法D. 软件开发模型17.以下说法错误的是()。

A. 大多数开发系统都采用基于文件集成的策略B. CASE开放式工作台或者提供控制集成机制,或者可剪裁,其数据集成或协议是独立的C. 在封闭式系统中,系统的集成的约定是该工作台开发商独有的D. 许多工作台都是封闭式系统,因为这允许更紧密地数据集成,表示集成和控制集成18.软件开发环境中最主要的组成部分是()。

A. 软件工程B. 项目管理工具C. 软件工具D. 需求分析工具1.2.3 简答题1、什么是软件危机?软件危机表现在哪些方面?2、软件工程是指什么?软件工程的性质是什么?3、简要叙述软件工程目标和内容。

4、软件产品具有哪些特性?5、软件生产的发展迄今为止经历了哪几个阶段?各阶段有何特征?6、软件工程面临的问题有哪些?7、试述软件危机产生的原因。

1.3 参考答案一、填空题1.软件费用、软件可靠性、软件可维护性、软件生产率、软件重用2.程序设计时代、程序系统时代、软件工程时代3.原理和理论、如何建造一个软件系统4.软件生产的管理5.定义、开发、维护6.软件开发方法、软件开发过程、软件开发工具和环境、软件管理学、软件经济学、软件心理学7.计算机科学、工程科学、管理科学、数学8.费用估算、制定进度、制定计划和方案9.文件、程序、文档10.数学11.可行性研究、需求分析、概要设计、详细设计、编码、测试、维护12.软件的质量二、选择题1. B2. B[解析]:随着软件生产规模扩大化、设计的体系结构复杂化,软件生产中暴露出了许多问题,如软件的质量难保证、生产进度无法控制、可维护性差、生产成本高、需求定义不准确、需求增长得不到等。

相关文档
最新文档