资源描述
基本概念及管理部分复习题一、 填空:1.软件工程是将系统化的、严格约束的、可量化的方法应用于软件开发运行和维护,即将工程化应用于软件,并包括上述方法的研究。1.112软件危机的主要特点是,开发周期大大超过规定日期; 软件系统开发成本高、质量差 ;质量得不到保证; 软件系统开发人员短缺、质量低 ;软件系统维护难度大。1.93软件工程的三个视角为 工程的视角、技术 的视角、管理的视角 。1.124软件的特点是:没有物理形态的产品;质量因素仅取决于与产品研制过程与批量生产过程无关; 没有磨损,维护内容和其他产品不同 ;软件产品具有很强的定制性。1.65软件过程模型的定义是: 根据不同的实际项目来定义,贯穿于生命周期之中的,一组关键区域 。1.16 6软件工程管理要点(4个P)是: 人员、产品、过程、项目 。5.417软件的错误通常来源于: 处理逻辑、数据处理、标准化处理、 规约、 用户界面、 错误检测、 硬件接口、 软件接口 。5.298软件项目生产率测量包括: 文档页数、评审次数、发现的错误数、功能点、交付的源代码行数5.309软件测量的基本指标: 正确性、可维护性、完整性、可用性 。5.3810可维护性是指: 错误容易修改;环境变化容易适应。采用间接测量技术。可维护性软件与不可维护软件相比,MTTC (mean-time-to-change)平均修改时间较低 。5.3911项目计划活动:第一个活动是 可行性分析 第二个活动是 估算开发所用资源 。5.312项目计划中,估算软件开发资源包括: 开发环境资源(软件、硬件、工具)、可复用的软件构件、人力资源 。5.413任务进度的执行指标是(schedule performed index,SPI): SPI = BCWPi / BCWSi 。5.5514在软件项目计划中,甘特图(Gantt Chart) 可用于表示 任务时间和进度的计划 。5.43二、简答:1简述顺序模型、增量模型和喷泉模型的形式(可以画图表示)和特征。1.17顺序模型强调顺序性阶段性 很弱的反馈喷泉模型同时并发,循环增量模型强调版本的价值2如果你遇到一个已经有先例的项目,你会选择怎样的模型?如果项目的规模较大且时间又紧怎么办?1.25项目情况适用模型已经有先例的项目顺序模型(瀑布模型)问题明确且时间紧的项目RAD模型规模较大且时间紧的项目增量模型需求不确定的项目原型模型带有突破性技术的项目螺旋模型客户难以沟通和理解的项目原型模型明显复用潜力的项目构件模型3简述一般性风险包括的主要内容。 一般性风险分类 说明 产品规模(PS)与总体规模相关的风险商业影响(BU)与市场约束相关的风险客户特征(CU)与客户素质及沟通程度相关的风险过程定义(PD)与过程定义及遵守程度相关的风险开发环境(DE)与开发工具的可用性相关的风险建造的技术(TE)与开发复杂性及技术新旧程度相关的风险人员和经验(ST)与开发人员技术水平及经验相关的风险系统分析部分习题一、填空:1软件系统工程分为两种,一种为 业务过程工程 ,另一种为 产品工程 。2使某项业务能够有效地使用软件系统建造的信息体系,这种软件系统被称为: 业务过程工程。3将给定的功能映射为软件工作产品,这种软件系统被称为: 产品过程。4系统分析的建模分析语境图分为: 用户界面处理 输入处理 输出处理 处理和控制功能 测试和维护 。5软件需求分析(系统分析)的产品是 软件需求规格说明 。6结构化分析的数据建模是对系统中所有数据的描述,功能建模是对系中 加工规约 的描述,行为建模是对系统的 控制规约 的描述。7结构化分析的模型的工具是: 实体-关系图ERD(数据建模) 数据流模型图DFD可加控制流CFD(功能建模) 状态转换图STD(行为建模) 数据字典DD 。8实体关系图的基本元素是: 数据对象、属性、关系 ,以及关系上的三种表示 一对多 一对一、多对多 。9数据流图(data flow diagram DFD)的基本元素是:变换处理 外部实体 输入输出 数据存储 加工说明。10数据字典描述的内容包括: 名称 别名何处使用/如何使用 内容描述 补充信息 。11 数据流图DFD,从问题陈述中区分所有动词和名词,动词作为 变换处理 名词作为 外部实体 控制队形 数据存储 。12面向对象分析建造系统的基本元素是 封装了操作的对象类,以及类的实例对象 。13领域分析的目标是创建可以广泛地用于整个应用领域范畴的 可复用的软构件 。14.UML(Unified Modeling Language)用于 确定 表示和记录软件系统,它提供的是模型符号标记,尤其适用于面向对象那个的软件分析和设计。 15.5Use Case 使用场景图,表示 案例与角色 的交互,从用户的角度对系统的要求。16.Class类图,用 关联 来表示 对象类之间的关系 ,只反映系统的 静态结构_。17.7Sequence顺序图(轨迹图),表示 每个使用案例所涉及对象之间的时间轨迹表示 。用确定对象事件 来提取对象类的操作 。18.8Collaboration合作图,以不同方式表示的顺序图,强调每个对象(类)的事件,表示出 每个类上的作用事件,以及发出事件 。19.9State Transition状态转换图,表示 一个对象(类)的所有状态转换描述 。21.对象的状态是 行为属性的值,可以刻画一个对象行为的条件和范围 。22.Component构件图,表示系统组装成分。相关的某些 多个类构成的子系统 共同协作完成一个特定的服务,则它们被组成构件。23.Deployment布置图,表示 软件组件的划分和部署 示意图,属于软件体系结构的描述。 24继承表示 子类可以自动拥有父类全部属性和服务 的对象类之间的关系。25聚合表示 对象之间(即一个或一些对象是另一个对象的组成或部分) 的组成关系。二、简答:1简述面向对象方法和结构化方法的最根本的区别实体 组装式;过程 算法式1)结构化分析的实体关系图,关注实体的属性和相互间的关系;而面向对象的分析,除此之外还有非常主要的一点,就是关注实体的行为。2)结构化分析的数据流图,将数据和加工处理分开;而面向对象的分析是将数据实体和他们的处理动作视为不可分割的整体来考虑的。3)结构化分析建造系统的元素是基于功能及过程的;而面向对象分析建造系统的基本元素是封装了操作的对象类,以及类的实例对象2简述结构化分析步骤对问题陈述做语法分析:(1) 区分所有动词和名词(2) 动词作为“变换处理”(3) 名词作为外部实体、控制对象和数据存储(4) 画 DFD (5) 对“变换”做进一步的陈述精化(6) 重复做 1)到4)步 (7) 适当加入控制线,画 CFD(8) 用状态变迁图协助分析控制事件和系统状态,画 STD(9) 可以写必要的规约变换加工小说明(10)对所有系统的加工和产生数据,以及控制事件和转换状态定义数据字典DD,既明确做出解释。3举例说明继承关系和聚合关系答:继承关系:ABCB = A + BC = A + C聚合关系:ABC4简述面向对象分析方法的步骤1)分析使用场景,画 Use Case 2)标识对象类 3)画Class对象类图4)组织类结构(继承、聚合关系)5)定义主题(子系统包)6)画Sequence顺序图(轨迹图)7)画State Transition状态图8)画Collaboration协作图软件设计部分复习题一、 填空:1.软件设计的4个活动包括: 数据设计, 体系结构设计 , 接口设计,和 构建逻辑设计 。2.软件设计的三个基本思想方法是 抽象 逐步求精 模块化 。3.模块划分的可以带来模块成本下降,但是模块划分也会带来 集成成本 增高的问题。4水平划分是将系统功能划分成独立的几部分,(输入、处理、输出),这样可以使系统 问题清晰、互无干扰 。5垂直划分的表示原则是:上层不做具体处理,最下层(叶节点)做具体的处理。这样的分层便于 引发的副作用小 。 6一个模块直接修改另一个模块的内容,这种耦合被称为 内容耦合 。7公共耦合是指 两个以上的模块共同引用一个全局数据 。8控制耦合是指接收模块的动作依赖于 控制信号 。9两个模块接口的参数,包含相同的内部结构。这种耦合称为 标记耦合 。10数据耦合是最好的模块耦合方式,仅是模块之间 的数据传递 。11偶然内聚是一种不好的内聚方式,它是 把没有关系的分散在多处的成分组成模块 。12仅仅是逻辑功能相关成分合在一起的内聚形式,叫做 逻辑内聚 。13时间内聚是将 需要在同一时间执行并无逻辑联系的成分组成模块 。14把过程顺序相关的功能成分合在一起的内聚形式,叫做 过程内聚 。15通讯内聚是将 需要对相同的外部数据进行操作的 成分合在一起。16一个内部成分的输出是另一个内部成分的输入,这样可以将它们合起来,这样的方式我们叫它 顺序内聚 。17理想的内聚方式是只完成单一的功能的 功能内聚。 18产生模块不可预测的原因通常是 非单一功能成分的组合,或者是内部多分支情况处理 。19.界面的问题设计包括:系统响应的时间问题、 联机帮助 、错误提示问题和 命令标记 。20.界面设计的基本原则,也称黄金规则,包括: 至于用户的控制之下、 减少用户的记忆负担 保持界面风格一致 。21.面向对象设计方法的子系统(服务)划分是分层的,其层次与 外界可视性 相关。 22.面向对象设计方法的服务之间有两种形式的:它们是 C/S 和 P2P 方式。23.控制线程操作的分布性问题,在面向对象设计方法中,叫做 并发性设计 。24.面向对象的任务管理设计其目标是 设计系统的分散服务对象,组成独立并发的任务 。25.面向对象设计中的通讯设计,是完成系统中服务对象的协作关系描述,采用“协议”的方式,协议包括: 消息格式,访问的登记,注册权限 。26.面向对象的设计方法中,对象设计包括两部分的描述 接口 和 实现 。二、简答:1举例说明分解模块可以减少控制信息传递例如:控制功能模块A功能 (根据k 决定执行 子功能 ).A的子功能K=1或k=0 B功能控制功能模块 A功能 B功能 C功能(A子功能)分解2举例说明合并模块可以减少全局数据的引用合并 A功能 B功能例如:全局数据修改修改A功能 .B功能数据 K功能如果B做出的判断,也要影响到C,需要加标记到A。怎样解决才是更合理的安排?为什么?3 GF E A B C D B的判断上移,或C下移到B的控制域内4.简述在界面设计时,问题设计中错误提示应具有的特征:使用可理解的术语 提供从错误中恢复的建议 指出错误导致的不良后果 应该有视觉和听觉提示不应带有责怪色彩5将下面的程序流程图转换为N-S图:答案见课件第三章51页。 开始 s1YN x1 s2 s3 i:=1N i0 s4 s5 i:=i+1 s6Y z0N s7 s8 结束 6.将下面的变化行数据流图(DFD)转换为初始的模块结构图(MSD):17 a c i j 6345 g e f 2 d9 b h k (注:虚线表示输入、变换、输出之间的界面) 控制模块 输出处理模块主要处理模块输入处理模块 7用决策表描述下列问题: 根据库存量与价格考虑对商品调价。如果库存在5000以上,价格在100元以上,可以下调价格10%,价格在100月以下,可下调5%;如果库存在5000以下,价格在100元以上,可上调10%,价格在100元以下,可上调20%。条件1234库存在5000元以上TTFF库存在5000元以下FFTT价格在100元以上TFTF价格在100元以下FTFT动作可下调10%可下调5%可上调10%可上调20%测试部分复习题一、 填空:1.软件测试的目标是 努力产生一个好的测试案例,为了发现软件中的错误 。2.能 成功发现软件错误的 测试才是好的测试 。3.冗余测试案例就是 重复相同意义的测试案例 。4.黑盒测试,是为证实软件功能的测试,其途径是 通过在软件接口上进行测试 。 5.为证实软件内部的执行规约,在程序内部寻找错误的测试被称为 白盒测试 。6.路径测试中的独立路径是指路径 至少沿一条新的边移动的路径 。7.等价测试中,定义等价测试案例根据输入分类,分为4类 输入时指定范围 输入是特定范围 输入是集合的元素 输入时布尔值 。8.边界值测试策略中,如果输入是在a和b指定范围内,则测试案例应该包括: 案例执行包含a,b,略小于a和略大于b 。9.附属于编码步骤的测试被称为 单元测试 。11.软件调试的过程是 发现错误并消除错误的过程 。12.面向对象的测试焦点是 类 。13.面向对象测试技术中的随机测试方法,是 在最小和最大测试序列之间 随机地产生一系列的不同操作案例 。14.面向对象技术测试的划分测试方法,是按照 状态操作 属性操作 基本操作 来划分类中的操作,设计案例的。15.面向对象的线程测试可以用 协作图 来规划测试案例。 16.通过Use Case,捕获用户必须完成的任务,来设计案例测试软件的方法,叫做 基于使用的集成测试方法 。17.基于行为的测试,是以 状态转换图 来导出测试案例的。二、简答:1简述设计白盒测试案例的目标是什么白盒测试案例的目标:1)保证模块中的所有独立路径至少被使用一次2)对所有逻辑值均需测试真和假,3)在上下边界及可操作范围内运行所有循环4)检查内部数据结构以确保有效的范围2简述自顶向下和自底向上策略的集成步骤。自顶向下步骤:1.主控模块作为测试驱动2.下层桩模块,每次一个地被替代为真实模块3.测试每次真实模块替代的情况4.回归测试5.循环2到4,直到整个系统被构造自底向上集成步骤:1.底层模块组合为特定功能的簇2.编写驱动程序,包括测试簇的输入输出案例3.测试簇4.移走驱动程序,向上扩大簇的组合3简述a测试和b测试。a测试:用户到开发场所,在开发者指导下进行测试,开发者记录出现的问题b测试:用户在使用现场,开发者不在场,用户记录使用中的问题,报告问题4根据下面给出的流图,设计最少的测试案例,实现路径测试全部分支覆盖。 (其中:A,B,C是输入数据。语句块改变B、C的值, B:=B+1、C:=C+1; 语句块改变A的值,A:=A+1。除此之外,其它语句块均不改变它们的值。) 环路复杂度 = 4nY 路径1 1-2-3-4-5,路径2,3,4A3测试案例:y路径1A=3 B=1 C=2路径2A=4 B=1 C=3y路径3A=5 B=3 C=2nYynY4C1687B21235路径4A=6 B=4 C=0 5简述面向对象分析方法步骤
展开阅读全文