软件工程课程设计——网上论坛系统.docx
课题名称:网上论坛系统班级:计算机072名:学号:5号完成时间:2022-11-23指导老师: 斑S亿指导老师评语:得分:参预执行者:版主。入口条件:版主进入系统。事物流:版主浏览帖子,单击“置顶”按钮,可将相应帖子挪移到最顶处,并保 存。出口条件:系统处理请求,将帖子置顶,并在论坛中更新帖子置顶显示。异常事件:无。帖子加精用例用例名:帖子加精。参预执行者:版主。入口条件:版主进入系统。事物流:版主浏览帖子,单击“加精”按钮,给相应帖子添加相应的星级。出口条件:系统处理请求将帖子置顶,并在论坛中更新帖子显示。异常事件:无。(11)锁定帖子用例用例名:锁定帖子。参预执行者:版主。入口条件:版主进入系统。事物流:版主浏览帖子,单击“锁定”按钮,锁定该帖子,使帖子的“回复”按 钮变灰,普通用户将不能回复此帖子。出口条件:系统处理请求,并在论坛中更新帖子信息。异常事件:无。添加版块用例用例名:添加版块。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“添加版块”按钮,填写相应版块信息,单击“保存”按钮,保存 版块信息。出口条件:系统处理请求,保存信息至数据库中,并在论坛中更新相应版块。异常事件:无。删除版块用例用例名:删除版块。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“删除版块”按钮,删除相应版块。出口条件:系统处理请求,在数据库中删除相应版块信息,并在论坛中更新信息。异常事件:无。(M)修改版块用例用例名:修改版块。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“修改”按钮,修改相应版块信息。出口条件:系统处理请求,保存修改数据至数据库中,并更新在论坛中的信息。异常事件:无。(15)添加广告用例用例名:添加广告。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“广告添加”按钮,输入相关信息后单击“保存”按钮,将在论坛 中添加相应广告。出口条件:系统处理请求,将相关信息保存至数据库中,并更新论坛信息。异常事件:无。删除广告用例用例名:删除广告。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“广告删除”按钮,删除相应广告信息。出口条件:系统处理请求,将相关信息从数据库中删除,并更新论坛信息。异常事件:无。添加链接用例用例名:添加链接。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“添加链接”按钮,输入相关信息,单击“保存”按钮保存。 出口条件:系统处理请求,将相关信息保存至数据库中,并更新论坛信息。 异常事件:无。删除链接用例名:删除链接。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“删除链接”按钮,删除相应链接信息。出口条件:系统处理请求,将相关信息从数据库中删除,并更新论坛信息。 异常事件:无。修改链接用例名:修改链接。参预执行者:管理员。入口条件:管理员进入系统。事物流:单击“修改链接”按钮,修改相应信息。出口条件:系统处理请求,更新论坛信息。异常事件:无。1 . 4非功能需求2 .时间需求查询的最长等待时间不超过5秒;更新信息的时间不超过3秒;数据的上传和下载的时间不超过10秒。3 .空间需求支持的终端数:=1000;支持的并行操作的使用者数:=300;处理的记录数:1000。2建立分析的对象模型在网上论坛系统的设计中,需要建立分析的对象模型,如表2.1所示。表2.1建立分析的对象模型候选描述类名使用者用户信息存放论坛用户的基本信息user普通用户本人,斑 竹,管理员管理员信息存放管理员相关 信息admin管理员话题信息存放话题的基本 信息topic使用本论坛的所有合法用户版块信息存放版块的基本 信息board管理员广告信息存放论坛广告的相关信息ad管理员友情链接信息存放友情链接的 相关信息link管理员通过分析,我们得到的“网上论坛系统的类图,如图2.12.3所示。adZd_id: int ,ad ud: String 电ad image: Strmg adjitle: Strng* 矶 ad_0() getad_id() setad urt() %etad_ur1() *etadjmage() getadmage() >etaditleO getadJitleOlinkHnk_id : intink name String url : StringQjinkjnfo : String >lmk_logo : Stnng &»link_islogo : bool link ispass : bool*sethnk_id()getlinkd() *setlink_name() gGthnk_name() setlink_urt() getlink_ur1() *setlink_info() getlink_infb()opname()setlink islogo() *gethnk_islpgo() setlink_ispass() getlink ispass()admmadminjd: mtadmm_name: Stnng Q>admmj)assword : Stnng Q>admin_user: StringetadminjdOge【admin_id() 、etadmin_nanieO getadmmjameO Setadm in j)assword() *getadmmj)assword() *setadrmn-use(t) geladminjisefO图2.1广告信息、友情链接信息、管理员信息的类图二二二二二二ceccccccceccivnnVnVIV9AnAvIVnABV88OP8333OP3OP33It*1*14WAtttltopic id tnt boerdld : lot us«r ; String name : String time : datetimem凯,黑In叩b:bbyTt,E>l»t。IthnxErshogettoplc”, s«ttipk_boardicl() gett op ie)o rd id。 sett op ic _u,”(),.ttopic_u.«r() »ettopic_n®me() 、jettopic_rwmeO tt op lc_t im .)-get t op K _t im () U op Ic _h4. 6 g«ftopic_hits<> ttoplc-replynum y gettoplc_r«piynum() settop icjattrepiyid(> g5t op ic“ epi y 2。,ttoplc_top() %5topKop() settop ic_b« st () g eft op le _b. 16gettopic_del() *>«ttop»c_hot() 、ettopic hot()boardkJ kit4tM)ard idMolhor : bool bid : IntInboard nnmo ; String bocrd_Glo : String 4M>oHrd _mR9tor : String >onrd img : String 4>t>onr<l _po»tnum :Int 4b4>OAnd_topicnum : tnt 4j>boMfd lodaymim : Int 4board lastmply : IntHAtbOAfd eiboard nelboard «lbo«rd setboard eiboard wetboardJd() idMolber(> t>id() nnmO jntoOJmg(>«*4»lbo4«rd_po*tn<im <) mbocrd topicnum() »olbonrd todavnum() tboard JaBtfopIyO gotbourd _ld()3 bo a0d M oUkh(> bld() QetboardMname(> qetboard lnto() Qetbonrd rn twferX) gttwPEg。Ibo a rd _pos In um<> getboard_t oplcnum () gefboard_todaynum() getboard Jasfreply(>user|M4>rd int tsar_c-rn:Stnnga1aBpM.word :Stnng! Stnng :wr_b4rthdey :detetme ur_QQ : int =s,_Ee,I: String: Stnng:String 彩user,ign :String:Stnng bus>r_m«rk : int bu»er_tcpjc : int: int与u.a_pot : intregroup : Stong: Stnng uo_Slnum :int uer_Er>d« : Stccg:datetime :datetime 4busclocked : bool buser.admin : bool us,-password/ : String “r_!> word.q :String: Int_ ondname : String 与:Stnng blood : Stnng usar_thengxiao :Stnngr_ghoc : Stnng>userronc :Stringbu*er.city : String卜 ' 一t_usrOg6 s,rp图2.2话题信息、版块信息、用户信息的类图down dmin_d: »nt Stmg dmm2pettword: Slnftg *dmin_ut«r :Stungs«tBdmin_d)gttodmmjdOg«U dmin_nm<0eUdmm”ord()geUdmmpesewcrdC),etadmcjuMfOgetadmtjuMrO;String“hnijogo Stmg ,小njsloo bod 4n« Jspett: bootHethnfcjdl)7e<hnk _nwn.0 Uink-nafH4Q i«hnfc_urtOtnnMjnfaO3nM jtE) »(hnk_isipgoC1|0二2阳.):datetime: mt.3二url StnrgStnng:StringjdjdO*gBUd_m、gBO*98tadjitl)广告信息类描述类名:ad广告信息类属性如表2.2所示。表2.2广告信息类属性表属性名属性解释数据类型adjd广告id,代表不同的位置intad_url广告链接URLStringad_image广告图片URLStringadjitle广告语String广告信息类方法如表2.3所示。表2.3广告信息类方法表方法名方法功能返回类型setad设置属性值voidgetad获取属性值String/int友情链接信息类描述类名:link友情链接信息类属性如表2.4所示。表2.4友情链接信息类属性表属性名属性解释数据类型linkjd友情链接idintlink_name网站名称Stringlink_url网站URLStringlinkjnfo网站简介StringlinkjogoLOGO地址Stringlinkjslogo是否有LOGOboollinkjspass是否通过本论坛验证bool友情链接信息类方法如表2.5所示。表2.5友情链接信息类方法表方法名方法功能返回类型setlink设置属性值voidgetlink获取属性值String/int/bool管理员信息类描述类名:admin管理员信息类属性如表2.6所示。表2.6管理员信息类属性表属性名属性解释数据类型adminjd管理员idintadmin_name管理员的名字StringadminjDassword管理员密码Stringadmin_user管理员前台用户名String管理员信息类方法如表2.7所示。表2.7管理员信息类方法表方法名方法功能返回类型setadmin设置属性值voidgetadmin获取属性值String/int话题信息类描述类名:topic话题信息类属性如表2.8所示。表2.8话题信息类属性表属性名属性解释数据类型topicjd话题idStringtopic_boardid话题所属版块Stringtopic_user发帖者Stringtopic_name话题名称Stringtopicjime话题发表时间datetimetopic_hits话题浏览量inttopic_replynum话题回复量inttopicjastreplyid最后回复者inttopic_top是否置顶booltopic_best是否加精booltopic_del是否已被删帖booltopic_hot是否热门话题bool话题信息类方法如表2.9表2.9话题信息类方法表方法名方法功能返回类型settopic设置属性值voidgettopic获取属性值String/int/bool/datetime版块信息类描述类名:board版块信息类属性如表2.10所示。表2.10版块信息类属性表属性名属性解释数据类型boardjd版块idintboardJdMother是否为主版块Boolboard_bid所属主版块intboard_name版块名称Stringboardjnfo版块说明Stringboard_master版主Stringboardjmg版块LOGOStringboardjDOStnum版块帖子数intboardJopicnum版块主题总数intboardJodaynum版块当日发帖数intboardjastreply版块最新回复int版块信息类方法如表2.11所示。表2.11版块信息类方法表方法名方法功能返回类型setboard设置属性值voidgetboard获取属性值String/int/bool用户信息类描述类名:user用户信息类属性如表2.12所示。表2.12用户信息类属性表属性名属性解释数据类型user_id用户id号intuser_name用户名Stringuser_password密码Stringuser_sex性别Stringuser_birthday生日datetimeuser_QQQQintuser_EmailE-mailStringuser_tel电话或者手机Stringuser_face头像地址Stringuser_sign个人签名Stringuser_grade用户等级Stringusermark积分intusertopic发表话题总数intuser_wealth用户财富intuser_post发表帖子总数intuser_group所属门派Stringuser_lastip最后登入IPStringuser_delnum被删除帖子总数intuser_friends好友名单Stringuser_regtime注册时间datetimeuser_lasttime上次访问时间datetimeuser_locked状态判断,用户是否被锁 定bool目录1系统需求分析11. 1引言21. 2需求频21. 3功能需求31.4非功能需求112建立分析的对象模型113建立动态模型184数据库表的设计205总结 261系统需求分析user_admin管理员身份判断booluser_password_a取回密码答案Stringuser_password_q取回密码提问Stringuserage年龄intuser_secondname用户昵称Stringuser_truename真实名字Stringuser_blood血型Stringuser_shengxiao生肖Stringuser nation名族Stringuser_province省份Stringuser_city城市String用户信息类方法如表2.13所不。表2.13用户信息类方法表方法名方法功能返回类型setuser设置属性值voidgetuser获取属性值String/int/bool/datetime3建立动态模型简列系统中重要业务流程时序图。用户注册登录系统从以下几个方面进行用户注册登录时序描述。如图3.1所示为用户注册登录系统 时序图。用户填写自己的帐号和密码,单击“登录”按钮。系统根据用户提交的信息进行验证,返回验证信息给用户。添加模块从以下几个方面进行添加模块时叙描述。如图3.2所示为添加模块时序图。图3.1用户注册登录系统时序图图3.2添加版块时序图4数据库表的设计网上论坛系统数据库模型如图4,1所示。RCxiaiDf INTEGER 语数名际:VARCHAR(21) 发帖古:VARCHAR(21) 发Rn冏:DATE 所X版缺:INTEGERHCttttlD: INTEGER<«PK» P(诱融2() <<fK>aFKJ«BM10皈块kttMD: INTEGER版城名称:VARCHAR(21)Y i- . VARCHAR(21)临坡曾介:VARCHAR(21) 是苫为主版俄:CHAR(1)PKJ* 块30v«Uniqu> »"版&24()帖子rcw jidHnteoer 发帖方:VARCHAR(21) 发帖内不:VARCHAR(21) 发帖时问:DATE 所M峡城:INTEGER 断 Wii目:INTEGERFKiJHID; INTEGER<«PK» PK 帖子 4() v«FK>> FK二帖孑 9Q甘a用户PK ffl ID 7INTEGER用户名:VARCHAR(21) 用户宙码:VARCHAR(6) 性别:CHAR(1)生日:DATE头像:VARCHAR(21)位名:VARCHAR(21) 对富:INTEGER发帖: INTEGER 住明时间:DATEvvPKaa PK_普;目用户 80PK: IMTEGEIR网骷名称:VARCHAR(21)网站 URL : VARCHAR(21) 网站 LOGO : VARCHAR(21) PI站冏介 VARCHAR(21) 是百挪供LOOO : CHAR(1) 是石活证:CHAR(1)<«PK» PK一左懵愉掩50广告K L 告 Q 7INTEGERL g URL : VARCHAR(21)广告图片 URL : VARCHAR(2n 广告语;VARCHAR(21)<<PQa PK_T 告70管理员FK WSE ID "INTEGER后白密码:VARCHAR46) 后白名衿:VARCHAR(21)WIT g阚户名:VARCHAFU21)vPK>» PK H 理 员 6()图4.1网上论坛系统数据库模型用户信息表表名:user。用户信息如表4. 1所示。表4. 1用户信息如表序号字段英文名字段中文名数据类型允许为空PK/FK1user_id用户id号int (11)PK2user_name用户名char (50)3user_password密码char (100)4user_sex性别char (2)5user_birthday生日datetime6user_QQQQint (11)7user_EmailE-mailchar (50)8user_tel电话或者 手char (50)9user_face机char (100)10user_sign头像地址text11user_grade人签名char (50)12usermark用尸等级int (11)13user_topic枳力, 发表话题M米(rint (11)14user_wealthrn r±i HIint (11)15user_post用尸财富 发表帖子 吕格rint (11)16user_group/S'5a二匚仔i'"1二肝char (50)17userlastip坊属门俅最后登入char (15)18user_delnum1P被删除帖int (11)19user_friends好友名单text20user_regtime注册时间datetime21user_lasttime上次访问时间datetime22user_locked状态判 断,用户 是否被锁 定enum('false,,true')23user_admin管理员身份判断enum('false','true')24user_password_a取回密码 答案char(60)25user_password_q取回密码提问char(60)26user_age年龄int (11)27user_secondnanie用户昵称char (50)28user_truename真实名字char(50)291userblood血型char (10)30user_shengxiao生肖char(10)31user_nation名族char(50)32user_province省份char(50)33user_city城市char(50)管理员信息表表名:admino管理员信息如表4. 2所示。表4.2管理员信息表序号字段英文名字段中文名数据类型允许为空PK/FK1admin_id管理员idint (11)PK2admin_name管理员的名字char (50)3admin_password管理员密码char (25)4admin user管理员前 台用户名char (50)版块信息表表名:boardo版块信息如表4.3所示。表4. 3版块信息表序号字段英文名字段中文名数据类型允许为空PK/FK1boardid版块idint (11)PK2boardidMother是否为主版块enum('false,,'true')3board bid所属主版块int (11)4board_name版块名称char (50)5board_info版块说明mediumtext6boardmaster版主varchar (100)7board img版 块LOGOchar (100)8boardpostnum版块帖子数int (11)9board_topicnum版块主题总数int (11)10board_todaynum版块当日发帖数int (11)版块最新11UOclI U_lct!5 LIL y111L / J- -L回复话题信息表表名:topic。话题信息如表44所示。表4.4话题信息表序号字段英文名字段中文名数据类型允许为空PK/FK1topic_id话题idint (11)PK2topic_boardid话题所属版块int (11)3topic_user发帖者char (50)4topic_name话题名 称char (100)5topic_time话题发表时间datetime6topichits话题浏览量int (11)7topicreplynum话题回 复量int (11)8topiclastreplyid最后回复者int (11)9topic_top是否置顶enum('false','true')10topic_best是否加 精enum('false','true')11topic_del是否已enum被删帖('false5 ,' true')12topic_hot是否热 门话题enum('false5 ,'true')帖子信息表表名:posto帖子信息如表4.5所示。表4. 5帖子信息表序号字段英文名字段中文名数据类型允许为空PK/FK1Postjd帖子idlnt(11)PK2Post_boardid帖子所属版块lnt(11)3Post_user发帖者Char(50)4Post_topic所属话题IDlnt(11)5Post_replyid所回复话题IDlnt(11)6Postjcontent帖子内容Text7Postjime发表时间Datetime8Post_edittime重新编辑时间Datetime9Postjp发帖者所在IP地址Char(15)友情链接信息表表名:linko友情链接信息如表4.6所示。表4. 6友情链接信息表序号字段英文名字段中文名数据类型允许为空PK/FK1link_id友情链接int (11)PKid2linkname网站名称char (50)3linkurl网站URLchar (50)4link_info网站简介char (100)5link_logoLOGO地址char (100)6link_islogo是否有LOGOenum('false','true')7link_ispass是否通过本论坛验证enum(J false5 , true')论坛广告信息表表名:ado论坛广告信息如表4.7所示。表4. 7论坛广告信息表序号字段英文名字段中文名数据类型允许为空PK/FK1ad_id广告id,代 表不同的位 置int (11)PK2ad_url广告链接URLchar (50)3ad_image广告图片URLchar (100)4ad_title广告语char (50)5总结软件工程课程设计中我们不仅仅学习了 Rational Rose的使用,还进一步了 解了软件工程的普通方法,掌握了可行性研究、需求分析、总体设计、详细设计、 功能实现等等软件工程普通步骤,并且成功完成为了一次出色的程序设计。1. 1引言1 .目的需求分析报告的作用是为“网上论坛系统”开辟人员进行系统总体规划设计 及具体实施开辟工程提供必要的参考资料,在系统开辟完成为后期系统的测试、 验收提供匡助。2 .背景本项目名称为“网上论坛系统”。系统功能主要包括:用户管理,论坛版块 的管理,版主或者管理员管理,友情链接,广告模块的相应管理。3项目概述本项目的用户是普通用户、管理员、版主。普通拥护能够使用此系统登入系 统,注册用户,修改用户信息,发表话题,回复帖子。管理员能够使用此系统添 加版块,修改版块,删除版块,任免版主,添加链接,删除链接,修改链接,修 改广告,添加广告,删除广告。版主能够使用此系统删除帖子,挪移帖子,帖子 加精,帖子置顶,锁定帖子。4.参考文献1 UceFish BBS项目开辟计划书2 UceFish BBS概要设计说明书3 UceFish BBS详细设计说明书1.目标“网上论坛系统”主要提供用户管理,论坛版块的管理,版主或者管理员管理, 友情链接,广告模块的相应管理。2 .用户类和特征用户主要是普通用户、管理员、版主。普通拥护能够使用此系统登入系统, 注册用户,修改用户信息,发表话题,回复帖子。管理员能够使用此系统添加版 块,修改版块,删除版块,任免版主,添加链接,删除链接,修改链接,修改广 告,添加广告,删除广告。版主能够使用此系统删除帖子,挪移帖子,帖子加精, 帖子置顶,锁定帖子。3 .运行环境硬件资源开辟工具:服务器:小型机。网络设备:网卡,网线。软件资源操作系统:Windows xp开辟工具:rational rose4 . 3功能需求相应的功能需求有以下方面。能够实现普通用户的基本操作,主要包括以下内容。用户登入。修改资料。浏览帖子。回复帖子。发表话题。修改帖子。能够实现版主的相关操作,主要包括以下内容。删除帖子。挪移帖子。帖子加精。帖子置顶。锁定帖子。能够实现管理员相关操作,主要包括以下内容。添加版块。修改版块。删除版块。任免版主。添加链接。删除链接。修改链接。修改广告。添加广告。删除广告。数据保存:需要长期保存在数据库的数据有以下内容。普通用户信息:普通用户的基本信息。版主信息:版主的基本信息。管理员信息:管理员的基本信息。帖子信息:帖子的基本信息。版块信息:版块的基本信息。友情链接信息:友情链接的基本信息。广告信息:广告的基本信息。 话题信息:话题的基本信息。系统用户:普通用户、版主、管理员。其功能需求分别介绍如下。普通用户:能够使用此系统登入系统,注册用户,修改用户信息,发表话题, 回复帖子。 版主:能够使用此系统删除帖子,挪移帖子,帖子加精,帖子置顶,锁定帖 子。 管理员:能够使用此系统添加版块,修改版块,删除版块,任免版主,添加 链接,删除链接,修改链接,修改广告,添加广告,删除广告。1 .确定执行者确定执行者为普通用户、版主、管理员。2 .确定用例图1.1至图1.4所示是我们通过一定的调研和分析后得到的“网上论坛系统”的用例图。图1.1浏览帖子回复帖子发表话题修改帖子系统登入修改资料普通用户普通用户用例图修改模版添加广告管理员挪移帖子版主帖子加精帖子置顶锁定帖子删除帖子图1.2版主用例图删除链接添加链接删除广告修改链接删除模版添加模版1.3管理员用例图普通用户十锁定帖子修改链接帖子置顶删除模版帖子加精删除广告添加链接删除链接修改模版添加广告添加模版回复帖子浏览帖子系统登入修改资料管理员发表话题修改帖子版主挪移帖子删除帖子图1.4网上论坛系统总用例图3.编写用例文档系统登入用例用例名:系统登入。参预执行者:普通用户。入口条件:普通用户点击系统登入模块。事物流:普通用户点击系统的登入模块,并输入用户号和密码进行登入验证,如 用户号和密码正确,显示用户的相关信息,并且显示用户可用模块的以进行下一 步的操作。如用户号和密码有错误,则提示用户错误。出口条件:显示用户信息登入成功,否则弹出错误提示。异常事件:无。修改资料用例用例名:修改资料。参预执行者:普通用户。入口条件:已经登入到此系统。事物流:用户进入系统是,单