《少年先疯队》第七次作业:团队项目设计完善&编码
博文简要信息表:
项目 | 内容 |
---|---|
软件工程 | https://www.cnblogs.com/nwnu-daizh/ |
本次实验链接地址 | https://www.cnblogs.com/nwnu-daizh/p/10980707.html |
团队名称 | 少年先疯队 |
作业学习目标 | (1)掌握软件编码实现的工程要求。 |
任务1:团队软件项目设计完善:
1)在团队项目Github仓库中上传文档《软件设计方案说明书》。
酒店会员管理系统《软件设计方案说明书》: https://github.com/snxfd123/designfile
2)在团队博客总结中陈述项目技术设计是如何体现下列原则的:
-
抽象:类实际上是一种抽象数据类型,他对外开放的公共接口构成了类的规格说明,这种接口规定了外界可以使用的合法操作符,利用这些操作符可以对类实例中包含的数据进行操作。使用者无需知道这些操作符的实现算法和类中的数据元素的具体表示方法,就可以通过这些操作符使用类中定义的数据
-
强内聚/弱耦合/模块化:
- 强内聚,内聚衡量一个模块内各个元素彼此结合的紧密程度。本次设计中使用的一个构件内的各个元素,对完成一个定义明确的目的所做出的贡献程度较高。
- 弱耦合,耦合是指一个软件结构内不同模块之间的互连得紧密程度。主要指不同对象之间相互关联的紧密程度。本次设计采用了弱耦合,有助于使系统中某一部分的变化对其他部分的影响降到最低程度。
- 模块化,把数据结构和操作这些数据的方法紧密的结合在一起所构成的模块,本次设计采用模块化,能够更好地管理数据。
-
信息隐藏和封装:在面向对象方法中,信息隐藏通过对象的封装性实现,类结构分离了接口与实现,从而支持了信息隐藏。
-
界面和实现的分离:java项目都是在Eclipse里面做的,然后jsp是服务端的,只能支持java语言,因此jsp写的前端页面只能适用java项目
-
错误情况处理:
-
java.lang.NullPointerException(空指针异常):调用了未经初始化的对象或者是不存在的对象。经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针, 即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。
-
java.lang.ClassNotFoundException(指定的类不存在):这里主要考虑一下类的名称和路径是否正确即可,通常都是程序试图通过字符串来加载某个类时可能引发异常。比如:调用Class.forName();或者调用ClassLoad的finaSystemClass();或者LoadClass()
-
SQLException(操作数据库异常)
-
-
程序模块对于运行环境、关联模板、输入输出参数有什么假设?
- 运行环境:Windows7、jdk1.8、Eclipse4.5、MySQL5.5、Tomcat8.0
- 关联模板:通过主应用程序组合,模块均可独立操作存储文件。
- 输入输出参数:
- 登录模块
密码验证接口:
输入:用户名,密码
输出:Y/N
密码查询接口:
输入:用户名
输出:密码
调用密码验证 - 会员模块
会员管理接口:
输入:用户名,密码
输出:Y/N
查询消费记录接口:
输入:查询请求
输出:消费记录
积分兑换接口:
输入:会员名
输出:积分兑换记录 - 管理员模块
管理员管理接口:
输入:用户名,密码
输出:Y/N
管理接口:
输入:房间的编号、房间的大小、房间的类型、房间的价格
输出:房间状态
输入:商品编号、商品价格、商品价格和商品数量
输出:商品状态
会员信息管理接口:
输入:会员相关信息
输出:注册成功
输入:会员编号、会员名
输出:删除成功
收费管理接口:
输入:会员编号、会员名
输出:会员充值弹框
输入:会员编号、会员名、充值金额
输出:充值成功
- 登录模块
-
设计方案对于应对变化的灵活性:
-
程序级别的灵活性,主要通过参数化配置程序低级别的灵活性。
-
高度可配置性,包括各种虚拟机参数、属性文件和XML配置文件。
-
脚本,脚本是扩展复杂功能的利器,但对用户的要求也比较高。通常应该面向开发人员的工具产品。或者在产品部署之前由现场实施人员来完成。
-
插件系统或者模块化平台,插件系统平台从理论上提供了无数的可扩展性。比如Eclipse和NetBeans平台。这儿是抽象的最高点,产品可以一无用处,也可以无所不能。完全看市场有什么插件,用户怎么配置。
-
-
设计方案的数据处理能力:
- 预测性分析能力
- 数据质量和数据管理
- 可视化分析
- 语义引擎
- 算法
-
设计方案的软件重用情况:软件重用是提高软件开发生产率和目标系统质量的重要途径。本次设计采用了源代码重用、架构重用、应用框架的重用、业务建模的重用、文档及过程的重用、软构件的重用、软件服务的重用。
-
设计中采用了哪些启发式规则?
本次设计中采用的启发式规则有设计结果应该清晰易懂;一般-特殊结构的深度应适当;设计简单的类;使用简单的协议;使用简单的服务;把设计变动减至最小
任务2:团队软件项目编码实现,要求如下:
-
搭建并配置项目集成开发环境;
- 操作系统 Widnows 7
- 开发工具 Eclipse 4.5
- 数据库 Mysql 5.5
- JDK 1.8
- Web服务器 Tomcat 8.0
- 单元测试框架 Junit4
- Web网页设计 HBulider Dreamwerve
-
小组内成员共同商议制定团队项目编码规范, 并在团队项目Github仓库中上传文档《软件编码规范说明书》;
酒店会员管理系统《软件编码规范说明书》: https://github.com/snxfd123/designfile
-
按照软件设计方案说明书要求,选择计算机语言协作编写软件代码,开发软件关联数据库创建程序,进行必要的代码测试;
-
项目实现
- 登录页面展示
- 会员登录页面
- 管理员登录页面
- 登录页面展示
-
测试遇到的问题
- 目前测试的时候出现的问题,主界面与数据库之间收到连接存在故障,正在修改,另外,由于数据库的字段功能设计不当,因此,也导致在测试过程中信息读入错误的情况。解决方案是修改数据功能,完善数据字段的设计,正在进行中。
-
-
上传本周已完成项目源码到团队项目Github仓库。
源码: https://github.com/snxfd123/designfile/tree/master/Hotelvip
任务3:在团队博客发布博文,结合燃尽图陈述本实验执行过程,上传团队实施本次作业的场景照片,描述团队成员的具体分工、占整个作业任务的工作量比例及完成各自任务的实际时间
- 燃尽图
-
团队照片
-
团队分工
团队成员 分工 所占比例 任务实际完成时间 姚玉婷 撰写博客以及编码测试 30% 4h 马丽莎 撰写软件编码规范说明书 30% 4h 孙苗坤 总结项目技术设计的原则 30% 4h 张 琼 《软件设计方案说明书》 25% 4h
任务4:总结
NO.1:孙苗坤:
本次实验在组长的带领下,分工明确,各司其职。在编码和测试的过程中也发现了很多有趣的问题,让我更深地认识到软件工程这门学科的实用性和趣味性。也再一次学习了编码规范,受益良多。本次实验,与以往实验不同的是,从本次实验开始,我们进行了功能的编码实现和数据库的设计,这是实打实的,也是比较有难度的。库的设计需要综合系统的实际需求,来确定实际需要的几张表,每张表需要那些字段等,这些看似容易的工作,实际做起来往往是有难度的。而框架的搭建牵扯到各种各样的配置文件,且对Spring框架有个基本的了解,是需要慢工出细活的。经过本次实验,总体来讲,难度较大,任务量繁重,但是风雨过后是彩虹,正是通过这样的难度,复杂性使我们团队对于java环境下的开发步骤有了更加深入的理解,通过撰写软件编码规范与软件设计方案也对于本系统有了更精细化的需求分析。
NO.2:马丽莎:
通过本次的程序设计开发,我了解到软件的开发是一点一点逐步完善起来的,针对出现的问题,我们要不断地反思不断地改进,对各自遇到的问题进行了集体讨论,并得到了解决办法,从中学到了很多知识,加深了对以前所学知识的理解。同时也体现了团队合作的重要性,可以说,没有团队成员之间的相互合作,这么多的任务是没有办法完成的。对各自遇到的问题进行了集体讨论,并得到了解决办法,从中学到了很多知识,加深了对以前所学知识的理解。
NO.3:张琼:
通过本次的程序设计开发,我了解到软件的开发是一点一点逐步完善起来的,针对出现的问题,我们要不断地反思不断地改进,对各自遇到的问题进行了集体讨论,并得到了解决办法,从中学到了很多知识,加深了对以前所学知识的理解。同时也体现了团队合作的重要性,可以说,没有团队成员之间的相互合作,这么多的任务是没有办法完成的。对各自遇到的问题进行了集体讨论,并得到了解决办法,从中学到了很多知识,加深了对以前所学知识的理解。
NO.4:姚玉婷:
作为组长,每天要给组员安排任务,任务量不但要均衡,还要考虑与项目整体进展的协调一致。另外,必须和每个队员都密切沟通,保证大家的工作最后能完美的整合到一起,当小组讨论和任务实施过程中,队员之间发生争议时,我不但要保持公平公正,还要调解关系,解决问题。除此之外,每天都要进行工作总结和反思,以便及时查缺补漏。所以,我最大的感受就是,一个团队要想默契的配合,保证高效率的完成工作,组长必须考虑周全,和队员及时沟通,起到监督和协调作用。