软件工程期末考点重点

软件工程期末考点重点
软件工程期末考点重点

软件工程主要知识点串讲

第一讲概述

1 如何理解软件工程及其研究内容:

软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法。

软件工程是一门旨在指导生产无缺陷软件的学科,既指导如何生产能够及时交付、成本不超预算并且满足用户需求的软件产品。

软件工程研究内容包括两个方面:(1)要考虑专业软件开发所需要的理论、方法和工具----工程技术问题;(2)软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题

2软件的内涵:

软件包括:

①能够提供客户所需功能与性能的计算机程序;

②能够使程序得以处理信息的数据结构;

③用以描述程序开发过程及使用的文档。

3 软件产品的两种类型包括:

通用软件和定制软件(多数),前者是为某一类通用的市场设计开发的,后者是为一个特定的用户设计开发。

4 一个成功软件项目的三个要素包括:按时交付,不超预算和满足用户要求。

5软件过程与软件生命周期的相关概念:

●软件过程是指开发或制作软件产品的一系列活动及其成果.

●所有的软件过程中都包括四个基本活动:

1.描述( Specification)- 系统应该提供的功能及其开发约束;

2.开发( Development)- 软件产品的生产过程;

3.有效性验证(Validation )- 检验软件产品是否满足了客户的需要;

4.进化( Evolution )- 按照用户的变更要求不断的改进软件。

●软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、

软件设计、实现、测试、维护与退役等活动。

6 优良软件的属性包括可维护性、可依赖性、有效性、可接受性。

7 CASE是一些用于支持软件过程活动的自动化、半自动化的软件系统。(计算机扶助软件工程)

第二讲软件过程

1一个软件过程模型是软件过程的一种抽象表示,它通常是对软件过程某一特定方面的抽象描述。

2 瀑布模型的图形表示及其特点:

1)这种模型把软件过程划分成几个顺序的阶段。阶段间具有依赖性,前一个阶段结束,后一个阶段才能开始;

2)这种模型很难对用户变更做出调整,只适用于需求非常清楚和需求变更被严格限制的情况下。

3 进化式开发的基本思想、类型与特点:

基本思想:通过开发系统原型和用户反复交互,以明确需求,使系统在不断调整与修改中得以进化成熟。又叫做原型式开发方法。

进化式开发有两种基本类型:探索式开发和抛弃式原型法。

这种模型开发周期短、能够对变更做出快速反应,但其开发过程缺乏过程可见性,系统结构通常较差,而且需要一些特别的技术(如原型快速开发技术),这些技术通常与主流技术不兼容。所以它适用于中小规模的交互系统或生命周期较短的系统,也可以用于大型系统的局部开发(如系统界面),可以和瀑布模型混合使用。

4 增量式开发的图形表示及特点:

在这种开发方式中,系统不是作为一个整体交付,而是被分解成若干个增量,每个增量交付系统的部分功能。用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。这样,优先级最高的系统功能就得到最多的测试,系统的可靠性较高。

5螺旋模型的特点:

?这种模型用螺旋线表示软件过程,而不是采用一系列活动及活动间的反馈;

?螺旋中的每个回路表示软件过程中的一个阶段;

?这种模型充分考虑了软件开发所面临的风险,并贯穿软件过程始终。

第三讲需求工程

1 需求工程过程包括可行性研究、需求导出与分析、需求描述以及需求有效性验证等活动,如图:

2可行性研究要决定被提议的系统是否值得去做,包括信息评估、信息汇总和书写报告三部分工作。

3 软件需求有两个不同层次的描述,即用户需求与系统需求:

?用户需求

?从客户的角度,采用自然语言配合以图表对目标系统应提供的服务以及系统操作要受到的约束进行的声明。

?系统需求

?系统需求是一种结构化文档,要运用一些专业的模型详细的描述系统的功能及其约束。系统需求文档有时也称为功能描述,应该是精确的,它可以成为双方之间合同的重要内容。

4 功能性需求、非功能性需求及领域需求的相关概念:

?功能需求:对系统应提供的功能,系统在特定的输入下做出的反应及特定条件下的行为的描述。某些情况下还要包括系统不应做什么。

?非功能需求:对系统提供服务或功能时收到的约束进行描述。如时间约束、开发过程约束和标准等。

?领域需求:这种需求来自于系统的应用领域,反映领域特征。可能是功能需求也可能是非功能需求。

功能性需求与非功能性需求相比较,非功能需求往往更为关键,因为非功能需求表示的是系统的整体特征,而功能性需求描述的则是局部功能。

(要求能够识别功能性需求与非功能性需求!!!看课件上例子)

5 书写用户需求的准则:

?设计一个标准格式,以帮助减少遗漏,避免不必要的细节描述;

?使用一致的语言,尤其强调区别强制性需求与希望性需求;

?使用文本加亮来突出关键性需求;

?尽量避免使用计算机专用术语。

6 用自然语言描述系统需求存在的问题及替代方法:

用自然语言描述系统需求存在不明确、描述随意性大、不能进行模块化描述的缺点,可以使用结构化自然语言、设计描述语言、图形描述语言和数学描述方法来代替自然语言。

7 需求导出的过程活动包括:需求发现、需求的分类与组织、优先排序和冲突解决、需求文档化。

8 需求信息的来源包括已有的文件,系统的信息持有者(stakeholders)以及相近系统的规约描述。

9 场景的常用描述方法是自然语言和用例,描述内容一般包括:

?场景开始时系统初始状态的描述;

?一个标准事件流的描述;

?对可能出现的错误及解决方法的描述;

?其它并行事件流的描述;

?场景结束状态的描述。

10 结构化分析方法以及主要的结构化分析模型

