软件工程第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546
这个作业的目标 创建github账号和博客园账号,学习在博客园发表随笔的方法,学习并练习markdown语法,为进一步完成软件工程作业奠定基础
学号 102301525

个人资料截图

屏幕截图 2025-10-05 145902

团队仓库

https://github.com/XunBo2023/cuddly-umbrella

自我技能评估

1.掌握C语言/c++程序的编写
2.了解并能使用一些常用数据结构
3.对团队多人编写程序代码不熟悉

代码量

目前代码量:约3k
目标代码量:4k

最期待课程中学习的知识和收获

1.学习完成团队项目
2.个人代码编写能力的提升

学习指南

《软件工程》课程学习指南

核心理念: 软件工程不仅仅是写代码,它是一套关于如何系统化、规范化、可度量地开发和维护软件的学科。学习的重点是过程、方法和思想,而不仅仅是语法或工具。

一、 知识体系与核心模块
你可以将整个课程内容划分为以下几个核心模块来学习:

  1. 软件工程概述与过程模型

重点内容:

什么是软件工程?与编程的区别是什么?

软件生命周期。

各种软件开发过程模型:瀑布模型、V模型、增量模型、敏捷开发、Scrum、极限编程。

学习目标:

理解为什么需要软件工程。

能够比较不同过程模型的优缺点和适用场景。

尤其要熟练掌握敏捷和Scrum,因为这是目前业界的主流。

  1. 需求分析

重点内容:

需求层次:业务需求、用户需求、功能需求、非功能需求。

用例图 和 用例描述:捕获用户与系统的交互。

功能列表、用户故事。

学习目标:

学会如何与“客户”沟通,挖掘和定义需求。

能够为一个小型系统编写需求规格说明(哪怕是简化版的)。

  1. 软件设计

重点内容:

体系结构设计:分层架构、客户端-服务器架构、MVC架构等。

UML建模:类图(核心)、序列图、活动图、状态图。

设计原则:SOLID原则(单一职责、开闭原则等)、高内聚低耦合。

学习目标:

能够根据需求,设计出合理的软件架构。

能够使用类图等工具进行详细的模块设计。

理解优秀设计的原则,并能识别糟糕的设计。

  1. 软件实现与测试

重点内容:

代码规范与可读性。

版本控制:Git 是必须掌握的技能。

软件测试:测试级别(单元测试、集成测试、系统测试)、测试方法(黑盒、白盒)、调试技巧。

学习目标:

养成写整洁、可维护代码的习惯。

熟练使用Git进行代码管理和团队协作。

理解测试的重要性,并能为自己的代码编写单元测试。

  1. 软件维护与项目管理

重点内容:

软件维护的类型(改正性、适应性、完善性)。

项目管理三角:范围、时间、成本。

风险管理和团队协作。

学习目标:

理解软件的大部分成本和生命周期都在维护阶段。

建立项目管理的初步概念。

二、 高效学习方法

  1. 理论联系实际:

核心方法:做一个课程项目! 这是学习软件工程最有效的方式。

选择一个你们感兴趣且难度适中的题目(例如:简单的图书管理系统、在线备忘录、博客系统)。

从需求分析开始,到设计、编码、测试,完整地走一遍软件生命周期。

在实践中,你会深刻理解什么是需求变更、为什么要写文档、团队合作如何沟通、Git如何解决冲突。

  1. 善用工具:

绘图工具:Draw.io(免费)、Lucidchart、Visio。用于画UML图。

版本控制:GitHub、GitLab 或 Gitee。你的项目代码必须放在上面。

项目管理:Trello、Notion 或 GitHub Projects,用来管理你们的用户故事和任务。

IDE:你熟悉的任何IDE,如VS Code、IntelliJ IDEA等。

  1. 主动学习与思考:

课堂之外:阅读一些经典的软件工程书籍或博客,如《代码大全》、《人月神话》(可以作为课外阅读,了解经典思想)。

批判性思维:对于每个理论,思考“它解决了什么问题?”、“它的缺点是什么?”、“如果不用这个方法,会有什么后果?”。例如,思考“为什么现在瀑布模型用得少了?”

  1. 重视团队协作:

如果课程有小组项目,请积极投入。学习如何开会、如何分配任务、如何代码审查、如何解决分歧。这比你一个人拿到高分更有价值。

三、 学习路线图(建议)
第一阶段(课程前期):

掌握软件工程基本概念和过程模型。

组建团队,确定项目选题,完成需求分析(产出:用例图、需求文档)。

学习使用Git和绘图工具。

第二阶段(课程中期):

学习设计原则和UML。

完成项目的软件设计(产出:架构图、类图)。

开始编码,并同步使用Git进行版本管理。

第三阶段(课程中后期):

学习软件测试。

完成编码,并为核心模块编写单元测试。

进行集成和系统测试,修复Bug。

第四阶段(课程末期):

整理所有文档、代码和项目总结。

准备课程答辩或报告。

四、 常见误区与提醒
误区1:“代码能跑就行,设计和文档不重要。”

提醒:对于个人小程序可以,但对于任何有协作和长期维护需求的软件,糟糕的设计和缺失的文档是灾难性的。这门课就是在训练你避免这种情况。

误区2:“把所有需求都想清楚了再开始编码。”

提醒:这是瀑布模型的思维。拥抱变化,采用迭代和增量的方式(敏捷思想),小步快跑,更符合现代软件开发。

误区3:“我的代码只有我能看懂。”

提醒:代码首先是写给人看的,其次才是给机器执行的。可读性是衡量代码质量的重要标准。

总结:

把《软件工程》想象成一本“软件建造手册”。你不仅要读懂它,更要和你的团队一起,亲手“建造”一座小房子(你的课程项目)。在这个过程中,你会遇到图纸(设计)修改、团队成员意见不合、工期紧张等各种问题,而解决这些问题的经验,正是这门课最宝贵的财富。

指南评估

写的非常好,对我很有帮助

编写截图

屏幕截图 2025-10-06 145602

posted @ 2025-10-06 14:57  D3ath”  阅读(13)  评论(0)    收藏  举报