免费智能真题库 > 历年试卷 > 软件设计师 > 2016年上半年 软件设计师 下午试卷 案例
  第1题      
  知识点:   数据流图   投影   结构化方法   可用性   视频   数据流   组织机构

 
阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某会议中心提供举办会议的场地设施和各种设备,供公司与各类组织机构租用。场地包括一个大型报告厅、一个小型报告厅以及诸多会议室。这些报告厅和会议室可提供的设备有投影仪、白板、视频播放/回放设备、计算机等。为了加强管理,该中心欲开发一会议预订系统,系统的主要功能如下。
(1)检查可用性。客户提交预订请求后,检查预订表,判定所申请的场地是否在申请日期内可用;如果不可用,返回不可用信息。
(2)临时预订。会议中心管理员收到客户预定请求的通知之后,提交确认。系统生成新临时预订存入预订表,并对新客户创建一条客户信息记录加以保存。根据客户记录给客户发送临时预订确认信息和支付定金要求。
(3)分配设施与设备。根据临时预订或变更预定的设备和设施需求,分配所需设备(均能满足用户要求)和设施,更新相应的表和预订表。
(4)确认预订。管理员收到客户支付定金的通知后,检查确认,更新预订表,根据客户记录给客户发送预订确认信息。
(5)变更预订。客户还可以在支付余款前提交变更预订请求,对变更的预订请求检查可用性,如果可用,分配设施和设各;如果不可用,返回不可用信息。管理员确认变更后,根据客户记录给客户发送确认信息。
(6)要求付款。管理员从预订表中查询距预订的会议时间两周内的预定,根据客户记录给满足条件的客户发送支付余款要求。
(7)支付余款。管理员收到客户余款支付的通知后,检查确认,更新预订表中的已支付余款信息。
现采用结构化方法对会议预定系统进行分析与设计,获得如图1-1所示的上下文数据流和图1-2所示的0层数据流(不完整)。

 
问题:1.1   使用说明中的词语,给出图1-1中的实体E1~E2的名称。
 
问题:1.2   使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。
 
问题:1.3   根据说明和图中术语,补充图1-2之中缺失的数据流及其起点和终点。
 