结构化分析方法是一种面向数据流的系统建模技术,它从数据加工的角度对系统进行规格描述;结构化分析模型主要包括数据词典、数据流图、实体-关系图、状态-迁移图。

实体—

关系图数据

词典

状态—迁移图数据流图

数据对象描述

控制规格说明

加工规格说明

11 为什么要进行需求有效性验证?对需求文档的检查主要包括哪些方面?

需求有效性验证的目的是检验需求描述是否正确地反映了客户的意愿,以期尽早的发现需求中存在的错误。

好的需求对软件系统的开发效率及软件质量起着至关重要的作用。一个错误发现的越晚,修改它所付出的代价就越大。

需求检查包括对有效性、一致性、完备性、现实性和可检查性的检查。

第四讲软件设计

1 软件设计及其要解决的问题:

●设计是一个把问题转换成解决方案的创造性过程;

●软件设计要解决“软件系统如何实现”的问题;

●从工程管理的角度,软件设计可以分成概要设计(总体设计、系统设计)与细节

设计(详细设计)

2 理解信息隐藏原理以及采用信息隐藏原理指导模块设计的好处

信息隐藏原理是指模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块来说不可访问;每个模块只完成一个相对独立的特定功能;模块之间仅交换那些为完成系统功能必须交换的信息,即模块应该功能独立的。

信息隐藏的好处:

1)它支持模块的并行开发;

2)减少测试和后期维护的工作量。因为测试和维护阶段不可避免地要修改设计和代码,模块对大多数数据和过程处理细节的隐藏可以减少错误向外传播。

3)整个系统扩充功能只需“插入”新模块,原有的多数模块无须改动。

3 模块独立性及其度量准则:

模块独立性的概念是模块化、抽象和信息隐藏概念的直接产物,模块独立性是通过开发具有单一功能和与其他模块没有过多交互作用的模块来达到的。独立性好的模块对其它的模块依赖性小,修改时对其它模块的影响小,易于修改和扩充,因此有良好的可维护性。

模块独立性可用两个定量准则来度量:耦合(coupling)和内聚(cohesion)。耦合性是对软件程序结构中各个模块之间相互关联程度的一种度量。内聚性是信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。模块的内聚性越强,耦合性越弱,独立性越强。

4 体系结构设计的任务:

体系结构设计的任务是要识别出组成系统的子系统并建立子系统的控制和通信框架。体系结构设计是联系需求描述与其他设计活动的桥梁。

5数据中心体系结构(容器模型)的基本特点:

所有共享数据放到一个中央数据库(容器)中,所有子系统都能从中存取数据;

6 客户服务器模型的主要组成:

●一组为其它子系统提供服务的单机服务器;

●一组向服务器请求服务的客户机;

●连接客户机与服务器的网络。

7分层(抽象机)体系结构的特点:

●这种模型把系统组织成一系列的层次(抽象机),每一层提供一组服务;

●这种模型支持增量式的开发,不同层次的服务可以单独交付;

●层与层之间以接口相联系,一个接口发生改变,只有毗邻的层会受到影响;

8 两种基本的控制模型:

集中控制:一个子系统专门负责控制,控制其他子系统的启动与停止。

基于事件的控制:不将控制信息集中在一个子系统内,每个子系统都能够接受来自系统外部的事件并作出响应。

9 用户界面设计过程模型如下:

10 Theo Mandel提出的界面设计的三条“黄金规则”是:

1) 置于用户控制之下;

2) 减少用户的记忆负担;

3) 保持界面一致。

11 对错误消息的设计要求:礼貌的、简明的、一致的、建设性的。

12 软件帮助系统不能是用户手册的简单复制,应该有一个合理的组织与结构,应该为用户提供不同的入口。

第五讲面向对象的分析与设计

1 面向对象方法与结构化方法相比较有以下优势:

●符合人类自然思维方式,易于理解、描述和实现。

●对需求变化有较好的适应性:封装机制和消息传递机制将需求变化影响限制在对

象内部。

●支持软件复用:封装性有助于实现复用;继承、实例化实现了对象复用;类库提

供了大量公共代码。

●可维护性好:封装性和消息传递造成低耦合,错误定位和修改容易;继承与多态

使得功能的扩展更加容易。

●开发过程衔接紧密:在软件生命周期各阶段可以使用同样的模型描述。

2 UML是一种标准的图形化建模语言,它为不同领域的人们提供一种统一的交流标准,这种标准使得系统构造者能够用标准的、易于理解的方式建立能表达出他们想象力的系统蓝图,并使客户、分析员、设计人员、程序员和系统其它涉及者能够相互理解和达成一致,从而能够有效地共享和交流设计结果。

4 了解面向对象的分析过程:

要求掌握:

1)用例图的画法;

2)用例表(用例规约描述)的基本结构及描述方法;

3)用CRC 确定关键抽象的过程;

4)用类模型表示关键抽象。

分析用例场景发现更多细节 在分析的基础上精化用例图

用活动图验证用例

用CRC 分析法确定关键抽象 表述域模型中关键抽象之间

的关系

使用从用例场景中得到的对

象图来验证域模型

SRS

C

R C

5 采用鲁棒性分析建立设计模型的过程(掌握建模方法):

1)选择一个用例

2)构造一个满足用例活动的协作图。

a.识别支持用例活动的设计组件(边界组件、服务组件、实体组件)。

b.画出这些组件间的关联

c.用消息标记这些关联

3)从另一个角度,把协作图转换成序列图(可选的)。

第六讲软件实现与有效性验证

1 测试和调试的区别:

?测试和调试是不同的过程,通常交叉进行。

?测试的目的是确定系统中存在缺陷;

?调试考虑的是定位和修改缺陷。

2验证和有效性确认的区别:

?验证:

"Are we building the product right”.

检查软件是否符合它的规格描述。

