搜档网
当前位置:搜档网 › 软件工程期末复习知识点整理

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

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

复习整理

、绪论

1. 软件的定义

软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档)

2.软件工程的定义

是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正

确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件

的方法和技术。

3.软件危机的概念,及出现的原因

软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:

⑴软件规模越来越大,结构越来越复杂

⑵软件开发管理困难而复杂。

⑶软件开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

4.三种编程范型的特点

(1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构

+算法;着眼于程序的过程和基本控制结构,粒度最小

(2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对

象,粒度比较大

(3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合

整个领域的类对象,粒度最大

二、软件生存周期与软件过程

1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动

定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期

目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,

给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。

主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19)

2、软件生命周期划分为哪几个阶段

软件生命周期分为三个时期八个阶段:

软件定义:问题定义、可行性研究;

软件开发:需求分析、概要设计、详细设计、编码、测试;

软件运行:软件维护

3、瀑布模型的特点和缺陷

特点:线性模型,每一阶段必须完成规定的文档(阶段间的顺序性和依赖性)优点:

可强迫开发人员采用规范化的方法。

严格地规定了每个阶段必须提交的文档。

要求每个阶段交岀的所有产品都必须是经过验证的缺点

如果需求规格说明与用户需求之间有差异,很可能导致最终开发岀的软件产品不能真正满足用户的需要。(瀑布模型几乎完全依赖于书面的规格说明)

由于多数用户不熟悉计算机,系统分析员对用户的专业也了解不深,因而很难在在开发的初始阶段彻底弄清软件需求。

(瀑布模型只适用于项目开始时需求已确定的情况)

5、软件可行性研究的目的和内容

目的:是弄清待开发的项目是不是可能实现和值得进行

内容:经济可行性,技术可行性,运行可行性,法律可行性

三、结构化分析(重点)P71

1、结构化分析SA模型的组成

DFDffi

I MAS

DD

秋态■蚪鱼阎

STD图

拧制规格谜明CSFEC

2、结构化分析的基本步骤

1.了解当前系统的工作流程,获取当前系统的物理模型。

2.抽象岀当前系统的逻辑模型。

3.建立目标系统的逻辑模型。

4?作进一步补充和优化。

3、 绘制数据流图DFD 的注意点

① 父图与子图的平衡,即父图的输入输岀数据流与子图的输入输岀数据流一致 ② 区分局部文件和局部外部项 ③ 分解的速度不宜过快 ④ 按规则命名加工编号

⑤ 提高数据流图的易懂性,合理分解

决策表、决策树的绘制|

例题:邮寄包收费标准如下:若收件地点在 若

收件地点在1000公里以外, 部分每分斤加收0 . 5元。

请绘制收费的原始决策表, 4、 1000公里以内,普通件每公斤 2元,挂号件每公斤3元。 普通件

每公斤 2. 5元,挂号件每公斤3. 5元;若重量大于30公斤,超重 (重量用W 表示)

决策表(判定表):

决策规则号

]

3

4 5

6

7 &

条 件 普追件 Y N

Y N

Y

N

Y

N

U r

i30

Y Y Y Y N N N N 1000公里且内

Y

Y

N

N

1 Y Y

N

N

的 行

2W

X

X

3W

X

X

2.5W

X

3 5W

X

2. □X3(R(W -3O}XO. 5

X

3. 5X 30^(K-30) X0. 5

X

决策树(判定树)

2.5 W

3 W

3.5 W

2.5X30^(^30)X015

3, 5X30^(W>30)X{X5

5、 结构化的三种控制结构

顺序、选择、循环 DO_WHILE

6、 流程图、N-S 图和PDL 的特点,通过PDL 语言绘制流程图和N-S 图 例题:将三个

数从小到大排序

并对其进行优化,得到优化后的决策表,再绘制岀决策树

2 W

流程图:

7、 给定一个系统,用结构化分析方法进行分析,画出 DFD DD

丿冃学与试报寫过程中荷卩“记求叔名算”的MIX*该加工上躍星根林枫名屋(蛉名、H 弓G 价证巧-■踝也林[和幵考课程常、JT^b ;河h 经杜檢,股久 圮可、WilllUk^证

席报呂看,同刖记录到爭生霁也中〔准号低号、姓名、规程h 诗绘制谖拘1:的DFD 图.井写 用数制扫典中的竝据缺日

離揺

流词

Ml 数据腕黑Sh

加勒中亠姓桝-性别-片檢证寸T 磔胖名 斤占歸程-噸45 4斤芳讨间 考牛韶册=? 丫1笛』谍科

四、 面向对象及UML 1、 面向对象的基本特征

抽象、封装、继承、多态

2、 静态、动态 UML 图例(P84)

五、 需求工程与需求分析 1、 需求分析的任务与步骤

任务:(1)通过对问题及其环境的理解、分析和综合建立分析模型,

(2)在完全弄清用户对

软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达岀来。需求分析 的认为就是为了明确要开发的是一个什么样的系统,而不是去实现这个系统。 步骤:需求获取、需求建模、需求描述(编写

SRS 、需求验证

2、 需求分析和需求工程的困难性

客户说不清楚需求

人口

N-S 图:

正式抠宕单

君牛*旳

E 式那号证.

分析人员或客户理解有误

需求自身经常变动

3、面向对象需求模型组成

用例图、用例规约、补充规约、术语表

4、用例规约应该包含哪些内容?基本流和备选流的概念及区别(P117)

简瞇说明:衢哋介紹该用例的柞用和日的. 1

事件流;包括基本流和希选流'农小出浙冇对能的祜动阳L捏

特陳石求:描述与像用力弟咲杓非功能杵需求和设il哟束

前盍条件和肓遗条件v

衣帛■流指谨川例最1E常时?种场最冷沖弘流中,系址执厅啄列活功来响应霽片占提川的昵务毎个歩骤都需竖川麴了编号’以请楚地标旳步骤的光心顺序.

毎牛步骤的■徙内容川--何简朴的标題來概抵.使川读:职町通过浏览标趣快速的r解川關的I:密步

戦个用捌模型皓木忌述z后+在针对擁牛步骤说酬描述翦与者和系统上间的

篩选汇匕用于牺述用例扭讦过穆中的斤常成偶尔发牛的仙况,他和雄木流券I合起总能聘覆盖谨用机所

冇训能发牛的场忠

起点:谨备选流从爭件硫的娜一步开殆.

条件:蛊朴么条件会哋发该帚选流.

功作:系统在该务选流中会采取聊咗励作.

恢复:该备选流结東乩该I】」例应加啊缆续执行”

笛选谦的描述榕宜川j華木流槪.即需啖编匕井以标題槪述其内容?塢号前叩川前缀亠切,

臥示与堆本流的区別*

六、面向对象分析

1、面向对象分析的主要任务(P138)

首先要理解用户的需求,包括全面理解和分析用户需求,明确所开发的软件系统的职责,形成文件并规范地加以表述。

然后进行分析,提取类和对象,并结合分析进行建模。其基本步骤是:标识类,定义属性和方法;刻画类的层次;表示对象以及对象与对象之间的关系;为对象的行为建模。这些步骤肯反复进行,

直至完成建模。

2、面向对象分析的模型组成

3、软件设计的任务是什么?概要设计和详细设计的主要工作|

任务:将软件分析模型转变为考虑具体实现技术和平台的软件设计模型。

概要设计(结构设计):把一个软件需求转换为软件表示时,首先设计岀软件总的体系结构。

基本任务:

1)设计软件系统结构

2)进行数据结构及数据库的设计

3)编写概要设计的文档

4)评审

详细设计:为SC图中的每个模块确定采用的算法和块内数据结构,用选定的表达工具(流程图、N-S图、PAD

图、伪代码)给出清晰的描述。

基本任务:

1)为每个模块进行详细的算法设计

2)为模块内的数据结构进行设计

