校园综合服务平台《软件工程》课程报告.doc
《校园综合服务平台《软件工程》课程报告.doc》由会员分享,可在线阅读,更多相关《校园综合服务平台《软件工程》课程报告.doc(23页珍藏版)》请在沃文网上搜索。
1、一、 需求分析4二、 项目设计5三、 项目实现9四、 项目测试12五、 项目总结14参考文献附件1:小组分组情况说明 附件2:每个成员的工作报告 1、 需求分析 1.1 环境分析 1)根据民院金石滩校区社团联合会工作现状,社团及其人员的管理工作基本完全依赖于人工处理,但由于数据量较大,人工处理导致操作复杂、人工需求大、效率低、易出错、信息不同步等缺点。 2)校区内所有社团与各种大学生活动缺乏能够展示与宣传的开放式自主平台。3)在校内所举办的各种活动中,线上活动基本依赖于外界平台,但由于外界平台很难满足民院个性化的功能需求,导致使用上的诸多不便。 1.2 设立目标结合校园实际情况,设计一款能够满
2、足在校学生需求的多功能平台。其初期功能包括:社联的相关人员管理功能、在校学生的社团申请与管理工作、各社团的自我展示平台、信息的发布与活动的宣传。 1.3 注意事项 1)由于其内含的管理模式为社团联合会所使用,因此要详细了解其人员管理模式与组织构造,根据其现有的活动与组织的运行模式,设计一套符合其原有业务模式的标准,并能够将其实现在用户对于网站的简易操作上,从而达到满足社联管理功能的基本需求,并使其原有工作变得更加简单、快捷、安全、方便。 2)社团联合会将于10月19日举行全校规模的社团纳新活动,届时将有上千人次使用该平台,因此需要在此之前完成该项目的主要功能部分,并通过相关测试确保其当天能正常
3、运行。3)该网站完成后将作为金石滩校区社团联合会的官方网站,届时将存储数千条社团人员的信息,与校区内全部社团的基本信息,同时由于其承担社联的管理工作,因此该平台的维护与修改工作将长期进行下去。 1.4 业务描述 通过与社团联合会指导教师和学生干部多次沟通后,将相关人员的社团管理与人员管理的主要工作描述如下: 1)设立社团及其负责人: 由社联管理在校全部社团,包括社团的申请与成立、社团负责人的设置与更改、活动的组织与安排,和对其参与人员的信息管理。 2)社团负责人管理社团: 各社团负责人有权管理所在社团,管理工作包括社团的基本信息(社团宗旨、活动目标、社团简介、社徽等),和社团内的人员。社团负责
4、人在实行其管理权限时,需在社联的监督和指导下进行。 3)在校学生申请社团: 申请社团时,首先需要向社联相关人员办理社团一卡通,以证明社团人员的身份,然后即可申报所有社团,具体的社团申报工作由该社团的负责人负责,但需在社联的监督和指导下进行。2、项目设计 2.1 功能设计 该网站所具备的主要功能描述如下: 1)学生申请社团: 用户注册后,即可进行申请社团操作。首先进入个人中心,点击“申请社团”,若该用户身份没有激活则会提示并进入激活页面。在激活页面填入社团一卡通卡号和学号进行验证,若信息匹配成功则进入下一页面,填入社团人员的详细信息,填完提交后,即可进行申请社团的操作。在“申请社团”页面下可选择
5、准备申请的社团,点击“申请”后,该申请请求会提交至后台,需由该社团的负责人或社联管理员对该条申请进行审核,确认无误后可通过该申请。申请被通过后,该社团申请者即成功加入了所申请社团,在个人中心“我的社团”页面下可看到该社团内全部人员的信息。若社团的申请未被管理员通过,则该申请无效。 2)办卡人员信息管理: 学生申请社团时需办理“社团一卡通”用于社团人员身份的验证与识别。办卡人员的信息(包括社团一卡通号和学号)需由“社联管理员”录入网站后台,该条信息作为用户激活自己身份时的验证标准。 3)管理社团: 社团负责人可对自己所管社团进行管理。进入“管理中心”,点击“社团管理”-“我的社团”,即可看到所管
6、理的社团信息。在此,可编辑社团简介,简介会在主页“指点社团”版块显示,可查看该社团的人员并对其进行管理,也可查看申报该社团的请求,并对请求给予“通过”或“删除”的处理。通过“请求”后 社联管理员可对所有社团进行管理,同时可以添加和删除社团。 2.2 用户权限设计 根据上述需求分析,该网站需要区分4种权限不同的用户,具体描述如下: 1)系统管理员: 网站的总管理员,拥有最高管理权限。可进行一切可行性操作,可为其他用户设置相应权限。 2)社联管理员: 社联管理工作的最高权限。可添加和修改社团信息,可为各社团设置负责人,可查看所有社团及其内部人员的基本信息,可进行社团负责人可做的所有管理操作。 3)
7、社团管理员: 各社团负责人所拥有的权限。可对自己所管社团的信息进行修改,可查看社团申请者申报该社团的请求,并对请求进行“通过”或“删除”的操作,通过请求后,该申请社团者将加入此社团的社团人员中,成为正式成员,社团管理员可为其设置职务,已标注身份。同时社团管理员可进行对于该社团内人员的管理操作。 4)注册用户: 普通注册用户。可浏览网站中该权限可见的内容,可申请社团,申请会提交到后台等待相关管理员确认,申请社团成功后,可查看所在社团内其他成员的基本信息。注册用户可由更高级权限的管理者为其设置更高的权限。 2.3 数据库设计 1)Model(实体)描述: 注册用户(ID,邮箱,用户名,密码,权限)
8、, 权限(ID,权限名), 操作(ID,操作名), 办卡人员(卡号,学号), 社团人员(ID,卡号,学号,姓名,学院,专业,班级,电话,注册用户), 社团(ID,社团名,社团简介), 社团内身份(ID,身份名)。 2)E-R图: 操作权限描述 权限用户权限描述 注册用户-社团人员关系办卡人员-社团人员关系 注册用户 办卡人员 社团人员 社团申请 社团身份身份描述 社团 3)数据表:(一)基本用户表US_User表列名数据类型完整性描述useridInteger(10)主键用户idusernameVarchar(20)唯一用户名passwordVarchar(20)用户密码rightidInte
9、ger(5)参照 Right(rightid)用户权限id说明:用户注册、登陆时使用,核实身份、区分不同用户的权限。(二)权限表US_Right表列名数据类型完整性描述rightidInteger(5)主键权限idrightnameVarchar(20)唯一权限名称说明:所有权限的列表。(三)操作表US_Operation表列名数据类型完整性描述operationidInteger(5)主键操作idoperationnameVarchar(20)唯一操作名称说明:所有操作的列表。(四)权限描述表US_RightDesc表列名数据类型完整性描述rightdescidInteger(5)主键权限描
10、述idrightidInteger(5) 参照Right(rightid)权限idoperationidInteger(5) 参照Operation(operationid)操作id说明:描述每个权限所拥有的操作。(五)办卡人员表CB_MemberList表列名数据类型完整性描述cardidInteger(5)主键卡号numberInteger(10)唯一学号说明:记录办理社团一卡通的学生。(六)社团表CB_Club表列名数据类型完整性描述clubidInteger(5)主键社团idclubnameVarchar(20)唯一社团名称clubintroductionVarchar(5000)社团
11、简介说明:所有社团的列表。(七)社团人员表CB_Member表列名数据类型完整性描述memberidInteger(5)主键社团人员idcardidInteger(5)参照MemberList(cardid)卡号useridInteger(10) 参照User(userid)用户idnumberInteger(5)参照MemberList(number)学号nameVarchar(20)姓名phoneInteger(11)电话SchoolVarchar(30)学院MajorVarchar(30)专业ClassNumIntsger(3)班级说明:记录所有社团成员(有社团一卡通者)。(八)社团身份
12、表CB_Identity表列名数据类型完整性描述identityidInteger(5)主键身份ididentitynameVarchar(20)唯一身份名称说明:描述社团中人员的身份。(九)社团人员身份表CB_MemberDesc表列名数据类型完整性描述memberdescidInteger(10)主键社团人员身份idcardidInteger(5)参照List(cardid)卡号useridInteger(10)参照User(userid)用户idclubidInteger(5)参照Club(clubid)社团ididentityidInteger(5)参照 Identity(identi
13、tyid)社团内身份说明:描述每个社团成员的社团身份。(九)社团人员申请表CB_MemberApp表列名数据类型完整性描述memberappidInteger(10)主键申请表idcardidInteger(5)参照List(cardid)卡号useridInteger(10)参照User(userid)用户idclubidInteger(5)参照Club(clubid)社团id说明:描述每个社团成员的社团身份。 2.4 项目架构设计 为了使该系统具有良好的健壮性、稳定性、安全性、可维护性,将该系统分为如下七层: 1)Dao层: 操作数据库的接口层。为了保证系统内数据的安全性,利用接口技术实现
14、面向对象程序设计的封装性与多态性,从而保证操作数据库代码的隐蔽性与安全性。 2)DaoImp层: 实现Dao层所对应的接口,将操作数据库的具体代码写在此层。操作数据库时利用面向对象程序设计的向上转型技术实现该层代码的封装。 3)Model层: 实体模型层。模型与数据库中的数据表一一对应,将数据表中的数据映射为系统内实体时所使用。 4)Service层: 提供各种功能性操作的服务层。该网站所具有的功能均由该层提供的操作处理完成,比如登陆、注册、浏览、管理等操作。 5)Action层: 业务逻辑处理层。与前端直接交互的功能层,负责与前端信息的交互,识别并区分请求,然后决定调用Service层合适的
15、功能, 6)前端: 与用户直接接触,负责接收用户发来的消息,并将反馈回的数据显示给用户,前端包括页面和安卓客户端。3、 项目实现 3.1 程序设计语言选择服务端:Java+ssh框架客户端:java、jsp、html、javascript原因:java+ssh框架实现网站服务器端,网站稳定性较好,平台不受限制,易于实现,易于扩展和维护,数据封装性好。 3.2 数据库服务:mysql 原因:适用于中小型项目的数据库系统,安全、稳定、易用、免费。 3.3 设计模式:MVC 原因: 1)低耦合性。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者
16、业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。 2)高重用性和可适用性。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅是改变视图层的实现
17、方式,而控制层和模型层无需做任何改变。 3)较低的生命周期成本。MVC模式开发可提高开发效率,降低开发成本,易于进行产品的维护。 4)快速的部署。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中业务于表现形式上。 5)可维护性。分熟视图层和业务逻辑层也使得WEB应用更易于维护和修改。有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。 3.4 技术介绍: 1)表现层技术:jsp本系统用jsp作表现层,负责收集用户请求数据,以及数据的表示。 2)
18、 MVC框架本系统使用struts2作为MVC框架。系统中所有用户请求,包括系统超链接和数据提交等都不直接发送到处理层,而是发送给struts2的 action,struts2控制所有请求的处理与转发。 3) spring框架的作用Spring提供的Ioc容器是业务逻辑组合各dao组件的工厂,它负责生成并管理这些实例。借助于spring的依赖注入,各组件以松耦合方式组合在一起,组件之间的依赖通过spring的依赖管理。 4) hibernate的作用Hibernate框架简化了数据库的访问,以简单灵活的方法操作数据库,为底层的dao对象实现提供支持。 3.5具体实现1) 系统结构表现层:由js
19、p页面组成。MVC层:使用MVC框架技术。业务逻辑:主要由Spring Ioc容器管理的业务逻辑组件组成。DAO层:由16个DAO组件组成。在hibernate 管理下完成数据库操作。数据库服务层:mysql数据库存储持久化数据。2) 功能模块XXXDAO:提供XXX表的数据库操作。XXXService:提供XXX表的业务逻辑处理功能。XXXAction:提供XXX角色的请求处理。3) hibernate持久层持久化实体:User:注册用户信息,包括用户名,名户密码,用户权限等信息。MemberList: 社团卡与学号绑定信息,包括社团卡号与学生学号信息。Member:办卡人员详细信息,包括专
20、业、班级、真实姓名、联系方式等。MemberDesc:社团个员信息,包括所在社团,在社团中的身份等信息。MemberApp:申请社团人员的信息表,包括所申请的社团和申请人详细信息。Club:社团信息,包括社团名,社团号,社团简介等信息。Store: 赞助商信息,同Club表。Right: 用户权限表,包括权限名,权限id两个属性。Identity:加入社的用户在社团中的职位描述,包括职位名和职位id两个属性。其他: 还有一些持久化实体类,因为客观原因使与其相关的功能暂不能开放,在此不给予描述。我们使用annotation实现实体的映射,实现零配置。4) 实现DAO层每个DAO组件对应一个数据表
21、的操作。包括DAO接口和DAO实现类。基本组件:getById(long id): 根据主键取持久化实体。add(object entity);保存持久化实例。update(object entity): 更新持久化实例。Delete(long id):根据主键删除持久化实例。getAll():取出表中所有持久化实体。getXXByYYList(int first,int size,.): 根据数据表的某个属性列分页取出持久化实例。通过spring注入SessionFactory实现DAO层的部署。5) 实现Serivce层这一层我们做的很简单,只是在DAO层上加了一些简单的判断,大部分的业务
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 校园 综合 服务 平台 课程 报告