首页 > 其他分享 >《代码中的软件工程》学习总结及心得体会

《代码中的软件工程》学习总结及心得体会

时间:2023-07-10 20:25:22浏览次数:47  
标签:心得体会 软件设计 代码 学习 用例 软件工程 软件

本学期我选修了孟宁老师开设的《高级软件工程》课程,作为一名软件工程专业的学生,本课程的内容以及《代码中的软件工程》一书让我受益匪浅。在课程以及书本内容中,我了解到软件工程的概念和重要性。软件工程是一门研究如何以系统化、规范化和可量化的方式开发和维护软件的学科。通过学习软件工程,我们可以提高软件开发的效率和质量,并降低软件项目的风险。以下是我在每一具体章节的感受与收获:

  1. 工欲善其事必先利其器: 这个章节介绍了一些在软件开发过程中常用的工具和技术。我学习了如何使用 Visual Studio Code 这个强大的编程神器,以及如何在不同场景下灵活运用 Git 版本控制工具。Git是一个分布式版本控制系统,它可以帮助开发人员有效地管理和跟踪代码的变化。学习的内容主要包括:

    • Git的基本概念:了解Git的基本概念,如仓库(Repository)、分支(Branch)、提交(Commit)等。
    • 版本控制:掌握Git的基本命令,如初始化仓库、添加文件、提交更改、查看提交历史等,以便对代码进行版本控制。
    • 分支管理:学习如何创建和切换分支,并了解分支的概念和用途,如开发新功能、修复错误等。
    • 远程仓库和协作:掌握与远程仓库的交互,包括克隆仓库、推送和拉取代码,以及协同工作的流程。

    此外,我还学习了正则表达式的基本语法和应用,这对于处理文本和模式匹配非常有用。 正则表达式是一种强大的文本模式匹配工具,它可以用于检索、替换和验证字符串,其中包括:

    • 基本语法:了解正则表达式的基本语法,如字符匹配、元字符、字符类等。例如,使用.匹配任意字符,使用[]表示字符集合,使用*表示重复零次或多次等。
    • 常用模式:学习常用的正则表达式模式,如匹配数字、字母、空白字符等特定模式的字符串。例如,使用\d匹配数字,使用\w匹配字母数字字符等。
    • 高级技巧:了解一些高级的正则表达式技巧,如捕获组、非贪婪匹配、前后查找等。这些技巧可以帮助更精确地匹配和提取所需的文本模式。
  2. 代码中的软件工程: 在这个章节中,我学习了如何在代码层面应用软件工程的原理。首先,我了解到代码规范和代码风格的重要性,通过编写规范的代码可以提高代码的可读性和可维护性。接着,我学习了模块化软件设计和可重用软件设计的方法,这些方法可以帮助我将复杂的系统划分为独立的模块,并实现代码的复用性和可扩展性。此外,我还学习了可重入函数和线程安全的概念,这对于多线程编程和并发控制非常重要。最后,通过参与一个Menu的实战项目,我深入了解了工程化编程的实践方法和技巧。

  3. 从分析到设计的基本方法: 在这个章节中,我学习了如何从需求分析到软件设计。首先,我学习了需求获取的主要方法,包括用户访谈、文档分析和场景模拟等。然后,我学习了如何对需求进行分析和建模,以确保需求的准确性和完整性。最后,我了解了从需求分析到软件设计的过程和方法,包括用例图、类图和时序图等。用例图建模过程包括确定参与者、确定用例、建立参与者和用例之间的关系、使用关联关系将参与者与用例进行关联。类图建模过程:包括确定类、确定类之间的关系、添加类的属性和方法、识别接口和抽象类。时序图建模过程包括识别参与者和对象、确定消息流、定义生命周期和交互顺序、添加控制结构和循环。这些建模工具可以帮助开发人员和设计师更好地理解系统的需求和结构,并提供一种可视化的方式来表示系统的行为和交互。通过使用用例图、类图和时序图,可以更好地进行软件设计和系统架构,从而实现高质量的软件开发。

  4. 软件科学基础概论: 在这个章节中,我学习了软件的基础概念和软件设计模式。我了解到软件是由代码和数据组成的,而软件设计模式是解决常见设计问题的经验性的可复用方案。此外,我还学习了一些常见的软件架构举例,以及如何描述和选择适合的软件架构风格。最后,我了解了高质量软件的特征和标准,包括可靠性、可维护性和可扩展性等。

  5. 软件危机的前生后世: 在这个章节中,我了解了软件危机和软件过程模型。软件危机是指在软件开发过程中遇到的困难和挑战,而软件过程模型是一种组织和管理软件开发的方法。我学习了个人软件过程(PSP)和团队软件过程(TSP)的概念,它们可以帮助开发人员提高工作效率和质量。此外,我还学习了 CMM/CMMI 模型和敏捷方法,它们是软件过程改进和敏捷开发的重要方法和框架。最后,我了解了 DevOps 的概念和实践,它通过将开发和运维紧密结合,加强了软件交付和运维的协同性和效率。

