软件工程复习
软件工程综合复习题连答案

《软件工程》综合复习资料第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。
A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。
A、SAB、SDC、SCD、CASE3、以下判断正确的是()。
A、所谓软件开发就是编写程序。
B、利用软件工程的思想,已成功的解决了软件危机。
C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。
D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。
4、_____是以提高软件质量为目的的技术活动。
A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。
B.CPU,存储器,控制器,I/O接口及设备。
C.计算机硬件系统和软件系统。
D.计算机及其应用系统。
8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。
B.软件设计对人的智商要求很高,也要求很高的资金投入。
C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。
D.软件很难理解,硬件也很复杂。
9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。
B.问题定义,可行性研究,需求分析。
C.可行性研究,需求分析,问题定义。
D.以上顺序都不对。
10、下列选项中()是软件开发中存在不正确的观念、方法。
A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。
2、一般软件应该有三部分组成:()、()和()。
3、按软件的功能可将软件分成()、()和()等三类。
软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程复习题库带答案完整版

软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。
A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。
A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。
软件工程复习资料

软件工程1、软件的概念:软件是计算机系统中与硬件相依存的另一部分,包括程序、数据、以及相关的文档。
2、软件的组成:程序、数据、文档。
3、软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
4、软件危机消除的办法:P51、必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开发的经验教训。
2、应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早起发展阶段形成的一些错误概念和做法3、应该开发和使用更好的软件工具。
总之,解决软件危机,既要有技术措施,又要有必要的组织管理措施。
5、软件工程的含义:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
6、软件生命周期的过程以及任务。
(1)问题定义(2)可行性研究(3)需求分析(4)总体设计(5)详细设计(6)编码和单元测试(7)综合测试(8)软件维护****************************以上为第一章******************第二章●数据流图有四种成分:源点或终点,处理,数据存储,数据流●画DFD(数据流图)的指导原则:1.符号要使用标准符号2.恰当的命名3.流入流出的数据流的条数一致4.名字要保值一致(平衡)5.遵守加工编号规则6.处理必须既有输入流又有输出流(注意:源点和终点可以相同也可以不同)●数据字典的作用:数据字典(DD)的作用也正是在软件分析和设计过程中给人提供关于数据的描述信息。
●数据字典的内容:(1)、数据流(2)、数据流分量即数据元素(3)、数据存储(4)、处理*********************** *******以上为第二章************************************第三章●实体-联系图(ER)图的概念:ER图中包含了实体、联系和属性3中基本成分,通常用矩形框代表实体,用连接先关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线吧实体(或关系)与其属性连接起来。
软件工程复习题(带答案)

软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
《软件工程》复习题及答案

