某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的重要功能包括代码编辑、语法高亮显示、代码编译、系统调试、代码仓库管理等,在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能。b)在正常负载情况下,系统应该在0.2s内对用户的界面操作请求进行响应c)系统应该具备完善的安全防护措措施,能够对黑客的攻击行为进行检测和防御d)系统主站点断电后应在3s内将请求重定向到备用站点e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符f)系统宕机后,需要在15s内发现错误,并启用备用系统g)在正常负载情况下,户的代码提交请求应在0.5s内完成h)系统支持硬件设备灵活扩容,应保证在2人天内完成i)系统需要针对代码仓库的所有操作进行详细记录;便于后期查阅与审计j)更改系统web界面风格需要在4人天内完成k)系统本身需要提供远程调试接口,支持开发团队进行远程排错在对系统需求质量属性和架构特性进行分析的基础上,该公司的系统架构师给出了两种方案,分别是管道-过滤器和仓库风格。
【问题1】(13分)请问该需求应该采用哪一种风格。表1-1是对这两种风格分别从数据处理方式、系统拓展方式和处理性能三个方面进行了比较,请填写表1-1中(1)~(4)处的空白。
【问题2】(12分)1、请分析题干中的需求描述,填写图1-2中(1)~(6)处的空白。
答案与解析
试题难度:一般知识点:案例分析>软件架构风格与架构设计试题答案:【问题1】1.应该采用仓库风格。(5分)2.表(1)-(4)空的空白分别为:(8分)(1)文件或模型驱动机制,处理流程事先不确定,交互性强(2)数据与处理紧耦合,以接口适配方式实现扩展(3)中央系统构件体现系统状态,系统执行没有确定的顺序,效能调低?(4)共享中心数据,加载共享数据,性能调高?【问题2】(12分)(1)安全性(2)可修改性(3)g(4)i(5)f(6)j
试题解析:本题考查的是架构设计过程中涉及到的一些质量属性,以及架构风格的对比。【问题1】在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。在仓库(repository)风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行。一方面,若构件控制共享数据,则仓库是一传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。通过交互方式、数据结构、控制结构和扩展方法分别对仓库风格和管道过滤器风格进行对比,如下所示:交互方式:管理过滤器很明显是顺序结构或循环结构,数据在管理中进行传递。而仓库结构是数据在中心位置,所有的处理均是中心结点与周边结点之间的交互,从形态来看,是星型的。数据结构:从数据结构来看,仓库风格会使用一个文件将数据保存起来,所有的操作围绕这个文件进行。而管道过滤器则是在过滤器之间传递数据流。控制结构:从控制结构来说仓库风格是业务功能驱动,而管道过滤器是由数据流驱动的。扩展方法:从扩展方法来讲,管道过滤器是通过过滤器提供标准接口与其它过滤器对接,而数据仓库风格,要共享数据,扩展功能,只要功能的操作与数据模型本身是匹配的就行了,就像我们要共享一个数据库做系统集成,此时共享同一数据库的多个应用系统所用的数据模型一定会是一致的,否则无法去共享。【问题2】本题主要考查考生对于软件质量属性的理解、掌握和应用。本题考查的是架构设计过程中涉及到的一些质量属性,以及架构风格的对比。常用的质量属性包括:1、性能性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。2、可靠性可靠性(reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。3、可用性可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。4、安全性安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。5、可修改性可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。6、易用性软件开发工具应有十分友好的用户界面,用户乐于使用;工具应能剪裁和定制,以适应特定用户的需要;工具应能提示用户的交互操作,提供简单有效的执行方式;工具还应能检查用户的操作错误,尽可能自动改正错误。识别软件架构质量属性是进行架构设计的重要步骤。根据对相关质量属性的定义和含义,其中:“c)系统应该具备完善的安全防护措措施,能够对黑客的攻击行为进行检测和防御”、“i)系统需要针对代码仓库的所有操作进行详细记录;便于后期查阅与审计”属于安全性;“h)系统支持硬件设备灵活扩容,应保证在2人天内完成”、“j)更改系统web界面风格需要在4人天内完成”这描述的是系统的可修改性;“g)在正常负载情况下,户的代码提交请求应在0.5s内完成”描述的是性能属性。
第 2 题某企业委托软件公司开发一套包裹信息管理系统,以便于对该企业通过快递收发的包裹信息进行统一管理,在系统设计阶段,需要对不同快递信息的包裹单信息进行建模,其中,邮政包裹单如图2-1所示:
图2-1 包裹详情单
【问题1】(13分)请说明关系型数据库开发中,逻辑数据模型设计过程包含哪些任务?根据图2-1 包裹详情单应该设计出哪些关系模式的名称,并指出每个关系模式的主键属性。【问题2】(6分)请说明什么是超类实体?结合图中包裹单信息,试设计一种超类实体,给出完整的属性列表。【问题3】(6分)请说明什么是派生属性?结合图中包裹单信息说明哪个属性是派生属性。
答案与解析
试题难度:一般知识点:试题答案:【问题1】逻辑结构设计包含的任务主要有:(1)把概念结构设计阶段设计好的基本E-R图转换为关系数据库的关系模式;(2)对关系模式进行优化;(3)设计用户视图。设计的关系模式主要有:收件人信息。主键:证件号寄件人信息。主键:用户代码包裹单信息。主键:包裹单编号快递员信息。主键:员工编号邮局站点信息。主键:邮局编号【问题2】将一些子实体所共有的属性抽象为一个单独的新实体,这个新的实体就是超类实体。比如根据这个包裹单信息可以设计一个 “人员信息”的超类:人员信息(姓名,电话,单位名称,详细地址,邮政编码)。【问题3】可以从其它属性得来的属性就叫派生属性。包裹图中的“总计”属性是派生属性。
试题解析:【问题1】数据库设计分为概念结构设计、逻辑结构设计物理结构设计:概念设计也称为概念结构设计,其任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法将它们抽象为一个不依赖于任何DBMS的数据模型,即概念模型。概念模型的表现形式即ER模型。逻辑设计也称为逻辑结构设计,其主要任务是将概念设计阶段设计好的E-R图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(如:关系模式)。物理设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。【问题2】当较低层次上实体类型表达了与之联系的较高层次上的实体类型的特殊情况时,就称较高层次上实体类型为超类型,反之为子类型。子类到超类的过程为概化,超类到子类的过程为特化。①子类与超类之间具有继承特点,即子类包含了超类的所有属性,并且可以比超类拥有