软件架构设计师工作流程

在一个以软件架构为中心的软件项目开发过程中,最常见的开发过程大致分五到六个阶段:1.概念化阶段2.分析阶段3.架构阶段4.详细设计阶段(一般情况下特别是结合敏捷模式时都会被裁剪掉)5.并行开发与测试阶段6.验收与交付阶段

软件架构设计阶段依赖于分析阶段并以软件需求规约为主要输入。那么是不是软件架构工程师必须等到软件需求规约评审通过后才开始工作呢?前面讲到软件架构的策略时讲到全面认识需求与关键需求决定架构。因此,软件架构工程师必然有一个对软件需求进行认识、分析的过程,如果软件架构工程师等到软件需求规约评审通过后才开始工作,必然会延长软件项目的工期。好的项目管理者与优秀的软件架构工程师一定会让这段时间与软件需求人员进行需求分析的阶段重叠缩短软件项目工期。而且一个合作良好的软件项目团队,在进行需求分析过程中必然会邀请软件架构工程师对一些需求问题进行分析验证与对软件需求规约进行评审。因此,软件架构工程师必须在软件需求分析阶段的适当时宜尽早介入,甚至在一些软件过程能力成熟度较低而软件项目重要性较高的软件项目团队,会酌情把有些软件架构工程师提前到概念化阶段就介入。

因此软件架构设计过程的第一步是全面认识需求。在需求分析与领域建模即分析阶段,软件架构工程师与软件需求人员一起将所有需求从不同的级别(组织级、用户级、开发级)分层梳理列表归纳总结建立跟踪矩阵,并划分为不同的类型(功能需求或用例、质量属性、约束与限制)进行梳理列表归纳总结建立影响分析表,找出不同需求类型之间的相互支持、相互制约关系的影响。

软件架构设计过程的第二步是确定对架构关键的需求。软件架构工程师将所有需求进行筛选,在深思熟虑之后作出合适的需求权衡和取舍,最终确定对软件架构起关键作用的需求子集,控制架构设计时需要详细分析的用例个数,找到影响架构的重点非功能需求。

在此基础上,软件架构设计过程的第三步是进行概念性架构设计。设计概念性架构的第一步是分析关键用例有用例规约,运用鲁棒图等方法构造系统理想化的职责模型(如分层)。接下来明确架构模式(如MVC),确定交互机制,形成初步的概念性架构。最后通过质量属性分析,制定出满足非功能需求的高层设计决策,并根据这些决策对之前的工作成果进行增强、调整,以保证概念性架构体现这些设计决策。

接下来,软件架构设计过程的第四步是细化软件架构,考虑具体技术的运用,设计出实际架构。概念性架构所关注的关键设计要素、交互机制、高层设计决策与具体技术无关,而最终的软件架构设计方案必须和具体技术结合,为开发人员提供足够的指导和限制。为些,必须从系统如何规划、如何开发、如何运行等角度揭示软件系统的结构和机制。一般分别从逻辑架构、开发架构、运行架构、物理架构、数据架构等不同架构视图进行设计。

最后,软件架构设计过程的第五步,千万别忘了验证软件架构

软件架构设计师工作流程_第1张图片

结合我们上课的例子(梦想改造家)逐步对应:

(1)全面认识需求

设计师(兼需求分析师)直接到家里来调查家里的情况,得知家里急需改造的几个需求1.家里空间小(三角形的布局使得角的部分利用不充分)2.家里采光不足3.阁楼楼板脆弱而且不能隔音4.楼顶塌陷过,之后错误的搭建了新的梁5.上阁楼不方便6.去阳台搭衣服太危险7.家里冬冷夏热

(2)确定对架构关键的需求

通过深思熟虑,决定优先解决1、4、5。重点的非功能需求安全性、易使用性(家里有年纪比较大的人)、可重用性(对旧事物的怀念)

(3)概念性架构设计

确定1.改变整体格局增大空间4.改造楼顶,增加横梁数量5.改变楼梯模式

改造格式是彻底大概,包括水电线的重新布线,调整地面高低,移动墙的距离

(4)细化软件架构

1.在地面加铺上水泥,找平地面。在同时根据预先厕所的位置重新布线,重新布局一楼各个房间的位置(解决了1)

2.推掉以前的楼顶,增加四根横梁并且使用六种材质填充楼顶(解决了4、7)

3.使用隔音材质重新隔出阁楼,然后设计新的楼梯(解决5、3、6、易用性、安全性)

4.打通之前的楼角,在楼顶打一个天窗出来(解决2、7)

5.根据之前的旧物改造出实用的新物(可重用性)

6.楼顶增加护栏(安全性)

(5)验证软件架构

验证是否解决了上面提出的问题,发现完美解决。

转载于:https://www.cnblogs.com/sisi-job/p/6421314.html

你可能感兴趣的:(软件架构设计师工作流程)