作者
张辉清
责编
胡巍巍
你做架构设计了吗?你认为要不要做架构设计?你的公司有没有做架构设计?互联网公司的架构设计又要怎么做?
我不知道你是怎么想的,在我得到的答复中,大部分人认为要做架构设计,但自己却很少做,自己经历的公司也少有做架构设计。
这里是矛盾的,难道大部分人和公司都犯错了吗?
应该不是这样。专职的架构师越来越少,架构部门也大都解散,为什么会是这样,我们该怎么办?
初识架构设计
软件工程一般可分为需求、设计、编码、测试、部署、维护。既然架构设计是一个过程,那么就有输入和输出。架构设计输入的是PRD产品说明书,输出的是架构设计文档,中间是处理过程和工具,具体如下:
输入:功能需求和非功能需求,从PRD中提取;过程和工具:1.设计的目标和思路
2.功能设计:用例视图、用例活动图
3.应用:边界、逻辑架构、接口、领域图
4.数据存储
5.物理架构、安装部署
6.非功能设计
输出:设计说明书,表述工具有Word、Visio、UML等需求是我要什么即What,而架构设计是我要怎么做即How。架构设计为施工阶段提供了指导,有利于接下来的编码、测试、部署和维护,包括项目排期、人员分工、配合、单元测试、物理部署、系统修改和升级。设计是施工的计划,没有计划就没有管理,计划可节约施工的成本和时间。如果没有架构设计就开始写代码,会导致很多的问题,干着干着就干不下去了,或干到一半必须得改等等现象。
应用架构设计案例
以下是一个真实的应用架构设计案例,《国内航班查询引擎项目》的架构设计过程如下:
2.1功能清单
产品经理提供的PRD文档做得怎么样,第一眼就看它有没有功能清单。下图的功能清单表格主要有两个核心功能,一个是查询航班数据模块,另一个是清理缓存模块。
2.2用例图与用例活动图
上图是用例图和用例活动图,用例图有查询航班数据和清理缓存,这与功能清单有对应关系。每一个用例都可以展开为用例活动图,产品经理的活动图