202202-发际线跟我作队 实验九 团队作业6:团队项目编码

一、实验目的与要求

项目
内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2019nwnucs
本次作业要求链接 https://edu.cnblogs.com/campus/xbsf/2019nwnucs/homework/12699
团队名称 发际线跟我作队
团队成员分工描述 (1)毛玉贤:完善系统设计说明书、编码
(2)蒋敏敏:编码
(3)张颖:环境搭建、项目编码规范说明
团队的课程学习目标 (1)掌握软件编码实现的工程规范。
这个作业在哪些方面
助团队实现学习目标
(1)团队成员线上交流学习,使得我们对于讨论的问题可以清晰的抒发各自的观点;
(2)成员彼此讲解自己对所学内容的理解,解答他人疑惑,提升了团队对基本概念的理解,加深印象;
团队博客链接 发际线跟我作队
团队项目Github仓库链接 传送门

二、实验内容与步骤

1、任务一:完善《实验八 项目需求分析建模与系统设计(2)》的项目系统设计说明书,进一步细化分析系统设计模型,精化类的属性和操作,详细定义类中服务参数和具体实现逻辑,调整类的层次关系和关联关系,定义软件数据库表结构等。并编制《XXX软件设计说明书1.2》发布在团队项目Github仓库。

1.1 完善《系统软件设计说明书1.2》

  • 细化分析系统设计模型
    本系统共分为六个模块,资源管理模块、论坛模块、笔记模块、题库模块、个人信息模块、消息模块。

    • 资源管理模块
      所开发的网站需要有丰富的资源供用户使用,包括系统提供的资源以及普通用户上传的资源,开源数据集等,资源管理模块实现了用户资源上传、资源分类(文档或文件夹)、资源删除、管理员的审核等功能,为用户上传下载资源,提供了便捷的途径。

    • 论坛模块
      一个好的知识学习网站,论坛功能是少不了的,论坛功能提供给用户随时随地发帖的机会,在学习过程中遇到不懂的问题,可以随心发帖,请教热心的技术伙伴,一起交流讨论问题,同时系统会为用户精准推送同一地区技术伙伴的帖子,以及笔记、文档等资源,这为用户提供了结交周边技术好友的机会。

    • 笔记模块
      用户在使用网站资源进行学习的同时,希望能随时在线记录所学知识,记录学习过程中的易混淆点、重点、难点,帮助学习,方便复习。笔记模块的编辑功能采用了用户比较喜欢的Markdown排版,编辑简单方便,同时用户可以查看下载其他用户公开发表的笔记,参考学习。

    • 题库模块
      背包知识社区系统,不仅要能进行知识资源的下载查看,还能进行相应模块的练习,巩固用户掌握的知识,用户能根据难度、题目类型搜索相应的编程练习题,还可以搜索具体的题目标题,来找相应的题目。

    • 个人信息
      用户可以修改自己的身份信息,设置自己的空间是否公开以及公开范围等。

    • 消息模块
      用户之间可以进行交流,对任何一个问题发表自己的见解,建立一个友好的可交流的资源平台,可以有效地提高用户的学习效率并增进人与人之间的交流。

  • 精化类的属性和操作

    • 完善后的类图(黑色为新增)

  • 资源类(新增部分说明,下同)

    • 属性:对于资源类的设计在原来的基础上新增了资源内容、以及(资源的)删除时间两个属性,在上次实验的过程中,只考虑到资源编号、类型等属性的存储而忽略了资源内容也是需要存储的,故在此基础上,新增了内容。由于资源在被用户上传后,也有可能由于某些原因而被用户弃用或删除,故也增加了删除时间;
    • 操作:删除后的资源会被存放在系统资源模块的回收站中,默认情况系统30后将自动彻底清除,在此期间用户均可以还原被删除的资源文件,重新进行上传、使用等,操作合理;
  • 帖子类

    • 属性:在帖子类中,新增了帖子内容、发帖用户、(帖子的)更新时间,以及删除时间,四个属性,通过上次老师对实验八作业的点评,让我们也意识到了自己的问题。在帖子类中,帖子的内容也需要存储,在发布帖子后,再次修改帖子的更新时间需要显示,以及发帖人。当用户删除帖子时,也需要记录删除时间,删除后的帖子同样会进入回收站中。
    • 操作:新增的操作有:还原删除帖子以及查看帖子,帖子在被用户删除后,会进入回收站,与资源类删除相似,可以再30天内随时还原删除的帖子,重新修改或发布等。当用户在使用该系统时,必然有查看功能。
  • 笔记类

    • 属性:不管是资源、帖子这些类都缺少存储内容的属性,笔记类也不例外,新增了存储笔记内容的属性。并且需要记录发布或创建此条笔记的用户。
    • 操作:对于笔记的操作,不仅可以进行添加、修改、删除等操作,当用户看别人的笔记时,可以进行点赞、收藏和评论,同帖子类一样,用户之间可以对互相的发布的帖子、笔记之间进行点赞、收藏和评论操作,当然用户可以互相查看各自的笔记。
  • 邮件类

    • 属性:新增邮件内容、邮件发送者两个属性,邮件的内容需要存储在数据库中,同时用户所接受的邮件,发送者也需要进行记录。
    • 操作:用户可以查看邮件,该部分修改了之前的错误,以及增加了本项目缺少的基础部分。
  • 练习题类、用户资源类、系统资源类、用户界面类

    • 这些类的修改将不再具体赘述,新增内容均为上次实验中缺少,或修改错误后的内容,由于上次考虑不完善,所以在上次的基础上,新增了这些内容。
  • 个人信息类

    • 属性:个人信息类原来没有添加,这是上次实验八的最考虑欠妥的地方,普通用户需要有修改个人信息的权利,例如,修改姓名、性别、生日、城市、简介等等基本信息,其中个人信息继承了用户类的各种属性,在此基础上,它也有属于自己特有的属性,黑名单,此处的黑名单指的是用户黑名单。
    • 操作:可以进行基本信息的修改以及用户对黑名单的操作。
  • 调整类的层次关系和关联关系

  • 软件数据库表结构
    • 根据课程题目的要求,经需求分析,需用到七个表,分别为注册用户表,资源上传表,帖子发布表,笔记记录表,练习题库表,邮件接收表,系统管理员表。详细属性及其主码如小表所示,其中加下划线的为该表的主码。
