java随记

坚持就是胜利!

 

架构设计过程分析小结

架构设计过程简单总结:架构设计的驱动力=功能+质量+约束.功能即系统要满足的业务需求。质量包括运行期质量和开发期质量. 常见的运行期质量属性包括软件系统的易用性、性能、可伸缩性、持续可用性、鲁棒性、安全性等。开发期质量属性是开发人员最为关心的,要达到怎样的目标应根据项目的具体情况而定。约束可能是商业预算,运行环境,使用人员水平,开发团队水平等。架构设计过程如下:

一,需求收集,分析。

此处省略2000字。。。 见前篇 《需求收集、分析小结http://www.blogjava.net/fool/archive/2017/04/28/432489.html

二,概念架构/概念模型

从需求中找出关健、重大需求,进行概念建模.下面三个图称之鲁棒图。其中控制对象理解为mvc模式中的控制器和model。使用鲁棒图可以建立概念模型,约等于初步设计。初步设计并不关心细节。

 

 鲁棒图建立概念模型语法:

概念设计举例:


上次谈到超市小票如何分析实体对象,本次接着举例如何对收银进行概念建模



如上图:具备基本收银功能的概念模型。概念模型建模可以是增量的。比如商品折扣或其它

促销活动等。


概念架构的用途:

1) 可以帮助我们找出领域模型中的实体对象。

2) 检查需求用例是否正确和完善。

3)初步设计,鲁棒图是一种初步设计技术。

4)根据用例和概念设计划分系统、子系统、模块或者包。借助鲁棒图,初步识别功能背后的职责,规划切分系统的方式。

 

三,关注非功能性需求,包括运行期质量和开发期质量。

运用目标场景决策表对非功能性需求作出决策.小举例:

目标

场景

决策

易用性

销售员需要输入条码检索商品,繁琐且速度慢

根据条码,品名模糊匹配检索商品,提供辅助录入。

性能

长时间稳定运行

数据库集群,服务应用集群                                        

        技术选型                             需要管理钱箱、打印机、响应速    pos系统使用c/s
                                                度快

 

 

 

四,细化架构。RUP 4+1视图法则将架构需要关注的不同的点使用不同的视图表示.从不同的维度对系统进行解读,从而形成统一软件过程架构描述。

运行架构:

关心进程、线程、同步的相关设计,捕捉并发和同步特征

逻辑架构:

关心逻辑层(layer)的划分,系统/子系统的划分,划分模块及其接口的定义。功能组划分也属于逻辑架构.功能:不仅包括用户可见的功能,还包括为实现用户功能而必须提供的"辅助功能模块";它们可能是逻辑层、功能模块等。

物理架构:

关心服务器选型,物理层划分(tier) 描述如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求.layer就运行在tier上。Tier反映系统伸缩能力。

开发架构:

描述了在开发环境中软件的静态组织结构。即开发工具下的开发视图,描述文件编译及其依赖关系。而使用maven管理开发的项目编译及依赖关系结构更加分明。

数据架构:

关心数据的存储、分布和文件的存放及数据的复制,传递,同步。数据的存放包括sql,内存数据库,nosql数据库等.

 

逻辑架构设计举例:

还是用收银系统简单举例,收银系统逻辑架构图如下:



整个系统划系统为系统,切为两个系统,一个收银员角色处理的业务,收银系统。

一个后台管理系统。后台管理系统包括用户管理模块,基础资料模块(产品资料等)

销售模块(本例对销售单)。另外,因为收银系统需要和后台系统交互,把收银系统需要使用到的相关的各模块封装成一个接口模块,专门处理和收银系统交互的模块。系统、模块之间的通讯方式应当尽量避免双向。相互依赖可能会引发很多问题。

 

物理架构设计举例:

物理架构和逻辑架构可以相互印证。描述软件系统的物理布署。



如果考虑运行期质量比如长时间运行布署图可能应用做集群。数据库做集群等。逻辑层layer运行在物理层tier之上

 

运行架构和数据架构视图根据实际情况可选设计



posted on 2017-04-28 14:22 傻 瓜 阅读(1143) 评论(0)  编辑  收藏 所属分类: 杂项


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

导航

统计

常用链接

留言簿(7)

我参与的团队

随笔分类

随笔档案

文章分类

友情链接

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