第一篇:软件工程考试总结范文
第一章 软件工程学概述
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.软件项目管理:通过计划、组织和控制等一系列活动,合理的配置和使用各种资源,以达到既定目标的过程。管理内容:估算软件规模,工作量估算、进度计划、人员组织、质量保证、软件配置管理、能力成熟度模型。
第二篇:软件工程考试总结
2.说明结构化程序设计的主要思想是什么? 答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单入口、单出口来构造程序。结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。结构化程序设计方法的基本要点是: 1)采用自顶向下、逐步求精的程序设计方法2)使用三种基本控制结构构造程序 3)主程序员组的组织形式。
3.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?答:(1)单元测试,测试对象单元模块(2)集成测试,测试对象为组装后的程序模块(3)确认测试,测试对象为可运行的目标软件系统
4.需求分析与软件设计二个阶段任务的主要区别是什么? 答:需求分析定义软件的用户需求,即定义待开发软件能做什么软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件 5.说明软件测试和调试的目的有何区别?
答:测试的目的是判断和发现软件是否有错误 调试的目的是定位软件错误并纠正错误。
7、白盒法:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。白盒法也不可能进行穷举测试。
8、黑盒法:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依照需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试
9、面向对象设计:是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。
10、结构化设计:面向数据流的设计是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此又称结构化设计(SD)。
11、结构化分析:是根据分解与抽象的原则,按照系统中数据处理的流程,用数据图来建立系统的功能模型,从而完成需求分析工作
结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
结构化分析方法是面向____数据流___进行需求分析的方法。结构化分析方法使用____数据字典______与____加工说明___来描述。
13、系统流程图:是描述物理系统的传统工具,它用图形符号来表示系统中的各个元素,例如人工处理、数据处理、数据库、文件、设备等。它表达了系统中各个元素之间的信息流动的情况。4.软件生存周期
软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
2、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点? ㈠等价类划分。等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。㈡边界值分析。该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。㈢错误推测。错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例
3,Gantt图是历史悠久,应用广泛的制定进度的计划的工具。形象的描绘任务分解情况,以及每个子任务的开始时间和结束时间,具有直观简明,容易掌握,容易绘制的优点。缺点1不能显式描绘各项作业依赖关系2进度的关键部分不明确,难于确定哪些是主攻和主控3有潜力的部分不明确,造成浪费。工程网络 0分软件危机定义和产生的因有哪些?
当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加
1、可行性研究的任务是什么? 首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
2、需求分析的任务是什么?
需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。
需求分析是指,开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
3、概要设计的定义和基本任务是什么?
进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反应在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件的概要设计或结构设计。①采用某种设计方法,将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确定模块之间的调用关系。④确定模块之间的接口,即模块之间传递的信息。⑤评价模块结构的质量。⑵数据结构及数据库设计,汉数据结构的设计及数据库的设计。⑶编写概要设计文档。主要有:概要设计说明书;数据库设计说明书;用户手册;修订测试计划。⑷评审
4、详细设计的基本任务是什么?有哪几种描述方法? 详细设计是软件设计的第二阶段,其基本任务有:为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据库的物理结构;其它设计,根据软件系统类型,还可能要进行代码设计、输入/输出格式设计、人机对话设计;编写详细设计说明书;评审。详细描述处理过程常用三种工具:图形、表格和语言。如结构化程序流程图、盒图和问题分析图。IPO图也是详细设计的主要工具之一。表格工具如判定表可作为详细设计中描述逻辑条件复杂的算法。过程设计语言(PDL)是一种用于描述模块算法设计和处理细节的语言工具。
能力成熟度模型(CMM)用于评价软件机构的软件过程能力成熟度德模型 文档:程序开发使用和维护所常用的图文资料
2衡量模块独立性的两个定性的标准是内聚和耦合。耦合是指对一个软件结构内不同模块彼此之间互相依赖的紧密程度。内聚标志一个模块内各元素彼此的紧密1简述两种不同集成测试的比较:自顶向下测试法主要,优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口的错误,自顶向下的缺点是需要存根程序,可能遇到与此相联系的测试困难,底层关键模块中的错误发现的较晚,而且用这种方法不能展开人力。自底向下正好相反。
影响维护的因素:可理解性,可测试性,可修改性,可移植性,重用性
总体设计的九个阶段:1设想供选择的方案,2选择合适的方案,3推荐最佳方案,4功能分解,5设计软件结构 6设计数据库,7制定测试计划,8书写文档,9审查和复查
软件工程:是指导计算机软件开发和维护的工程学科,采用工程概念,原理,技术和方法来开发和维护软件,吧经过实践考验而证明的管理技术和当前能够得到的最好的技术方法结合起来。要素是方法,工具,过程 系统流程图是描绘物理系统的传统工具,他的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。表达的是数据在系统各部件的流动情况,而不是对数据进行加工处理的控制过程。
3个子模型和5个层次:静态结构(对象模型)交互次序(动态模型)数据变换(功能模型)主题层,类和对象层,结构层,属性层,服务层
结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
结构化设计对数据流有两种分析方法,他们是变换分析设计和事务分析设计。质量保证是有计划的和系统性的活动,它对部件或产品满足确定的技术需求提供足够的信心。
软件质量保证措施(SQA)基于非执行的测试(复审和评审)基于执行的测试(软件测试)和程序正确性证明
数据字典的内容:数据流,数据流分量,数据存储,数据处理
数据流图的内容:数据流,数据存储,数据处理,数据的原点和终点。
数据流图(DFD)是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中经受的变换。
可行性研究中,数据流图,系统流程图,数据字典
需求分析:访谈,实体联系图,状态转换图,层次方框图,Warnier图,IPO图 总体设计:层次图和HIPO图,结构图
详细设计:过程设计中有程序流程图,盒图,PAD图,判定表,判定树,过程设计语言。面向数据结构的设计方法:Jackson图程序复杂度的定量MaCabe方法和Halstead方法
设计人机界面的过程中4个问题,系统响应时间,用户帮助设施,出错信息处理和命令交互
耦合:尽量使用数据耦合少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合
内聚:偶然内聚,逻辑内聚时间内聚,中内聚有过程内聚通信内聚,高内聚,功能内聚,顺序内聚
模块化就是把程序划分为独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集起来构成一个整体,可以完成指定的功能满足用户的需求 状态转换图通过描绘系统状态及引起系统状态转换的事件,来表示系统的行为
5.软件配置管理,简称SCM,它用于整个软件工程过程。其主要目标是:标识变更;控制变更;确保变更正确地实现;报告有关变更。SCM是一组管理整个软件生存期各阶段中变更的活动。
Jackson的画法:
1定输入和输出数据结构
2分析确定在输入和输出数据结构中有对应关系的数据单元,最高层输入和输出相对应等有其他。
3从数据结构图导出程序结构图
4列出所有的操作和条件,并把它们分配到程序结构图的适当位置。5最后用伪码表示程序处理过程 盒图的特点:
1功能域明确,可以从盒图上一眼看出来 2不可能任意转移控制
3很容易确定局部和全程数据的作用域
4很容易表现嵌套关系,也可以表示模块的层次结构。PAD图:
1使用表示结构化控制结构的PAD符号结构所设计出来的程序必然是结构化程序。
2PAD图所描绘的程序结构非常清晰
3PAD图表现程序逻辑,易读,易懂,易记 4,容易将PAD图转换成高级语言源程序
5即可用于表示程序逻辑,也可用于描绘数据结构 6PAD的符号支持自顶向下,逐步求精方法
第三篇:软件工程考试
软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理方法 软件工程三要素:方法、工具和过程
软件工程的内容:软件开发技术和软件开发管理两个方面
可行性研究方面:技术可行性经济可行性操作可行性法律可行性
IT项目可行性研究审计的概念:事前对IT项目从技术和经济两个方而进行的详细论证,涉及
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.包括(1)数据流(2)数据元素(3)数据存储(4)处理 验证软件需求的正确性:(1)一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。(2)完整性: 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能(3)现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。(4)有效性: 必须证明需求是正确有效的,确实能解决用户面对的问题。
软件设计过程有:1数据设计:将实体 – 关系图中描述的对象和关系,以及数据词典中描述的详细数据内容转化为数据结构的定义。2总体结构(系统结构)设计: 定义软件系统各主要成份之间的关系。3过程设计: 把结构成份转换成软件的过程性描述。4接口设计:定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。软件设计方法:结构化设计方法(SD)面向数据结构的设计方法(JSD方法)面向对象的设计方法(OOD)
软件设计分两个阶段完成:结构设计:结构设计是总体设计阶段的任务。结构设计确定程序由哪些模块组成,以及这些模块之间的关系。过程设计:确定每个模块的处理过程
结构程序设计:一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构
软件测试:是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷的过程 黑盒法(黑盒技术是把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求 白盒法(白盒技术):是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。驱动模块:驱动模块是用来模拟被测模块的上级调用模块的模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结果并输出。
桩模块:桩模块用来代替被测试模块所调用的模块。它的作用是返回被测模块所需的信息。单元测试::单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
集成测试:是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试,故也称组装测试或联合测试。
确认测试:又称有效性测试。是为了检查软件的功能与性能是否与需求规格说明书中确定的指标相符合所进行的测试
单元测试内容①模块接口②局部数据结构③重要的执行路径④错误处理⑤边界条件。调试的目的确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)调试的技术手段有简单的调试方法、归纳法、演绎法和回溯法等 软件可维护性:软件能够被理解、校正、适应及增强功能的容易程度
为了保证软件的可维护性,需要做哪些质量保证检查?(1)在检查点进行检查。检查点是指软件开发的每一个阶段的终点。(2)验收检查。验收检查是一个特殊的检查点的检查,它是把软件从开发转移到维护的最后一次检查。(3)周期性的维护检查(4)对软件包的检查。好的文档有以下几方面的作用:(1)好的文档能提高程序的可阅读性,但坏的文档比没有文档更坏;(2)好的文档意味着简明性,风格的一致性,容易修改;(3)程序编码中应该有必要的注释以提高程序的可理解性;(4)程序越长、越复杂,则它对文档的需求也越迫切 软件维护的流程:定维护申请报告。审查申请报告并批准。进行维护并做详细记录。复审 面向对象方法学的出发点和基本原则:是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程.描述问题的问题域与实现解法的求解域在结构上尽可能一致。
对象是用面向对象方法学开发软件时对客观世界实体的抽象,它是由描述实体属性的数据及可以对这些数据施加的所有操作封装在一起构成的统一体。传统的数据是用传统方法学开发软件时对客观世界实体的抽象,但是,种抽象是不全面的:数据只能描述实体的静态属性,不能描述实体的动态行为。必须从外界对数据施加操作,才能改变数据实现实体应有的行为。对象与传统数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。必须发消息请求对象主动地执行它的某些操作,处理它的私有数据,而不能直接从外界对它的私有数据进行操作。
对象模型的五个层次:主题层(也称为范畴层),类—&—对象层,结构层,属性层,服务层
面向对象实现主要包括两项工作:把面向对象设计结果,翻译成用某种程序语言书写的面向对象程序;测试并调试面向对象的程序
面向对象软件的测试分四个层次进行:算法层、类层、主题层、系统层
项目管理者的目标: 定义全部项目任务,识别出关键任务,跟踪关键任务的进展状况,以保证能及时发现拖延进度的情况
软件配置管理主要有5项任务: 标识 版本控制 变化控制 配置审计 报告 软件工程实施项目管理的目的 : 在于它能够帮助我们进行系统性思考,并切实可行地进行全局性安排,同时也可以为项目开发的人力资源需求提供依据。
项目管理者的任务:确保信息系统项目符合预算和进度要求,并确保交付的系统能够达到预定的目标
软件的质量保证活动: 是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动 对编制高质量文档的要求:(1)针对性(2)精确性(3)清晰性(4)完整性(5)灵活性
第四篇:软件工程考试
第一章 软件工程学概述
1.软件的概念,软件的分类
答:软件=程序+数据+文档;
按规模分类:微型、小型、中型、大型、甚大形、极大型(6)
按性质分类:系统软件、支撑软件、应用软件(3)
按工作方式分类:实时、分时、交互式、批处理(4)
按服务对象分类:项目软件、产品软件(2)
2.软件危机产生的原因(2点),缓解软件危机的途径
答:和软件本身的特点有关,和开发软件的方法不正确有关;
软件工程;
3.软件生命周期包含的活动
答:问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试(8)
4.问题定义阶段的任务
答:确定软件规模、性质、目标
5.常见的软件开发模型
瀑布模型:适用范围是需求确定的软件开发,是描述结构化的软件开发模型;
快速原型模型:适用范围是需求不确定的软件开发;
喷泉模型:是描述面向对象的软件开发模型;
第二章 可行性研究
1.可行性研究从哪些方面进行
答:经济,技术,法律,操作(4)
2.系统流图SFD的作用
答:描述系统的工作过程,建立系统的业务模型
3.数据流图DFD的作用,符号,画法
答:描述系统的功能,建立系统的功能模型
符号:外部实体(正方形),处理(圆形),存储(双实线),数据流(单箭头线)画法:分离成分,分层画DFD(顶层,0层,1层)
第三章 需求分析
1.结构化的需求分析方法SA的原理
答:用DFD、DD进行功能分析,建立系统的功能模型,用E-R进行数据分析,建立系统的数据模型
第五章 总体设计
1.总体设计的原理
答:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立(5)
2.衡量模块独立的指标
答:耦合,内聚 3.总体设计的启发规则(7点)
答:改进软件结构提高模块独立性
模块规模应该适中
深度、宽度、扇出和扇入都应适当
模块的作用域应该在控制域之内
力争降低模块接口的复杂程度
设计单入口单出口的模块
模块功能应该可以预测
4.结构化的设计方法SD的原理
答:将DFD映射成软件结构图
第六章 详细设计
1.用结构化方法进行开发在详细设计阶段的任务
答:对模块进行设计,主要是设计模块的界面和算法 2.结构化程序设计SP的原则(7点)
答:采用自顶向下、逐步求精的设计方法
程序中用顺序、选择、多分支、while型循环、until型循环表示程序逻辑
每种控制结构单入口、单出口
程序语句组成模块,每个模块单入口单出口
复杂的结构用5种基本控制结构组合嵌套实现
严格控制goto语句的使用,在下列情况可用:
在非结构化的语言中,用goto语句实现结构化的构造
在某种可以改善而不是损害可读性的情况下
不仅要注意程序的结构化,还要注意数据结构的合理化
3.判断算法是否为结构化的依据(3点)
答:由5种基本控制结构组成;
每种控制结构单入口单出口;
模块单入口单出口
4.描述算法的工具
答:图形工具:N-S图,PAD图,活动图
语言工具:PDL语言
表格工具:判定表、判定树
5.算法环形复杂度的度量(流程图-流图-区域数)
答:流程图-流图转换方法:
一个判断框缩成一个点;
一个处理框缩成一个点;
一个顺序处理序列缩成一个点;
判定框和与之相连的处理框缩成一个点;
真假分支的汇聚点增加一个点
第七章 实现
1.编码的风格(判断题)
答:程序内部的文档:恰当的标识符(含义鲜明、缩写(必须保留第一个字母、辅音字母由于元音字母、字首优于字尾)+注解)、适当的注解(序言性注解、功能性注解)、程序的视觉组织(布局、空行、缩进)
2.测试的概念、原则、方法,步骤
答:概念:用最少的时间和人力,找到软件中尽可能多的错误和缺陷
原则:
尽早的和不断的测试;
事先要制定测试计划,严格执行学生计划,排除测试的随意性;
测试从小规模测试开始,逐步进行大规模测试;
充分注意测试中的“群集”现象;
“穷举”测试不可能,应该精心设计测试方案,使测试方案充分的覆盖程序逻辑,以尽可能多的发现程序中的错误;
测试方案应该包含合理的输入条件和不合理的输入条件;
测试应由独立的第三方从事;
方法有黑盒测试和白盒测试
步骤是单元测试、集成测试、系统测试、确认测试
3.白盒测试法有哪些,黑盒测试法有哪些
答:白盒测试法有:逻辑覆盖法、基本路径法覆盖法、循环覆盖法
黑盒测试法有:等价划分法,分界值分析法,错误推算法
4.用逻辑覆盖法设计测试方案
5.黑盒测试技术的原理
答:在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部 特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
6.可靠性的概念
答:软件可靠性是程序在给定的事件间隔内,按照规格说明书的规定成功的运行的概率;可靠性是衡量软件质量的指标
7.可靠性的计算
第八章 维护
1.维护的概念、分类
答:在软件已经交付使用后,为了改正错误或满足新的需要而修改软件的过程; 改正型维护,完善型维护,适应型维护,预防型维护;
第九章 实战
1.软件有哪些开发方法
答:结构化的开发方法、面向对象的开发方法、传统的开发方法与面向对象的开发方法相结合的实用开发方法
2.传统的软件开发方法的开发步骤
答:问题定义,可行性研究,需求分析
业务分析(业务描述,建立业务模型)
功能分析(功能描述,功能模型)
数据分析
总体设计
建立软件结构
设计数据库的表结构
详细设计
模块设计
建立数据库,录入数据
实现
编码,测试
3.面向对象的开发方法的开发步骤
答:问题定义,可行性研究
面向对象的分析
业务分析
功能分析,建立系统的功能模型(参与者,需求结构,功能模型)对象分析,建立系统初步的对象模型
用例分析,建立用例分析模型(顺序图,活动图)
扩充和完善,建立系统完整的对象模型
面向对象的总体设计
扩充和完善功能模型
软件运行环境
软件架构模型(软件架构模式,软件分层架构,软件逻辑结构)
扩充和完善对象模型,建立平台相关对象模型
用例设计模型(顺序图,活动图)
数据库设计模型(数据库的表结构,数据库的逻辑结构)
界面设计模型(界面结构模型,屏幕界面模型)
组件图
部署模型
面向对象的详细设计
确定每个用例的实现算法
建立数据库,录入数据
面向对象实现
编码,测试
4.BCE、MVC是什么
答:BCE是用例分析模式、MVC是程序设计思想
5.传统的开发方法与面向对象的开发方法相结合的实用开发方法的开发步骤 答:问题定义,可行性研究
需求分析
业务分析
功能分析
数据分析
动态分析
总体设计
软件运行环境
软件架构模式(C/S B/S)
建立软件结构图
设计数据库的表结构
详细设计
模块设计
建立数据库,录入数据
实现
编码,测试
第五篇:软件工程总结
1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b
1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b
Chapter 10 Self-Check Quiz
1.In the most general sense a component is a modular building block for computer software.a.True b.False
Answer: a(Section 10.1)
2.In the context of object-oriented software engineering a component contains
a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes
Answer: d(Section 10.1.1)
3.In traditional software engineering modules must serve in which of the following roles?
a.Control component b.Infrastructure component c.Problem domain component d.All of the above
Answer: d(Section 10.1.2)
4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False
Answer: b(Section 10.1.3)
5.Which of the following is not one of the four principles used to guide component-level design?
a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle
Answer: d(Section 10.2.1)
6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False
Answer: a(Section 10.2.2)
7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False
Answer: a(Section 10.2.3)
8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False
Answer: b(Section 10.2.4)
9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False
Answer: b(Section 10.4.1)
10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False
Answer: a(Section 10.4.2)
11.Which of these is a graphical notation for depicting procedural detail?
a.box diagram b.decision table c.ER diagram d.flowchart
Answer: d(Section 10.5.1)
12.A decision table should be used
a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component
Answer: d(Section 10.5.2)
13.A program design language(PDL)is often a
a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture
Answer: a(Section 10.5.3)
14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False
Answer: a(Section 10.6)
15.Which of the following is not one of the major activities of domain engineering?
a.analysis b.construction c.dissemination d.validation
Answer: d(Section 10.6.1)
16.Which of the following factors would not be considered during component qualification?
a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required
Answer: d(Section 10.6.2)
17.Which is the following is a technique used for component wrapping?
a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping
Answer: b(Section 10.6.2)
18.Which of the following is not one of the issues that form a basis for design for reuse?
a.object-oriented programming b.program templates c.standard data d.standard interface protocols
Answer: a(Section 10.6.3)
19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above
Answer: c(Section 10.6.4)
1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)
2.Which of the following is not a characteristic common to all design methods?
a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics
Answer: a(Section 8.2.2)
3.Which of the following can be used to represent the architectural design of a piece of software?
a.Dynamic models b.Functional models c.Structural models d.All of the above
Answer: d(Section 8.3.2)
4.Design patterns are not applicable to the design of object-oriented software?
a.True b.False
Answer: b(Section 8.3.3)
5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False
Answer: b(Section 8.3.5)
6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality
a.True b.False
Answer: a(Section 8.3.6)
7.Cohesion is a qualitative indication of the degree to which a module
a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)
8.Coupling is a qualitative indication of the degree to which a module
a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)
9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False
Answer: b(Section 8.3.8)
10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False
Answer: a(Section 8.3.10)
11.Which of the following is not one of the five design class types
a.Business domain classes b.Entity classes c.Process classes d.User interface classes
Answer: b(Section 8.3.13)
12.Which design model elements are used to depict a model of information represented from the user’s view?
a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements
Answer: c(Section 8.4.1)
13.Which design is equivalent to the floor plan of a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: a(Section 8.4.2)
14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: d(Section 8.4.3)
15.Which design model is equivalent to a set of detailed drawings for each room in a house?
a.Architectural design b.Component-level design c.Data design d.Interface design
Answer: b(Section 8.4.4)
16.The deployment design elements specify the build order for the software components.a.True b.False
Answer: b(Section 8.4.5)