1、 软件开发技术 复 习 题一、填空及简述:1、软件、工程、软件工程及其三要素? P1-3答:计算机系统中的程序及其文档称为软件。 工程是将科学论理和知识应用于实践的科学。软件工程是一类求解软件的工程。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。软件工程的三要素是指目标、原则、活动软件工程的目标可概括为“生产具有正确性、可用性以及开销合宜的产品” 。四条基本原则选取适宜的开发模型 采用合适的设计方法 提供高质量的工程支持 重视开发过程的管理软件工程的活动包括 需求、设计、实现、确认和支持。2、软件开发模型的种类、适用情况、缺点? P5
2、-10答:瀑布模型在支持结构化软件开发、控制软件开发的复杂性、促进软件开发工程化等方面起着显著作用。最为突出的缺点是该模型缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求,可能导致开发出的软件并不是用户真正需要的软件,无疑要进行返工或不得不在维护中纠正需求的偏差,为此必须付出高额的代价,为软件开发带来不必要的损失。演化模型针对事先不能完整定义需求的软件开发。但忽略风险分析。螺旋模型适合于大型软件的开发。使用时需要具有相当丰富的风险评估经验和专门知识,如果项目风险较大,又未能及时发现,势必造成重大损失。喷泉模型主要用于支持面向对象开发过程。软件刻画活动需要多次重复。增量模型广泛地使用开计算
3、机工业中。需不断地进行系统的增量开发。3、设计的分类? P43答:软件设计可采用多种方法,如结构化设计方法、面向数据结构的设计方法、面向对象的设计方法等。4、结构化设计方法的分类及功能? P43、P65答:结构化设计方法分为总体设计。其功能是设计被建系统的模块结构,即系统实现据需要的软件模块-系统中可标识软件成分,以及这些模块之间的调用关系。详细设计。这个阶段的功能是确定怎样具体地实现所需求的系统,即应该得出对目标系统的精确描述,从而在编码阶段可以将这个描述直接翻译成用某种程序设计语言书写的程序,基本上决定了最终的程序代码的质量。5、模块及其独立性和相关内容? P56答:模块是执行一个特殊任务
4、或实现一个特殊的抽象数据类型的一组例程和数据结构。模块由两部分组成一部分是接口,列出可由其他模块或例程访问的对象,如常量、变量、数据类型、函数等;另一部分是实现模块功能的执行机制,包括私有量(只能由本模块自己使用的)及实现模块功能的过程描述或源程序代码。6、评价软件设计的基本准则及其相关内容? P56-60 答:基本准则是“高内聚”、“ 低耦合”。耦合是对不同模块之间相互依赖程度的度量。 紧密耦合是指两个模块之间存在着很强的依赖关系;松散耦合是指两个模块之间存在一些依赖关系,但它们之间的连接比较弱;无耦合是指模块之间根本没有任何连接。耦合的强度依赖于以下几个因素一个模块对另一个模块的引用 一个
5、模块向另一个模块传递的数据量 一个模块施加到另一个模块的控制的数量 模块之间接口的复杂程度耦合的类型(从强到弱)内容耦合 公共耦合 控制耦合 标记耦合 数据耦合 内聚度量的是一个模块内部各成分之间相互关联的强度。一个模块内聚程度越高, 该模块的内部各成分之间以及同模块所完成的功能之间的关联也就越强。内聚的类型(从低到高) 偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚 7、软件测试及技术分类? P154-155答:软件测试可定义为按照特定规程,发现软件错误的过程。IEEE定义为使用人工或自动手段,运行或测定某个系统的过程,其目的是检验它是否满足规定的需求,或是清楚了解预期
6、结果与实际结果之间的差异。软件测试技术分为两大类一类是白盒测试技术,依据的是程序的逻辑结构,典型的是路径测试技术;另一类是黑盒测试技术,又称为功能测试技术,依据的是软件行为的描述,包括事务处理流程技术、状态测试技术、定义域测试技术等。8、CMM的成熟度等级和内部结构? P212 图7。3、P214-219 图7。4 图7。5答:CMM的成熟度等级为分五级 初始级1级 可重复级2级 已定义级3级 已管理级4级 持续优化级5级 CMM的每个等级是通过三个层次加以定义的,分别是关键过程域、关键实践类和关键实践。每个关键过程又按四个关键实践类加以组织制定方针政策、确保必备条件、实施软件过程和检查实施情
7、况9、模块作用域和控制域的含义、关系及改进? P61答:模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。 模块的作用域应该在控制域之内 图4。25例改进方法一个方法是把做判定的点往上移;另一个方法是把那些在作用域内但不在控制域内的模块移到控制域内。10、详细设计的工具及其优缺点? P67-70答:程序流程图,又称程序框图。主要优点是对控制流程的描绘很直观,便于初学者掌握。主要缺点有程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构 程序流程图中用箭头代表控制流,因此程序
8、员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制 程序流程图不易表示数据结构 盒图(N-S图)。同程序流程图相比,它以一种结构化的方式严格地限制从一个处理到另一个处理的控制转移。PAD问题分析图。主要优点有使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序 PAD图所描述的程序结构十分清晰 用PAD图表现程序逻辑,易读、易懂、易记 很容易将PAD图转换成高级语言源程序 既可用于表示程序逻辑,也可用于描述数据结构 PAD图的符号支持自顶向下、逐步求精方法的使用类程序设计语言PDL。也称为伪码。优点有可以作为注释直接插在源程序中间 可以使用普通的正文编辑程序或文字处理系
9、统,很方便地完成PDL的书写和编辑工作 已经有自动处理程序存在,而且可以自动由PDL生成程序代码。 缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表或判定树清晰简单11、DFD模型平衡规则? P27-28答:数据流图中所有的图形元素必须根据它们的用法规则正确使用 每个数据流和数据存储都要在数据字典中有定义,数据字典将包括各层数据流图中数据元素的定义 数据字典中的定义使用合法的逻辑构造符号 数据流图中最底层的加工必须在小说明中有定义 父图和子图必须平衡,即父图中某加工的输入输出和分解这个加工的子图的输入输出必须完全一致,这种一致性不一定要求数据流的名称和个数一一对应
10、,但它们在数据字典中的定义必须一致,数据流或数据项既不能多也不能少 小说明和数据流图的图形表示必须一致。12、数据流图DFD转换为模块结构图MSD的步骤? P51-56答:复查基本系统模型 复查并精化数据流图 确定输入、变换、输出这三部分之间的边界 “第一级分解” 系统模块结构图顶层和第一层的设计 “第二级分解” 自顶向下,逐步求精 使用设计度量和启发式规则,对初始的模块结构图进行精化13、路径测试策略的分类? P157-158答:路径测试执行所有可能的穿过程序的控制流程路径 语句测试(P1)至少执行程序中所有语句一次品 分支测试(P2)至少执行程序中每一分支一次 条件组合测试设计足够的测试用
11、例,使每个判定中的所有可能的条件取值组合至少执行一次 14、数据流图、程序框图、控制流程图的区别? P20、P67、P156答:数据流图由四个基本部分组成加工(用圆圈表示) 数据流(用箭头表示) 数据存储(用两条平行线表示) 数据源和数据潭(用矩形表示) 程序框图又称程序流程图,使用的主要符号有顺序结构、选择结构、循环结构及一些等价符号。 与数据流图不同的是,程序框图中的箭头代表的控制流而不是数据流。控制流程图是程序控制结构的图形表示,其基本要素是过程块、结点、判定。与程序框图不同的是,控制流程图中不显示过程块的细节,而在程序流程图中,着重于过程属性的描述。15、黑盒法(功能测试技术)的种类?
12、 P165-167答:等价类划分方法是把所有可能的输入数据即程序的输入域分成若干部分(即若干等价类),然后从每一部分中选取数据作为测试用例。边界值分析方法测试工作经验表明,大量的错误经常发生在输入或输出范围的边界上。在设计测试用例时,选择一些边界值进行测试,这就是边界值分析测试技术的主要思想。因果图方法通过为判定表的每一列设计一个测试用例,从而实现测试用例的设计与选择。1在详细设计阶段所使用到的设计工具是( ):A) 程序流程图,PAD 图,N-S 图,HIPO 图,判定表,判定树.B) 数据流程图,Yourdon 图,程序流程图,PAD 图,N-S 图,HIPO 图。C) 判定表,判定树,数
13、据流程图,系统流程图,程序流程图,PAD 图,N-S图。D) 判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。2、按照软件工程的原则,模块的作用域和模块的控制域之间的关系是( ):A) 模块的作用域应在模块的控制域之内。B) 模块的控制域应在模块的作用域之内。C) 模块的控制域与模块的作用域互相独立。3、 包含所有可能情况的测试称为穷尽测试。下面结论成立的是:A) 只要对每种可能的情况都进行测试,就可以得出程序是否符合要求的结论。B) 一般来说对于黑盒测试,穷尽测试是不可能作到的。C) 一般来说对于白盒测试,穷尽测试是不可能作到的。D) 在白盒测试和黑盒测试这两个方法中,存在某一个
14、是可以进行穷尽测试的。4、在数据流图中,(椭圆)代表( )。A、源点 B、终点 C、加工 D、模块5、模块内聚度越高,说明模块内各成分彼此结合的程度越( )。A、松散 B、紧密 C、无法判断 D、相等6、软件设计阶段的输出主要是( )。A、程序 B、模块 C、伪代码 D、设计规格说明书7、SD 方法设计的结果是( )。A、源代码 B、伪代码 C、模块 D、模块结构图8、软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以( )维护所占的维护量最小( )。A、纠错性维护 B、代码维护 C 、预防性维护 D、文档维护9、软件需求分析是保证软件质量的重要步骤,它的实施应该是在( )。
15、A、编码阶段 B、软件开发全过程 C 、软件定义阶段 D、软件设计阶段10、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( )。A、结构合理性 B、软件外部功能 C 、程序正确性 D、程序内部逻辑11、软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立( )。A、软件结构 B、软件过程 C 、软件模型 D、软件模块12、在下述哪一种测试中,测试人员必须接触到源程序( )。功能测试 结构测试A、均不需 B、只有 C、只有 D、和13、检查软件产品是否符合需求定义的过程称为( )。A、确认测试 B、集成测试 C 、验收测试 D、验证
16、测试14、软件文档是软件工程实施中的重要万分它不仅是软件开发各阶段的重要依据,而且与影响软件的( )。A、可理解性 B、可维护性 C 、可扩展性 D、可移植性15、在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于( )。A、维护时期 B、计划时期 C 、运行时期 D、开发时期16、在七种偶合中,最低偶合是( )。A、内容偶合 B、公共偶合 C 、数据偶合 D、非直接偶合17、结构化分析方法 SA、结构化设计方法 SD 方法,是在软件开发过程中常用的方法,人们使用 SA 方法时可以得到( ),使用 SD 方法时可以得到( )。A、程序流程图 B、具体的语言程序 C 、模块结构
17、图及模块的功能说明书D、分层数据流图练习题1 画出对应于计算托运费比率的判定树和判定表。邮局货物托运费的比率规定如下:专递:如果货物重量小于等于 50g,则一律收费 6 元;如果货物重量大于 50g 而又小于等于 200g,则一律收费 3 元/10g ;如果货物重量大于 200g,则一律收费 4 元/10g ;普通:若为慢件每 10g 收费为 1 元;若为快件,当重量小于等于 200g 时,收费为 2 元/50g;当重量大于 200g 时,收费为 3 元/50g 。2画出与下列用 PDL 书写的程序所对应的盒图和 PAD 图。Kn;FLAG1IF FLAG0 THEN DOKK+1FLAG0F
18、OR J1 TO K DOL(J) L(J+1)FLAG1END FOREND DO3.已知有一抽象的 DFD 图如下所示,请用 SD 方法画出相应的结构图。F IA H GD K B L 4.针对如右程序流程图所示的程序结构,用 PAD 图表示出该程序结构;假设程序中变量均为整形变量,为该程序设计测试用例,结合边界值分析思想,满足条件组合覆盖要求。Y I 10 N X=1 or Y5 Y A = A + 1 N I = I +1 F1D1H1G1K15.某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期及利率等信息,并印
19、出存款单给储户;如果是取款,系统计算清单给储户。请用分层 DFD 描绘该功能的需求。6. 对求平方根的程序 SQRT(x-3)/(5-x)用黑盒法设计测试用例等价分类法输入条件 合理等价类 不合理等价类用边缘值分析法设计测试用例参考答案:1. 判定树:判定表:托运类型 专递 普通快慢件 慢件 快件质量 m 50g 50gm200g m 200g m 200g m 200g托运费比率 6 元/件 3 元 /件 4 元/件 1 元/10g 2 元/50g 3 元/50g2. 盒图 PAD 图:注意:盒图与流程图 FOR 语句的表达。货物托运费比率专递普通m50g50m200gm200g6 元/件3
20、 元/10g4 元/10g慢件快件1 元/10gm200gm200g2 元/50g5 元/50gKnFLAG1FLAG0T F KK+1FLAG0J1J=KL(J)=L(J+1)FLAG1JJ+13、KnFLAG1FLAG0KK+1FLAG0FOR J=1TO KL(J)=L(J+1)FLAG1MAINGETH GETD DHGK PUTKGETF F H K L PUTLK略GKDHDH略K L KFFH4、PAD 图8 组条件组合: I10 X=1 I10 Y5 I10 X1 I10 X=1 I10 Y5 I10 X1 I10 Y5 I10 Y5用例: X=1,Y=5,I=7,A=6= A=9,I=11 满足 X=2,Y=6,I=7,A=6= A=9,I=11 满足 I=11,X=1,Y=5=A 保持原值满足 I=11,X=2,Y=6=A 保持原值满足6 组条件组合: I10 I10 X=1 Y 5 X1 Y5 X=1 Y 5 X1 Y5用例: I=7,X=1 ,Y=5 满足 I=11,X=2,Y=6 满足 I=11,X=1,Y=6 满足I10X=1ORY5I=I+1A=A+1