软件工程第一次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
这个作业的目标 | 创建github账号和博客园账号,学习在博客园发表随笔的方法,学习并练习markdown语法,为进一步完成软件工程作业奠定基础 |
学号 | 102301525 |
个人资料截图
团队仓库
https://github.com/XunBo2023/cuddly-umbrella
自我技能评估
1.掌握C语言/c++程序的编写
2.了解并能使用一些常用数据结构
3.对团队多人编写程序代码不熟悉
代码量
目前代码量:约3k
目标代码量:4k
最期待课程中学习的知识和收获
1.学习完成团队项目
2.个人代码编写能力的提升
学习指南
《软件工程》课程学习指南
核心理念: 软件工程不仅仅是写代码,它是一套关于如何系统化、规范化、可度量地开发和维护软件的学科。学习的重点是过程、方法和思想,而不仅仅是语法或工具。
一、 知识体系与核心模块
你可以将整个课程内容划分为以下几个核心模块来学习:
- 软件工程概述与过程模型
重点内容:
什么是软件工程?与编程的区别是什么?
软件生命周期。
各种软件开发过程模型:瀑布模型、V模型、增量模型、敏捷开发、Scrum、极限编程。
学习目标:
理解为什么需要软件工程。
能够比较不同过程模型的优缺点和适用场景。
尤其要熟练掌握敏捷和Scrum,因为这是目前业界的主流。
- 需求分析
重点内容:
需求层次:业务需求、用户需求、功能需求、非功能需求。
用例图 和 用例描述:捕获用户与系统的交互。
功能列表、用户故事。
学习目标:
学会如何与“客户”沟通,挖掘和定义需求。
能够为一个小型系统编写需求规格说明(哪怕是简化版的)。
- 软件设计
重点内容:
体系结构设计:分层架构、客户端-服务器架构、MVC架构等。
UML建模:类图(核心)、序列图、活动图、状态图。
设计原则:SOLID原则(单一职责、开闭原则等)、高内聚低耦合。
学习目标:
能够根据需求,设计出合理的软件架构。
能够使用类图等工具进行详细的模块设计。
理解优秀设计的原则,并能识别糟糕的设计。
- 软件实现与测试
重点内容:
代码规范与可读性。
版本控制:Git 是必须掌握的技能。
软件测试:测试级别(单元测试、集成测试、系统测试)、测试方法(黑盒、白盒)、调试技巧。
学习目标:
养成写整洁、可维护代码的习惯。
熟练使用Git进行代码管理和团队协作。
理解测试的重要性,并能为自己的代码编写单元测试。
- 软件维护与项目管理
重点内容:
软件维护的类型(改正性、适应性、完善性)。
项目管理三角:范围、时间、成本。
风险管理和团队协作。
学习目标:
理解软件的大部分成本和生命周期都在维护阶段。
建立项目管理的初步概念。
二、 高效学习方法
- 理论联系实际:
核心方法:做一个课程项目! 这是学习软件工程最有效的方式。
选择一个你们感兴趣且难度适中的题目(例如:简单的图书管理系统、在线备忘录、博客系统)。
从需求分析开始,到设计、编码、测试,完整地走一遍软件生命周期。
在实践中,你会深刻理解什么是需求变更、为什么要写文档、团队合作如何沟通、Git如何解决冲突。
- 善用工具:
绘图工具:Draw.io(免费)、Lucidchart、Visio。用于画UML图。
版本控制:GitHub、GitLab 或 Gitee。你的项目代码必须放在上面。
项目管理:Trello、Notion 或 GitHub Projects,用来管理你们的用户故事和任务。
IDE:你熟悉的任何IDE,如VS Code、IntelliJ IDEA等。
- 主动学习与思考:
课堂之外:阅读一些经典的软件工程书籍或博客,如《代码大全》、《人月神话》(可以作为课外阅读,了解经典思想)。
批判性思维:对于每个理论,思考“它解决了什么问题?”、“它的缺点是什么?”、“如果不用这个方法,会有什么后果?”。例如,思考“为什么现在瀑布模型用得少了?”
- 重视团队协作:
如果课程有小组项目,请积极投入。学习如何开会、如何分配任务、如何代码审查、如何解决分歧。这比你一个人拿到高分更有价值。
三、 学习路线图(建议)
第一阶段(课程前期):
掌握软件工程基本概念和过程模型。
组建团队,确定项目选题,完成需求分析(产出:用例图、需求文档)。
学习使用Git和绘图工具。
第二阶段(课程中期):
学习设计原则和UML。
完成项目的软件设计(产出:架构图、类图)。
开始编码,并同步使用Git进行版本管理。
第三阶段(课程中后期):
学习软件测试。
完成编码,并为核心模块编写单元测试。
进行集成和系统测试,修复Bug。
第四阶段(课程末期):
整理所有文档、代码和项目总结。
准备课程答辩或报告。
四、 常见误区与提醒
误区1:“代码能跑就行,设计和文档不重要。”
提醒:对于个人小程序可以,但对于任何有协作和长期维护需求的软件,糟糕的设计和缺失的文档是灾难性的。这门课就是在训练你避免这种情况。
误区2:“把所有需求都想清楚了再开始编码。”
提醒:这是瀑布模型的思维。拥抱变化,采用迭代和增量的方式(敏捷思想),小步快跑,更符合现代软件开发。
误区3:“我的代码只有我能看懂。”
提醒:代码首先是写给人看的,其次才是给机器执行的。可读性是衡量代码质量的重要标准。
总结:
把《软件工程》想象成一本“软件建造手册”。你不仅要读懂它,更要和你的团队一起,亲手“建造”一座小房子(你的课程项目)。在这个过程中,你会遇到图纸(设计)修改、团队成员意见不合、工期紧张等各种问题,而解决这些问题的经验,正是这门课最宝贵的财富。
指南评估
写的非常好,对我很有帮助