“物品复活”软件开发总结

news/2024/12/27 18:23:25/文章来源:https://www.cnblogs.com/Kuriputon/p/18636501

前言

经过一个学期的学习,我对软件开发的整体过程有了一定了解,再看看自己的开发过程,跟工程上严密的步骤相去甚远,简直不堪回首。下面从软件生命周期的各个阶段对开发过程进行反思总结。

软件定义

软件定义时期的任务是:确定软件工程开发必须完成的总目标、确定工程的可行性、导出实现工程目标应该采用的策略及系统必须完成的功能、估计完成该项工程需要的资源和成本,并制定工程进度表。

——张海藩《软件工程学导论》

软件开发的总目标定老师给的作业描述中已经说明了,可行性也是不言自明的。我之前从未开发过一个软件,于是找了一个功能与老师描述相似的平台作为开发的参照——交大柠檬中的闲置物品模块。由于不具备太多软件工程方面的知识,我了解的开发软件的工具也很少,不假思索地就决定用Python内置的GUI库tkinter来开发了,现在想想还是应该在开发前多多调查,寻找有没有更好的框架和工具。至于完成这个软件所需要的资源和成本,我完全没有估计过,一方面是因为没有想到,另一方面是因为能力有限,想到了也不知道应该如何估计。

软件开发

软件开发时期具体设计和实现在前一个时期定义的软件。它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。

——张海藩《软件工程学导论》

我的开发过程很好地体现了在计算机系统发展的早期时代,个体化的软件环境下的软件开发过程:软件设计通常是在人们头脑中进行的一个隐含的过程,除了程序清单之外,没有其他的文档资料保存下来。
只有在开发时遇到一个问题实在无法解决时,我才尝试画一些软件结构图试图厘清思绪寻找可能的解决方法。现在我知道了,应该在动手编码之前先把软件结构设计好。我也身体力行地体会到了在开发后期调整软件结构有多费劲。

软件维护

维护时期的主要任务是使软件持久地满足用户的需要。

——张海藩《软件工程学导论》

根据室友和检查我代码的同学的反馈,我(并不是很及时地)对错误加以了改正。在开发的上一个阶段,我实现了作业要求的基本功能,但还有些我自己想加的功能没来得及实现,在后续的迭代中也进行了实现。在开发的最后阶段,作业又有了几项加分需求,我也根据自己对需求的理解,在能力范围内实现了一些附加功能。最后,我发现各个模块中有许多重复的代码段,显然没有达到“低耦合,高内聚”的要求。于是我运用了面向对象的方法,把软件中的页面分了几个大类,原来的类都从这几类中继承,并对整体的代码进行了重构。

总结

这是我第一次开发一个软件,虽然过程磕磕绊绊,但也算是收获了一个结果。以后要是还有机会开发软件,相信我会做得更好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859962.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241318 《计算机基础与程序设计》第十四周学习总结

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP(这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标 <学习《C语言程序设计》第13-14章并完成云班课测试>作业正文 https://i.cnblogs.com/posts/edi…

智谱开源 CogAgent-9B,让 AI「看懂」屏幕;Anthropic:大多数任务无需复杂 AI 智能体

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

GitLab社区版CI/CD实现

准备工作: 系统环境:CentOS Linux release 7.9.2009 (Core) 安装包:gitlab-ce-11.1.1-ce.0.el7.x86_64.rpm 和 gitlab-runner-11.1.1-1.x86_64.rpmCI/CD流程:代码推送: 开发者将代码推送到GitLab的远程仓库。触发CI/CD Pipeline: 当代码被推送到GitLab仓库时,GitLab会检…

宝塔面板解压文件无响应或需要重启才能解压

您好,关于您提到的宝塔面板在解压文件时出现无响应或需要重启才能继续解压的问题,这可能是由以下几个原因引起的。首先,我们需要了解一些背景信息来更好地解决这个问题。压缩包文件异常: 压缩包文件本身可能存在损坏或不完整的情况,导致宝塔面板在解压过程中遇到错误而无法…

1.什么是CSS

1.Cascading Style Sheet 层叠级联样式表 CSS:表现(美化网页) 字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动....2.发展史 CSS1.0 只能美化字体 CSS2.0 DIV(块)+CSS,html与css结构分离的思想,网页变得简单,利于SEO CSS2.1 浮动,定位 CSS3.0 圆角,阴影,动画…

【Spring】三级缓存解决循环依赖问题

参考地址: Spring循环依赖:https://zhuanlan.zhihu.com/p/700890658 Spring三级缓存解决循环依赖的问题:https://blog.csdn.net/Trong_/article/details/134063622================================================================== 1.什么是循环依赖?1>说白是一个或…

uni-app 设置多语言切换uni-i18n插件

安装uni-i18n插件npm install uni-i18nmain.js文件中引入并初始化VueI18n///main.js import messages from ./language/index let i18nConfig = {locale: uni.getLocale(),messages }import Vue from vue import VueI18n from vue-i18n import App from ./App Vue.use(VueI18n)…

查询数据库开始时间和结束时间字段中包括了给定时间区间的数据

表数据示例: 查询区间:2024-12-03 10:00:00 - 2024-12-06 18:00:00 mysql示例:SELECT * FROM time_test WHERE ((start_time > 2024-12-03 10:00:00 AND (2024-12-06 18:00:00 > end_time OR ( 2024-12-06 18:00:00 > start_time AND 2024-12-06 18:00:00 < e…

ASP.NET 自定义控件

创建Web Forms 用户控件 选中项目右键#新建 #Web Forms #Web Forms 用户控件代码示例<div id="footer"><div style="font-family: @宋体; font-size: 11px;"><strong >Martin Emprex Textiles(Zhongshan-China)Limited</strong>&l…

协同办公如何帮助车企抓住以旧换新市场机会

随着国家对以旧换新购车政策的进一步细化和推广,汽车市场的竞争再度升级。对于车企而言,这既是一个重要的市场增长契机,也是一次全方位提升销售运营效率的考验。通过在线协同工具,车企能够更高效地推动内部协作、优化外部销售网络,在换新浪潮中构建敏捷的销售体系。 敏捷销…

智能感知的未来:传感器融合与数字样机技术

2024年是汽车产业蓬勃发展的一年。汽车保有量的迅速攀升固然可喜可贺,然而伴随而来的交通事故频发、道路拥堵、停车困难、环境污染、能源消耗等现实问题日益凸显,严重阻碍了汽车工业的持续健康发展。 据世界卫生组织最新统计,全世界范围内每年由道路交通事故引发的人员死亡人…

SVG前端画图

SVG(Scalable Vector Graphics)是一种基于XML的标记语言,用于描述二维矢量图形,它可以在Web浏览器中进行展示。 SVG优点是:可伸缩、分辨率无损失,不管是电脑还是手机屏幕上都能够清晰地显示,支持互动和动画等特效; 缺点是:不支持复杂的渲染效果,如模糊、阴影和透明度…