软件工程实践总结——It's the end.૮(˶ᵔ ᵕ ᵔ˶)ა

052006133熊鹏程 学生 2023-06-07 19:02:45
这个作业属于哪个课程2023年福大-软件工程实践-W班
这个作业要求在哪里软件工程实践寒假作业软件工程实践总结&个人技术博客
这个作业的目标课程回顾与总结、个人技术总结
其他参考文献《构建之法》

一、课程回顾与总结

1.1 寒假作业博客链接

https://bbs.csdn.net/topics/613427449

1.2 问题的重新思考

问题一:为什么要在大学中只用一学期软件工程,时间够吗?

在大学中只学习一学期的软件工程是相对较短的时间,但可以提供学生基本的软件工程知识和技能。虽然一学期时间有限,但软件工程课程通常会涵盖一些关键概念和实践,使学生能够理解软件开发的基本原理和方法。尽管一学期的时间限制了软件工程课程的深度和广度,但它仍然可以为学生提供基本的软件工程知识和技能,为他们在未来的学习和职业发展中打下基础。实际上,软件工程是一个广阔而复杂的领域,需要长期的学习和实践才能真正掌握。因此,一学期的课程只是一个起点,学生可以在毕业后通过自学、实习或专业进修进一步深入研究和实践软件工程。

问题二:认为软件系统十分复杂是不是因为软件工程还没有充分发展?

软件系统的复杂性不仅是由于软件工程的发展不充分,还受到需求复杂性、技术复杂性、系统规模和集成、可变性和维护、人为因素的影响。虽然软件工程在过去几十年中取得了很大的进展,但软件系统的复杂性是一个根本性的挑战,可能永远无法完全消除。

问题三:关于“足够好”的软件,定义是否缺少维度?

确实,对于软件是否“足够好”的定义可以有多个维度,而仅仅从一个维度来评判软件的质量可能是不充分的。评估软件质量时,需要综合考虑多个维度,并权衡不同的需求和优先级。只有从多个维度全面评估软件,才能得出更准确和全面的判断,确定软件是否达到了“足够好”的标准。

问题四:在找工作方面,计算机科学相比软件工程的同学是否不存在任何优势?

在找工作方面,计算机科学和软件工程的学生都可以具备一定的优势,具体取决于所申请的职位要求和公司的需求。无论是计算机科学还是软件工程的学生,在找工作时都应注意准备好综合素质和技能,包括理论知识、实践经验和软技能。此外,根据自身的兴趣和发展方向,选择适合自己的领域和岗位,通过实习、个人项目等方式积累相关经验,能够提升自己的竞争力。

问题五:软件的行为和用户的期望值不一样,就一定是 Bug 吗?

不一定。软件的行为与用户的期望值不一致,并不总是由于 Bug 或编程错误导致的。当软件的行为与用户的期望不一致时,开发团队需要仔细调查原因,并确定是否是由于编程错误导致的 Bug。如果是 Bug,开发团队将需要识别、修复和测试这些问题。然而,有时候用户的期望也可能需要进一步的沟通和理解,以便确定是否需要调整软件的功能或改进用户体验。

1.3 新的问题

Q1:过度复杂性:在软件工程中,过度复杂性是一个常见的问题。这种情况下,软件系统的设计和实现变得过于复杂,难以理解、修改和维护。可能的原因包括不良的系统架构、缺乏适当的模块化和抽象,以及过度工程化的倾向。过度复杂性会增加开发和维护的难度,并增加引入错误的风险。解决这个问题的方法之一是通过良好的软件架构设计、模块化开发和简化设计来降低系统的复杂性。

Q2:不合理的进度和资源管理:软件工程项目可能面临进度延迟、资源不足或分配不当的问题。这可能是由于不充分的需求分析、不准确的时间估计、人员不足或团队沟通不畅等原因引起的。不合理的进度和资源管理会导致项目延期、质量下降,甚至可能导致项目失败。解决这个问题的方法包括制定合理的项目计划、准确评估时间和资源需求、合理分配任务和跟踪进度,并加强团队之间的沟通和协作。

1.4 项目各阶段收获

1.4.1 需求阶段

  • 需求分析和规格说明书编写:学习如何收集和理解用户需求,将其转化为可执行的规格说明书。

  • 需求验证和确认:学习如何与用户进行有效的沟通和反馈,以确保需求的准确性和完整性。

1.4.2 设计阶段

  • 系统架构设计:学习如何设计一个可靠、可扩展和高效的系统架构,包括组件划分、模块化和接口设计等。

  • 数据库设计:学习如何设计和优化数据库结构,确保数据的完整性、一致性和安全性。

1.4.3 实现阶段

  • 编程技能和编码实践:通过实际的编码工作,学习如何应用编程语言和工具,实现软件系统的功能和要求。

  • 代码质量和规范:学习如何编写可读性高、可维护性好的代码,并遵循良好的编码规范和最佳实践。

