3. 某计算机系统投入使用后、 5年内每年可节省人民币 2O0O元,假设系统的投资额为5000元,年利率为 12%。试计算投资回收期和纯收入。 货币的时间价值
前三年累积的经济效益是4814.28元,最初投资为5000元,5000-4814.28=185.72 第4年收益是1273.元。则投资回收期为185.72/1273.+3=3.15年 纯收入:7224.53-5000=2224.53>0 所以这个系统值得开发
2.一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有的库存清单程序并且编写产生报表的程序,估计共需5000元;系统修改后能及时定货将消除零件短缺问题,估计因此每年可以节省2500元,五年共可节省12500元。假定年利率为12%,利用上面计算货币现在价值的公式可以算出修改库存清单系统后每年预计节省的钱的现在价值,投资回收期,纯收入。 年 现在值(元) (1+i)n 将来值(元) 累计的现在值(元) 1 2 3 4 5 2500 2500 2500 2500 2500 1.12 1.25 1.40 1.57 1.76 2232.14 1992.98 1779.45 1588.80 1418.57 2232.14 4225.12 6004.57 7593.37 9011.94 修改库存清单系统两年以后可以节省4225.12元,比最初的投资(5000元)还少774.88元,第三年以后将再节省1779.45元。774.88/1779.45=0.44,因此,投资回收期是2.44年。
纯收入:9011.94-5000=4011.94>0 值得开发
3.入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。使用流程图、PAD图
4、什么是判定/条件覆盖?为以下程序流程图设计判定/条件覆盖测试用例并标明程序执行路径。
开始a(x>1) AND (y=0)Fc(x=2) OR (z>1)Fe结束TTbd语句段1语句段2 判定/条件覆盖——它是指设计足够的测试用例,即满足条件覆盖又满足判定覆盖。
测试用例:x=2,y=0,z=3(覆盖x>1,y=0,x=2,z>1,通过路径abcde); x=1,y=1,z=1(覆盖x≤1,y≠0,x≠2,z≤1,通过路径ace)。
5、根据下列条件使用等价类划分法设计测试用例。(书P118 例)
某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065 (1)划分等价类并编号,如下表示:
(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子
(3)为不合理等价类测试用例,至少设计一个测试用例
6、将下面给出的伪码转换为N-S图。(8分)
void root ( float root1, float root2 ) { i = 1; j = 0; while ( i <= 10 ) {
输入一元二次方程的系数a, b, c; p = b*b – 4*a*c;
if ( p < 0 ) 输出“方程i无实数根”; else if ( p > 0 ) 求出根并输出; if ( p == 0 ) {
求出重根并输出; j = j + 1; }
i = i +1; }
输出重根的方程的个数j; }
i = 1; j = 0;
while ( i <= 10 )
输入a, b, c; 计算 p = b2 - 4ac;
p < 0 ? F T
p > 0 ? 输出“方程i”无F T
实根
求出根并输出
p == 0 ? T F
求出重根并输出; j = j + 1;
i = i + 1;
输出重根的方程个数i
7、某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定树表示与上述每种条件组合相对应的计算行李费的算法。
8、使用PAD图描述在数组A(1)~A(10)中找最大数的算法
9、 假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图。
1、 什么是软件工程?软件工程的基本目
标是什么?
运用工程学的原理和方法来组织和管理软件的生产和管理,以保证软件产品开发、运行和维护的高质量和高生产率。
软件工程的研究内容和最终目的是采用工程化的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
2、 瀑布模型的阶段有哪些?各个阶段的
任务是什么? 瀑布模型有6个阶段,即可行性研究与计划、需求分析、设计、编程、测试、运行于维护。 任务分别为:
(1) 确定软件系统是否值得开发; (2) 确定系统做什么;
(3) 把分析阶段产生的软件需求说明转换为
用是当手段表示的软件设计文档; (4) 按模块说明书用某一种软件的设计语言
为每个模块编写程序;
(5) 排除前面3个阶段的错误,保证被开发
软件的质量;
(6) 在实际运行中不断修改、完善、维护,
使系统持久地满足用户的需要。 3、 什么是数据字典(DD)
用来对数据流图中出现的所有名字进行定义,它由四个条目构成:数据流、文件、数据项、加工。
4、 什么是黑盒测试?什么是白盒测试? 黑盒法是根据程序的功能说明来设计测试用例。黑盒法是在程序的接口上进行测试,看它能否满足功能要求,输入能否正确接收,并能否输出正确的结果,以及外部信息(如数据文件)的完整性能否保持。 白盒法对程序的所有逻辑路径进行测试,在不同点检查程序的状态,确定实际状态和预期的状态是否一致。
5、 黑盒测试法有哪些?掌握等价测试法
的用例分析(见习题)。 (1) 等价分类法 (2) 边缘值分析法 (3) 因果图法 (4) 错误推测法
6、 面向对象的特征有哪些?
有三个特征:封装、继承、多态性。
7、 可行性研究的目的是什么?可行性研
究的4个内容?可行性研究的任务? 答:可行性研究的目的是最终确定这样的软件项目是否能够开发,是否值得开发,是否需要更改问题定义的内容。可行性研究的内容是技术可行性分析、经济可行性分析、社会因素可行性分析、操作可行性分析以及开发方案可行性分析。可行性研究最根本的任务是对以后的行动方针提出建议。 10、需求分析的任务?软件需求分哪三个层次,并解释说明?
答:需求分析的任务是确定系统做什么。需求分析分为:问题分析、需求描述和需求评审。问题分析:系统分析员通过对问题及其环境的理解、分析和综合,清除用户需求的模糊性、歧义性和不一致性,并在用户的帮助下对相互冲突的要求进行折中。需求描述:正确地描述现实问题以需求模型为基础,考虑到问题的软件可解性,生成需求规格说明和初步的用户手册。需求评审:对需求规格说明和初步的用户手册进行复核,以确保软件需求的全面性、精确性,并使用户和软件设计人员对需求规格说明及用户手册的理解达成一致。
11、软件测试的步骤有哪些? 答:(1)单元测试 就是对逐个模块进行测试,通常称为“分调”,在编码阶段进行,单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。
(2)整体测试 是根据模块结构图将各个模块连接起来,装配成一个符合设计要求的软件系统。
(3)有效性测试 是通过黑盒测试来证实软件功能与用户要求是否一致。
(4)系统测试 这一步可以发现设计和分析阶段的错误。
12、白盒测试法有哪些?掌握判定/条件覆盖的测试用例
答:语句覆盖、判定覆盖(或称分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖。判定/条件覆盖的测试用例见书上P115
13、UML有9种图分别是什么?及各自的协作图描述对象间的协作关系,协作图跟顺特征? 序图 相似,显示对象间的动态合作关系。答:UML有9种图分别是用例图、类图、除显示信息交换外,协作图还显示对象以及对象图、顺序图、协作图、状态图、活动图、它们之间的关系。协作图的一个用途是表示构件图(构件图)、部署图(部署图)。 一个类操作的实现。 用例图是从用户角度描述系统功能, 是用状态图是一个类对象所可能经历的所有历户所能观察到的系统功能的模型图,用例是程的模型图。状态图由对象的各个状态和连系统中的一个功能单元 接这些状态的转换组成 类图描述系统中类的静态结构。不仅定义系活动图是状态图的一个变体,用来描述执行统中的类,表示类之间的联系如关联、依赖、算法的工作流程中涉及的活动。活动图描述聚合等,也包括类的内部结构(类的属性和了一组顺序的或并发的活动。 操作)。类图是以类为中心来组织的,类图构件图为系统的构件建模型—构件即构造中的其他元素或属于某个类或与类相关联 应用的软件单元—还包括各构件之间的依对象图是类图的实例,几乎使用与类图完全赖关系,以便通过这些依赖关系来估计对系相同的标识。他们的不同点在于对象图显示统构件的修改给系统可能带来的影响。 类的多个对象实例,而不是实际的类 部署图描述位于节点实例上的运行构件实顺序图显示对象之间的动态合作关系,它强例的安排。节点是一组运行资源,如计算机、调对象之间消息发送的顺序,同时显示对象设备或存储器。这个视图允许评估分配结果之间的交互。顺序图的一个用途是用来表示和资源分配。 用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。
判断题
1、UML中一共有九种图:它们是用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图(正确)
2、用例图是从程序员角度来描述系统的功能(错误)
3、类图是描述系统中类的静态结构,对象图是描述系统中类的动态结构 (错误) 4、活动图和状态图用来描述系统的动态行为(正确) 5、协作图的一个用途是表示一个类操作的实现(正确) 填空
1.UML由视图、图、模型元素、公共机制等几个部分组成。
2. UML视图分为用例视图、 逻辑视图 、组件视图 、进程视图和配置视图5种视图。
3.类之间的关系包括关联关系、泛化关系、依赖关系、聚合关系和组合关系。 4.软件测试分为四个步骤:单元测试、联合测试有效测试和系统测试。 5.软件生存周期分为6个阶段,分别是可行性研究与计划,需求分析阶段、设计阶段、编码阶段,测试阶段和运行与维护阶段。
8、 什么是软件生存周期模型?软件生存周期模型有哪些?各自的特点,适用场合。 软件生存周期模型是软件开发全部过程、活动和任务的结构框架。 瀑布模型、增量模型、迭代模型、原型模型、螺旋模型和喷泉模型 序号 1 2 3 4 5 6 模 型 名 称 优 点 瀑布模型 增量模型 迭代模型 原型模型 螺旋模型 喷泉模型 简单好学 缺 点 逆转性差 适 用 范 围 面向过程开发 系统可拆卸和组装 有高素质软件团队 已有产品的原型 庞大、复杂、高风险项目 面向对象开发 可以分阶段提有时用户不同意 交 需求可变 开发速度快 需求可变 提高开发效率 风险大 不利于创新 建设周期长 不利于项目的管理 瀑布模型的特点:过程逆转性很差或者说不可逆转,因为根据上游的错误会在下游进行发散性传播的原理,所以逆转将会延误工期,增加成本,造成重大损失。 选择瀑布模型必须满足下列条件:
(1) 在开发时间内需求没有或很少变化。 (2) 分析设计人员对应用领域很熟悉。 (3) 低风险项目(对目标、环境很熟悉)。 (4) 用户使用环境很稳定。
(5) 用户除提出需求以外,很少参与开发工作。
瀑布模型适合于功能和性能明确、完整、无重大变化的软件开发
9、 用例图之间的关系有哪些?并解释说明。 关系 参与者与用例关联 之间的关系 解释 表示参与者与用例之间的交互,通信途径。 (关联有时候也用带箭头的实线来表示,这样的表示能够显示地表明发起用例的是参与者。) 箭头指向的用例为被包含的用例,称为包含用例;箭头出发的用例为基用例。包含用例是必选的,如果缺少包含用例,基用例就不完整;包含用例必须被执行,不需要满足某种条件;其执行并不会改变基用例的行为。 箭头指向的用例为被扩展的用例,称为扩展用例;箭头出发的用例为基用例。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性;扩展用例在一定条件下才会执行,并且其执行会改变基用例的行为。 发出箭头的事物“is a”箭头指向的事物。泛化关系是一般和特殊关系,发出箭头的一方代表特殊的一方,箭头指向的一方代表一般一方。特殊一方继承了一般方的特性并增加了新的特性。 包含 用例之间的关系 扩展 参与者之间的泛化 关系 关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系
泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系