版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 软件与软件工程1、软件及软件工程定义答:软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。 软件 = 程序+数据+文档 程序 = 算法+数据结构软件工程:为了克服软件危机,在软降的开发生产过程中采用工程化的方法,采用一系列科学的,现代化的方法和技术开发软件,将工程化的思想贯穿到软件开发和维护的全过程。2、软件危机的原因答:软件危机答:软件开发和维护过程中遇到的一系列严重问题。导致软件危机的原因:1)软件的规模加大、复杂性提高、性能增强2)软件是逻辑产品, 尚未完全认识其本质和特点3)缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法4)用户对软
2、件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应5)软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足3、简述瀑布模型及其特点1. 试简述瀑布模型软件开发方法的基本过程。问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)答:1)软件开发过程与软件生命周期是一致的;2)相邻二阶段之间存在因果关系;3)需对阶段性产品进行评审4、简述一下螺旋模型及其特点答:螺旋模型沿着螺线进行若干次迭代,图中的四个象限代表了以
3、下活动: (1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;(2)风险分析:分析评估所选方案,考虑如何识别和消除风险; (3)实施工程:实施软件开发和验证;(4)客户评估:评价开发工作,提出修正建议,制定下一步计划5、简述一下原型模型及其特点答:原型模型的优点是:(1)可及早为用户提供有用的产品。 (2)可及早发现问题,随时纠正错误。 (3)减少技术、应用风险,缩短开发时间,减少费用、提高生产率。 (4)通过实际运行原型,提供直接评价系统的方法,促使用户主动参与开发活动,加强了信息反馈,促进各类人员的协调,减少误解,适应需求变化,能有效提高系统质量。 原型模型的缺点是:(1)
4、缺乏丰富而强有力的软件工具和开发环境。 (2)缺乏有效的管理机制,还未建立起自己的开发标准。 (3)对设计开发环境要求较高。 (4)在多次重复改变原型的过程中,程序员会感到厌倦。 (5)系统的易变性对测试有一定影响,难于做到彻底测试,更新文档较为困难。适用范围:软件需求不明确、设计方案有一定风险的软件项目。第2章 软件项目管理1、自底向上的成本估算法的特点。答:精度高,但缺少子任务(模块)间的联系2、某项目总的功能点(FP)估算值是310,基于过去项目的人均月生产率是5.5FP,该项目总成本的估算值为560,000元,试估算月均人力成本。答:3、CMM答:即软件能力成熟度模型,是由美国卡内基-
5、梅隆大学软件工程研究所(CMU/SEI)推出的评估软件能力与成熟度的一套标准,该标准基于众多软件专家的实践经验。CMM侧重于软件开发过程的管理及工程能力的提高与评估,是国际上流行的软件生产过程标准和软件企业成熟度等级认证标准,它更代表了一种管理哲学在软件企业中的应用。4、下面是某个程序的流程图,画出程序图并计算它的McCabe复杂性度量。答:程序图如下:结点数n6,弧数m7,p2,则有 V(G)mnp7623.第3章 需求分析基础1、 请解释自顶向下,逐步求精。答:将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体
6、系结构。2、某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名住址存款类型存款日期利率等信息,并打印出存款单给储户;如果是取款,系统计算清单给储户。请用DFD描绘该功能的需求,并建立相应的数据字典。数据流名称:取款单、存款单别名:无简述:顾客存/取款时填写的单据来源:顾客去向:核查数据流量:200份/天组成:日期取|存款金额姓名地址存/取款类型+密码账号 数据流名称:存款凭证别名:无简述:顾客存款后得到的凭据来源:银行存款系统去向:顾客数据流量:200份/天组成:日期存款金额储户姓名储户地址存款类型账号利率操作员数据流名称:结算单别名:无简述:顾客
7、取款时得到的利率清单来源:银行储蓄系统去向:顾客数据流量:200份/天组成:取款日期取款金额储户姓名储户地址存款类型+利息总金额操作员数据流名称:存/取款信息别名:无简述:系统检查确认后得到的存/取信息数据流名称:存/取款信息别名:无简述:系统检查确认后得到的存/取信息来源:银行储蓄系统去向:登录数据流量:200份/天组成:日期存|取款金额储户姓名储户地址存款类型+账号利率密码操作员数据流名称:付款信息别名:无简述:存储系统处理的取款信息来源:银行储蓄系统去向:付款处理数据流量:200份/天组成:日期取款金额储户姓名储户地址存款类型+账号利息总金额操作员数据存储名称:账卡别名:无简述:存放用户
8、信息及存取款情况组成:储户姓名储户地址账号|日期|存/取款金额+存款类型利率密码操作员组织方式:数据文件,以储户姓名或账号为关键字进行索引查询要求:要求能立即查询并修改数据项名称:存款类型别名:无简述:国家规定的几类存款方式类型:字符串长度:2位取值范围及含义:00:定期; 01:零存整取;10:活期;11:定/活两便加工名:核查编号:激发条件:接受存款单或取款单输入:存款单或取款单输出:认定的合格的村/取款信息加工逻辑:根据账卡及用户存/取款单据if 单据存款单 then 存款单据是否填写规范,是否与现金一致else 审核是否为有效取款单,取款金额不得超出存款金额,密码是否正确3、(15分)
9、某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:1. 每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。2. 学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。3. 在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是有效的,
10、否则无效。4. 对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。5. 若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。6. 在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。 7. 根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员
11、会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。请采用结构化方法对这个系统进行分析与设计,试画出顶层数据流图和分层数据流图,并给出说明。参考答案图1 顶层数据流图 图2 分层数据流图第4章 软件设计基础1、 什么是软件体系结构?你能说出几种典型的软件体系结构?软件体系结构确定了系统的组织结构和拓扑结构,显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 仓库模型 客户机/服务器模型 分布式对象结构 抽象机模型2、简述“高内聚低耦合”的含义,并举例说明在软件设计中如何实现“高内聚低耦合”。答:答:内聚:又称
12、为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。 耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。高内聚,低耦合在软件工程的基本要求,主要是说模快之间和模块内部之间的关系紧密程度,高内聚就是提高模快内部的关联程度,低耦合当然就是降低模快之间的关联程度举例:(合理即可)3、下面给出一个求实函数方程F(x)在自变量区间 a, b 中的全部实根的算法。首先阅读此程序,然后(1) 画出消去全部goto语句的结构化程序流程图。(2) 将它改成N_S图和和PAD图。(3) 计算该程序的McCabe复杂性度量。在算法中,a与b是区间
13、a, b的两端点值;eps1与eps2是用户要求的求解精度。如果区间中点的函数值的绝对值小于eps1或新的小区间的长度小于eps2,就认为这个中点为根。float BinRoot ( float a, float b, float eps1, float eps2 ) float low= a, high = b, mid, fmid; float flow = Func(low), fhigh := Func(high); label L1, L2, L3; /标号说明,给定某些程序地址 if ( flow * fhigh > 0.0 ) BinRoot = 0; goto L3; /
14、无实根L1: mid = (low + high) / 2; fmid = Func(mid); if ( abs ( fmid ) <= eps1 ) L2: BinRoot = mid; goto L3; else if ( high - mid <= eps2 ) goto L2; else if ( flow * fmid > 0.0 ) low = mid; flow = fmid; goto L1; else high = mid; goto L1 ;L3: 答:(1)程序流程图 (2) N-S图:PAD图:(3) 环路复杂性度量 V(G) = 6下面是某个程序的
15、流程图,试分别用N-S图和PAD表示之,并计算McCabe复杂度。答:N-S图如下图所示PAD图如下图所示McCabe复杂度为64. (10分)画出求2010-2510年间闰年程序的N-S图表示PAD图,并计算程序的McCabe复杂度。McCabe复杂度为55、(10分)有一个短信系统:收发人员负责发送短信给用户和从用户接收短信。短信系统提供的功能需求为:1)短信发送:填写发送内容,选择发送用户,并指明是否要回执,然后通过(无线终端或短信网关)发送短信。2)短信接收:从无线终端或短信网关读取短信内容,并显示查看。请用DFD(数据流图)描绘该短信系统的功能需求,并将DFD转换为软件结构图。第5章
16、 程序设计语言和编码1、选择程序设计语言的一般准则答:1). 项目的应用领域。应尽量选取适合某个应用领域的语言。2). 算法和计算复杂性。 3). 软件的执行环境。要选取机器上能运行且具有相应支持软件的语言。4). 性能因素。应结合工程具体性能来考虑。 5). 数据结构的复杂性。要根据不同语言构造数据结构类型的能力选取 。6). 软件开发人员的知识水平以及心理因素。要特别注意选择语言时,尽量避免受外界的影响,盲目追求高、新的语言。 2、结构化程序设计特点答:1).自顶而下、逐步求精:这种逐步求精的思想符合人类解决复杂问题的普遍规律,从而可以显著提高软件开发的效率。体现了先全局,后局部、先抽象后
17、具体的方法,使开发的程序层次结构清晰,易读、易理解还易验证,因而提高了程序的质量。2).单入口和单出口的控制结构:结构化的程序是由且仅由顺序、选择、循环三种基本控制结构组成,既保证了程序结构清晰,又提高了程序代码的可重用性。 3、影响程序效率的因素答:1). 算法对效率的影响2). 存储效率3). 输入输出效率第6章 软件测试1、黑盒测试答:不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。2、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素Vi的关键码操作
18、getKey ( ),一是交换两数组元素内容的操作Swap( ): void SelectSort ( datalist & list ) /对表list.V0到list.Vn-1进行排序, n是表当前长度。 for ( int i = 0; i < list.n-1; i+ ) int k = i; /在list.Vi.key到list.Vn-1.key中找具有最小关键码的对象 for ( int j = i+1; j < list.n; j+) if ( list.Vj.getKey ( ) < list.Vk.getKey ( ) ) k = j; /当前具最小
19、关键码的对象 if ( k != i ) Swap ( list.Vi, list.Vk ); /交换 (1) 试画出此程序段的流程图和程序图; (2) 给出判定覆盖的测试路径; (3) 设计判定覆盖的测试用例。答:(1)程序的流程图和程序图分别如下 (2)判定覆盖的测试路径有5条: (3) 为各判定覆盖测试路径设计测试用例: 路径:取n = 1 路径:取n = 2, 预期结果:路径不可达 路径:取n = 2, 预期结果:路径不可达 路径: 取n = 2, V0 = 2, V1 = 1, 预期结果:k = 1, V0 = 1, V1 = 2 路径: 取n = 2, V0 = 2, V1 = 1, 预期结果:k = 1, 路径不可达 路径: 取n = 2, V0 = 1, V1 = 2, 预期结果:k = 0, 路径不可达 路径: 取n = 2, V0 = 1, V1 = 2, 预期结果:k = 0, V0 = 1, V1 = 23、试分别设计如图所示的程序的语句覆盖、判定覆盖、条件覆盖测试用例。答:语句覆盖测试用例:【(2,0,4),(2,0,3)】覆盖 ace判断覆盖测试用例:【(2,0,4),(2,0,3)】覆盖 ace; 【(1,1,1),(1,1,1)】覆盖 abd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省福州市福州师范大学附属中学2024届高三3月联合检测试题(数学试题文)试题
- 2024年那曲c1客运资格证考试
- 算法设计与分析 课件 6.2-贪心法-基本原理
- 算法设计与分析 课件 1.2.3-算法分析准则 - 时间复杂度 - 渐近分析及符号表示
- 2024年贵阳客运从业资格证考试题目及答案详解
- 2024年百色考客运从业资格证考试题目
- 2024年天津客运从业资格证模拟考试题库电子版
- 2024年哈尔滨客运资格证考试模拟题答案
- 厂房租赁协议
- 吉首大学《空间解析几何》2021-2022学年第一学期期末试卷
- 天大物化第六版答案pdf
- 质量通病(107页)ppt课件
- 实验室审核检查表参照模板
- 做新时代好队员竞选小队长演示PPT课件
- Linux网络管理
- 混凝土结构连接化学螺栓锚栓计算表
- 华为AC6005配置清单
- 第五章预应力混凝土工程
- 15吨每小时垃圾渗滤液管式超滤技术方案
- 危大工程台账
- 旺角城广场商铺招商代理协议书
评论
0/150
提交评论