6.5 开始进入设计 … Transition to Design
开始进入设计 … Transition to Design
从需求分析到设计
逻辑架构与子系统 Logical Architecture and sub-system
5.1 向设计过程切换 Transition to Design
需求与领域分析阶段During requirements and domain analysis work
做正确的事情 “Do the right thing”
理解领域问题 Understand the domain
澄清并记录约束和需求 Clarify and record the constraints and requirements
本质上,暂不考虑设计,集中在理解问题
设计阶段 During design work
正确地做事情 “Do the thing right”
创建设计模型,以便构建系统 Create a design model that can be used to build the system
满足领域约束 Meet the domain constraints
两类主要的模型: 交互图 Interaction diagrams 设计类图 Design class diagrams
设计的输入
系 统 操 作 System Operations
或者操作契约
迭代
每次迭代,都存在需求 到设计的过程
遇到需求的变化,应当 “拥抱”而不是“回避”
设计的结果
设计一个方案,展示系 统是如何实现需求
5.2 逻辑架构、软件架构
什么是架构 What is Architecture?(有的教材翻译成“结构”)
架构是关于如何组织软件系统的一系列重大决策
An architecture is the set of significant decisions about the organization of a software system
如何选择组成系统的结构元素及其接口
这些结构元素相互协作时的行为规范
这些结构元素如何组合成逐渐变大的子系统
可以参考的架构风格 architectural style,以便指导如何组织这些结构元素、定义它 们的接口、协作、以及组合成子系统的过程
架构的另外一种说法: Logical Architecture、Software Architecture
大规模组织类,以便形成模块、分层、子系统、命名空间等
不同于部署架构 Deployment Architecture 定义这些结构元素分布在不同的物理设备上
可能会影响逻 辑架构的因素, 还包括: 补充规 格说明中约束 、非功能性需 求等
5.3 逻辑架构设计方法 – 分层法
分层 System Partitioning
“分而治之”
标识一定规模的结构元素 large-scale elements (LSEs)
层Layers: 粗粒度地组织结构元素,考虑内聚性,完成特定功能
Coarsegrained grouping of architectural elements cohesively responsible for a specific aspect
子系统 Subsystems
模块 Modules
接口
结构元素之间的协作
在开发的过程中,上述各部分是会变化的
在“分”的同时,要考虑“合”
5.4 分层架构的优点
优点
各层都容易被替换 Layers can be easily replaced
较低层次包含更多的操作细节,容易成为可重用的构件
每层都容易分布部署与连接
分层时考虑的问题 Separation of concerns
服务是放在高层还是底层 High-level vs. low-level services
服务是作为应用专门的,还是通用的 Application specific vs. general services
5.5 分层架构示例
物联网大数据平台TIZA STAR架构http://mt.sohu.com/20161024/n471123659.shtml
6.5 开始进入设计 … Transition to Design的更多相关文章
- 什么是领域驱动设计(Domain Driven Design)?
本文是从 What is Domain Driven Design? 这篇文章翻译而来. ”…在很多领域,专家的作用体现在他们的专业知识上而不是智力上.“ -- Don Reinertsen 领域驱动 ...
- 企业级的响应式设计(Responsive design at enterprise level)译
导言 响应式设计是现在人们谈论的热点,但如何部署,特别是在有多种设备的大型项目中如何组织响应式设计,响应式设计和可伸缩性(Scalable)有什么区别?这都是需要解决的难题. 优化用户经验——Opti ...
- 领域驱动设计(Domain Driven Design)参考架构详解
摘要 本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces.Applications和Domain三层以及包含各类基础设施的Infrast ...
- 领域驱动设计(DDD:Domain-Driven Design)
领域驱动设计(DDD:Domain-Driven Design) Eric Evans的"Domain-Driven Design领域驱动设计"简称DDD,Evans DDD是一套 ...
- [转载]领域驱动设计(Domain Driven Design)参考架构详解
摘要 本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces.Applications和Domain三层以及包含各类基础设施的Infrast ...
- 洛谷 P3650 [USACO1.3]滑雪课程设计Ski Course Design
P3650 [USACO1.3]滑雪课程设计Ski Course Design 题目描述 农民约翰的农场里有N座山峰(1<=N<=1000),每座山都有一个在0到100之间的整数的海拔高度 ...
- LeetCode 622:设计循环队列 Design Circular Queue
LeetCode 622:设计循环队列 Design Circular Queue 首先来看看队列这种数据结构: 队列:先入先出的数据结构 在 FIFO 数据结构中,将首先处理添加到队列中的第一个元素 ...
- 算法、数据结构、与设计模式等在游戏开发中的运用 (一):单例设计(Singleton Design)
算法.数据结构.与设计模式等在游戏开发中的运用 (一):单例设计(Singleton Design) 作者: Compasslg 李涵威 1. 什么是单例设计(Singleton Design) 在学 ...
- 设计系统(Design System),设计和开发之间的“DevOps”
最近,我们网站的上新增了几个新功能,比如通过导航栏的QR Code可以下载App:通过Carousel的方式,显示多条信息. 以往这样的功能可能需要2-3个Sprints完成,但是现在这些功能都是在一 ...
随机推荐
- HDU 1392 Surround the Trees(凸包)题解
题意:给一堆二维的点,问你最少用多少距离能把这些点都围起来 思路: 凸包: 我们先找到所有点中最左下角的点p1,这个点绝对在凸包上.接下来对剩余点按照相对p1的角度升序排序,角度一样按距离升序排序.因 ...
- Cannot retrieve metalink for repository: epel 错误解决办法
centos下安装完EPEL源, 然后更新一下yum缓存, 如果发现这样的错误:Error: Cannot retrieve metalink for repository: epel. Please ...
- html 之 img hspace 和 vspace 属性
案例<img src="w3school.gif" hspace="30" vspace="30" /> 描述 通常图形浏览器不 ...
- [LightOJ 1341] Aladdin and the Flying Carpet (算数基本定理(唯一分解定理))
题目链接: https://vjudge.net/problem/LightOJ-1341 题目描述: 问有几种边长为整数的矩形面积等于a,且矩形的短边不小于b 算数基本定理的知识点:https:// ...
- C#winform的textbox怎么设置滚动条
用 C#开发软件的时候文本框textbox是没有滚动条的,而且是单行文本.下面教大家如何设置多行,并且设置横向滚动条和垂直滚动条. 打开VS工具,创建一个winform窗体项目.系统会自动创建一个主窗 ...
- 【团队】EasyKing的实现_1
完成部分 三个功能类 英雄. 子弹. 瓦片地图. 一个设置类 地图 实现功能 瓦片地图 英雄移动 攻击 受到攻击 TODO 子弹攻击范围 地图.建筑物和英雄的碰撞箱 音效 英雄技能 建筑 双人联机 物 ...
- 解析Django路由层URLconf
目录: 一 Django中路由的作用 二 路由的分组 三 路由分发 四 反向解析 五 名称空间 六 Django2.0版的path 一.Django中路由的作用 URL配置(URLconf ...
- R 语言 Windows 环境 安装与Windows下制作R的package--Rtools
1.1 预装的软件 (所有软件都可以在 http://www.biosino.org/R/R-doc/Rm/ 和 http://www.biosino.org/R/requiredSoftWar ...
- 树莓派 无屏幕 安装Ubuntu系统 无头安装 无显示器 用网线
能看到此篇博客的人说明都尝试失败了,会发现内存卡刷入Ubuntu后,无法通过ssh操作树莓派.是因为官方的ubuntu系统在初次运行时需要设定一些东西,类似windows第一次启动也需要设置那样,如果 ...
- HDU3377 Plan
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3377 简单路径要求权值最大,那么为了回避括号序列单独插头的情况特判多,考虑使用最小表示法. #incl ...