您的位置:首页 > 其它

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

2017-10-25 22:43 363 查看

题目:系统设计

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%。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: