产品架构定义
互联网上没有真正的定义,但是在知乎看到了一个回答,其中一句话我觉得和我的理念相似:
在充分理解产品用户需求基础上对产品数据流转的逻辑梳理。
个人举例理解产品架构定义:产品架构就设计水渠的流向、宽窄、深浅等以满足水渠沿岸的用水需求。
产品术语 | 举例 |
---|---|
产品定位 | 解决贫困山区吃水困难 |
用户需求 | 日常用水 |
产品数据 | 用户、水源、水厂 |
数据库 | 水库、江、河、湖、海 |
业务流 | 水渠、人工的(江、河、湖)、水管 |
产品后台 | 大坝 |
产品终端 | 水龙头、花洒、马桶 |
数据属性 | 黄河水、长江水、黄沙水、井水 |
后台模块 | 水渠的流向、宽窄、深浅、水量、水质 |
前后台数据交互体系 | 水和水渠、水管的流向体系 |
- 数据库 = 水库,数据表单的长度、数据类型等相当于水库的大小;
- 业务流 = 水渠,业务表单数据增加、保存、提交相当于水渠哪里转弯、入水,出水;
- 产品后台 = 大坝,控制数据流转节点开关相当于大坝何时开闸、关闸、开闸时长、关闸时长;
产品前后端业务数据流转交互 = 水从水源-水渠-水库-水管物理交互
产品架构层面
战略层
- 产品定位:我们通过产品得到什么?
- 用户需求:用户通过产品得到什么?
- 用户是谁?
- 需求是啥?
范围层
- 功能性:产品功能规格
- 信息性:产品内容需求
结构层
抽象转变具象的过程,通过“战略层”+“范围层”的积累,结合理解用户业务场景、业务习惯
- 用户需求 -> 产品需求
- 底层数据架构需求设计,建立数据库
- 底层数据流转需求设计,建立业务流程图
- 底层数据展现需求设计,建立业务表
框架层
通过“结构层”的积累,结合用户体验设计具体界面操作功能,将产品需求合理的展示在产品原型上。
- 数据交互
- 功能交互
- “人机”交互
表现层
通过“框架层”的积累,结合视觉(听觉、触觉等)体验设计,将产品原型更好的展现到用户面前。
- 视觉设计
- 体验设计
产品架构图(UML模型)
UML介绍
1997 年,OMG 组织(Object Management Group 对象管理组织)发布了统一建模语言( Unified Modeling Language,UML)。UML 是一种编制软件蓝图的标准化语言,它的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。
UML 提出了一套 IT 专业人员期待多年的统一的标准建模符号。通过使用 UML,这些人员能够阅读和交流系统架构和设计规划。UML 支持面向对象的技术,能够准确的方便地表达面向对像的概念,体现面向对象的分析和设计风格。
UML 构成:
- 事物 (Things):UML 模型中最基本的构成元素,是具有代表性的成分的抽象
- 关系 (Relationships):关系把事物紧密联系在一起
- 图 (Diagrams):图是事物和关系的可视化表示
UML特点
- 面向对象
- 可视化,表达能力强
- 独立于过程
- 独立于程序设计
- 容易掌握使用
UML基本元素
- 三个基本模块:事务,关系,图。
- 四种事务
- 结构事务:类,接口,协作,用例,活动类,组件,节点。
- 行为事务:交互,状态机。
- 分组事务:包
- 注释事务:注释。
- 四种关系
- 依赖
- 关联
- 实现
- 泛化
- 九种图
- 用例图:用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系;
- 类图:类图描述系统所包含的类、类的内部结构及类之间的关系;
- 对象图:对象图是类图的一个具体实例;
- 部署图:部署关系图定义系统中软硬件的物理体系结构;
- 活动图:活动图描述系统中各种活动的执行顺序。
- 状态图:状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件;
- 序列图:顺序图表示对象之间动态合作的关系;
- 协作图:协作图描述对象之间的协作关系;
- 组件图:组件图描述代码部件的物理结构以及各部件之间的依赖关系;
UML架构
UML 是由视图(View)、图(Diagrams)、模型元素(Model elements)和通用机制等几个部分构成。
视图
用来表示被建模系统的各个方面。由多个图构成,它不是一个图片,而是在某一个抽象层上,对系统的抽象表示。如果要为系统建立一个完整的模型图,只需定义一定数量的视图,每个视图表示系统的一个特殊方面就可以了。视图还把建模语言和系统开发时选择的方法或过程连接起来。
图
由各种图片构成,用来描述一个视图的内容。UML 语言定了 9 中不同的图的类型,把它们有机地结合起来就可以描述系统的所有视图。
模型元素
代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常用概念。
通用机制
用于表示其他信息,比如注释、模型元素的语义等。它还提供扩展机制,使 UML 语言能够适应一个特殊的方法(或过程)、或扩充至一个组织或用户。