?有效性确认:

"Are we building the right product”.

检查软件是否满足客户的期待。

3 验证和有效性确认过程的两种基本方法:

●软件检查,通过对系统的各种静态成果,如需求文档、设计文档、源代码,进行

检查和分析发现问题。

●软件测试,通过使用测试数据执行系统,检查运行结果来发现问题。

4 测试的目的是为了揭示程序中存在错误,而不是没有错误!

5 仔细的V & V规划能够使程序检查和测试的工作得到更多的回报。V & V过程的规划应该从开发过程的早期就开始。如图,不同阶段的测试计划应该来自前期分析与设计阶段。(不用画图)

6 软件测试过程

7 测试可以分成组件测试与系统测试,系统测试又包括集成测试与发布测试。

8 按照测试的不同目标可以把测试分成有效性测试与缺陷测试。

9 集成测试中,为了简化错误定位,应采用增量集成的方法。

10由于组件要在一定上下文环境中运行,所以进行单元测试要为每个待测组件开发额外的驱动模块和桩模块。

11 用例的基本构成及等价类划分测试的基本原理:

测试用例的基本构成可以包括:设计的输入、期望的输出、测试环境和测试对象的描述。

等价划分测试是测试用例设计的一种方法。设计测试用例时,可以按特征把数据输入域化分成若干等价类,等价类中的每个数据应该以同样的方式得到处理,因此对于揭露程序中的错误是等效的。这样,就可以选取少量有代表性的输入数据作

为测试数据,以期用较小的代价暴露较多的程序错误。

12 黑盒测试与白盒测试的区别:

黑盒测试又叫做功能测试,测试者只关心系统的功能而不关心软件的实现。也就是说测试者不必了解有关系统的任何细节,只把系统看成是一个能够处理输入,产生输出的“黑盒子”,仅从功能的角度设计测试用例。

白盒测试又叫做结构测试,是一种根据软件的结构知识导出测试用例的设计方法。测试者把被测试组件看成是一个打开的“白盒子”,组件的内部结构对测试者是透明的,通过对所用算法结构的分析设计测试用例。

13基本路经测试的原理:

在程序控制流图的基础上,分析控制结构的环路复杂度,并用这个复杂度为指南定义执行路径的基本集合,从而导出基本可执行路径集合,设计出测试用例并保证每个可执行语句至少执行一次,而且每个条件在执行时都将分别取真、假两种值。

1) 计算环路复杂度V(G)

V(G)=简单判定的数目+1 或 封闭区域的数目

+1=4 2) 导出独立路径的数目 由于V(G)=4,所以共有4条路径

1

2

3

4 5 6 7 8

14逻辑覆盖测试法按测试目标不同可分为:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖及路径覆盖。其中语句覆盖法覆盖度最弱,路径覆盖法覆盖度最强。

第七讲软件进化

1 软件维护的定义

软件维护是指在软件交付之后,为了改正错误或满足新的需要而修改软件的过程。2软件维护的三种类型

软件维护包括:

1)改正性维护:修改检验工作没有发现的错误;

2)适应性维护:使软件适应不同的操作环境的变化;

3)完善性维护:增加或修改系统功能以满足客户新的需要。

4)预防性维护(再工程):为预防系统后期可能的失效而做的维护。

3 Miller把预防性维护定义为:“把今天的方法学应用到昨天的系统上,以支持明天的需求。”

软件工程期末考试重点

软件工程期末考试重点 《软件工程》期末复习重点 第一章软件工程 1. 什么是软件工程。 A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。2. 软件工程的三要素:方法、工具和过程。 第二章软件过程 1. 软件生命周期分为哪几个阶段?每个阶段的基本任务是什么? a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么 可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么 b.软件开发:具体设计和实现在前一个时期定义的软件。概要设计:怎样宏观地解决问题 详细设计:应如何具体地实现这个系统 编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。 c.运行维护:修正错误,使软件持久地满足用户需要。改正性维护:诊断和改正使用中的错误适应性维护:修改

以适应环境变化 完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备 2. 常用的过程模型有哪些?各自的特点及不足。如:瀑布模型的不足是不能适应需求的动 态变更。 A.瀑布模型 特点: 可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。 缺点:太理想化,于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格与用户需求之间有差异,就会发生这种情况。只适用于项目开始时需求已确定的情况。 B.快速原型模型 特点:快速 软件产品开发基本上是线性顺序进行。降低了规格说明文档变化的可能性。减少了后续阶段错误的可能性。 c.增量模型 1 优点: 人员分配灵活,刚开始不用投入大量人力资源。

软件工程期末考试及答案

软件工程期末考试及答 案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