表1.1 表的属性和编号
编号 数据结构名 属性
1 注册用户 用户编号、姓名、年龄、生日、城市、学校、手机号、邮箱、简介、密码
2 资源上传 用户编号、资源编号、资源类别、上传时间、更新时间、审核状态
3 帖子发布 帖子编号、标题、发表时间、发表用户、评论量、点赞量、收藏量
4 笔记记录 用户编号、笔记编号、标题、创建时间、更新时间
5 练习题库 题目编号、题目名称、通过率、难度、类型
6 邮箱 用户编号、邮件编号、发件人姓名、接收时间、邮件标题、接收状态
7 管理员 工号、姓名、性别、密码
  • 下面是本系统所需要的的七个基本表。
表1.2 注册用户表
字段名 说明 数据类型 约束 备注
UserId 用户编号 varchar(30) 主码 注册用户的编号
UserName 姓名 char(10) not null 注册用户的姓名
UserIntroduce 简介 text not null 注册用户的简单介绍
PhoneNum 手机号 char(11) not null 注册的手机号码
UserSex 性别 char(2) not null,取“男”或“女” 注册人性别
UserBirthday 生日 datetime not null 注册人生日
UserCity 城市 char(4) not null 注册人当前所在城市
UserSchool 单位 varchar(10) not null 就读学校或者公司
UserEmail 邮箱 varchar(20) not null 绑定的邮箱
UserPassword 密码 varchar(10) not null 登录密码
表1.3 资源上传表
字段名 说明 数据类型 约束 备注
ResourceId 资源编号 varchar(30) 主码 用户上传资源的独有编号
UserId 用户编号 varchar(30) not null,引用注册用户表的外码 注册用户的编号
ResourceSort 资源类别 char(10) not null 用户上传的资源类型,文档或文件夹
UploadTime 上传时间 datetime not null 资源上传的时间
UpdataTime 更新时间 datetime not null 更新所上传资源的时间
ResourceState 审核状态 char(4) not null,取“通过”或“未过” 管理员审核上传资源的状态
表1.4 帖子发布表
字段名 说明 数据类型 约束 备注
InvitationId 帖子编号 varchar(30) 主码 发布帖子的编号
UserId 用户编号 varchar(30) not null,引用注册用户表的外码 注册用户的编号
InvitationTitle 标题 char(20) not null 发布帖子的标题
InvitationPublishtime 发表时间 datetime not null 帖子发表的时间
CommentNum 评论量 int not null 评论帖子的数量
LikeNum 点赞量 int not null 点赞帖子的数量
CollectNum 收藏量 int not null 收藏帖子的数量
表1.5 笔记记录表
字段名 说明 数据类型 约束 备注
NoteId 笔记编号 varchar(30) 主码 创建笔记的编号
UserId 用户编号 varchar(30) not null,引用注册用户表的外码 注册用户的编号
NoteTitle 标题 char(20) not null 记录笔记的概要标题
CreateTime 创建时间 datetime not null 笔记创建的时间
NoteUpdataTime 更新时间 datetime not null 笔记再次编写更新的时间
表1.6 练习题库表
字段名 说明 数据类型 约束 备注
QuestionId 题目编号 varchar(30) 主码 题库中题目的编号
QuestionName 题目名称 char(20) not null 题目的标题、名称
PercentOfPass 通过率 char(4) not null 答对这道题目的人占总答题人数的百分比
DegreeOfDifficulty 难度 char(10) not null 这道题的难道,简单,普通,或困难
QuestionSort 类型 char(10) not null 该题目相关的知识点类型,字符串、二叉树、数组、链表等等
表1.7 邮箱表
字段名 说明 数据类型 约束 备注
EmailId 邮件编号 varchar(30) 主码 接收邮件的编号
UserId 用户编号 varchar(30) not null,引用注册用户表的外码 注册用户的编号
SenderName 发件人姓名 char(10) not null 发件人的姓名
ReceiveTime 接收时间 datetime not null 邮件接收的时间
EmailName 邮件标题 char(20) not null 接收邮件的标题
EmailState 接收状态 char(4) not null ,取“已读”或“未读” 邮件的接收状态,已读或未读
表1.8 管理员表
字段名 说明 数据类型 约束 备注
AdministratorId 工号 varchar(30) 主码 管理员的编号
AdministratorName 姓名 char(10) not null,引用注册用户表的外码 管理员的姓名
AdministratorSex 性别 char(2) not null,取“男”或“女” 管理员的性别,男或女
AdministratorTel 手机号 char(11) not null 管理员的注册电话
AdministratorPassword 密码 varchar(10) not null 管理员的登录密码
  • 数据流
    • 根据用户需求分析,由用户,管理员,资源等基本表之间的关系,总结出本系统所需要的数据流。
