- OOA
- OOD
- OOP
当我们接到一个模糊或者具体的需求,一个通用的流程范式是
需求分析 -> 方案设计 -> 编码实现
需求分析
- 面向对象分析的输入是一个模糊或者具体的需求 ,产出是详细的需求描述。
- 需求分析是一个反复迭代才能出现“结果宝石”的过程,就像解一道算法题一样:有一个最初的实行方案,然后发现问题,解决问题或推翻设想重来。
- 举个例子:需求是服务端要添加一个鉴权功能
- 最开始考虑使用用户名口令鉴别身份
- 发现明文容易被中间人抓包获取所以传输时使用hash后的密码
- 发现hash 后的密码还是有被重放攻击的风险所以绑定用户端mac或发送端同时发送调用时间。
- 方案敲定,用自然语言描述整个方案如何实现。
- 1. 客户端发送时将 用户名+密码+时间 组合后做hash
- 2. 客户端将 用户名+hash+时间发送给服务器端
- 3. 服务器收到字串后验证时间是否过期
- 4. 如果过期则异常/如果未过期则从库中查找用户对应密码
- 5. 将 用户名+ 密码+时间 组合后hash并和收到的匹配
- 6. 匹配失败则异常/成功则赋权
方案设计
- 面向对象分析的输出是具体的类和框架(类关系)。
- 拿到详细的需求描述后