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

下载本文档

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

文档简介

1、第一章 软件工程概论1-11什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。(2)软件产品的质量往往靠不住。(3)一般软件很难维护。(4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本与开发进度难以估计。(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。3为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑

2、部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。七、什么是软件生命周期模型?有哪些主要生存期模型?答:1、软件生命周期是指从软件定义、开发、使用、维护到淘汰的全过程。它由软件定义、软件开发和运行维护(也称软件维护)3个时期组成,每个时期又进一步划分成若干阶段。2、瀑布模型、原型开发模型(快速原型模型、演化模型、增量模型)、螺旋模型、喷泉模型、1)瀑布模型:瀑布模型(传统的软件周期模型)

3、严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入到下一阶段,整个模型就像一个飞流直下的瀑布。优点:可强迫开发人员采用规范的方法,严格规定了各阶段必须提交的文档;要求每一阶段结束后,都要进行严格的评审。与它最相适应的开发方法是结构化方法。缺点:不适应用户需求的改动。2)快速原型模型快速原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃。主要用于需求分析阶段。不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法,所以不能定义完善的文档。特征:简化项目管理、尽快建立初步需求、加强用户参与和决策。具有广泛技能水平的原型化人员是原型实

4、施的重要保证。原型化人员应该是具有经验与才干、训练有素的专业人员。衡量原型化人员能力的重要标准是他是否能够从用户的模糊描述中快速获取需求。3)增量模型增量模型主要用于设计阶段,把软件产品划分为一系列的增量构件,分别进行设计、编程、集成和测试。新的增量构件不得破坏已经开发出来的产品。4)螺旋模型螺旋模型综合了瀑布模型和原型模型中的演化模型的优点,还增加了风险分析。螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直转到软件生命期结束。第二章 课后答案一、在软件开发的早期阶段为什么要进行可行性研究?应该从哪方面研究目标系统的可行

5、性?答:1、可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决2、(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;(2)经济可行性:经济效益是否超出开发成本;(3)操作可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。四、目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。 医院对患者8监护系统的基本要求是随时接收每个病人的生理

6、信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。答:从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。此外,系统还应该具有“

7、定时取样生理信号”、“更新日志”和“产生病情报告”的功能。为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。五、 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用定义数据字典的方法,定义上述的电话号码。答:数据结构的描述 符 号 含 义 举 例 被定义为 与 x = ab.,. 或 .|. 或 x

8、 = a , b,x = a | b . 或 m.n 重复 x = a, x = 3a8(.) 可选 x = (a)“.” 基本数据元素 x = “a” . 连结符 x = 1.9电话号码=校内电话号码|校外电话号码校内电话号码=非零数字+ 3 位数字 /后面继续定义校外电话号码=本市号码|外地号码本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=1|2|3|4|5|6|7|8|9数字零03位数字3数字3 /3至3个数字8位数字=非零数字+7位数字7位数字=7数字7数字0|1|2|3|4|5|6|7|8|9第三章一、为什么要做需求分析?通常对软件系统有哪些需求?答:1、可

9、行性分析研究阶段已经粗略的描述了用户的需求,甚至还提出了一些可行的方案,但是,许多细节被忽略了,在最终目标系统中是不能忽略、遗漏任何一个微小细节的,所以,可行性研究不能代替需求分析。 2、1)功能需求;2)性能需求;3)可靠性和可用性需求;4)出错处理需求;5)接口需求;6)约束;7)逆向需求;8)将来可能提出的需求:三、银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密

10、码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。答:六、 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。 答:从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸

11、”。引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。 第四章1. 系统设计包括哪两个阶段?系统设计包括总体设计与详细设计两个阶段。2. 总体设计的主要任务是什么?总体设计的主要任务是完成软件结构的设计,确定系统的模块及其模块之间的关系。3. 什么是模块?模块具有哪几个特征?总体设计主要考虑什么特征?模块是数据说明、可执行语句等程序对象的集合,可以单独命名且可通过名字来访问。模块具有输入和输出(参数传递)、功能、内部数据结构(局部变量)和程序代码四个特性。概要设计主要考虑输入、输出(参数传递)和功能两个特性。7. 事务型数据

