软件工程复习

发布 2022-01-11 22:34:28 阅读 5704

第一章。

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.8,需了解。见19页。

9、 原型模型:

优点:适用用户产生新的需求的不确定性和变化,其目的是能快速、低成本的构建原型。

10、 敏捷开发:

4个敏捷软件开发的价值观:1. 个人和交互高于过程和工具 2. 可运行软件高于详尽的文档 3. 与客户协作高于合同谈判 4. 对变更及时做出反应高于遵循计划。

11、计算机辅助软件工程(case)是指使用计算机及相关的软件工具辅助软件开发、维护、管理等过程中各项活动的实施,以确保这些活动能高效率、高质量地进行。

第三章。1. 软件需求包括:

功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能性需求。

2. 需求管理:是一组用于帮助项目组在项目进展中的任何时候去标识、控制和跟踪需求的活动。

第四章。软件设计的任务:1、数据/类设计;2、体系结构设计;3、接口设计;4、部件级设计。

1. 软件设计4原则:软件设计人员通常采用抽象与逐步求精、模块化和信息隐藏等原则。

2. 模块独立性的衡量指标:内聚度与耦合度。

3. 内聚,包括7种类型:巧合内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

内聚性高低。

强模块独立性弱。

功能单一功能分散。

巧合内聚: 将几个模块中没有明确表现出独立功能的相同程序**段独立出来建立的模块称为巧合内聚。

逻辑内聚是指完成一组逻辑相关任务的模块,调用改模块时,由传送给模块的控制型参数来确定改模块改执行哪一种功能。

功能内聚:指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割。

4. 耦合,耦合的类型:

低耦合性高

强模块独立性弱。

公共耦合:若一组模块都访问同一个公共数据环境,则他们之间的耦合就成为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

数据耦合:两个模块之间仅通过参数表达传递简单数据;

第五章。1. 结构化分析的过程,分成4个步骤:

(1)理解当前的现实环境,获得当前系统的具体模型(物理模型)。

(2)从当前系统的具体模型抽象出当前系统的逻辑模型。

(3)分析目标系统与当前系统逻辑上得差别,建立目标系统的逻辑模型。

(4)为目标系统的逻辑模型作补充。

2. 数据流图p88

3 数据守恒,包括两种情况:第一种情况是指一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直接获得,或者能通过该加工的处理而产生。第二种情况是加工未使用其输入数据流中的某些数据项。

4.数据字典使用的描述符号。

…,…或 [a,b]表示a或b ;

…|…或 [a|b] 表示a或b;

…} 重复 表示a重复0或多次;

…} 重复 (下3上8)表示a重复3到8次;

…) 可选 (a)表示a重复0或1次。

5. 结构化语言。p111

6. 加工逻辑的描述方法主要有:结构化语言、判定表、判定树。 判定树是判定表的变种,本质上和判定表相同。p114

7. 结构化设计的步骤:

(1)建立初始结构图 (2)对结构图的改进 (3)书写设计文档 (4)设计评审。

8. 从数据流图映射到结构图的步骤如下:

(1)复审和精化数据流图 (2)确定数据流图的类型 (3)将dfd映射成初始结构图。

(4)改进初始结构图。

第7章:用况建模步骤。

1、定义系统;2、确定执行者;3、确定用况; 4、描述用况; 5、定义用况间的关系;6、确认模型。

一:视图分为4个主题域:结构化,动态的,物理的,模型管理。

二:用况特征:p168

1.用况总是被执行者启动的,执行者必须直接或间接地指示系统去执行用况。

2.用况向执行者提供值,这些值必须是可识别的。

3.用况是完整的,一个用况必须是一个完整的描述。

三:聚集和组合p184

聚集是表示整体-部分关系的一种关联,它的“部分”对象可以是任意“整体”对象的一部分。

组合是一种更强形式的关联,代表整体的组合对象有管理它的部分对象的特有责任,如部分对象的分配和解除分配。

四:泳道:p201

一幅活**可划分成若干个矩形区,每个矩形区为一个泳道,泳道名放在矩形区的顶端。通常根据责任把活动组织到不同的泳道中,它能清楚地表明动作在**执行(在哪个对象中),或者表明一个组织哪部分工作(一个动作)被执行。

第9章:一:p236

人机界面分为:语言界面,图形用户界面,直接操纵用户界面,多**用户界面,多通道用户界面。

二:**原则:1、让用户拥有控制权; 2、减少用户的记忆负担; 3、保持界面一致。

1.让用户拥有控制权:

1),交互模式的定义不能强迫用户进入不必要的或不希望的动作方式。

2)提供灵活交互。

3)允许用户交互可以被中断或撤销。

4)当技术级别增长时可以使交互流水化允许定制交互。

5)使用户隔离内部技术细节。

第10章:一:

程序设计语言包含3方面,语法,语义和语用。

(语法:用来表示构成语言的各个记号之间的组合规则,是构成语言结构正确成分所需遵循的规则集合。

for(表达式1;表达式2;表达式3)语句。

语法中不涉及这些记号的含义,也不涉及使用者。)

二:程序设计语言选择考虑的因素有:

1.项目所属的领域。

2.算法和计算的复杂性。

3.软件执行的环境。

4.用户需求,特别是性能上的考虑与实现的条件。

5.数据结构的复杂性。

6.软件开发的知识水平和心理因素。

7.可用的编译器与交叉编译器。

三 、程序设计风格包括4个方面:源程序文档化、数据说明、语句结构和输入输出。

第十一章。一、软件测试的目的。

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

2、一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试用例。

3、一个成功的测试是指揭示了迄今为尚未发现的错误的测试。

二、白盒测试又称结构测试。

白盒测试主要用于对程序模块的测试,包括:

1、程序模块中的所有独立路径至少执行一次。

2、对所有逻辑判定的取值(“真”与“假”)都至少测试一次。

3、在上下边界及可操作范围内运行所有循环。

4、测试内部数据结构的有效性等。

三、黑盒测试又称行为测试。

黑盒测试可用于各种测试,它试图发现以下类型的错误:

1、 不正确或遗漏的功能。

2、 接口错误,如输入输出参数的个数、类型等。

3、 数据结构错误或外部信息(如外部数据库)访问错误。

4、 性能错误。

5、 初始化和终止错误。

四、逻辑覆盖测试是一种基本的白盒测试方法,主要考察使用测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖。

五、黑盒测试是依据软件的需求规约,检查程序的功能是否符合需求规约的要求。主要的黑盒测试方法有:等价类划分,边界值分析,比较测试,错误猜测和应图方法。

v模型:系统工程系统测试。

需求分析确认测试。

软件工程复习

单选填空简答思考题。1 传统的软件瀑布生命模型包括哪六个方面?需求 分析 设计 实现 交付后维护 退役2 传统瀑布生命模型的中交付后维护包括哪三种?改正性维护 适应性维护 完善性维护3 现代维护和传统维护的观点有何不同?1 传统维护的观点是先开发后维护。2 现代维护的观点是无论是在软件安装前还是安装...

软件工程复习

软件工程复习资料。备注 1.老师反复强调我们之前做过的作业要熟练掌握 需求陈述 实验课画的模型 自己画。的数据流图 2 蓝颜色的字都是老师上课补充的,还有很多需要自己去补充,欢迎修正完善。核心问题 在考试做大是要表述清楚详细,关。键词要有 问题定义 专用名词表要解决的问题是什么?达要准确,不能更改 ...

软件工程 复习

1.概念 软件危机是指在计算机软件开发 使用与维护过程中遇到的一系列严重问题。2.为什么会产生软件危机?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致使软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。3.软件危机的表现 经费预算经常突破...