大型复杂软件系统开发所关注的问题之一是质量,在软件系统的早期设计阶段,选择合适的体系结构对系统许多关键质量属性(如可用性、可修改性、性能、安全性、易用性等)起着决定性的影响。不恰当的软件体系结构将给项目开发带来灾难。因此,尽早分析和评估一个系统的体系结构非常重要。软件体系结构分析和评估的目的是为了识别体系结构中潜在的风险,验证系统的质量需求在设计中是否得到体现,预测系统的质量并帮助开发人员进行设计决策。
软件体系结构的评估通常是指评估参与者在评估过程中利用特定评估方法对系统质量属性进行分析与评估。基于调查问卷或检查表的评估和基于场景(Scenarios)的评估是目前主要的两类评估方式。利用场景评估技术进行软件体系结构评估的主流方法包括SAAM(Scenario-based Architecture Analysis Method)、ATAM(Architecture Tradeoff Analysis Method)和CBAM(Cost Benefit Analysis Method)。SAAM方法最初用于比较不同的体系结构,后来用于指导对体系结构的检查,使其主要关注潜在的问题,如需求冲突,或仅从某一参与者观点出发的不全面的系统设计。ATAM方法在揭示出结构满足特定质量目标的同时,也能反映出质量目标之间的联系,从而权衡多个质量目标。CBAM方法可以看作是ATAM方法的补充,在其评估结果上对软件体系结构的经济性进行评估。
请围绕“基于场景的软件体系结构评估方法”论题,依次从以下三个方面进行论述。
敏捷软件开发简称敏捷开发,是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作,面对面沟通,频繁交付新的软件版本,紧凑而自我组织型的团队,能够很好地适应需求变化的代码编写和团队组织方法,也更注重人的作用。
敏捷开发的发展过程中,出现了多个不同的流派,例如极限编程、自适应软件开发、水晶方法、特性驱动开发等。但其中的基本原则是一致的。从开发者的角度,主要的关注点有短平快会议(Stand Up)、小版本发布(Frequent Release)、较少的文档(Minimal Documentation)、合作为重(Collaborative Focus)、客户直接参与(Customer Engagement)、自动化测试(Automated Testing)、适应性计划调整(Adaptive Planning)和结对编程(Pair Programming);从管理者的角度,主要的关注点有测试驱动开发(Test-Driven Development)、持续集成(Continuous Integration)和重构(Refactoring)。
请围绕“敏捷开发方法的应用”论题,依次从以下三个方面进行论述。
SOA(面向服务的体系结构)是一种IT体系结构风格、一种组件模型或者一种设计理念,其核心思想是通过将一组分散的服务关联,实现企业向客户提供的特定业务,并适应客观条件和需求的不断变化。
多数企业面临着不同种类操作系统、系统软件、应用软件和应用基础结构相互交织的信息化现状,而SOA的特性使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,从而保护投资,并能使企业对业务的变化做出快速的反应。
请围绕“SOA在企业信息化中的应用”论题,依次从以下三个方面进行论述。
SaaS是一种通过互联网提供软件服务的模式,在该模式中企业用户不用再购买软件,而采用向软件服务提供商租用软件的方式来完成本企业经营活动。在这种模式下,企业无需建设机房、购买软硬件、雇用IT人员对软件进行维护,只需向软件服务提供商支付项目实施费和定期的软件租赁服务费,软件服务提供商负责管理和维护软件。目前,这种模式在国外和国内都获得了一定的成功。
请围绕“SaaS关键技术”论题,依次对以下三个方面进行论述。