5中视图法进行架构设计

浪子不回头ぞ 提交于 2019-11-27 19:49:17

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

部署方面:集中式还是分布式;组件部署

部署图

 

 

 

 

实际在执行时有两种观念:一是五种视图按逻辑架构、开发架构、数据架构、运行架构、物理架构顺序进行;二是五种视图穿插进行设计,尤其是复杂系统,五种视图穿插进行思考更有利于思考的全局性和完整性。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!