团队作业(三):确定分工

一、阅读目录:

  1. 修改完善上周提交的需求规格说明书
  2. 团队的编码规范
  3. 使用Powerdesigner绘制ER图
  4. 进行项目的后端架构设计。
  5. 团队分工
  6. 本次分工及工作量比例
  7. 参考资料汇总

二、修改完善上周提交的需求规格说明书

  1. 上次制定的需求规格说明书中指定的部分内容实现起来较为困难,经过修改完善,我们删除了部分模块。

  2. 修改产品功能和验收标准、细化界面描述、完善产品说明

三、讨论制定团队的编码规范

  1. 代码规范:包括代码风格规范和代码设计规范
  2. 代码风格规范代码风格的原则是:简单,易读,无二义性。采取何种代码规范要看这种代码规范能否让程序员更好的理解和维护程序。

代码风格规范具体包括以下几点:

  • 缩进。推荐使用四个空格进行缩进,最好在编辑器中将Tab键定义为四个空格,这样可以避免Tab键在不同情况下显示不同的问题,并使程序有良好的阅读体验。
  • 行宽。最好对行宽作出限制,按照现代普遍使用的屏幕尺寸,可以考虑将行宽限制为100个字符。
  • 括号。在复杂的表达式中,使用括号表示逻辑优先级。
  • 断行与空白的{}行。推荐每个{和}都单独占一行。
  • 分行。不要把多条语句放在一行上,更严格的说不要把多个变量定义在一行上。
  • 命名。命名要注意几条关键原则,简单来说就是确保包含必要信息,避免过多的描述。
  • 下划线。下划线用来分隔变量名字中的作用于标注和变量的语义。
  • 大小写。通用的做法是,类型、类、函数名多有单词的第一个字母都大写,变量名第一个单词全部小写,其他单词首字母大写。
  • 注释。复杂的注释放在函数头,不做不必要的注释,注释中应只使用ASCII字符。
  1. 代码设计规范代码设计规范不只是程序书写格式的问题,而且牵涉到程序的设计、模块之间的关系、设计模式等方方面面。这里主要讨论通用的原则。
  • 函数。关于函数,最重要的一条原则就是:只做一件事,并且要做好。
  • goto。函数最好有单一的出口,为了达到这一目的,可以使用goto。
  • 错误处理。首先要验证参数的正确性,当认为一件事肯定如何时,可以使用断言。
  • 处理c++中的类。使用类来封装面向对象的概念和多态;避免传递类型实体的值,而用指针传递,也就是说简单的数据类型没有必要用类来实现;对于有显示构造和析构的类,不要创建全局的实体。
  • 类还是结构体。如果只是数据的封装,用结构体即可。
  • 按照这样的顺序来说明类中的成员:public、protected、private。
  • 数据成员。数据类型的成员用m_name说明;不使用公共的数据成员,要用inline访问函数,这样可兼顾封装和效率。
  • 虚函数。使用虚函数来实现多态;尽在很有必要时使用虚函数;如果一个类型要实现多态,在基类中的析构函数应该是虚函数。
  • 构造函数。不要再构造函数中做复杂的操作,简单初始化数据称成员即可;构造函数不应返回错误,把可能出错的操作放到HrInit()或FInite()中。
  • 析构函数。把所有的清理工作放在析构函数中;同时析构函数也不应出错。
  • new和delete。实现自己的new/delete可以方便地加上自己的跟踪和管理机制;检查new的返回值;释放指针时不用检查NULL。
  • 运算符。运算符不要做标准语义外的任何操作;运算符的实现应非常高效,如果操作复杂,定义一个单独的函数,如果拿不定主意,用成员函数而不要用运算符。
  • 异常。异常不能跨过DLL或进程的边界来传递信息。
  • 类型继承。仅在必要时使用类型继承;用const标注只读的参数;用const标注不改变数据的函数。
  1. 代码复审

①形式:自我复审、同伴复审、团队复审
②目的:找出代码错误、发现逻辑错误、发现算法错误、发现潜在的错误和回归性错误、发现可能需要改进的地方、传授经验
③代码复审后把记录整理出来:
(1)更正明显的错误
(2)记录无法很快更正的错误
(3)把所有的错误记在自己的一个“我常犯的错误”表中,作为以后自我复审的第一步

  1. 结对编程

①角色:
驾驶员:控制键盘输入
领航员:起到领航、提醒的作用
②好处:

  • 在开发层次,可以提供更好的设计质量和代码质量,两人合作解决问题的能力更强。
  • 对开发人员,带来更多的信心,高质量的产出带来更高的满足感。
  • 企业管理层次上,有效地交流,相互学习和传递经验,分享知识,取得更高的投入产出比。

四、使用Powerdesigner绘制ER图

团队作业(三):确定分工_代码风格

五、进行项目的后端架构设计。

团队作业(三):确定分工_析构函数_02

六、团队分工

  1. 利用象限法确定各个核心需求的优先级,依据需求优先级确定团队Alpha 版本需要实现的功能,在博客中叙述并给出相应的WBS图。
    团队作业(三):确定分工_代码风格_03

团队作业(三):确定分工_析构函数_04
2. 在团队管理软件中(比如Github的Issue,Leangoo等)将各个叶子结点的功能加入,并确定每个子功能的工作量,
3. 团队各个成员(用学号代替姓名)认领的工作

七、本次分工及工作比例

主编写人及工作负责人:施羿,王予涵,雷清逸,商苏赫,徐汇仁