首页 > 其他分享 >开发“你帮我助”软件的体会总结

开发“你帮我助”软件的体会总结

时间:2022-12-30 23:23:26浏览次数:42  
标签:体会 开发软件 综合测试 面向对象 计划 软件 我助 小时

开发“你帮我助”软件的体会总结

这里从两个方面讨论自己开发软件的体会。第一部分会概括自己的初始计划、实际开发与计划之间发生了的不一致、会根据这些不一致进行反思、并会概括自己制定计划的体会。第二部分会讨论自己从哪些方面实现了面向对象方法学的概念,并会讨论自己用面向对象方法的体会。

1. 计划

学了一个学期的软件工程之后,本人的主要收获可以概括成一句话:开发一个软件应该是一个很严格的过程,需要先制定计划,然后严格按照此计划设计并实现软件。Boehm的软件工程基本原理的第一条毕竟是 “用分阶段的生命周期计划严格管理”。考虑到这一点,本人开发 “你帮我助” 软件之前对自己制定了计划,开发的过程中也尽量按照这个计划进行了工作。计划的小总结如下:

2小时:了解需求,建立对象模型
1小时:学习怎么做GUI(之前没有做过)
1小时:总体设计
10小时:编码和单元测试
1小时:综合测试
1小时:写代码注释
3小时:画用例图、顺序图、类图
1小时:写文档
1小时:发布在GitHub上,确认无误
总共:21个小时

上述计划是基于软件工程生命周期的八个阶段建立的,但根据情况做了很大的调整。
开发软件过程中记录了每个阶段的耗时:

阶段 耗时 预测
了解需求,建立对象模型 2小时 2小时
学习怎么做GUI 1小时 1小时
决定怎么保存物品与用户信息 2小时 不在计划中
其余设计 2小时 1小时
编码和单元测试 14小时 10小时
写代码注释 1:30小时 1小时
画用例图,类图 3小时 3小时,但预测包括顺序图
写文档 30分钟 1小时
综合测试 1小时 1小时
发布在GitHub上 30分钟 1小时
画顺序图 30分钟 计划中跟别的图一起画
确认无误 3小时 不在计划中
总共 31小时 21小时

总体设计最终分了两个阶段,第一个阶段是决定并安排怎么把物品信息与用户信息保存在程序之外,第二个阶段是其余设计(设计软件结构)。
把综合测试往后推了很多,因为其与写注释、画图等没有任何关系,且本人当时很累,决定了第二天(睡觉了以后)做测试更合理。
最后还花了一段时间确认软件运行时不出现任何问题,但此过程中发现了当不在文件夹里面包括Excel表格,程序由于命名方式不同而无法读入普通用户信息。这个问题本身其实很容易解决,但后面还是做了第二轮综合测试确认没有其他的被漏掉的问题,总共花了3个小时。

根据计划与实际情况之间的区别进行反思:

首先,本人低估了总体设计的时间。原因在于第一次开发小软件时只花了1个小时左右进行设计,并且这次的功能是上一次的功能的扩展,所以本人以为这次的设计也会比较快。只不过,很快就发现了这次软件远远比上一次复杂,所以设计阶段也长很多。后面一定会注意给设计阶段分配更多的时间。
其次,综合测试做得不够严格,漏掉了一个比较容易被发现的问题。后面应该更精确地制定测试计划,并按照渐增式测试方法进行测试(这次在综合测试中直接把所有已测好的模块一起测试了,没有做到渐增式测试,下次可以改进此过程)。

体会:

本人这学期学到了的软件工程知识很多跟软件的生命周期及其不同阶段有关。我们上课时大概花了半个学期的时间讨论每个阶段的任务、方法、工具等。就因为有了这些知识,这次开发软件前能够制定比较合理的计划。但是,因为缺乏了实践经验,所以开发系统过程中还是出现了很多与计划的不一致。通过这次的软件开发,自己觉得积累了很多经验,下次开发软件会制定与实际情况更结合的计划,并会更严格地按照计划进行工作。

2. 面向对象

这学期的第二最大收获是:应该尽可能用面向对象的方法。本人设计并实现 “你帮我助” 软件的过程中也尽力用到了面向对象的原理与方法。下面提到一些例子:

  1. 做分析的时候自己做了的第一步是建立对象模型。
  2. 软件设计的过程中按照面向对象设计的准则进行了设计,觉得自己比较好地实现了模块化、强内聚及弱耦合,但没有很好地实现可重用。
  3. 本人设计过程中用到了 “任务管理子系统” 和 “数据管理子系统” 的概念。