3)对数据库进行物理设计

4)其他设计

5)编写详细设计说明书

6)评审

七、软件设计

1、模块的定义

模块是一个拥有明确定义的、输岀和特性的程序实体。

模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成

一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

模块化设计是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。但又相互关联的模块。

2、什么是模块独立性?用什么来度量(低内聚高耦合)?

模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简

单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupling)。

3、耦合、内聚的定义,几种类型(P171)

内聚:从功能的角度对模块内部聚合能力的量度

低内聚(偶然性内聚、逻辑性内聚、时间性内聚),中内聚(过程性内聚、通信性内聚),高内聚

(顺序性内聚、功能性内聚)

耦合:对软件内部块间联系得到度量

弱耦合(非直接耦合、数据耦合、特征耦合),中耦合(控制耦合),较强耦合(外部耦合、公共

耦合),强耦合(内容耦合)

4、扇入、扇出的定义

扇入:一个模块被其他模块调用的个数

扇岀:一个模块调用其他模块的个数

八、编码和测试

1、四代语言的特点和典型代表

第一代也称机器语言,是计算机能直接识别和执行的语言。优点是无需翻译,占用内存少、执行速度快。缺点是随机而异,通用性差,而且因指令和数据都是二进制代码形式,难于阅读和记忆,

编码工作量大,难以维护。

