随笔0907
自我评估
💼专业知识和能力:
1.掌握C、Python、Java等编程语言
2.能够使用Spark、Hadoop等大数据处理工具
💡兴趣方向:
1.数据库的搭建与应用
2.数据分析方面
3.机器学习、深度学习,如神经协同过滤等
✏️代码量:
目前:5000行左右
目标:希望努力突破自我,写出上万行的经验
📖自我反思:
1.平时写代码还是太少了,应该多实践
2.我对数据结构与算法还不够熟悉,应主动训练
3.总的来说应该勇于实践,利用好课余时间锻炼自己的能力
⭐学习期望:
1.初次接触软件工程实践,对其中的团队配合、沟通等较为生疏,希望能得到锻炼
2.了解软件开发过程,以此熟悉以后的工作状况等
3.在与同学们共同开发时提高自己的编程、创新等能力
软件工程学习指南
1. 课程概述
目标: 掌握软件工程的基本概念、流程和工具,能够设计、开发和维护软件项目。
内容:
- 软件工程基础
- 软件开发生命周期
- 项目管理
- 需求分析
- 设计与架构
- 编码与实现
- 测试与质量保证
- 维护与演进
2. 基础概念
2.1 软件工程简介
- 定义: 软件工程是应用工程原理和技术来设计、开发和维护软件系统的学科。
- 目标: 提高软件质量,降低开发成本和维护难度。
2.2 软件开发生命周期 (SDLC)
- 阶段:
- 需求分析
- 系统设计
- 实现(编码)
- 测试
- 部署
- 维护
2.3 软件开发模型
- 瀑布模型: 顺序进行各个阶段。
- 迭代模型: 重复进行开发和测试。
- 敏捷模型: 快速迭代,强调团队合作和灵活应对变化。
3. 项目管理
3.1 计划与估算
- 工作分解结构 (WBS): 将项目任务分解成可管理的部分。
- 进度计划: 制定时间表,设定里程碑。
- 资源管理: 分配人力和物力资源。
3.2 风险管理
- 识别风险: 确定潜在的项目风险。
- 评估风险: 评估风险的影响和可能性。
- 应对风险: 制定应对策略。
4. 需求分析
4.1 需求收集
- 方法: 调研、访谈、问卷、观察。
- 工具: 需求文档、用户故事。
4.2 需求建模
- 图表: 用例图、数据流图、状态图。
- 文档: 需求规格说明书(SRS)。
5. 设计与架构
5.1 系统设计
- 设计原则: 模块化、封装、抽象。
- 设计模式: 单例模式、观察者模式、工厂模式。
5.2 软件架构
- 架构风格: 分层架构、客户端-服务器架构、微服务架构。
- 图表: 类图、时序图、组件图。
6. 编码与实现
6.1 编程实践
- 编码规范: 代码风格、命名规则。
- 工具: 版本控制(Git)、集成开发环境(IDE)。
6.2 代码审查
- 目的: 提高代码质量、发现潜在问题。
- 方法: 同行审查、自动化工具。
7. 测试与质量保证
7.1 测试类型
- 单元测试: 测试单个模块或组件。
- 集成测试: 测试模块之间的交互。
- 系统测试: 测试整个系统的功能。
- 验收测试: 验证系统是否满足需求。
7.2 测试工具
- 自动化测试: 使用工具进行自动化测试(如JUnit、Selenium)。
8. 维护与演进
8.1 维护类型
- 纠错: 修复缺陷。
- 增强: 添加新功能或改进现有功能。
- 适应: 修改以适应新的环境或技术。
8.2 演进过程
- 版本管理: 跟踪和管理软件版本。
- 文档维护: 更新项目文档和用户手册。
9. 参考资料
- 书籍:
- 《软件工程:实践者的研究方法》 - Roger S. Pressman
- 《设计模式:可复用面向对象软件的基础》 - Erich Gamma 等
- 在线资源:
- Coursera、edX、Udacity 上的软件工程课程
- GitHub 上的开源项目
指南评估
🔧选取工具:
chatgpt
⚡点评:
优点
1.辅以参考资料书籍推荐与在线学习课程,拓展了课外学习的空间
2.理论学习指引条例明晰,作为指南简洁利落
缺点
1.只是注重理论上的学习指南,并没有强调软件工程最重要的实践部分
2.推荐过于全面,重点不清晰