读书笔记-需求设计:构建用户想要和需要的产品(1)

描述系统的方法

五视图

  1. 业务组织图 。 描述系统关系。
  2. 业务流程视图。 描述运行流程,边界。
  3. 数据视图。 描述数据(库/表)层面的关系。
  4. 程序员视图。 描述代码结构。
  5. 硬件配置。 描述部署情况。

什么是设计

  1. 理解。理解自己想要达到的目标(想开发的东西),需要克服的困难。–成果:需求清单。
  2. 猜想。需要有一些创意,依靠直觉并作出一些有理由的猜想。–从诸多想法中挑选一个或几个,进行下一步。
  3. 细化。确保所有的需求都得到覆盖,并确保所有已知的弱点都得到解决,使设计充实。
  4. 分析。对设计进行检查、测试或运算,看当初的猜想有没有不对的地方。(可选)

大设计先行:先收集需求,出详细设计。

敏捷开发:功能拆分成小块,先分下去。具体到细节再制定详细的需求。

在设计过程中,会有反馈,需要跳到早前的步骤,不断更正。
在这里插入图片描述
情景驱动设计
原则:给出方案比直接问需求更让人明白还有哪些需求需要实现的。
步骤:找到需求方->了解情况->给出方案->得到反馈->修改方案

设计体系

前提:明确工作内容。
1.应用程序为企业做的事情。每个功能分成多项任务(task),每项任务代表某人于某时所做的某时。因此需要一个清单:待实现的任务,任务所做的事情。
2.任务锁使用的数据表。
3.与用户相关的情况。–用户所涉及的数据。 并对用户分组。

设计新功能的4个方面:

  1. 用户界面。 – 布局、输入内容、处理、输出内容。
  2. 数据库设计。 --数据结构。
  3. 集成设计。 – 与其他应用程序的交互(输入、输出)。
  4. 技术设计。 – 选框架、模型、公用代码。

六框设计模型

在这里插入图片描述
情景设计
明确各元素之间的关系。元素有:用户组,任务,数据表,任务之间的消息,任务之间的依赖。
目标:用任务视图把任务中的各元素组合起来。

在这里插入图片描述

集成设计:把任务划分到各个应用程序与服务之中。决定数据表与数据库之间的指派关系。以应用程序之间传递的消息为视角,定义集成的需求。
目标:完成集成设计视图。

在这里插入图片描述
用户界面设计:可以以文字形式描述功能界面。

数据库设计

目标:设计表支持功能的实现。数据库设计阶段要把情景设计没考虑到的考虑进来。
明确使用方(可能有多个):
1.同一套数据库,可能被多个程序使用。
2.同一数据,可能被多种角色使用。管理人员要搜索,营销人员要用树做研究。

明确已有数据的维护方。
在大公司中,开发人员可能已知需要什么数据,但仍需要知道数据能从哪个数据库中获得。

检查以下三个方面:
1.每一份数据由哪个应用创建,哪个应用使用,哪个应用归档/删除
2.对数据进行复制的时候(大公司经常做数据备份),使用什么机制确保数据之间的一致
3.确保不要有脏数据。

技术设计
目标
1.设计出可以满足非功能需求的解决方案。
2.设计出可以尽量简化代码的解决方案。

非功能需求:
a.吞吐量,响应时间。(高性能)
b.可用性。(品质)
c.容灾。(高可用)
d.安全设计。避免漏洞。(安全)
e.系统操作管理的易用性。(用户友好)
f.成本。(节约)

实现
利用对象图来复制,用来思考设计方案。

设计如何做到工程化

三项检测

  1. 完备性。
  2. 一致性。
  3. 可追溯性。

完备性
任务都在用户界面设计中得以体现。
任务相关的表都在数据库设计中得以体现。
代码控制。确保用户组的权限得以控制。

一致性
用户界面中的某个动作所需的数据都能在数据库中找到。

可追溯性
可以从设计中明确代码与**界面(程序、服务)**的联系。
底层元素<— 联系—> 高层设计元素
目的:可以明确得知修改某行代码会造成什么样的影响。

如何解决设计中遇到的一些问题

问题1:面对设计方案太大

  • 减少需求
  • 分阶段实现
  • 尝试简单的设计方案,满足大部分的需求,保留可扩展性。

问题2:如何合理估算成本(金钱/时间)
完成技术设计后的估算最准确。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值