首页 > 其他分享 >线性规划求解软件开发的PSP数据统计

线性规划求解软件开发的PSP数据统计

时间:2024-10-24 16:32:37浏览次数:1  
标签:界面 软件开发 求解 线性规划 GUI 测试 PSP 代码

PSP 报告

1. 计划 (Planning)

估算:

本项目的主要目标是实现线性规划问题的优化模型,并通过 GUI 界面简化用户操作。根据任务复杂度,估算开发工作量约为 40 小时。

2. 开发 (Development)

2.1 需求分析 (Analysis)

在项目中,需求包括以下几点:

  • 通过 C++ 实现线性规划问题的优化模型。
  • 支持两种调用方式:直接在 C++ 代码中使用模型,以及通过用户友好的 GUI 界面调用模型。
  • 支持加载 CSV 文件作为输入。
  • 实现多种求解算法(如单纯形法),并将在未来支持内点法等其它算法。

2.2 生成设计文档 (Design Spec)

项目的设计文档通过 README 文件详细说明了系统架构、目录结构、调用方法以及未来的扩展计划。设计文档涵盖了模型类、求解器类、矩阵操作类以及 GUI 界面的代码文件组织。

2.3 设计复审 (Design Review)

设计方案已经过复审,确保了代码结构清晰、模块化、易于扩展。考虑到未来具有添加新求解方法的需求,设计了模块化架构。

2.4 代码规范 (Coding Standard)

项目采用 C++ 编写,遵循标准的 C++ 代码规范,如命名规则、注释规范和模块化设计。注释使用英文,保证代码的可读性和国际化。

2.5 详细设计 (Design)

详细设计包括:

  • Matrix 类:实现了矩阵相关的运算操作。
  • LpVariable / Expression 类:定义了线性规划的变量与变量组成的表达式,便于线性规划问题的建立。
  • LpProblem 类:管理线性规划问题的变量和约束。
  • SimplexAlgorithm 类:实现了单纯形法求解算法。
  • GUI 界面:实现了用户交互,支持问题类型选择、方法选择、文件输入等功能。
  • 未来扩展:保留了扩展接口以支持内点法等新算法。

2.6 具体编码 (Coding)

具体编码任务包括:

  • 实现线性规划问题模型的类和方法。
  • 实现单纯形法的求解器。
  • 完成 GUI 界面的交互设计和功能开发。
  • 提供 CSV 文件导入功能,供用户选择文件进行求解。

2.7 代码复审 (Code Review)

代码已经过复审,主要关注点为:

  • 算法的正确性和效率。
  • GUI 界面操作的简洁性与用户体验。
  • 代码的模块化与可扩展性。

2.8 测试 (Test)

编写了多个测试用例,包括:

  • 测试各个类模块的正确性。
  • 测试线性规划问题求解的正确性。
  • 测试 GUI 界面的功能完整性和文件导入正确性。
  • 自测时发现并修复了少量界面显示和算法边界条件的问题。

3. 记录用时 (Record Time Spent)

  • 需求分析与设计:2 小时
  • 代码编写:30 小时
  • 测试与调试:10 小时
  • 文档编写与复审:4 小时

4. 测试报告 (Test Report)

项目通过了功能测试,主要测试内容包括:

  • 求解器的正确性测试。
  • GUI 界面的交互流程测试。
  • CSV 文件导入的文件格式兼容性测试。

5. 计算工作量 (Size Measurement)

  • 代码行数:约 2000 行。
  • GUI 界面设计:包含 4 个主要交互按键,支持不同问题类型的选择。

6. 事后总结 (Postmortem)

项目总体完成情况良好,达到了预期的功能目标。通过 GUI 界面简化了复杂的线性规划问题求解过程,未来计划继续扩展内点法求解功能。此外,在实际测试过程中发现了一些细节问题,例如 GUI 界面与算法模块的接口部分还可以进一步优化。

7. 提出过程改进计划 (Process Improvement Plan)

  • 在后续开发中,可以更频繁地进行小规模的代码复审,提前发现潜在问题。
  • 提高测试覆盖率,确保不同输入场景下的稳定性。
  • 将不同求解算法的实现模块化,以便未来能够快速添加更多算法。

