例题1

题目

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
某房产中介连锁企业欲开发一个基于Web的房屋中介信息系统,以有效管理房源和客户,提高成交率。该系统的主要功能是:
1.房源采集与管理。系统自动采集外部网站的潜在房源信息,保存为潜在房源。由经纪人联系确认的潜在房源变为房源,并添加出售/出租房源的客户。由经纪人或客户登记的出售/出租房源,系统将其保存为房源。房源信息包括基本情况、配套设施、交易类型、委托方式、业主等。经纪人可以对房源进行更新等管理操作。
2.客户管理。求租/求购客户进行注册、更新,推送客户需求给经纪人,或由经纪人对求租/求购客户进行登记、更新。客户信息包括身份证号、姓名、手机号、需求情况、委托方式等。
3.房源推荐。根据客户的需求情况(求购/求租需求情况以及出售/出租房源信息),向已登录的客户推荐房源。
4.交易管理。经纪人对租售客户双方进行交易信息管理,包括订单提交和取消,设 置收取中介费比例。财务人员收取中介费之后,表示该订单已完成,系统更新订单状态和 房源状态,向客户和经纪人发送交易反馈。
5.信息查询。客户根据自身查询需求查询房屋供需信息。
现采用结构化方法对房屋中介信息系统进行分析与设计,获得如图1 所示的上下文数据流图和图2所示的0层数据流图。

upload successful

upload successful
【问题 1】 (8分)
(1)使用说明中的词语,给出图1中的实体E1-E4的名称;
(2)使用说明中的词语,给出图2中的数据存储D1-D4的名称。
【问题 2】 (5 分)
根据说明和图中术语,补充图2中缺失的数据流及其起点和终点。
【问题 3 】 (12 分)
需求分析的方法主要有结构化的分析方法、面向对象分析方法,而结构化分析方法需要建立三个模型,包括功能模型、行为模型和数据模型。而功能模型一般用数据流图来表示。请简单介绍需求分析的主要任务?以及需求分析包括哪几个方面的工作?

答案

【问题 1】

(1)E1:客户;E2:经纪人;E3:财务人员;E4:外部网站
(2)D1:客户记录;D2:潜在房源记录;D3:房源记录;D4:订单记录
【问题2】

本题1条1分,5条满分。

缺失数据流如下:

1、交易反馈:起点-4交易管理,终点-E2

2、潜在房源信息:起点-1房源采集与管理,终点:E2-经纪人

3、客户需求:起点-D1,终点-3房源推荐

4、房源状态:起点-4交易管理,终点-D3

5、检索潜在房源信息:起点-D2,终点-1房源采集与管理

6、更新客户信息:起点-2客户管理,终点-D1客户记录

【问题3】

需求分析它的主要任务就是要提炼、分析、认真审查已经获取到的需求,确保所有的项目干系人都要明白其中的含义,要找出其中的错误、遗漏或者其它不足的地方,所以需求分析通常来讲,它的工作就包括啦7个方面:第1要绘制系统的上下文的范围关系图;第2要创建用户界面的原型;第3要分析需求的可行性;第4要确定需求的优先级;第5要为需求建立模型;第6要创建数据字典;最后要使用QFD。、

解析

【问题 1】

题干说明中,自动采集潜在房源信息,并且无反馈信息的为外界网站,即图1中的E4; 只有经纪人可以确认潜在房源,因此E2为经纪人;
系统只向客户推送推荐房源,因此E1为客户;财务管理人员收取中介费用,因此E3为财务人员。
综上,E1:客户;E2:经纪人;E3:财务人员;E4:外部网站。
对于新增潜在房源,保存为潜在房源,即D2为潜在房源记录;
对于新增房源保存为房源,即D3为房源记录;
对于新增客户应该保存为客户信息,因此D1为客户记录或客户信息表;
对于订单检索的对象应该为订单记录,即D4为订单记录。
【问题 2】
由顶层图和0层图的父子平衡可知,图2遗漏 4 -> E2,交易反馈;1 -> E2,潜在房源信息;
由题干描述可知,对于 4交易管理,“系统更新订单状态和房源状态”,此时需要更新房源状态,此处缺少数据流 4 ->D3;
由题干描述可知,对于3房源推荐,“根据客户的需求情况(求购/求租需求情况以及出售/出租房源信息),向已登录的客户推荐房源。”,此处缺少数据流,D1 -> 3。

由题干描述可知,对于1房源采集和管理,“ 由经纪人联系确认的潜在房源变为房源,并添加出售/出租房源的客户”,此时经纪人需要“检索潜在房源”进行确认,此处缺少对潜在房源信息的读取,需要补充数据流D2->1。

