软件工程考试总结_软件工程期末考试总结

2020-02-28 其他工作总结 下载本文

软件工程考试总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程期末考试总结”。

第一章 软件工程学概述

1.软件:是程序、数据及相关文档的完整集合。

2.软件危机:是指在计算机软件开发和维护过程中所遇到的一系列严重问题。

3.产生软件危机的原因

A.与软件本身的特点有关。管理和控制软件开发过程相当困难,软件较难维护,它规模庞大,程序复杂性将随着

程序规模的增加而呈指数上升。

B.和软件开发与维护的方法不正确有关。

4.消除软件危机的途径:

A.应该对计算机软件有一个正确认识。

B.认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同

发完成的工程项目。

C.充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法。

D.开发和使用更好的软件工具。

5.软件工程:是指导计算机软件开发和维护的一门工程学科。

6.软件工程的特征:

A.软件工程关注于大型程序的构造。

B.软件工程的中心课题是控制复杂性。

C.软件经常变化。

D.开发软件的效率非常重要。

E.和谐的合作是开发软件的关键。

F.软件必须有效地支持它的用户。

G.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。

7.软件工程学的方法学3要素:方法、工具、过程。

方法学:传统方法学、面向对象方法学。

8.软件生命周期:

软件定义、软件开发、运行维护三个过程。

软件定义包括问题定义、可行性研究、需求分析3个阶段。

软件开发包括总体设计、详细设计、编码和单元测试、综合测试4个阶段。

9.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

10.过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。

瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:传统的瀑布模型过于理想化,是由文档驱动的。

快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。

增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时

间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另

一个周期。

第二章 可行性研究(确定问题是否能解决)

1.可行性研究的三个方面:技术可行性:使用现有的技术能否实现该系统。

经济可行性:该系统的经济效应能否超过它的开发成本。

操作可行性:系统的操作方式在这个组织内是否行得通。

2.系统流程图:概括的描绘物理系统的传统工具。表达的是数据在系统各部件之间流动的情况。

基本符号:处理、输入输出、连接、换页连接、数据流。

3.数据流图DFD:一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。描绘逻辑过程。

基本符号:数据的源点/终点、变换数据的处理、数据存储、数据流。

数据流图的命名:先为数据流命名,再为处理命名。

数据字典:是关于数据信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据字典的内容:数据流、数据流分量(数据元素)、数据存储、处理。

定义数据的方法:顺序、选择、重复。

符号:=等价于、+和、[ ]或、{ }重复、()可选

4.成本估计技术:代码行技术、任务分解技术、自动估计成本技术。

第三章 需求分析(系统必须做什么)

1.需求分析的任务:

A.确定对系统的综合要求。

B.分析系统的数据要求。

C.导出系统的逻辑模型。

D.修正系统开发计划。

2.与用户沟通获取需求的方法:

A.访谈。

B.面向数据流自顶向下求精。(结构化分析方法)

C.简易的应用规格说明技术。

D.快速建立软件原型。

3.实体—联系图(E-R图)包含的3种信息:数据对象(矩形)、属性(圆角矩形)、联系(菱形)。

4.状态转换图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

状态:是任何可被观察到的系统行为模式,有初态、中间状态、终态。一张状态图中只能有一个初态,0到多个终态。

事件:引起系统做动作或(和)转换状态的控制信息。

符号:初态(实心圆)、终态(一对同心圆,内圆为实心圆)、状态转换(箭头)。

5.该阶段可用到的其他图形:层次方框图、Warnier图、IPO图、注:E—R图建立数据模型,数据流图建立功能模型,状态图建立行为模型。

第五章 总体设计(概括的说系统应该如何实现)将软件需求转化为数据结构和软件的系统结构。

1.基本任务:A.划分出组成系统的物理元素:程序、文件、数据库、人工过程和文档等。

B.设计软件的结构。也就是要确定系统中每个程序由哪些模块组成,以及这些模块相互间的关系。

2.阶段:系统设计阶段,确定系统的具体实现方案。

结构设计阶段:确定软件结构。

典型的总体设计过程包括9个步骤:

设想供选择的方案,选取合理的方案,推荐最佳方案,功能分解,设计软件结构,设计数据库,制定

测试计划,书写文档,审查和复审。

3.设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。

模块:由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代替它。

模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。

抽象:就是抽出事物的本质特征而暂时不考虑它们的细节。

逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。可看作是一项把一个时期内必须解决的种种问题按优先级排序的技术。

信息隐藏:设计和确定的模块,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。局部化:把一些关系密切的软件元素物理地放得彼此靠近。

模块的独立程度的定性标准度量:内聚、耦合。

耦合:是对一个软件结构内不同模块之间互连程度的度量。耦合由低程度到高程度分为:数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合。

内聚:标志着一个模块内各个元素彼此结合的紧密程度。底内聚有偶然内聚、逻辑内聚、时间内聚。中内聚包括

过程内聚和通信内聚。高内聚包括顺序内聚和功能内聚。

注:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

4.启发规则:

改进软件结构提高模块独立性。模块规模应该适中。深度、宽度、扇出和扇入都应适当。模块的作用域应该在控制域之内。力争降低模块接口的复杂程度。设计单入口单出口的模块。模块功能应该可以预测。

深度:表示软件结构中控制的层数。

宽度:软件结构内同一个层次上模块总数的最大值。