第二代语言也叫汇编语言,是用助记符号来表示机器指令的符号指令的符号语言。优点是比机器语言易记。缺点同机器语言。

第三代语言还称高级语言,容易学习,通用性强,书写岀的程序比较短,便于推广和交流,是很理想的一种程序

设计语言。代表有C语言,C#语言。

第四代语言又叫面向应用的语言。主要特点是:非过程性、采用图形窗口和人机对话形式、基于数据库和“面向

对象”技术,易编程、易理解、易使用、易维护。代表有SQL关系数据查询语言,UNIX系统的shell语言。

2、变量命名规则

3、软件测试的基本任务

程序测试的是为了发现错误而执行程序的过程。

目的:发现程序的错误

任务:通过在计算机上执行程序,暴露程序中潜在的错误。

4、软件测试要经过哪些步骤(P254)?这些测试与软件开发各阶段之间有什么关系?

软件测试要经过的步骤是:单元测试-集成测试-确认测试-系统测试。

单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中

或算法中的错误。该阶段涉及编码和详细设计文档。

集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。

确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。

系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一

起进行测试。以确定软件是否可以支付使用。

5、测试与纠错有哪些区别?

测试的目的是发现程序错误;测试的任务是通过在计算机上执行程序,暴露程序中潜在的错误。纠错的目的是定

位和纠正错误;纠错的任务是软件故障,保证程序的可靠运行。

通常把一次程序执行需要的测试数据成为一个测试用例,每个测试用例产生一个相应的测试结果,如果它与期望

结果不符,便说明程序中存在错误,需要用纠错来改正。

6、程序员保证代码质量的手段?

编译器—静态检查工具—代码走查—单元测试

7、面向对象软件的测试策略(P261)

九、软件维护

1、软件维护的目的(P271)

软件维护的最终目的,是满足用户对已开发产品的性能与运行环境的不断提高的需求,进而延长软件

软件工程重点整理

