软件设计师-2020年下半年案例分析真题解析【下篇】

四季读书网 2 0
软件设计师-2020年下半年案例分析真题解析【下篇】
【第 】(题型:简答题)
题目:阅读下列说明和数据流图,回答问题 1 至问题 4, 将解答填入答题纸的对应栏内。
【说明】
某工厂制造企业开发了智能检测系统以有效提升检测效率,节约人力资源,该系统的主要功能包括:
(1) 基础信息管理。管理员对检测标准和监控规则等基础信息设置。
(2) 检测模型部署。管理员对常用机器学习方法建立检测模型分布。
(3) 图像采集。实时将检测多样的产品待检测建分存储,包括产品结构,生产时间,图像信号和产品图像。
(4) 缺陷检测。根据检测模型和检测质量标准对图像采集所收到的产品检测信息中所有图像进行检测或所有图像检测合格。若一个产品出现一张图像检测不合格,就表示该产品不合格,对不合格产品,其检测结果包括,产品型号和不合格类型。
(5) 质量检测。根据监控规则对产品质量进行监控,将检测情况展示给检测业务员,若不满足条件,向检测业务员发送质量报警,检测是质量发起远程控制部分,向检测设备发送控制指令进行处理。
(6) 模型监控。在系统中部署的模型、产品的检测信息结合基础信息进行监测分析,将模型运行情况发给监控人员。
现采用结构化方法对智能检测系统,进行分析与设计,获得如图 1-1 的上下文数据流图和图 1-2 的数据流图。
软件设计师-2020年下半年案例分析真题解析【下篇】 第1张
软件设计师-2020年下半年案例分析真题解析【下篇】 第2张
【问题 1】(4 分)
使用说明中的语句给出图 1-1 中的实体 E1~E4 的名称。
【问题 2】( 3 分 )
使用说明中的语句给出图 1-2 中的数据存储 D1~D3 的名称。
【问题 3】( 5 分 )
根据说明和图中术语,补齐图 1-2 中缺失的数据及起点和终点。
【问题 4】( 3 分 )
根据说明,采用结构化语言对缺陷检测的加工逻辑进行描述。
【 答 案 】
【问题 1】
E1:检测设备  E2:管理员  E3:检测业务员  E4:监控人员
【问题 2】
D1:检测模型存储
D2:检测标准 / 监控规则存储(或基础信息存储)
D3:产品检测信息存储(或待检信息存储)
【问题 3】
据流
起点
终点
产品监测信息
P2
P3
监控规则
D3
P5
远程控制命令
E3
P5
基础信息
D3
P6
【问题 4】
IF 产品所有图像检测合格
    THEN 判定该产品合格
ELSE
    判定该产品不合格,记录产品型号和不合格类型
