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

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

时间:2022-12-16 02:22:07浏览次数:60  
标签:总结 功能 软件开发 课程 窗体 我助 软件 进行

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

写在前面

本文为软件工程课程期末大作业——“你帮我助”物品交换系统软件开发总结,我将会从课程中提到的关于软件开发的几个维度来对本次任务进行小结。

个人软件过程

就像课程中所讲述的一样,个人软件过程是一个需要逐步改进的过程。我虽然在软件开发领域还是个初学者,在这学期的学习中,也感受到了一些体会。

首先是在编程风格方面。由于我比较熟悉python语言,因此在本学期的两次开发作业中都选择了Python作为开发语言。Python之父吉多·范罗苏姆在开发这门语言时就对其缩进和对齐提出了别的语言所没有的高要求性,我在排版方面并没有遇到什么难题。同时,借助Pycharm的帮助,其对格式的自动纠正和函数的收起功能在排版方面都很好地帮助了我。

其次,在命名风格方面,我也遵循着默认的准则,对于各个对象都使用了驼峰命名法,函数以其可以实现的功能命名。良好的命名习惯也让我在后续程序编写的各种调用中感受到其魅力。

最后,注释风格。在这方面我秉持着自己一向的注释风格,一边coding一边进行注释,首先在每个功能的代码块之前加上注释以标注想要实现的功能,其次对于调用较少的变量定义后进行注释以防止遗忘。在函数中的注释则主要包括函数实现的功能、函数传入的参数以及返回值。当然,编译器Pycharm在注释上也给了我不小的帮助。

版本控制系统上,由于该软件为课程大作业,不涉及到与他人的项目交接,我主要将编译器和代码环境、软件具体运行方法写入README.rtf存入项目文件夹中。后续如果有版本更新,也会新建文档进行说明。

测试上,我在编写过程中主要还是采用单元测试的思想,每完成一个功能进行一次测试;在完成某一个窗体的全部编码后,对该窗口进行整体测试。这种测试的方法论对我确保实现一个个功能很有帮助。

可行性研究

可行性分析一般进行于软件开发之前,从多个角度来分析问题以及给出一系列解法,并对各个解法的可行性进行探究。由于本项目为一个课程作业,所以我在这里只对解法能否有效实现功能的可行性进行了分析。具体上说,我手动绘制了程序流程图和数据流图,确保了软件实现逻辑上的可行性以及数据在各个对象间的合法流动与交互。

软件需求

需求分析在作业要求中也已经提到,我在这个阶段主要是对各个需求进行了整理,并且提出了一些自己想到的需求。由于缺乏真正意义上的用户,在需求分析中我会假扮甲方对需求进行细化于拓展。同时,在需求分析的最后,我也会进行一轮软件需求的验证以确保需求的合理性与正确性。

总体设计

在这部分中,主要分为九个板块。第一方面是设想方案,这一点在可行性研究中我个人已经构思出解决方案并设计了流程图;因此,我也直接跳过了第二第三步——挑选合理方案以及推荐最佳方案。第四部分是对软件进行功能分解,在这里我采用了面向对象的思想,将不同的窗体视作对象,首先构思出四个窗体分别为登陆界面、注册界面、管理员界面以及用户主界面,每一个窗体可以实现一系列功能。由此完成了功能的第一步的结构设计,其次对各个窗体的各个功能进行过程设计,即构思每一个窗体的具体功能。第五部分其实在上文已经提到,即讲各个窗体串联成有机整体,通过一定的逻辑进行窗体间的转换。最后则是设计数据库,由于我本人并没有合适的数据库,又考虑作为课程作业暂时不需要线上交互功能,于是打算将数据存在本地,即通过各个csv本地文件来存储数据。最后制定测试计划、书写文档、以及审查复查环节我打算一并放入后续的工作。

详细设计

首先是进行了结构程序设计,其具体形式也与上面提到的程序流程图类似。其次是人机交互设计,由于个人的代码能力所限,这一点并没有做的很好,只是在某些非常需要信息交互的页面上进行了一些数据输入的指南,其余的交互信息并没有得到很好的处理,这一点也需要在我以后的开发生涯中得到改善。在出错信息处理上,我有着很多的思考和处理,例如对于注册时未填写信息或信息无效、上传物品的信息填写缺失、执行各类操作时未选择对象,都进行了处理,当遇到错误时软件都会跳出提示框。在系统响应时间上,由于我采用的数据库存放在本地的形式,这一点并不会遇到问题。但是如果考虑到线上数据库的读取时间,这一点也需要被考虑在内 。在趣味性方面,我很想将此系统增添色彩,但是有限于代码水平以及使用的tkinter库的限制,很难完成这一点,也算是开发中的一个小遗憾。