1.4.4 测试阶段

  • 测试策略和方法:学习如何制定全面的测试策略,包括单元测试、集成测试和系统测试等,以确保软件的质量和稳定性。

  • 调试和故障排除:学习如何分析和解决软件中的问题和错误,使用调试工具和技术进行故障排查。

1.4.5 发布阶段

  • 部署和发布管理:学习如何有效地部署和发布软件,包括配置管理、版本控制和部署流程等。

  • 用户支持和维护:学习如何提供用户支持,收集用户反馈并进行问题解决,进行软件的更新和维护。

1.5 心得体会

1.5.1 个人项目

  • 自主学习和实践:个人项目提供了独立学习和实践的机会,我可以根据自己的兴趣选择项目,并根据自己的节奏进行学习和开发。这有助于提高自我驱动力和问题解决能力。

  • 全面担责:在个人项目中,我将承担所有角色和责任,负责项目的需求分析、设计、编码、测试和部署等方面。这有助于培养全面的技术能力和项目管理技巧。

1.5.2 结对项目

  • 共同思考和学习:结对编程是与另一个开发者一起合作编写代码的过程。这种合作可以促进共同思考和学习,促进团队之间的知识共享和技能提升。

  • 错误检测和质量保证:两个人一起编程可以相互检查代码,减少错误和缺陷。通过结对编程,我可以提高代码质量、减少漏洞,并且在早期发现和纠正问题。

1.5.3 团队项目

  • 协作和沟通:团队项目是与多个开发者共同合作的过程,需要良好的协作和沟通能力。通过团队合作,可以学习如何有效地与他人合作、分工合作,并理解如何在整个项目中互相支持和协调。

  • 时间管理和项目组织:团队项目通常有严格的时间限制和进度要求。这要求团队成员学习时间管理和项目组织技巧,以确保项目按时交付,并协调好不同成员的工作。

1.6 自我评分

目标自我评分解释或说明
理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。85在课堂学习中,我深入了解了软件工程师的职业道德规范和实践要求,并认识到软件产品对社会和文化的影响。我积极培养了积极向上的软件开发理念。还有一些细节和实践方面可以进一步提高。
掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。90我在课程中全面掌握了需求分析的过程,学会了辨别客户多样化的需求,并能够使用需求表达工具来准确地表达客户需求。我还能构建需求分析模型,但在一些复杂场景下仍有提高空间。
掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。80在课程中,我学习并掌握了软件开发的全过程,了解了体系结构设计方法和基本设计原则,并能够进行正式的技术评审。我能够完成体系结构设计模型、数据设计模型和构件级设计模型,并形成高效可靠的设计方案,但在一些复杂系统方案的优化方面需要进一步提升。
能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案95在课程中,我具备了从组件到软件系统的技术评测能力,并能够评判设计模型。我能够灵活运用创新设计思维,并优选设计方案。在创新方面取得了不错的进展,但仍有继续学习和发展的空间。
遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。90课程中我掌握了软件开发各阶段的文档标准和规范表达方式,能够撰写需求规格说明书、系统设计说明书和系统测试报告等文档。我还能够与业界同行进行有效的交流,但还可以进一步提高文档撰写的准确性和清晰度。
具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。85在课程中,我发展了良好的团队意识和合作技能,能够与其他成员有效地沟通和协作。我能够组织、协调和指挥团队工作,但在一些挑战和冲突处理方面仍需提高。
能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。90在课程中,我能够识别软件项目管理中涉及的构成要素,并掌握了软件规模和工作量的估算方法。我能够选择合适的工具来规划软件进度,并对项目管理过程进行配置。我已经具备初步管理复杂软件工程项目的能力,但还需要进一步实践和经验积累。

二、个人技术总结

个人技术博客——GinFramework

概述:Gin Framework(或称为Gin)是一个轻量级的Go语言Web框架,用于构建高性能的Web应用程序和API服务。它基于Go语言的标准库,并且具有简单、快速、高效的特点。Gin框架具有轻量级设计和快速的执行速度。它的性能表现出色,并且在处理HTTP请求时具有低延迟和高吞吐量。Gin提供了简洁而直观的API,使得开发者可以快速上手并构建功能丰富的Web应用程序。它采用了类似于其他Web框架的路由、中间件和上下文的概念,使开发过程更加简单和高效。Gin框架提供了灵活且易于使用的路由功能,可以轻松定义和处理不同HTTP请求的路由规则。同时,Gin还支持中间件,可以方便地实现身份验证、日志记录、错误处理等常见的功能扩展。

...全文
201 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
助教张富源 助教 2023-06-15
  • 打赏
  • 举报
回复

软件工程是需要不断学习,不断更新自己知识库的,希望以后继续努力

SoftwareTeacher 2023-06-14
  • 打赏
  • 举报
回复

虽然软件工程在过去几十年中取得了很大的进展,但软件系统的复杂性是一个根本性的挑战,可能永远无法完全消除。


AI 技术可以解决这个问题么?

685

社区成员

发帖
与我相关
我的任务
社区描述
2023年福州大学软件工程实践课程W班的教学社区
软件工程团队开发软件构建 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • aboutazhang
  • 郭渊伟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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