2. 3. 就程序设计语言的工程特性而 言,对程序编码有哪些要求? 4. 模块的内聚性包括哪些类型? 四、理论应用题(每小题15分,共30分) 1. 请使用PAD图和PDL语言描述 在数组A(1)~A(10)中找最大 数的算法。 2.根据下列条件使用等价类划分 法设计测试用例。某一8位微机, 其八进制常数定义为:以零开头的 数是八进制整数,其值的范围是- 177~177,如05,0127,-065。 五、实践应用题(每小题15分,共15分) 1.某电器集团公司下属的厂包括 技术科、生产科等基层单位。现在 想建立一个计算机辅助企业管理系 统,其中: 生产科的任务是: (1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。 (2)根据车间实际生产日报表、周报表调整月生产计划 (3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。 (4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间 技术科的任务是: (1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。 (2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。

软件工程期末答案 一、名词解释题(每题3分,共15分)。 1.是描述软件开发过程中各种活动如何执行的模型。 2.数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。 3.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。4.JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。5.指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或(不同的对象,收到同一消息可以产生不同的结果。)二、填空题(每空2分,共20分)。 1.软件配置管理 2.容错功能 3.11 4.可移植性 5.输出结果 6.歧义性 7.模块 8.实例化 9.形式语言 10.F/(1+(n*i)) 三、简答题(每小题5分,共20分)。 1.结构冗余:包括静态冗余、动态冗余和混合冗余。

《软件工程》期末复习题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. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件工程课程设计心得总结

软件工程课程设计个人总结 学期就快要结束了,到了最后一周居然还有软件工程课程设计,还要考试真的有点忙啊,不管怎样还是好好干吧,把对工程的理论研究、学习成果用于实践也是一种检验学习成果和提升工程能力的有效手段嘛。 工作内容安排 软件工程课程设计的第一天拿到题目,听取老师对于课程设计的要求、要完成的工作、预期要达到的效果和注意事项。然后分组、讨论和确定选题。这真正的课程设计才算开始了,经过组长,组员的反复研究、论证后一致决定选择:实习题目4:开发一个基于Web的BBS系统,包含一般BBS所具有的功能,如用户注册、用户信息管理、发贴功能、贴子管理、主题词查询、用户信息修改和查询等。 这个题目对于现代化的网络交流来说发展的成熟而且符合当代互联网大众的网络需求,符合现代网络对信息分享讨论的爱好,我们一致预测在今后很长的一段时间内也将会是非常流行的一种交流介质。 确定选题后我们开始软件开发的第一步,需求分析,详细设计等内容,分块分工完成模块,我分到的主要部分就是分析论坛里面的帖子内容,用户的爱好,然后解决用户的索引需求,把用户的索引需求智能的、友好的呈现给用户,把这部分的代码编写,测试,把用户界面做好就是我接下来几天的工作内容。 俗话说:磨刀不误砍柴工,要想把我的这部分内容做好,做得完美,我的好好的分析一下,对全组对整个系统的需求分析的基础上又认真分析了本部分的内容和本部分要实现的功能,对本部分实现的主要思想理清,认真设计界面,还有对队员们的模块能有效的结合起来,让他们的模块也能有效的供我使用,做好我的接口也方便其他模块与此的衔接。 问题与解决 在本次课程设计中遇到了好多前所未有的问题,第一次接触HTML网页开发,第一次邂逅JSP web应用程序开发,第一次有了原来开发应用程序是需要数据库的,对于这些都是第一次接触,需要了解HTML的基本语法,需要学习JSP web 应用程序web app的开发方法,需要实践配置数据库TOMCAT、SQL sever,居然有这么多的东西需要从头来,对于这些方面我就像一张崭新的白纸,怎么能在短短的四五天时间内将这张白纸绘成一幅栩栩如生的画卷呢,这是我们面对的亟待解决的问题。 为了解决这一系列的问题,我们没有找借口,我们没有懒惰,我们更没有放弃,而是迎难而上,到图书馆“大采购”求资料,找到想要的,真想把图书馆搬到课程设计实验室。接下来就是根据我们的需求分析,概要设计,详细设计等内容分模块编写网页源代码,修复bug,测试代码,连接数据库这样我们的全新的基于web的BBS论坛就成功上线了。

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

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

软件工程期末考试资料

软件工程 第一章: 1.软件的组成不仅是程序、数据和文档,而且还有完成一定功能和性能所蕴含 的知识和经验。 2.领域知识是基于计算机的系统的设计、软件需求获取和系统测试不可或缺的。 3.软件发展的历史给我们的启发是社会需求和硬件进步是软件技术发展的基 础。 4.软件的进步和成就促进了信息社会和知识经济的发展。 5.按照应用领域、基本属性和特点研究软件有助于对软件的理解,提高了软件 开发、使用和维护的针对性。 6.软件工程学科具有鲜明的工程特性。 第二章: 1.面向对象方法是现代软件工程技术体系的基石,它以分类、继承、聚合、封装、多态和消息传递等贴近人类思维习惯的概念。 2.因面向对象与生俱来的自然性、直观性,以及支持软件复用、改善软件结构等许多优势,面向对象方法后来居上,迅速取代结构化方法而成为当前主流的软件开发方法学。 3.UML通过图形化的表示机制从多个侧面表示软件系统的分析和设计模型。 4.UML定义了5类图形机制:用例视图,包括用例描述和用例图;结构视图,包括视图,包括包图、类图和对象图;行为视图,包括交互图、状态图与活动图;构件视图和部署视图。 5.RUP将软件生存周期(即软件制品的进化状态)划分为初始、细化、构造、移交、生产5个阶段。 6.RUP将软件开发过程分解为业务建模、需求、设计、实现、V&V、部署、配置和变更管理、项目管理、环境9个工作流。 7.软件项目团队可利用5个阶段、9个工作流组织管理软件项目的开发活动。RUP 过程中生成的各类制品通常以UML表示。 8.软件开发过程是基于面向对象方法学的,包括需求获取、需求分析、体系结构设计、人机交互设计、详细设计、实现、测试、维护与进化等重要的软件开发阶段。 第三章: 1.软件需求是指利益相关方对目标软件系统在功能、性能和质量等方面的期望,以及对目标软件系统在运行环境、资源消耗等方面的约束。 2.软件需求可划分为功能需求、质量需求和约束性需求3种类型,其中质量需求和约束性需求统称为非功能需求。 3.软件需求的质量要素包括正确性、完全性和可行性。 4.需求调查包括:访谈和会议、调查问卷、业务文档分析、现场观摩。 5.需求建模包括:抽象、分解和多视点分析。 6.需求模型包括:策划、需求获取、需求分析、需求规范化、需求验证和总结等活动。 7.对大中型软件项目以及初期初期需求不明朗的软件项目,需求工程过程采用迭 代方式。

北方工业大学软件工程期末复习题(含答案)

北方工业大学 《软件工程》课程期末复习题(答案) A 卷 2014年春季学期 开课学院:信息工程学院 考试方式:闭卷 考试时间:120 分钟 班级 姓名 学号 一.简要回答下列各问题(共40分,每个小题5分) (1) 阐述软件工程的定义。 答: ● 是指导计算机软件开发和维护的一门工程学科; ● 采用工程的概念、原理、技术和方法来开发和维护软件; ● 把证明正确的管理技术和最好技术综合运用到软件开发中; ● 研究经济地开发出高质量的软件方法和技术; ● 研究有效维护软件的方法和技术。 (2) 简述软件危机的原因。 答: ● 缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。 ● 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误 。 ● 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 ● 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作, 不仅涉及技术问题,更重要的是必须有科学严格的管理。 ● 缺少有效的软件评测手段,提交用户的软件质量不能完全保证。 订 线 装

(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。 (4) 画出软件生存周期的增量模型的示意图,并简述其优点。 优点: ●可强迫开发人员采用规范化的方法。 ●严格地规定了每个阶段必须提交的文档。 ●要求每个阶段交出的所有产品都必须是经过验证 的。 缺点 ●由于瀑布模型几乎完全依赖于书面的规格说明,很 可能导致最终开发出的软件产品不能真正满足用户 的需要。如果需求规格说明与用户需求之间有差异, 就会发生这种情况。 ●瀑布模型只适用于项目开始时需求已确定的情况。 1-2 瀑布模型示意图 ●能在较短时间内向用户提交可完成一些有用的工作产 品,即从第1个构件交付之日起,用户就能做一些有用 的工作。 ●逐步增加产品的功能可以使用户有较充裕的时间学习和 适应新产品,从而减少一个全新的软件可能给用户组织 带来的冲击。 ●项目失败的风险较低,虽然在某些增量构件中可能遇到 一些问题,但其他增量构件将能够成功地交付给客户。 ●优先级最高的服务首先交付,然后再将其他增量构件逐 次集成进来。因此,最重要的系统服务将接受最多的测 试。

软件工程学习心得作业

软件工程作业

软件工程心得体会 通过这半学期我对软件工程的学习,老师在课堂上从软件工程的基础到用户的需求分析,最后到黑盒白盒测试通过自身做过的一些案例,生动形象的讲解了软件工程这门本身枯燥乏味的课程,这不仅增强了学生学习的积极性,也通过让我们自己去做一些需求分析,我们从中学到了许多知识。 老师不仅仅在课堂上对我们悉心的知道,在课外还让我们多看一些有关软件工程方面最前沿的理论,通过这段时间我读了《软件工程——实践者的研究方法》、《件工程案例》这两本书,通过自己的读书学习,我有以下心得体会。 众所周知软件对于一个公司,一个企业乃至一个国家都是十分重要的,因此一个软件的维护也十分重要,下面我就讲一些关于软件维护的知识。 维护阶段是软件生存期中时间最长的一个阶段,也是花费的精力和费用最多的一个阶段。由于操作系统软件和基础软件版本升级或应用管理系统软件的不断开发、完善,需要对软件进行维护。但当运行环境改变或者系统功能、性能需求发生变化,使原软件不能通过维护的手段满足用户需求时,则需要进行软件更新。 1.软件维护的类型: 软件的开发过程对软件的维护有较大的影响。若不采用软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工这是一种结构化的维护。非结构化维护活动只能从阅读、理解和分析源程序开始,这样做难以弄清系统功能、软件结构、数据结构等问题,常常造成误解。同时由于没有测试文档,也不可能进行回归测试很难保证程序的正确性。这种软件维护

方法仅在软件工程时代之前采用。在进行结构化维护活动时,需从评价需求说明开始,弄清楚软件功能、性能上的改变;对设计说明文档进行评价,并进行修改和复查;根据设计的修改,进行程序的变动;根据测试文档中的测试用例进行回归测试;最后,把修改后的软件再次交付使用。这对于减少精力、减少花费和提高软件维护效率有很大的作用。 2.软件维护的困难: 软件维护的困难主要是由于软件需求分析和开发方法的缺陷造成的。软件生存周期中的开发阶段没有严格而科学的管理和规划,就会引起软件运行时的维护困难。这种困难表现在如下几个方面。 (1)读懂别人的程序是困难的。 (2)文档的不一致性。这种不一致性表现在各种文档之间的不一致以及文档与程序之的不一致。 (3)软件开发和软件维护在人员和时间上存在差异。 (4)软件维护不是一项吸引人的工作。 3. 软件维护的费用: 软件维护的费用在总费用中的比重是不断增加的,它在1970 年占35%~40%,1980 年上升到40%~60%,1990 年上升到70%~80%。软件维护费用不断上升,这只是软件维护有形的代价,另外还有无形的代价,即要占用更多的资源。由于大量软件的维护活动要使用较多的硬件、软件和软件人员等资源,这样一来,投入新的软件开发的资源就因不足而受到影响。由于维护时的改动,在软件中引入了潜在的故障,从而降低了软件的质量。 4.软件维护的分类

软件工程(清华钱乐秋版)期末复习重点

1、什么是软件工程 在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。 2、软件生存周期分哪几个阶段分别简述各个阶段的任务。 答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。 A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机 系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。 B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面 等要求,生成软件需求规约。 C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细设 计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。 E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。 3、简述各类软件过程模型的特点。 答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是: 接受上一阶段活动的结果作为本阶段活动的输入; 依据上一阶段活动的结果实施本阶段应完成的活动; 对本阶段的活动进行评审; 将本阶段活动的结果作为输出。 B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软 件的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。 然后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下

山东大学-软件工程复习重点整理

第一章 1.1软件工程(SE)的定义、向、作用: SE:在将有关软件开发与应用的概念科学体系化的基础上,研究如有计划、有效率、经济的开发和利用能在就算机上正确运行的软件的理论和技术的工程法学,一些开发和维护软件的法、过程、原则。是一个系统工程,既有对技术问题的分析与综合,也有对开发过程和参与者的管理。 SE的向:面向对象模式,结构化模式,基于过程的模式等 SE的作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。 1.2开发模式:软件开发的全部过程,活动和任务的结构框架,它能直观的表达的表达软件开发全过程,明确要完成的主要活动,任务和开发策略。 1.3说明错误、故障和失效的含义及联系(并举例): 错误:是在软件生产过程中人为产生的错误(需求说明中的错误,代码中的错误) 故障:是在功能实现过程中产生的问题;是错误导致的结果,是在软件中一个错误的表现(一个错误可能产生多个缺陷,静态存在的) 失效:是相对于系统指定行为的偏离,系统违背了它应有的行为(动态存在的) 联系:当一个开发者编写程序时,会在代码中出现错误。当这个程序被编译或集成到一个系统中时,系统就存在故障。当你运行这个系统时,可能会导致失效,即人们产生错误,故障是错误的结果(部观角:从开发者的角度看待问题),当故障执行时出现失效(外部视角:从用户角度看到的问题)。并不是所有的错误会导致故障,并非每个缺陷都对应相应的失败。1.4软件质量应从哪几个面衡量,论述之: (1产品的质量)(2过程的质量)(3商业环境背景下的质量) (1)产品的质量:用户从失败的数目和类型等外部特征进行评价,如果软件具有足够的功能并且易于学习和使用,用户就断定软件是高质量的;开发者从缺陷的数目和类型等部特征来作为产品质量的依据。 (2)过程的质量:有很多过程都会影响到最终的产品质量,只要有活动出了差错,产品的质量就会受到影响;开发和维护过程的质量与产品的质量是同等重要的。 (3)商业环境背景下的软件质量:将技术价值和商业价值统一起来。 1.5软件系统的系统组成(系统的要素有哪些):对象(实体)+ 活动+ 关系+ 系统边界活动:活动是发生在系统中的某些事情,通常描述为由某个触发器引发的事件,活动通过改变属性把一个事物变成另一个事物。 对象:活动中涉及的元素称为对象。 关系:是指活动与对象之间的关系。 系统边界:即系统包含的功能与系统不包含的功能之间的界限。 1.6现代软件工程大致包含几个阶段及各个阶段的文档: (1)需求分析:主要包括问题定义、可行性分析、需求分析《需求规格说明书》

软件工程期末考试总复习题与答案

)))))))) 精品文档考试教学资料施工组织设计方案 复习题 填空题 1.在信息处理和计算机领域内,一般认为软件是_程序____、_文档____ 和_数据____ 。 2.数据流图的基本组成部分有_数据的源点与终点____、数据 流_____、加工_____、数据文件_____。 3.数据流图和数据字典共同构成了系统的_逻辑____模型,是 需求规格说明书的主要组成部分。 4.划分模块时尽量做到__高内聚、低耦合______,保持模块的 独立性,尽量使用公共模块。 5.类的实例化是_对象_______。 6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可 7.靠性的两个指标是_成功地运行的概率_______和_平均故障 时间_______。

