前言:这次作业对于一个没有任何基础的我来说,我用到什么学什么,我之前和王超学姐谈过,我一点基础都没有,我该怎么办,学姐告诉我,就从项目入手,用到什么学什么,用项目来驱动自制力差的我来学习。我很重视这次作业,我尽力去实现那些功能,但是还有一些没有做出来,一些参数的限制,我还没学会,我会把这个项目做完的,希望老师同学们监督。我现在把我这几天做的发表出来吧,之后的我一定会补上。
一、项目
源代码地址:https://github.com/cy0325/Problem-software.git
结对成员: 张洪宇2016012092
谢月月2016012075
二、PSP展示
PSP |
任务内容 |
计划时间(min) |
Planning |
计划 |
60 |
Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
45 |
Development |
开发 |
1500 |
Test |
测试 |
120 |
Algorithm Optimization |
算法优化 |
180 |
Interface Design |
接口设计 |
150 |
Coding Standard |
代码规范 |
300 |
Design |
具体设计 |
120 |
Coding |
具体编码 |
450 |
Code Review |
代码复审 |
90 |
Test |
测试 |
60 |
Reporting |
报告 |
180 |
Test Report |
测试报告 |
120 |
Size Measurement |
计算工作量 |
30 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
120
|
三、 相关概念
1)关于Information Hiding:信息隐藏
对于面向对象的程序设计而言,信息隐藏是一种重要的软件开发手段,它与对象的封装与模块化相关。信息隐藏是开发整体程序结构时使用的法则,将每个程序的隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。把信息隐蔽用作模块化系统的一个设计标准,在后面项目调试过程中,编程人员的任务量能够得以减轻,提高代码可读性。
2)Interface Design:接口设计
设计接口的时候,我们也有讨论接口该如何设计会更加合理。接口在设计的时候应当尽量的详细划分,使得每一个接口中方法应该尽量少,将功能实现在接口中,所以我们决定讲生成题目与计算功能分开,分成两个接口。在层与层之间调用接口,类之间通过接口访问。
3)Loose Coupling:降低耦合
模块与模块之间总会存在一些“联系”,这就会提升我们维护过程中的复杂度和任务量。松耦合通过接口的方式实现各个模块之间的调用,可以使模块在发生改变时,其他的部分可以保持不变,减少模块间的相互“联系”,降低耦合。
四、计算模块接口的设计与实现过程
(1)实体类:一个产生随机数,两个产生计算符(计算符写两个,有乘除和没有)。传入最小值最大值。
(2)拼接类:将随机数和计算符进行拼接,循环产生很多道题。传入题目数量。传入接口的o运算符个数参数。
(3)括号类,给出的题加括号,给接口调用。
(4)IO类,用来输出到result.txt。
(5)总体类与接口:把各个类进行调用与完成他们的方法。传入是否乘除,是否括号来看调用哪些类的方法。
五、计算模块接口部分的性能改进
六、
我们用的是网页端来展示界面模块,所以主要是面模块设计。
九、界面模块与计算模块的对接
十、描述结对的过程
本次作业,我们两个虽然会的不多,但是也确实努力去学习了,我们也有明确分工,我做前台,我的伙伴做后台,虽然测试那部分还没有做完,但是我们一定会补上的,我想大家都不会拒绝一个努力的人,越努力越幸运,我们也通过这次努力明白了代码规范的重要性,她是女生寝室,我是男生寝室,我的代码就是比较乱,她看了无从下手。以后会注意这个的。我们今天拍了照片,在她的手机里,但是由于她的手机丢了,我们之后这个也会补上。希望老师体谅。
结对编程优点: 1.结对编程就是两个程序员互相审查的过程,在编程过程中能够尽早发现问题并解决问题,提高了编程效率。
2.编程过程中遇到困难,两个人相互鼓励,极大的提高了编程的信心。
3.两个人在编程过程中不断磨合,相互学习,使双方的代码能力得到了一定程度上的增强,同时也有了合作意识。
张洪宇优点:自学能力较强,积极
缺点:自制力太差,
谢月月优点:耐心,勤奋
缺点:不太自信
PSP |
任务内容 |
实际时间(min) |
Planning |
计划 |
75 |
Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
45 |
Development |
开发 |
未完 |
Test |
测试 |
未完 |
Algorithm Optimization |
算法优化 |
未完 |
Interface Design |
接口设计 |
180 |
Coding Standard |
代码规范 |
270 |
Design |
具体设计 |
120 |
Coding |
具体编码 |
未完 |
Code Review |
代码复审 |
未完 |
Test |
测试 |
未完 |
Reporting |
报告 |
未完 |
Test Report |
测试报告 |
120 |
Size Measurement |
计算工作量 |
30 |
Postmortem & Process Improvement Plan |
事后总结, 并提出过程改进计划 |
120
|
我们这个作业还没有做完,之后我还会补发一篇博客,完整版的描述这次作业。