17秋 软件工程 团队第四次作业 系统设计

题目:系统设计

17秋 软件工程 团队第四次作业 系统设计

1.需求规格说明书的修改与完善

修改后的需求规格说明书:Requirements-Specification

修改问题:

  • 1.将功能约束的图片转为Markdown表格;
  • 2.新增管理员后台功能;
  • 3.修改语法错误等。

2.团队的编码规范

详见:project-specification

其中,Java的编码规范遵守Alibaba的编码规范,C++、Python的编码规范遵守Google的编码规范。

我们使用了自动化工具,如cpplint.py等对代码格式进行检查,要求组员在提交代码时需要先通过自动化工具的检查。

此外,我们要求各个组员在对项目进行commit、RP、修改文档时,遵守关于如何更好地使用Github的一些建议中所总结的规范与建议。

并在编码时遵守以下额外约束:

  • 缩进为4个空格;
  • 在遇到复杂表达式时,用括号表明逻辑优先级;
  • 注释要求体现:1.代码模块的作用;2.这样做的原因;3.特别需要注意的地方;
  • 变量名遵守驼峰命名法,形如xmatchCodeSpecification;
  • 代码逻辑分段,每一个代码段(函数方法、类等)都需要有注释;
  • 对于左括号是否换行没有具体要求,但是同一文件内部的左括号需要保持统一。

有如下理由:

  • 保证代码简洁明了,具有易读性,无二义性;
  • 采用互联网公司成熟的编码规范使项目更加规范;
  • 确保团队开发时的效率;
  • 合理、适当的注释能够避免未来许多额外的交接问题。

3.Powerdesigner

数据库设计部门分为六个表和八个关系,表包含:部门管理员、部门、活动、排班表、部员(学生)。

部门管理员发布活动和通知、管理部门、生成排班表。学生参加部门、活动、获取排班信息和通知。

4.架构设计

4.1.架构定义

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计

4.2.整体描述

4.2.1 MVC设计模式

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

4.2.2 框架

4.2.2.1 微服务框架: SpringBoot

SpringBoot用于编写 Restful 风格的API供APP端和WEB端统一调用,其自动配置特性适用于快速开发,属于微服务框架。

特点:

1.创建独立的spring应用。
2.嵌入Tomcat, Jetty Undertow 而且不需要部署他们。
3.提供的“starters”poms来简化Maven配置
4.尽可能自动配置spring应用。
5.提供生产指标,健壮检查和外部化配置
6.绝对没有代码生成和XML配置要求

4.2.2.2 ORM框架: Hibernate

特点:

  • 对象/关系数据库映射(ORM)

它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想

  • 透明持久化(persistent)

带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,这个对象没有实现第三方框架或者接口,唯一特殊的是他们正与(仅仅一个)Session相关联。一旦这个Session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。(例如,用作跟表示层打交道的数据传输对象。)

  • 事务Transaction(org.hibernate.Transaction)

应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。某些情况下,一个Session之内可能包含多个Transaction对象。尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的。

  • 它没有侵入性,即所谓的轻量级框架
  • 移植性好
  • 缓存机制,提供一级缓存和二级缓存
  • 简洁的HQL编程

4.2.2.3 数据库:Mysql

  • 免费、快速、多线程、多用户的SQL数据库服务器
  • 核心程序采用完全的多线程编程
  • 系统兼容性良好
  • 支持JDBC,易与Hibernate集成
  • 拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性
  • 强大的查询功能

4.2.2.4 服务器容器:Tomcat 9

  • 免费
  • 性能稳定
  • 技术先进,支持最新标准(SUN的专家经常和TOMCAT的开发人员在一起混)
  • 占用的系统资源小,扩展性好,且支持负载平衡与邮件服务
  • 跨平台

3.架构图

5.确定团队分工

5.1.象限法及WBS图

Alpha版本功能简述:

  • 部员模块
    • 账号管理:账户登录,修改信息以及绑定手机
    • 提交入部申请,查看活动通知
    • 查看排班,请假/换班以及活动签到
  • 管理员模块
    • 账号管理:账户登录,修改信息
    • 新建/解散部门,一键排班
    • 发布通知,发送短信/邮件
  • 超级管理员模块
    • 登录功能
    • 审批活动申请以及新建部门申请

5.2.Issues分配后的截图

其中的一个issue:功能实现流程

5.3.组员及其认领工作

  • 344:明确团队分工、架构设计、需求规格说明书修订、前端开发;
  • 336:ER图设计、文档撰写;
  • 324:需求规格说明书修订;
  • 339:通过象限法确定项目优先级,制作WBS图;
  • 340:UI设计;
  • 209:后端架构设计、项目规范制定、需求规格说明书修订;
  • 333:后端架构设计;
  • 433:UI设计。

5.4.TODOList

登录与注册 1 day

  • 页面编写 : 1 hour
  • 部门管理员注册与绑定手机: 2 hour
  • 用户登录/管理员登录: 0.5hour
  • 忘记密码功能: 0.5 hour

部门管理人员基础信息 : 1 day

  • 页面编写: 1.5 hour
  • 新建部门与数据交互 : 2 hour
  • 部门数据获取与修改 : 1 hour
  • 删除/解散部门 : 0.5 hour
  • 修改密码: 0.

部员基础信息: 1 day

  • 页面编写 : 1 hour
  • 信息完善 : 0.4 hour
  • 绑定手机 : 0.5 hour
  • 修改密码 : 0.2 hour

部员信息列表 1 day

  • 页面实现: 1.5 hour
  • 列表信息获取与显示: 1 hour
  • 页面跳转:0.5 hour

部员信息详情: 1 day

  • 页面编写: 1 hour
  • 信息获取与显示: 0.5 hour
  • 拨打手机与发送短信 : 1 hour
  • 删除部员: 0.5 hour

入部申请管理: 1 day

  • 页面编写: 1 hour
  • 部员提交申请 : 1 hour
  • 部门管理人员查看列表: 1 hour
  • 部门管理人员审批: 1 hour

通知信息管理(管理员) 2 day

  • 页面编写: 2 hour
  • 通知信息查看及检索: 1 hour
  • 发布校内通知: 1 hour
  • 发布部门通知: 1hour

通知信息管理(部员) 0.5 day

  • 页面编写: 1 hour
  • 通知信息查看及检索: 1 hour

部门活动管理 3 day

  • 页面编写: 1.5 hour
  • 活动添加/发布: 1.5 hour
  • 查看活动报名信息: 1 hour
  • 活动相册: 3 hour
  • 查看历史活动 : 0.5 hour
  • 活动签到: 2.5 hour

部员活动管理 1 day

  • 活动列表: 1 hour
  • 活动详情: 1 hour
  • 参加活动: 1 hour
  • 活动签到: 1.5 hour

短信/邮件群发 1.5 day

  • 页面编写: 1.5 hour
  • 自定义短信模板: 1.5 hour
  • 选择发送对象和发送短信: 2 hour
  • 发送邮件: 1.5 hour
  • 群发记录: 1 hour

排班 1.5 day

  • 页面编写: 1 hour
  • 查看已获取成员课表数: 2 hour
  • 一键排班: 1.5 hour
  • 换班: 1 hour

5.5.燃尽图

6.分工和工作量比例

  • 世强:20%;
  • 媛媛:15%;
  • 港晨:15%;
  • 陈翔:15%;
  • 杰麟:10%;
  • 伟航:10%;
  • 诗尧:8%;
  • 树民:7%。
posted @ 2017-10-25 22:43  Wasdns  阅读(502)  评论(0编辑  收藏  举报