实现

最后在完成代码的撰写后,就到了软件的实现。该过程多围绕于测试展开,在这里我对各个功能以及在各种情况下都进行了测试,在发现问题后及时更改代码,直到最后通过测试。

维护

作为软件开发的最后一环,维护也是必不可少的一部分。如果在后续的使用中发现了问题,我将会及时维护代码。

面向对象

我们的课程一向秉承着面向对象的思想进行软件开发。在一点上,由于我使用了Python的tkinter库作为开发工具,所以在面向对象这一点上可以得到轻松的实现。tkinter库已编写好了窗体对象以及各类元件对象,我只需要调用可以轻松实现窗体对象的实现。其次是对用户以及物品的处理,同样地也定义了关于用户和物品的类。整个过程都基于面向对象的思想。

反思

在完成本次程序开发作业后,我也意识到了许多值得改进的地方。首先是对编程能力上的,在编程上遇到了很多困难,有很多想要实现的功能却限于代码水平有限无法实现;其次是在用户体验这一方面仍有着许多的不足,很多设计由于上面提到的有限的代码水平并不人性化,从而使得有些功能的实现会让用户感到不愉悦;最后是在软件设计总体方法论上,我仍然有很多需要学习的地方。

总结

虽然作为一名商科学子,这门课程是我的辅修课程,但是这次作业依然带给了我很多启示。例如面向对象的思想是社科所接触不到的思想;可行性研究、软件需求分析却是融合了多门学科知识的过程。在这个过程中,我不但领略到了软件开发的魅力,也与自己的专业知识产生的共鸣。在未来的学习之路上,我也会持续进行软件工程方面的学习,给自己带来更大的提升!

最后,附上github的链接:“你帮我助”物品互换系统

标签:总结,功能,软件开发,课程,窗体,我助,软件,进行
From: https://www.cnblogs.com/yohanceblog/p/16986389.html

相关文章

  • 算法第一章总结
    在第一章的学习中,我理解到了算法的概念,掌握了算法在最坏情况、最好情况和平均情况下的计算复杂性概念以及算法复杂性的渐进性态的数学表述,还了解了NP类问题的基本概念。粗......
  • NOIP2022 总结
    赛时考场T1秒,写调1h(中间拉肚子了。。)先看题。写了234暴力,走人看T2。感觉不是很会。急急急。、大概快2h30min?的时候想到了个做法,写写写。写出来一遍过样例。看看文件......
  • 算法第一章章末总结
    算法的第一章是算法概述,在本章节中,我们跟随老师的脚步一步步理解了算法的概念,掌握了评判算法好坏的标准,知道了算法在最坏情况、最好情况和平均情况下的计算复杂度概念,掌握......
  • 12月15日内容总结——ORM执行原生SQL语句、双下划线数据查询、ORM外键字段的创建、外
    ORM执行SQL语句有时候ROM的操作效率可能偏低我们是可以自己编写sql的方式1: models.User.objects.raw('select*fromapp01_user;')方式2: fromdjango.dbimportco......
  • Sentinel源码分析总结
    写作目的最近在看Sentinel源码,遇到了几个问题,想再此记录和分享一下遇到的几个问题,方便读者看到我的文章后就不用在继续搜注意:版本要和链接中的一致原理讲解参考视频​​图......
  • 【FAQ】在华为鸿蒙车机上集成华为帐号的常见问题总结
    随着新一代信息技术与汽车产业的深度融合,智能网联汽车正逐渐成为汽车产业发展的战略制高点,无论是传统车企还是新势力都瞄准了“智能座舱”这种新一代人机交互方式。面对竞......
  • 12月15日内容总结——ORM执行原生SQL语句、双下划线数据查询、ORM外键字段的创建、外
    目录一、ORM执行SQL语句二、神奇的双下划线查询三、ORM外键字段的创建复习MySQL外键关系外键字段的创建1.创建基础表(书籍表、出版社表、作者表、作者详情)2.确定外键关系3......
  • 算法第一章归纳总结
    算法的四个性质:输入:有零个或者多个输入输出:至少有一个输出确定行:组成算法的每条指令清晰、无歧义有限性:算法中每条指令的执行次数有限。执行每条指令的时间也有限......
  • SQL的使用总结
    select*fromempselect*fromdeptselect*fromjobselect*fromsalarygrade--1.查询所有员工信息。查询员工编号,员工姓名,工资,职务名称,职务描述SELECT t1......
  • 待验证总结
    ​​1、避免过多if-else的几种方法 ​​2、​​ideapom.xml依赖版本号报错​​3、​​记录一个IDEA中MAVEN更新私服jar,download不下来的原因​​4、​​Java如何比较两......