软件工程实践总结——学习与实践
| 这个作业属于哪个课程 | 软件工程24年秋季 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 完成软件工程实践总结&个人技术总结,并完成相应博客 |
| 其他参考文献 | 《构建之法》、CSDN |
目录
- 一、课程回顾与总结
- 1.1 以前问题思考的博客
- 1.2 问题再解答
- 1.2.1 问题1:如何区分一个好的程序员和不好的程序员呢?
- 1.2.2 问题2:软件开发是年轻人的饭碗,吃的是青春饭?那年纪大的程序员经验丰富但是快速学习能力拼不过年轻程序员的时候该怎么办呢?
- 1.2.3 问题3:花费时间越多,代表工作量越高吗?
- 1.2.4 问题4:为什么要在大学中只用一学期软件工程,时间够吗?
- 1.2.5 问题5:我有了GPT类的应用,传统的搜索引擎是否会被完全替代?
- 1.3 原来的问题还不明白
- 二、 5个阶段中收获的最大的知识或能力
- 2.1 需求阶段
- 2.2 设计阶段
- 2.3 实现阶段
- 2.4 测试阶段
- 2.5 发布阶段
- 三、关于个人项目/结对编程/团队项目理解或心得
- 3.1 个人项目
- 3.2 结对编程
- 3.3 团队项目
- 四、自我评分对课程目标的掌握度
- 4.1 目标1: 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。
- 4.2 目标2: 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。
- 4.3 目标3: 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。
- 4.4 目标4: 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。
- 4.5 目标5: 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。
- 4.6 目标6: 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。
- 4.7 目标7: 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。
- 五、个人技术总结
一、课程回顾与总结
1.1 以前问题思考的博客
1.2 问题再解答
1.2.1 问题1:如何区分一个好的程序员和不好的程序员呢?
回答:在上一次的问题中我认为好的程序员需要具备扎实的编程基础,能积极学习新技术,并且具备良好的团队合作精神。现在我觉得好的程序员还应该具有解决问题的能力,在面对问题时额能够快速定位问题并提出有效的解决方案。我个人在开发中经常会遇到一些问题,当然通常是bug,在解决这个Bug之前,找到Bug的来源往往是苦恼的,需要用到多种方法调试才能定位到Bug并想办法解决。因此,我觉得一个能快速定位并解决问题的程序员必然是一个好的程序员。
1.2.2 问题2:软件开发是年轻人的饭碗,吃的是青春饭?那年纪大的程序员经验丰富但是快速学习能力拼不过年轻程序员的时候该怎么办呢?
我现在对这个问题的看法与之前基本不变,快速学习能力固然重要,但是开发过程中大多数都是经验老道者会更具有优势。年轻人学习前人的知识本身也需要花费大量的时间。软件开发时需要持续学习、不断进步的职业道路。
1.2.3 问题3:花费时间越多,代表工作量越高吗?
经过此次项目的开发,我颇有心得,工作量和时间并不能直接挂钩。有的时候你想了很久不一定就能有什么进展,实际开发过程中,我经常只有一两个小时是在编写代码,大多数时间是在学习和查找资料。论工作量,其他时间的工作量并没有那一两个小时来的多,但学习和查资料显然也是必须的。
1.2.4 问题4:为什么要在大学中只用一学期软件工程,时间够吗?
软件工程的学习不只是上课学习。学生还要运用大量的时间学习一些课外知识以及完成实践内容。这一个学期的在软件工程上花的时间比其他一个学期的课程多得多。时间大体上是够的,但是这是一门不断学习的课程,在结课后我认为我们还要继续接触并学习相关知识。
1.2.5 问题5:我有了GPT类的应用,传统的搜索引擎是否会被完全替代?
通过此次开发,我使用过很多次gpt,但是gpt的回答往往没有那么精深和准确,面对很多问题和Bug我依然需要使用传统搜索引擎去搜索前人的解决方法,并不能完全依赖gpt。因此我并不认为传统的搜索引擎会被完全替代。
1.3 原来的问题还不明白
对于原来的问题,我觉得还有以下问题困扰我:
问题4:花费时间越多,代表工作量越高吗?
对于一些用于学习的时间,很难定义这些时间的工作量,理论上工作量产出基本等于0,但是学习是不可或缺的,有了学习才能保证后面的工作有产出。
二、 5个阶段中收获的最大的知识或能力
2.1 需求阶段
当初我们游戏定位的客户有三类人群,新生,毕业生和其他学校的学生。主要目标是方便他们了解福大。和客户的沟通提升了我的沟通技巧和需求分析能力。同时我学会了需求规格说明书的编写,这同样提升了我的信息组织能力。最终我们决定基于unity引擎做一款3d游戏。
2.2 设计阶段
在设计阶段,我查阅网络上的各种资源,在b站上看了无数的教程。我和小组成员讨论,确定了游戏的主要框架:以第三人称和第一人称结合作为主要视角,以教师,操场,食堂,宿舍作为主要的场景,通过地图和对话系统进行场景切换,用任务系统来串联我们的剧情,同时加入各种彩蛋供用户探索用以添加自由度和趣味性。这一阶段主要提升了小组合作能力
2.3 实现阶段
在实现阶段,主要是小组成员之间的合作。我和另一名负责后端的同学一起合作开发。我们从负责建模的同学那里接受建模,从负责剧情的同学那接收剧情说明,从unity商店以及网上寻找合适的免费资源。我负责的内容有UI设计与实现,背包系统设计与实现,场景切换及加载系统设计与实现。这一阶段我主要学到了很多unity开发相关的知识,如canvas的使用,异步加载的使用,场景切换的使用。
2.4 测试阶段
在测试阶段,我学会了测试的各个流程和测试工具的使用。我们使用了游戏的内置工具进行测试,并且邀请其他同学进行游玩以测试游戏是否有Bug。
2.5 发布阶段
在发布阶段,我学会了如何将游戏打包和发布。在网上以及有大量的教程,所以这一部分并没有困扰我们。
三、关于个人项目/结对编程/团队项目理解或心得
3.1 个人项目
我学会了如何使用git仓库进行代码管理,如何爬取网页上自己想要的数据,如何进行测试,如何进行软件评价。
3.2 结对编程
我先学会了如何使用Axure进行原型设计,在后面
学习了html,css,JavaScript相关知识以及vue项目的使用。主要是自学各种新知识让人特别有成就感。
3.3 团队项目
在团队项目中,我主要负责ui设计以及后端开发。
我学习了如何在unity中创建游戏对象和资源管理,
如何使用canvas,panel,text,button,image等原件的使用以及相关c#脚本的实现,
如何配置tmp字体,
如何进行场景切换,
如何进行场景异步加载,
如何使用ScriptableObject设计背包,
如何使用各种布局,
如何制作加载进度条,
如何将导入的图片转换为精灵并处理,
如何调整游戏对不同分辨率的适应。
四、自我评分对课程目标的掌握度
4.1 目标1: 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。
评分:99
在本次实践中,严守职业道德规范,我参与的相约福大项目考虑了新生,毕业生和其他学校学生的基本需求,为广大学生带来了便利,符合积极向上的软件开发理念。
4.2 目标2: 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。
评分:95
在实践过程中,我能广泛收集群众需求,使用Axure进行原型开发,以求准确理解客户的需求,对后续开发提供了极大的帮助。
4.3 目标3: 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。
评分:90
我对软件开发的全过程有基本的掌握,但在体系结构设计和构件级设计方面,我认为自己需要更多的实践经验来提高设计质量,尤其是在通过技术评审和优化设计方案方面。
4.4 目标4: 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。
评分:80
我在技术评测方面有一定的能力,但在设计模型的评判和创新设计意识方面,我认为自己还有很大的提升空间,特别是在面对复杂问题时,优选设计方案的能力需要加强。
4.5 目标5: 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。
评分:82
我能够遵循文档标准并规范表达,但在撰写需求规格说明书和系统设计说明书方面,我认为自己需要更多的实践来提高文档的质量和交流能力。
4.6 目标6: 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。
评分:83
我在团队合作和沟通方面表现良好,能够有效地与其他成员协作。
4.7 目标7: 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。
评分:75
我对软件项目管理的构成要素有一定的了解,但在软件规模和工作量的估算方法方面,我认为自己需要更多的实践经验。
五、个人技术总结
概述:Unity中利用ScriptableObject创建和管理游戏背包系统。
相关推荐
软件工程课程深入学习与实践课件
需求可以定义为用户对软件产品应具备的功能、性能、属性或其他特性的陈述。它反映了用户对软件系统所期望的行为和条件。需求主要分为三大类:功能性需求(软件应完成的功能),非功能性需求(软件应满足的质量属性,如性能、安全、可用性等),以及约束条件(限制软件开发的条件,如时间、成本、技术或法律约束)。软件建模的方法众多,每种方法都有其特定的应用场景和优势。以下是一些常见的建模方法:面向对象建模(OOM):基于对象的属性和行为,以及对象之间的交互进行建模。这种方法非常适用于复杂系统的建模。结构化建模。
基于混合储能协调控制的三相并网逆变系统设计【附说明文档】
内容概要:本文围绕“基于混合储能协调控制的三相并网逆变系统设计”展开,系统阐述了蓄电池与飞轮储能等混合储能系统在微电网中的协同控制策略。研究涵盖三相并网逆变器的能量管理、SOC(荷电状态)恒压恒流充放电控制、PQ控制与双闭环控制等核心技术,并基于Matlab/Simulink仿真平台实现了系统建模与动态仿真验证。文中深入探讨了飞轮储能系统的机侧PQ控制与网侧变流器的恒压双闭环控制,分析了微电网在调频调峰、功率协同分配等方面的运行特性,强调多能源间的协调优化与系统的快速动态响应能力,旨在提升微电网的运行稳定性、电能质量及能源利用效率。; 适合人群:具备电力电子、自动化或电气工程等相关专业背景,从事新能源发电、微电网控制、储能系统集成与优化等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入研究混合储能系统在微电网中的协调控制机制与能量管理策略;②掌握三相并网逆变器的建模、控制算法设计及Matlab/Simulink仿真方法;③实现储能系统的高效充放电管理与并网功率精确控制;④为学术论文撰写、科研课题申报、工程项目开发或实验复现提供完整的技术方案与参考实例。; 阅读建议:建议结合所提供的仿真模型、说明文档及参考文献,按照系统架构从单元控制到整体协调的顺序分模块学习,重点关注各控制策略的设计原理、参数整定方法与协同逻辑。推荐在Matlab环境中动手复现仿真,通过调整参数和工况来观察系统响应,以深化对理论知识的理解和工程应用能力的掌握。
科技中介服务机构在服务企业时,如何通过平台降低服务门槛和操作复杂度?.docx
科技中介服务机构在服务企业时,如何通过平台降低服务门槛和操作复杂度?
运维管理基于Hyperfilelens的Docker Compose业务系统备份恢复:机房设备更换场景下的数据迁移与验证方案设计
内容概要:本文介绍了在机房存储设备更换及固件升级背景下,通过 Hyperfilelens 实现多套 Docker Compose 部署的业务系统备份与恢复的全过程。文章围绕备份迁移的实际操作,详细阐述了从主机接入、备份路径选择、策略配置、恢复执行到业务验证的七个关键步骤,并结合截图说明各环节的操作要点。特别强调了不仅要完成数据备份与恢复,还需核对目录结构、服务启动状态和业务功能可用性,确保迁移后系统完整可用。最终总结了 Hyperfilelens 在集中管理保护对象、制定备份策略、明确恢复目标和提供可核查记录方面的核心价值,倡导将备份作为常态化运维机制而非临时应急措施。; 适合人群:从事运维、系统管理及相关技术岗位,具备一定 Docker 和服务器管理经验的技术人员,尤其是面临机房设备更新或系统迁移任务的团队成员。; 使用场景及目标:①解决老旧存储设备更换过程中的业务系统平滑迁移问题;②实现基于 Docker Compose 架构的应用数据可靠备份与异机恢复;③建立可复用的备份恢复流程,提升运维自动化与可靠性。; 阅读建议:建议结合文中提到的平台界面和操作命令逐步实践,重点关注备份范围确认、一致性保护、恢复路径核对及业务端到端验证,避免仅依赖工具状态而忽视实际业务可用性。
chromedriver-mac-arm64-158.0.8127.18(Beta).zip
chromedriver-mac-arm64-158.0.8127.18(Beta).zip