由题干描述可知,对于2客户管理,“求租/求购客户进行注册、更新,推送客户需求给经纪人,或由经纪人对求租/求购客户进行登记、更新。”,此处缺少更新的客户信息数据流(此处与新增客户不能等同),需要补充2 -> D1。

【问题 3】
需求分析它的主要任务就是要提炼、分析、认真审查已经获取到的需求,确保所有的项目干系人都要明白其中的含义,要找出其中的错误、遗漏或者其它不足的地方,所以需求分析通常来讲,它的工作就包括啦7个方面:第1要绘制系统的上下文的范围关系图;第2要创建用户界面的原型;第3要分析需求的可行性;第4要确定需求的优先级;第5要为需求建立模型;第6要创建数据字典;最后要使用QFD。

upload successful

例题2

某高校图书馆购买了若干学术资源的镜像数据库(Minor DB)资源,现要求开发一套数字图书馆(Digital library)系统,面向校内用户(User)提供学术资源(Resource)的浏览、检索和下载服务,系统的主要要求描述如下:
(a)系统中存储了每个镜像数据库的基本信息,包括:数据库名称,访问地址,数据库属性以及数据库简介等信息,用户进入某个镜像数据库后,可以浏览、检索以及下载其中的学术资源。
(b)会议集包含发表在该会议(在某个特定时间段,特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。
(c)系统用户(User)包括在校学生(Student),教师(Teacher)以及其他在职人员(Staff)。用户使用学校的统一身份认证登录系统后,使用系统提供的各项服务。
(d)系统提供多种资源检索的方式,主要包括:按照资源的题名检索(Search ByTitle),按照作者名称检索(Search By Author),按照来源检索(Search By Source)等。
(e)用户可以下载资源,系统记录每个资源被下载的次数。

【问题1】(8 分)
若采用面向对象方法对数字图书馆系统进行分析,得到如图1所示的用例图。请将合适的参与者名称填入图1中的(1)处,使用题干给出的功能描述(a)~(e),完善用例(2)~(8)的名称。

upload successful
【问题2】(9分)
用户登录系统后发起下载资源请求,进入下载资源界面。进行下载资源时使用数据库访问类获取资源的相关信息,在数据库中调用资源列表,并调取资源下载申请表,将下载申请表反馈到下载资源界面,并显示给用户;用户填写相关信息后提交确认,系统反馈是否允许下载,并显示给用户。
采用面向对象方法对下载过程进行分析,得到如图2所示的顺序图,使用题干中给出的描述,完善图2中对象(1),及消息(2)~(6)的名称。

upload successful
【问题3】(8分)
OOA主要有两大建模分别是(1)和(2),OOA分析大致遵循5个基本步骤:(3)、(4)、确认主题(5)、确定方法,请列举分别是哪5个步骤。在OOD中,类可以分为(6)、(7)、(8)3种类型。

答案

【问题1】
(1)用户
(2)(3)浏览资源,下载资源
(4)检索资源
(5)登录
(6)(7)(8)按题名检索,按作者检索,按来源检索
【问题2】
(1)资源列表
(2)获取资源信息
(3)加载下载资源申请表
(4)显示下载资源申请表
(5)填写相关信息并提交
(6)返回是否允许下载
【问题3】
(1)(2)用例建模、分析建模
(3)(4)(5)确定对象和类、确定结构、确定属性
(6)(7)(8)实体类、控制类和边界类

解析

upload successful

upload successful
【问题3】

upload successful
OOA建模主要建立两大模型:用例建模、分析建模。
OOA大致上遵循如下5个基本步骤。
(1)确定对象和类。这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和 处理现实世界中某些事物的信息的能力。类是多个对象的共同属性和方法集合的描述,它包括 如何在一个类中建立一个新对象的描述。
(2)确定结构。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系, 整体-部分结构反映整体和局部之间的关系。
(3)确定主题。主题是指事物的总体概貌和总体分析模型。
(4)确定属性。属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出, 并在对象的存储中指定。
(5)确定方法。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改、删除和选择的方法本身 都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。
在OOD中,类可以分为3种类型:实体类、控制类和边界类。

例题3

希赛公司承担一个舆情监管系统的开发,整个项目划分为九项活动,项目相关信息如表所示:

upload successful
【问题1】(6分)
请确定项目的关键路径,最短工期。
【问题2】(9分,每空1.5分)
A的期望工期为(1),松弛时间为(2)。
D的期望工期为(3),松弛时间为(4)。
F的期望工期为(5),松弛时间为(6)。
【问题3】(4分)
项目中,每个活动一旦开始,不允许暂停,请分析在要求最短时间完工的情况下,该项目最少需要多少人。
【问题4】(6分)
3、如果项目中F活动延误3天,会带来什么影响,针对该影响是否需要采取进度调控措施,如果调控,可采用什么方式。

答案

【问题1】(6分)
关键路径为:ACEGHI。最短工期:63天。
【问题2】(9分,每空1.5分)
A的期望工期为4天,松弛时间为0天。
D的期望工期为10天,松弛时间为7天。
F的期望工期为7天,松弛时间为1天。
【问题3】(4分)
要求最短时间完工的情况下,该项目最少需要35人【即D与E并行工作时所需要的人员数】。
【问题4】(6分)
F活动的总时差只有1天,如果延误3天,总工期将变为65天,即延误总工期2天。如果要按时完工,可对后续活动H或I采取快速跟进策略,或是采取增加资源策略(加人或加班)进行调整。

解析

upload successful

upload successful

upload successful

例题4

阅读以下关于软件架构设计的叙述,在答题纸上回答问题1至问题3 。
【说明】
某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:
a.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。
b.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致。
c.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。
d.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无需重启环境。
e.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。
f.能够连续运行的时间不小于240小时,意外退出后能够在10秒之内自动重启。
g.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布。
h.支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。
在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道-过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。

【问题1】(10分)
识别软件架构质量属性是进行架构设计的重要步骤。请分析题干中的需求描述,填写表1-1中(1)~(5)处的空白。
表1-1 质量属性识别表
upload successful
【问题2】(7分)
请在阅读题干需求描述的基础上,从交互方式、数据结构、控制结构和扩展方法4个方面对两种架构风格进行比较,填写表1-2中(1)~(4)处的空白。
表1-2 两种架构的比较

upload successful
【问题3】(8分)
在确定采用数据仓库架构风格后,王工给出了集成开发环境的架构图。请填写图1-1中(1)~(4)处的空白,完成该集成开发环境的架构图。

upload successful

答案

【问题1】
(1)f (2)性能 (3)d (4)g (5)b

【问题2】
(1)星型(工具之间通过中心结点进行交互)
(2)数据流(或流式数据)
(3)数据驱动
(4)模型适配(与数据仓储进行数据适配)

【问题3】
(1)模型/数据库/语法结构树
(2)编辑器
(3)适配器
(4)应用模拟器工具

解答

upload successful
【问题1】
本题考查的是架构设计过程中涉及的一些质量属性,以及架构风格的对比。
常用的质量属性包括:
1、性能
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件作出响应,或者在某段时间内系统所能处理的事件的个数。
2、可靠性
可靠性(reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。
3、可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
4、安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
5、可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考查这些变更的代价衡量可修改性。
6、易用性
软件开发工具应有十分友好的用户界面,用户乐于使用;工具应能剪裁和定制,以适应特定用户的需要;工具应能提示用户的交互操作,提供简单有效的执行方式;工具还应能检查用户的操作错误,尽可能自动改正错误。
题目中还涉及管道-过滤器风格与仓库风格的对比。这两种风格的基本概念为:
【问题2】
在管道-过滤器风格的软件体系结构中,每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
在仓库(repository)风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行。
一方面,若构件控制共享数据,则仓库是一传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。
题目中对比的方面分别是:
交互方式:管道-过滤器很明显是顺序结构或循环结构,数据在管理中进行传递。而仓库结构是数据在中心位置,所有的处理均是中心结点与周边结点之间的交互,从形态来看,是星型的。
数据结构:从数据结构来看,仓库风格会使用一个文件将数据保存起来,所有的操作围绕这个文件进行。而管道-过滤器则是在过滤器之间传递数据流。
控制结构:从控制结构来说仓库风格是业务功能驱动,而管道-过滤器是由数据流驱动的。
扩展方法:从扩展方法来讲,管道过滤器是通过过滤器提供标准接口与其他过滤器对接,而数据仓库风格,要共享数据,扩展功能,只要功能的操作与数据模型本身是匹配的就行了,就像我们要共享一个数据库做系统集成,此时共享同一数据库的多个应用系统所用的数据模型一定会是一致的,否则无法去共享。
【问题3】
本题最后一问是分析开发环境架构图。要填充这个图,首先得想明白的是,这个环境中,仓库的中心是数据,数据对应的是语法结构树,因为一系列的处理都是以此为依据来进行的。接下来找出与编译器同等地位的其他处理工具即可。