软件工程导论复习新订版.ppt
13:07:42,2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。医院对患者1监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。,作业及解答(第3章),13:07:42,作业及解答(第3章),13:07:42,从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。,作业及解答(第3章),13:07:42,13:07:42,13:07:42,13:07:42,3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。,作业及解答(第3章),13:07:42,作业及解答(第3章),13:07:42,13:07:42,作业及解答(第3章),13:07:42,ER模型本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。,作业及解答(第3章),13:07:42,作业及解答(第3章),13:07:42,补充1:请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。,作业及解答(第5章),13:07:42,本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多(M N)联系;类似地,零件与供应商之间的联系“订购”,也是多对多(M N)联系。实体类型“零件”的主要属性是:零件编号,零件名称,颜色,重量。实体类型“工程项目”的属性主要是:项目编号,项目名称,开工日期。实体类型“供应商”的属性主要有:供应商编号,供应商名称,地址。联系类型“供应”的属性是,向某工程项目供应的某种零件的数量。联系类型“订购”的属性是,向某供应商订购的某种零件的数量。,作业及解答(第5章),13:07:42,13:07:42,作业及解答(第5章),补充2:某火车售票系统的数据流程图如下所示,查询信息,查询信息,班次,日期,线路,查询结果,查询结果,查询结果,查询结果,13:07:42,作业及解答(第5章),接受查询,输入信息,查询信息,列车查询主模块,查询显示,分析查询,按日期查询,按班次查询,按线路查询,查询信息,查询信息,查询结果,查询结果,日期,班次,线路,13:07:42,补充3、已知某定货系统的需求分析DFD图如下,请按SD方法的设计步骤画出结构图。,作业及解答(第5章),13:07:42,13:07:42,补充4、已知某系统的需求分析给出的系统数据流程图如下,画出结构图,作业及解答(第5章),13:07:42,13:07:42,P104:3 用面向数据流的方法设计下列系统的软件结构(1)储蓄系统2-2(2)机票预定系统2-3为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出机票给顾客(2)患者监护系统2-4,作业及解答(第5章),13:07:42,13:07:42,作业及解答(第5章),13:07:42,不能是两个分开的子系统,是相同的前台单个处理,13:07:42,不能是两个分开的子系统,是相同的前台单个处理,13:07:42,作业及解答(第5章),13:07:42,作业及解答(第5章),13:07:42,作业及解答(第5章),13:07:42,作业及解答(第5章),13:07:42,可以是两个子系统,预定和取票是不同的处理方式(后台批量和前台单个),13:07:42,13:07:42,13:07:42,13:07:42,P104:4美国某大学有200名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出每名教师的原工资和调整后的新工资。要求:(1)画出此系统的数据流图;(2)写出需求说明;(3)设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时分别采用两种算法,并比较两种算法的优缺点:(a)搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;(b)把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果。(4)你所画出的数据流图适应用那种算法?,13:07:42,作业及解答(第5章),13:07:42,作业及解答(第5章),13:07:42,作业及解答(第5章),13:07:42,作业及解答(第5章),13:07:42,C EXAMPLELOOP:DO WHILE X0 A=B+1 IF A10 THEN X=A ELSE Y=Z END IFIF Y5 THEN PRINT X,Y ELSE IF Y=2 THEN GOTO LOOP ELSE C=3 END IFEND IF,P131:8 画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?,G=H+REND DOIF F0 THEN PRINT G ELSE PRINT KEND IFSTOP,作业及解答(第6章),13:07:42,V(G)结点E弧数n1=17-11+1=7=判断结点 1=6 17 封闭的区域数,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章),13:07:42,作业及解答(第7章),13:07:42,作业及解答(第7章),13:07:42,补充1、某高校研究生招生系统的初选方法如下:总分300(含)以上进入候选学生库,否则退档;数学分数不低于70分,则进入三级备选库,否则进入四级备选库;在三级备选库的基础上,如果专业课分数高于100分,则进入一级备选库,否则进入二级备选库,请画出对应的判定树。,作业及解答(第6章),13:07:42,作业及解答(第6章),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章),13:07:42,13:07:42,补充作业:设计一个软件开发规范,假象一种开发环境(硬件、系统软件、支持软件、数据库、开发语言等)。规范内容尽量考虑多方面问题:如SQL语言规范、交互界面、编码风格、命名、设计文档、单元测试等,作业及解答(第7章),13:07:42,P174:5某图书馆有一个使用CET终端的信息检索系统,该系统有下列4个基本检索命令:.(1)设计测试数据以全面系统的正常操作(2)设计测试数据以测试系统的非正常操作,作业及解答(第7章),13:07:42,STARTINPUT(A,B,C)/判定表达式1IF A5 THEN X=10 ELSE X=1END IF/判定表达式2IF B10 THEN Y=20ELSE Y=2END IF,作业(第7章),/判定表达式3IF C15 THEN Z=30ELSE Z=3END IFPRINT(X,Y,Z)STOP,P174:4(3)、设计下列伪码程序的语句覆盖和路径覆盖测试用例:,13:07:42,作业(第7章),语句覆盖的测试用例,13:07:42,作业(第7章),路径覆盖的测试用例,