8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来, 9.将得到软件的总开发量。这种成本估算方法称为_自底向上 _______。 10.如果一个模块被n 个模块调用,其中直接的上级模块的个数是m 个(m<=n )那么该模块的扇入数是____N_______ 个。 11.结构化设计以__数据流图_________ 为基础,按一定的步骤映射成软件结构。 12.软件的风险分析可包括风险识别、风险预测和风险驾驭(或风险管理)等3项活动。 )))))). )))))))) 13.软件著作权登记的3种主要类型:(1)著作权登记;(2)著 作权延续登记;(3)权利转移备案登记。 14.软件工程管理的主要内容有:项目经费管理,软件质量管理, 项目进度管理和人员管理。 15.面向对象分析的目的是对客观世界的系统进行___建模 _______________ 。 16.软件维护工作的生产性活动包括分析评价、修改设计和 ____编写程序代码_______ 等。

软件工程导论期末考试简答题

简答题 1、什么是软件工程?它目标和内容是什么? 软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。软件工程内容:包括开发技术和开发管理两个方面。 2、软件开发中有哪几种过程模型?哪些适用于面向对象的软件开发? 软件开发中常见的软件过程模型有瀑布模型、原型模型、螺旋模型、喷泉模型、统一软件过程等。 其中喷泉模型、统一软件过程适用于面向对象的软件开发。 3、什么是结构分析方法?该方法使用什么描述工具? 结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。 4、什么是软件概要设计?该阶段的基本任务是什么? 把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。 基本任务:⑴设计软件系统结构⑵进行数据结构及数据库的设计⑶编写概要设计的文档⑷评审 5、软件维护有哪些内容? (1)校正性维护。在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。 (2)适应性维护。为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。 (3)完善性维护。为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。 (4)预防性维护。为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。 6、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系? 软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。 单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。 集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。 确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。 系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。以确定软件是否可以支付使用。 7、什么是软件生存周期?它有哪几个活动? 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。 8、衡量模块独立性的两个标准是什么?各表示什么含义? 内聚和耦合。内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。 耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。 9、什么是结构分析方法?结构化分析方法通过哪些步骤来实现? 结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。实现的步骤:⑴了解当前系统的工作流程,获得当前系统的物理模型。⑵抽象出当前系统的逻辑模型。⑶建立目标系统的逻辑模型。⑷作进一步补充和优化。

