2020软件工程作业05
作业的github地址:https://github.com/changorz/work
作业描述
软件工程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017/ |
---|---|
作业要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017/homework/10496 |
题目 | 2020软件工程作业05-家族树的可视化 |
作业正文 | DCW同学的博客作业地址:https://www.cnblogs.com/chang1024/ MYK同学的博客作业地址:https://www.cnblogs.com/mykang/ |
其他参考文献 | layui帮助文档:https://www.layui.com/doc/ |
具体分工
-
DCW负责后端的编写并写了ajax的数据交互
-
MYK负责前端界面的编写。并一起编写文档信息。
PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 预估耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 20 |
Estimate | 估计这个任务需要多少时间 | 20 | 20 |
Development | 开发 | 820 | 643 |
Analysis | 需求分析 (包括学习新技术) | 60 | 60 |
Design Spec | 生成设计文档 | 10 | 8 |
Design Review | 设计复审 | 10 | 5 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 | 10 |
Design | 具体设计 | 30 | 30 |
Coding | 具体编码 | 600 | 480 |
Code Review | 代码复审 | 30 | 20 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 30 |
Reporting | 报告 | 60 | 40 |
Test Repor | 测试报告 | 20 | 10 |
Size Measurement | 计算工作量 | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 20 |
合计 | 920 | 703 |
附件
需求分析
- 在web端输入数据
- 展示成树状结构
代码规范
- 模块开发
- 驼峰命名
解题思路描述与设计实现说明
-
前端输入数据异步发送到服务器
-
服务器处理数据,存储到数据库,向前端返回数据
-
前端展示树形结构
controller类图
4.流程图
附加特点设计与展示
采用layui框架设计
目录说明和使用说明
可改进地方:比如支持上传文本文件作为输入;右键某一个节点,可以再单独输入,添加其子节点;支持输入额外信息,比如联系方式,点击某个节点可以查看其额外信息;呈现结果可以导出图片等等。
单元测试
测试工具:IDEA
解析字符串方法测试
package chang;
import chang.pojo.Children;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
/*
导师:张三
2016级博士生:天一、王二、吴五
2015级硕士生:李四、王五、许六
2016级硕士生:刘一、李二、李三
2017级本科生:刘六、琪七、司四
导师:张三 2016级博士生:天一、王二、吴五 2015级硕士生:李四、王五、许六 2016级硕士生:刘一、李二、李三 2017级本科生:刘六、琪七、司四
*/
Scanner sc = new Scanner(System.in);
String sssss = sc.nextLine();
String[] s = sssss.split("
");
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]);
}
Children ds = null;
for (int i = 0; i < s.length; i++) {
if(i == 0){
ds = new Children( s[i].trim().split(":")[1], new ArrayList<>());
}else{
String[] ss = s[i].trim().split(":");
// 创建班级
Children bj = new Children(ss[0],new ArrayList<>());
// 创建班级学生集合
ArrayList stus = (ArrayList) bj.getChildren();
String[] sss = ss[1].split("、");
for (int j = 0; j < sss.length; j++) {
stus.add(new Children(sss[j]));
}
bj.setChildren(stus);
ds.getChildren().add(bj);
}
}
System.out.println(ds);
}
}
api接口测试
贴出Github的代码签入记录
遇到的困难及解决办法
由于疫情期间结对编程困难,我们采用TeamViewer远程控制和QQ演示来实现线上结对编程。
评价你的队友
DCW:
在这次作业中,我主要负责后台的编写,md编写的。MYK负责编写前端,UI设计,项目流程图设计等等。
MYK:
在本次结对编程中我负责前端界面的编写,DCW负责后端的编写,整个过程充分的认识到自己的知识量没有DCW的多,因为我忘记ajax的写法了,在写ajax的post请求中DCW解决了问题,才最终完成代码编写。其中的layui框架还是DCW告诉我用的。
Ps:此次作业通过远程连接共用一台PC完成