首页 > 其他分享 >“你帮我助”物品交换系统最终版-软件开发总结

“你帮我助”物品交换系统最终版-软件开发总结

时间:2022-12-17 19:56:06浏览次数:63  
标签:软件开发 python 物品 最终版 窗体 我助 软件 实现

软件功能要求

  1. 物品有公共的信息(物品名称,物品说明,物品所在地址,联系人手机,邮箱)。为了便于管理和查询,物品可以分成不同的类别(例如食品、书籍、工具等),不同类别的物品可能有不同的属性(例如食品有保质期,数量;书籍有作者,出版社等)。
  2. 互帮互助系统有两种类型的用户:管理员和普通用户。
    管理员可以设置新的物品类型(定义物品类型的名称和各个属性),修改物品类型。
    普通用户在添加物品时先选择物品类型,然后再填入物品信息。普通用户搜寻物品时,需要先选择类型,再输入关键字,关键字可以在用户名称和说明中进行匹配。
    普通用户需要注册(填入基本信息,包括住址,联系方式等),管理员批准后才能成为正式用户。

项目地址

本项目已发布在GitHub上:项目地址

开发心得

通过这一次的大作业,我使用python语言实现了一个物品交换管理系统的开发。首先选用python语言进行开发,一个是因为对于python语言,我相对更为熟悉;另一方面,该项目要求提供GUI,在以往我有通过python语言实现GUI程序的经验,最后python语言的语法相对较为简洁,有大量的可用的第三方库的支持,可以为编写程序提供一定的便利。

在编写程序的过程中,我采用了相对统一的代码风格、命名方式及注释风格,在实现功能的过程中在代码边上添加注释,便于以后修改的时候能快速了解之前的想法。

软件的实现采用面向对象的思想,进行模块化的开发,我将物品、用户及一些控制窗口封装成一个又一个的类。在实现软件的各个功能的过程中,我主要采用了单元测试的方法。这个项目要实现的功能可以分成若干个子功能,采取分而治之的方法,逐个实现各个子功能。软件中,每一个功能均集合在一个窗体中。每完成一个窗体,就实现了程序的一项功能。完成窗体后便立刻对完成的窗体进行测试,再将可以正确运行的各个窗体增加窗体之间跳转的功能。通过这种测试方法,解决了这个软件开发过程中遇到的大多数问题。软件中窗体的实现采用python的tkinter库,tkinter库在实现各种窗体的过程中相对较为便利,里面有大量现成的窗体及控件对象类。考虑到这个项目没有要求实现线上交互,并且自身也没有学习过实现线上交互的变成技术,因此软件运行过程中的数据在本地进行保存。

在编写软件之前,我先绘制了软件的用例图、类图及顺序图,设计软件的基本逻辑,为之后的开发提供一定的思路(最终软件的实现可能与类图、顺序图中所绘制的略有差异)。相比于以往很多程序都是一上手就写,这个项目我也是第一次在系统的分析软件的各种需求并进行设计后开始书写。利用软件工程的相关知识,相比于以往,在软件开发的过程中更为有序且不容易出错。

这个项目也存在许多不足之处。囿于个人的编程能力,有一些功能实现效果并不太好,用户体验可能不佳。另外,由于学业繁重及时间精力的限制,用户界面并不太美观,软件中也可能仍然存在一些潜在的未发现的bug,这将会在以后进一步的维护中对其进行修正。

通过软件工程课程的学习与这一次的软件开发项目,我在编程能力上有了一定提升,更在编程的方法论上有了进一步的了解,通过软件工程课程的学习我是感到受益匪浅的。在未来的软件开发中(如果有),我将进一步学习软件工程的相关原理,继续将所学到的软件工程相关原理运用其中。

标签:软件开发,python,物品,最终版,窗体,我助,软件,实现
From: https://www.cnblogs.com/pseudoChemist/p/16989428.html

相关文章

  • “你帮我助”软件开发总结
    “你帮我助”软件开发总结写在前面本文为软件工程课程期末大作业——“你帮我助”物品交换系统软件开发总结,我将会从课程中提到的关于软件开发的几个维度来对本次任务进......
  • 博奥智源,分享门诊信息系统配套软件开发思路
    采用技术架构应当前主流先进软件技术为主,满足未来5年内业务发展及升级要求,在项目建设上遵循“统一性、安全性、性能性、经济性、功能性”等原则,要求系统架构灵活、扩展性强......
  • 直播平台软件开发,flutter Wrap 自动换行组件
    直播平台软件开发,flutterWrap自动换行组件先来简单的看一下源码 Wrap({  super.key,  this.direction=Axis.horizontal,  this.alignment=WrapAlign......
  • 嵌入式软件开发十二种开发工具与链接之优秀
    目录​​第一个:开发进度管理工具。​​​​第二个:代码BUG管理工具​​​​第三个:代码版本与控制工具​​​​第四个:项目文件管理工具​​​​第五个:代码检测工具​​​​第......
  • Java基础-01-概述(什么是Java软件开发)
    1、何为编程?编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路......
  • QT软件开发中的图标设置与好用的图标网站
    控件支持的图片类型:需要设置图标的控件一般有:按钮actionlistitem软件本身……就拿按钮来说,用代码设置图标,有而且只有xx.setIcon(QIconicon)函数,其它action啥的的也是这个......
  • 为什么软件开发周期总是预估的2~3倍?
    为什么软件开发周期总是预估的2~3倍?(sohu.com)引子文章中对作者并没有直接回答这个问题,讲了一个旅行故事,来隐喻解释。作者在原文里讲到,旅人计划从从旧金山出发,沿着西海......
  • Linux已成为世界最大软件开发项目
    ​​Linux​​([ˈlaɪnʌks或ˈlɪnʌks])内核开发者GregKroah-Hartmant在柏林发表演讲时称,Linux已经成为世界最大的软件开发项目。 目前最新的Linux4.5内核包含了超过210......
  • 直播平台软件开发,登陆时获取当前时间
    直播平台软件开发,登陆时获取当前时间getNowDate(){varmyDate=newDate;varyear=myDate.getFullYear()varmon=myDate.getMonth()+1vardate=myDate.getDate(......
  • 软件开发版本号常用的简洁命名规则和方案
    软件开发版本号常用的简洁命名规则和方案一,一般版本号命名的简洁规则:三段式命名规则软件版本号命名一般采用三段式命名规则,三段式命名规则也是最常用的规则,大体上,如某个......