本题主要考查质量属性以及实现质量属性的一般策略,不同策略主要针对一个或多个软件质量属性,其中Ping/Echo主要提高系统的可用性;限制访问主要提高系统的安全性;运行时注册主要提高系统的可修改性;接口.实现分离主要提高系统的可修改性;主动冗余提高系统的可靠性;队列调度主要提高系统的性能;信息隐藏主要提高系统的可修改性;记录,回放主要提高系统的可测试性,等等。
本题主要考查软件架构设计策略与架构风格问题。根据题目描述,该软件系统特别强调用户定义系统中对象的关系和行为这一特性,这需要在软件架构层面提供一种运行时的系统行为定义与改变的能力,根据常见架构风格的特点和适用环境,可以知道最合适的架构设计风格应该是解释器风格。
本题主要考查考生对质量属性的理解和质量属性实现策略的掌握。对于题干描述:“在并发用户数量为1000人时,用户的交易请求需要在0.5秒内得劐响应”,主要与性能这一质量属性相关,实现该属性的常见架构策略包括增加计算资源、减少计算开销、引入并发机制、采用资源调度等。“当系统由于软件故障意外崩溃后,需要在o.s小时内恢复正常运行”主要与可用性质量属性相关,通常可采用心跳、Ping/Echo、主动冗余、被动冗余、选举等架构策略实现该属性;“系统应该能够抵挡恶意用户的入侵行为,并进行报警和记录”主要与安全性质量属性相关,通常可采用入侵检测、用户认证、用户授权、追踪审计等架构策略实现该属性。
采用闭环结构的软件通常由几个协作构件共同构成,且其中的主要构件彼此分开,能够进行替换与重用,但闭环结构通常适用于处理简单任务(如机器装配等),并不适用于复杂任务。分层结构的特点是通过引入抽象层,在较低层次不确定的实现细节在较高层次会变得确定,并能够组织层间构件的协作,系统结构更加清晰。
本题考查组合模式相关的知识。图12-19为组合模式的UML图例。与题目给出的图例进行匹配可得出。
本题考查提高质量属性的常见手段。提高可用性的手段包括:命令/响应机制、心跳机制、异常处理机制、冗余机制等。提高性能的手段包括:引入并发、维持数据或计算的多个副本、增加可用资源、控制采样频度、限制执行时间、固定优先级调度等。提高安全性的手段包括:身份认证、限制访问、检测攻击、维护完整性等。
结构模板能帮助系统分析员建立一个细节的层次结构。结构环境图ACD则位于层次结构的顶层,建立了待实现系统与系统运行环境之间的信息边界。ACD定义了:①系统使用的所有信息的外部产生者。②由系统建立的所有信息的外部使用者。⑧通过接口进行通信或实施维护与自测试的所有实体。专门子系统定义在从ACD导出的结构流程图(Architect ure Flow Diagram,AFD)中。信息流穿越ACD的各个区域,可用于引导系统工程师开发AFD。AFD给出了各个专门子系统和重要的(数据与控制)信息流。结构模板把子系统处理划分成5个处理区域。每个子系统可以包含一个或多个系统元素(如硬件、软件、人),它们是系统工程师分配给子系统的。
本题主要考查以架构为核心的软件系统开发方法。在该方法中,架构用来激发和调整设计策略,不同的视图用来表达与质量目标有关的信息。架构设计是一个迭代过程,在建立软件架构的初期,选择一个合适的架构风格是首要的,在此基础上,开发人员通过架构模型,可以获得关于软件架构属性的理解,为将来的架构实现与演化过程建立了目标。
Windows操作系统在图形用户界面处理方面采用的是典型的"事件驱动"的架构风格。首先注册事件处理的是回调函数,当某个界面事件发生时(如键盘敲击、鼠标移动等),系统会查找并选择合适的回调函数处理该事件。Java语言是一种解释型语言,在Java虚拟机上运行,这从架构风格上看是典型的"虚拟机"风格,即通过虚拟机架构屏蔽不同的硬件环境。