通过本学期的学习,我深入了解了软件工程的原理和实践,提高了对软件开发过程的理解和能力。我将继续在实际项目中应用所学知识,并不断提升自己在软件工程领域的技术和专业能力。

参考资料:《代码中的软件工程》

标签:心得体会,软件设计,代码,学习,用例,软件工程,软件
From: https://www.cnblogs.com/zxc3wyx/p/17542227.html

相关文章

  • JavaScript加密:常见加密种类、优缺点和代码示例
    当涉及到JavaScript加密时,有多种加密算法和技术可供选择。下面我将列举一些常见的加密种类、它们的优缺点,并提供一些代码案例作为参考。对称加密算法:对称加密算法使用相同的密钥进行加密和解密。常见的对称加密算法包括AES(AdvancedEncryptionStandard)和DES(DataEncryptionS......
  • MarkDown的特殊效果编辑源代码格式
    前置条件:所有符号一律使用英文输入法(#、*、-在英文和中文输入法中相同,故不做区分)标题:#+空格+标题具体到几级标题就用几个#,typora最多6个字体变化:在字体两边添加         *字体*斜体         **字体**加粗     ......
  • C# JObject.Add方法代码示例
    本文整理汇总了C#中Newtonsoft.Json.Linq.JObject.Add方法的典型用法代码示例。如果您正苦于以下问题:C#JObject.Add方法的具体用法?C#JObject.Add怎么用?C#JObject.Add使用的例子?那么恭喜您,这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Newtons......
  • 消除企业信息孤岛的低代码开发平台
    企业数字化转型上,信息孤岛是企业痛点之一。所谓的信息孤岛,指的是企业内部使用着多套应用软件,多年后企业员工会在多套系统中积累大量的企业各类数据资产,由于各系统数据不能互通,随即形成一座座数据孤岛,导致企业数据资产无法互联互通,实现数字资产最大化。信息孤岛的存在所带来的弊端......
  • Java实现浏览器端大文件分片上传源代码
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭......
  • java List去重的代码
    一、HashSet去重我们知道 HashSet 天生具备“去重”的特性,那我们只需要将List集合转换成HashSet集合就可以了,实现代码如下:publicclassListDistinctExample{publicstaticvoidmain(String[]args){List<Integer>list=newArrayList<Integer>(){{......
  • app直播源代码,自定义顶部搜索栏显示隐藏
    app直播源代码,自定义顶部搜索栏显示隐藏1、wxml代码 <viewclass="bar-box"style="height:{{navBarHeight}}px;">  <viewwx:if="{{show}}"class="level"style="margin-top:{{barHeight}}px;">    <viewclass=&......
  • 永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控制,代码全部手写
    永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控制,代码全部手写开源,可以移植到各类mcu上。附赠高频注入仿真模型ID:69100646985514964......
  • KPCA matlab代码,可分train和test。 注释清晰
    KPCAmatlab代码,可分train和test。注释清晰YID:7220647215929418......
  • 代码规范
    异常处理尽量使用预先检查避免运行时异常if(obj!=null){...}避免不会出错的代码加入try代码块事务抛出异常要进行手动回滚资源必须在finaly关闭不要在finally中return会舍弃try中的返回点捕获异常与抛异常,必须是完全匹配,或者捕获异常是抛异常的父类。在调用RPC、......