2013年11月2日星期六

软件设计过程经验谈 之 如何做好领域模型设计

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
软件设计过程经验谈 之 如何做好领域模型设计  阅读原文»

用户名:ceecy
文章数:9
评论数:5
访问量:2076
无忧币:70
博客积分:190
博客等级:2
注册日期:2010-05-25

软件设计过程经验谈 之 如何做好领域模型设计

经常听到领导教诲,开发的同事应该要往前走一步,去做产品?去做售前?这也是一种方式,只不过是一大步。个人觉得,在迈出这一大步之前,需要先走出一小步:从写好代码到做好设计。

下图是按照软件工程的通用做法,梳理出的标准设计指南,已经非常清晰地定义了软件设计的阶段和活动,产物规约,文档要求以及需要配合的培训。比较适合于人朋规模大、产品化程度高、外包服务模式。按照这个标准的设计指南,把每一阶段的事情做好,这是标准的开发方法论的实践指导。

2222222

有人会说,现在是移动互联网的时代,我们的产品开发要求短、频、快地上线,这种标准的设计方法已经不适合了,我觉的不完全正确。我的做法是,根据产品的愿景和市场情况,按照标准的设计指南做一些定制性的剪裁,哪怕文档全部裁完了,脑子里分析时仍然要按照这几个阶段开展对应的活动,因为这不仅是指南,更是方法论,针对这个几阶段开展过的活动,下面就梳理下我的设计经验。

首先是需求捕获和分析阶段,总是感觉需求在不断地变化,老是怪市场和产品经理,其实很多情况是我们对需求的理解不到位。既有业务理解不准确,也有支撑方式不合理。还有一点就是将原型与需求没有进行区分,原型不代表需求。将需求分析划分为业务需求与系统需求两个阶段,做好领域分析,才能根本性地适应需求的不断地变化。

接下来谈谈如何做好系统分析,在这个阶段一般又叫建领域模型,又叫概念模型,分析对象模型,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。领域模型设计是需求分析的关键步骤。它帮助用户及需求分析人员建立业务概念,确定用户业务的问题域,系统涉及的业务范围等等。

领域模型设计的一般步骤为:

1、从业务描述中提取名词

2、从提取出来的名词中总结业务实体,区分名词中的属性、角色、实体、实例,形成问题域中操作实体的集合;

3、从业务实体集合中抽象业务模型,建立问题域的概念

4、用UML提供的方法和图例进行领域模型设计、确定模型之间的关系。注:实体之间的关系,主要有泛化、依赖和关联,关联又分了一般关联、聚合、组合等

简言之,先分析出模型实体,然后找出模型实体之间的关系。

领域模型与实数据模型的关系:领域模型是与用户沟通的一个重要工具,是需求分析人员与用户共同理解的概念,是彼此之间交流的语言。它是一个分析模型,描述的是业务中涉及到的实体及其相互之间的关系,它是需求分析的产物,与问题域相关。同时给我们需求分析人员和系统功能提供了一定的扩展视野,看到将来需求的可能变化或可能存在的问题。而数据模型是系统设计、实现的一部分,描述的是对用户需求在数据结构上的实现,当然数据模型中的概念模型设计与领域模型类似,缺乏的是实体之间更广泛的关系描述。

这里以开放平台业务管理为例,设计出的领域模型图纸,欢迎大家拍砖。

image

本文出自 "科大讯飞ceecy的专栏" 博客,请务必保留此出处http://ceecyj.blog.51cto.com/1640670/1318599

分享至 一键收藏,随时查看,分享好友!
昵称:
登录快速注册
内容:
返回顶部

论"性能需求分析"系列专题(二)之 借助日志获取性能需求  阅读原文»

每日博报 精彩不止一点关闭
论"性能需求分析"系列专题(二)之 借助日志获取性能需求
本篇文章主要是跟大家讨论如何借助通过服务器日志获取性能需求,进一步开展性能测试