软件工程重点 (吐血整理——林新发) 红色的是重点中的重点 前面数字是课本页码 第一章概论 1 什么是计算机软件 计算机软件指计算机系统中的程序及其文档 3软件的特点 (1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算 (2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大 (3)软件的使用没有硬件那样的机械磨损和老化问题 4软件的分类 (1)系统软件(如操作系统、编译程序等)、 (2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、 (3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等) 6软件工程定义 软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程 7生存周期 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期 软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护 12能力成熟度模型CMM(了解一下) 初始级、可重复级、已定义级、已管理级、优化级 18瀑布模型(重) 系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护 第二章系统工程 41系统工程的任务 (1)识别用户的要求,确定待开发软件的总体要求和范围,

(2)系统建模和模拟 (3)进行成本估算,做出进度安排 (4)进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。 (5)生成系统规格说明书 42可行性分析 (1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入) (2)技术可行性(风险分析、资源分析、技术分析) (3)法律可行性 第三章需求工程 48软件需求 指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 包括:功能需求、性能需求、用户或人的需求、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求 50需求获取方法与策略(重) 建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况 51 图3.2 53 创建用况模型的主要步骤 (1)确定谁会直接使用该系统,即参与者(Actor) (2)选取其中一个参与者 (3)定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况 (4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程 (5)描述该用况的基本过程 54需求分析原则(重) 1.必须能够表示和理解问题的信息域 2.必须能够定义软件将完成的功能 3.必须能够表示软件的行为(作为外部事件的结果) 4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节

软件工程问题整理版

1、软件危机定义、发生原因、常见表现,如避免软件危机? (1)软件危机定义:课本Page 8(开发和维护过程) (2)发生原因、常见表现:课本Page 8-9,练习册Page 1 (3)如避免:Page 10 (采用软件工程的法) 答案(由于大部分答案参考ppt,故仅供参考,下同) 软件危机定义:是指在计算机软件的开发和维护过程中所遇到的一系列重问题。 表现在: (1)对于软件开发的成本和进度的估计很不准确。 (2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。 (3)开发的软件可靠性差。 (4)软件通常没有适当的文档。 (5)软件的可维护性差。 (6)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 原因: (1)软件的规模愈发庞大; (2)软件开发的管理困难。 (3)成功的软件开发经验没被很好地应用。 (4)软件开发和维护中千金错误认识和法的形成可以归结与计算机发展早期软件开发的个体化特点。 (5)软件开发技术落后。 (6)生产式落后。 (7)开发工具落后,生产率提高缓慢。 如避免(参考,可以自己总结): 从软件开发的工程化法入手,即用现代工程的概念原理、技术和法去指导软件的开发、管理和维护,这就是软件工程思想和法。具体措施: (1)使用好的软件开发技术和法; (2)要有良好的组织、密的管理,各类人员协同配合,共同完成任务; (3)使用好的软件开发工具,提高软件生产率; (4)建立格的文档资料,重视软件开发过程的阶段评审。 2、软件生命期模型(软件生命期?)的组成,每个阶段的容? (1)组成:Page 21 (2)容:Page 22—25) 答案: 软件生存期定义: 一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存期。 软件生存期一般可分为以下阶段: (1)问题定义(2)可行性研究(3)需求分析(4)概要设计(总体设计) (5)详细设计(6)编码(7)测试(8)维护 也可以分为四个大的阶段:软件分析、软件设计、编码与测试、运行与维护

软件工程期末试题(含答案)解析

填空题(每空 1 分,共25 分) 1.软件生存周期一般可以划分为,问题定义、可行性研究、需求分析、设计、编码、测试 和运行和维护。 2.基于软件的功能划分,软件可以划分成___系统软件_、支撑软件、应用软件__三种。 3.可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性和开放方案 可行性等方面研究。 4.系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式 描绘系统里面的每个部件 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、加工、数据流和数据 存储文件。 6.结构化分析方法是面向_数据流_进行需求分析的方法。结构化分析方法使用_数据 流图DFD_与_ 数据字典_来描述。 7.继承性是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为 3 类,即_图示工具_、_设计语言_和_表格工具_。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:_审查__、复查和管理复审、___ 测试_。 10.大型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。单项选 择题(每小题2分,共20 分) 1.软件设计中划分模块的一个准则是( C )。 A、低内聚低耦合 B.低内聚高耦合 C.高内聚低耦合 D. 高内聚高耦合 2.Jackson 设计方法是由英国的M. Jackson 提出的,它是一种面向( C )的软件设计方法。 A 、对象 B.数据流 C.数据结构 D.控制结构 3.试判断下列叙述中,哪个(些)是正确的( C )。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B 、b C 、c D 、 b 和 c 4.( A )是用户和设计交换最频繁的方法。 A 、原型化方法B、瀑布模型方法 C. 螺旋模型方法D、构件组装模型 5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主 要保证是( C )。 A 、硬件环境 B 、软件开发的环境 C. 软件开发工具和软件开发的环境D 、开发人员的素质 6.20 世纪50 年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言 ( D )。 A、PASCAL B、VISUAL BASIC C. C++ D、汇编语言 7.软件测试的目的是?( D ) A 、证明软件的正确性 B. 找出软件系统中存在的所有错误 C.证明软件系统中存在错 误 D. 尽可能多的发现软件系统中的错误 8.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。A、程序的内 部逻辑 B 、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 9.软件维护工作的最主要部分是( C )。

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

软件工程导论-期末题库(完整版)

1.填空题 1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。 2.IPO图是_输入、处理和输出图_的简称,它是美国IBM公司发展完善起来的一种图形工具。 3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。 4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。 5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和_____系统测试(集成测试) ____ 6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。 7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。 8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。 9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。 10.实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的_独立性。 11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。 12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。 13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

期末软件工程资料整理

1.软件工程的基本原理? 答:基本原理包括3要素:方法,工具,过程;其中,方法是完成软件开发任务的技术方法回答怎样做的问题;工具是为运用方法提供自动半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,他是完成各任务的工作步骤。 2.RUP中有9个工作流,前6个为过程工作流,后3个为核心支持工作流程。 3.问答:P.32第2题 4.简述结构化范型和面向对象范型的要点,分析优缺点。 5.电话号码有几类:校内电话号码由4位数字组成,第1位不是0;校外电话分本市电话和外地电话,拨校外电话需先拨0,本市电话则再接着拨8位数字(第1位不是0),外地电话则拨3位区码再拨8位电话号码(第1位不是0)。 答案: 电话号码=[校内电话号码|校外电话号码] 校内电话号码=非零数字+3位数字 校外电话号码=[本市号码|外地号码] 本市号码=数字零+8位数字 外地号码=数字零+3位数字+8位数字 非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0 3位数字=3{数字}3 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9] 6.名词解释:第一范式,第二范式,第三范式 答:第一范式:每个属性都必须是原子值,仅仅是一个简单的值而不能含内部结构。 第二范式:满足第一范式条件,且每个关键字属性都由整个关键字决定。 第三范式:符合第二范式条件,每个关键字属性都仅由关键字决定,且一个费关键字属性不能仅仅是对另一个非关键字属性的进一步描述。 7.储蓄系统:储户填写的存款单或取款单由业务员输入系统,是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。 试用数据流图描绘下述系统的功能,并用实体-联系图描绘系统中的数据对象。 答案: 系统的数据流图如下图所示:

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

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

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

软件工程期末考试复习资料1

版权声明:本文版权归05112114、05112125 所 有,未经许可,任何任何媒体均不得改变其形 式,进行转载或摘录,违者必究! 软件工程期末考试复习资料一 (仅参考) 拟订人:超越吉他手、朱古力、哖_少オ輕狂第一章:软件工程的产生和发展有关复习资料 一、软件工程的定义: 1、软件危机的产生:软件危机的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。 2、软件危机主要表现:两个方面:①软件产品质量低劣,甚至开发过程就夭折 ②软件生产率低,不能满足需要 3、软件工程的三要素:①方法:完成软件开发各项任务的技术方法 ②工具:研究支撑软件开发方法的工具 ③过程:为开发高质量软件所规定的各项任务的工作步骤 4、软件工程研究的标准及目标: 标准:分为4个层次,国际标准、行业标准、企业规划、项目规划 目标:以较少的投资获取高质量的软件。有易于维护、低的开发成本、高性能、缩短开发期 5、软件工程研究的主要内容:以下两个方面:①软件开发方法、技术;软件开发工具及环境 ②软件管理技术、软件规范(国际规范) 7、软件工程学的目的:①以较少的投资获取高质量的软件 ②运用科学的方法和工程化的规范管理来指导软件开发 ③克服软件危机 8、软件工程的基本原则:如下4条基本原则 ①必须认识软件需求的变动性,采取适当措施来保证结果产品能忠实地满足用户需求 ②稳妥的设计方法大大地方便了软件开发,以达到软件工程的目标 ③软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用 ④有效的软件工程只有在对软件过程进行有效管理的情况下才能实现 9、软件工程过程及特性:是指在软件工具的支持下,所进行的一系列软件工程活动 包括4类基本过程:1)软件规格说明书2)软件开发3)软件确认4)软件演进 特性:可理解性、可见性、可靠性、可支持性、可维护性、可接受性、开发效率和健壮性等。 二、软件与软件生存周期 1、软件的概念和特点 1)概念:软件是程序以及开发使用维护程序所需的所有文档 2)软件的构成:由应用程序、系统程序、面向用户的文档及面向开发者的文档4部分构成即:软件=程序+文档 3)特点:①软件是一种逻辑实体,不是具体的物理实体

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

