团队作业——系统设计(人月神教)

1.需求规格说明书完善

1.1 不足之处修改

  • 修改了目录顺序
  • 增加了一般约束,外部接口需求,功能验收标准
  • 增加了一个服务器(web)的界面以及管理员类

1.2 Github链接

2.编码规范

(以SUN的标准Java代码规范为基础)

2.1包名

  • 使用小写字母如 xxx.settlment。

  • 单词间不要用字符隔开,比如 settlment.jsfutil,而不要settlement.jsf_util。

2.2类名

  • 首字母大写。比如 SupplierService。

2.3方法名

  • 首字母小写,如 addOrder() 。
  • 动词在前,名词在后,如 addOrder()。

2.4域名

  • 静态常量全大写用下划线分割,如
public static find String ORDER_PAID_EVENT = "ORDER_PAID_EVENT";
  • 枚举全大写,用下划线分割,如
public enum Events {
ORDER_PAID,
ORDER_CREATED
}
  • 其他首字母小写,骆驼法则,如:
public String orderName;

2.5局部变量名

  • 参数和局部变量名首字母小写,骆驼法则。尽量不要和域冲突,尽量表达这个变量在方法中的意义。

2.6行宽

  • 行宽度不要超过130。

2.7域格式

  • 每行只能声明一个域。
  • 域的声明用空行隔开。

2.8空格的使用

  • 二元三元运算符两边用一个空格隔开。如下:
a + b = c;
b - d = e;
return a == b ? 1 : 0;
  • 逗号语句后如不还行,紧跟一个空格。如下:
call(a, b, c);

2.9 缩进风格

  • 大括号的开始在代码块开始的下一行,闭合在和代码块同一缩进的行首,例如:
public void compute(String arg) 
{
if (arg.length() > 0) {
System.out.println(arg);
}

2.10 注释规范

  • 注释宜少二精,不宜多而滥,更不能误导
  • 过于详细的注释,对显而易见的代码添加的注释,罗嗦的注释,还不如不写
  • 注释不是用来管理代码版本的,如果有代码不要了,直接删除,svn会有记录的,不要注释掉,否则以后没人知道那段注释掉的代码该不该删除。
  • 较长的代码块要用
/*------ start: ------*/

/*-------- end: -------*/
  • 行内注释。行内注释用 // 写在行尾

2.11善用TODO:

  • 在代码中加入 //TODO: ,大部分的ide都会帮你提示,让你知道你还有什么事没有做。比如:
if (order.isPaid()) {
//TODO: 更新订单
}

3.数据库ER图


注释:

  • Article:文章
  • ArticleNo:文章编号
  • Author:作者
  • Source:来源
  • Title:文章标题
  • Tag1,Tag2,Tag3:文章标签

4.后端架构设计

架构风格:
RESTful
一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
后端框架选用
本项目后端采用Spring
框架,该框架为J2EE框架,选用该框架的原因有如下几点:
Spring是全面的和模块化的。
Spring是用于测试驱动工程的理想的framework。
Hibernate将对数据库的操作转换为对Java对象的操作,从而简化开发。通过修改一个“持久化”对象的属性从而修改数据库表中对应的记录数据。
Hibernate提供线程和进程两个级别的缓存提升应用程序性能。

详细技术说明:
Spring+Hibernate框架
1.实现MC模式(Model&Controller,View交给客户端),使用Mysql数据库和Apache的Tomcat服务器
2.与客户端的数据传送使用JSON格式
3.在异常处理方面,创建独立的异常包和相应的异常类,并将部分需要由客户端处理的异常通过json格式传递相应的规定好的异常码。
4.防止sql注入攻击,采用hibernate的动态参数绑定。

5.分而治之

我们的简阅App主要的功能为阅读,为了优化阅读体验又扩展出很多其他的功能,有的功能是在客户端的,用户可以直观地看到,有的功能是在后台运行的,用户体验是在潜移默化的提高。经过筛选和优先级的选择,我们将项目的 alpha 版本要实现的功能分而治之,逐级向下进行功能的细分,大致结果如下:


功能分为客户端、后台、文档。
客户端:

  • 新用户界面
    • 欢迎
    • 兴趣标签选择
  • 主页
    • 兴趣标签
    • 刷新
    • 主题
      • 字体(字体、字号)
      • 背景颜色
    • 收藏
    • 更多
      • 收藏夹
      • 分享
      • 意见反馈
    • UI 设计

后台:

  • 服务端
    • 寻找文章
    • 服务器搭建
    • 客户端交互
      • 接受意见反馈
      • 推送文章
    • 数据库交互
      • 文章分类
      • 文章存入数据库
      • 从数据库提取文章
  • 数据库
    • 服务器搭建
    • 创建服务器对象
    • 增、删、分类等操作

文档:

  • 代码规范
  • 需求说明书
  • 用户手册
  • 宣传手册

Github Issues 及工作分配

工作安排情况

工作认领

学号 认领任务
310 代码规范拟定,后端架构设计,撰写用户手册
316 需求规格说明书,队内协调,协助服务器设计,精神导师
908 服务器构建维护测试,核心算法支持
308 服务器构建维护测试,核心算法支持
306 代码规范拟定,数据库设计,项目管理推进
309 领袖,代码规范拟定,组织会议,涉猎数据库、后端架构
627 软件UI设计,测试,宣传文案
629 软件UI设计,测试,宣传文案

TODOList

时间 任务 人员
10.23-10.29 初拟代码规范 309,306,310
服务器测试、框架搭建 308,908
初步架构设计 310
需求规格说明书终版 316
UI 设计 627,629
10.30-11.05 UI 设计改进 627,629
架构设计 309,310
测试计划 308,908
数据库设计 310,306,309
11.06-11.16 组织站立式会议 310,306,309
最终编码 全组人员
客户端测试 627,629
服务器端编码 316
11.17-11.19 项目完善 全组人员
用户试用反馈 306,309
测试计划改进 308,908
总结 全组人员
11.20-11.26 组织会议 309
最终测试 全组人员
项目管理推进 316,306
11.27-12.03 正式版本完善 全组人员
撰写用户手册 309,310
12.04-12.10 撰写宣传文案和推广 627,629

燃尽图

jianyueAPP/jianyue

7.队员分工

||||||||||||||
|:--|:--|:--|:--|:--|:--|:--|:--|
|李鸣|王国华|吴君毅|陈裕鹏|黄浩|侯振源|陈晓凯|付逸豪|
|完善需求规格说明书|分而治之|分而治之|数据库ER图|后端架构设计|代码规范|后端架构设计|后端架构设计|
|10%|13%|13%|12%|15%|15%|10%|12%|

posted @ 2017-10-27 21:39  Flame。  阅读(249)  评论(0编辑  收藏  举报