复习题组「31-35/31-35/7/7」
黑色字体为原始答案,蓝色是补充整理的答案
一、名词解释
31.边界值测试针对各种边界情况设计测试用例
边界值分析是一种常用的黑盒测试技术,大量工作经验表明,大量的错误出现在输入或输出范围的边界上,因此,使用等于、小于或大于边界值的数据对程序进行测试,发现错误的较大,这就是边界值测试。
32.软件支持过程支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。
软件生存周期过程包括:基本过程、支持过程、组织过程。
软件支持过程是有关各方按他们的支持目标所从事的一系列相关活动集。支持过程分为:文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程、问题解决过程等。
33.项目整体管理也叫集成管理,保证项目各个要素相互协调所需要的管理过程,它需要在相互影响的项目目标和方案中作出平衡,以满足或超出项目干系人的需求和愿望。
34.预防性维护预防性维护是指采用先进的软件工程方法对需要维护的软件或软件中的某一部分重新进行设计、编制和测试,提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础。
为了降低设备失效或功能退化的概率,按预定的时间间隔或规定的标准进行的维护。
35.对象图对象图描述了一组对象以及它们之间的关系,表示类的对象实例。
对象图描述的是参与交互的各个对象在交互过程中某一时刻的状态。
和类图一样,对象图对系统的静态设计或静态进程视图建模,对象图更注重现实或原型实例,这种视图主要支持系统的功能需求,对象图描述了静态的数据结构。对象图可以被看作是类图在某一时刻的实例。
二、简答题
31.影响软件质量的因素分哪两大类?(1)可以直接度量的因素,如单位时间内千行代码(KLOC)中所产生的错误数。
(2)只能间接度量的因素,如可用性或可维护性。
32.如何衡量软件成本,各表示什么含义?成本估算和成本管理是软件项目管理的核心任务之一。在制定项目计划时,就必须对项目需要的人力及其他资源、项目持续时间和项目成本做出估算。如果新项目和以往的项目类似,估算可以参考以前的成本费用。现在已有一些用于软件成本估算的技术可供借鉴。这些估算技术各有其优缺点,但以下几方面是共同的:
–事先建立软件的工作范围;
–以软件度量(经验度量、相似工程类比的度量)为基础做出估算
–把项目分解为可单独进行估算的小块
成本估算的工具和技术:
1.类比估算法:也叫自上而下估算法,他是使用以前相似项目的实际成本作为目前项目成本估算的根据。
2.自下而上估算法:是估计各个工作项或活动,并将单个工作项汇总成整体项目估算的一种方法,又是成为基于活动成本法(ABC法)。
3.工作分布估算法:使用项目阶段百分比来估算。
4.参数模型法:是在数学模型中应用项目特征(参数)估算项目成。
5.启发式估算:使用历史数据和统计关系来估算
6.分阶段估算:按阶段逐一估算项目(最适合高风险项目的估算技巧)
7.计算机化工具。
软件成本衡量/估算的四个过程可分为:估算规模、估算工作量、估算工期和估算成本这4个过程,最终确定软件成本。
估算规模:估算规模是后续计算软件项目的工作量、成本和进度的主要依据,是项目范围管理的关键,要根据可行性研究报告或类似文档明确项目需求及系统边界。选择估算方法时,要依据项目特点和需求详细程度来决定。
估算工作量:项目工作量估算都应该采用两种估算方法来对估算结果进行交叉验证,以追求估算的准确性。工作量的估算结果是一个范围,不是单一的值。
估算工期:软件项目工期的估算同样可以采用类推法、类比法和方程法。
估算成本:在获得工作量和工期后,采用科学的方法来进行成本估算。其中成本估算需要对直接人力成本、间接人力成本、间接非人力成本及直接非人力成本分别进行估算。
————分割线————
常用的四大成本估算方法;
(1)经验法:经验法也叫专家法,是由行业内经验丰富的专家背靠前一起依据自己的行业经验对软件项目进行整体的估算。前期的经验法基本上属于拍脑袋来进行项目的大概估算,后续的经验法便基于WBS的软件进行估算和加进了DELPHI/加权平均。这种方法依赖评估人员的主观性过大,所以估算出的结果误差较大。
类推法:类推法是基于量化的经验进行估算的。采用类推法时,所选择的历史项目与待评估的项目一定要是高度相似的,历史数据也要尽量选择本组织内的数据,并且一定要对差异之处进行调整。类推法虽然是迄今为止理论上最可靠的估算方法,由于它是以“估”为主的,脱离不了评估人员的主观性,所以使用类推法的估算结果经常产生极大偏差。
类比法:类比法是基于大量历史项目样本数据来确定目标项目的预测值,通常是以50百分位数为参考而非平均值。当待评估项目与已完成项目在某些项目属性(如应用领域、系统规模、复杂度、开发团队经验等)类似时,可以使用类比法。类比法的行业基准较少,此时可以通过选择单个项目属性进行筛选比对,根据结果再进行工作量调整。
方程法:方程法是基于基准数据建模,可以行业数据与企业数据相结合,通过输入各项参数,确定估算值。
当需求极其模糊或不确定时,如果此时具有高度类似的历史项目,则可直接采用类推法,若此时具有与本项目部分属性类似的一组基准数据,则可以直接采用类比法。对于规模估算已经开展的项目,可采用方程法。
33.需求分析的任务是什么?1、确定对系统的综合要求:
2、分析系统的数据要求
3、导出系统的逻辑模型
4、修正项目开发计划
5、开发原型系统
一、确定对系统的综合要求
1.功能需求
这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。
2.性能需求
性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。
3.可靠性和可用性需求
可靠性需求定量地指定系统的可靠性。
可用性与可靠性密切相关,它量化了用户可以使用系统的程度。
4.出错处理需求
这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从另一个系统发来的违反协议格式的消息,应该做什么?注意,上述这类错误并不是由该应用系统本身造成的。
5.接口需求
接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。
6.约束
设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。在需求分析阶段提出这类需求,并不是要取代设计(或实现)过程,只是说明用户或环境强加给项目的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。
7.逆向需求
逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,我们应该仅选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。
8.将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
注意:举例让学生理解:这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。
二、分析系统的数据要求
任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。
分析系统的数据要求通常采用建立数据模型的方法(举例)。
三、导出系统的逻辑模型
综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
四。修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
34.什么是因果图,用于何处?因果图是根据分析时对各种条件可能产生的结果的一种对照分析法。用于软件黑盒测试.
鱼骨图是由日本管理大师石川馨先生所发明出来的,故又名石川图。鱼骨图是一种发现问题“根本原因”的方法,它也可以称之为“Ishikawa”或者“因果图”。其特点是简捷实用,深入直观。它看上去有些象鱼骨,问题或缺陷(即后果)标在"鱼头"外。在鱼骨上长出鱼刺,上面按出现机会多寡列出产生生产问题的可能原因。鱼骨图有助于说明各个原因之间如何相互影响。它也能表现出各个可能的原因是如何随时间而依次出现的。这有助于着手解决问题。
因果图:用画图的方式表达输入条件和输出结果之间的关系。
因果图是根据分析时对各种条件可能产生的结果的一种对照分析法。用于软件黑盒测试.
适用场合
在一个界面中有多个控件,如果控件之间有组合关系或者限制关系,不同的控件输入组合会产生不同的输出结果。为了弄清不同的输入结果会产生怎样的输出结果,可以使用因果图或者判定表法。(一般适合测试组合数量较少的情况)
35.举例说明什么是类的整体部分结构如建立一个时钟类,这个类中的属性如秒、分钟、小时等,加上对属性的操作如秒记时,分钟记时,小时记时等,就是一个类的整体部分结构。
类的整体与部分的关系,又叫做聚合关系,考虑到一个整体类的组成结构。找出成员类。即成员对象是整体对象的一部分,但是成员对象可以队里整体对象独立存在。
聚合关系有一个特点,那就是可替换。
比如学生和班级的关系,班级由学生组成,其生命周期不同,整体不存在了,部分依然存在。
三、论述题「7」
7.论述软件工程中的文档类型和作用答:按照文档产生和使用的范围,软件文档大致可分为三类:开发文档、管理文档、用户文档。
开发文档:这类文档是在软件开发过程中,作为软件开发人员前一阶段工作成果的体现和后一阶段工作依据的文档。包括软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、可行性研究报告、项目开发计划。
管理文档:这类文档是在软件开发过程中,由软件开发人员制定的需提交人员的一些工作计划或工作报告。使管理人员能够通过这些文档了解软件开发项目安排、进度、资源使用和成果等。包括项目开发计划、测试计划、测试报告、开发进度月报及项目开发总结。
用户文档:这类文档是软件开发人员为用户准备的有关该软件使用、操作、维护的资料。包括用户手册、操作手册、维护修改建议、软件需求说明书。
四、应用题
7.某公司准备开发公共汽车刷卡计费系统,具体需求如下:(1)司机在每到达一站时,点击到站按钮,通知系统已到达一站;
(2)乘客上下车时都要刷卡。上车刷卡通知系统该乘客已上车。在下车刷卡时,系统根据该乘客乘坐的站数,计算票价,并从卡中的余额中扣除。
(3)乘务员可查询某乘客的卡是否在上车时刷过,也可查询每个班次的运营情况(如,载客量和运营额)。
(4)管理员可以通过系统调节费率,记费方式等。
要求:
(1)请根据以上对该系统主要需求的描述,并尽可能地考虑一些特殊的情况,进行需求分析,建立该系统完整的用例图,并附用例的文本说明(10分)。
(2)请建立该系统的OOA类图(10分)。
(3)用顺序图描述乘客下车刷卡时,系统中有关的对象的交互序列(10分)。
黎小美May