• 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%。
  • 相关阅读:
    Isolation Forest原理总结
    python 黑客书籍 ——扫描+暴力破解
    DNS解析过程
    DNS污染——domain name的解析被劫持了返回无效的ip
    leetcode 427. Construct Quad Tree
    todo
    leetcode 172. Factorial Trailing Zeroes
    leetcode 26. Remove Duplicates from Sorted Array
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(3月3日)
    北京Uber优步司机奖励政策(3月2日)
  • 原文地址:https://www.cnblogs.com/qq952693358/p/7732893.html
Copyright © 2020-2023  润新知