扇出:一个模块直接控制的模块数。

扇入:表示一个模块有多少个上级模块直接调用它。

注:设计的很好的软件结构,通常顶层扇出比较高,中层扇出较少,底层扇入到公共的使用模块中去。(底层模块有高扇入)

5.面向数据流的设计方法:

目标:给出设计软件结构的一个系统化的途径。

概念:把信息流映射策划那个软件结构,信息流的类型决定了映射的方。

信息流的类型:变换流和事务流。

变换流的特点:信息以“外部世界”的形式进入软件系统,经处理以后再以“外部世界”的形式离开系统。事务流的特点:数据沿输入通路到达一个处理,该处理根据输入数据的类型在若干个动作序列中选出一个来执行。

6.变换分析:把具有变换流特点的数据流图按预先确定的模式映射成软件结构。

第一步:复查基本系统模型。

第二步:复查并精化数据流图。

第三步:确定数据流图是变换特性还是事务特性。

第四步:确定输入流和输出流的边界,从而孤立出变化中心。

第五步:完成第一级分解。

第六步:完成第二次分解。

第七步:使用设计度量和启发规则对第一次分割得到的软件结构进一步精化。

第六章 详细设计(怎样具体地实现所要求的系统)即过程设计。通过对结构表示进行细化,得到软

件详细的数据结构和算法。

1.详细设计的内容:

用图表列出系统的每个程序,包括每个模块和子程序名称、标识符、层出结构关系。对程序的功能、性能、输入、输出、算法、流程、接口等进行描述

内容包括:程序描述:程序简要描述,意义和特点

功能:程序应具备的功能

性能:精度、灵活性和时间特性等

输入项

输出项

2.人机界面设计指南:

一般交互指南:涉及信息显示、数据输入和系统整体控制。

保持一致性,提供有意义的反馈,在执行有破坏性的动作之前要求用户确认,允许取消绝大多数

操作,减少在两次操作之间必须记忆的信息量,提高对话、移动和思考的效率,允许犯错误,按

功能对动作分类,并据此设计屏幕布局,提供对用户工作内容敏感的帮助设施,用简单动词或动

词短语作为命令名。

信息显示指南:只显示与当前工作内容有关的信息,不要用数据淹没用户,使用一致标记、标准的缩写和可预知的颜色,允许用户保持可视化的语境,产生有意义的出错信息,使用大小写、缩进和文本分组以帮

助理解,使用窗口分隔不同类型的信息,使用“模拟”显示表示信息,以使信息更容易被用户提取,高效率地使用显示屏。

数据输入指南:尽量减少用户的输入动作,保持信息显示和数据输入之间的一致性,允许用户自定义输入,交互

应该是灵活的,并且可调整成用户最喜欢的输入方式,交互应该是灵活的,并且可调整成用户最喜

欢的输入方式,让用户控制交互流,对所有输入动作都提供帮助,消除冗余的输入。

3.过程设计工具:分为图形、表格、语言。有程序流程图、盒图(N—S图)、PAD图(问题分析图)、判定表、判

定树、过程设计语言(PDL或伪码)。

4.程序复杂程度的定量度量:

McCabe方法:根据程序控制流的复杂程度度量度量程序的复杂度,结果称为环形复杂度。

流图:实质上是“退化了的”程序流程图。有结点(圆)、边(箭头)。

区域:边和结点围成的面积。

5.计算环形复杂度的方法:

A.区域数=环形复杂度。

B.流图G的环形复杂度V(G)=E—N+2,E为边数,N为结点数。

C.V(G)=P+1,P为判定结点的数目。

第七章 实现(编码和测试)

1.软件测试:就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键

步骤。

2.测试的目的:在软件投入生产性运行之前,尽可能多现的发软件在运行中的错误。

3.测试方法:黑盒测试、白盒测试。

黑盒测试:已经知道产品应有的功能,检验每个功能是否都能正常使用。也叫功能测试。

白盒测试:已经知道产品的内部工作过程,检验这些过程是否按照规格说明书的规定正常进行。也叫

结构测试。

以黑盒测试为主,白盒测试为辅。

4.测试步骤:模块测试、子系统测试、系统测试、验收测试,平行测试。

5.白盒测试技术:

逻辑覆盖:是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。

种类:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖。

基本路径测试:

一、根据过程设计结果画出相应流图。

二、计算流图的环境复杂度。

三、确定线路独立路径的基本组合。独立路径是指至少引入程序的一个新处理语句集合或一

个新条件路径,就是至少包含一条在定义该路径之前不曾用过的边。

独立路径数=环形复杂度

四、设计可强制执行基本集合中每条路径的测试用例。

6.调试:在测试发现错误之后排除错误的过程。

7.软件维护:在软件已交付使用之后,为了改正错误或者满足新的需要而修改软件的过程。分为改进性维护、适应性

维护、完善性维护、预防性维护。

决定软件可维护性的因素:可理解性、可测试性、可修改性、可移植性、可重用性。

8.软件项目管理:通过计划、组织和控制等一系列活动,合理的配置和使用各种资源,以达到既定目标的过程。管理内容:估算软件规模,工作量估算、进度计划、人员组织、质量保证、软件配置管理、能力成熟度模型。

《软件工程考试总结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
软件工程考试总结
点击下载文档
相关专题 软件工程期末考试总结 软件工程 考试 软件工程期末考试总结 软件工程 考试
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文