资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,13:07:42,重庆工学院计算机科学与工程学院 李梁(liliang),本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考,不能作为科学依据。本资料仅供参考,不能作为科学依据。谢谢。本资料仅供参考!,作业一 基本概念,(第1-2章),作业二 需求分析,(第3章),作业三 系统设计,(第5章),作业四 详细设计,(第6章),作业五 系统实现,(第7章),作业六 系统维护,(第8章),作业七 面向对象方法学引论,(第9章),作业八 面向对象分析,(第10章),作业九 面向对象设计,(第11章),作业十 面向对象实现,(第12章),作业十一 软件项目管理,(第13章),作业及解答,1/97,13:07:42,作业及解答(第1-2章),1-5 依据历史数据能够做出以下假设:,对计算机存放容量需求大致按下面公式描述趋势逐年增加:M=4080e,0.28(Y-1960),存放器价格按下面公式描述趋势逐年下降:P1=0.30.72,Y-1974,(美分/位),假如计算机字长为16位,则存放器价格下降趋势为:P2=0.0480.72,Y-1974,(美元/字),在上列公式中Y代表年份,M是存放容量(字数),P1和P2代表价格。,基于上述假设能够比较计算机硬件和软件成本改变趋势。要求计算:,2/97,13:07:42,(1)在1985年对计算机存放容量需求预计是多少?假如字长为16位,这个存放器价格是多少?,(2)假设在1985年一名程序员天天可开发出10条指令,程序员平均工资是每个月4000美元。假如一条指令为一个字长,计算使存放器装满程序所需用成本。,(3)假设在1995年存放器字长为32位,一名程序员天天可开发出30条指令,程序员月平均工资为6000美元,重复(1)、(2)题。,作业及解答(第1-2章),3/97,13:07:42,(1)在1985年对计算机存放容量需求,预计是,假如字长为16位,则这个存放器价格是,(2)假如一条指令长度为一个字,则使存放器装满程序共需4474263条指令。,在1985年一名程序员天天可开发出10条指令,假如每个月有20个工作日,则每人每个月可开发出1020条指令。,为了开发出4474263条指令以装满存放器,需要工作量是:,作业及解答(第1-2章),4/97,13:07:42,程序员月平均工资是4000美元,开发出4474263条指令成本是,(3)在1995年对存放容量需求预计为:,假如字长为32位,则这个存放器价格是:,假如一条指令为一个字长,则为使存放器装满程序共需73,577,679条指令。,在1995年一名程序员天天可开发出30条指令,每个月可开发出600条指令,为了开发出可装满整个存放器程序,需要工作量为,作业及解答(第1-2章),5/97,13:07:42,开发上述程序成本为:,1-6 什么是软件过程?它与软件工程方法学有何关系?,软件过程是为了开发出高质量软件产品所需完成一系列任务框架,它要求了完成各项任务工作步骤。,软件过程定义了利用技术方法次序、应该交付文档资料、为确保软件质量和协调软件改变必须采取管理办法,,以及标志完成了对应开发活动里程碑,。,软件过程是软件工程方法学3个主要组成部分之一。,作业及解答(第1-2章),6/97,13:07:42,2-4,当前住院病人主要由护士护理,这么做不但需要大量护士,而且因为不能随时观察危重病人病情改变,还会延误抢救时机。某医院打算开发一个以计算机为中心患者监护系统,请,分层次地画出描述本系统功效数据流图。,医院对患者,7,监护系统基本要求是随时接收每个病人,生理信号,(,脉搏、体温、血压、心电图,等),定时统计病人情况以形成患者,日志,,当某个,病人,生理信号超出医生要求安全范围时向,值班护士,发出警告信息,另外,护士在需要时还能够要求系统印出某个指定病人,病情汇报,。,作业及解答(第3章),7/97,13:07:42,作业及解答(第3章),8/97,13:07:42,从问题陈说可知,本系统数据源点是,“病人”和“护士”,,他们分别提供,生理信号,和要求,病情汇报,信息。深入分析问题陈说,从系统应该“定时统计病人情况以形成患者,日志,”这项要求能够想到,还应该有一个提供日期和时间信息“,时钟,”作为数据源点。,从问题陈说轻易看出,本系统数据终点是接收警告信息和病情汇报护士。,系统对病人生理信号处理功效主要是,“接收信号”、“分析信号”和“产生警告信息”。,另外,系统还应该含有“,定时取样生理信号,”、“,更新日志,”和“,产生病情汇报,”功效。,为了分析病人生理信号是否超出了医生要求安全范围,应该存放“,患者安全范围,”信息。另外,定时统计病人生理信号所形成“,患者日志,”,显然也是一个数据存放。,作业及解答(第3章),9/97,13:07:42,10/97,13:07:42,11/97,13:07:42,12/97,13:07:42,2-5,北京某高校可用电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。,请用定义数据字典方法,定义上述电话号码。,作业及解答(第3章),13/97,13:07:42,数据结构描述,符 号,含 义,举 例,被定义为,与,x,=,a,b,.,.或.|.,或,x=a,b,x=a|b,.或 m.n,重复,x=a,x=3a8,(.),可选,x=(a),“.”,基本数据元素,x=“a”,.,连结符,x=1.9,作业及解答(第3章),14/97,13:07:42,电话号码=校内电话号码|校外电话号码,校内电话号码=非零数字+3 位数字,/后面继续定义,校外电话号码=本市号码|外地号码,本市号码=数字零+8位数字,外地号码=数字零+3位数字+8位数字,非零数字=1|2|3|4|5|6|7|8|9,数字零0,3位数字3数字3,/3至3个数字,8位数字=非零数字+7位数字,7位数字=7数字7,数字0|1|2|3|4|5|6|7|8|9,作业及解答(第3章),15/97,13:07:42,3-3,银行计算机储蓄系统工作过程大致以下:,储户,填写,存款单,或,取款单,由,业务员,键入系统,假如是存款则系统,统计,存款人,姓名、住址(或电话号码)、身份证号码、,存款类型,、存款日期、到期日期、利率及密码,(可选)等信息,并印出,存单,给储户;假如是,取款,而且,存款时留有密码,,则系统首先,查对储户密码,,若密码,正确,或存款时,未留,密码,则系统,计算,利息,并,印出,利息清单,给储户。,请用数据流图描绘本系统功效,并用实体-联络图描绘系统中数据对象。,作业及解答(第3章),16/97,13:07:42,作业及解答(第3章),17/97,13:07:42,18/97,13:07:42,作业及解答(第3章),19/97,13:07:42,ER模型,本问题中共有两类实体,分别是“,储户,”和“,储蓄所,”,在它们之间存在“,存取款,”关系。因为一位储户能够在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。,储户属性主要有,姓名、住址、电话号码和身份证号码,,储蓄所属性主要是,名称、地址和电话号码,,而,数额、类型、到期日期、利率和密码,则是,关系类型存取款,属性。,作业及解答(第3章),20/97,13:07:42,作业及解答(第3章),21/97,13:07:42,3-6 复印机工作过程大致以下:未接到复印命令时处于,闲置,状态,一旦接到,复印命令,则进入,复印,状态,,完成一个复印命令,要求工作后又回到闲置状态,等候下一个复印命令;假如执行复印命令时,发觉没纸,,则进入,缺纸,状态,发出警告,等候装纸,,装满纸,后进入闲置状态,准备接收复印命令;假如复印时发生,卡纸故障,,则进入,卡纸,状态,发出警告等候维修人员来排除故障,,故障排除,后回到闲置状态。,请用状态转换图描绘复印机行为。,作业及解答(第3章),22/97,13:07:42,从问题陈说可知,复印机状态主要有,“闲置”,、,“复印”,、,“缺纸”,和,“卡纸”,。引发状态转换事件主要是“,复印命令,”、“,完成复印命令,”、“,发觉缺纸,”、“,装满纸,”、“,发生卡纸故障,”和“,排除了卡纸故障,”。,作业及解答(第3章),23/97,13:07:42,4-3 一个浮点二进制数组成是:一个可选符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。比如,以下字符串都是浮点二进制数:,110101E-101,-100111E11101,+1E0,更形式化地,浮点二进制数定义以下:,floatingpoint binary=signbitstringEsignbitstring,sign=+-,bitstring=bitbitstring,bit=01,作业及解答(第4章),24/97,13:07:42,其中,,符号=表示定义为;,符号.表示可选项;,符号ab表示a或b。,假设有这么一个有穷状态机:以一串字符为输入,判断字符串中是否含有正当浮点二进制数。试对这个有穷状态机进行规格说明。,作业及解答(第4章),25/97,13:07:42,该有穷状态机初态是“等候字符串输人”。在初态若接收到字符十、或字符一、或二进制位,则进人“输人尾数”状态;在初态若接收到其它字符,则进人终态“非浮点二进制数”。在“输人尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符 E,则进人“等候输人指数”状态;若接收到其它字符,则进人终态“非浮点二进制数”。在“等候输人指数”状态若接收到字符、或字符一、或二进制位,则进人“输人指数”状态;若接收到其它字符,则进人终态“非浮点二进制数”。在“输人指数”状态若接收到二进制位,则保持该状态不变;若输人其它字符,则进人终态“非浮点二进制数”;若输人结束,则进人终态“浮点二进制数”。,作业及解答(第4章),26/97,13:07:42,仔细研究图示有穷状态机能够发觉,它还有不够严格地方。有兴趣同学请深入改进它,画出更严格、与浮点二进制数定义完全一致有穷状态机。,作业及解答(第4章),27/97,13:07:42,补充1,:请为某仓库管理设计一个ER模型。该仓库主要管理零件订购和供给等事项。仓库向工程项目供给零件,而且依据需要向供给商订购零件。,作业及解答(第5章),28/97,13:07:42,本问题中共有三类实体,分别是“零件”、“工程项目”和“供给商”。,一个零件可供给多个工程项目,一个工程项目需要使用各种零件,所以,零件与工程项目之间联络“供给”,是多对多(M N)联络;类似地,零件与供给商之间联络“订购”,也是多对多(M N)联络。,实体类型“零件”主要属性是:零件编号,零件名称,颜色,重量。实体类型“工程项目”属性主要是:项目编号,项目名称,开工日期。实体类型“供给商”属性主要有:供给商编号,供给商名称,地址。联络类型“供给”属性是,向某工程项目供给某种零件数量。联络类型“订购”属性是,向某供给商订购某种零件数量。,作业及解答(第5章),29/97,13:07:42,30/97,13:07:42,作业及解答(第5章),补充2:,某火车售票系统数据流程图以下所表示,录入员,1,接收查询,查询,信息,查询,信息,2,分析查询,4,按班次查询,6,查询显示,3,按日期查询,5,按线路查询,旅客,班次,日期,线路,查询结果,查询,结果,查询结果,查询,结果,31/97,13:07:42,作业及解答(第5章),接收查询,输入信息,查询信息,列车查询主模块,查询显示,分析查询,按日期查询,按班次查询,按线路查询,查询,信息,查询信息,查询结果,查询结果,日期,班次,线路,32/97,13:07:42,补充3、已知某定货系统需求分析DFD图以下,请按SD方法设计步骤画出结构图。,顾,客,编辑,定货,单,确定,用户,订货,产生,暂存,订货单,开发,货单,并改,库存,业务员,用户,D1配件,D2用户文件,D3配件库存,D4暂存订货单,D4暂存订货单,D5销售历史,D6应收款明细帐,发货单,可发货,不合格订货单,订货单,合格订货单,不满足订货单,作业及解答(第5章),33/97,13:07:42,34/97,13:07:42,补充4、已知某系统需求分析给出系统数据流程图以下,画出结构图,A,C3,C2,C1,G,J,K,L,F,E,B,D,a,b,b1,b2,b3,c1,c2,c3,d,e,f,g,h,j,k,l,m,作业及解答(第5章),35/97,13:07:42,36/97,13:07:42,P104:3 用面向数据流方法设计以下系统软件结构,(1)储蓄系统2-2,(2)机票预定系统2-3,为了方便,旅客,,某航空企业拟开发一个,机票预定系统,。,旅行社,把预定机票旅客信息(,姓名、性别、工作单位、身份证号码、旅行时间、旅行目标地,等),输入,该系统,系统为旅客,安排,航班,,旅客在飞机,起飞前一天,凭,取票通知,和,账单,交款取票,,系统,查对无误,即,印出机票,给,用户,(2)患者监护系统2-4,作业及解答(第5章),37/97,13:07:42,38/97,13:07:42,作业及解答(第5章),39/97,13:07:42,不能是两个分开子系统,是相同前台单个处理,40/97,13:07:42,不能是两个分开子系统,是相同前台单个处理,41/97,13:07:42,作业及解答(第5章),42/97,13:07:42,作业及解答(第5章),43/97,13:07:42,作业及解答(第5章),44/97,13:07:42,作业及解答(第5章),45/97,13:07:42,能够是两个子系统,预定和取票是不一样处理方式(后台批量和前台单个),46/97,13:07:42,47/97,13:07:42,48/97,13:07:42,49/97,13:07:42,P104:4,美国某大学有200名教师,校方与教师工会刚才签署一项协议。按照协议,全部年工资超出$26000(含$26000)教师工资将保持不变,年工资少于$26000教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养人(包含教师本人)每年补助$100,另外,教师有一年工龄每年再多补助¥50,不过,增加后年工资总额不能多于$26000。,教师工资档案存放在行政办公室磁带上,档案中有当前年工资、赡养人数、雇佣日期等信息。需要写一个程序计算并印出每名教师原工资和调整后新工资。,要求:(1)画出此系统数据流图;(2)写出需求说明;,(3)设计上述工资调整程序(要求用HIPO图描绘设计结果),设计时分别采取两种算法,并比较两种算法优缺点:,(a)搜索工资档案数据,找出年工资少于$26000人,计算新工资,校核是否超出$26000,存放新工资,印出新旧工资对照表;,(b)把工资档案数据按工资从最低到最高次序排序,当工资数额超出$26000时即停顿排序,计算新工资,校核是否超出限额,存放新工资,印出结果。,(4)你所画出数据流图适应用那种算法?,50/97,13:07:42,作业及解答(第5章),51/97,13:07:42,作业及解答(第5章),52/97,13:07:42,作业及解答(第5章),53/97,13:07:42,作业及解答(第5章),54/97,13:07:42,0,杨辉三角形,系数求解,输入阶数,系数表,不合理阶数,DFD0,1,检验,阶数,2,计算,阶数,3,打印,阶数,系数表,系数,不合理阶数,合理,阶数,输入阶数,DFD1,1.1,输入,阶数,1.2,检验,阶数,合理,阶数,不合理阶数,阶数,2.1,计算1,DFD2,合理,阶数,系数,3.1,打印1,阶数,系数表1,3.2,打印2,阶数,系数表2,2.2,计算2,合理,阶数,系数,补充5:求解杨辉三角形系数,55/97,13:07:42,求解杨辉三角形系数,取合理阶数,打印系数,计算系数方,法选取,输入,阶数,检验,阶数,计,算,1,计,算,2,打,印,1,打,印,2,合理阶数,合理阶数,合理阶数,合理阶数,合理阶数,合理阶数,合理阶数,合理阶数,不合理阶数,阶数,阶数,系数,系数,系数,系数,系数表1,系数表2,表示选取,56/97,13:07:42,P131:3 画出以下伪码程序程序流程图和盒图,START,IF p THEN,WHILE q DO,f,END DO,ELSE,BLOCK,g,n,END BLOCK,END IF,STOP,作业及解答(第6章),57/97,13:07:42,作业及解答(第6章),58/97,13:07:42,P131:4 下列图给出程序流程图代表一个非结构化程序,请问:,(1)为何说它是非结构化?,(2)设计一个等价结构化程序。,(3)在(2)题设计中你使用附加标志变量flag吗?若没用,请再设计一个使用flag程序;若用了,再设计一个不用flag程序,作业及解答(第6章),59/97,13:07:42,(1)通常所说结构化程序,是按照狭义结构程序定义衡量,符合定义要求程序。,图示程序循环控制结构有,两个出口,,显然不符合狭义结构程序定义,所以,是非结构化程序。,作业及解答(第6章),60/97,13:07:42,(2)使用附加标志变量flag,最少有两种方法能够把该程序改造为等价结构化程序,图示盒图描绘了等价结构化程序。,作业及解答(第6章),61/97,13:07:42,(3)不使用flag把该程序改造为等价结构化程序方法如图所表示。,作业及解答(第6章),62/97,13:07:42,C EXAMPLE,LOOP:DO WHILE X0,A=B+1,IF A10,THEN X=A,ELSE Y=Z,END IF,IF Y0,THEN PRINT G,ELSE PRINT K,END IF,STOP,作业及解答(第6章),63/97,13:07:42,V,(,G,),结点,E,弧数,n,1,=17-11+1=7,=,判断,结点,1,=6,17,封闭区域数,64/97,13:07:42,P131:7,令P代表交易总金额,Q代表每股售价,n代表交易股数。,(1)表示手续费计算方法判定表如图所表示。,判定表每一列是一条计算规则。比如,第1列(规则1)要求,当交易总金额P少于1000元,且每股售价Q低于14元,且交易股数n是100倍数时,给经纪人手续费为,(l+0.05)0.084P,第16列(规则16)表明,当交易总金额P超出10000元,且每股售价Q在14元到25元之间,且交易股数n不是100倍数时,手续费为,(1+0.06)(0.04P+134),(2)表示手续费计算方法判定树如图所表示。,作业及解答(第6章),65/97,13:07:42,作业及解答(第7章),66/97,13:07:42,作业及解答(第7章),67/97,13:07:42,补充1、某高校硕士招生系统初选方法以下:总分300(含)以上进入候选学生库,不然退档;数学分数不低于70分,则进入三级备选库,不然进入四级备选库;在三级备选库基础上,假如专业课分数高于100分,则进入一级备选库,不然进入二级备选库,请画出对应判定树。,作业及解答(第6章),68/97,13:07:42,作业及解答(第6章),69/97,13:07:42,补充2、某校课酬计算方案以下:(l)基本课酬为每节课10元;(2)假如班级人数超出40人,课酬增加:基本课酬0.1;(3)假如班级人数超出60人,课酬增加:基本课酬0.2;(4)假如教师是副教授,课酬增加:基本课酬0.1;(5)假如教师是教授,课酬增加:基本课酬0.2;(6)讲师,课酬不增加;(7)助教,课酬降低:基本课酬0.1。请用判定表表示上述计算方案。,作业及解答(第6章),70/97,13:07:42,1,2,3,4,5,6,7,8,9,10,11,12,人数40,T,T,T,T,40人数60,T,T,T,T,人数60,T,T,T,T,助教,T,T,T,讲师,T,T,T,副教授,T,T,T,教授,T,T,T,课酬:9元/节,课酬:10元/节,课酬:11元/节,课酬:12元/节,课酬:13元/节,课酬:14元/节,71/97,13:07:42,补充作业:,设计一个软件开发规范,假象一个开发环境(硬件、系统软件、支持软件、数据库、开发语言等)。规范内容尽可能考虑多方面问题:如SQL语言规范、交互界面、编码格调、命名、设计文档、单元测试等,作业及解答(第7章),72/97,13:07:42,P174:5某图书馆有一个使用CET终端信息检索系统,该系统有以下4个基本检索命令:,.,(1)设计测试数据以全方面系统正常操作,(2)设计测试数据以测试系统非正常操作,作业及解答(第7章),73/97,13:07:42,START,INPUT(A,B,C),/判定表示式1,IF A5 THEN,X=10,ELSE,X=1,END IF,/判定表示式2,IF B10 THEN,Y=20,ELSE,Y=2,END IF,作业(第7章),/判定表示式3,IF C15 THEN,Z=30,ELSE,Z=3,END IF,PRINT(X,Y,Z),STOP,P174:4(3),、设计以下伪码程序语句覆盖和路径覆盖测试用例:,74/97,13:07:42,作业(第7章),序号,判定,输入,预期输出,1,2,3,A,B,C,X,Y,Z,1,F,F,F,1,1,1,1,2,3,2,T,T,T,20,40,60,10,20,30,语句覆盖测试用例,75/97,13:07:42,作业(第7章),序号,判定,输入,预期输出,1,2,3,A,B,C,X,Y,Z,1,F,F,F,1,1,1,1,2,3,2,F,F,T,1,1,60,1,2,30,3,F,T,F,1,40,1,1,20,3,4,F,T,T,1,40,60,1,20,30,5,T,F,F,20,1,1,10,2,3,6,T,F,T,20,1,60,10,2,30,7,T,T,F,20,40,1,10,20,3,8,T,T,T,20,40,60,10,20,30,路径覆盖测试用例,76/97,13:07:42,1一些软件工程师不一样意“当前国外许多软件开发组织把60%以上人力用于维护已经有软件”说法,他们争论说:“我并没有花费我60%时间去更正我所开发程序中错误”。,请问,你对上述争论有何看法?,2为何大型软件维护成本高达开发成本4倍左右?,3假设你任务是对一个已经有软件做重大修改,而且只允许你从下述文档中选取两份:(a)程序规格说明;(b)程序详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适当数量注解)。,你将选取哪两份文档?为何这么选取?,作业及解答(第8章),77/97,13:07:42,4当一个十几年前开发出程序还在为其用户完成关键业务工作时,是否有必要对它进行再工程?假如对它进行再工程,经济上是否划算?,5,代码重构与正向工程有何相同之处?有何不一样之处?,作业及解答(第8章),78/97,13:07:42,p221:10,1用面向对象范型开发软件时与用结构化范型开发软件时相比较,软件生命周期有何不一样?这种差异带来了什么后果?,2为何在开发大型软件时,采取面向对象范型比采取结构化范型较易取得成功?,3为何说夏利牌汽车是小汽车类特化,而发动机不是小汽车类特化?,4对象和属性之间有何区分?,5什么是对象?它与传统数据有何异同?,6什么是模型?开发软件时为何要建立模型?,作业及解答(第9章),79/97,13:07:42,7试用面向对象方法分析设计下述程序:,在显示器屏幕上圆心坐标为(100,100)位置画一个半径为40圆,在圆心坐标为(200,300)位置画一个半径为20圆,在圆心坐标为(400,150)位置画一条弧,弧起始角度为30度,结束角度为120度,半径为50。,8用面向对象方法处理下述问题时需要哪些对象类?类与类之间有何关系?在显示器屏幕上圆心坐标为(250,100)位置,画一个半径为25小圆,圆内显示字符串“you”;在圆心坐标为(250,150)位置,画一个半径为100中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)位置,画一个半径为225大圆,圆内显示字符串“Universe”。,作业及解答(第9章),80/97,13:07:42,9试建立下述订货系统用例模型。,假设一家工厂采购部天天需要一张订货报表,报表按零件编号排序,表中列出全部需要再次订货零件。对于每个需要再次订货零件应该列出下述数据:零件编号,零件名称,订货数量,当前价格,主要供给者,次要供给者。零件入库或出库称为事务,经过放在仓库中终端把事务汇报给订货系统。当某种零件库存数量少于库存量临界值时就应该再次订货。,10为何说面向对象方法与人类习惯思维解题方法比较一致?,作业及解答(第9章),81/97,13:07:42,11,我们下班回家这件事,人(假如是我)就是一个对象,我们来考查一下几个状态:,1.到下班时间了,收拾东西准备回家(不考虑加班)。,2.开始等电梯。,3.到了楼下。(发觉没带家里钥匙,上楼拿),4.上楼。,5.去公交等车。,6.乘公共汽车去菜场。,7.买菜,8.回到家,那么事件呢?,1.下班时间到了(准备下班)。,2.电梯到(上电梯),3.电梯到楼下(下电梯),3.发觉没有家里钥匙(去拿钥匙)。,4.自己要乘公共汽车到了(上车)。,5.公共汽车到站(下车)。,6.突然想起家里没菜(去买菜)。,作业及解答(第9章),82/97,13:07:42,名称:,就是名字,状态名字。,进入/退出动作:,对象本身一个操作,比如在电梯里是一个状态话,哪我们进电梯和出电梯就是状态-在电梯里-进入/退出动作。,内部转换:,如我们在去等电梯时候发觉钥匙没带,此时我们不用在等电梯以后状态是再有事件触发,在准备下班状态上我们就去拿钥匙了,对于对象本身,前后两次根本状态不一样,一个是有钥匙,一个是没有钥匙。,(子状态):,假如我们描述该对象在电梯里说话,抽烟(普通电梯不许)等状态时,该状态就是该对象状态-在电梯里-状态子状态。,(延迟事件):,现在不马上产生事件,该事件是在一段时间以后才产生事件。,作业及解答(第9章),83/97,13:07:42,1.,试用面向对象方法分析设计下述程序:,在显示器屏幕上圆心坐标为(100,100)位置画一个半径为40圆,在圆心坐标为(200,300)位置画一个半径为20圆,在圆心坐标为(400,150)位置画一条弧,弧起始角度为30度,结束角度为120度,半径为50。,作业及解答(第10章),84/97,13:07:42,2.,在显示器屏幕上圆心坐标为(250,100)位置,画一个半径为25小圆,圆内显示字符串“you”;在圆心坐标为(250,150)位置,画一个半径为100中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)位置,画一个半径为225大圆,圆内显示字符串“Universe”。,用面向对象方法处理上述问题时需要哪些对象类?类与类之间有何关系?,试用,C+,语言编程实现该类继承结构。,设计测试用例以测试该类继承结构中各个类。,作业及解答(第10章),85/97,13:07:42,3.请用面向对象方法分析设计下述图书馆自动化系统:,设计一个软件以支持一座公共图书馆运行。该系统有一些工作站用于处理读者事务。这些工作站由图书馆馆员操作。当读者借书时,首先读入客户借书卡。然后,由工作站条形码阅读器读入该书代码。当读者偿还一本书时,并不需要查看他借书卡,仅需读入该书代码。,客户能够在图书馆内任一台PC机上检索馆藏图书目录。当检索图书目录时,客户应该首先指明检索方法(按作者姓名或按书名或按关键词)。,作业及解答(第10章),86/97,13:07:42,4.,设计无人自动售货机系统对象、动态及功效模型,售货时,用户将硬币投入机器投币口,机器检验硬币大小、重量、厚度及边缘类型。有效币种是1元、五角、一角,其它货币被认为是假币。机器拒收假币,并将其退币口退出。当机器接收了有效硬币之后,就将硬币送入硬币储备期中。用户支付货币依据硬币面值进行累加。,机器装有货物分配器。每个货物分配器中零个或多个价值相同货物,用户支付货币值大于该货物价格,货物将被分配货物传送孔送给用户,并将适当零钱返回到退币孔。假如分配器是空,用户支付货币值相等硬币将被送回退币孔。假如用户支付货币值小于所选择分配器中货物价格,机器将等候用户投进更多硬币。假如用户决定不买所选择货物,用户放进货币将从退币孔退出。,作业及解答(第10章),87/97,13:07:42,1请比较功效内聚和信息性内聚。,2多态重用与继承重用有何关系?,3在面向对象设计过程中为何会调整对目标系统需求?怎样调整需求?,4为了设计人机交互子系统,为何需要分类用户?,5问题空间和解空间有何区分?,6从面向对象分析阶段到面向对象设计阶段,对象模型有何改变?,作业及解答(第11章),88/97,13:07:42,7请用面向对象方法分析设计下述图书馆自动化系统。,设计一个软件以支持一座公共图书馆运行。该系统有一些工作站用于处理读者事务。这些工作站由图书馆馆员操作。当读者借书时,首先读入客户借书卡。然后,由工作站条形码阅读器读入该书代码。当读者偿还一本书时,并不需要查看他借书卡,仅需读入该书代码。,客户能够在图书馆内任一台PC机上检索馆藏图书目录。当检索图书目录时,客户应该首先指明检索方法(按作者姓名或按书名或按关键词)。,作业及解答(第11章),89/97,13:07:42,8用面向对象方法分析设计下述电梯系统。,在一幢m层楼大厦里,用电梯内和每个楼层按钮来控制n部电梯运动。当按下电梯按钮请求电梯在指定楼层停下时,按钮指示灯亮;当电梯抵达指定楼层时,指示灯熄灭。除了大厦最低层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行。当这两个按钮之一被按下时对应指示灯亮,当电梯抵达此楼层时灯熄灭,电梯向要求方向移动。当电梯无升降动作时,关门并停在当前楼层。,作业及解答(第11章),90/97,13:07:42,1为何应该尽可能使用面向对象语言来实现面向对象分析和设计结果?,2什么是强类型语言?这类语言有哪些优点?,3用动态联编实现多态性是否会显著降低程序运行效率?,4为何说参数化类有利于提升可重用性?,5把策略方法与实现方法分开后,为何能提升可重用性?,6面向对象软件哪些特点使得测试和维护变得比较轻易?哪些特点使得测试和维护变得比较困难?,作业及解答(第12章),91/97,13:07:42,7试用C+语言编程实现下述简单图形程序类继承结构。,在显示器屏幕上圆心坐标为(250,100)位置,画一个半径为25小圆,圆内显示字符串“you”;在圆心坐标为(250,150)位置,画一个半径为100中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)位置,画一个半径为225大圆,圆内显示字符串“Universe”。,8设计测试用例以测试第7题类继承结构中各个类。,作业及解答(第12章),92/97,13:07:42,P326:4,12,1.下面叙述对一个计算机辅助设计(CAD)软件需求:,该CAD软件接收由工程师提供二维或三维几何图形数据。工程师经过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好人机界面设计特征。几何图形数据及其它支持信息都保留在一个CAD数据库中。开发必要分析、设计模块,以产生所需要设计结果,这些输出将显示在各种不一样图形设备上。应该适当地设计软件,方便与外部设备交互并控制它们。所用外部设备包含鼠标、数字化扫描仪和激光打印机。,要求,:,作业及解答(第13章),93/97,13:07:42,(1)深入精化上述要求,把CAD软件功效分解成若干个子功效,(2)用代码行技术估算每个子功效规模;,(3)用功效点技术估算每个子功效规模;,(4)从历史数据得知,开发这类系统平均生产率是620LOC/PM,假如软件工程师平均月工资是8000元,请估算开发本系统工作量和成本;,(5)假如从历史数据得知,开发这类系统平均生产率是6.5FP/PM,请估算开发本系统工作量和成本。,作业及解答(第13章),94/97,13:07:42,作业及解答(第13章),3.LMN企业曾经完成过5个软件开发项目,相关这些项目标数据统计在下表中。请依据这些历史数据计算静态单变量估算模型中参数值,而且估算完成一个30KLOC项目需要多大工作量。,项目序号,规模(KLOC),工作量,1,50,120,2,80,192,3,40,96,4,10,24,5,20,48,95/97,13:07:42,作业及解答(第13章),4为何成本估算模型中参数应该依据软件开发企业历史数据来确定?,5为何推迟关键路径上任务会延迟整个项目?,6机动时间有何主要性?,7假设有一项工程任务被分解成了a,b,i等9个子任务,表中给出了完成每个子任务所需要时间以及子任务彼此之间依赖关系。请用工程网络描述表10.3中给出信息,而且计算每个事件最早时刻和最迟时刻。,子任务标识,完成任务时间,依赖关系,a,8,b,10,c,8,a,b,d,9,a,e,5,b,f,3,c,d,g,2,d,h,4,f,g,i,3,e,f,96/97,13:07:42,作业及解答(第13章),8分析第7题所述各个子任务之间关系,找出关键路径和关键任务。,9假设你被指定为项目责任人,你任务是开发一个应用系统,该系统类似于你小组以前做过那些系统,只不过规模更大且更复杂一些。客户已经写出了完整需求文档。你将选取哪种项目组结构?为何?你打算采取哪种软件过程模型?为何?,10一个程序能既正确又不可靠吗?请解释你答案。,11为何在开发软件过程中改变既是必要又是不可防止?为何必须进行配置管理?,12.CMM基本思想是什么?为何要把能力成熟度划分成5个等级?,97/97,13:07:42,
展开阅读全文