web服务器分析与设计(三)
面向对象分析与设计第二步:健壮性分析,完善对象
通过上一篇的分析,已经得到了构建系统中最重要的对象-----实体对象,它们封装着构成系统最重要的数据,实体数据是系统的生命。
但是光有实体还系统是运转不起来的,这里通过健壮性分析来发现边界,控制对象,以大致完成系统对象的发现。
健壮性分析同样是以用例为单位。通过对每一个用例的分析,从中发现以及抽象出边界对象,控制对象。
边界对象:接收外部命令;控制对象:程序逻辑;实体对象:重要数据;
从用例1(U1)开始分析:
上网者:打开网站(www.xxx.com) 【需要边界接收这个命令,但是边界是浏览器的,不需要构建】
浏览器:连接网站 【需要边界接收这个命令,边界对象:网站】
目标系统:接受连接 【程序逻辑,控制对象:接受连接】
检查连接合法性(主要是因为服务端是容易受攻击的,所以需要加入安全检查) 【程序逻辑,控制对象:检查连接】
合法,接入连接,等待HTTP请求(不合法看备选流程) 【程序逻辑,控制对象:等待请求】
浏览器: 发送GET请求 【这个命令需要边界接收,边界对象:连接】
等待回复 【无】
目标系统:收到GET请求 【这个和等待请求是一个意思,等待请求就说明会收到请求】
处理GET请求 【程序逻辑,控制对象:处理】
向浏览器发回请求回复 【程序逻辑,控制对象:发回回复】
回复完成,断开连接 【无,这种很简单的操作没有必要抽象成对象】
备选流程:连接不合法,断开连接。 【无,其实断开更适合做连接的一个方法/接口】
画图表示:
其它的用例同样也要分析。但是千万不要陷于分析瘫痪。只要大致分析出就可以,不完善的地方,在开始迭代过程中可以改进。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· ShadowSql之.net sql拼写神器
· Excel百万数据如何快速导入?
· 无需WebView,Vue也能开发跨平台桌面应用