业界软件架构设计的方法论很多,各有各自的应用场景和特点,下文结合ADMEMS(Architecture Design Method has been Extended to Method System)架构设计方法论说明软件架构的过程:

架构阶段

目标

方式方法

现实工作场景

预架构阶段

全面理解需求;需求结构化,摒弃“需求列表”,建立二维需求观(ADMEMS矩阵)。

使用ADMEMS矩阵方法,捋清需求间关系和发现衍生需求。

1、与人:与项目经理、需求分析师等内部需求人员了解需求;与客户了解需求(不建议架构师做需求分析师角色)。
2、与物:了解《需求规格说明书》等需求文档。"
3、对需求有什么问题,反馈给售前或销售,可能会参与拜访客户或电话会议。
4、销售或售前有时会要求提供一个大致的工作量,以便他们初步评估项目可行性。

概念架构

高层组件及其关系

1、初步设计,基于关键功能,借助鲁棒图进行以发现职责为目的的初步设计(不是必须)。
2、高层分割,将复杂系统切分为多个二级系统或多个子系统。
3、考虑非功能需求,采用ADMEMS推荐的目标-场景-决策表。

1、参与内部讨论:项目可行性分析、讨论,从需求、技术、人力、风险等角度提供建议。
2、项目投标准备:参与投标团队的技术方案编写,编写系统架构章节,解决招标书上技术问题的问答。
3、参与项目讲标:作为讲标团队成员参与项目讲标,负责技术问答环节的应对。

细化架构

5视图法

在项目概要设计阶段,进行架构设计,制定规范和约定,为详细设计提供指导。

实现

详细设计
编码实现

架构设计形成详细设计文档

在项目实现阶段,对开发人员提供规范指引和技术支持。

架构设计的过程和内容不是固定不变的,架构师需要有螺旋思维和跳跃思维的方式,就像武功中,招式是死的,人是活的,要学会活学活用。

ADMEMS软件架构的4个阶段的更多相关文章

  1. 软件架构设计 ADMEMS方法体系

    ADMEMS是Architecture Design Method has been Extended to Method System的简称,是由CSAI顾问团架构设计专家组于2009年11月在第六 ...

  2. 数据处理项目Beta阶段软件架构建议

    class:Dataserver string serverIP string serverPassword string sqlAccount string sqlPassword bool Dat ...

  3. Alpha阶段第二次Scrum Meeting

    情况简述 Alpha阶段第一次Scrum Meeting 敏捷开发起始时间 2016/10/21 00:00 敏捷开发终止时间 2016/10/22 00:00 会议基本内容摘要 汇报了已经完成的任务 ...

  4. Alpha阶段第三次Scrum Meeting

    情况简述 Alpha阶段第三次Scrum Meeting 敏捷开发起始时间 2016/10/24 00:00 敏捷开发终止时间 2016/10/25 00:00 会议基本内容摘要 总结了之前学习的内容 ...

  5. [转]架构蓝图--软件架构 "4+1" 视图模型

    架构蓝图--软件架构 "4+1" 视图模型 本文基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型.使用多重视图允许独立地处理各"风险承担人":最终用 ...

  6. C语言嵌入式系统编程修炼之二:软件架构篇

    模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求.C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行 ...

  7. [1] [转]软件架构之三层架构和MVC的关系

    注:本文章内所有内容都来自互联网,本人主要是起了一个收集的作用 又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑上将应用程序划为三块,凑了一个数字3,就有人非要把它们联 ...

  8. SoC嵌入式软件架构设计

    内存是SoC(System on Chip,片上系统)集成设计的重要模块,是SoC中成本比重较大的部分.内存管理的软硬件设计是SoC软件架构设计的重要一环,架构设计师必须要在成本和效率中取得平衡,做到 ...

  9. [Beta阶段]展示博客

    一.团队成员简介与个人博客地址 团队博客地址:http://www.cnblogs.com/wowotoubuaa/ 江昊,项目经理http://www.cnblogs.com/haoj/ 王开,后端 ...

随机推荐

  1. CSS实现三角形图标的原理!!!!今天总算弄懂了。

    网页中经常有一种三角形的图标,鼠标点一下会弹出一个下拉菜单之类的(之前淘宝也有,不过现在改版好像没有了) 之前以为是个png图标背景,后来在bootstrap中看到有一个图标样式叫做caret的用来实 ...

  2. 【P2107】小Z的AK计划(优先队列+贪心)

    水一发优先队列的水题.. 这个题貌似以前有做过类似的.具体的方法是用大根堆辅助贪心算法得出正解.可以看出来,如果小Z走到了某个地方,那么他最远一定是到了这里,不可能有再走回来这种操作,因为很明显那样不 ...

  3. 【codevs2333】&【BZOJ2002】弹飞绵羊[HNOI2010](分块)

    我其实是在codevs上看到它的题号后才去做这道题的...2333... 题目传送门:codevs:http://codevs.cn/problem/2333/ bzoj:http://www.lyd ...

  4. sqlserver ,镜像数据库,CDC,实时监控数据变化

    1.数据库镜像配置 1)主机环境:计算机名称修改SQL1.xiaoping.com 添加用户sqluser 密码永不变,率属于administrators sqlserver安装时,将所有sqlser ...

  5. java深入探究15-SpringMVC

    测试代码:链接:http://pan.baidu.com/s/1c1QGYIk 密码:q924 回顾spring+struts web.xml配置;struts核心过滤器;spring监听器-> ...

  6. 如何用Spring框架的<form:form>标签实现REST风格的增删改查操作

    1.首先创建两个bean类,Employee(职工)和Department(部门),一个部门可以有多个职工 Employee类(属性:职工ID:id:姓名:lastName:邮箱:email:性别:g ...

  7. YII2笔记之二

    module id / module id /.../ controller id / action idmodule id / directory / controller id / action ...

  8. rehash过程

    步骤 1) 首先创建一个比现有哈希表更大的新哈希表(expand)2) 然后将旧哈希表的所有元素都迁移到新哈希表去(rehash)   dictAdd 对字典添加元素的时候, _dictExpandI ...

  9. EF-简化排序

    respository.GetPaged<S_Users>(out count, m => m.LoginName.Contains("a"),"Log ...

  10. Deep Learning(Ian Goodfellow) — Chapter2 Linear Algebra

    线性代数是机器学习的数学基础之一,这里总结一下深度学习花书线性代数一章中机器学习主要用到的知识,并不囊括所有线性代数知识. 2.1 基础概念 Scalars: 一个数: Vctors: 一列数: Ma ...