2008 面向对象分析与设计课程报告 指导老师:徐迎晓老师 学生助教:周尚晨 组长:罗璇(0461008) 组员:王力行(0371071),徐啸(0461051) 李欣(0461011),许彬(0461057
2008 面向对象分析与设计课程报告 指导老师:徐迎晓老师 学生助教:周尚晨 组长:罗璇(0461008) 组员:王力行(0371071), 徐啸(0461051) 李欣(0461011), 许彬(0461057)
January6208面向对象分析与设计课程报告 摘要: 在一个学期的面向对象分析和设计的课程中,徐老师以POS系统的分析和设计过 程为主线,形象地为我们讲述了面向对象分析和设计的理论知识,向我们介绍了面 向对象分析和设计的基本步骤和方法。通过一个学期的学习,我们已经对面向对象 分析和设计的理论体系有了比较深刻的理解,同时我们掌握了面向对象分析和设计 的基本方法和基本工具。同时,在一个学期的学习时间中,我们选取了一个基于面 向对象分析和设计的优秀的开源软件,将我们在课堂上学到的理论知识和工具与之 结合起来,分析这个开源软件的源代码中的面向对象分析和设计的思想,获取了大 量的第一手的经验。我们这个小组分析的是一个设计优秀的开源的网上论坛系统 Jive。在ive的分析和设计中,他大量地采用了面向对象的技术。有人曾经说过, 学习面向对象的分析和设计,jve论坛系统是不得不参考的一个作品。在这篇课程 报告中,我们将介绍详细Jve中面向对象分析和设计的思想,以及我们组的成员是 如何来分析这个系统,并且通过这样的分析,我们获得了哪些经验 软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 2 软件学院 04 级 摘要: 在一个学期的面向对象分析和设计的课程中,徐老师以 POS 系统的分析和设计过 程为主线,形象地为我们讲述了面向对象分析和设计的理论知识,向我们介绍了面 向对象分析和设计的基本步骤和方法。通过一个学期的学习,我们已经对面向对象 分析和设计的理论体系有了比较深刻的理解,同时我们掌握了面向对象分析和设计 的基本方法和基本工具。同时,在一个学期的学习时间中,我们选取了一个基于面 向对象分析和设计的优秀的开源软件,将我们在课堂上学到的理论知识和工具与之 结合起来,分析这个开源软件的源代码中的面向对象分析和设计的思想,获取了大 量的第一手的经验。我们这个小组分析的是一个设计优秀的开源的网上论坛系统 Jive。在 Jive 的分析和设计中,他大量地采用了面向对象的技术。有人曾经说过, 学习面向对象的分析和设计,Jive 论坛系统是不得不参考的一个作品。在这篇课程 报告中,我们将介绍详细 Jive 中面向对象分析和设计的思想,以及我们组的成员是 如何来分析这个系统,并且通过这样的分析,我们获得了哪些经验
January6208面向对象分析与设计课程报告 目录 1.前言 2.Jive论坛系统简介 3.Jive的源代码获取以及安装使用 31.源代码的获取… 32.Jive的安装和使用 321.jve的安装配置 32.2.Jⅳve的使用以疑难解答. 4.Jive源代码分析…… 7799 41.Jve的整体介绍 42.Jive功能需求分析 43.Jive中的缓存系统 4.31.使用缓存的动机 4.3.2.Jive中的缓存结构 4.3.3.Jve中的三层缓存结构 13 434.Jive缓存模块的小结… 44.Jive中的设计模式… 17 441.设计模式 44.2. ForumFactory与工厂模式 18 44.3.统一入口与 Single Ton模式 22 444.访问控制和 Proxy模式… 44.5.批量分页查询与迭代模式 5.结语 软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 3 软件学院 04 级 目录 1. 前言......................................................................................................................................... 4 2. Jive 论坛系统简介.................................................................................................................. 5 3. Jive 的源代码获取以及安装使用.......................................................................................... 6 3.1. 源代码的获取................................................................................................................. 6 3.2. Jive 的安装和使用.......................................................................................................... 7 3.2.1. Jive 的安装配置...................................................................................................... 7 3.2.2. Jive 的使用以疑难解答.......................................................................................... 7 4. Jive 源代码分析...................................................................................................................... 9 4.1. Jive 的整体介绍.............................................................................................................. 9 4.2. Jive 功能需求分析........................................................................................................ 10 4.3. Jive 中的缓存系统........................................................................................................ 12 4.3.1. 使用缓存的动机................................................................................................... 12 4.3.2. Jive 中的缓存结构................................................................................................ 12 4.3.3. Jive 中的三层缓存结构........................................................................................ 13 4.3.4. Jive 缓存模块的小结............................................................................................ 16 4.4. Jive 中的设计模式........................................................................................................ 17 4.4.1. 设计模式............................................................................................................... 17 4.4.2. ForumFactory 与工厂模式 ................................................................................... 18 4.4.3. 统一入口与 SingleTon 模式 ................................................................................. 22 4.4.4. 访问控制和 Proxy 模式........................................................................................ 25 4.4.5. 批量分页查询与迭代模式................................................................................... 30 5. 结语....................................................................................................................................... 39
January6208面向对象分析与设计课程报告 1.前言 徐老师这个学期为我们讲授了面向对象分析与设计的课程。这门课程采用的是 案例式的教学方法。整个课程以POS系统的开发和设计为主线,通过这样一个案 例,为我们深入浅出地讲述了面向对象分析和设计的理论体系 在这一个学期的时间中,在徐老师的指导下,以及在周尚晨助教的帮助下,我 们组对Jive开源论坛系统的源代码进行了分析。通过对源代码的认真分析,我们对 面向对象的分析和设计有了更加深刻的理解,并且理解了如何将面向对象分析和设 计的基本原则运用到具体实际中去。最终,我们小组完成了这篇课程报告,把我们 分析过程中的点点滴滴的心得和经验认真的记录下来 这篇课程报告的后续部分组织如下:首先,我们会对Jive论坛系统进行一个总 体的介绍;紧接着,我们将介绍如何安装使用Jve的论坛系统,以及如何才能获得 Jive论坛系统的源代码文件;我们还以设计模式如何在Jve论坛系统中广泛应用为 主,来介绍Jve论坛系统中面向对象分析和设计的精神;最后我们会对我们小组的 工作进行总结。 软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 4 软件学院 04 级 1. 前言 徐老师这个学期为我们讲授了面向对象分析与设计的课程。这门课程采用的是 案例式的教学方法。整个课程以 POS 系统的开发和设计为主线,通过这样一个案 例,为我们深入浅出地讲述了面向对象分析和设计的 理论体系。 在这一个学期的时间中,在徐老师的指导下,以及在周尚晨助教的帮助下,我 们组对 Jive 开源论坛系统的源代码进行了分析。通过对源代码的认真分析,我们对 面向对象的分析和设计有了更加深刻的理解,并且理解了如何将面向对象分析和设 计的基本原则运用到具体实际中去。最终,我们小组完成了这篇课程报告,把我们 分析过程中的点点滴滴的心得和经验认真的记录下来。 这篇课程报告的后续部分组织如下:首先,我们会对 Jive 论坛系统进行一个总 体的介绍;紧接着,我们将介绍如何安装使用 Jive 的论坛系统,以及如何才能获得 Jive 论坛系统的源代码文件;我们还以设计模式如何在 Jive 论坛系统中广泛应用为 主,来介绍 Jive 论坛系统中面向对象分析和设计的精神;最后我们会对我们小组的 工作进行总结
January6208面向对象分析与设计课程报告 2.jive论坛系统简介 Jive论坛系统是一个强大的、结构开放的、可定制化的社区开源产品。他支持 在论坛网站上进行动态的主题讨论。许多跨国企业中使用了ive的操作系统,用来 做产品支持社区、电子学习社区以及内部的协同环境。如著名的国际体育频道 ESPN、国际游戏公司电子艺界EA等公司都已经部署了jve论坛系统。如下图所示, 左图为ESPN体育频道网站上的NFL社区、右图为电子艺界公司的某款游戏的讨论 社区 Jive是一个开放的Java源代码项目。其目标是建设一个开放结构的,强壮的, 易于扩展的基于JsP的论坛。在其设计目标的指导下,其结构设计得非常得好,融 合了很多新的观念,比如 Design Pattern,可更换的skin,可插入Pug等等。Jve 允许在网站上进行线程化的讨论。它提供了性能优秀的用户定义的JsP文件(用 Jive的外壳)来完全改变论坛的外观、形象和功能。并提供了一个可植入的AP这 些AP提供诸如及时翻译、内容过滤或者几乎其它所有功能的先进特性。然而除此 之外还有很多的自由论坛,jve的独到之处是它的全部代码都用Java编写并且被 个专注的程序员群体热情的支持着。基本上,任何带有Java2的平台和其他任何带 有 Servlet21和JsP10的服务器都支持Jve 软件学院04级
January 6, 2008 [面向对象分析与设计课程报告] 5 软件学院 04 级 2. Jive 论坛系统简介 Jive 论坛系统是一个强大的、结构开放的、可定制化的社区开源产品。他支持 在论坛网站上进行动态的主题讨论。许多跨国企业中使用了 Jive 的操作系统,用来 做产品支持社区、电子学习社区以及内部的协同环境。如著名的国际体育频道 ESPN、国际游戏公司电子艺界 EA 等公司都已经部署了 Jive 论坛系统。如下图所示, 左图为 ESPN 体育频道网站上的 NFL 社区、右图为电子艺界公司的某款游戏的讨论 社区。 Jive 是一个开放的 Java 源代码项目。其目标是建设一个开放结构的,强壮的, 易于扩展的基于 JSP 的论坛。在其设计目标的指导下,其结构设计得非常得好,融 合了很多新的观念,比如 Design Pattern,可更换的 Skin,可插入 Plug 等等。Jive 允许在网站上进行线程化的讨论。它提供了性能优秀的用户定义的 JSP 文件(用 Jive 的外壳)来完全改变论坛的外观、形象和功能。并提供了一个可植入的 API,这 些 API 提供诸如及时翻译、内容过滤或者几乎其它所有功能的先进特性。然而除此 之外还有很多的自由论坛, Jive 的独到之处是它的全部代码都用 Java 编写并且被一 个专注的程序员群体热情的支持着。基本上,任何带有 Java2 的平台和其他任何带 有 Servlet2.1 和 JSP1.0 的服务器都支持 Jive