201871030124-王超怀-软件工程个人项目
项目 | 内容 |
---|---|
课程班级博客 | https://edu.cnblogs.com/campus/xbsf/2018CST |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14552393.html |
我的课程学习目标 | (1)掌握软件项目个人开发流程。(2)掌握Github发布软件项目的操作方法。 |
这个作业在哪些方面帮助我实现学习目标 | PSP的使用和Github发布软件的操作方法 |
项目Github的仓库链接地址 | 我的Github仓库 |
任务一
阅读教师博客“常用源代码管理工具与开发工具”内容要求,点评班级博客中已提交相关至少3份作业。
作业点评链接:
任务二
- 详细阅读《构建之法》第1章、第2章,掌握PSP流程
| PSP2.1 | |
| ---- | ---- | ---- |
| Planning | 计划 |
| Estimate| 估计这个任务需要花费的时间 |
| Development | 开发|
| Analysis | 分析需求|
| Design Spec | 生成设计文档|
|Design Review | 设计复审 |
|Coding Standard | 代码规范|
| Design | 具体设计|
| Coding | 具体编码|
| Code Review | 代码复审|
| Test | 测试(包括自我测试,修改代码,提交修改)|
|Record Time Spent |记录时间花费|
|Test Report | 测试报告|
|Size Measurement | 计算工作量|
|Postmortem | 事后总结|
|Process Improvement Plan| 提出过程改进计划|
此次报告的PSP
PSP | 任务内容 | 计划完成时间(min) | 实际完成时间(min) |
---|---|---|---|
Planning | Planning | 10 | 8 |
Estimate | 任务规划 | 15 | 20 |
Development | Development | 1K | ·· |
Analysist | 需求分析 | 30 | 60 |
Design Spec | Design Spec | 80 | ··· |
Test | 测试 | 30 | ···· |
Reporting | 报告 | 120 | 150 |
PSP特点
-
不局限于某一种软件技术 (如编程语言), 而是着眼于软件开发的流程, 这样不同应用的工程师可以互相比较。
-
不依赖于考试, 而主要靠工程师自己收集数据, 然后统计提高。
-
在小型,初创的团队中, 高质量的项目需求很难找到,这意味着给程序员的输入质量不高,在这种情况下, 程序员的输出 (程序/软件) 往往质量不高, 然而这并不能全部由程序员负责。
-
PSP 依赖于数据
- 需要工程师输入数据, 记录工程师的各项活动, 这本身就需要不小的代价。
- 如果数据不准确或有遗失, 怎么办? 让工程师编造一些?
- 如果一些数据不利于工程师本人 (例如: 花很多时间修改缺陷), 我们怎么能保证工程师能如实地记录这些数据呢?
- PSP的目的是记录工程师如何实现需求的效率, 而不是记录顾客对产品的满意度。工程师可能很高效地开发出一个顾客不喜欢的软件, 那这个工程师还是一个优秀的工程师么?
任务三
项目开发背景:背包问题(Knapsack Problem,KP)是NP Complete问题,也是一个经典的组合优化问题,有着广泛而重要的应用背景。{0-1}背包问题({0-1 }Knapsack Problem,{0-1}KP)是最基本的KP问题形式,它的一般描述为:从若干具有价值系数与重量系数的物品(或项)中,选择若干个装入一个具有载重限制的背包,如何选择才能使装入物品的重量系数之和在不超过背包载重前提下价值系数之和达到最大?
D{0-1} KP 是经典{ 0-1}背包问题的一个拓展形式,用以对实际商业活动中折扣销售、捆绑销售等现象进行最优化求解,达到获利最大化。D{0-1}KP数据集由一组项集组成,每个项集有3项物品可供背包装入选择,其中第三项价值是前两项之和,第三项的重量小于其他两项之和,算法求解过程中,如果选择了某个项集,则需要确定选择项集的哪个物品,每个项集的三个项中至多有一个可以被选择装入背包,D{0-1} KP问题要求计算在不超过背包载重量 的条件下,从给定的一组项集中选择满足要求装入背包的项,使得装入背包所有项的价值系数之和达到最大;D{0-1}KP instances数据集是研究D{0-1}背包问题时,用于评测和观察设计算法性能的标准数据集;动态规划算法、回溯算法是求解D{0-1}背包问题的经典算法。查阅相关资料,设计一个采用动态规划算法、回溯算法求解D{0-1}背包问题的程序,程序基本功能要求如下:
1.可正确读入实验数据文件的有效D{0-1}KP数据;
2.能够绘制任意一组D{0-1}KP数据以重量为横轴、价值为纵轴的数据散点图;
3.能够对一组D{0-1}KP数据按项集第三项的价值:重量比进行非递增排序;
4.用户能够自主选择动态规划算法、回溯算法求解指定D{0-1} KP数据的最优解和求解时间(以秒为单位);
5.任意一组D{0-1} KP数据的最优解、求解时间和解向量可保存为txt文件或导出EXCEL文件。
需求分析
- 需要正确读入要求的数据
- 通过散点图更直观得观察测试数据的分布
- 将一组数据按第三项得价值:重量比进行排序
- 通过不同得算法来求解问题
- 最后的结果可以导出到txt文件中
功能设计
- 读入数据文件中得数据
- 将数据绘制成数据散点图
- 能按第三项的价值:重量进行排序
- 可以选择不同的算法
- 结果最后通过txt文件输出
总结
这次实验中我初次了解了PSP,并通过这次设计使用了PSP,通过PSP的规划和实际完成时间的对比,我发现自己对时间的观念不够严谨,同时这次实验是比较难的,我并没有做出结果,也由于编程能力的不足,浪费了好多时间。