目录
案例
【题目】
【问题 1】(12 分)
【问题 2】(5 分)
【问题 3】(8 分)
【答案】
【问题 1】答案
【问题 2】答案
【问题 3】答案
相关推荐
案例
阅读以下关于软件系统建模的叙述,在答题纸上回答问题 1 至问题 3。
【题目】
某公司欲建设一个房屋租赁服务系统,统一管理房主和租赁者的信息,提供快捷的租赁服务。本系统的主要功能描述如下:
1. 登记房主信息。记录房主的姓名、住址、身份证号和联系电话等信息,并写入房主信息文件。
2. 登记房屋信息。记录房屋的地址、房屋类型(如平房、带阳台的楼房、独立式住宅等)、楼层、租金及房屋状态(待租赁、已出租)等信息,并写入房屋信息文件。一名房主可以在系统中登记多套待租赁的房屋。
3. 登记租赁者信息。记录租赁者的个人信息,包括:姓名、性别、住址、身份证号和电话号码等,并写入租赁者信息文件。
4. 安排看房。已经登记在系统中的租赁者,可以从待租赁房屋列表中查询待租赁房屋信息。租赁者可以提出看房请求,系统安排租赁者看房。对于每次看房,系统会生成一条看房记录并将其写入看房记录文件中。
5. 收取手续费。房主登记完房屋后,系统会生成一份费用单,房主根据费用单交纳相应的费用。
6. 变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态的请求。系统将根据房主的请求,修改房屋信息文件。
【问题 1】(12 分)
若采用结构化方法对房屋租赁服务系统进行分析,得到如图 2-1 所示的顶层 DFD。使用题干中给出的词语,给出图 2-1 中外部实体 E1~E2、加工 P1~P6 以及数据存储 D1~D4 的名称。
【问题 2】(5 分)
若采用信息工程(Information Engineering)方法对房屋租赁服务系统进行分析,得到如图 2-2所示的 ERD。请给出图 2-2 中实体(1)~(5)的名称。
【问题 3】(8 分)
(1)信息工程方法中的“实体(entity)” 与面向对象方法中的“类(class)”之间有哪些不同之处?
(2)在面向对象方法中通常采用用例(Use Case)来捕获系统的功能需求。用例可以按照不同的层次来进行划分,其中的 Essential Use Cases 和 Real Use Cases 有哪些区别?
【答案】
外部实体:
(1)人物角色:如房主、租赁者、客户、管理员、主管、经理、老师、学生;
(2)组织机构:如银行、供应商、募捐机构;
(3)外部系统:如银行系统、工资系统、后台数据库(当要开发的是中间件时)。
数据存储:
存储的文字方面特征: 文件、表、库、清单、档案。
数据流:
①、数据平衡原则
(1)顶层图与0层图对比,顶层图有0层图无的数据流,或顶层图无0层图有的数据流。
(2)检查图中每个加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。
②、按题目说明与图进行匹配
说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出纰漏。
加工名:
加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找“动词+名词”的结构,分析是否可作为加工。
“动词+名词”如:生成报告、发出通知、批改作业、记录分数,当然这只是普遍情况,也有例外,如物流跟踪、用户管理。
【问题 1】答案
E1:房主 | E2:租赁者 |
P1:登记房主信息 | P2:登记房屋信息 |
P3:登记租赁者信息 | P4:查询待租赁房屋信息 |
P5:安排看房 | P6:变更房屋状态 |
D1:房主信息文件 | D2:租赁者信息文件 |
D3:写入房屋信息 | D4:看房记录文件 |
博主这题答的还可以,仅《P4:查询待租赁房屋信息》,少了查询二字,这题整体来说没难度,总结提取关键字即可。答案用表格显得整齐一点,
【问题 2】答案
本问题考查信息工程方法中的模型 ER 图。ER 图中包含两个主要元素:实体和联系。实体是现实世界中可以区别于其他对象的“事件”或“物体”。本题要求补充图 2-2中的实体。
根据题目描述和实体之间的联系可知,(1)和(2)分别对应房主和房屋,两者之间的联系为“房主拥有房屋”。同理可以推断出,(3)~(5)分别是实体“房屋类型”“租赁者”和“看房安排”。
参考答案1:1、房主;2、房屋;3、房屋类型;4、租赁者;5、安排看房。
参考答案2:1、房主;2、房屋;3、房屋信息文件;4、租赁者;5、看房记录文件。
博主答案:1、房主;2、房屋;3、房主(这个错喽);4、租赁者;5、安排看房。
【问题 3】答案
(1):实体用于数据建模,而类用于面向对象建模。实体只有属性,而类有属性和操作。
(2):Essential Use Cases(抽象用例),Real Use Cases(基础用例),这两者的区别为:基础用例是实实在在与用户需求有对应关系的用例,是从用户需求获取的渠道得到的,而抽象用例是从基础用例中抽取的用例的公共部分,是为了避免重复工作,优化结构而提出的用例。
这道题考察的是理论知识,前提是你要认识 Essential Use Cases,Real Use Cases。
相关推荐
【系统架构设计师】九、软件工程(需求工程|系统分析与设计|DFD|DD|高内聚低耦合)CSDN博客文章浏览阅读1.2k次,点赞27次,收藏24次。系统设计方法:结构化设计方法,面向对象设计方法。系统设计的主要内容:概要设计、详细设计。概要设计基本任务:又称为系统总体结构设计,是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。详细设计的基本任务:模块内详细算法设计、模块内数据结构设计、数据库的物理设计、其他设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。_软件需求获取、分析、验证https://shuaici.blog.csdn.net/article/details/1402592072016年系统架构师案例分析试题二-CSDN博客文章浏览阅读1.1k次,点赞31次,收藏20次。2016年系统架构师案例分析试题二。用例之间的关系包括:包含、扩展、泛化。类与类之间的关系,主要包括关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和依赖(Dependence)。https://shuaici.blog.csdn.net/article/details/141391466