END IF
【第 2 题】(题型:简答题)
题目:阅读下列说明,回答问题 1 至问题 4, 将解答填入答题纸的对应栏内。
【说明】
M 集团拥有多个分公司,为了方便集团公司对各个分公司职员进行有效管理,集团公司决定构建一个信息平台以满足公司各项业务管理需求。
【需求分析结果】
(1) 分公司关系模式需要记录的信息包括分公司编号、名称、经理号、联系地址和电话。分公司编号唯一标记分公司关系模式中的每一个元组,每个分公司各有一名经理,负责分公司的管理工作,每个分公司设立仅为本分公司服务的多个业务部,业务部包括:研发部、财务部、采购部、交易部等。
(2) 业务部关系模式需要记录的信息包括业务部编号、名称、地址、电话和分公司编号。业务部编号唯一标记业务部关系模式中的每一个元组,每个业务部各有一名主管负责业务部的管理工作,每个业务部有多名职员,每个职员只能来源于一个业务部。
(3) 职员关系模式需要记录的信息包括职员号、姓名、所属业务部编号、岗位、电话、家庭成员姓名和成员关系。其中岗位包括:经理、主管、研发员、业务员等。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图 (不完整) 如图 2-1 所示。
软件设计师-2020年下半年案例分析真题解析【下篇】 第3张
【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式 (不完整):
分公司 (分公司编号,名称,(a), 联系地址)
业务部 (业务部编号,名称,(b), 电话),
职员 (职员号,姓名,岗位,(c), 电话,家庭成员姓名,成员关系)
【问题 1】(4 分)
根据问题描述,补充 4 个联系,完善图 2-1 的实体联系图,联系名可用联系 1、联系 2、联系 3 和联系 4 代替,联系的类型为 1:1、1 :n 和 m:n (或 1:1、1:和:*)
【问题 2】(3 分)
根据题意将以上关系模式中的空 (a)~(c) 的属性补充完整,并填入对应位置。
【问题 3】(4 分 )
(1) 分析分公司关系模式的主键和外键
(2) 分析业务部关系模式的主键和外键
【问题 4】( 4 分 )
在职员关系模式中,假设每个职员有多名家属成员,那么职员关系模式存在什么问题?应如何解决?
【 答 案 】
【问题 1】
软件设计师-2020年下半年案例分析真题解析【下篇】 第4张
【解析】
分公司和经理是 1:1 关系,每个分公司有唯一经理
分公司和业务部是 1:n 关系,一个分公司有多个业务部
业务部和主管是 1:1 关系,每个业务部有唯一主管
业务部和职员是 1:n 关系,一个业务部有多个职员
【问题 2】
(a) 经理号、电话
(b) 地址、分公司编号
(c) 所属业务部编号
【解析】
根据需求中的属性描述,补充关系模式的缺失属性:
分公司需要包含经理号和电话
业务部需要包含地址和分公司编号
职员需要包含所属业务部编号
【问题 3】
(1) 分公司关系模式:主键为分公司编号;外键为经理号(关联职员关系模式的职员号)
(2) 业务部关系模式:主键为业务部编号;外键为分公司编号(关联分公司关系模式的分公司编号)
【解析】
主键是唯一标识关系中元组的属性,外键是关联其他关系的属性:
分公司的主键是分公司编号,经理号关联职员表中的经理,作为外键
业务部的主键是业务部编号,分公司编号关联分公司表,作为外键
【问题 4】
存在的问题:数据冗余、插入异常、删除异常、更新异常(家庭成员信息重复存储,当职员没有家属时无法插入,删除家属信息可能丢失职员基本信息,更新家属信息需要修改多条记录)
解决方法:将职员关系模式分解为两个关系模式:
职员 (职员号,姓名,所属业务部编号,岗位,电话)
家庭成员 (职员号,家庭成员姓名,成员关系)
【解析】
职员关系模式中包含家庭成员信息,属于多值属性,会导致数据冗余和操作异常,需要进行模式分解,将多值属性分离为独立的关系模式。
【第 3 题】(题型:简答题)
题目:阅读下列说明和 UML 图,回答问题 1 至问题 3, 将解答填入答题纸的对应栏内。
【说明】
某房产公司欲开发一个房产信息管理系统,其主要功能描述如下:
(1) 公司销售的房产 (Property ) 分为住宅 ( House ) 和公寓 (Cando) 两类。针对每套房产,系统存储房产证明、地址、建造年份、建筑面积,销售报价、房产照片以及销售状态 (在售,售出,停售) 等信息。对于住宅,还需存储楼层、公摊面积、是否有地下室等信息;对于公寓,还需存储是否有阳台等信息。
(2 ) 公司雇佣了多名房产经纪 (Agent ), 负责销售房产,系统中需要存储房产经纪的基本信息,包括:姓名、家庭住址、联系电话、受雇的起止时间等。 一套房产同一时段仅由一名房产经纪负责销售,系统中会记录房产经纪负责每套房产的起始时间和终止时间。
(3 ) 系统用户 ( User ) 包括房产经纪和系统管理员 (Manager ), 用户需经过系统身份验证之后才能登录系统。房产经纪登录系统之后,可以录入负责销售的房产信息,也可以查询所负责的房产信息。房产经纪可以修改其负责的房产信息,但需要经过系统管理员的审 批授权。
(4) 系统管理员可以从系统中导出所有房产的信息列表,系统管理员定期将售出和停售的房产信息进行归档,若公司确定不再销售某套房产,系统管理员将该房产信息从系统中删除。
现采用面向对象方法开发该系统,得到如图 3-1 所示的用例图和图 3-2 所示的初始类图。
软件设计师-2020年下半年案例分析真题解析【下篇】 第5张
软件设计师-2020年下半年案例分析真题解析【下篇】 第6张
【问题 1】(7 分)
(1) 根据说明中描述,分别给出图 3-1 中 A1 到 A2 所对应的参与者名称以及 U1 到 U3 所对应的用例名称。
(2 ) 根据说明中描述,分别给图 3-1 中 (a) 和 (b) 用例之间的关系。
【问题 2】( 6 分 )
根据说明中描述,分别给图 3-2 中 C1~C6 所对应的类名称。
【问题 3】( 2 分 )
图 3 - 2 中 AgentList 是一个英文名称,用来进一步阐述 C1 和 C6 之间的关系,根据说明中的描述,给出 AgentList 的主要属性。
【 答 案 】
【问题 1】
A1:房产经纪 (Agent)
A2:系统管理员 (Manager)
U1:身份验证
U2:修改房产信息
U3:删除房产信息
(a):包含关系(修改房产信息包含身份验证)
(b):扩展关系(删除房产信息是归档的扩展)
【问题 2】
C1:房产 (Property)
C2:住宅 (House)
C3:公寓 (Cando)
C4:用户 (User)
C5:系统管理员 (Manager)
C6:房产经纪 (Agent)
【问题 3】
AgentList 的主要属性:负责起始时间、负责终止时间
【第 4 题】(题型:编程填空题)
题目:阅读下列说明和 C 代码,回答问题 1 至问题 3, 将解答填入答题纸的对应栏内。
【说明】
希尔排序算法又称最小增量排序算法,其基本思想是:
步骤 1: 构造一个步长序列 delta1,delta2,...,deltak, 其中 delta1 =n/2, 后面的每个 delta 是前一个的 1/2, deltak=1;
步骤 2: 根据步长序列进行 k 趟排序;
步骤 3: 对第 i 趟排序,根据对应的步长 delta, 将等步长位置元素分,对同一组内元素在原位置上进行直接插入排序。
【C 代码】
#include <stdlib.h>
void SheliSort (int data [],int n){
    int* delta,k,i,t,dk,j;
    k =n;
    delta =(int)malloc(sizeof(int)*(n/2));
    i=0;
    do {
              (1)     ;
        delta[i++]=k;
    }while       (2)      ;
    i=0;
    while(     (3)     ){
        for(k =delta[i];k<n;++k)
            if(data[k]<data[k -dk]){
                t=data[k];
                for(j=k-dk;j>=0&&t<data[j];j-=dk)
                    data[j+dk]=data[j];
                       (4)      ;
            }
        ++i;
    }
}
【问题 1】(8 分)
根据说明和 C 代码,填充 C 代码中的空 (1)~(4)。
【问题 2】(4 分)
根据说明和 C 代码,该算法的时间复杂度 (5) 0 (n²) (填写小于、等于或大于)。该算法是否稳定 (6) (是或否)。
【问题 3】(3 分)
对数组 (15,9,7,8,20,-1,4) 用希尔排序方法进行排序,经过第一趟排后得到的数组为 (7)。
【 答 案 】
【问题 1】
(1) k = k/2
(2) k > 1
(3) data[k-dk]>data[k]
(4) data [j+dk] = t
【问题 2】
(5) 小于
(6) 否
【问题 3】
(7) (4,9,-1,8,20,7,15)
【第 5 题】(题型:编程填空题)
题目:阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
在线支付是电子商务的一个重要环节,不同的电子商务平台提供了不同的支付接口。现在需要整合不同电子商务平台的支付接口,使得客户在不同平台上购物时,不需要关心具体的支付接口。拟采用中介者 ( Mediator) 设计模式来实现该需求,所设计的类图如图 6-1 所示。
软件设计师-2020年下半年案例分析真题解析【下篇】 第7张
【Java 代码】
import java.util.*;interface WebServiceMediator {    public (1) ;    public void SetAmazon (WebService amazon);    public void SetEbay (WebService ebay);}abstract class WebService {    protected (2) mediator;public abstract void SetMediator (WebServiceMediator mediator);public (3) ;    public abstract void search (double money);}class ConcreteServiceMediator implements WebServiceMediator {    private WebService amazon;    private WebService ebay;    public ConcreteServiceMediator (){    amazon =null;    ebay =null;    }    public void SetAmazon (WebService amazon){        this.amazon =amazon;    }    public void SetEbay (WebService ebay){        this.ebay =ebay;    }    public void buy (double money,WebService service){        if (service ==amazon)            amazon.search (money);        else            ebay.search (money);        }    }    class Amazon extends WebService {        public void SetMediator (WebServiceMediator mediator){        this.mediator =mediator;    }    public void buyService (double money){        (4) ;    }    public void search (double money){        System.out.println ("Amazon receive:"+money);    }}class Ebay extends WebService {    public void SetMediator (WebServiceMediator mediator){    this.mediator =mediator;    }    public void buyService (double money){        (5) ;    }    public void search (double money){        System.out.println ("Ebay receive:"+money);    }}
【 答 案 】
(1) void buy (double money, WebService service)
(2) WebServiceMediator
(3) abstract void buyService (double money)
(4) mediator.buy (money, this)
(5) mediator.buy (money, this)
【解析】
(1) 根据 ConcreteServiceMediator 类中的实现,WebServiceMediator 接口需要定义 buy 方法
(2) WebService 类中需要持有中介者对象,类型为 WebServiceMediator
(3) WebService 抽象类需要定义 buyService 抽象方法,由子类实现
(4) Amazon 类的 buyService 方法通过中介者调用 buy 方法,传入自身作为参数
(5) Ebay 类的 buyService 方法与 Amazon 类相同,通过中介者调用 buy 方法
知识点盘点:
【试题一知识点】
・数据流图 (DFD) 的基本元素:外部实体、加工、数据存储、数据流
・DFD 分层设计原则:上下文图、0 层图、子图的数据流一致性
・结构化语言的使用:用于描述加工逻辑的标准化语言
・数据流完整性检查:确保所有输入输出数据流的闭环
【试题二知识点】
・ER 图的基本元素:实体、属性、联系
・关系模式的主键和外键设计
・关系模式的规范化:消除数据冗余和操作异常
・多值属性的处理方法:模式分解
・联系类型:1:1、1:n、m:n
【试题三知识点】
・UML 用例图的元素:参与者、用例、用例关系(包含、扩展、泛化)
・UML 类图的元素:类、继承关系、关联关系、聚合 / 组合关系
・面向对象设计的继承原则:父类和子类的属性与方法复用
・关联类的作用:记录关联关系的附加属性
【试题四知识点】
・希尔排序算法的基本原理和步骤
・排序算法的时间复杂度分析
・稳定排序与不稳定排序的概念
・直接插入排序的实现逻辑
【试题五知识点】
・中介者 (Mediator) 设计模式的原理和结构
・Java 接口和抽象类的使用
・面向对象的依赖倒置原则
・设计模式的应用场景:减少对象间的直接耦合

THE  END -

点击下方卡片关注我   点个小赞你必上岸↓↓↓

软件设计师-2020年下半年案例分析真题解析【下篇】 第8张
软件设计师-2020年下半年案例分析真题解析【下篇】 第9张
 点个小“赞” 你必上岸

抱歉,评论功能暂时关闭!