软件工程期末考试复习题及答案

(4分) 变换型结构的数据流呈() A. 线性形状 B. 辐射状 C. 椭圆形 D. 阶梯形 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..2. (4分) 可行性研究阶段使用的图形工具是() A. DFD图 B. N-S图 C. PAD图 D. Warnier图 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..3. (4分) 软件的开发模式有() A. 面向过程模式、面向对象模式、混合模式 B. 变换模式、渐增模式、瀑布模式 C. 自顶向下模式、自底向上模式、关系模式 D. 分步模式、渐增模式、非渐增模式 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 B .解析..4. (4分) 模块的初始化工作和模块处理意外故障均属于() A. 时间内聚 B. 顺序内聚 C. 功能内聚 D. 逻辑内聚 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案 A .解析..5. (4分) HIPO的含义是()

A. 层次、输入、处理、输出 B. 高速、信息、程序、目标 C. 顶层的IPO图 D. 关于输入、处理、输出的层次 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..6. (4分) 数据字典和数据流图共同构成系统的() A. 物理模型 B. 结构模型 C. 设计说明书 D. 逻辑模型 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案D .解析..7. (4分) 好的软件结构它的外观形状一般呈() A. 线性 B. 扇形 C. 椭圆形 D. 层次型 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 C .解析..8. (4分) CMU/SEI推出的()将软件组织的过程能力分为五个成熟度级别,每一个级别定义了一组过程能力目标,并描述了要达到这些目标应该具备的实践活动。 A. CMM B. PSP C. ISO-9000 D. RUP 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..9. (4分) 若要保证开发出来的软件局部优化,而且能尽早发现设计上的错误,应采用()