第一部分
一、选择题:
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生
2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品
3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
8.什么是数据字典?其作用是什么?它有哪些条目?
答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
32.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的(C)上。
A.配置项B.程序C.基线D.过程
33.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。
A.耦合和内聚 B.数据和模块 C. 模块内部的凝聚力 D.模块之间的耦合
二、简答题
1.什么是软件工程?软件工程的目标是什么?
A、1%B、20%C、8%D、50%
13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》
B.《中华人民共和国计算机信息系统安全保护条例》
C.《中华人民共和国著作权法》
D.《计算机病毒防治管理办法》
软件工程复习题及答案(完整)
一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。
错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
错6、软件配置管理是一组标识、组织和控制修改源程序的活动。
错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。
错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。
对10、面向对象的分析是面向计算机系统建立软件系统的对象模型。
错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。
A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。
A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
软件工程 复习资料
软件工程复习大纲考试主要章节:第一章软件与软件工程第二章软件项目管理第三章计算机系统工程第3.2节第五章面向数据流的分析方法第八章软件设计基础第十四章软件测试其他:上课讲义题型一、选择题(单选或多选)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、需求分析的主要目的是(BC)。
A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”7、SA法的主要描述手段有(B)。
A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明8、画分层DFD图的基本原则有(ACD)。
A) 数据守恒原则B) 分解的可靠性原则C) 子、父图平衡的原则D) 数据流封闭的原则9、在E-R模型中,包含以下基本成分(C)。
A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、联系10、画DFD图的主要目的是(A D)。
A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析和设计的工具11、数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。
软件工程复习资料
1.什么是软件工程?他的基本原理是什么?1)软件工程是指导计算机软件开发和维护的工程学科。
采用工程的槪念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。
2)用分阶段的生命周期汁划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设讣技术、结果应能淸楚的审査、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。
2.是什么导致了软件工程?主要是软件危机的出现导致了软件工程3.通常我们所见的软件工程模型有哪些?瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。
21.软件危机的现象:1)经费超出预算,项目一再拖延。
02 )不重视需求,开发的软件不能满足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。
3圄)开发工具落后,手工方式,开发效率低。
2 2 .软件工程的三要素1)"过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质疑开发出软件。
2)"方法”为软件开发提供"如何做”的技术。
它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。
3) "工具"可为过程和方法提供自动的或半自动的支持。
这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。
通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为汁算机辅助软件工程,即CASE。
C ASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。
23.简述软件工程的目标,过程和原则佢)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。
软件工程的目标:降低成本,及时交付髙质量的软件产品。
m实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约朿,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。
软件工程导论第五版复习重点
储户
储户
1
记录存款 信息
打印存款 信息
存款单
存款信息
存款存单
3
计算利息
4
打印利息 清单
存款信息
利息值
利息清单
D1
存款信息
存款信息
2
细化后的计算机储蓄系统软件结构
第3章 需求分析
1、需求分析的基本任务是什么?P46-P48 2、分析建模 2.1什么是模型? 模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 2.2数据模型(E-R)、 功能模型(2.4节数据流图)、 行为模型(状态转换图是行为模型的基础) 3、要从哪些方面验证软件需求?P60
第6章 详细设计
1、结构程序设计中有哪几种基本控制结构?P108 2、了解人机界面的设计。 3、掌握过程设计的工具(程序流程图、盒图、PAD图,判定树)P114—P119 4、面向数据结构的设计方法(Jackson图) 5、程序复杂度的定量度量(McCabe)
6.1 结构程序设计
6.1 结构程序设计
实现
编码和测试
7.2 软件测试基础
7.2 软件测试基础
软件测试:为发现程序中的错误而执行程序的过程。 软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求) 测试方法(黑盒测试和白盒测试) 测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)
图6.4 盒图的基本符号
图6.5 PAD中基本符号 顺序结构;(b) 分支结构;(c) 多分支CASE结构; (d) 当型循环;(e);直到型循环;(f) 语句标号;(g)定义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
致性的方式来描述数据(信息)、功能和行为的需求。图形化的表示
分析模型可以增强对软件需求的理解,也为软件设计奠定了基础。 (4)生成需求规格说明。
需求分析阶段活动、建模的原因、方法、模型的种类、作用。2/2
建模方法:
1.结构化分析 2.面向对象的分析
目标:
分析建模目标是创建各种表现形式以描述软件信息、功能和行为的需求。 具体建模方法:
测试用例设计方法:3/3
其它需要考虑的问题:
以上测试用例的设计主要考虑选取合适的操作序列,还要考虑操作的 参数(接口),在选择参数时可对参数划分等价类,每个输入参数属于一 个等价类,同时还需考虑参数的边界情况。
(3) 增量模型
1. 2. 反复的应用瀑布模型的基本成分和原型模型的迭代特征,每一个线型过程产 生一个“增量”的发布或提交,该增量均是一个可运行的产品。 第一个增量往往是核心产品,即满足用户的基本需求,提供给用户评估的平 台, 以便制定下一个增量计划。
(4) 螺旋模型:
1.适合于大型系统的软件开发,随着过程的进展演化,开发者和用户能够更好的识 别和对待每一个演化级别上的风险。 2.演进的方法不一定可控,依赖于相当丰富的风险评估经验来保证成功。
计测试用例技术。
4.错误推测。根据经验或直觉推测程序中可能存在的各种错误,有针对性的设计检 查这些错误的测试用例。 5.使用判定表。如果功能说明中含有多个输入条件的逻辑组合,可以建立判定表, 判定表的每一列对应一个测试用例。
测试用例设计方法:1/3
传统的测试用例设计是由软件的输入、加工、输出视图或个体模块的算法细节驱动 的,面向对象测试关注于设计合适的操作序列以测试类的状态和用例的实现。 一、类级的测试用例设计(单元测试) 着重于单个类及封装的操作。可按照以下方法设计用例: ① 随机测试:类的操作隐含了一些限制(例如,银行客户账号必须在其它操作可 应用前被打开,在所有操作完成后被关闭)。同时,一项操作可能导致一系列操作 序列随机产生,因此可随机选取其它的测试序列以测试该类对象不同的生命历史。 ② 划分测试:可以减少测试类所需的测试用例的数量,采用与传统测试的等价划 分相同的方式,即输入、输出被分类,为处理每个类别设计测试用例。划分类别的 具体方法是: • 基于状态的划分:基于类操作改变类状态的能力来对类操作分类,分别独立测 试改变状态的操作和不改变状态的操作。 • 基于属性的划分:根据操作使用的属性来划分类操作,即使用相同属性的操作 划分在一个等价类中, 然后对每个划分设计测试序列。 • 基于操作类别的划分:如在银行客户账户类中的操作可被分类为:初始化操作、 计算操作、查询操作、和终止操作。 ③ 从行为模型导出的测试 类的STD可用于帮助导出测试类的动态行为的测试序列。所涉及的测试应覆盖所有 的状态,即操作序列应该导致account类的转换穿越所有允许的状态。
沟通 项目启动 需求获取
策划
项目估算 进度计划 项目跟踪
建模
分析 设计
构建 编码 测试 部署 交付 支持 反馈
(2) 原型模型
分为抛弃型、实验型、演化行三种。建造原型仅是为了定义需求,之后就被抛弃, 实际的软件在充分考虑了质量和可维护性之后才被开发。 缺点:a.为了使原型尽快的工作,没有考虑软件的总体质量和长期的可维护性。b. 为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不 理想的选择成了系统的组成部分。c.开发过程不便于管理。
仓库风格(容器模型),管道-过滤器风格(数据流模型),调用-返回风格(主 程序-子程序结构),面向对象风格,层次式风格(虚拟机模型),基于事件的隐式 调用风格,客户机/服务器模型,对等体系结构,正交软件体系结构。
设计模式的概念、面向对象软件系统分类、原则、要素。
概念:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结, 是软件工程的基石 。使用设计模式是为了可重用代码、让代码更容易被他人理解、 保证代码可靠性。 分类:应用程序、工具箱和框架; 原则: 1、“开-闭”原则:模块应对扩展开放,而对修改关闭。 2、里氏代换原则:如果调用的是父类的话,那么换成子类也完全可以运行。 3、合成复用原则:少用继承,多用合成关系来实现。 4 依赖倒转原则:抽象不应该依赖与细节,细节应当依赖与抽象。要针对接口编程, 而不是针对实现编程。 5 接口隔离原则:定制服务的例子,每一个接口应该是一种角色。 6 抽象类:抽象类不会有实例,一般作为父类为子类继承,一般包含这个系的共同 属性和方法。 7 迪米特法则:最少知识原则。 四个基本要素:模式名称,问题 ,解决方案 ,效果。
它包含了写、需求有效性验证、需求管理。
需求分析活动具有以下任务:
(1)分析需求的可行性:允许的成本、性能;与其他需求的冲突;外界因 素的依赖和技术障碍等。
(2)对于渐增式开发要确定需求的优先级别,以便确立产品版本。
(3)建模:模型能突出或强调某些关键的系统特征。使用文本和图表形式 的组合,以相对容易理解和能直接评审正确性、完整性和一致性的方
体系结构设计为什么重要?
• 体系结构是系统的高层表示,有利于项目人员之间沟通。
• 体系结构的设计对系统能否满足关键性需求如系统的性能、可靠性、可 维护性等属性的评估有极深的影响。
• 体系结构能在具有相似需求的系统之间复用。
软件体系结构不仅指出了系统的组织结构和拓扑结构,并显示了系统需求 和构成系统元素之间的对应关系,提供了软件如何设计的重要决策。 体系结构的风格:
黑盒测试2/2
几种方法: 1.基于图的测试方法:事务流建模、有限状态建模、数据转换流建模、时间建模. 2.等价类划分:主要思想:根据被测对象的功能说明和输入域,按合理的或不合理 划分为若干等价类,为每个等价类设计一个测试用例,这样大大减少测试次数,提 高测试效率。 步骤:①划分等价类②设计测试用例 3.边界值分析。输入域的边界比中间更容易发现错误,是一种补充等价类划分的设
方法、实践和变换。通俗的说,是为建造高质量软件所需完成的任
务的框架,即形成软件产品的一系列步骤,包括中间产品、资源、 角色及过程中采取的方法、工具等范畴。 【软件过程模型:软件过程中定义了如下框架活动:沟通、策划、 建模、构建、部署。这些活动如何衔接,开发过程中采用什么样的 策略,应遵守什么样的规定和制约,将这些活动及其关联用一种模 型表示出来,称为软件过程模型(或软件开发模型)】
⑴ 瀑布模型(线性顺序模型)
• • • • • 提供了软件过程模型的基本框架(模板)。 强调了每一阶段活动的严格顺序。 质量保证观点:以经过评审确认了的阶段工作产品(文档)驱动下一阶段的 工作,便于管理。 是一种整体开发模型,程序的物理实现集中在开发阶段的后期,用户在最后 才能看到自己的产品。 适合于用户需求明确、完整、无重大变化的软件项目开发。
数据设计: 构件级:数据结构和操作它们的相关算法;
应用级:数据模型到数据库的转换;
业务级:存储在不同数据库并重新组织为“数据仓库”的信息的集合产生 了数据挖掘技术。
体系结构的概念,设计体系结构的重要性。体系结构的风格或模式。
软件体系结构(Architecture)是构造系统的基本框架,为软件系统提供了一个结构、 行为和属性的高级抽象。由构成系统的元素(构件)的描述、这些元素的相互作用、 指导元素集成的模式以及模式的约束组成。
式来描述数据(信息)、功能和行为的需求。图形化的表示分析模型
可以增强对软件需求的理解,也为软件设计奠定了基础。 (4)生成需求规格说明。
需求分析阶段活动、建模的原因、方法、模型的种类、作用。1/2
需求工程是一个包括创建和维持系统需求文档所必需的一切活动的过程。
它包含了如下活动:系统可行性研究、需求获取和分析、需求描述和文 档编写、需求有效性验证、需求管理。
(5) 形式化方法模型 1. 对系统需求的分析在软件开发的早期阶段完成。 2. 是对非形式化描述技术的补充,可以用来精化非形式化的详细的系统需求描述。 描述是精确的和无二义的,避免了由于语言误解而产生的一些问题。形式化 描述可用来描述标准。 3.最适合用于安全性、可靠性和保密性等性能要求极高的系统。 形式化开发记录 与需求比 较后修正 变换n …… 形式化 规格说明 变换2 变换1 系统需求 设计逻辑或 目标系统 验证
(6)构件组装模型: 该模型是软件体系结构被建立后用构件去充实。这些构件可从复用 库(或商品库)中获得,或者根据专门需要而开发。整个过程 可以演化地进行,面向对象方法给予技术上的支持。
需求分析阶段的活动、建模的方法、模型的种类、作用。
需求工程是一个包括创建和维持系统需求文档所必需的一切活动的过程。
软件测试的策略、方法1/2 软件测试策略包括测试计划、测试用例设计、测试结果评估等。
测试方法分为两类: (1)黑盒 (Black-box)或闭盒(Closed-box)法 不考虑被测程序的内部结构和处理过程,只关心它的输入和输出是否能达到 预期结果,因此也称为功能性测试。【他必须依靠能够反映这一关系和程序功能的 需求规格说明书考虑确定测试用例,和推断测试结果的正确性。即所依据的只能是 程序的外部特性。因此,黑盒测试是从用户观点出发的测试。 】 (2)白盒(White-box)或开盒(Open-box)法 使用更细致的测试策略,检查被测程序的内部逻辑与结构。 软件测试步骤: 1、单元测试:完成对最小的软件设计单元-软件组件或模块的测试。任务:模块接 口,局部数据结构,重要的执行路径,错误处理路径,边界条件。【白盒】 2、集成测试:也称为组装测试。对单个组件或模块的测试达到目标之后,将它们 组合成一个能工作的系统以发现组件交互中的问题。【黑盒】 3、系统测试:含功能测试、性能测试、强度测试、 容量测试、 恢复测试、安全 测试。 4、用户确认的测试:验收测试、安装测试。
• 对每个客户类,使用类操作列表生成随机测试序列,这些操作将向其他服务 类发送消息。 • 对生成的每个消息,确定协作类和服务对象中的相应操作。 • 对服务对象中的每个操作,确定它所发送的消息。 • 对每个消息,确定下一层被调用的操作并将其引入到测试序列中。 ② 划分测试 类似于单个类划分测试方法,但需扩展测试序列以包括那些通过发送给协作 类的消息而激活的操作。 ③ 基于交互场景的测试 先测试那些最常用到的交互场景,不寻常的或异常的场景放在稍后测试。交 互场景可以从设计的用例中来,为了补充测试信息,需要用时序图来更详细说明对 象是如何完成一个场景的。