从零开始实现一个电子商务网站----整理需求(三)
来源:互联网 发布:民族英雄 知乎 编辑:程序博客网 时间:2024/06/05 19:25
如何整理需求
获得这8张用例图后,可以说需求收集已经可以暂时告一段落啦。接下来要做的就是怎么将这8张图描述的需求变成形式化得需求。对!我们要的是类!
在这个环节,我将采用名词分析法来获取我们所要寻找的类。按照正常的流程用例图是名词分析法的产物。但现在开发软件的是以个人为单位,有绝对的灵活性,既然可以通过名词分析法来获取用例图,那就可以通过用例图来获取那些被采用名词分析法的名词。这些名词很可能就是我们苦苦寻找的类!
8张图包含的名词如下:
顾客 商品 商品定制要求 站内新闻 首页推荐的商品 商品搜索引擎 商品类目 购物车 促销信息 商品的细节图片 商品同属于同一簇的商品 商品的详细描述 商品的具体规格 首页推荐的信息 信息的具体类目 用户 定做流水线 网站的客服人员 订单 商品的数量
是不是看上去就高兴啊,没错。我看到类了!但里面还是有些模糊名称是要去掉的。比如:首页推荐的商品(属于商品),商品搜索引擎(它是个功能集合)。
通过这些名称我们能提取出这些能做为类的名词:
用户 商品 新闻 商品定制要求 商品类目 购物车 促销信息 商品的细节图片 信息类目 定做流水线 网站客服人员 订单
这些名词有些是可以进行抽象的,比如:信息类目,商品类目。这两个类完全可以抽象出类目类。当然还有些类与类直接的联系可以细化为类-关联类-类的关系。
根据这些名词与自己以往的开发经念,我现在可以设计类图了。
就从商品开始,谁叫我们就是卖你呢。图_类图_1描述了商品部分的类图。里面有很多在名词分析过程中不含有的类,这些都是衍生的。它们是怎么发现的,咋们等下再来讨论。
图_类图_1
信息部分的类图
图_类图_2
用户部分的类图
图_类图_3
购物车部分的类图
图_类图_4
网站的总体类图:
图_类图_5
很多类,杂乱的关系。看上去就会有种让人头晕目眩的感觉。也许你会说做个原型要细化到这样的地步吗?别的地方我不知道会不会,但这个项目我会。因为是以个人形式开发的,很多需求都要自己去寻找,更多的时候做决定的还是自己。这个项目采用的原型是针对一些自己不熟悉的功能来说的。像商品发布,新闻发布,购物车,订单,这些普通的模块,完全可以做到一步到位。在整个设计过程中我将始终以软件的可扩展性为最终目标。因此可能会给这个软件的结构添加少许复杂度,但这是完全值得一试的! 我们来看看商品部分的类图。在名词分析过程中得到的与商品有关的名词为:顾客,商品,商品定制要求,商品搜索引擎,商品类目,商品的细节图片,商品同属于同一簇的商品,商品的详细描述,商品的具体规格,商品的数量。 去掉一些不能转换为类的名词与一些描述一类功能集合的名词外得到的名词为: 商品,商品定制要求,商品类目,商品的细节图片,商品同属于同一簇的商品 在商品部分类图中包含的类为: 商品,商品类目,类目,商品细节图片,普通商品,可选某些特征的商品,商品特征 通过简单的对比我们能发现:名词‘商品同属于同一簇的商品‘被分解为如下两个类:可选某些特征的商品,商品特征。采用用这种分解的方法可以使设计有很好的扩展性。 还有一点我们没有提到,那就是这些类都具备什么属性和方法!毕竟我们得靠它们来设计数据库而不是它的名字! 图_类图_1中的商品类所包含的属性与方法如图_类_商品。有很多元素,后面介绍的类将不会粘贴它们的类图(我将会发这个UML项目发布出来)。
图_类_商品
是时候设计数据库了,看到手中的这张类图,咋激动万分!
- 从零开始实现一个电子商务网站----整理需求(三)
- 从零开始实现一个电子商务网站----一切从需求开始(二)
- 从零开始实现一个电子商务网站
- 从零开始实现一个电子商务网站----数据库的设计(四)
- 从零开始实现一个电子商务网站----解决碰到的问题(六)
- 从零开始实现一个电子商务网站----UI的设计布局(八)
- 从零开始实现一个电子商务网站----编码实现之N层类目结构(七)
- 从零开始实现一个电子商务网站----错误比想象中来得更快(五)
- 从零开始用 Flask 搭建一个网站(三)
- 电子商务网站的需求分析
- 关于电子商务网站的需求调查
- 一个电子商务网站的系统结构及功能实现分析
- 网站搭建从零开始(三)域名解析
- 如何策划一个电子商务网站
- 模块化开发一个电子商务网站
- >+ 网站项目计划书 (三):实例 彩票网站功能需求
- 由一个需求聊聊WCF(三)
- 电子商务网站的设计与实现(三):四大子系统,登录-账务-前端-后端
- CVI初学者问答
- 处女座
- 如何安装ruby、rails
- 用户界面线程AfxBeginThread的使用
- 脑残
- 从零开始实现一个电子商务网站----整理需求(三)
- 常见电路板制作软件比较
- 加快RIA开发效率之Flex插件
- Android培训班(14)
- 错误:媒体集有 2 个媒体簇,但只提供了 1 个
- Diameter 协议
- PHP ob_start()与ob_gzhandler()
- 一个BM算法
- kml 乱码问题