软件工程期末考试题及答案++精华版!!

《软件工程》期末考试样题 一、填空题 1.软件开发模型有(瀑布模型)(螺旋模型)第四代技术模型(原型模型)构件组装模型、混合模型。 2.可行性研究一般可以从(经济)可行性、(技术)可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n年后从银行得到F元,现在应该存入的钱数为(F/(1+i)n)。 4.数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。 5.Jackson图除了可以表达程序结构外,还可以表达(数据结构),它首先要分析(数据结构),并用适当的工具来描述。 6.详细设计的工具有图形工具)、表格工具和(语言工具)。 7.IPO图由(输入)、处理和(输出)三个框组成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(继承)、(封装)、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列( A )属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX 2.下列哪个图是N-S图的构件( C )。 A. 3.对于螺旋模型,下列( D )不是利用笛卡尔坐标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABXD )。 A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(ABCD )。 A.表头 B.表体 C.表名 D.字段名 3.关于内容耦合的描述正确的是( AD )。 A、内容耦合是最高程度的耦合 B、应该尽量使用内容耦合 C、高级语言一般设计成允许内容耦合的形式 D、如果一个模块有多个入口,可能发生内容耦合 4.下列属于不标准的书写格式( BCD )。 A、书写时适当使用空格分隔 B、一行写入多条语句 C、嵌套结构不使用分层缩进的写法 D、程序中不加注释 四、判断题(正确的在括号内打上“√”,错误的打上“×”) 1.软件生存周期是从软件开始开发到开发结束的整个时 期。() 2.系统流程图是一个典型的描述逻辑系统的传统工具。() 3.数据流图和数据字典共同构成系统的逻辑模型。 ( 1) 4.扇出是一个模块直接调用的模块数目,一般推荐的扇 出为3或4。( 1 ) 5.耦合用于衡量一个模块内部的各个元素彼此结合的紧 密程度。()

软件工程复习考点小结

《软件工程》考点小结 1、软件工程的定义及软件工程的研究内容? 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件工程是研究软件开发和软件管理的一门工程学科。2、软件工程五个面向实施理论? “五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,是对前者的继承与发展。 3、什么是“软件生命周期模型”,常用的软件生命周期模型有哪些?软件生命周期由哪5个阶段构成? 软件生命周期模型是指在整个软件生命周期中,软件开发过程应遵循的开发路线图。或者说,软件生命周期模型是软件开发全部过程、活动和任务的结构框架。 瀑布模型、增量模型、迭代模型、原型模型、XP等模型分析、设计、编码、测试、维护 4、简述瀑布模型与迭代模型之间的关系? 在宏观上,迭代模型是动态模型,瀑布模型是静态模型。在微观上,迭代模型与瀑布模型都是动态模型。在迭代和瀑布模型中,你中有我、我中有你。 瀑布模型与迭代模型之间的关系,反映了人们对客观事物的认识论:要认识与掌握某一客观事物,必须经历由宏观到微观的多次反复的过程。只有从宏观上反复迭代几次,才能看清全貌,掌握事物的宏观发展规律。只有从微观上反复迭代几次,才能吃透每个细节,掌握事物的微观发展规律。 5、何谓软件的“功能模型”? 功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。 6、“容错技术”的定义? 容错就是当由于种种原因在系统中出现了数据、文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统能够连续正常运行的一种技术。 7、何谓软件的“快速原型法”? 快速原型法就是在系统开发之初,尽快给用户构造一个新系统的模型(原型),反复演示原型并征求用户意见,开发人员根据用户意见不断修改完善原型,直到基本满足用户的要求再进而实现系统,这种软件开发方法就是快速原型法。 8、.业界存在哪三种需求分析方法?你认为哪一种方案更好? 业界存在三种需求分析方法:面向功能分析、面向对象分析、面向数据分析。 以上这三种方法,各自适用于不同的目标系统。目前时尚的方法是面向对象,包括面向主体和面向方法。总的来说,对于系统软件和应用软件来说,面向功能需求分析的方法简单明了,而面向对象的需求分析方法则复杂抽象。对于以关系数据库为平台的信息系统软件来说,面向数据需求分析方法的特点是抓住了本质。但是,这三种分析方法都离不开面向流程分析这根总线:功能、对象、数据都是在流程中产生的,又都是为流程服务的。 9、需求分析的目的是什么,输入及输出是?需求分析的难点在哪里? 软件需求分析,其目的是用于说明软件产品或软件项目需要满足的条件和限制。在软件工程项目中首先要获取用户的需求,通过对软件需要的提取、分析、文档化及验证,为进一步的设计和实现提供依据。 输入是软件《合同》或软件《立项建议书》,以及对用户现场的调研、分析和确认,输出是《用户需求报告》/《需求分析规格说明书》 需求分析的难点是:在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。要知道,合同是具有法律效力的。 10、试说出黑盒测试和白盒测试的区别和联系。? 黑盒测试又称功能测试。在这里,盒子指的是被测试的软件,“黑盒”就是只知道被测试软件的外部情况,主要是界面和接口,被测试软件的内部逻辑结构和数据结构,对测试人员来说是不可见的,主要关注被测试软件的功能实现。 白盒测试就是对程序执行路径的测试,又叫做玻璃盒测试(Glass Box Testing)、透明盒测试(Clear B ox Testing)、结构化测试(Structured Testing)、开放盒测试(Open B ox Testing)、基于代码的测试(C ode-Based Testing)等。 黑盒测试和白盒测试的联系是:一般宏观上用黑盒测试,微观上用白盒测试,系统集成人员用黑盒测试方法对系统进行测试,构件开发人员用白盒测试方法对构件进行测试,这是常用的测试方法。 11、为什么说需求分析是面向流程的? 系统的功能、性能、接口、界面都是在流程中动态实时的反映出来。在所有的流程(物流、人流、资金流、信息流、单据流、报表流、数据流)中,数据流最重要,也最具有代表性。因为在计算机网络系统内,一切流程都表现为数据流,或者说是数据流在不同方向的投影。而流程是动态的、实时的。所以说,需求分析是面向流程的。 12、简述实用软件测试的流程?