表1.9 数据流
编号 数据流名 输入 输出
1 用户注册信息 电话、密码 登录信息
2 用户登录信息 电话、密码 首页信息
3 资源上传信息 所要上传的资源 资源信息
4 检索信息 查询信息 相应帖子、文档信息
5 发帖信息 编辑帖子信息 帖子发布信息
6 笔记信息 笔记内容 保存笔记信息
7 习题信息 编辑代码 结果信息
8 个人信息 修改信息 修改后的个人信息,年龄、城市、性别等
9 管理信息 管理员电话、密码 通过用户上传资源、以及设置用户基本界面信息

1.2 完善后的《系统软件设计说明书1.2》

1.3 上传完善后的《系统软件设计说明书1.2》截图;

2、任务二:团队软件项目编码准备,要求如下:

2.1 搭建并配置软件开发环境;

2.1.1 安装pycharm

(1)PyCharm官网下载
进入后,看到如下界面:

professional 表示专业版,community 是社区版,推荐安装社区版,因为是免费使用的。
(2)下载完成之后完了选择合适路径点击安装。

点击Install进行安装,安装完成后点击Finish即可。

2.1.1 Django安装配置

(1)新建Django项目
File-New Project 新建一个Django项目:

默认新建环境的工具是Virtualenv, 这里用的是conda。输入好location(安装位置)后点击create,即可生成Django项目。

(2)配置已开发的Django项目
点击右上角的配置框选择 Edit Configurations

进来后先输入Name 项目名称,然后在Python Interpreter选择你的代码所属环境的编译器,最后选择Fix,弹出Django配置页。

在点击Fix后出现的配置页中,输入这三项:

第一个是项目根目录,第二个是settings.py文件的位置,第三个是manage.py的位置。三者缺一不可。搞定后点击OK,配置完成。
(3)运行项目

(4)访问http://127.0.0.1:8000/就是网站的首页了。

2.2 团队商议制定团队项目编码规范;

2.3 上传项目编码规范文档到团队项目Github仓库截图;

3、任务三:以团队作业的前期成果为基础,采用团队协作方式编写软件代码,创建程序,开发软件关联数据库,进行必要代码测试。

3.1 代码测试

  • 测试目标

    • 通过测试,达到以下目标:
      • 测试已实现的产品是否达到设计的要求(例如是否实现论坛模块,评论、写笔记等功能),包括:各个功能点是否以实现,业务流程是否正确;
      • 产品规定的操作和系统运行稳定;
      • Bug数和缺陷率控制在可接收的范围之内,遗留BUG一般不超过所有BUG的10%;
  • 测试人力资源

    • 2人
  • 测试环境

    • 操作系统:Windows 11 家庭中文版;
    • 软件:SQLite3.8.8,Python3.10,Django 4.0.3
    • 硬件:Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz 2.40 GHz,8GB RAM
    • 网络:西北师大校园网
  • 测试结果

  • 普通用户

  • 注册界面

  • 登录界面

  • 首页

  • 编辑帖子

  • 帖子发布

  • 笔记

  • 管理员

  • 管理资源

