系统分析与设计
- 建模本质
- 系统分析与设计
-
- 建模前问题分析定义
-
- 问题分析
- 问题定义
- 需求分析与设计
-
- 需求分类
- 如何进行系统设计
- 系统设计文档
- 面向结构化分析与设计
-
- 结构化分析
- 结构化设计
- 模块设计原则
- 面向对象化分析与设计
-
- **概念**
- **分析与设计**
- 面向领域分析与设计
建模本质
对问题进行梳理(抽像、归类、关系)并形成结构化的模型,可以对需求、数据、业务、架构进行建模。建模从需求阶段就开始了。
1.概念建模:站在用户角度进行抽像、归类、关系梳理后的模型
2.逻辑建模:将概念阶段的模型转换为具体某个产品所支持模型,比如具体数据库
系统分析与设计
为什么要分析,为什么要设计。
1.分析是为了确定要做什么、条件约束是什么
2.设计是为了解决怎么去做
建模前问题分析定义
为什么要在建模前进行问题的定义br> 一个系统的本质是为用户解决问题,在建模前需要做到问题的分析与定义并归结模型,最终得到更真实的模型,并为这些问题给出解决方案。
问题分析
1. 在问题定义上达成共识
开发团队与用户需求的理解达成共识,使系统开发向着合理的方向进行
2. 理解问题的本质
每一句描述夹带着叙述者的个人理解,透过表面深进理解问题背后的问题,常用方法采用鱼骨图,将问题写在方框中,原因写在鱼骨上。
包括功能性
功能是否正确,需求有没有二义性
非功能性
需求分析与设计
本节描述需求分析与设计的理轮,具有代表性的分析与设计参考 结构化分析与设计、面向对象分析与设及、领域分析与设计。
需求的本质是确认软件的功能、性能、数据、界面。分下面4个阶段
- 识别问题
发现需求、描述需求,包括功能性需求、性能需求、安全性需求、可靠性需求、环境需求等以确定系统达成的目标 - 分析问题
对问题进行分析,常用方式有SA - 编写需求说明书
对已确认的需求进行文档化描述,也就是编写需求规格说明书 - 需求评审
对需求功能的正确性、完整性、清晰性进行评价
需求分类
- 软件需求
- 功能性 :系统必须完成的功能
- 非功能性:性能、可靠性、安全性、响应时间、吞吐量、容错、扩展、可维护、可修改等
- 设计约束性:也就是限制,比如限制只能用国产数据库
- 用户需求:站在用户角度的需求
- 系统需求:站在系统角度上描述的需求,如功能、非功能、约束、质量属性
- 业务需求:业务本身的的需求
如何进行系统设计
设计者拿到需求后怎么去进行系统设计呢br> 1.在各系统目标之间找平衡点既在预算内又能满足用户
2.多参考其他目标系统进行舍取形成新的系统设计
参靠:
(1)组件的独立性。审视自己设计的系统,是否做到了高内聚、低耦合br> (2)例外的识别和处理。谁能保证系统使用者都精确按照使用说明书使用br> (3)防错和容错。当 络中断、数据库崩溃这样的灾难性事件发生时,系统也跟着崩
系统设计文档
概要设计:高层设计,将软件需求转化为数据结构和软件的系统结构
详细设计:低层设计,将对结构表示进行细化,得到详细的数据结构与算
法。
面向结构化分析与设计
结构化分析
自顶向下逐层分解
结构化分析步骤
- 数据流图:画出系统的数据流图,说明输入、输出数据的情况,数据经过哪些加工处理
- 建立系统逻辑模型 :将数据流图转换成系统等价的逻辑模型
- 划清人机关系:哪些是机器完成,哪些是人工完成
数据流图DFD
基本元素
过程:也称为加工,一步步地执行指令,完成输入到输出的转换。
外部实体:也称为源/宿,系统之外的数据源或目的。
数据存储:也称为文件,存放数据的地方,一般是以文件、数据库等形式出现。
数据流:从一处到另一处的数据流向,如从输入或输出到一个过程的数据流。
实时连接:当过程执行时,外部实体与过程之间的来回通信。
UML基础
1.用例图
从用户角色描述系统的功能。并指出功以的执行者。本质上是功能分解、支持领域建模、面向对象用例驱动。关系有:关联、扩展、泛化、包含
2.静态图
类图:描述系统静态结构,包括,继承、聚合、关联、依赖等关系
对象图:是类的实现,反应某一个时间内对象的活动
包图:描述系统的分解结构,继承、构成、依赖
3.行为图
- 交互图:顺序图(对象间消息发送时间序列)、合作图(对象间的状态协作)
- 状态:描述对象的状态行为
- 活动:描述系统某一项的执行操作序列,可以并发、同步,包含控制流和信息流动作状态、活动状态
- 泳道:根据活动的职责划分所有的活动,每个泳道带表一个责任区,所关心的是职责 分支:branch
分叉汇合:fork join 对象流
4.实现图:构建图、部署图
5.构建图:构建之间的依赖
6.部署图:系统结构的部署
UML设计说明
依赖(Dependency)
【依赖关系】:是一种使用的关系, 即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
聚合(Aggregation)
聚合关系】:是整体与部分的关系, 且部分可以离开整体而单独存在. 如车和轮胎是整体和部分的关系, 轮胎离开车仍然可以存在.如微服务A 微服务B 聚合合微服务AB。但A、B都是可独立使用的
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
泛化(Generalization)
具体描述建立在一般描述的基础之上,并对其进行了扩展。在java中用来表示继承的关系
面向领域分析与设计
分析阶段
在分析阶段的领域模型中,我觉得主要描述领域实体及关系,可以辅助领域名词解释(可以是业务字典形式)、以及约束(业务规则),而业务实体(域实体)仅描述主特征即可。用例分析法
设计阶段
聚合根
领域服务
领域事件
边界上下文
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!