-
软件架构为谁设计
-
为管理人员设计
- 一方面,软件架构从大局着手,就技术方面的重大问题做出决策,构造一个由粗粒度模块
- 组成的解决方案,从而可以把不同模块分配给不同小组分头开发
- 另一方面,软件架构设计规定了各模块之间如何交互的机制和接口,在开发小组之间起到沟通桥梁和合作契约的作用
- 为开发人员设计
- 为客户设计
- 为用户设计
-
子系统,框架与架构
- 展现层,业务层,数据层
- 子系统,模块,类
- 技术通用领域,领域通用部分,特定应用部分
- 企业应用架构模式(Martin Flowler)
- 细节是相对而言的
- 子系统也有架构
- 框架是软件,架构不是软件
-
软件架构5视图法
- 逻辑架构
- 开发架构
- 数据架构
- 物理架构
- 运行架构
-
软件架构设计过程
-
一般软件过程
- 概念化阶段
- 分析阶段
- 架构设计阶段
- 并行开发与测试阶段
- 验收与交付阶段
-
需求分析
- 容易变更和不容易变更
- 这个软件到底为用户做什么
- 软件需求规格说明书
- 愿景与范围文档
-
用例图,用例简述,用例规约
- 用例图+用例简述,本书推荐这种做法
-
用例简述
- 用例名称
- 用例简述
- 优先级
-
用例规约
- 用例名称
- 简要说明
-
事件流
- 基本事件流
- 扩展事件流
- 非功能需求
- 前置条件
- 后置条件
- 扩展点
- 优先级
- 原型等方法启发需求
-
领域建模
-
书籍
- 面向对象项目的解决方案
- 分析模式
- 高效能人士的七个习惯
- 领域驱动设计
- 人月神话
- 敏捷软件开发生态环境
-
概念性架构设计
- 鲁棒性分析
- 引入架构模式
- 质量属性分析
-
书籍
- UML用例驱动对象建模
- 软件复用:结构,过程和组织
-
活动图
- 更多的关注如何将这些设计转化成if else这样的逻辑判断,就像流程图一样
-
鲁棒图
- 用例转换为对象以及GUI
- 边界对象,控制对象,实体对象