第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546
这个作业的目标 熟悉markdown语法,git,github基础功能
学号 022301121

个人资料

image

团队主页的网址

https://github.com/Hannezs/404-Team-Not-Found

自我评估

目前已具备能力

Java、MySQL、Redis、Spring Boot、Spring Security

感兴趣的方向

后端,网络编程

目前缺乏的能力

网络编程,多人协作经验

代码量和目标

5000+,希望能翻倍

期望学习的知识

多人项目的开发流程

软件工程学习指南

一、课程目标

软件工程是一门研究如何系统化、规范化、高效开发和维护软件的学科。学习这门课程的目标是:

  • 掌握软件开发的流程与方法论;
  • 学会项目管理与团队协作;
  • 理解软件质量保障和工程化实践;
  • 能够在实践中应用(比如课程设计、团队项目)。

二、核心知识点

1. 软件工程基础

  • 软件的定义与特点
  • 软件危机与软件工程的提出
  • 软件生命周期模型(瀑布、V字、螺旋、敏捷等)
  • 软件工程的基本原则

👉 建议掌握:不同生命周期模型的优缺点和适用场景。


2. 需求工程

  • 需求获取、分析、规格说明、验证
  • 用例图、需求文档(SRS)
  • 用户需求 vs 系统需求

👉 建议练习:写一个小系统的需求文档,画用例图。


3. 软件设计

  • 概要设计(系统架构、模块划分)
  • 详细设计(数据结构、接口设计、数据库设计)
  • 设计原则(高内聚低耦合、单一职责、开闭原则等)
  • UML建模(类图、时序图、活动图)

👉 建议练习:给课程项目画类图、模块图。


4. 软件实现

  • 编码规范(命名、注释、风格)
  • 设计模式(工厂、单例、观察者、MVC等)
  • 常见开发框架与工具

👉 建议:选用熟悉的语言(如Java/Python),在项目中尝试用 1–2 个设计模式。


5. 软件测试

  • 单元测试、集成测试、系统测试、验收测试
  • 白盒测试、黑盒测试方法
  • 自动化测试框架(JUnit, PyTest 等)

👉 建议:学会写单元测试,掌握基本覆盖率分析。


6. 软件维护与演化

  • 纠错性维护、适应性维护、完善性维护、预防性维护
  • 软件重构与代码优化

👉 建议:尝试维护一个旧代码库,写下遇到的痛点和改进方案。


7. 软件项目管理

  • 项目计划、进度控制、成本估算(COCOMO模型)
  • 人员管理与团队协作
  • 风险管理
  • 敏捷开发(Scrum、Kanban)

👉 建议:在小组作业中用 Git + issue + Scrum 看板。


8. 软件质量与工程化

  • 软件质量模型(McCall、ISO 9126)
  • 配置管理与版本控制(Git, SVN)
  • 持续集成与持续部署(CI/CD)
  • 文档管理

👉 建议:学习使用 GitHub/GitLab 做版本管理,尝试CI工具。


三、学习方法

  1. 理论 + 实践结合
    光背理论没用,要在项目或作业中应用(需求文档、设计图、测试报告等)。

  2. 多画图
    UML图(用例、类、时序)非常重要,画图能理清思路。

  3. 团队合作
    软件工程强调团队,学会分工、写文档、做评审。

  4. 工具熟练度

    • Git / GitHub
    • 项目管理工具(如 Trello, Jira)
    • 设计工具(如 StarUML, PlantUML, draw.io)
    • 测试工具(如 JUnit, Postman)

四、推荐学习资源

  • 教材:《软件工程(第9版)》(Ian Sommerville)
  • 中文书:《软件工程导论》(张海藩)
  • 课程资源:MIT OpenCourseWare, Coursera 软件工程课程
  • 工具实践:GitHub 实际项目协作

五、学习路线建议

  1. 第一阶段:理解软件工程概念和软件生命周期模型。
  2. 第二阶段:学习需求工程与UML建模,能写需求规格说明书。
  3. 第三阶段:学习软件设计,掌握架构设计和设计模式。
  4. 第四阶段:结合课程项目进行编码实践,掌握测试方法。
  5. 第五阶段:理解项目管理、配置管理,体验敏捷开发。
  6. 第六阶段:进行课程设计或大作业,写完整文档。

📌 总结:
软件工程不是光靠背书,而是一个“文档 + 团队 + 工具 + 规范”的综合实践课程。最好的学习方式就是在课程项目里,把每个阶段的知识点用上。

分析

符合当前软件开发流程,具有学习借鉴意义。

posted @ 2025-10-04 10:12  Gokin—denyo  阅读(20)  评论(0)    收藏  举报