软件工程复习资料
- 格式:doc
- 大小:288.50 KB
- 文档页数:9
可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。
(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。
(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。
(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。
(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。
(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。
(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。
第一章绪论什么是软件工程?软件=程序+数据+文档什么是软件危机?软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。
什么是软件工程?采用工程化的原理和方法对软件进行计划开发和维护。
软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型软件工程的发展时期:(1)传统软件工程或者经典软件工程:开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试(3)基于构件的软件工程:以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段:领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按“构件集成模型,,查找与集成构件第二章生存周期什么是软件生存周期?计划阶段:需求分析,软件分析开发阶段:软件设计,编码(测试)软件测试维护阶段:运行维护模型特点和使用场合可行性研究1.经济可行性2.技术可行性3.运行可行性4.法律可行性第三章结构化分析与设计结构化程序设计的特点以及论述(1)整个程序的模块化(2)每个模块只有一个入口和出口(3)每个模块都应能单独执行,且无死循环(4)采用自顶向下,逐步细化的方法SA结构化分析设计(结构化)从内容分:1.系统结构设计2.接口设计3.数据设计4.过程设计按照步骤分:1.概要设计2.详细设计第四章OO与面向对象+UML OO的特征1.抽象2.封装3.继承4.多态为什么用面向对象1.符合人类习惯的思维方式2.提高软件系统的可复用性3.提高软件系统的可扩展性4.提高软件系统的可维护性UML相关知识静态图1.用例图:描述系统功能2.类图:描述系统的静态结构3.对象图:描述系统在某个时期的静态结构4.构件图:描述实现系统的元素的组织5.部署图:描述系统环境元素的配置动态图1.状态图:描述系统元素的状态条件和相应2.时序图:按照时间顺序描述系统元素间的交互3.协作图:按照连接关系描述系统元素间的交互4.活动图:描述系统元素的活动流程第五章需求建模需求分析的步骤1.需求获取2.需求建模3.需求描述4.需求验证面向对象需求建模1.画用例图2.写用例规约3.描述补充规约4.编写术语表第六章需求分析面向对象的需求分析1.边界类:边界类提供了对参与者或外部系统交互协议的接口。
软件工程自考复习资料-全第一章绪论一、软件的基本概念1.软件是计算机系统中的程序及其文档。
3.文档一般主要面向管理人员、开发人员、用户、使用维护人员。
4.文档在软件工程中的作用:(1)提高软件开发过程的能见度。
(2)提高开发效率。
(3)某程序设计时代:生产方式是个体手工劳动,使用工具是机器、汇编语言,主要通过汇编来实现,不注重程序设计方法。
某程序系统时代:生产方式是作坊式小集团合作生产,生产工具是高级语言,开始提出结构化方法。
某软件工程时代:生产方式是工程化生产,使用数据库、网络、先进的开发技术和方法。
6.软件既是知识性(逻辑性)工业产品,具有一些独特的特性是:某软件是逻辑产品,具无形性,通过计算机的执行才能体现它的功能和作用。
某软件只会退化,不存在磨损和消耗问题。
某成本主要体现在软件的开发和研制上,可进行大量的复制。
某主要靠脑力劳动生产,开发和维护成本高。
7.软件的主要结构和功能是在分析设计阶段决定的。
8.软件的复杂性主要体现在程序的复杂性,即模块内程序的复杂性。
直接关联到软件的简单和可理解性、开发费用多少、开发周期长短和软件潜伏错误的多少。
二、软件危机1.软件危机是指在软件开发和维护时遇到的一系列难以控制的问题导致的供需矛盾。
出现在软件发展的第二阶段末期,随着第三代计算机的诞生之际。
2.软件危机主要体现在:某软件发展速度跟不上硬件的发展和用户需求。
某软件成本和开发进度不能预先预算,用户不满意。
某软件产品质量差,成本高,可靠性没有保证。
某软件可维护性差,产品没有配套文档。
3.软件危机产生原因:(1)软件规模变大,结构更加复杂。
(2)软件开发管理困难。
(3)软件开发技术和工具落后。
(4)软件开发费用增加。
(5)采用落后的个体手工生产方式开发。
4.解决途径:(1)纠正对软件开发的错误观念。
(2)提高软件工程管理水平,重视文档重要性。
(3)使用好的软件开发工具,研究软件开发技术,规范软件开发流程,提高开发效率。
软件工程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中基本成分,通常用矩形框代表实体,用连接先关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线吧实体(或关系)与其属性连接起来。
软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。
程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。
它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。
开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。
五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。
瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。
“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。
在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。
实际的项⽬很少按照顺序模型进⾏。
⽤户必须有耐⼼,等到系统开发完成。
缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。
反馈信息慢,开发周期长。
虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。
快速原型模型增量模型增量模型是迭代和演进的过程。
增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。
每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。
软件工程复习资料一、选择题3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是()。
A喷泉模型 B 增量模型C瀑布模型D螺旋模型7.( )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
A概要设计 B 详细设计 C 编码 D 测试14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为()。
A可理解性 B 可维护性C可适应性 D 可重用性29.软件项目管理必须()介入。
A)从项目的开头B)在可行性研究之后C)在需求分析之后D)在编码之后30.下列选项中,属于成本管理的主要任务的是()。
A)人员的分工B)估算软件项目的成本C)对控制软件质量要素D)对软件阶段产品进行评审40.基于代码行的面向规模的度量方法适合于()。
A)过程式程序设计语言和事前度量B)第四代语言和事前度量C)第四代语言和事后度量D)过程式程序设计语言和事后度量51.在软件质量要素的评价准则中,在各种异常情况下软件能继续提供操作的能力指的是()。
A)容错性B)检测性C)安全性D)可操作性49.在软件质量要素的评价准则中,程序易于理解的程度指的是()。
A)简单性B)准确性C)简明性D)执行效率61.需求分析最终结果是产生()A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书62.需求分析中,开发人员要从用户那里解决的最重要的问题是()A.让软件做什么B.要给软件提供哪些信息C.要求软件工作效率怎样D.让软件具有何种结构63.DFD中的每个加工至少有()A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流64.数据字典总,一般不出现的条目是()A数据流 B 数据存储C.加工D.源点与终点65.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的()A.细节B.输入与输出C.软件的作用D.绘制的时间66.需求规格说明书的内容不应包括对()的描述。
一、单选题1. 为了提高测试的效率,应该( D )A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是( D ) A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以( B )为基础、自顶向下、逐步求精和模块化的过程A、数据流B、数据流图C、数据库D、数据结构4. 概要设计的结果是提供一份( A ) A、模块说明书B、框图C、程序D、数据结构5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出( B )A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的( D )A、1/6 B、1/5 C、1/4 D、1/37. PAD(Problem Analysis Diagram)图是一种( B )工具。
A、系统描述B、详细设计C、测试D、编程辅助8. 排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的( A )。
A、95%B、5%C、50%D、20%9.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( A ) 。
A、总貌B、细节C、抽象D、软件的作者10. 分析员是( B )。
A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导11.在软件开发中,有利于发挥集体智慧的一种做法是( A )。
A、设计评审B、模块化C、主程序员制D、进度控制12.在开发软件时,( A )可用来提高程序员的工作效率。
A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机二、多选题1. 数据流图的3种成分为①、②和③,②是数据流中①的变换,③用来存储信息,④对①、②、③进行详细说明,用⑤对③进行详细描述。
软件工程复习题一、选择题,请从四个可选项中选择正确答案。
1、下面哪个选项不是软件工程研究的内容()。
A. 生产无故障的软件B. 精通一门编程语言C. 生产满足用户需求的软件D.生产及时交付的软件2、软件工程的出现是由于 ( )A.软件危机B.计算机硬件技术的发展C.软件社会化的需要 D。
计算机软件技术的发展3、软件工程的研究内容具有层次化结构,最底层是质量保证层,中间层是( ),最上层是工具层.A.过程层B.方法层 C。
过程层和方法层 D。
系统层4、美国著名软件工程专家B.W。
Boehm于1983年提出了软件工程的()条基本原理. A。
7 B。
5 C.3 D.125、结构化分析方法(SA 法)使用的主要描述工具有()。
A.数据库B.模块结构图 C。
PAD 图 D.分层的DFD 图6、源程序的效率与( )阶段确定的算法的效率直接有关。
A.概要设计B。
总体设计 C. 单元设计 D. 详细设计7、可行性研究的主要任务是()。
A.确定系统做什么B. 确定性能C.确定功能D. 进行一次简要的需求分析8、内容耦合是模块间最紧密的耦合,()是模块间最松散的耦合。
A.数据耦合 B.非直接耦合 C.控制耦合 D.外部耦合9、面向对象是“先"确定()“后”()。
A。
属性/方法 B.数据结构/方法 C。
动作的主体/执行动作 D.动作10、UML是一种()语言。
A。
高级编程 B。
可视化建模 C.分析方法 D.过程11、软件工程强调将()的方法应用于软件的开发和维护过程之中。
A。
规范化 B。
系统化 C.可度量 D。
以上全部12、软件开发活动的顺序应该是( ).A。
问题定义、可行性研究、需求分析、设计、编码和测试。
B.问题定义、设计、可行性研究、编码和测试。
C.需求分析、设计、编码和测试。
D。
需求分析、编码和测试、试运行。
13、假定银行的存款年利率是2%,请问现在存5000元,两年后价值应为()元。
A.5202B.4500C.5100D.471214、系统物理模型用()表示.A.系统流程图 B。
《软件工程》复习资料一、选择题1.软件工程的研究内容具有层次化结构,最底层是质量保证层,中问层是(C),最主.层是工具层。
A过程层 B.方法层C.过程层和方法层 D.系统层2.可行性研究的四大要素是(D)。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平巳经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性3.针对需求不确定的软件开发,比较好的模型是(A)。
A.快速原型化模型B.瀑布模型c.软件成熟度模型。
.系统化模型4.下面的哪个选项不是软件工程的宗旨?(D)A.开发满足用户需求的软件B.研究算法C.及时交付软件D.生产无故障软件5.瀑布模型的主要特点是(A)。
A.将开发过程严格地划分为一系列有序活动B.将开发过程分解为阶段c.提供了有效的管理模式D.缺乏灵活性6.软件结构图中没有(D)元素。
A.模块B.调用参数C.返回结果D.判断7.结构化设计方法划分模块的原则是(C)A.模块扇出小于5B.模块扇人小于5c.低搞合,高内聚 D.模块深度小于78.配置视图体现了系统的实现环境,反映系统的(B)。
A.逻辑架构B.物理架构C组成结构 D.体系结构9.角色可以有四种类型:系统的使用者,硬件设备,外部系统和(D)。
A.数据库B.接口C.对象D.时间10.功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。
在面向对象方法中,由(C)实现。
A.场景描述B.活动图和1场景描述C.用例图和场景描述D.交互图和场景描述11.在分析模型内表示协调,}I顶序、事务处理以及控制其他对象的类是(A)。
A.控制类B.组件类C.主函数D.事务类12.而信息隐藏的核心内容是(C)。
A.人把数据都放在公共的区域B.数据不能被其他模块访问C.一个模块的内部信息不允许其他模块直接访问D.把信息加密,只能让有密钥的模块访问13.面向过程的方法最关心的是过程,而过程实施的对象是作为过程(A)传递的。
答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.2.软件危机的表现答:(1)对软件开发成本和进度的估计往往很不准确(2)用户对“已完成的”软件系统不满意的现象常常发生(3)软件产品的质量往往靠不住(4)软件常常是不可维护的(5)软件通常没有适当的文档材料(6)软件成本在计算机系统总成本中所占的比例逐年上升(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势3.软件工程(1968首次,1993全面定义IEEE)答:是指导计算机软件开发和维护一门工程学科.采用工程的概念、原理、技术和方法来开发软件与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程.4.软件生命周期答:软件生命周期由软件定义、软件开发和运行维护三个时期组成.定义时期:定义问题、可行性研究、需求分析开发时期:总体设计、详细设计、编码、测试可行性研究回答的问题:对于上一个阶段所确定的问题有行得通的解决方法吗?需求分析:为了解决这个问题,目标系统必须做什么5.黑盒测试答:黑盒测试也称功能测试.把程序看作一个黑盒子,在完全不考虑程序的内部结构和处理过程,也就是说,黑盒测试是在程序接口进行测试,它只检查程序功能是否能按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性.6.白盒测试答:白盒测试也称结构测试.白盒测试法与黑盒测试法相反,它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法.这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作.7.单元测试答:单元测试集中检测软件设计的最小单元——模块.8.集成测试答:集成测试是测试和组装软件的系统化技术.答:软件维护就是在软件已经交付实用之后,为了改正错误或满足心的需要而修改软件的过程.完善性维护占维护活动的(50%~66%)改正性维护占(17%~21%)适应性维护占(18%~25%)其他维护只占(4%)10.软件维护特点答:(1)非结构化维护(2)结构化维护11.什么是脚本答:在建立动态模型的过程中,脚本是指系统在某一执行期间内出现的一系列事件.编写脚本的目的,是保证不遗漏重要的交互步骤.编写脚本时,首先编写正常情况的脚本;然后考虑特殊情况;最后考虑出错情况.脚本描述事件序列.12.软件可靠性答:是程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率.13.软件开发模型答:瀑布模型[大程序常用]快速原型模型[小程序常用,不稳定的]增量模型螺旋模型(风险驱动模型)喷泉模型(UML模型)14.可行性研究三方面答:(1)技术可行性(2)经济可行性(3)操作可行性15.IPO图答:IPO图是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系16.对象、类、消息、继承、多态性答:对象:是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力.对象是对属性值的操作的封装.类:是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明. 类是支持继承的抽象数据类型,而对象就是类的实例.消息:是要求某个对象执行在定义它那个类中所定义的某个操作的规格说明.继承:是子类自动地共享基类中定义的数据和方法的机制.多态性:是指子类对象可以像父类对象那样使用,同样的消息即可以发送给父类对象也可以发送给子类对象.17.软件重用答:也叫再用或复用,是指同一事物不作修改或稍加修改就多次重复使用.18.模块化答:就是把程序划分成独立命名且可以访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.模块是构成程序的基本构件.功能模块构成软件结构图.19.耦合答:耦合是对一个软件结构内不同模块之间互连程度的度量.数据耦合:两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据.控制耦合:传递的信息中有控制信息.公共环境耦合:两个或多个模块通过一个公共数据环境相互作用.内容耦合:程度最高特征耦合:整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素.设计时:(弱耦合)尽量使用数据耦合,少用控制藕合和特征藕合,限制公共环境藕合的范围,完全不用内容藕合.20.内聚答:标志着一个模块内部各个元素间彼此结合的紧密程度.它是信息隐藏和局部化概念的自然扩展.低内聚分为:偶然内聚(0)、逻辑内聚(1)、时间内聚(3)中内聚分为:过程内聚(5)、通信内聚(7)高内聚分为:顺序内聚(9)、功能内聚(10)21.过程设计的工具答:(1)程序流程图PEG :又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法.(非结构化的工具)(2)盒图N-S :一种不允许违背结构程序设计精神的图形工具.(3)PAD图(问题分析图):用二维树形结构的图来表示程序的控制流.22.PAD图(问题分析图)优点答:(1)由PAD符号所设计出来的程序必然是结构化程序.(2)程序结构十分清晰.(3)易读、易懂、易记.(4)容易将PAD图转换成高级语言源程序,有利于提高软件可靠性和软件生产率.(5)既可用于表示程序逻辑,也可用于描绘数据结构.(6)支持自顶向下,逐步求精方法的使用.23.判定表答:算法中包含多重嵌套的条件选择时,用程序流程图、盒图、PAD图或后面即将介绍的过程设计语言(PDL)都不容易清楚地描述.然而判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系.24.过程设计语言答:过程设计语言PDL也成为伪码.25.环形复杂度的计算答:(1)流图中的区域数等于环形复杂度.(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数.(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目.只有顺序结构的程序,环形复杂度是(1).26.软件测试的目标答:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试.27.软件测试准则答:(1)所有测试都应该能追溯到用户需求(2)应该远在测试开始之前就制定出测试计划(3)把Pareto 原理应用到软件测试中.(4)应该从“小规模”测试开始,并逐步进行“大规模”测试(5)穷举测试是不可能的(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作.软件=程序+测试28.软件测试步骤答:(1)模块测试(2)子系统测试(3)系统测试(4)验收测试(也称为确认测试)(5)平行运行不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试.29.测试方案答:所谓测试方案不仅仅是测试时使用的输入数据(称为测试用例),还应该包括每组输入数据预定要检验的功能,以及每组输入数据预期应该得到的正确输出.30.软件调试途径答:蛮干法回溯法原因排除法31.标准建模语言答:标准建模语言为UMLOO=object + classes + inheritance + communication with messages32.面向对象方法学的要点答:(1)认为客观世界是由各种对象组成的,复杂的对象可以由比较简单的对象以某种方式组合而成;(2)把所有对象都划分成各种对象类,每个对象类可以定义一组数据和方法;(3)按照子类和父类的关系,把若干对象类组成一个层次结构的系统;(4)对象彼此之间仅能通过传递消息互相联系.33.面向对象方法学的优点答:(1)与人类习惯的思维方法一致;(2)稳定性好;(3)可重用性好;(4)较易开发大型软件产品;(5)可维护性好.34. 面向对象模型答:(1)描述系统数据结构的对象模型(2)描述系统控制结构的动态模型(3)描述系统功能的功能模型35.UML的3个子模型答:静态结构(对象模型)交互次序(动态模型)数据变换(功能模型)36. UML的5个层次答:主题层(子系统)类与对象层结构层(类之间的关系)属性层服务层大题:1.计算成本/效益分析(P51.例题)2.数据流图(P73.习题3、4)3.程序复杂度的计算(P141.习题4图6.18)4.软件可靠性的计算(P187.习题8、9、10)5.类图.《计算机硬件组成》(P218- P221. 图9.5、9.9、9.10、9.11)6.顺序图转换为状态图(P250.ATM系统P252. 图10.10、10.11)图:P101.图5.2P102.图5.3、5.4、5.5类图:UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域,分别放类的名字、属性和服务。
关联:普通关联是最常见的关联关系,只要在类与类之间存在连接关系就可以用普通关联表示。
聚集:如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。
例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是共享聚集关系。
组合聚集:如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在价值了),则该聚集称为组合聚集(简称为组成)。
泛化(继承):UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。
具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。
在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。
ATM 系统正常情况脚本的事件跟踪图 ATM 类的状态图总行类的状态图 分行类的状态图软件=程序+文档结构化分析的功能模型是:数据流图对耦合无影响的是:改变语句间的关系需求分析要从用户了解:软件的性能、数据的要求等测试用例=输入数据+欲检验的功能+正确的输出软件维护分为:结构化维护与非结构化维护两者的特点自己到书上找单元测试即为模块测试(黑盒、白盒)集成测试:系统测试与子系统测试。