软件工程课程个人总结

一、回顾你的课程计划
1.学习github的应用
完成了一个小应用的下载与引用,主要用于gif文件的修改。https://github.com/NickeManarin/ScreenToGif
2.部署程序
完成了安卓的部署但是不能远距离连接,(学习将后端部署到网上实现远距离连接)
3.完成Springboot+vue的web开发模式
成功使用Springboot+vue的模式开发完成web的开发,如个人作业:分类查询,团队作业等。
4.学习软件开发思路以及基本方法
在团队作业中根据《构建之法》成功组织团队完成团队作业,了解了软件开发的大致流程。
二、构建之法问题自答
Q1:“软件工程的定义”是什么?
AN1:在《构建之法》中,作者提到软件工程是“以工程化的方式开发软件”。它强调软件开发不仅仅是编写代码,还包括需求分析、设计、测试、维护等一系列活动,目的是以系统化、规范化、
可量化的方法开发高质量的软件。
Q2:“软件危机”是什么?它如何影响软件工程的发展?
AN2:“软件危机”是指在20世纪60年代末到70年代初,软件开发过程中出现的一系列问题,如项目延误、成本超支、软件质量差等。这些问题促使人们认识到传统的软件开发方法(如瀑布模型)的局限
性,从而推动了软件工程学科的形成和发展,例如引入了敏捷开发、迭代开发等新的方法。
Q3:“需求分析”为什么如此重要?
AN3:作者强调需求分析是软件开发过程中最关键的环节之一。需求分析的目的是明确用户的需求,确保开发的软件能够满足用户的期望。如果需求分析不准确,即使后续的开发工作再完美,最终的软
件也可能无法满足用户需求,导致项目失败。因此,需求分析是确保软件项目成功的基础。
Q4:“敏捷开发”和“瀑布模型”有什么区别?
AN4:作者提到瀑布模型是一种线性的开发过程,强调按顺序完成需求分析、设计、编码、测试和维护等阶段,每个阶段完成后才进入下一个阶段。而敏捷开发则是一种迭代和增量的开发方法,
强调快速响应变化、频繁交付可用的软件,并通过持续的反馈和调整来优化开发过程。瀑布模型适合需求明确且稳定的项目,而敏捷开发更适合需求变化频繁的项目。
Q5:“软件设计原则”有哪些?
AN5:例如“单一职责原则”(一个类只负责一项功能)、“开闭原则”(软件实体应该对扩展开放,对修改关闭)、“里氏替换原则”(子类对象必须能够替换掉它们的父类对象,并且不破坏系统的
正确性)等。这些设计原则有助于提高软件的可维护性、可扩展性和可复用性。
三、新产生的问题​
1.“软件架构”和“软件设计”有什么区别?
2.遇到需要修改数据库的问题时如何快速处理?
四、文献回顾与“事后诸葛亮”新感想​
1.设计数据库时,一定要想的比较全面,状态设置一定要使用int类型,方便以后的状态添加,也便于状态的更新处理。
2.定时整理代码,在前端代码中由于各种功能的添加,会十分容易出现代码冗余的情况导致代码极长,不利于修改与维护。所以一定要定期整理归类。
五、技能提升与隐性收获​
1.编程能力:代码质量、调试能力和新技术应用能力显著提高,学会了Springboot+Vue技术,以及Android Studio的使用提高了代码质量。
2.项目管理:学会了如何合理安排项目进度,避免拖延和赶工,还学会了识别项目中的潜在风险,并制定应对措施。
3.沟通合作:通过小组项目,我学会了如何在团队中发挥自己的优势,同时尊重和利用他人的长处。与团队成员沟通中,能够更清晰地表达自己的想法和需求。
4.心理变化:软件开发过程中代码部分只占了软件的很小一部分,需要放更多注意在沟通交流,设计等方面。
六、对未来课程的建议​​
1.增加课程的联合性:如在本学期的数据库与web课程中的实验内容可以与软件工程课程的团队作业或者个人作业挂钩。
2.给出一个学习建议方向:如在学习web开发时一开始我是使用的jsp+html+Servlet开发模式,但是市场上大多都是前后端分离式开发需要使用接口调用后端,所以后面又学习了Springboot+Vue
3.提供一些软件设计的建议,如数据库设计的建议

posted @ 2025-06-15 01:24  QixunQiu  阅读(23)  评论(0)    收藏  举报