第五次作业——python效能分析与几个问题(个人作业)

时间:2023-03-08 22:49:06

第五次作业——效能分析与几个问题(个人作业)

前言

阅读了大家对于本课程的目标和规划之后,想必很多同学都跃跃欲试,迫不及待想要提高自身实践能力,那么就从第一个个人项目开始吧,题目要求见下。

阅读

阅读《构建之法》第一章至第三章的内容,并在下方作业里体现出阅读后的成果。特别是第2章中的效能分析及个人软件开发流程(PSP)。

参考文章:

题目描述

可以选择以下题目(或者自主选择题目和语言,提交材料不变):

题目要求:

  • 能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
  • 除了整数外,还要支持真分数的四则运算

工具清单

测试须知

要求与说明

  • 【项目设计】分析并理解题目要求,独立完成整个项目,并将遵循上述测试须知中规范的最新项目发布在Github上。
  • 【项目测试】使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标。
  • 【性能优化】完成项目的首个版本之后,使用性能分析工具找出代码中的性能瓶颈并进行改进。
  • 【源代码管理】在项目实践过程中需要使用Github管理源代码,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。
  • 【博客发布】按照要求发布博客,利用在构建之法中学习到的相关内容,结合个人项目的实践经历,撰写解决项目的心路历程与收获。博客与Github项目明显不符的作业将取消作业成绩。

博文规范

将博文发布到个人博客上,并提交到班级博客群,word留档案,且需包含以下8个内容。(10分)

  • 在文章开头给出Github项目地址。(0.5‘)
  • 在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间。(0.5‘)
  • 解题思路描述。即刚开始拿到题目后,如何思考,如何找资料的心路历程。(0.5‘)
  • 设计实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?(2‘)
  • 代码说明。展示出项目关键代码,并解释思路与注释说明。(2‘)
  • 测试运行。程序必须是可运行的,展示出程序运行的截图。PS:如果有扩展需求或者更高级的需求,请秀出来,有额外加分。(2‘)
  • 记录在改进程序性能上所花费的时间,描述你改进的思路,并展示一张性能分析图,并展示你程序中消耗最大的函数。PS:如果采用Visual Studio Community 2015开发,使用C++或者C#语言实现,VS 2015的性能分析工具可自动生成。(2‘)
  • 在你实现完程序之后,在下述PSP表格记录下你在程序的各个模块上实际花费的时间。(0.5‘)

特别注意:

  • 按时间完成并提交——正常评分
  • 晚交一周以内——0分
  • 晚交一周以上或不交——倒扣本次作业分数

附加题(2分)

助教写了一个四则运算的测试程序 ,
目的是测试同学的生成的四则运算程序是否符合要求, 目前正在内测阶段,测试程序是RESTful形式发布的:

接口地址

参数说明

如果:

  1. 参与内测,测试的方式有很多种,同学的程序可以直接通过RESTful方式来访问测试程序(推荐),
    也可以通过执行自己的程序来对比测试程序执行的结果,无论通过哪种方式,需要至少提出测试程序的一个bug。
  2. bug需要直接在这里提issue,同时在博客中附上issue的链接。

可以获得2分的附加分。

参考链接

附:PSP 2.1表格

psp2.1 Personal Software Process Stages Time(%)student Time(%)SDE
Planning 计划
Estimate 估计这个任务需要多少时间
Development 开发
Analysis 需求分析
Design Spec 生成设计文档
Design Review 设计复审(和同事审核设计文档)
Coding Standerd 代码规范(为目前的开发制定合适的规范)
Design 具体设计
Coding 具体编码
Code Review 代码复审
Text 测试(自测,修改代码,提交修改)
Reporting 报告
Text Report 测试报告
Size Measurement 计算工作量
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划