面向对象分析与设计第二步:寻找对象,建立问题域模型

1,用例场景描述

接上一篇中的用例,编写用例场景

U1:

上网者:打开网站(www.xxx.com)

  浏览器:连接网站

目标系统:接受连接

检查连接合法性(主要是因为服务端是容易受攻击的,所以需要加入安全检查)

合法,接入连接,等待HTTP请求(不合法看备选流程)

  浏览器: 发送GET请求

等待回复

目标系统:收到GET请求

处理GET请求

向浏览器发回请求回复

回复完成,断开连接

  备选流程:连接不合法,断开连接。

U2

上网者:点击提交按钮

  浏览器:连接网站

目标系统:接受连接

检查连接合法性(主要是因为服务端是容易受攻击的,所以需要加入安全检查)

合法,接入连接,等待HTTP请求(不合法看备选流程)

  浏览器: 发送POST请求

等待回复

目标系统:收到POST请求

处理POST请求

向浏览器发回POST请求回复

回复完成,断开连接

  备选流程:连接不合法,断开连接。

U3,U4与U1,U2基本一样,不再赘述。

U5 (由于不清楚网站怎么发现,我参考了IIS的新建站点)

网站发布人:打开发布界面

目标系统   :显示发布界面

网站发布人:填写网站配置(主目标,端口等)

                     确认启用网站

  目标系统 :启动网站

开始等待浏览器连接

(突然想到系统还需要提供管理站点的功能,如日常维护等等,不过没有考虑到也不要紧,

在上一遍中已经进行过“需求复核”,确保了我们的目标系统,可以完成重要需求。)

2,用例场景分析:提取对象

利用前辈发明的方法:动名词法。流程中的名词,有可能为系统中重要的实体对象。

U1中的名词:网站  连接  HTTP请求  GET请求   请求回复

U2中的名词:按钮  连接  HTTP请求  POST请求  POST请求回复

U5中的名词:发布界面 网站配置  网站

找到了可能的对象,那么哪些是系统中的对象?

按钮肯定不是。

HTTP请求,GET请求等明显是系统中的对象。

连接是客户端与系统通信的实体,也是系统的对象。

发布界面是提供发布人的操作界面,也是系统中的对象。

网站是什么?实质是用来接收浏览器的连接的,也是系统中的对象。

网站配置可能是网站的一个重要属性。

3,对象分析,建立类型关系

分析对象的共性与修改,用类来归纳它们。下面是用ArgoUML画的类图。

web服务器分析与设计(二)的更多相关文章

  1. web服务器分析与设计(一)

    自己写一个简单的服务器. 面向对象分析与设计第一步:获取需求(基于用例) 功能:1,支持html静态网页,2,支持常用HTTP请求,且容易扩展支持不现请求 3,可以发布站点 补充:至于对动态网页等高级 ...

  2. web服务器分析与设计(五)--一些总结

    随着年龄与经验的增加,对于软件方面的分析与设计也会有一些新的认识.下面做个近期的总结: 1,关于到底用不用作设计的问题: 在最近两个公司,原有人马是不会作设计(我自己的感觉),也察觉不到作设计的任何冲 ...

  3. web服务器分析与设计(三)

    面向对象分析与设计第二步:健壮性分析,完善对象 通过上一篇的分析,已经得到了构建系统中最重要的对象-----实体对象,它们封装着构成系统最重要的数据,实体数据是系统的生命. 但是光有实体还系统是运转不 ...

  4. web服务器分析与设计(四)

    上篇已经开始了系统内部的分析,并且得到一些分析对象.在整个动作场景中,我们得到了一些粗略的对象.有必要对对象进行分析,合并,再抽象. 实质是职责的合理分配,使得系统合乎功能性,同时得到最大的可扩展,可 ...

  5. java实现简单web服务器(分析+源代码)

    在日常的开发中,我们用过很多开源的web服务器,例如tomcat.apache等等.现在我们自己实现一个简单的web服务器,基本的功能就是用户点击要访问的资源,服务器将资源发送到客户端的浏览器.为了简 ...

  6. goahead(web服务器)分析

    一.参考网址 1.源码的github地址 二.网页是采用文件读写方式,还是转换为数组方式? 1)其通过宏定义“WEBS_PAGE_ROM”来区分,我是在websPageReadData()(page. ...

  7. 嵌入式web服务器BOA的移植及应用

    嵌入式web服务器子系统 一.嵌入式web服务器的控制流程 如下图所示,嵌入式web服务器可实现通过网络远程控制嵌入式开发板,便捷实用. 控制流程:浏览器 --->>>嵌入式开发板 ...

  8. WSGI——python web 服务器网关接口

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826084.html 一:服务器.服务器软件.应用程序(后台) 我们常说“服务器”,实际上服务器是一个很宽 ...

  9. 移动物体监控系统-sprint4嵌入式web服务器开发

    一.BOA嵌入式服务器的移植 step1:下载BOA服务器并解压,进入boa下面的src目录,执行./configure生成必须的配置文件以及Makefile step2:修改Makefile文件 c ...

随机推荐

  1. OpenCV码源笔记——Decision Tree决策树

    来自OpenCV2.3.1 sample/c/mushroom.cpp 1.首先读入agaricus-lepiota.data的训练样本. 样本中第一项是e或p代表有毒或无毒的标志位:其他是特征,可以 ...

  2. Asterisk服务安装配置和启动

    Asterisk服务安装配置和启动 2014年11月4日 11:36 注意: 更新源的重要性 源的地址: http://fffo.blog.163.com/blog/static/2119130682 ...

  3. n人比赛,可轮空,比赛轮数和场数

    #include<stdio.h> int chang(int x,int s){ ) return s; ) ; !=){ s+=(x-)/; )/,s); } else{ s+=x/; ...

  4. C++STL之整理算法

    这里主要介绍颠倒.旋转.随机排列和分类4中常见的整理算法 1.颠倒(反转) void reverse(_BidIt _First, _BidIt _Last) _OutIt reverse_copy( ...

  5. Codeforces Beta Round #2B(dp+数学)

    贡献了一列WA.. 数学很神奇啊 这个题的关键是怎么才能算尾0的个数 只能相乘 可以想一下所有一位数相乘 除0之外,只有2和5相乘才能得到0 当然那些本身带0的多位数 里面肯定含有多少尾0 就含有多少 ...

  6. POJ 1753 Flip Game (高斯消元 枚举自由变元求最小步数)

    题目链接 题意:4*4的黑白棋,求把棋全变白或者全变黑的最小步数. 分析:以前用状态压缩做过. 和上题差不多,唯一的不同是这个终态是黑棋或者白棋, 但是只需要把给的初态做不同的两次处理就行了. 感觉现 ...

  7. uva1639 Candy

    组合数,对数. 这道题要用到20w的组合数,如果直接相乘的话,会丢失很多精度,所以用去对数的方式实现. 注意指数,因为取完一次后,还要再取一次才能发现取完,所以是(n+1)次方. double 会爆掉 ...

  8. javascript插件编写小结

    写JS插件,最好是先通过HTML方式将展示结果显示出来,然后再封装成JS插件,将其画出来.JS模板如下: (function($){ $.fn.fnName = function(options){ ...

  9. RTP协议分析

      目录(?)[-] 第1章     RTP概述 RTP是什么 RTP的应用环境 相关概念 流媒体 第2章     RTP详解 RTP的协议层次 传输层的子层 应用层的一部分 RTP的封装 RTCP的 ...

  10. liunx之zip格式的解压命令

    zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzip unzip -o -d /home/s ...