软件工程第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546
这个作业的目标 学习团队合作开发,创建主页,git的使用
学号 102301332

团队主页的网址:

https://github.com/Boshsama/IG-theshyBigHorseHead

个人资料截图

2005

自我评估技能树和偏好

能力 A:Java 核心语法与面向对象编程基础

  • 我已系统学习并理解了 Java 的基础语法、数据类型、流程控制、数组等概念。核心在于,我掌握了面向对象编程的三大特性:封装、继承、多态,并能够运用它们进行简单的程序设计和类结构规划。

能力 B:基础的数据结构与算法应用能力

  • 我学习了常用的数据结构,如数组、链表、栈、队列、二叉树等,并了解其基本操作和适用场景。在算法方面,我能够理解和实现基础的排序、查找算法。

能力 C:基本的版本控制与开发工具使用能力

  • 我掌握了 Git 的基本工作流程,包括仓库初始化、提交、分支切换、与远程仓库同步等操作,能够使用 Git 进行个人项目的版本管理。同时,我能熟练使用 IntelliJ IDEA 等集成开发环境进行代码编写和调试。

主要短板不足:

  • 项目经验不足:我缺乏将所学知识整合运用到完整项目开发中的经验。这导致我对软件工程的生命周期(需求分析、设计、编码、测试、部署)缺乏整体认知。
  • 代码量不足,实践深度不够:我目前的代码量可能仅停留在千行级别,且多为小型练习或实验片段。由于写得少,我在代码风格、设计模式、调试技巧和解决复杂问题的能力上都有很大提升空间。“眼高手低”是我现阶段需要克服的主要问题。
  • 缺乏对前沿技术栈的了解:对于当前工业界常用的技术栈、工具链和开发规范,我的了解还非常有限,理论与实践之间存在断层

代码量

我目前的代码量估计在 3000 行以内,主要是课程练习和小型算法实现,缺乏有完整业务逻辑的项目代码。
在本学期软件工程课程结束后,我期望能达到的代码量是新增 5000 到 10000 行有效代码。 这个目标的核心不在于单纯追求行数,而是希望通过完成课程项目(如开发一个具备前后端功能的完整应用)。


软件工程课程学习指南

一、 学习目标

本指南旨在帮助初学者建立软件工程的系统性思维,掌握从需求分析到软件维护的全流程核心概念和实践方法,为未来的项目开发和团队协作打下坚实基础。

二、 核心学习模块与路径

模块一:思想与流程 (第1-3周)

  • 核心概念: 什么是软件工程?软件的生命周期是什么?
  • 软件过程模型: 理解不同模型的适用场景和优缺点。
    • 传统模型: 瀑布模型、V模型。
    • 现代模型敏捷开发与Scrum框架(重点)、迭代式开发。
  • 需求工程: 学会与用户沟通,明确要构建什么。
    • 区分功能需求非功能需求
    • 学习编写用户故事和绘制用例图

模块二:设计与建模 (第4-6周)

  • 设计原则: 理解高内聚、低耦合的重要性。
  • 体系结构设计: 了解常见的架构风格,如MVC(模型-视图-控制器)、客户端-服务器架构。
  • UML建模: 学会用可视化语言表达设计。
    • 重点掌握类图(描述系统静态结构)、时序图(描述对象间交互顺序)。

模块三:构建与质量保障 (第7-12周)

  • 版本控制Git是必备技能。掌握基本工作流(clone, add, commit, push, pull)和分支管理。
  • 软件测试: 保证软件质量的关键。
    • 测试级别: 单元测试(开发者负责)、集成测试、系统测试。
    • 测试方法: 黑盒测试(不关心内部结构) vs 白盒测试(关心内部逻辑)。
    • 实践: 学习使用JUnit、pytest等框架编写单元测试。
  • 编码实践: 注重代码的可读性、可维护性(命名规范、注释、代码风格)。

模块四:项目管理与维护 (第13-16周)

  • 项目管理基础: 了解任务分解、进度估算、风险管理和团队协作工具。
  • 软件维护: 理解软件交付后的大部分工作属于维护阶段(修正性、适应性、完善性维护)。

三、 实践建议

  1. “做中学”: 选择一个个人感兴趣的小项目(如简易博客、记账软件),尝试将上述流程应用其中。
  2. 工具链熟悉: 尽早使用Git进行代码管理,使用Draw.io等工具画图,选用一款高效的IDE。
  3. 团队体验: 积极参与课程小组项目,这是理解软件工程价值的最佳途径。

四、 学习指南合理性分析

该学习指南的设计是合理且有效的,主要体现在以下几个方面:

1. 结构合理性:遵循软件生命周期

  • 指南的模块顺序(流程->设计->构建->管理)完全符合软件开发的自然生命周期和认知逻辑。学生首先理解“为什么做”和“如何规划”,再进入“怎么做”,最后是“如何管理”,层层递进,结构清晰。

2. 内容合理性:覆盖核心知识域,重点突出

  • 广度适中: 内容涵盖了软件工程课程的核心知识领域,包括软件过程、需求分析、系统设计、测试验证和项目管理,与国内外主流教材大纲高度吻合。
  • 深度得当: 对初学者来说,指南指出了需要“重点掌握”的内容(如敏捷开发、UML中的核心图表、Git),避免了面面俱到带来的学习压力,抓住了关键矛盾。
  • 理论与实践结合: 不仅列出了理论知识,还提供了明确的“实践建议”,强调了动手操作和项目驱动学习的重要性,这正是软件工程的学科特点所要求的。

3. 方法合理性:强调现代工程实践

  • 指南将敏捷开发Git放在突出位置,这符合当前软件行业的实际需求,使学生所学技能与业界接轨,具有很高的实用价值。
  • 强调建模(UML)和测试,培养了学生先设计后编码、重视质量的工程化习惯,而非仅仅关注编程实现。

可能的局限性及使用建议:

  • 时间安排是理想模型: 周次划分是一个参考框架,实际学习进度应灵活调整,以适应个人或课程的节奏。
  • 需与课程大纲结合: 使用者应将其与具体课程的教学大纲、考核要求相结合,进行个性化微调,例如,如果课程重点强调形式化方法,则需要额外补充相关内容。
  • 深度可扩展: 指南提供了学习的主干,对于学有余力或兴趣浓厚的学生,每个模块都可以进一步深化(如深入学习更多设计模式、持续集成/持续部署等)。

结论:这份学习指南作为一个学习框架和路线图是高度合理的。它能有效帮助学习者构建知识体系,明确学习重点,并通过实践建议将理论转化为能力。其成功应用的关键在于学习者的主动执行和灵活调整。

后台编辑页面截图

420

posted @ 2025-09-30 20:16  kyyyy  阅读(68)  评论(0)    收藏  举报