【系统分析师之路】2008年下系统分析师下午论文真题
2008年下系统分析师下午论文真题
-
- 【系统分析师之路】2008年下系统分析师下午论文真题
-
- 试题一 论基于场景的软件体系结构评估方法
- 试题二 论敏捷开发方法的应用
- 试题三 论SOA 在企业信息化中的应用
- 试题四 论SaaS(Software-as-a-Service,软件即服务)的关键技术
试题一 论基于场景的软件体系结构评估方法
试题一 论基于场景的软件体系结构评估方法
大型复杂软件系统开发所关注的问题之一是质量,在软件系统的早期设计阶段,选择合适的体系结构对系统许多关键质量属性(如可用性、可修改性、性能、安全性、易用性等)起着决定性的影响。不恰当的软件体系结构将给项目开发带来灾难。因此,尽早分析和评估一个系统的体系结构非常重要。软件体系结构分析和评估的目的是为了识别体系结构中潜在的风险,验证系统的质量需求在设计中是否得到体现,预测系统的质量并帮助开发人员进行设计决策。
软件体系结构的评估通常是指评估参与者在评估过程中利用特定评估方法对系统质量属性进行分析与评估。基于调查问卷或检查表的评估和基于场景(Scenarios)的评估是目前主要的两类评估方式。利用场景评估技术进行软件体系结构评估的主流方法包括SAAM (Scenario-based Architecture Analysis Method)、ATAM(Architecture Tradeoff Analysis Method )和CBAM(Cost Benefit Analysis Method)。SAAM方法最初用于比较不同的体系结构,后来用于指导对体系结构的检查,使其主要关注潜在的问题,如需求冲突,或仅从某一参与者观点出发的不全面的系统设计。ATAM方法在揭示出结构满足特定质量目标的同时,也能反映出质量目标之间的联系,从而权衡多个质量目标。 CBAM方法可以看作是 ATAM 方法的补充,在其评估结果上对软件体系结构的经济性进行评估。
请围绕“基于场景的软件体系结构评估方法”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作,包括角色、工作内容等。
2.请从评估目的、评估参与者、评估活动或过程、评估结果等几个方面对SAAM或ATAM评估方法进行分析。
3.结合你参与的实际工作和项目的实际情况,具体阐述你在进行体系结构设计和评估时,采用了什么评估方法,如何具体实施,最终实际效果如何。
【解答】
SAAM的分析和评估目的,评估参与者,评估活动及过程以及评估结果的说明如下:
评估目的
SAAM的基本目的是验证基本的体系结构假设和原则,评估体系结构固有的风险。SAAM指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突。SAAM不仅能够评估体系结构,对于特定需求的使用能力,也能被用来比较不同的体系结构。
评估参与者
风险承担者,记录人员,软件体系结构设计师。
评估过程
1)形成场景
通过集中讨论来实现。使风险承担者在一个很友好的氛围中提出一些场景,这些场景反映了他们的需求。也体现了他们对体系结构将如何实现需求的认识。
2)描述体系结构
体系结构设计师应该采用参加评估的所有人员都能够充分理解的形式,对待评估的体系结构进行适当的描述。这种描述说明系统中的运算和数据构件,以及它们之间的联系。除了要描述这些静态特征以外,还要对系统在某段时间内的动态特征进行说明。
3)对场景分类和确定优先级
场景分为直接场景和间接场景,间接也叫潜在场景。
直接场景
直接场景是按照现有的体系结构开发出来的系统能够直接实现的场景;与在设计时已经考虑过的需求相对应的间接场景能增进对体系结构的理解,促进诸如对性能和可靠性等其他质量属性的研究。
间接场景
就是需要对现有体系结构做某些修改才能支持的场景。间接场景对衡量体系结构对系统在演化过程中将出现的变更的适应情况十分关键。通过各种间接场景对体系结构的影响,可以确定体系结构在相关的生命周期内对不断演化的使用的适用情况。直接场景类似于用例,而间接场景类似于变更案例。评估人员通过对场景设置优先级,可以保证在评估的有限时间内,考虑最重要的场景。这里的“重要”完全是由风险承担者及其所关心的问题确定的。风险关心者通过投票表达所关心的问题。
4)对间接场景进行单个评估
对于直接场景的评估而言,体系结构设计师要讲清所评估的体系结构将如何进行这些场景;
对于间接场景而言,应说明需要对体系结构做哪些修改才能适应间接场景的要求。
5)评估场景和相互作用
场景的相互作用暴露了设计方案中的功能分配。场景相互作用的多少与结构复杂性耦合度,内聚性有关。同时,场景的相互作用能够暴露体系结构设计文档未能充分说明的结构分解。
6)形成总体评估
总体的权衡和评价,反映该组织对表现在不同场景中的目标考虑优先级。根据对系统成功的相对重要性来对每个场景设置一个权值。
如果要比较多个体系结构,或者针对一个体系结构提出多个不同的方案,则可通过对权值的确定来得出总体评价。权值的设置带有很强的主观性,所以应该让所有的风险承担者共同参与,但也应合理组织,要允许权值及其基本思想进行公开讨论。
评估结果
SAAM主要的有形输出结果包括了
1)把代表了未来可能做的更改的场景与构架对应起来,显现出构架中未来可能会表现出较高复杂性的地方,并对每个这样的更改的预期工作量做出评估。
2)理解系统的功能,对多个构架所支持的功能和数量进行比较。
如果所评估的是一个框架,SAAM评估将指明框架中未能满足其修改性需求的地方,有时还会指出一种效果更好的设计。
SAAM评估也能对两个或者三个备选构架进行比较,明确其中哪一个能够较好的满足质量属性需求,而且做的更改较少,不会在未来导致太多复杂的问题。
第二部分 ATAM评估方法
ATAM分析和评估的目的,评估参与者,评估活动或过程,以及评估结果四个方面进行介绍。
评估目的
架构权衡分析方法的评估的目的是依据系统质量属性和商业需求评估设计,决策的结果。ATAM希望揭示出架构满足特定质量目标的情况,使我们能够更加清晰的认识到质量目标之间的联系,即如何权衡多个质量目标。
评估参与者
1)评估小组
该小组是所评估构架项目外部的小组,通常由3-5人组成。该小组的每个成员都要扮演大量的特定角色,他们可能是开发组织内部的,也可能是开发组织外部的。
2)项目决策者
对开发项目具有发言权,并有权要求进行某些改变;他们包括项目管理人员,重要的客户代表和架构设计师等;
3)架构涉众(干系人)
包括关键模块开发人员,测试人员,用户等;
评估活动或过程
描述介绍ATAM方法
评估小组负责人向参加会议的风险承担者介绍ATAM评估方法。在这一步中要解释每个人要参与的过程,并预留解答疑问的时间,设置好其他活动的环境和预期结果等。关键是要让每个人都知道需要收集哪些信息,如何描述这些信息,以及需要向谁 告等。
描述商业动机
项目决策者从商业的角度介绍系统的概况,该描述应该包括:系统最重要的功能;技术,管理,经济,政治方面的任何相关限制;
与该项目相关的商业目标和上下文;主要风险承担者,架构的驱动因素;
描述体系结构
首席设计师或设计小组要对体系结构进行详略适当的介绍。在体系结构的描述中,至少应该包括:技术约束(例如操作系统,硬件,中间件等);要与本系统交互的其他系统;用以满足质量属性要求的体系结构方法。
确定体系结构方法
主要通过理解体系结构来分析体系结构,在这一步,由设计师确定体系结构方法,由分析小组捕获,但不进行分析。
生成质量属性效用树
在这一步中,评估小组,设计小组,管理人员,客户代表一起确定系统重要的质量属性目标,并对这些质量属性目标设置优先级和细化。即使是体系结构级的分析,也不一定是全局的;所以评估人员需要集中所有相关人员的精力,注意体系结构的各个方面,这通常是通过构建效用树的方式来实现的。效用树的输出结果是对具体质量属性需求的优先级的确定,这种优先级列表为ATAM评估方法的后面几步提供了指导,它告诉评估小组应该把有限的时间花在哪里,特别是应该到哪里取考察体系结构的方法与相应的风险,敏感点和权衡点。
分析体系结构方法
一旦有了效用树的结果,评估小组可以对实现重要质量属性的体系结构方法进行考察。这是通过文档化这些体系结构决策和确定它们的风险,敏感点和权衡点来实现。评估小组要对每一种体系结构方法都考察足够的信息,完成与该方法有关的质量属性的初步分析。
这一步的主要结果是一个体系结构方法或风格的列表,与之相关的一些问题,以及设计师对这些问题的回答。通常产生一个风险列表,敏感点和权衡点列表。在这一步结束时,评估小组应该对整个体系结构的绝大多数重要方面所做出的关键设计决策,敏感点和权衡点有一个清晰的认识。
讨论和分级场景
场景在驱动ATAM测试阶段起到主导作用。风险承担者进行了两项相关的活动:集体讨论用例场景和改变场景。用例场景是场景的一种。在用例场景中,风险承担者是一个终端用户,使用系统执行一些功能。一旦收集了若干个场景后,必须设置优先级。评估人员通过投票表决的方式来完成,每个风险承担者分配相当于总场景数的30%的选择。且此数字只入不舍。例如如果共有17个场景,则每个风险承担者将拿到六张选票,这六张选票的具体使用则取决于风险承担者,他可以把这六张票全部投给一个场景,也可以每个场景2-3票,还可以一个场景一张选票。
分析体系结构方法
在收集并分析了场景之后,设计师就可以把最高级别的场景映射到所描述的体系结构中,并对相关的体系结构如何有助于该场景的实现做出解释。
描述评估结果
最后需要将ATAM评估后的各类信息进行归纳,并反馈给风险承担者。这种描述一般要采用幻灯片的形式,但也可以在ATAM评估结束之后,提交完整的书面 告。在描述过程中,评估负责人要介绍ATAM评估的各个步骤,以及各个步骤得到的各种信息,包括商业环境,驱动需求,约束条件和体系结构等。
评估结果
ATAM评估结果包括了一个简洁的架构表述;
表述清楚的业务目标;
用例场景集合捕获的质量属性;
所确定的敏感点和权衡点的集合;
有风险决策和无风险决策;
风险主题的集合;
例如备份数据库,对可靠性质量属性来讲,是敏感点性质的设计决策,但对性能和可靠性两个质量属性而言,它是权衡点性质的设计决策
敏感点:与某个质量属性相关的构架决策
权衡点:与多个质量属性相关的构架决策
有风险决策:根据所陈述的质量属性需求,可能导致不期望结果的构架决策
无风险决策:根据分析被认为是安全的构架决策
试题二 论敏捷开发方法的应用
试题二 论敏捷开发方法的应用
敏捷软件开发简称敏捷开发,是从 90 年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重人的作用。
敏捷开发的发展过程中,出现了多个不同的流派,例如极限编程、自适应软件开发、水晶方法、特性驱动开发等。但其中的基本原则是一致的。从开发者的角度,主要的关注点有短平快会议(Stand Up)、小版本发布(Frequent Release)、较少的文档(Minimal Documentation)、 合作为重 (Collaborative Focus)、 客户直接参与 (Customer Engagement)、自动化测试 (Automated Testing)、 适应性计划调整 (Adaptive Planning)和结对编程 (Pair Programming) ;从管理者的角度,主要的关注点有测试驱动开发(Test-Driven Development)、持续集成(Continuous Integration)和重构(Refactoring)。
请围绕 “敏捷开发方法的应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中担任的主要工作,包括角色、工作内容等。
2.对开发者关注点中至少三项内容进行解释;结合自己所参与项目,对使用情况予以评价。
3.联系你所参与项目的实际情况,分析并讨论测试驱动开发的使用效果,并评价其优缺点
【解答】
对于敏捷开发,从开发者的角度,主要关注的内容有:
短平快的会议
项目组每天召开的简短会议,每个人回答如下的问题:你昨天做了什么,你今天做什么,你遇到了什么困难,站立式会议促进了团队交流,彼此相互熟悉工作内容。
小版本发布
尽量多的产品发布,一般以周,月为单位,这样客户每隔一段时间就会拿到发布的产品进行试用
较少的文档
与传统开发方法相比,它不要求撰写大量文档,而是强调测试文档的重要性。敏捷开发中存在大量的测试文档,敏捷开发认为,测试文档最大程度上保持了与代码的一致性。
合作为重
表现为代码的共享,在敏捷开发中,代码是归团队所有,而不是属于某些人。每个人都有权利获得系统任何一部分的代码然后修改他,这样每个人都能熟悉系统的代码,即使团队人员的变动,也没有风险。
客户直接参与
敏捷开发中,客户是与开发团队一起工作的,团队到客户现场进行开发或者邀请客户到团队公司来开发。
自动化测试
为了减少人力或者重复劳动,所有的测试包括单元测试集成测试都是自动化的,这就对QA人员提出了更高的要求。
适应性的计划调整
敏捷开发中的计划是可以调整的,可以多次迭代,小版本发布,根据客户反馈随时响应的调整与变化。
结对编程
在程序实现和编写测试代码时,采取两个人共同使用一台计算机的方式进行,两个人频繁讨论并相互监督。
测试驱动开发
测试驱动开发是敏捷开发中的一项重要的内容,要求需求分析之后,首先编写测试代码。而功能开发的依据只能是测试代码,目的是在测试代码真实反映用户需求的前提下,功能开发完全满足测试要求即可。测试驱动开发在软件业内争论激烈,反对者提出测试驱动开发过于片面,很容易忽略需求中潜在的内容。
试题三 论SOA 在企业信息化中的应用
试题三 论SOA 在企业信息化中的应用
SOA(面向服务的体系结构)是一种IT体系结构风格、一种组件模型或者一种设计理念,其核心思想是通过将一组分散的服务关联,实现企业向客户提供的特定业务,并适应客观条件和需求的不断变化。
多数企业面临着不同种类操作系统、系统软件、应用软件和应用基础结构相互交织的信息化现状,而 SOA 的特性使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,从而保护投资,并能使企业对业务的变化做出快速的反应。
请围绕 “SOA 在企业信息化中的应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与实施的企业信息化建设项目(信息化现状、业务流程需求)以及你所担任的主要工作。
2.详细论述SOA 架构的内容、特点和实现SOA 所采用的常用标准、规范。
3.论述你具体采用了什么技术和工具来实现企业SOA 应用和部署,在应用中重点解决了哪些问题
SOA架构的内容
SOA架构的基本元素是服务,SOA指定一组实体(服务提供者,服务消费者,服务代理,服务注册表,服务条款,服务契约)这些实体详细说明了如何提供和消费服务。
SOA的服务是自含的,无状态的主体;可以由多个组件组成,通过事先定义的接口,响应服务请求,服务本身并不依赖其他函数和过程的状态。而用什么技术来实现服务,也不在其定义中加以限制,SOA本质上是将 络,传输协议和安全细节留给特定的实现来处理。
这些服务是可以互相操作的,独立的,模块化的,位置明确的,松耦合的以及可发现的。
在SOA架构中一般有三种角色:服务提供者,服务请求者和服务代理者。服务提供者提供符合契约的服务,并将他们发布到服务代理;服务代理者作为存储库,目录库或者是票据交换所,产生由服务提供者发布的软件接口;服务请求者发现并调用其他软件服务来完成业务任务。
SOA架构的特点
SOA是一种粗粒度松耦合的服务体系结构,其服务之间通过简单精确的定义接口进行通讯,不涉及底层编程接口和通讯模型,SOA架构的特点有:
1)松散耦合
SOA是松散耦合的构件服务。这一点区别于大多数其他软件构件体系结构。松散耦合将服务使用者和服务提供者在服务实现上和客户如何使用服务方面隔离开来。服务提供者和服务使用者之间背后的关键点是服务接口作为与服务实现分离的实体而存在。这是服务实现能够在完全不影响
服务使用者的情况下而进行的修改。大多数松散耦合方法都依靠基于服务接口的消息;基于消息的接口能够兼容多种传输方式,基于消息的接口可以采取同步或异步协议实现。
2)粗粒度服务
服务所公开的功能的范围。一般可以分为细粒度和粗粒度两种。其中细粒度服务是指能够提供少量商业流程可用性的服务;粗粒度服务是那些能够提供高层商业逻辑的可用性服务。选择正确的抽象级别是SOA建模的一个关键问题。设计中应该在不损失或损坏相关性,一致性,完整性的情况下,尽可能进行粗粒度的建模。通过一组有效设计和组合的粗粒度服务,业务专家能够有效的组合出新的业务流程和应用程序。
3)标准化接口
SOA通过服务接口的标准化描述,从而使得该服务可以提供给任何异构平台和任何用户接口中使用。这一描述囊括了与服务交互需要的全部细节,包括消息格式,传输协议和位置。该接口隐藏了实现服务的细节,允许独立于实现服务基于的硬件或软件平台和编写服务所用的编程语言使用服务。
SOA常用的标准和规范
1)可扩展标记语言XML
用于定义其他与特定领域有关的,语义的,结构化的标记语言
是一套定义语义的规则,这些标志将文档分成许多部件并对这些部件加以标识。它也是元标记语言,
2)WSDL Web Service描述语言
包含了一套基于XML的语法,将WebService描述为能够进行消息交换的服务访问点的集合,从而满足了这些需求。WSDL定义了可被机器识别的SDK文档;同时WSDL可以用来描述自动执行应用程序在通信中所涉及的细节问题。
3)SOAP简单对象访问协议
是一种基于XML的协议;应用程序可以在 络中进行数据交换和远程调用。SOAP使用XML进行编码,是一个开放性的协议,SOAP本身并没有定义信息的语义;服务质量,事务处理等问题;SOAP仅仅是一个对象通信协议,与应用平台完全无关。
4)UDDI通用发现描述和集成
提供了一种WebService的发布,查找和定位方法。我们可以将UDDI理解为一种目录服务。WebService服务提供者使用UDDI将服务发布到服务注册中心,而WebService使用者通过UDDI查找并定位服务。UDDI除了目录服务之外还定义了一个用XML表示的服务描述标准。
要实现企业SOA的应用与部署,可以采用的工具和技术有WebService,J2EE,WebSphere,WebLogic,Net,Cobra,DCOM等,或者其他的中间件技术。
重点解决的问题
1)服务粒度的控制
SOA系统中服务粒度的控制是一项重要的设计任务,对于暴露在整个系统外部的服务,可以使用粗粒度的接口;对于相对较低粒度的服务接口,通常用于企业系统架构的内部。虽然细粒度的服务可以为服务提供者提供了更加细化和更多的灵活性,但会使交互模式较难控制,服务的一致性较差。
2)无状态服务的设计
SOA的服务应该是独立的,自包含的;在实现这些服务的时候,不需要前一个服务的状态,也就是说不应该依赖于其他服务的上下文和状态。当某一个服务需要依赖时,可以将其定义为具体的业务流程。
试题四 论SaaS(Software-as-a-Service,软件即服务)的关键技术
试题四 论SaaS(Software-as-a-Service,软件即服务)的关键技术
SaaS 是一种通过互联 提供软件服务的模式,在该模式中企业用户不用再购买软件,而采用向软件服务提供商租用软件的方式来完成本企业经营活动。在这种模式下,企业无需建设机房、购买软硬件、雇用 IT 人员对软件进行维护,只需向软件服务提供商支付项目实施费和定期的软件租赁服务费,软件服务提供商负责管理和维护软件。目前,这种模式在国外和国内都获得了一定的成功。
请围绕“SaaS关键技术”论题,依次对以下三个方面进行论述。
1.概要叙述你参与的 SaaS 项目以及你在其中所担任的主要工作,包括角色、工作内容等。
2.SaaS 为诸多用户在线提供了较通用的软件系统,请详细论述SaaS为此所使用的关键技术。
3.通过你的切身实践论述SaaS 中安全性和扩展性的解决方案
【解答】
SaaS是一种通过互联 提供软件服务的模式,在该模式中企业用户不再购买软件,而是向软件服务提供商租用软件的方式来完成本企业的经营活动。
SaaS的关键技术
基于Internet和Web访问技术,以减少在客户端安装软件系统的工作量。
络和数据安全技术,以保证用户数据访问的 络安全;
数据可靠存储技术,以保证用户关键数据的存储安全;
软件快速开发和部署以及在线更新的技术,以支持用户不断变化的用户需求;
数据集成技术,以解决信息孤岛的问题,为用户提供多方位的信息服务;
软件的计费管理,从而根据用户对软件系统的使用情况来收取费用。
SaaS中安全性和扩展性的解决方案
SaaS的安全性包括数据的安全性和 络的安全性;
1)数据中心的物理安全性和保护
2)数据是否有异地备份
3)数据是否有授权访问
4)应用是否采用物理或逻辑隔离
5) 络访问的安全性,是否采用了安全的通信协议,例如采用了安全套接层SSL的技术。
6) 络访问时有符合安全标准的认证和授权
SaaS的扩展性包括了平台的扩展性和应用的扩展性两种
1)平台是否有扩展性,是否采用了分布式存储系统,分布式文件系统,分布式数据库等;
2)平台是否解决了负载均衡和热备的问题
3)应用的扩展性包括了用户是否能在已经存在的软件结构上,再增加额外的工具或功能。
4)应用能否从其他应用程序中读取数据,或者存储数据。
5)能否通过参数化配置来满足特定应用需求。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!