3.2 代码上传到团队项目Github仓库截图

3.3 代码签入团队项目仓库情况统计

4、任务四:完成《实验九 团队作业6:团队项目编码》团队博文作业:

4.1 发布博客到班级作业

4.2 记录完成《实验九 团队作业6:团队项目编码》各项任务实际花费的时间和分工;

任务
步骤(时间min)
总计(min)
任务一 (1)完善《软件需求规格说明书》,并上传到Github;(60) 60
任务二 (1)搭建环境配置;(30)
(2)指定项目编码规范(35)
65
任务三 (1)生成源代码;(661)
(2)上传github;(5)
666
任务四 (1)完成博客;(125)
(2)记录时间;(5)
(4)心得体会以及总结陈述;(8)
138

4.3 每位成员结合任务分工总结本次实验心得,最后由项目组长进行总结陈述;

姓名
感悟
毛玉贤 在本次实验中,使用了pycharm进行编码的设计,在编码的过程中,我们小组一同学习,各自发挥各自的优势,对于任务的划分合理有度,在模块分类、代码编写上、每个人负责一些模块,任务完成后各个模块进行任务的交接以及情况的说明;这使得我们小组的任务进度上,由于前期的合理规划,所以在任务进度上能够按时执行,顺利完成,在不明白的问题上,我们团队会小组讨论,合力解决问题,这不仅使得每位成员的参与感增强,而且大家都在慢慢掌握这一知识点,提升了团队凝聚力,协作力;在此次实验中,无论是制定编码规范还是具体编码都是经过我们小组讨论后,在开始进行具体设计的,在讨论的过程中,各自提出的疑问,有时也是其他人所不熟知的,通过这一过程,很好地帮助我们理解实验项目的各个要求;
蒋敏敏 在本次作业中,大家共同学习了一些软件的使用,同时小组间相互交流,齐心协力完成了本次项目的开发。也可以说这次作业是将前几次项目前期已准备的工作进行实现,这几次的作业给我带来了许多不一样的体验,学到了如何去开发一个软件,收获满满。本次作业分工明确,PM会根据团队成员擅长的方面进行分工,这样既能减少成员的工作量,也能提高团队成员的兴趣和凝聚力。团队中各组员关系融洽,一起学习、一起进步,利于团队的发展。
张颖 本次的作业是完成软件编码,掌握软件编码的工程规范,这一周我们小组完善了项目系统设计说明书,完成了编码环境的搭建,商议并制定了团队项目编码规范,以之前的成果为基础,创建程序开发软件关联数据库,通过小组讨论,互相启发,达到优势互补,解决我们个体无法解决的疑难的目的。我们在参与讨论,参与探究的过程中,必须要有自己的见解和前认知能力作为基础,而我们的独立思考是无法由别人或小组来替代的,只有在我们通过团队分工来思考到达一定的程度展开讨论,才有可能出现一点即通、恍然大悟、豁然开朗、原来是这样的效果;也只有在此时展开讨论,才有可能出现观点的碰撞,因此我们参与在协作学习之前,一定要做好团队分工,有独立学习思考的时机。
  • 总结陈述:由于时间紧任务重,在代码编写、设计实现的过程中,非常考验团队协作的默契程度,通过前几次项目的训练,我们也发现了本团队在团队协作、分工上的不足,也一直在进行时整改。这次项目结合以往的项目经验,使我们在一开始就清晰定位自己在团队中所主要承担的任务。在前期我们统一了编码规范以后,成员之间共同讨论进行了任务模块的划分。任务分配合理,成员的兴趣与凝聚力也大大提高,在遇到问题时,我们能及时互相指正,并且当成员懈怠时,能各自起到督促作用。本次项目任务量较大,我们在做的过程中学到了很多新知识,收获了不仅是知识层面的东西,还有如何是一个团队高效运行、如何与团队成员之间友好合作、如何协调团队成员之间的不同意见及矛盾,这些都是我们在这个过程中逐步遇到、学到、解决到的问题,相信这些宝贵的财富,在以后的学习工作中,一定会是我们每个人受益匪浅。
posted @ 2022-06-21 04:26  发际线跟我作队  阅读(44)  评论(0编辑  收藏  举报