软工第一次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
这个作业的目标 | 熟悉团队协作工具,完成GitHub团队主页和Logo的搭建,撰写个人与团队介绍,并在博客中展示和反思学习成果。 |
学号 | 102301614 |
团队主页
https://github.com/sureyoung86-byte/smilefacetiger
个人资料
自我评估
目前已经具备的能力
-
Vue.js生态的专项开发支持
-
现代前端工程化与构建工具的认知(vite构建工具的使用)
-
浅薄的golang知识
-
git相关的版本控制
-
一点docker知识
欠缺的能力
- 关于前端没有更深入的学习
- golang也没有很深入的了解
代码量
- 可能会有8k行的代码量
- 希望这个项目可以有万行代码量提高一下吧
感兴趣的研究方向
- 前后端系统的对接项目
- 便利的小工具
课程期待
- 框架背后的底层原理
- 完整的工程化与部署流程
- 设计可扩展的大型项目架构
- 系统化解决技术问题的方法
学习指南
由Chatgpt生成
1. 软件工程的基本概念
- 定义:软件工程是研究如何以工程化方法进行软件开发和维护的一门学科。
- 目标:高质量、低成本、按时交付。
- 特点:复杂性大、规模化、协作性强、不断演进。
2. 软件开发生命周期(SDLC)
软件开发的常见阶段(不一定严格线性,可以迭代):
- 需求分析:和用户沟通,明确系统做什么。
- 系统设计:总体设计(架构)和详细设计(模块)。
- 编码实现:选择编程语言和工具实现设计。
- 测试:单元测试、集成测试、系统测试。
- 部署与运行:交付使用,运行维护。
- 维护与升级:修复缺陷、功能扩展。
常见生命周期模型:
- 瀑布模型(线性顺序)
- 增量模型(逐步完善)
- 螺旋模型(风险驱动,迭代)
- 敏捷开发(快速迭代,持续交付)
3. 软件需求
- 需求分类:
- 功能需求(系统要做什么)
- 非功能需求(性能、安全、可用性等)
- 需求获取方法:访谈、问卷、原型、文档分析
- 需求文档:SRS(Software Requirement Specification,需求规格说明书)
4. 软件设计
- 目标:从“做什么”过渡到“怎么做”
- 设计原则:高内聚、低耦合、可扩展性
- 常见方法:结构化设计、面向对象设计(UML建模)
- 设计模式:如单例模式、工厂模式、观察者模式
5. 软件实现与编码
- 遵循编码规范
- 版本控制(如 Git)
- 模块化、可维护性
- 单元测试保证质量
6. 软件测试
- 测试层次:
- 单元测试
- 集成测试
- 系统测试
- 验收测试
- 测试方法:黑盒测试、白盒测试
- 自动化测试工具:Junit、pytest、Selenium
7. 软件维护
- 类型:
- 改正性维护(修bug)
- 适应性维护(适应新环境)
- 完善性维护(增加功能)
- 预防性维护(优化防问题)
8. 项目管理
- 内容:人员、进度、成本、质量
- 工具:
- 甘特图、PERT图
- 敏捷:Scrum、看板(Kanban)
- 风险管理:识别、分析、规避
9. 软件工程常用工具
- 协作工具:GitHub/GitLab、Jira、Trello
- 文档工具:Markdown、LaTeX、Confluence
- 开发环境:IDE(VS Code、IntelliJ、Eclipse)
- 持续集成:Jenkins、GitHub Actions
10. 学习建议
- 理论部分:理解生命周期、需求、设计、测试、维护的基本概念。
- 实践部分:做一个小型软件项目(如课程管理系统、记账工具),体验完整开发流程。
- 总结方法:多用思维导图整理知识点。
学习指南分析
这份学习指南能帮我快速抓住软件工程课程核心知识,理清生命周期与关键环节,既方便考前复习,也能结合我已有的编程经验,加深对实践的理解。