随笔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)

  • 阶段:
    1. 需求分析
    2. 系统设计
    3. 实现(编码)
    4. 测试
    5. 部署
    6. 维护

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.推荐过于全面,重点不清晰

posted @ 2024-09-07 23:42  okiqiiii  阅读(7)  评论(0编辑  收藏  举报