问题:1.4   如果发送给客户的确认信息是通过Email系统向客户信息中的电子邮件地址进行发送的,那么需要对图1-1和1-2进行哪些修改?用150字以内文字加以说明。
 
 
 

   知识点讲解    
   · 数据流图    · 投影    · 结构化方法    · 可用性    · 视频    · 数据流    · 组织机构
 
       数据流图
        数据流图也称数据流程图(Data Flow Diagram,DFD),它是一种便于用户理解、分析系统数据流程的图形工具。它摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。
        1)数据流图的基本图形元素
        数据流图中的基本图形元素包括数据流(Data Flow)、加工(Process)、数据存储(Data Store)和外部实体(Extemal Agent)。其中,数据流、加工和数据存储用于构建软件系统内部的数据处理模型;外部实体表示存在于系统之外的对象,用来帮助用户理解系统数据的来源和去向。
        (1)数据流。
        数据流由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加工;从加工流向数据存储(写):从数据存储流向加工(读);从外部实体流向加工(输入);从加工流向外部实体(输出)。
        DFD中的每个数据流用一个定义明确的名字表示。除了流向数据存储或从数据存储流出的数据流不必命名外,每个数据流都必须有一个合适的名字,以反映该数据流的含义。值得注意的是,DFD中描述的是数据流,而不是控制流。
        数据流或者由具体的数据属性(也称为数据结构)构成,或者由其他数据流构成。组合数据流是由其他数据流构成的数据流,它们用于在高层的数据流图中组合相似的数据流,以使数据流图更便于阅读。
        (2)加工。
        加工描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。每个加工都有一个名字和编号。编号能反映出该加工位于分层DFD中的哪个层次和哪张图中,也能够看出它是哪个加工分解出来的子加工。
        一个加工可以有多个输入数据流和多个输出数据流,但至少有一个输入数据流和一个输出数据流。
        (3)数据存储。
        数据存储用来存储数据。通常,一个流入加工的数据流经过加工处理后就消失了,而它的某些数据(或全部数据)可能被加工成输出数据流,流向其他加工或外部实体。除此之外,在软件系统中还常常要把某些信息保存下来以供以后使用,这时可以使用数据存储。
        每个数据存储都有一个定义明确的名字标识。可以有数据流流入数据存储,表示数据的写入操作;也可以有数据流从数据向数据存储,表示对数据的修改。
        这里要说明的是,DFD中的数据存储在具体实现时可以用文件系统实现,也可以用数据库系统实现。数据存储的存储介质可以是磁盘、磁带或其他存储介质。
        (4)外部实体(外部主体)。
        外部实体是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。例如,对于一个考务处理系统而言,考生向系统提供报名单(输入数据流),所以考生是考务处理系统的一个源;而考务处理系统要将考试成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿。
        在许多系统中,某个源和某个宿可以是同一个人员或组织,此时,在DFD中可以用同一个符号表示。考生向系统提供报名单,而系统向考生送出准考证,所以在考务处理系统中,考生既是源又是宿。
        源和宿采用相同的图形符号表示,当数据流从该符号流出时,表示它是源;当数据流流向该符号时,表示它是宿;当两者皆有时,表示它既是源又是宿。
        2)数据流图的扩充符号
        在DFD中,一个加工可以有多个输入数据流和多个输出数据流,此时可以加上一些扩充符号来描述多个数据流之间的关系。
        (1)星号(*)。
        星号表示数据流之间存在"与"关系。如果是输入流则表示所有输入数据流全部到达后才能进行加工处理;如果是输出流则表示加工结束将同时产生所有的输出数据流。
        (2)加号(+)。
        加号表示数据流之间存在"或"关系。如果是输入流则表示其中任何一个输入数据流到达后就能进行加工处理;如果是输入流则表示加工处理的结果是至少产生其中一个输出数据流。
        (3)异或(⊕)。
        异或表示数据流之间存在"互斥"关系。如果是输入流则表示当且仅当其中一个输入流到达后才能进行加工处理;如果是输出流则表示加工处理的结果是仅产生这些输出数据流中的一个。
        3)数据流图的层次结构
        从原理上讲,只要纸足够大,一个软件系统的分析模型就可以画在一张纸上。然而,一个复杂的软件系统可能涉及上百个加工和上百个数据流,甚至更多。如果将它们画在一张图上,则会十分复杂,不易阅读,也不易理解。
        根据自顶向下逐层分解的思想,可以将数据流图按照层次结构来绘制,每张图中的加工个数可大致控制在"7加减2"的范围内,从而构成一套分层数据流图。
        (1)层次结构。
        分层数据流图的顶层只有一张图,其中只有一个加工,代表整个软件系统,该加工描述了软件系统与外界之间的数据流,称为顶层图。
        顶层图中的加工(即系统)经分解后的图称为0层图,也只有一张。处于分层数据流图最底层的图称为底层图,在底层图中,所有的加工不再进行分解。分层数据流图中的其他图称为中间层,其中至少有一个加工(也可以是所有加工)被分解成一张子图。在整套分层数据流图中,凡是不再分解成子图的加工称为基本加工。
        (2)图和加工的编号。
        首先介绍父图和子图的概念。
        如果某图(记为A)中的某一个加工分解成一张子图(记为B),则称A是B的父图,B是A的子图。若父图中有n个加工,则它可以有0一刀张子图,但每张子图只对应一张父图。
        为了方便对图进行管理和查找,可以采用下列方式对DFD中的图和加工编号。
        ①顶层图中只有一个加工(代表整个软件系统),该加工不必编号。
        ②0层图中的加工编号分别为1、2、3--。
        ③子图号就是父图中被分解的加工号。
        ④对于子图中加工的编号,若父图中的加工号为X的加工分解成某一子图,则该子图中的加工编号分别为x.1、x.2、X.3…。
        4)分层数据流图的审查
        在分层数据流图画好后,应该认真检查图中是否存在错误或不合理(不理想)的部分。
        (1)分层数据流图的一致性和完整性。
        ①分层数据流图的一致性。
        a.父图与子图的平衡。
        b.数据守恒。
        c.局部数据存储。
        d.一个加工的输出数据流不能与该加工的输入数据流同名。
        ②分层数据流图的完整性。
        a.每个加工至少有一个输入数据流和一个输出数据流。
        b.在整套分层数据流图中,每个数据存储应至少有一个加工对其进行读操作,另一个加工对其进行写操作。
        c.分层数据流图中的每个数据流和文件都必须命名(除了流入或流出数据存储的数据流),并保持与数据字典一致。
        d.分层数据流图中的每个基本加工都应有一个加工规约。
        (2)构造分层DFD时需要注意的问题。
        ①适当命名。
        a.名字应反映整个对象(如数据流、加工),而不是只反映它的某一部分。
        b.避免使用空洞的、含义不清的名字,如"数据""信息""处理""统计"等。
        c.如果发现某个数据流或加工难以命名,往往是DFD分解不当的征兆,此时应考虑重新分解。
        ②画数据流而不是控制流。
        ③避免一个加工有过多的数据流。
        a.把需要重新分解的某张图的所有子图连接成一张图。
        b.把连接后的图重新划分成几个部分,使各部分之间的联系最小。
        c.重新定义父图,即第b步中的每个部分作为父图中的一个加工。
        d.重新建立各子图,即第b步中的每个部分都是一张子图。
        e.为所有的加工重新命名并编号。
        ④分解尽可能均匀。
        ⑤先考虑确定状态,忽略琐碎的细节。
        ⑥随时准备重画。
        (3)分解的程度。
        在自顶向下画数据流图时,为了便于对分解层数进行把握,可以参照以下几条与分解有关的原则。
        ①7加减2。
        ②分解应自然,概念上应合理、清晰。
        ③只要不影响DFD的易理解性,可适当增加子加工数量,以减少层数。
        ④一般来说,上层分解得快一些(即多分解几个加工),下层分解得慢一些(即少分解几个加工)。
        ⑤分解要均匀。
 
       投影
        投影(Projection)运算是从关系的垂直方向进行运算,在关系R中选择出若干属性列A组成新的关系。记作
        πA(R)={t[A]|tR}
 
       结构化方法
        结构化方法属于自顶向下的开发方法,其基本思想是“自顶向下,逐步求精”,强调开发方法的结构合理性及所开发软件的结构合理性。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它包括了结构化分析(Structured Analysis, SA)、结构化设计(Structured Design, SD)和结构化程序设计(Structured Programing, SP)等方法。本章后续介绍的分析、设计、测试等内容,都是以结构化方法为基础的。
               结构化方法的基本原则
               为保证系统开发的顺利进行,结构化方法强调遵循以下几个基本原则:
               (1)面向用户的观点。在开发过程中,开发人员应该始终与用户保持联系,从调查研究入手,充分理解用户的信息需求和业务活动,不断地让用户了解工作的进展情况,校准工作方向。
               (2)严格区分工作阶段,每个阶段有明确的任务和应得的成果。
               (3)按照系统的观点,自顶向下地完成系统的开发工作。
               (4)充分考虑变化的情况。在系统设计中,把系统的可变更性放在首位。
               (5)工作成果文献化、文档化。
               结构化分析
               SA方法使用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下、逐层分解,直至找到满足功能要求的所有可实现的软件为止。SA方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表及判定树等。
               SA方法的步骤如下:
               (1)分析当前的情况,做出反映当前物理模型的数据流图(Data Flow Diagram, DFD)。
               (2)推导出等价的逻辑模型的DFD。
               (3)设计新的逻辑系统,生成数据字典和基元描述。
               (4)建立人机接口,提出可供选择的目标系统物理模型的DFD。
               (5)确定各种方案的成本和风险等级,据此对各种方案进行分析。
               (6)选择一种方案。
               (7)建立完整的需求规约。
               结构化设计
               SD方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与SA方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。
               SD方法的步骤如下:
               (1)评审和细化数据流图。
               (2)确定数据流图的类型。
               (3)把数据流图映射到软件模块结构上,设计出模块结构的上层。
               (4)基于数据流图逐步分解高层模块,设计中下层模块。
               (5)对模块结构进行优化,得到更为合理的软件结构。
               (6)描述模块接口。
               SD方法的设计原则是:
               (1)使每个模块执行一个功能(坚持功能性内聚)。
               (2)每个模块使用过程语句(或函数方式等)调用其他模块。
               (3)模块间传送的参数作为数据使用。
               (4)模块间共用的信息(如参数等)尽量少。
               结构化方法的缺点
               结构化方法是目前最成熟、应用较广泛的一种工程化方法。当然,这种方法也有不足和局限性:
               (1)开发周期长。一方面使用户在较长的时间内不能得到一个可实际运行的物理系统,另一方面难以适应环境变化。
               (2)早期的结构化方法注重系统功能,兼顾数据结构的方面不多。
               (3)结构化程度较低的系统,在开发初期难于锁定功能要求。
               这些问题在应用中有的已经解决,同时也产生了其他一些方法,例如原型法、面向对象方法等。
 
       可用性
        可用性(Availability)是指合法许可的用户能够及时获取网络信息或服务的特性。例如,网站能够给用户提供正常的网页访问服务,防止拒绝服务攻击。可用性是常受关注的网络信息系统CIA三性之一,其中A代表可用性(Availability)。对于国家关键信息基础设施而言,可用性至关重要,如电力信息系统、电信信息系统等,要求保持业务连续性运行,尽可能避免中断服务。
 
       视频
        视频是动态的画面序列,这些画面以超过每秒24帧的速度播放,便可以使观察者产生平滑、连续的视觉效果。视频类似于我们熟知的电影和电视,有声有色。电影采用了每秒24幅画面的播放速度,电视采用了每秒25幅或30幅画面的播放速度。视频图像可来自于录像带、影碟、电视、摄像机等,这些模拟视频信号可通过视频采集卡转换成数字视频信号,以便计算机进行处理和存储。
 
       数据流
        数据流由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向可以有以下几种:从一个加工流向另一个加工;从加工流向数据存储(写);从数据存储流向加工(读);从外部实体流向加工(输入);从加工流向外部实体(输出)。
        DFD中的每个数据流用一个定义明确的名字表示。除了流向数据存储或从数据存储流出的数据流不必命名外,每个数据流都必须有一个合适的名字,以反映该数据流的含义。
        数据流或者由具体的数据属性(也称为数据结构)构成,或者由其他数据流构成。组合数据流是由其他数据流构成的数据流,它们用于在高层的数据流图中组合相似的数据流,以使数据流图更便于阅读。
        控制流是对数据流图的补充,采用虚线表示,是对由触发系统功能的事件进行描述。
        另外,一个加工可以有多个输入数据流和多个输出数据流,此时可以加上一些扩充字符符号或图形元素来描述多个数据流之间的关系。如:
        (1)星号(*)。星号表示数据流之间存在“与”关系。如果是输入流则表示所有输入数据流全部到达后才能进行加工处理;如果是输出流则表示加工结束将同时产生所有的输出数据流。
        (2)加号(+)。加号表示数据流之间存在“或”关系。如果是输入流则表示其中任何一个输入数据流到达后就能进行加工处理;如果是输出流则表示加工处理的结果是至少产生其中一个输出数据流。
        (3)异或(⊕)。异或表示数据流之间存在“互斥”关系。如果是输入流则表示当且仅当其中一个输入流到达后才能进行加工处理;如果是输出流则表示加工处理的结果是仅产生这些输出数据流中的一个。
 
       组织机构
        在运维组织设计中,重点考虑人员、角色、岗位三个因素。运维公司将综合职能型组织、矩阵型组织和项目型组织,建立组合型组织架构,既有职能部门完成日常运维工作,又可以为完成各项临时小规模项目开发而设立矩阵型组织或项目型组织。
        信息中心和运维公司共同组建成立“运维联合领导小组”,由双方相关领导组成,主要进行高层协调,制定战略、划清目标,保障运维工作顺利完成。
        运维公司将按照组织机构的工作岗位及角色职责,统筹人力资源,抽调精兵强将,组建专门部门“政府门户网站运维部”,下设工作台、硬件集成支持组、软件集成支持组、软件开发支持组和内容维护组。“政府门户网站运维部”实际派驻不少于4人在工作现场,属于“一线”支持人员。
        疑难问题会商解决、小规模软件开发等将协调公司总部的其他人员参加,如项目中心、研发中心的技术骨干、软件开发工程师等,属于“二线”支持人员。
        个别问题还会涉及第三方支持,包括原厂商、合作伙伴、其他专家顾问等,属于“三线”支持人员。
        “二线”和“三线”支持人员不派驻现场,仅是在运维流程需要的时候才参与其中,流程结束,人员也将退出。
        针对政府门户网站内容管理平台运维服务项目,我们将组建现场一线、公司总部二线、外援三线不同技能和专业水平的服务团队,按照基于ITIL的服务流程提供服务。
        (1)一线。服务台是面向客户的统一服务接口,负责受理客户提出的服务需求(包括故障申告);负责对服务范围内的服务需求(包括故障申告)进行处理和任务分派,并跟踪和反馈处理情况;派驻现场一线的技术支持人员接受故障任务分派后,进行不同岗位的处理和协作。
        (2)二线。由公司总部技术专家、技术骨干、软件工程师组成,负责解决现场派驻服务不能解决的问题。
        (3)三线。由第三方供应商、高级技术专家、顾问等组成,负责协助现场服务组处理故障,必要时赴现场处理故障;主动发现、分析和解决问题;负责提供远程监控及按需现场服务中的其他相关服务。
        运维人员的技术掌握全面,涵盖软硬件整个层面。硬件方面掌握主流多种网络设备、服务器设备、安全设施、存储器设备等;系统软件方面熟悉Windows、UNIX、Linux三大主流操作系统,Oracle、SQL Server、DB2等大型数据库,WebSphere、WebLogic、Tomcat、IIS等多种应用中间件;软件开发方面深入掌握J2EE和Net两大体系,精通B/S开发,精通多种语言。
        运维项目中主要涉及的技术角色有“硬件集成”“软件集成”“数据管理”“内容维护”“软件开发”“软件测试”和“美工设计”等,在关键角色职责方面,大部分都可以由2人以上担任,即关键角色重叠备份,提高技术储备能力和实际运维水平,同时也可以防范人员流动造成的部分技术空白风险。
   题号导航      2016年上半年 软件设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第1题    在手机中做本题