12、流由哪几部分组成?事务型结构由至少一条接受路径、一个事务中心与若干条动作路径组成。10.欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取款单和存折交给银行工作人员,然后由系统作以下处理;(1)业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折交下一步处理;(2)存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;(3)取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。绘制该系统的数据流图和软件结构图。 顶层一层二层 软件结构图补充1:请为

13、某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多( M ' N )联系;类似地,零件与供应商之间的联系“订购”,也是多对多( M ' N )联系。实体类型“零件”的主要属性是:零件编号,零件名称,颜色,重量。实体类型“工程项目”的属性主要是:项目编号,项目名称,开工日期。实体类型“供应商”的属性主要有:供应商编号,供应商名称,地址。联系类型

14、“供应”的属性是,向某工程项目供应的某种零件的数量。联系类型“订购”的属性是,向某供应商订购的某种零件的数量。5-3 用面向数据流的方法设计下列系统的软件结构(1)储蓄系统2-2(2)机票预定系统2-3为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出机票给顾客(2) 患者监护系统2-4不能是两个分开的子系统,是相同的前台单个处理可以是两个子系统,预定和取票是不同的处理方式(后台批量和前台单个)5-4美国某大学有20

15、0名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000 )的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出每名教师的原工资和调整后的新工资。要求:(1)画出此系统的数据流图;(2)写出需求说明;(3)设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时分

16、别采用两种算法,并比较两种算法的优缺点:(a)搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;(b)把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果。(4) 你所画出的数据流图适应用那种算法?第六章 习题参考答案一.回答问题1.详细设计的目的?为软件结构图(SC图或HC图)中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述.4.比较面向数据流和面向数据结构两类设计方法的异同?相同点:(1) 遵守结构程序设计“由

17、顶向下”逐步细化的原则,并以其为共同的基础;(2) 均服从“程序结构必须适应问题结构”的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一组映射规则。不同点:(1) 面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构。面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构。(2) 面向数据流的设计的最终目标是软件的最终SC图,面向数据结构的设计的最终目标是程序的过程性描述。二.给出一组数从小到大的排序算法,分别用下列工具描述其详细过程:(1)(1) 流程图;(2)NS图;(3)PAD图;(4)PD

18、L语言。 PDL语言略   三.根据后面给出“卡片的分类及统计”项目说明,完成下列工作: (1)用Jackson图表示输入与输出数据结构,找出它们之间的对应单元; (2)画出用Jackson图表示的程序结构; (3)列出程序所需用的操作,并加到上一步画出的程序结构图上; (4)用Jackson伪代码写出程序的过程表示。 输入卡片分析程序。一叠输入卡片按内容分为K1、K2、K3三类,卡片的排列规则是:以K1卡始,以K2卡终。起始卡之前属前置部分,不含K1卡;起始卡与终了卡之间属分批部分,不含K2卡。如图: 试用Jackson方法编一程序,要求依次完成下列分析工作:

19、-统计起始卡前卡片的张数,存入A; -打印起始卡的内容; -统计起始卡后出现的K1卡和K3卡总批数,存入B; -统计起始卡后出现的K1卡的张数,存入C; -统计起始卡后出现的K3卡的批数,存入D; -打印终了卡的内容; -打印A、B、C、D四个统计值。程序的过程表示及伪代码略6-3 画出下列伪码程序的程序流程图和盒图STARTIF p THEN WHILE q DO f END DOELSE BLOCK g n END BLOCKEND IFSTOP4 下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。(3)在(2)题的设计中你使用

20、附加的标志变量flag吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序(1) 通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图示盒图描绘了等价的结构化程序。(3)不使用flag把该程序改造为等价的结构化程序的方法如图所示。6-8画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?C EXAMPLELOOP:DO WHILE X>0

21、A=B+1 IF A>10 THEN X=A ELSE Y=Z END IFIF Y<5 THEN PRINT X,Y ELSE IF Y=2 THEN GOTO LOOP ELSE C=3 END IFEND IFG=H+REND DOIF F>0 THEN PRINT G ELSE PRINT KEND IFSTOPV(G)结点E弧数n1 =17-11+1=7 =判断结点 1 =6 17 封闭的区域数充1、某高校研究生招生系统的初选方法如下:总分300(含)以上进入候选学生库,否则退档;数学分数不低于70分,则进入三级备选库,否则进入四级备选库;在三级备选库的基础上,如果