上一篇博文给大家介绍了几种常用的性能需求获取方法,多数方法主要依靠读者的沟通和分析能力以获取需求。相比之下,"通过服务器日志获取需求"的方法则比较具体和有效。一方面,它需要大家比较熟悉服务器日志。另一方面,由于有明确的真实数据做依托,较其他方法更加真实有效。因此,接下去,对"通过服务器日志获取需求"的方法进行重点讲解。

采用该方法的前提是:用户没有给出明确的性能需求;同时,系统的旧版本已经运行过一段时间;这段时间不能过短,期间所积累的数据应足以分析出客户业务使用情况才行。只有这样,才可借助该方法分析出客户的主要业务、点击量、用户访问数量等。

本篇博文以下的讲解主要针对Apache服务器的日志进行。大家可能从未接触过Apache服务器日志,因此,首先对此进行阐述。

Apache的日志功能主要是指其在运行中对服务器活动进行的记录。日志内容主要涵盖了服务器访问者身份、访问时间、具体访问情况及服务器运行错误信息等。显然,Apache的日志功能对于读者进一步了解服务器运行情况提供了有力帮助。

在Apache采用默认方式安装并运行后,将在安装目录的logs文件夹下生成如图所示的access.log和error.log两种日志文件。

142511763.jpg

图中左侧为access.log文件,记录所有访问者对服务器进行的详细操作;右侧为error.log文件,记录服务器运行期间,出现的错误与异常等。在此,研究服务器日志的主要目的是获取性能测试需求,即需要了解所有访问者对服务器的具体访问情况。因此,重点关注Apache的access.log文件。

注意:

Apache配置文件为httpd.conf,在配置文件中通过CustomLog命令可以设置日志文件存放路径,如"CustomLog /usr/local/apache/logs/access_log common"。

前面图中所示的access.log中各行内容均为什么含义呢?下面,结合其中的一条记录(如下图)来揭示谜底。

clip_image005

如上图,第一部分为127.0.0.1;第二、三部分用"-"进行标识;第四部分为[02/Jun/2009:22:12:30+0800];第五部分为"GET /HTTP/1.0";第六部分为200;第七部分为40283。下面,依次对这七个部分进行介绍。

第一部分:远程主机的地址,标明访问者来源。第2个图中,来自于127.0.0.1的用户进行了一次网站访问,该项信息的格式用%h来表示。

第二部分:访问者的email地址或者其他唯一性标识。基于安全考虑,通常用"-"替代。该项信息的格式用%l来表示。

第三部分:访问者的用户名。基于安全考虑,通常也用"-"替代。该项信息的格式用%u来表示。

第四部分:访问请求发生的时间。该项信息的格式用%t来表示。

第五部分:访问请求的类型。此信息的典型格式为"方法-资源-协议"。方法包括GET、POST等;资源是指浏览者向服务器请求的文档或URL等;协议通常是HTTP+版本号。该项信息的格式用\"%r"\来表示。

第六部分:服务器返回的状态码,标明请求的结果。如"200"为请求成功,"404"为页面未找到,"500"为服务器内部错误等,对于各类状态码明确含义,有兴趣的读者请参阅相关资料深入学习。该项信息的格式用%s来表示。

第七部分:响应给客户端的总字节数。该项信息的格式用%b来表示。

值得一提的是,读者可在Apache的配置文件httpd.conf中,通过配置LogFormat的参数来自行定制日志文件的记录格式。如:LogFormat "%h %l %u %t \"%r\" %>s %b" common表示日志中记录上述七部分内容。

注意:

由于我们的目的是让大家了解日志内容,帮助大家更好的开展性能测试,所以内容介绍较为概括,有兴趣的读者可参考相关资料进一步学习。

终于清楚日志中内容的含义了!但是日志中有那么多的请求记录信息,如何进行统计分析以得出性能需求呢?难道一条条逐一统计?当然不是!这样做的效率未免太低了。下面讲解的WebLog Expert工具可以帮助我们方便地进行日志分析,这就是下篇博文跟大家仔细讨论问题了。

本文出自 "探索之家" 博客,请务必保留此出处http://starpoint.blog.51cto.com/968349/1318585

分享至 一键收藏,随时查看,分享好友!
昵称:
登录快速注册
内容:
返回顶部

阅读更多内容

没有评论:

发表评论