软件工程期末复习要点归纳总结精编WORD版

软件工程期末复习要点归纳总结精编W O R D 版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

第一章软件工程学概论 1、软件危机产生的原因 软件本身的特点:难于维护、逻辑复杂 软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护 课本表述: 1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件 2、软件不同于一般程序,它的一个显着特点是规模庞大,而且程序的复杂性将规模 的增加而呈现指数上升。 3、软件本身特有的特点确实给开发和维护带了一些客观困难 4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维 护) 5、对用户要求没有完整准确的认识就匆忙开始着手编写程序 6、在软件不同阶段进行修改需要付出的代价是很不相同的 2、软件危机的表现(什么是软件危机) (1)、成本高: (2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多 (3)、进度难以控制:

●项目延期比比皆是 ●由于进度问题而取消的软件项目较常见 ●只有一小部分的项目能够按期完成 (4)、维护十分困难: ▼软件维护的多样性 ▼软件维护的复杂性 ▼软件维护的副作用 3、克服软件危机 (1)、管理的角度: 软件开发过程的研究、文档的标准化以及人员的交流方式等 (2)、软件开发方法的研究 结构化软件开发方法, 面向对象的开发 4、软件工程的定义 概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程-期末总结

软件工程期末总结 课程:xxxxx 姓名:xxxxx 学号:xxxxxx 班级:xxxxxx

目录 1.软件工程学概述 (1) 1.1软件危机 (1) 1.2软件工程 (1) 1.3软件生命周期 (2) 1.4软件过程 (2) 2.可行性研究: (2) 2.1可行性研究的任务 (2) 2.2可行性研究的过程 (3) 2.3数据流图 (3) 3.需求分析 (3) 4.形式化说明技术 (4) 5.模块设计 (4) 1.耦合: (4) 2.内聚 (4) 6.详细设计 (5) 6.1结构程序设计 (5) 6.2人机界面设计 (5) 7.软件测试 (5) 7.1软件测试的目标 (5) 7.2软件侧试准则 (6) 7.3测试方法 (6) 8.软件可靠性 (7) 8.1软件质量 (7)

1.软件工程学概述 1.1软件危机 1.1.1 软件危机的介绍:是指在计算机软件的开发和维护过程中所遇到的一系列严重 问题。具体地说,软件危机主要有以下一些典型表现:1.对软件开发成本和进 度的估计常常很不准确。2.用户对“已完成的”软件系统不满意的现象经常发 生。3.软件产品的质量往往靠不住。4.软件常常是不可维护的。5.软件通常没 有适当的文档资料。6.软件成本在计算机系统总成本中所占的比例逐年上升。 7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2产生软件危机的原因:在软件开发和维护的过程中存在这么多严重问题,一方面 与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软 件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。 1.1.3消除软件危机的途径:1、认识到软件是程序、数据及相关文档的完整集合。 2. 认识到软件是一种组织良好、管理严密、各类人员协同配合、共同完成的工程 项目;3、推广使用在实践中总结出来的开发软件的成功的技术和方法,探索 更好更有效的技术和方法;4、开发和使用更好的软件工具。。总之,为了解决 软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软 件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一 门新兴学科。 1.2软件工程 1.2.1软件工程的介绍:软件工程是指导计算机软件开发和维护的一门工程学科。定 义:采用工程的概念、原理和方法来开发与维护软件,把经过时间考验而证明 正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出 高质量的软件并有效地维护它。 1.2.2软件工程的基本原理:1、用分阶段的生命周期计划严格管理2、坚持进行阶段 评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审 查6、开发小组的人员应该少而精7、承认不断改进软件工程实践的必要性 1.2.3 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集 合称为方法学,也称为范型。软件工程方法学包含3个要素方法、工具和过程。 目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学

相关文档
最新文档