其他分享
首页 > 其他分享> > 结对项目-最长单词链

结对项目-最长单词链

作者:互联网

项目 内容
所属课程 2019春季计算机学院软件工程(任健)
所属作业 结对项目-最长单词链
课程目标 理解软件工程的作用和重要性,提升工程能力,团队协作能力
作业目标 实战双人结对编程

1 GitHub项目地址

https://github.com/shewhowasborngood/wordChain/invitations

2 & 14 PSP

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
· Estimate · 估计这个任务需要多少时间 20 35
Development 开发
· Analysis · 需求分析(包括学习新技术) 360 450
· Design Spec · 生成设计文档 40 0
· Design Review · 设计复审(和同事审核设计文档) 30 0
· Coding Standard · 代码规范(为目前的开发制定合适的规范) 30 30
· Design · 具体设计 100 150
· Coding · 具体编码 400 660
· Code Review · 代码复审 60 90
· Test · 测试(自我测试,修改代码。提交修改) 300 500
Reporting 报告
· Test Report · 测试报告 100 70
· Size Measurement · 计算工作量 20 30
· Postmortem & Process Improvement Plan · 事后总结,并提出过程改进计划 15 0
合计 1100 2015

3 接口设计方法

4 计算模块接口的设计与实现过程

5 UML

6 计算模块接口部分的性能改进

7 Design by Contract & Code Contract

函数调用者应该保证传入函数的参数是符合函数的要求,如果不符合函数要求,函数将拒绝继续执行。
如果按照契约式编程的思想编写代码,就要求我们写函数时检查函数参数。有时候是简单的判断某个参
数不能为空,或者数值不能小于0。如果在项目中全面应用契约式编程,则应该有一个“契约框架”帮我们
来做这些事情。
所谓契约与我们通常所说的商业契约很相似,有以下几个特点:

  1. 契约关系的双方是平等的,对整个bussiness的顺利进行负有共同责任,没有哪一方可以只享有权利
    而不承担义务。
  2. 契约关系经常是相互的,权利和义务之间往往是互相捆绑在一起的;
  3. 执行契约的义务在我,而核查契约的权力在对方;
  4. 我的义务保障的是你的利益,而你的义务保障的是我的利益;

一般认为在模块中检查错误状况并且上报,是模块本身的义务:一旦条件不满足,我方(义务方)必须
负责以合适手法处理这尴尬局面,或者返回错误值,或者抛出异常。而在契约体制下,对于契约的检查并
非义务,实际上是在履行权利:如果条件不满足,那么错误在对方而不在我,我可以立刻“撕毁合同”,罢
工了事,无需做任何多余动作。这无疑可以大大简化程序库和组件库的开发。
​### 8 单元测试

9 异常处理

​ 在不允许出现环情况下出现了环,报错退出

​ 命令行参数不符合规定的,不响应

​ 在命令行输入-h -t时,若后面出现的不是单个字母,默认读首字母

​ 文件无法打开时,报错退出

10 命令行模块设计

​ 直接在main函数里实现,对每个命令行参数进行判断,并对应不同处理

11 命令行模块与计算模块对接

​ 通过传参的方式,在计算模块中把对应参数传递进去

12 结对过程

13 结对编程优缺点

标签:结对,子链,单词,模块,契约,设计,最长
来源: https://www.cnblogs.com/wangchao-0511/p/10540465.html