软件工程第一次作业
软件工程第一次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
这个作业的目标 | 一、基础工具准备(GitHub 、博客园)二、掌握基础的 Git 操作、AI 工具的使用、Markdown 文档的编写 三、协作搭建 Github 团队主页 |
学号 | 102301635 |
Github团队主页搭建
团队主页网址
https://github.com/b-yx/EchoLogic
成员资料截图
团队LOGO
自我评估
一、目前已经具备的专业知识和能力
- 扎实的基础: 熟悉 C/C++
- 开发能力: 熟悉Git的使用
二、对哪类技术方向有兴趣
后端,算法
三、觉得自己还缺少的能力
目前可以说是什么都不会,所以说是什么都缺
目前的代码量&结课之后希望达到的代码量
到目前为止,我打的代码基本都是在算法题,写了1000+题算法题,但是工程类的代码为0。希望本学期这门课完成后,工程类的代码增加5000行以上吧。
最期待在课程中能够学习到的知识与收获
- 从“只会写一些.cpp文件的算法题” 到
“了解完整的开发过程”。过去写的各种大模拟算法只是问题的高度抽象与提炼,而实际的软件开发需要涉及多个模块。期待学习到一个软件从
“用户有需求” 到 “最终能用”,每个阶段要产出什么,怎么把软件的一个功能拆成小模块实现,模块之间怎么对接才不会乱。 - 收获能落地的项目经验:拥有一个 “拿得出手的小项目”;解决实际问题的思维;积累关于开发过程的细节与坑点的经验。
软件工程课程学习指南
一、课程核心目标
-
理解软件工程的基本概念、原则与价值,明确其在软件开发中的作用(解决大型 / 复杂软件项目的质量、效率、可维护性问题)。
-
掌握软件开发生命周期各阶段的核心流程、方法与工具。
-
具备参与小型软件项目开发的能力,能运用软件工程思想解决实际问题。
-
培养团队协作、需求分析、风险管控等工程化思维。
二、主要学习内容模块
(一)基础理论模块
-
核心知识点:软件工程定义、软件危机与解决方案、软件质量属性(可靠性、可扩展性、易用性等)、软件分类(系统软件、应用软件、支撑软件)。
-
学习重点:理解 “工程化” 对软件开发的意义,区分软件工程与单纯 “编程” 的差异。
(二)软件开发生命周期(SDLC)模块
-
开发模型:瀑布模型(线性流程,适合需求明确场景)、敏捷模型(迭代开发,如 Scrum、Kanban,适合需求多变场景)、原型模型(快速构建 demo 验证需求)等,需掌握各模型的适用场景与优缺点。
-
各阶段核心任务:
-
需求分析:学习需求获取(访谈、问卷、用例图)、需求文档(SRS)编写,明确 “软件做什么”。
-
软件设计:分为概要设计(模块划分、架构设计,如 MVC)和详细设计(接口设计、数据结构设计),掌握 UML 图(类图、时序图)工具。
-
编码实现:结合编程语言(如 Java、Python),遵循编码规范(命名、注释、代码复用),理解模块化、高内聚低耦合原则。
-
测试阶段:学习测试类型(单元测试、集成测试、系统测试、验收测试)、测试方法(黑盒测试、白盒测试),掌握基础测试工具(如 JUnit、Selenium)。
-
部署与维护:了解软件部署流程(环境配置、版本发布),以及维护类型(纠错性维护、适应性维护、完善性维护)。
(三)项目管理与协作模块
-
核心内容:项目计划(进度安排、资源分配、成本估算)、风险管理(风险识别、评估与应对)、团队协作工具(Git 版本控制、Jira 任务管理、Confluence 文档协作)。
-
学习重点:掌握 Git 基本操作(提交、分支、合并、冲突解决),理解团队开发中的角色分工(产品经理、开发工程师、测试工程师)。
三、实用学习方法
- 理论结合实践:
-
课后完成小型案例(如开发一个简单的待办事项 APP),将需求分析、设计、编码、测试流程完整走一遍。
-
参与小组项目,模拟真实团队开发场景,练习协作与沟通。
- 工具实操优先:
- 主动安装并使用核心工具(Git、DrawIO 画 UML 图、Jira),通过 “边做边查文档” 替代单纯记理论。
- 案例复盘学习:
- 分析经典项目案例(如开源项目的架构设计、迭代过程),或研究软件失败案例(如因需求变更失控导致的项目延期),总结经验教训。
- 定期梳理知识框架:
- 用思维导图整理 SDLC 各阶段的流程、方法与工具,形成 “知识点关联网络”,避免碎片化记忆。
四、推荐学习资源
-
教材:《软件工程:实践者的研究方法》(经典入门教材,案例丰富)、《敏捷软件开发:原则、模式与实践》(聚焦敏捷模型)。
-
在线课程:
-
Coursera《Software Engineering Essentials》(IBM 开设,侧重实践)。
-
慕课网《软件工程导论》(国内高校课程,贴合课程大纲)。
- 工具文档与社区:
-
Git 官方文档(https://git-scm.com/doc)、Jira 官方教程(Atlassian Academy)。
-
Stack Overflow(解决开发与测试中的实际问题)、GitHub(参考开源项目的开发流程)。
五、分阶段学习计划(示例,可根据课程进度调整)
阶段 | 时间(建议) | 核心任务 |
---|---|---|
基础阶段 | 第 1-2 周 | 学习软件工程基础概念、SDLC 流程,掌握 Git 基本操作 |
进阶阶段 | 第 3-8 周 | 分模块学习需求分析、设计、编码、测试,完成 1 个单人小项目 |
实战阶段 | 第 9-16 周 | 参与小组项目,运用敏捷模型迭代开发,完成测试与部署 |
复盘阶段 | 课程最后 2 周 | 整理项目文档,复盘学习漏洞,补充薄弱模块(如风险管理) |
对学习指南的感想
我觉得很有用,使我对这门课有了一个更加清晰的认识,了解一个大致的学习方向