22、专业课分数高于100分,则进入一级备选库,否则进入二级备选库,请画出对应的判定树。补充2、某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬×0.1;(3)如果班级人数超过60人,课酬增加:基本课酬×0.2;(4)如果教师是副教授,课酬增加:基本课酬×0.1;(5)如果教师是教授,课酬增加:基本课酬×0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬×0.1。请用判定表表达上述计算方案。7- 4(3) 、设计下列伪码程序的语句覆盖和路径覆盖测试用例:STARTINPUT (A, B

23、, C)/判定表达式1IF A>5 THEN X=10 ELSE X=1END IF/判定表达式2IF B>10 THEN Y=20ELSE Y=2END IF/判定表达式3IF C>15 THEN Z=30ELSE Z=3END IFPRINT (X, Y, Z)STOP语句覆盖的测试用例 路径覆盖的测试用例 (每一次多一条路径,所以是判定节点的组合2n)第七章 习题参考答案4.什么是黑盒测试?黑盒测试主要采用的技术有哪些?黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处

24、进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试主要采用的技术有:等价分类法、边沿值分析法、错误推测法和因果图等技术。 5.什么是白盒测试?白盒测试主要采用的技术有哪些?测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。 6.路径测试技术中几种主要覆盖的含义?举例说明?语句覆盖:至少执行程序中

25、所有语句一次。 判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为分支覆盖。条件覆盖:执行所有可能的穿过程序的控制路流程。条件组合测试:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次。(例略) 7.等价分类法的测试技术采用的一般方法?举例说明?(1) (1)  为每个等价类编号;(2) (2)  设计一个新的测试方案,以尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步骤,直到所有有效等价类被覆盖为止。(3) (3)  设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类, 重复这一步骤,直到所有无效等价类被覆盖为止。(例略) 8.软件

26、测试的一般步骤?单元测试、子系统测试、系统测试、验收测试、平行测试。 9.比较集成试的两种方式的优劣?非渐增式测试方式:分别测试模块,再把所有模块按设计要求放在一起组成所要的程序。该方法编写测试软件工作量大,模块间的接口错误发现得晚,错误定位较难诊断,总体测试有的错误容易漏掉,测试时间相对较少,可以并行测试所有模块,能充分利用人力,加快工程进度。渐增式测试方式:把下一个要测试的模块,同已经测试好的那些模块结合起来进行测试。该方法利用已测试过的模块作测试软件,开销小,较早发现模块间的接口错误,错误定位往往和最近入的模块相关,对已测试好的模块可在新加入模块的条件下受到新的检验,测试更彻底,需要较多

27、的测试时间,不能并行测试。总的来说,渐增式测试方法比较好。二.某电力公司有A、B、C、D共四类收费标准,并规定,居民用电每月200度以下按A类收费, 200度以上按B类收费。动力电以每月1万度为分界,非高峰用电不足1万度按B类收费,达到或超过1万度按C类收费。高峰用电不足1万度按C类收费,达到或超过1万度按D类收费。试用基于逻辑的测试方法为它设计足够的测试用例实现条件组合的完全覆概。规则号123456居民用电200度以下Y     200度以上 Y    动力用电非高峰1万度以下 &#

28、160;Y   1万度以上   Y  高峰1万度以下    Y 1万度以上     Y 收费标准A类     B类    C类    D类      测试用例用电类型输入数据预期结果居民用电90度/月A110度/月B 动力用电非高峰8000度/月B12000度/月C高峰9000度/月C11000度/月D  三.如图显示某程序的逻辑结构。 试为它设计足够的测试用例,分别实现对程序的判定覆概、条件覆概和条件组合覆概。设计测试方案覆盖种类需满足的条件测试数据期望结果 判定覆盖A>1,B=0A=2,B=0执行S1A>1,B¹0或A£1,B=0或A£1,B¹0A=2,B=1或A=1,B=0或A=1,B=1 执行S2 条件覆盖以下四种情况各出现一次&#

温馨提示

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

评论

0/150

提交评论