软件工程实践总结——学习与实践

222200206朱江 2024-12-14 22:10:29
这个作业属于哪个课程软件工程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实现背包系统

概述:Unity中利用ScriptableObject创建和管理游戏背包系统。

...全文
31 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
因文件超过20M不能上传,所以拆分为两个文件分次上传 第1章 COM背景知识 1.1 COM的起源 1.1.1 软件业面临的挑战 1.1.2 传统解决方案 1.1.3 面向对象程序设计方法 1.1.4 最终解决方案:组件软件 1.1.5 面向对象的组件模型——COM 1.2 COM的发展历程 1.2.1 COM以前的对象技术:DDE、OLE 1、VBX控件 1.2.2 COM首次亮相:OLE2 1.2.3 Microsoft拥抱Internet:ActiveX 1.2.4 更多的新名词:Windows DNA和COM+ 1.2.5 远程对象:ORBs和DCOM 1.2.6 COM的最新版本:COM+ 1.3 COM技术现状 1.3.1 COM与CORBA 1.3.2 COM与Enterprise Java Beans 1.3.3 Windows之外的COM 小结 第2章 从C++到COM 2.1 C++客户重用C++对象——例程DB 2.1.1 C++对象 2.1.2 客户程序 2.2 将C++对象移进DLL中——例程DB_cppdll 2.2.1 成员函数的引出 2.2.2 内存分配 2.2.3 Unicode/ASCII兼容 2.2.4 例程实现 2.2.4.1 修改接口文件 2.2.4.2 修改对象程序 2.2.4.3 修改客户程序 2.3 C++对象使用抽象基类——例程DB_vtbl 2.3.1 问题:私有数据成员被暴露 2.3.2 解决方案:抽象基类 2.3.2.1 什么是抽象基类(Abstract Base Class) 2.3.2.2 实现秘诀:虚函数(Virtual Functions) 2.3.3 使用抽象基类 2.3.4 例程实现 2.3.4.1 修改接口文件 2.3.4.2 修改对象程序 2.3.4.3 修改客户程序 2.4 改由COM库装载C++对象——例程dbalmostcom 2.4.1 COM库 2.4.2 对象创建的标准入口点 2.4.3 标准对象创建API 2.4.4 标准对象注册 2.4.5 例程实现 2.4.5.1 修改接口文件 2.4.5.2 修改对象程序 2.4.5.3 修改客户程序 2.5 将C++对象变成COM对象 2.5.1 引用计数 2.5.2 多接口 2.5.3 IUnknown接口 2.5.4 标准类厂接口:IClassFactory 2.5.5 对象代码的动态卸载 2.5.6 自动注册 2.5.7 例程实现 2.5.7.1 修改接口文件 2.5.7.2 修改对象程序 2.5.7.3 修改客户程序 2.6 为COM对象添加多接口支持 2.6.1 多接口 2.6.2 DEFINE_GUID 2.6.3 例程实现 2.6.3.1 修改接口文件 2.6.3.2 修改对象程序 2.6.3.3 修改客户程序 小结 第3章 COM基础知识 3.1 对象与接口 3.1.1 COM对象 3.1.2 COM接口 3.1.3 IUnknown接口 3.1.3.1 生存期控制:AddRef和Release 3.1.3.2 接口查询:QueryInterface 3.1.4 全球唯一标识符GUID 3.1.5 COM接口定义 3.1.6 接口描述语言IDL 3.2 COM应用模型 3.2.1 客户/服务器模型 3.2.2 进程内组件 3.2.3 进程外组件 3.2.4 COM库 3.2.5 HRESULT返回值 3.2.6 COM与注册表 3.3 COM组件 3.3.1 实现类厂对象 3.3.2 类厂对象的创建 3.3.3 实现自动注册 3.3.4 实现自动卸载 3.4 COM客户 3.4.1 COM对象创建函数 3.4.1.1 CoGetClassObject 3.4.1.2 CoCreateInstance 3.4.1.3 CoCreateInstanceEx 3.4.2 如何调用进程内组件 3.4.3 COM客户调用进程外组件 3.5 进一步认识COM 3.5.1 可重用机制:包容和聚合 3.5.2 进程透明性 3.5.3 安全性机制 小结 第4章 COM扩展技术 4.1 可连接对象机制 4.1.1 客户、接收器与可连接对象 4.1.1.1 接收器 4.1.1.2 可连接对象 4.1.1.3 客户 4.1.2 实现可连接对象 4.1.3 实现接收器 4.1.4 建立接收器与连接点的连接 4.1.5 获得出接口的类型信息 4.2 结构化存储 4.2.1 什么叫结构化存储和复合文件 4.2.2 存储对象和IStorage接口 4.2.2.1 IStorage接口 4.2.2.2 获得IStorage指针 4.2.2.3 释放STATSTG内存 4.2.2.4 枚举存储对象中的元

109

社区成员

发帖
与我相关
我的任务
社区描述
202401_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_TeacherL
  • 032002124林日臻
  • 助教姜词杰
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