标签:界面,软件开发,求解,线性规划,GUI,测试,PSP,代码
From: https://www.cnblogs.com/QYsaltyfish/p/18499870

相关文章

  • 探索现代软件开发中的持续集成与持续交付(CI/CD)实践
    探索现代软件开发中的持续集成与持续交付(CI/CD)实践随着软件开发的飞速进步,现代开发团队已经从传统的开发模式向更加自动化和灵活的开发流程转变。持续集成(CI)与持续交付(CD)成为当下主流的开发模式。这些实践通过自动化的构建、测试和发布流程,使开发团队能够更高效地交付......
  • 【旧文重发】MATLAB 通过函数封装一劳永逸地解决线性规划与运输问题的linprog的标准化
    这篇随笔原本是我上实验课时候的笔记,2023年7月曾经在CSDN平台上发布过。今天恰好有朋友跟我问起MATLAB自带的求解器输入很不直观的问题,我打开这个文章发给他的时候发现自己一年前写的LaTeX公式依托答辩,所以重打了一遍。再加上由于CSDN平台的持续摆烂,终于是用不下去......
  • 工业一体机为软件开发商提供稳定可靠的硬件平台
    在当今数字化、智能化的工业时代,软件在工业生产和管理中的作用日益凸显。而软件的高效运行离不开稳定可靠的硬件平台,工业一体机正是这样一个为软件开发商提供坚实支撑的关键设备。工业一体机的铝合金工艺和无风扇设计为软件运行创造了良好的散热环境。在工业场景中,设备往往需......
  • 关于软件开发中UI相关的问题
    因为个人的使用习惯,我现在经常是笔记本+显示器的使用方式。然后家里用的是27寸的4K显示器,显示器的缩放比例一般是设置成150%。使用的过程中发现很多的软件,在UI显示上都会出现一些问题。主要是两点:1、多屏/横竖屏。一些软件在有多个显示屏,特别是几个显示屏的分辨率不一样,或者有横......
  • 电动汽车嵌入式软件开发过程中的难题有哪些?
    我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。无......
  • "物品复活"个人PSP统计
    Planning需求:编写一个使用GUI的物品复活程序,要求实现添加物品,查找物品,删除物品,显示物品信息的功能时间成本和依赖:学习GUI编程方法预计2h,工程开发预计5h,开发总结预计1h,总计8hDevelopmentAnalysis:要求设计程序实现添加物品,查找物品,删除物品,显示物品信息四类功能,并通过GUI实现界......
  • 华为云软件开发生产线(CodeArts)9月新功能特性
    华为云软件开发生产线CodeArts是一站式、全流程、安全可信的云原生DevSecOps平台,覆盖需求、开发、测试、部署、运维等软件交付全生命周期环节,为开发者打造全云化研发体验。华为云CodeArts目前已上线28款研发工具,服务于300多万开发者,应用于10多个行业,覆盖开发全场景。2024年9......
  • “物品复活”软件开发 PSP数据统计
    计划Planning需求:设计一个功能相对完整、页面相对美观的简单程序。对软件性能不做过高要求。时间成本:我在此之前并未做过软件的开发,进度可能会比较慢,因此希望在作业截止前完成就行。依赖关系:先设计用户数据库、物品信息数据库再进行软件的开发似乎更为合理,但我也没有数......
  • 153道敏捷软件开发面试八股文(答案、分析和深入提问)整理
    1.您如何确保所有部门都遵循敏捷的思维方式和方法?回答确保所有部门都遵循敏捷的思维方式和方法,可以采取以下几种策略:培养敏捷文化:教育与培训:为团队和部门提供敏捷培训,确保每个成员了解敏捷原则和实践。分享成功案例:定期分享成功的敏捷项目案例,激励其他部门效仿。领......
  • GoFly框架可以快速且更容易的完成信息及软件开发相关专业同学的毕业论文设计
    前言随着gofly开始开发框架的不断宣传,这段时间有很多软件开发相关专业同学问我们框架是否可以拿来做毕业论文设计技术框架。借助本文给正在选择毕业设计技术或者为将来毕业设计准备的同学介绍一下GoFly框架如何用于毕业设计。介绍之前可以肯定的回答,GoFly框架是完全可以用于毕......