软件工程第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546
这个作业的目标 了解GitHub以及博客园的使用, 掌握git工具,进行Github团队主页搭建
学号 102301432

github主页以及成员介绍
github主页: https://github.com/xuezong691/fzuteam_lakers
成员介绍截图:
QQ_1759735672539

自我评估

已具备能力

1.通过课程习得一定的C语言与C++编程能力
2.较为熟悉各类算法与数据结构
3.正在学习数据库系统和操作系统相关知识

兴趣方向

1.编写能服务生活的应用程序
2.希望能将计算机编程相关知识和金融等领域结合起来

能力缺陷

1.学习深度不足, 对于各项技能学习均不深入
2.实践经验不足, 不具备实际开发能力
3.代码量偏少,没有进行太多的实践操作,大多数知识都停留在理论层面
4.英语水平较差,阅读代码的能力有待增强

代码量

代码量偏少,大概3000行,希望学习本课程之后能达到8000行

最期待在课程中能够学习到

1.希望学习自主工作所需的能力和知识,方便以后找工作
2.增强动手能力和自我学习能力,适应不同工作与学习需求
3.增强打代码的能力

软件工程学习方向​

一、核心学习重点​

1. 基础理论(必学)​

软件工程定义与目标:核心是 “用系统化方法做软件开发、运行与维护”,最终追求 “高质量、低成本、按时交付”。​
软件生命周期(SDLC):记住全流程 —— 需求分析→设计→编码→测试→部署→维护,每个阶段需产出对应文档(如需求文档、测试报告)。​
核心概念:掌握软件质量三要素(可靠性、可维护性、易用性)、软件文档分类与作用、基础成本估算方法(如功能点估算)。​

2. 核心开发方法(重点掌握)​

瀑布模型:线性流程、阶段不可逆,适合需求明确稳定的项目(比如工具类软件)。​
敏捷开发:迭代式推进、快速响应需求变化,互联网产品开发常用(如 APP 迭代)。​
迭代模型:分阶段交付,每个阶段包含完整 SDLC,适合大型复杂项目(如企业管理系统)。​

3. 关键技能(理论 + 实操)​

需求分析:用 “用户故事”“用例图” 梳理需求(工具推荐 Visio、免费的 DrawIO),避免需求模糊。​
软件设计:​
概要设计:拆分项目模块(比如电商系统分用户、订单、支付模块);​
详细设计:描述模块内逻辑(用流程图、伪代码写清算法);​
设计原则:牢记 “高内聚、低耦合”“单一职责”。​
软件测试:​
类型:单元测试(测单个函数 / 类)、集成测试(测模块交互)、系统测试(测整体功能);​
入门工具:Java 用 JUnit,Python 用 pytest,先理解黑盒 / 白盒测试思路。​
版本控制与协作:熟练 Git 基础(提交、分支、合并、解决冲突),搭配 GitHub/GitLab 管理代码,理解团队协作流程。​

4. 实践项目(必做)​

入门级:开发简单工具(如待办清单 APP、图书管理系统),完整走一遍 “需求→设计→编码→测试”,产出全套文档。​
进阶级:参与团队项目(如模拟电商网站原型),练敏捷迭代(比如 2 周 1 个迭代),用 Jira/Trello 跟踪任务。​

二、分阶段学习路径​

阶段 1:入门(1-2 个月)​

目标:掌握基础理论与工具​

具体任务:​

读《软件工程导论》(张海藩),梳理 SDLC 流程;​
用 DrawIO 画 1 个用例图(比如 “图书馆借书系统”);​
学会 Git 基础操作(提交代码、创建分支)。​

阶段 2:进阶(2-3 个月)​

目标:深入开发方法与软件设计​

具体任务:​

学 1 种开发方法(优先敏捷,可看《敏捷软件开发:原则、模式与实践》);​
做 1 个小项目(如学生成绩管理系统),产出需求文档 + 设计图 + 测试用例;​
用 JUnit/pytest 写 3-5 个单元测试用例。​

阶段 3:实战(持续进行)​

目标:积累项目经验与协作能力​

具体任务:​

参与 GitHub 开源小项目,尝试提交 PR;​
模拟团队开发,用 Jira 分配任务、跟踪进度;​
学 1 个开发框架(Java 用 Spring Boot,Python 用 Django),提升编码效率。​

三、推荐学习资源​

1. 书籍​

入门:《软件工程导论》(张海藩,教材级,逻辑清晰);​
进阶:《敏捷软件开发:原则、模式与实践》(Robert C. Martin,敏捷领域经典);​
实践:《代码整洁之道》(提升编码规范性,间接帮你做好工程质量)。​

2. 在线课程​

理论:Coursera《Software Engineering Principles》(斯坦福大学,侧重理论体系);​
实操:慕课网《软件工程实战:从需求到部署》(侧重项目落地流程)。​

3. 入门级工具​

绘图工具:DrawIO(免费)、Visio,用来画用例图、流程图;​
版本控制:Git+GitHub,管理代码 + 团队协作;​
项目管理:Trello(轻量)、Jira,跟踪任务(敏捷团队常用);​
测试工具:JUnit(Java)、pytest(Python),做单元测试。​

四、关键注意事项​

别只学理论,多做项目:软件工程是 “实践学科”,哪怕小项目,也要完整走一遍 SDLC,避免 “懂概念不会落地”;​
重视文档:初学者容易忽略需求文档、设计笔记,但好文档是后续维护、协作的关键,从第一个项目就养成写文档的习惯;​
关注团队协作:单人项目练流程,团队项目练沟通(比如对齐需求、解决代码冲突),这是企业招聘的核心考察点;​
跟踪行业动态:了解 DevOps、低代码开发等新趋势,但先打好基础(SDLC、敏捷、Git),再拓展新技能,别本末倒置。

对于ai生成指南的分析

较为合理,为我提供了学习本门的课程的参考流程,帮助我更好了解这门课程,给出了一些我可能遇到的问题以及解决方法

Markdown编辑器的使用

image

posted @ 2025-10-05 21:44  2614qwq  阅读(8)  评论(0)    收藏  举报