3.5软件系统结构(软件架构) 4 h& w3 D3 P7 b. x
●软件体系结构定义
9 f, b+ a) M" K- q2 ^( p! G# | 软件架构定义:将软件系统划分为多个模块,明确各模块间的相互作用,组合起来实现系统的全部特性。
4 [" k7 A1 f' h. w" L; u 软件架构不仅确定了系统的组织结构和拓扑结构,还显示了系统需求和构成系统各要素间的对应关系,提供了一些设计决策的基本原则。 3 y v# \% b% \& A7 ~- z
●典型体系结构
+ H$ H2 S& m& n 软件架构设计的一个核心问题是能够使用重复的架构模式,能否达到架构级的软件复用。
( e ]: L" Q* L1 t8 a 常见的架构模式: ; w. L, ^5 W/ p- \2 ^
管道/过滤器模式;面向对象模式;事件驱动模式;分层模式;知识库模式;C/S模式;
1 D8 b8 E; J% Q: v ●软件体系结构设计方法 ) Q( W* ~. P7 \( Q* d4 |
软件架构设计是动态的,初期的设计并不能完全确定下来,和建筑设计不同。
% N5 X1 a3 w9 y/ K2 E( z# _% w 架构设计的目标:最大化复用;复杂问题简单化(这也是中间件和多层技术的根本目标);灵活的扩展性;
( u; P$ C, h$ b0 j, K ●软件体系结构分析与评估
: |9 b6 R. R* R; j# F 软件架构设计注意事项:关系数据库优于对象数据库,前者成熟,多厂商支持,后者技术先进;用户界面选择使用HTML(HTTP);灵活性与性能考虑,即考虑独立于厂家方案还是单厂家方案;选择成熟的技术可以规避项目风险;聘请经验丰富的架构设计师。
" m9 T" R5 l' N' u ●软件中间件
; K! S. x. \, _# H+ e( _6 N7 S2 r 中间件(Middleware)用来解决分布系统的异构问题。中间件是位于硬件、操作系统等平台和应用之间的通用服务,这些服务有标准的程序接口(API)和协议。
! t6 S/ u5 V2 X8 _& c+ V4 S h 中间件的分类: 数据库访问中间件(ODBC-Windows;JDBC-Java);远程过程调用中间件(RPC);面向消息的中间件(MOM);分布式对象中间件(CORBA;EJB;DCOM);事务中间件(TPM); |