在线购物系统需求分析
文档编号: <1.0>
2008年05月
达内IT培训集团
修改记录
摘要 日期 2008-05-08 修改原因 新建 版本 1.0
在线购物系统需求分析
一 预备说明
一、该文档在课程中的地位 适合在讲授OOAD中软件开发统一过程的时候,提供给学生作为演示范例。
二、课程相关知识说明 《OOAD与UML》中
? Module 2:UML
? Module 3:需求与初始化分析 ? Module 4:分析阶段的静态建模
通过该文档学生从应用实践掌握
? 编写系统设计与需求说明书
? 描述UML在OOAD过程中的作用 ? 熟悉UML中的九种基本图形 ? 解释与使用“包”的标记 ? 了解UML中的扩展机制
? 描述定义与维护数据字典的重要性 ? 描述分析候选业务对象的过程 ? 解释用例图的角色与功能
? 解释为一个用例开发多个场景的过程 ? 用例图与活动图的关系 ? 定义组件图与部署图
? 如何在分析阶段鉴别系统所需的对象与类 ? 解释系统的静态视图 ? 定义动态模型的角色 ? 创建对象图与类图 ? 定义属性与方法
? 解释类图中关联的概念 ? 解释基数性的概念 ? 定义复杂关联
? 解释如何通过关联类与引用关联解决复杂关联问题 ? 解释继承、泛化、特化的概念 ? 解释多态 ? 定义抽象类
? 解释类图中关联的概念 ? 解释聚合、组合的概念
? 描述OOAD中“角色名”使用 ? 解释类图中扩散的概念 ? 解释代理与委托
? 解释面向对象中“责任”的概念
? ? ? ? ? 解释动态建模的概念 解释并创建时序图 解释并创建协作图 解释并创建状态转换图 解释并创建活动图
三、该文档在软件开发过程中的作用 该文档建立在需求说明之上,当分析人员初步确认用户的需求后,可以开始对用户的需求进行分析,该过程主要就是详细分析功能实施的可行性及其解决方案。该分析过程的重点关注是功能与数据,
分析阶段的进行依赖UML记号来完成,该记号的特点是直观,分析的初期阶段分析文档还能便于客户阅读,比如用例图。分析后期的文档便于设计师阅读。也就是说分析阶段的文档主要面向两个使用者:客户与设计师、程序员。
分析就是把物理模型转化为信息抽象模型,分析阶段的文档就是分析师与客户交流的介质,也是分析师与后期设计师交流的介质。
分析的成功与失败关系着整个项目的成功与失败。 四、撰写该文档的主要特点: 过去面向过程的分析方式以功能为主导,功能数据分开独立分析,同时并重的分析方式。
OOAD的分析方式以数据为主导,以功能与数据分析交互且并重的方式进行分析。 该阶段以类图为中心,时序图等为辅导的,类图是集功能与数据为一体的分析表达方式,时序图,协作图是一功能为辅导的分析表达方式,状态图是以局部数据为导的分析表达方式,在分析的初期阶段类图的表达是倾向于数据分析表达的。
分析阶段的类图体现了工作流,数据流,软件系统实现的初期结构,我们可以根据类图得到功能流程,数据流,E-R模型,甚至可以直接通过工具得到POJO代码。
分析阶段的类图,在设计阶段可以细化成软件系统实现,其中包括模块设计,界面操作流程设计等。 该文档背后还关联一套由Rose产生的UML格式的文件。
五、分析的模式 1、把需求说明的功能抽象成场景用例。 2、根据场景用例形成初期的类图 3、通过时序图细化功能流,并在细化过程把数据抽象成类,置入类图结构中。 4、通过协作图确认功能时序是完整的。 5、通过状态图细化某些数据的变化状态,补充时序图对数据状态描述的不足。 6、如果需要可以使用活动图,从另外纯功能流的角度再检测是否有遗漏的功能。 7、3,4,5,6步骤反复与交互直到没有遗漏的功能的数据为止。 8、根据上面分析结果,细化类成员,比如数据类型,修饰限制等。添加成员方法等。 9、根据OO思想,让类图体现结构层次。
10、根据设计模式,让类结构更良好,比如单子模式,工厂模式,MVC模式,门面模式,DAO模式,对类进行结构细化。
忌讳为写文档而写文档,为画UML图而画UML图。
分析与设计没有明显的界限,分析设计是一体的,尽管课程中分析设计是分开讲述的。
二 需求用例模型
一、 系统前台
1.1 用户注册用例
1.1.1 用例图
用户用户注册
1.1.2 用例描述 描述要素 用例名称 用例编号 用例简述 参与者 前置条件 后置条件 特殊需求 描述内容 用户注册 用户填写注册信息,并提交保存 用户 用户需要有一个电子邮件地址 用户可以登录,并进行商品交易结算 提供附加码验证 备注事项 1.1.3 事件流[时序图表示]
: 用户 : 注册界面 : 购物系统主界面1: 打开主界面2: 打开注册页面3: 输入注册信息,并保存4: 保存5: 提示注册结果
1.2 用户登录用例
1.2.1 用例图
网上书城(当当网)需求分析
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)