“你帮我助”软件开发总结
写在前面
本文为软件工程课程期末大作业——“你帮我助”物品交换系统软件开发总结,我将会从课程中提到的关于软件开发的几个维度来对本次任务进行小结。
个人软件过程
就像课程中所讲述的一样,个人软件过程是一个需要逐步改进的过程。我虽然在软件开发领域还是个初学者,在这学期的学习中,也感受到了一些体会。
首先是在编程风格方面。由于我比较熟悉python语言,因此在本学期的两次开发作业中都选择了Python作为开发语言。Python之父吉多·范罗苏姆在开发这门语言时就对其缩进和对齐提出了别的语言所没有的高要求性,我在排版方面并没有遇到什么难题。同时,借助Pycharm的帮助,其对格式的自动纠正和函数的收起功能在排版方面都很好地帮助了我。
其次,在命名风格方面,我也遵循着默认的准则,对于各个对象都使用了驼峰命名法,函数以其可以实现的功能命名。良好的命名习惯也让我在后续程序编写的各种调用中感受到其魅力。
最后,注释风格。在这方面我秉持着自己一向的注释风格,一边coding一边进行注释,首先在每个功能的代码块之前加上注释以标注想要实现的功能,其次对于调用较少的变量定义后进行注释以防止遗忘。在函数中的注释则主要包括函数实现的功能、函数传入的参数以及返回值。当然,编译器Pycharm在注释上也给了我不小的帮助。
版本控制系统上,由于该软件为课程大作业,不涉及到与他人的项目交接,我主要将编译器和代码环境、软件具体运行方法写入README.rtf存入项目文件夹中。后续如果有版本更新,也会新建文档进行说明。
测试上,我在编写过程中主要还是采用单元测试的思想,每完成一个功能进行一次测试;在完成某一个窗体的全部编码后,对该窗口进行整体测试。这种测试的方法论对我确保实现一个个功能很有帮助。
可行性研究
可行性分析一般进行于软件开发之前,从多个角度来分析问题以及给出一系列解法,并对各个解法的可行性进行探究。由于本项目为一个课程作业,所以我在这里只对解法能否有效实现功能的可行性进行了分析。具体上说,我手动绘制了程序流程图和数据流图,确保了软件实现逻辑上的可行性以及数据在各个对象间的合法流动与交互。
软件需求
需求分析在作业要求中也已经提到,我在这个阶段主要是对各个需求进行了整理,并且提出了一些自己想到的需求。由于缺乏真正意义上的用户,在需求分析中我会假扮甲方对需求进行细化于拓展。同时,在需求分析的最后,我也会进行一轮软件需求的验证以确保需求的合理性与正确性。
总体设计
在这部分中,主要分为九个板块。第一方面是设想方案,这一点在可行性研究中我个人已经构思出解决方案并设计了流程图;因此,我也直接跳过了第二第三步——挑选合理方案以及推荐最佳方案。第四部分是对软件进行功能分解,在这里我采用了面向对象的思想,将不同的窗体视作对象,首先构思出四个窗体分别为登陆界面、注册界面、管理员界面以及用户主界面,每一个窗体可以实现一系列功能。由此完成了功能的第一步的结构设计,其次对各个窗体的各个功能进行过程设计,即构思每一个窗体的具体功能。第五部分其实在上文已经提到,即讲各个窗体串联成有机整体,通过一定的逻辑进行窗体间的转换。最后则是设计数据库,由于我本人并没有合适的数据库,又考虑作为课程作业暂时不需要线上交互功能,于是打算将数据存在本地,即通过各个csv本地文件来存储数据。最后制定测试计划、书写文档、以及审查复查环节我打算一并放入后续的工作。
详细设计
首先是进行了结构程序设计,其具体形式也与上面提到的程序流程图类似。其次是人机交互设计,由于个人的代码能力所限,这一点并没有做的很好,只是在某些非常需要信息交互的页面上进行了一些数据输入的指南,其余的交互信息并没有得到很好的处理,这一点也需要在我以后的开发生涯中得到改善。在出错信息处理上,我有着很多的思考和处理,例如对于注册时未填写信息或信息无效、上传物品的信息填写缺失、执行各类操作时未选择对象,都进行了处理,当遇到错误时软件都会跳出提示框。在系统响应时间上,由于我采用的数据库存放在本地的形式,这一点并不会遇到问题。但是如果考虑到线上数据库的读取时间,这一点也需要被考虑在内 。在趣味性方面,我很想将此系统增添色彩,但是有限于代码水平以及使用的tkinter库的限制,很难完成这一点,也算是开发中的一个小遗憾。
实现
最后在完成代码的撰写后,就到了软件的实现。该过程多围绕于测试展开,在这里我对各个功能以及在各种情况下都进行了测试,在发现问题后及时更改代码,直到最后通过测试。
维护
作为软件开发的最后一环,维护也是必不可少的一部分。如果在后续的使用中发现了问题,我将会及时维护代码。
面向对象
我们的课程一向秉承着面向对象的思想进行软件开发。在一点上,由于我使用了Python的tkinter库作为开发工具,所以在面向对象这一点上可以得到轻松的实现。tkinter库已编写好了窗体对象以及各类元件对象,我只需要调用可以轻松实现窗体对象的实现。其次是对用户以及物品的处理,同样地也定义了关于用户和物品的类。整个过程都基于面向对象的思想。
反思
在完成本次程序开发作业后,我也意识到了许多值得改进的地方。首先是对编程能力上的,在编程上遇到了很多困难,有很多想要实现的功能却限于代码水平有限无法实现;其次是在用户体验这一方面仍有着许多的不足,很多设计由于上面提到的有限的代码水平并不人性化,从而使得有些功能的实现会让用户感到不愉悦;最后是在软件设计总体方法论上,我仍然有很多需要学习的地方。
总结
虽然作为一名商科学子,这门课程是我的辅修课程,但是这次作业依然带给了我很多启示。例如面向对象的思想是社科所接触不到的思想;可行性研究、软件需求分析却是融合了多门学科知识的过程。在这个过程中,我不但领略到了软件开发的魅力,也与自己的专业知识产生的共鸣。在未来的学习之路上,我也会持续进行软件工程方面的学习,给自己带来更大的提升!
最后,附上github的链接:“你帮我助”物品互换系统
标签:总结,功能,软件开发,课程,窗体,我助,软件,进行 From: https://www.cnblogs.com/yohanceblog/p/16986389.html