体会:

  1. 在分析阶段画对象模型一开始很难,因为之前从来没有画过对象模型。当时因为每次对自己画了的模型不满意而重新开始了三遍。只不过,两个小时之后做出来了一个让我比较满意的对象模型,并同时感觉自己从面向对象的角度进行分析的能力在这两个小时之内提高了很多。当时画的对象模型后面在设计阶段用了很多,并且最后画类图的时候也是基于对象模型画的。
  2. 设计软件时本人的目的之一就是做到模块化、强内聚和弱耦合。最终在软件中很好地实现了这些概念。自己也发现因为用到了这些概念,虽然在设计阶段比较难一些,但是编码的时候很轻松。原因在于,编码时可以一个一个写各个模块的代码(由于模块化),每次写一个模块的时候可以完全集中于实现其功能,很少需要考虑其他模块的影响(由于弱耦合),并且,每个模块的功能也很好理解(由于强内聚),所以程序很容易实现。
  3. 数据管理子系统模块本人在第一次开发 “你帮我助” 小软件时已经用到了,这次跟上次的区别仅在于:上次只需读入并存储物品信息,而这次不仅有物品信息,也有用户信息。但概念是一致的。
    任务管理子系统上次开发小软件没有用到,这次特别注意了在程序中加两个control函数(一个在main.py, 一个在administrator.py),以便管理整个程序的流程。本人的体会是,这样设计的程序清楚很多。几乎所有的函数都是被控制函数调用的,且每次一个功能实现完毕了以后,也就返回到这个控制函数。总体感觉通过加了任务管理子系统整个程序就变了更 “简单易读”。

结语:

由于开发软件的过程中尽可能地用到了这学期学到了的软件工程知识(主要包括面向对象方法和软件的生命周期计划的制定),所以才开发出来了一个比较成功的软件。
开发软件时出现了的意外基本上都是因为经验的缺乏而导致的,但通过这次工作就积累了很多实践经验,现在感觉自己不仅理解软件工程的知识,但也能够在项目当中使用这些知识。

标签:体会,开发软件,综合测试,面向对象,计划,软件,我助,小时
From: https://www.cnblogs.com/arnauld/p/17016034.html

相关文章

  • 软件icons图标大全(新增至2719枚大苏尔风格图标)下载
    想要获取海量图标,macw小编为大家分享一套mac电脑icons图标包,此套图标大全中包含两千多个.icns格式图片,这是一套不可多得的设计素材包。软件icons图标大全(新增至2719枚大......
  • 软件测试中的功能测试和非功能测试
    ​什么是功能测试?​进行功能测试以确保应用程序的功能符合需求规范。这是黑盒测试,不涉及应用程序源代码的详细信息。在执行功能测试时,重点应放在应用程序主要功能的用户友好......
  • RayLink测评 | 完全免费,功能超越同类付费远程控制软件!!
    *本文转载自自媒体【下1个好软件】,作者:锋哥。远程控制软件目前的需求非常大,因为某些原因,你可能得居家办公远程控制公司的电脑,又或者出差不再需要带笨重的笔记本办公,一台平......
  • 四种主流的软件发布方案
    伴随着互联网技术的高速发展,产品功能的迭代速度也越来越快,年度、季度发布几乎成为历史,一线互联网公司都支持周度上万次发布。如此高频的发布,如果新版本不够稳定,或者新特性的......
  • 企业内部使用的即时通讯软件有哪些?
    在高度信息化的今天,我们只需要通过手机或者电脑上的即时通讯,就可以把想要传达的信息传给别人。在办公中,即时通讯的存在大大提高了企业工作效率。但有不少企业在内部沟通时......
  • 即时通讯软件WorkPlus助力政企应用快速移动化
    数字经济时代,政企都已开始提倡信息化建设,智能化办公,企业部署移动办公工具就显得非常有必要了。政企都希望通过一个生态型的移动数字化平台,搭建起企业、员工、应用系统之间......
  • 即时通讯软件WorkPlus助力政企应用快速移动化
    数字经济时代,政企都已开始提倡信息化建设,智能化办公,企业部署移动办公工具就显得非常有必要了。政企都希望通过一个生态型的移动数字化平台,搭建起企业、员工、应用系统之间的......
  • 企业内部使用的即时通讯软件有哪些?
    在高度信息化的今天,我们只需要通过手机或者电脑上的即时通讯,就可以把想要传达的信息传给别人。在办公中,即时通讯的存在大大提高了企业工作效率。但有不少企业在内部沟通时用......
  • “你帮我助”软件final总结
    本项目为SJTUCS3331软件工程的课程期末作业。代码及相关功能、使用说明已公开发布于Github中:https://github.com/Luyu-Han/Tkinter-GUI-Application-for-Exchanging-......
  • CST和ANSYS HFSS两款电磁软件的区别丨硕迪科技
    也许您对选择用于仿真项目的软件感到困惑,我们从不同方面比较了CSTStudioSuite和ANSYSHFSS这两款电磁结构全波仿真软件。用户界面CST和HFSS软件都在其用户环境中提供了......