复习整理 一、绪论 1.软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 ●是指导计算机软件开发和维护的一门工程学科; ●采用工程化的原理及方法对软件进行计划、开发和维护; ●把证明正确的管理技术和最好技术综合运用到软件开发中; ●研究经济地开发出高质量的软件方法和技术; ●研究有效维护软件的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1) 过程式编程范型:把程序理解为一组被动的数据和一组能 动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小 (2) 面向对象编程范型:数据及其操作被封装在对象中;程序 =对象+消息;着眼于程序中的对象,粒度比较大 (3) 基于构件技术的编程范型:构件是通用的、可复用的对象 类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大 二、软件生存周期及软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么, 有哪几个主要活动 ●定义:一个软件从开始立项起,到废弃不用止,统称为软件的 生存周期 ●目的:软件生存周期划分为计划、开发和运行3个时期;把整 个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的 任务,就能够化简每一步的工作内容,使因为软件规模而增长 而大大增加了软件复杂性变得较易控制和管理。 ●主要活动:需求分析、软件分析、软件设计、编码、软件测试、 运行维护(P19) 2、软件生命周期划分为哪几个阶段

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件工程整理

第一章 软件工程研究的主要内容:为了在有限的资金、资源和时间条件下开发满足客户要求的高质量软件,需要研究与软件开发和管理相关的模型、方法、技术等。 在《计算机科学技术百科全书》中,对计算机软件作出如下定义:计算机软件指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据或信息。处理规则一般指处理的动作和步骤。文档是为了便于了解程序所需的阐述性资料。 软件工程的定义:⑴IEEE在软件工程术语汇编中的定义:①软件工程是将系统化的的方法用于软件的开发、运行和维护,即将工程化应用于软件;②在①中所述方法的研究⑵软件工程是应用计算机科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源等管理。 软件工程的框架:目标,过程和原则 软件工程目标是指生产具有正确性、可用性、和开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜指软件开发、运行的整个开销满足用户要求的程度。 软件工程原则包括围绕工程设计、工程支付和工程管理所提出的以下4条基本原则 (1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑 (4)重视软件工程的管理 软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。 软件生存周期分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护 软件过程是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。 软件过程是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。软件过程有3层含义:一是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合;二是整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体;三是工程含义,即指解决软件过程的工程,应用软件工程的原则、方法来构造软件过程模型、并结合软件产品的具体要求进行实例化,以及在用户环境,并结合软件产品的具体要求进行实例化,以及在用户环境下运作,以此进一步提高软件生产率,降低成本。 软件过程模型也称软件开发模型,是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有:瀑布模型、演化模型(如增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 瀑布模型是1970年由W.Royce提出的,它给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终得到所开发的软件产品。其特征是:接受上一阶段活动的结果作为本阶段活动的输入 依据上一阶段活动的结果实施本阶段应完成的活动 对本阶段的活动进行评审 将本阶段活动的结果作为输出,传递给下一阶段 瀑布模型也逐渐暴露出它的不足(1)不少软件的需求存在着不确定性,(2)如果发现不满足客户需求的问题,那么修改软件的代价是巨大的 演化模型,是从构造初始的原型出发,逐步将其演化成最终软件产品的过程。演化模型适用于对软件需求缺乏准确认识的情况。典型的演化模型有:增量模型、原型模型、螺旋模型 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 增量模型融合了瀑布模型的基本成分和演化模型的迭代特征,强调每一次增量都发布一个可运行的产品。特征:(1)适用于需求经常发生变化的软件开发(2)在市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品,此时也适宜用增量模型进行开发(3)能有计划的管理技术风险

软件工程期末复习资料非常全

1、下列哪一模型是软件的基础模型 A.瀑布模型 B.快速原型 C.增量模型 D.螺旋模型 2、划分软件生存周期的阶段时所应遵循的基本原则是 A.各阶段的任务尽可能相对独立 B.各阶段的任务在时间上连续 C.各阶段的任务尽可能相关性 D.各阶段的任务在时间上相对独立 3、下列哪个办法不属于解决软件危机的途径之一 A.采用软件工程的解决途径 B.研制新一代智能计算机 C.采用面向对象的软件设计方法 D.大力扶持软件企业 4、下列哪个不属于软件工程的内涵之一 A.扶持培养软件高手的学院 B.开发既可靠又能有效运行的软件 C.应用完善的科学与工程原理 D.经济地开发软件 5.造成大型软件开发困难的根本原因在于 A.开发人员缺乏足够的开发经验 B.项目开发进度不合理 C.软件系统的复杂性 D.对软件开发的资金投入不足 6.软件会逐渐退化而不会磨损,其原因在于 A.软件备件很难订购 B.不断的变更使组件接口之间引起错误

C.软件错误在经常使用之后会逐渐增加 D.软件通常暴露在恶劣的环境下 7.下面说法正确的是 A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化 B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产 C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功 D.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制 9.软件危机的主要原因是 A.软件本身的特点及开发方法。 B.软件工具落后。 C.软件生产能力不足。 D.对软件的认识不够。 10.下面的描述正确的是 A.软件质量是在开发过程中逐渐构建起来的。

软件工程知识点

第一章软件工程概述 一、软件的定义和特性(P2—P3) 定义:软件=程序+数据+文档 程序:按照事先设计的功能和性能要求执行的指令或语句序列 数据:程序能正常操纵信息的数据结构 文档:描述程序操作和使用的文档 特性: (1)软件是一种逻辑实体,具有抽象性,不是一般的物理实体; (2)软件的成产与硬件存在某些相同点,但有根本上的不同,软件开发是人的智力的高度发挥,而不是传统意义上的制造,它更依赖于开发人员的素质,智力,人员和组合,合作和管理; (3)软件维护与硬件维修有着本质的差别,软件维护没有硬件维护那样有可替换的标准零件; (4)软件在运行和使用期间没有硬件那样的机械磨损,老化问题,但存在退化问题; (5)基于构件的开发方法由于其自身的特点越来越受到人们的重视,这些技术可以减少开发时间、提高质量,并提高复用水平。 * 掌握P4图1-2(b)软件失效率曲线 二、计算机软件的发展经历了几个阶段?各有何特征?(P1—P2) 共经历了四个阶段 特征:第一阶段——程序规模小且主要采用个体工作方式,开发的系统大多采用批处理技术 第二阶段——引入人机交互的概念,实时系统出现,产生了第一代数据库管理系统,程序编制采用了合作的工作方式,出现了早期的软件危机 第三阶段——分布式系统出现,嵌入式系统得到广泛应用,低成本硬件 第四阶段——强大的桌面系统和计算机网络迅速发展时期,面向对象技术得到广泛应用,人工智能技术和专家系统开始应用于软件。 三、什么是软件危机?其产生的原因是什么? 定义:软件危机是指由于落后的软件生产方式无法满足迅速增长的计算机软件应用需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。(P4) 原因:(P5) (1)用户对软件需求的描述不准确、不全面,甚至有错误,以及在开发过程中,不断提出或者修改需求; (2)用户和开发人员对软件需求的理解存在差异,导致所开发的软件产品和用户需求不一致; (3)大型软件项目需要组织一定的人力共同完成,各类人员的信息交流不及时、不准确,有时还可能产生误解,软件开发人员对大型软件缺少开发经验,管理人员缺少相应的管理经验; (4)软件开发人员不能有、独立自主的处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误; (5)开发技术落后,缺乏有效的方法学和工具方面的支持,过分依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化 (6)软件产品的特殊性和人类智力的局限性,导致人们无法处理“复杂问题”,因为软件是逻辑产品,软件开发进展情况较难衡量、软件开发质量难以评价、管理和控制软件开发过程相当困难。 四、什么是软件工程?它的目标和内容是什么? 定义:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并对方法的研究。(P6) 目标:在给定的成本和进度前提下,开发出具有可修改性、可理解性、可维护性、有效性、可靠性、可适用性、可重用性、可移植性、可跟踪性和互操作性并且满足用户需求的软件产品。(P7) 内容:主要内容包括软件开发技术和软件工程管理两方面。(P6) 要素:方法,工具,过程 五、什么是软件生存周期?它有哪几个活动? 定义:(software life cycle)把软件产品从形成概念开始,经过定义、开发、使用和维护直到最后退役的全过程。 活动:软件定义、软件开发、软件使用维护和退役(P9)

软件工程复习题复习重点及答案

软件工程复习重点 一、选择题 1、软件工程三要素是指( B )P8 A、技术、方法和工具 B、方法、工具和过程 C、方法、对象和类 D、过程、模型、方法 2、瀑布模型本质上是一种( A )。P23 A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 3、结构化设计是一种应用最广泛的系统设计方法,是以( B )为基础,自顶向下,求精和模块化的过 程。P79 A、数据流 B、数据流图 C、数据库 D、数据结构 4、概要设计的任务是设计系统的( B物理模型)P70 A、逻辑模型 B、物理模型 C、概念模型 D、程序流程图 5、描述软件结构的工具有( A模块结构图) A、模块结构图 B、PAD图 C、数据流程图 D、程序 6、进行需求分析可以使用多种工具,但( C )是不适用的。 A、数据流程图 B、判定表 C、PAD图(详细设计) D、数据字典 7、可行性研究要进行的需求分析和设计应该是( C )。 A、详细的 B、全面的 C、简化的、压缩的 D、彻底的 8、软件生命周期由( C )三个时期组成。 A、概要设计、详细设计和系统实现 B、可行性分析、系统设计和编码 C、定义、开发和运行维护 D、分析、设计和测试 9、以下( D )不是模块。对象是一个实体 A、过程 B、程序 C、函数 D、对象 10、程序流程图、N-S图和PAD图是( B )使用的算法表达工具。 A、设计阶段的概要设计 B、设计阶段的详细设计 C、编码阶段 D、测试阶段 11、一个模块直接控制(调用)的下层模块的数目称为模块的( B扇出)P78 A、扇入数 B、扇出数 C、宽度 D、作用域 12、下列工具哪一个是需求分析阶段常用工具?( D ) A、PAD B、PFD C、N-S D、DFD数据流程图 需求分析常用的是数据流程图和数据字典 13、为了提高测试的效率,应该( D) A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据库 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 14、成功的测试是指( B发现程序的错误) A、运行测试实例后未发现错误项 B、发现程序的错误 C、证明程序正确 D、改正程序的错误 15、软件工程中只根据程序的功能说明而不关心程序内部的逻辑结构的测试方法,称为( C黑盒测试)

软件工程期末复习资料

软件工程复习题1 一、选择题,请从四个可选项中选择正确答案。 1.以下哪一项不是软件危机的表现形式()? A.成本高 B.生产率低 C.技术发展快 D.质量得不到保证 2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。()A.演化模型 B.喷泉模型 C.原型模型 D.螺旋模型 3.可行性研究的目的不包括() A.分析开发系统的必要性 B.确定系统建模的方案 C.分析系统风险 D.确定是否值得开发系统 , 4.可行性分析研究的费用大约是项目总经费的()。 % % % % 5.在E-R 模型中,包含以下基本成分()。 A.数据、对象、实体 B.控制、联系、对象 C.实体、联系、属性 D.实体、属性、联系 6.软件需求分析产生一个重要文档是()。 A.软件维护说明书 B.需求规格说明书 C.可行性报告 D.初步用户手册 、 7.内聚程度较低的是()。 A.通信内聚 B.过程内聚 C.顺序内聚 D.时间内聚

8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是() A.把软件划分成模块B确定模块之间的调用关系 C.确定各个模块的功能 D.设计每个模块的伪代码 9.UML 语言支持的建模方式不包括有()。 A.静态建模 B.动态建模 C.模块化建模 D.功能建模 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. 效益分析

软件工程期末复习资料

软件工程复习资料 一、选择题,请从四个可选项中选择正确答案。 1. 软件工程学科出现的主要原因是()。 A. 计算机的发展 B. 其他工程科学的影响 C. 软件危机的出现 D. 程序设计方法学的影响 2. ()是职业软件工程师的必要条件。 A?自律、善于沟通、具有一定的软件技能 B.编程速度快 C.熟悉众多的软件环境 D.语言天赋 3. 在E-R模型中,包含以下基本成分()。 A. 数据、对象、实体 B.控制、联系、对象 C.实体、属性、联系 D.实体、数据、联系 4?软件需求分析产生一个重要文档是()。 A. 软件维护说明书 B. 需求规格说明书 C.可行性报告 D. 初步用户手册 5.聚程度较低的是()。 A. 通信聚 B.过程聚 C.顺序聚 D. 时间聚 6?概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是() A. 把软件划分成模块B 确定模块之间的调用关系 C.确定各个模块的功能 D. 设计每个模块的伪代码 7、程序流程图与数据流程图的关系()。 A. 不确定B ?数据流程图可以转换成程序流程图 C.数据调用关系 D .程序流程图可以转换成数据流程图 8. 对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。 A .结合B.隐藏C.封装D.抽象 9.类有3种类型,即()° A.边界类、实体类、控制类 B.实体类、控制类、界面类

C.控制类、实体类、虚类 D.界面类、控制类、公共类

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.生产无故障软件 15、针对需求不确定的软件开发,比较好的模型是()。 A?快速原型化模型 B.瀑布模型C.软件成熟度模型 D.系统化模型 16、软件结构图中没有()元素。 A ?模块 B ?调用参数 C ?返回结果 D ?判断 17、结构化设计方法划分模块的原则是()。 A.模块扇出小于5 B .模块扇入小于5 C .低耦合,高聚D .模块深度小于7 18、配置视图体现了系统的实现环境,反映系统的()。 A.逻辑架构 B.物理架构 C.组成结构 D.体系结构19、角色可以有四种类型:系统的使用者,硬件设备,外部系统和() A.数据库 B.接口 C.对象 D.时间 20、功能模型用于表达系统的需求, 为软件的进一步分析和设计打下基础。在面向对象方法中,由()实现。 A.场景描述 B.活动图和场景描述 C.用例图和场景描述 D.交互图和场景描述 21 ?结构化程序设计主要强调的是()。 A.程序的规模 B. 程序效率 C. 程序语言的先进性 D.程序易读性 22、对用例进行设计,发现实现用例功能的(),确定类之间的关系。 A.算法 B.业务流程 C.数据结构 D.关键类 23、框架是一组可用于不同应用的()的集合。

相关主题