niusouti.com
更多“ 根据说明中的叙述,抽象出如下表所示的方法,请指出上图中的类Customer- InformationSystem和 ”相关问题
  • 第1题:

    阅读以下说明,根据要求回答下面问题[说明]赵新锐是一名大学生,他申请了学校的大学生创新创业项目,计划建立一个网上商店,他制定的工作计划如下表所示。



    12、按照上表,填写下表中各项任务的总时差和自由时差。



    13、项目在第14天时进行了检查,工作代码为G、I、H的检查情况如下表所示。请计算工作代码为G、I、H任务的进度状况并填空。



    14、请完成如下图所示的项目里程碑甘特图。(注:图中的时间为每方格一天)。



    答案:
    解析:
    12、2000202022
    13、3-5=-2滞后15-14=11-(-1)=2正常14、如下图所示



    12.[解析] 前导图法(PDM)也称为单代号网络图法(AON),是项目计划网络图中的一种,它用方框或矩形(称为节点)表示活动,用箭线(表示活动之间的逻辑关系)连接活动的项目进度网络图绘制法。在PDM(或AON)图中,任务持续时间(DU)是指一项工作从开始到完成所需的时间(通常不包括节假日或其他休息日)。最早开始时间(Early Start)是指在其所有紧前工作全部开始后,本工作有可能开始的最早时刻。该时间由所有前序活动中最早结束时间(EF)的最大值确定。最早结束时间(Early Finish)是指在其所有紧前工作全部完成后,本工作有可能完成的最早时刻。该时间由活动自身的最早开始时间(ES)加上其工期(DU)确定。最迟开始时间(Late Start)是指在不影响整个任务按期完成的前提下,本工作必须开始的最迟时刻。该时间由活动自身的最迟结束时间(LF)减去其工期(DU)确定。最迟结束时间(Late Finish)是指在不影响整个任务按期完成的前提下,本工作必须完成的最迟时刻。该时间由所有紧后工作中最早的一个最迟开始时间(LS)确认,即所有紧后工作中最迟开始时间(LS)的最小值。总时差也称为总浮动时间(Total Float),是指在不影响项目总工期的前提下,本工作可以利用的最大机动时间。自由时差也称为自由浮动时间(Free Float),是指在不影响其紧后工作最早开始时间(ES)的前提下,本工作可以利用的机动时间。一般情况下,对于某活动的各时间参数之间存在以下关系:ESi+DUi=EFi,LSi+DUi=LFi,TFi=LFi-EFi=LSi-ESi=LFi-ESi-DUi FFi=ESj-EFi。通常,从第0天开始计算项目的ES、EF、LS、LF,其目的是简化这些参数的计算,省去从第1天开始计算这些参数时需加1、减1的运算量。基于表某项目工作计划表中任务代码、工期的相关参数,以及紧后工作的逻辑连接关系,可以绘制出如下图所示的项目计划网络图。



    在计算图中每个任务的各时间参数时,可以从第0天开始计算,采用正推法从第1个活动A按箭线方向依次向着最后一个活动K,结合公式ESi+DUi=EFi计算出每个活动的最早开始时间(ES)、最早结束时间(EF)。例如,活动B的ESB取决于其前序活动A的EFA,即ESB=EFA=2。其中,活动K的ESK取决于其前序活动G的EFG、活动I的EFI、活动J的EFJ中的最大值,即ESK=max{EFG,EFI,EFj}=max{15,17,15}=17。采用逆推法从最后一个活动K逆着箭线方向依次向第一个活动A,结合公式LSi+DUi=LFi计算出所有活动的最迟结束时间(LF)、最迟开始时间(LS)。例如,活动I的LFI取决于其后序活动K的LSK,即LFI=LSK=17,其LSI=LFI-DUI=17-9=8。其中,活动A的LFA取决于其后序活动B的LSB、活动C的LSC、活动D的LSD中的最小值,即LFA=min{LSB,LSC,LSD}=min{4,2,4}=2。任务i的总时差TFi=LFi-EFi。例如,活动J的TFJ=LFJ-EFJ=17-15=2天;活动E的TFE=LFE-EFE=13-11=2天。同理,可以计算出任务B、C、D的总时差分别为2天、0天、2天。任务i的自由时差FFi=ESj-EFi。例如,活动J的FFJ=ESK-EFJ=17-15=2天;活动E的FFE=ESG-EFE=11-11=0天。同理,可以计算出任务B、C、D的自由时差均为0天。13.[解析] 依题意,基于问题1的分析结果,结合任务G在第14天时进行检查所得数据及其计算结果,可知任务I的尚需剩余总时差为到计划最迟完成前尚需剩余时间减去检查项目结束尚需时间,即3-5=-2天。由于任务I的原有总时差为0天,0>-2,因此其进度是滞后的(或拖延,或延后)。任务H的最迟完成时间为第15天,其当前(即第14天)到计划最迟完成前尚需剩余时间为15-14=1天;其尚需剩余总时差=1-1=0天。由于任务H的原有总时差为2天,因此其进度是正常的。
    14.[解析] 项目里程碑甘特图也是项目进度计划的一种表现方式,能直观地表明活动在项目生命周期中什么时间开始和什么时间结束,容易被看懂、读懂,常用于向管理层汇报情况。在项目里程碑甘特图中,横轴表示时间,纵轴表示要安排的活动,线条(或称为横道)表示活动,并标明活动的开始与结束日期,展示出活动的预期持续时间。基于某项目工作计划表中各任务的名称、工期、与紧后工作的逻辑连接关系等,可以绘制出如图所示的项目里程碑甘特图。

  • 第2题:

    阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】下图是某商场购物系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:



    (1) 类Manager重新实现了类Customer的方法 calMoney( );(2) 方法calMoney( ),根据每位顾客的购买情况(buyNum)、浏览商品的情况(scanNum)计算商品的热度。(3)类Admin中的方法statMoney()中首先调用了该类的方法load( ),获取顾客列表,然后调用了类Customer中的方法calMoney( )。现拟采用面向对象的方法进行测试。 【问题1】(4分)图4-1 所示的类图中,类Manager和类Customer之间是什么关系?该关系对测试的影响是什么?【问题2】(6分)(1) 类Manager重新实现了类Customer的方法calMoney( ),这是面向对象的什么机制?是否需要重新测试该方法?(2) 类Manager中的方法getMoney ( )继承了其父类 Customer 的方法getMoney ( ),是否需要重新测试该方法?【问题3】(6分)(1)请结合题干中说明的描述,给出测试类Customer方法calMoney()时的测试序列;(2)请给出类图中各个类的测试顺序。【问题4】(4分)从面向对象多态特性考虑,测试方法statMoney( )时应注意什么?


    答案:
    解析:
    【问题1】(1) 泛化关系;(2) 继承的成员函数是否需要测试;对父类的测试是否能用到子类上。【问题2】
    (1)、多态机制;需要重新测试,因为在子类中重新进行了定义,所以需要重新测试;(2)、不需要重新测试,因为子类继承了父类的方法,只要父类的该方法通过测试了即可。【问题3】
    (1) 测试序列:setBuyNum( )——setScanNum( )——calMoney( ) ——getMoney( ) ;(2)先测试Customer类,然后Manager类,最后测试Admin类。【问题4】
    只需要在原有的测试分析基础上增加对测试用例中输入数据的类型的考虑即可。先测试基类,然后再分别依据输入数据设计不同的测试用例。
    【解析】
    【问题1】
    考察类图的泛化关系。泛化关系也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类,泛化关系通常用带空心三角形的直线来表示。对泛化关系有三个要求:1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;2、子类中除了与父类一致的信息以外,还包括额外的信息;3、可以使用父类的实例的地方,也可以使用子类的实例;【问题2】
    该题考察面向对象的多态机制和继承机制。多态就是在使用父类的引用调用方法的时候,不是使用父类中的方法,而是父类指向的对象的方法,这样就实现了多态。继承是指在一个类基础上定义一个新类,原有的类叫做父类,新生成的类叫子类,继承的过程是一个从一般到特殊的过程。【问题3】
    根据题干提示,方法calMoney( ),根据每位顾客的购买情况(buyNum)、浏览商品的情况(scanNum)计算商品的热度。类之间测试的先后关系可以参考各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。【问题4】
    题干描述,方法statMoney()需要调用Customer中的calMoney()。而该方法在Customer和Manager中有不同的实现,因此需要同时考虑Customer和Manager中的calMoney()。

  • 第3题:

    下列关于抽象类和抽象方法,叙述错误的是()。

    A.抽象类中的抽象方法必须被实现

    B.如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象方法

    C.在类中没有方法体的方法,就是抽象方法

    D.抽象类中的普通方法,可以不必实现


    B

  • 第4题:

    【说明】下图是某商场购物系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:



    (1) 类Manager重新实现了类Customer的方法 calMoney( );(2) 方法calMoney( ),根据每位顾客的购买情况(buyNum)、浏览商品的情况(scanNum)计算商品的热度。(3)类Admin中的方法statMoney()中首先调用了该类的方法load( ),获取顾客列表,然后调用了类Customer中的方法calMoney( )。现拟采用面向对象的方法进行测试。 【问题1】(4分)图4-1 所示的类图中,类Manager和类Customer之间是什么关系?该关系对测试的影响是什么?【问题2】(6分)(1) 类Manager重新实现了类Customer的方法calMoney( ),这是面向对象的什么机制?是否需要重新测试该方法?(2) 类Manager中的方法getMoney ( )继承了其父类 Customer 的方法getMoney ( ),是否需要重新测试该方法?
    【问题3】(6分)(1)请结合题干中说明的描述,给出测试类Customer方法calMoney()时的测试序列;(2)请给出类图中各个类的测试顺序。【问题4】(4分)从面向对象多态特性考虑,测试方法statMoney( )时应注意什么?


    答案:
    解析:
    问题1:答案:(1) 泛化关系;(2) 继承的成员函数是否需要测试;对父类的测试是否能用到子类上。问题2:答案:(1)、多态机制;需要重新测试,因为在子类中重新进行了定义,所以需要重新测试;(2)、不需要重新测试,因为子类继承了父类的方法,只要父类的该方法通过测试了即可。问题3:
    (1) 测试序列:setBuyNum( )——setScanNum( )——calMoney( ) ——getMoney( ) ;(2)先测试Customer类,然后Manager类,最后测试Admin类。问题4:
    只需要在原有的测试分析基础上增加对测试用例中输入数据的类型的考虑即可。先测试基类,然后再分别依据输入数据设计不同的测试用例。
    【解析】
    问题1:解析:
    考察类图的泛化关系。泛化关系也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类,泛化关系通常用带空心三角形的直线来表示。对泛化关系有三个要求:1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;2、子类中除了与父类一致的信息以外,还包括额外的信息;3、可以使用父类的实例的地方,也可以使用子类的实例;问题2:解析:
    该题考察面向对象的多态机制和继承机制。多态就是在使用父类的引用调用方法的时候,不是使用父类中的方法,而是父类指向的对象的方法,这样就实现了多态。继承是指在一个类基础上定义一个新类,原有的类叫做父类,新生成的类叫子类,继承的过程是一个从一般到特殊的过程。 问题3:解析:
    根据题干提示,方法calMoney( ),根据每位顾客的购买情况(buyNum)、浏览商品的情况(scanNum)计算商品的热度。类之间测试的先后关系可以参考各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。问题4:解析:
    题干描述,方法statMoney()需要调用Customer中的calMoney()。而该方法在Customer和Manager中有不同的实现,因此需要同时考虑Customer和Manager中的calMoney()。

  • 第5题:

    某客户信息管理系统中保存着两类客户的信息:
    (1)个人客户。对于这类客户,系统保存了其客户标识(由系统生成)和基本信息(包括姓名、住宅电话和E-mail)
    (2)集团客户。集团客户可以创建和管理自己的若干名联系人。对于这类客户,系统除了保存其客户标识(由系统生成)之外,也保存了其联系人的信息。联系人的信息包括姓名、住宅电话、E-mail、办公电话以及职位
    该系统除了可以保存客户信息之外,还具有以下功能:
    (1)向系统中添加客户(addCustomer)
    (2)根据给定的客户标识,在系统中查找该客户(getCustomer)
    (3)根据给定的客户标识,从系统中删除该客户(removeCustomer)
    (4)创建新的联系人(addContact)
    (5)在系统中查找指定的联系人(getContact)
    (6)从系统中删除指定的联系人(removeContact)
    该系统采用面向对象方法进行开发。在面向对象分析阶段,根据上述描述,得到如表2-5所示的类
    表2-5 得到的各种类



    类名说明
    CustomerInformationSystem客户信息管理系统
    IndividualCustomer个人客户
    InstitutionalCustomer集团客户
    Contact联系人
    描述该客户信息管理系统的UML类图如图2-26所示



    图2-26 客户信息管理系统的UML类图
    【问题1】
    请使用说明中的术语,给出图2-26中类Customer和类Person的属性
    【问题2】
    识别关联的多重度是面向对象建模过程中的一个重要步骤。根据说明中给出的描述,完成图中的(1)~(6)
    【问题3】
    根据说明中的叙述,抽象出如表2-6所示的方法,请指出图2-26中的类CustomerInformationSystem和InstitutionalCustomer应分别具有其中的哪些方法
    表2-6 抽象出的方法



    答案:
    解析:
    【问题1】
    Customer的属性:客户标识
    Person的属性:姓名、住宅电话、E-mail
    【问题2】
    (1)1(2)0..*(3)1
    (4)1(5)1(6)1..*
    【问题3】
    CustomerInformationSystem的方法:addCustomer,getCustomer,removeCustomer
    InstitutionalCustomer的方法:addContact,getContact,removeContact
    【解析】
    根据题目描述得知,客户信息管理系统的功能是管理个人用户和集团用户,个人用户和集团用户的区别在于集团用户有自己的联系人,而个人用户没有。
    【问题1】
    问题1要求考生给出类Customer和Person的属性。在图2-26中,Customer表示客户类,IndividualCustomer和InstitutionalCustomer都是Customer的子类,IndividualCustomer是个人客户,InstitutionalCustomer是集团客户。既然Customer是个人客户类和集团客户类的父类,则它必有两者的共同点。由于集团客户和个人客户都有客户标识,所以Customer的属性为"客户标识"。Contact是联系人,只有集团客户才有联系人。Person类是Contact类的父类,同时又与IndividualCustomer有关联,所以Person类应具有Contact与IndividualCustomer的共同点,它们的共同点就是联系人与个人客户都有自己的基本信息:姓名、住宅电话和E-mail。因此,Person的属性有:姓名、住宅电话和E-mail。
    【问题2】
    类CustomerInformationSystem表示的是客户信息管理系统,Customer表示的是客户类,一个客户信息管理系统中应有多个客户。所以CustomerInformationSystem与Customer之间的关系应是1:*。IndividualCustomer与Person其实是个人客户与该客户的基本信息之间的关系,显然一个客户只有一个基本信息,所以它们也是1:1的关系。最后是InstitutionalCustomer与Contact之间的关系,这也就是集团客户与联系人之间的关系,由于一个集团客户可有多个联系人,同时至少需要有一个联系人(如果联系人数量为0,则此客户为个人客户)。所以InstitutionalCustomer与Contact之间的关系应为1:1..*。
    【问题3】
    一个原则就可以解决这个问题:与客户操作相关的为CustomerInformationSystem的方法,而与联系人相关的操作是InstitutionalCustomer的方法。