软件工程_第1页
软件工程_第2页
软件工程_第3页
软件工程_第4页
软件工程_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。典型变现:对软件开发成本和进度的估计常常很不准确。 用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。原因: 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考虑而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。8-1软件的可维护性与那些因素有关?在软件开发过程中应该采取哪些措施来提高软件产品的可维护性? 可理解性、可测试性、可修改性、可移植性、可重用性(1)反复多次地修改程序的尝试,与不可见的设计及源代码“顽强战斗”,以实现所要求的修改。(2)通过仔细分析程序尽可能多地掌握程序的内部工作细节,以便更有效地修改它。(3)在深入理解原有设计的基础上,用软件工程方法重新设计、重新编码和测试那些需要变更的软件部分。(4)以软件工程方法学为指导,对程序全部重新设计、重新编码和测试,为此可以使用CASE工具(逆向工程和再工程工具)来帮助理解原有的设计。9-1 什么是面向对象方法学?9-2 什么是“对象”?对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。9-3 什么是“类”? 类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明。9-4 什么是“继承”? 继承是子类自动地共享基类中定义的数据和方法的机制。9-5 什么是模型? 模型,就是为了开解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。9-6 什么是对象模型?对象模型是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。10 理解三个模型的概念对象模型动态模型:功能模型:11-1 面向对象设计应该遵循哪些准则?模块化、抽象、信息隐藏、弱耦合、强内聚、可重用11-3 为什么说类构件是目前比较理想的可重用软构件?它有哪些重用方式?模块独立性强,具有高度可塑性,借口清晰、简明、可靠重用方式:实例重用、继承重用、多态重用12-1 面向对象实现应该选用哪种程序设计语言?为什么?编译,编译程序可以自动把面向对象概念映射到目标程序中。12-2 面向对象程序设计语言主要有哪些技术特点?支持类与对象概念的机制、实现整体-部分(即聚集)结构的机制实现一般-特殊(即泛华)结构的机制、实现属性和服务的机制、类型检查类库、效率、持久保存对象、参数化类、开发环境12-3 选择面向对象程序设计语言时主要应该考虑哪些因素?将来能否占主导地位、可重用性、类库和开发环境、其他因素12-4 良好的面向对象程序设计风格主要有哪些准则?提高可重用性:提高方法的内聚、减小方法的规模、保持方法的一致性、把策略与实现分开、全面覆盖、尽量不使用全局信息、利用继承机制提高可扩充性:封装实现策略、不要用一个方法遍历多条关联链、精心确定公有方法提高健壮性:预防用户的操作错误、检查参数的合法性、不要预先确定限制条件、先测试后优化12-5 测试面向对象软件时,单元测试、集成测试和确认测试各有哪些新特点?单元测试:集成测试:确认测试:大题P48 2-5北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第一位数字不是0.校外电话又分为本市电话和外地电话两类。拨校外电话需要先拨0,若是本市电话则接着拨8位数字(第一位不是0),若是外地电话则拨3位区码后再拨8位电话号码(第一位不是0)。A:电话号码 校内电话号码校外电话号码校内电话号码 非零数字 位数字校外电话号码 本市号码外地号码本市号码 数字零 位数字外地号码 数字零 位数字 位数字非零数字 数字零 位数字 数字位数字 非零数字 位数字位数字 数字数字 其中, 意思是或,从校内电话号码或校外电话号码中选择一个; 表示重复,两边的数字表示重复次数的下限和上限;=意思是定义为;+意思是和,连接两个分量。P180-181 7-9如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据: (a)7月1日:集成测试开始,没有发现错误。(b)8月2日:总共改正100个错误,此时MTTF=0.4h(c)9月1日:总共改正300个错误,此时MTTF=2h根据上列数据完成下列各题。估计程序中的错误总数。为使MTTF达到10h,必须测试和调试这个程序多长时间?画出MTTF和测试时间之间的函数关系曲线。A:(1)据估算平均无故障时间MTTF的公式有:1/K(Et/100000-100/100000)=0.41/K (Et/100000-300/100000)=2得:K1000,Et=350 即程序中的错误总数达350。(2)当MTTF10h时,有1/K (350/100000- Ec/100000)=10得:Ec=340.按七八月分测试改错进度估算,还需进行2个月的集成测试。(3)MTTF和测试时间之间的函数关系曲线如下:P162-164 分析下列程序, 请画出该伪代码的程序流程图,并标注abc等路径号,设计该程序的条件覆盖测试用例和组合覆盖的白盒测试用例.void DoWork (int x,int y,int z) int k=0,j=0; if ( (x3)&(z5) ) j=x*y+10; /语句块2 j=j%3; /语句块3(1)对于第一个判定( (x3)&(z3 取真值记为T1,取假值记为-T1条件z5) ): 条件x=4 取真值记为T3,取假值记为-T3 条件y5 取真值记为T4,取假值记为-T4根据条件覆盖的基本思想,要使上述4个条件可能产生的8种情况至少满足一次,设计测试用例如下: 测试用例 执行路径 覆盖条件 覆盖分支 x=4、y=6、z=5 abd T1、T2、T3、T4 bd x=2、y=5、 z=15 ace -T1、-T2、-T3、-T4 ce (2)组合覆盖的目的是要使设计的测试用例能覆盖每一个判定的所有可能的条件取值组合。对DoWork函数中的各个判定的条件取值组合加以标记: 1、x3, z3, z=10 记做T1 -T2,第一个判定的取假分支 3、x=3, z10 记做-T1 T2,第一个判定的取假分支 4、x=10 记做-T1 -T2,第一个判定的取假分支 5、x=4, y5 记做T3 T4,第二个判定的取真分支 6、x=4, y5 记做-T3 T4,第二个判定的取真分支 8、x!=4, y=5 记做-T3 -T4,第二个判定的取假分支根据组合覆盖的基本思想,设计测试用例如下:测试用例 执行路径 覆盖条件覆盖组合号x=4、y=6、z=5 abd T1、T2、T3、T4 1和5 x=4、y=5、z=15 acd T1、-T2、T3、-T4 2和6 x=2、y=6、z=5 acd -T1、T2、-T3、T4 3和7 x=2、y=5、z=15 ace -T1、-T2、-T3、-T4 4和8选2题3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。 解:从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。 6-4 图6.18给出的程序流程图代表一个非结构化的程序,请问:(1) 为什么说它是非结构化的? (2) 设计一个等价的结构化程序。图6.18 一个非结构化程序(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图示盒图描绘了等价的结构化程序。(3)不使用flag把该程序改造为等价的结构化程序的方法如图所示。 6-5研究下面的伪码程序:LOOP:Set I to (START+FINISH)/2If TABLE(I)=ITEM goto FOUNDIf TABLE(I)ITEM Set FINISH to (I-1)If (FINISH-START)1 goto LOOPIf TABLE(START)=ITEM goto FOUNDIf TABLE(FINISH)=ITEM goto FOUNDSet FLAG to 0Goto DONEFOUND:Set FLAG to 1DONE:Exit画出程序流程图。程序是结构化吗?说明理由。若程序是非结构化的,设计一个等价的结构化程序并且画出流程图。此程序的功能是什么?它完成预定功能有什么隐含的前提条件。A:(1)该程序流程图:(2)结构化的程序是单入口单出口,而该程序的流程图有两个出口, 是非结构化程序。(3)其等价的结构化程序流程图:(4)该程序有二分查找的功能,它完成预定功能的隐含前提条件是:表数据是由小到大已作好排序的有序序列。6-8 画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?C EXA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论