您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > 测试用例 > 正文

5种视图法进行架构设计

发表于:2018-10-22 作者:时间朋友 来源:博客园
1.  逻辑架构
逻辑架构的重点是考虑软件功能性需求。
No. 考虑的方面 产出物 工具 说明
1 系统功能划分为几个子系统与功能模块? 系统功能树 树型结构图  
2 向什么用户提供什么样的功能? 用例模型 UML用例图 体现用户和行为
3 每个功能都是怎样的操作流程与分支? 用例描述 用例描述表
 
含输入输出、事件流分析;
不要有界面描述
UML活动图 进行业务流程分析,包括泳道图
4 如何通过界面与用户交互?怎样交互? 鲁棒分析 鲁棒图 通过对“用例描述表”进行原文分析法拣出名词和动词
5 应当设计哪些类与界面?怎样设计? 领域模型 UML类图  
6 与哪些外部系统接口?怎样接口? 接口描述 UML类图  
 
2.  开发架构
 
开发架构重点关注的是开发编码实现方面的问题。
 
No. 考虑的方面 产出物 工具 说明
1 分层结构设计 分层架构图(开发架构图) 各种绘图工具 好的分层结构支持自动化测试
2 开发技术选项 开发语言
开发框架
开发工具
  考虑商用产品、开源框架、自研框架
3 模块划分 源码工程;Project目录结构;
分包(分库)
   
4 开发规范 开发/编码规范文档;    
5 软件质量属性 分析和决策结果   考虑运行期和开发期软件质量属性,并权衡利弊进行决策。
 
3.  数据架构
 
数据架构不仅仅要考虑开发中涉及到的数据库,实体模型,也要考虑物理架构中数据存储的设计。
No. 考虑的方面 产出物 工具 说明
1 数据是集中还是分布存储的?如何考虑分布式存储? 数据架构图    
2 领域模型到数据库表的转换?表结构关系的设计? 逻辑模型
物理模型
ER图
Power Designer
Visio
 
3 实体如何设计?充血模型和贫血模型? UML类图    
4 使用什么数据库?关系型还是非关系型? 选型结果    
 
 
关系型数据库 非关系型数据库(NoSQL)
Oracle(首次发行:1980年)
MySQL(首次发行:1995)
MS SQL Server(首次发行:1989)
PostgreSQL(首次发行:1989)
IBM DB2(首次发行:1983)
Microsoft Access(首次发行:1992)
Sybase ASE(首次发行:1987)
SQLite(首次发行:2000)
…… 
MongoDB(首次发行:2009)
Cassandra(首次发行:2008)
Apache CouchDB
Hbase
Redis
db4o
BaseX
…… 
 
 
4.  运行架构
 
运行架构关注的不再是全局而是局部,着重关注那些关键点与难点,常常需要技术攻关与预研。主要考虑控制流、通讯机制、资源争用、锁机制、同步异步、并发、串行,同时也要考虑质量属性。
No. 考虑的方面 产出物 工具 说明
1 运行:同步vs.异步;并发vs.串行 考虑开发架构中代码的实现。    
2 交互:对象间交互;状态转换 考虑开发架构的合理性,到类、到接口、到代码。    
3 质量:安全;可靠;可伸缩 考虑开发架构的合理性    
4 性能:响应时间;吞吐量 估算:
在线人数、并发人数;
每秒事务量;
响应时间。
   
 
 
5.  物理架构
 
物理架构主要考虑硬件选择和拓扑结构,软件到硬件的映射,软硬件的相互影响。
 
  考虑的方面 产出物 工具 说明
1 网络方面:网络拓扑;网络设备;安全机制 拓扑图
安全规范
   
2 性能方面:可靠性、可伸缩性 需要什么样设备性能    
3 部署方面:集中式还是分布式;组件部署 部署图
 
   
 
实际在执行时有两种观念:一是五种视图按逻辑架构、开发架构、数据架构、运行架构、物理架构顺序进行;二是五种视图穿插进行设计,尤其是复杂系统,五种视图穿插进行思考更有利于思考的全局性和完整性。