软考分类精讲-软件架构设计(五)

软件架构评估—ATAM

软考分类精讲-软件架构设计(五)

软件架构评估—质量效用树

软考分类精讲-软件架构设计(五)

软件架构评估—CBAM
  • 整理场景
  • 对场景进行求精
  • 确定场景的优先级
  • 分配效用
  • 形成“策略-场景-响应级别”的对应关系
  • 确定期望的质量属性响应级别的效用
  • 计算各架构策略的总收益
  • 根据受成本限制影响的投资报酬率选择架构策略
软件架构评估—SAAM

软考分类精讲-软件架构设计(五)

软件产品线—过程模型—双生命周期模型

软考分类精讲-软件架构设计(五)

软件产品线—过程模型—SEI模型

软考分类精讲-软件架构设计(五)

软ESIG件NER产: 品线—过程模型—三生命周期模型

软考分类精讲-软件架构设计(五)

软件产品线—建立方式
  • 将现有产品演化为产品线
  • 用软件产品线替代现有产品集
  • 全新软件产品线的演化
  • 全新软件产品线的开发
    软考分类精讲-软件架构设计(五)
软件产品线—组织结构
  • 设立独立的核心资源小组
  • 不设立独立的核心资源小组
  • 动态的组织结构
  • 对该领域具备长期和深厚的经验
  • 一个用于构建产品的好的核心资源库
  • 好的产品线架构
  • 好的管理(软件资源、人员组织、过程)支持
中间件技术—概念

中间件是一种独立的系统软件 或服务程序,可以帮助分布式 应用软件在不同的技术之间共 享资源

  • 负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制
  • 提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制
  • 提供多层构架的应用开发和运行的平台,以及应用开发框架,支持模块化的应用开发
  • 屏蔽硬件、操作系统、网络和数据库的差异
  • 提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性
  • 提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作
    软考分类精讲-软件架构设计(五)
中间件技术—主要的中间件
  • 远程过程调用
  • 对象请求代理
  • 远程方法调用
  • 面向消息的中间件
  • 事务处理监控器
    软考分类精讲-软件架构设计(五)
中间件技术—Corba(公共对象请求代理体系结构)

软考分类精讲-软件架构设计(五)

典型应用架构—J2EE—分布式多层应用程序

软考分类精讲-软件架构设计(五)

典型应用架构—J2EE—Java企业应用框架

软考分类精讲-软件架构设计(五)

典型应用架构—MVC
  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常 模型对象负责在数据库中存取数据
  • View(视图)是应用程序中处理数据显示的部分。通常视图是依据模 型数据创建的。
  • Controller(控制器)是应用程序中处理用户交互的部分。通常控制器 负责从视图读取数据,控制用户输入,并向模型发送数据

J2EE体系结构中

  • 视图(View):JSP
  • 控制(Controller):
  • Servlet 模型(Model):Entity Bean、Session Bean
典型应用架构—MVC设计模式

软考分类精讲-软件架构设计(五)

  • MVP是MVC的变种
  • MVP实现了V与M之间的解耦(V不直接使用M,修改V不会影响M)
  • MVP更好的支持单元测试(业务逻辑在P中,可以脱离V来测试这些逻辑; 可以将一个P用于多个V,而不需要改变P的逻辑
  • MVP中V要处理界面事件,业务逻辑在P中,MVC中界面事件由C处理
    软考分类精讲-软件架构设计(五)
典型应用架构—J2EE—Java企业应用框架

Struts是一个基于J2EE平台的MVC框架,主要采用Serviet和JSP技术来实现。 在Struts中,M由实现业务逻辑的JavaBean构成,C由ActionServiet和Action 来实现,V由一组JSP文件构成

Spring通过RMI或Web Service远程访问业务逻辑,允许自由选择和组装各 部分功能,还提供和其他软件集成的接口。Spring本身是个容器,管理构 件的生命周期、构件的组态。依赖注入等,并可以控制构件在创建时以 原型或单例模式来创建

Hibernate是一个对象关系映射框架,提供了Java对象到数据库表之间的直 接映射,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以使 用对象编程思维来操作数据库。在Hibernate中,ORM机制的核心是一个 XML文件,该文件描述了数据库模式是怎么与一组Java类绑定在一起的

典型应用架构—.NET

软考分类精讲-软件架构设计(五)

典型应用架构—.NET与J2EE之争
  • JVM与CLR
  • 对多层分布式应用的支持
  • 安全性
  • 应用程序的部署
  • 可移植性
  • 外部支持