571
社区成员
发帖
与我相关
我的任务
分享高级软件工程这门课主要分为五大部分:工欲善其事必先利其器,工程化编程实战,从需求分析到软件设计,软件科学基础概论,软件危机和软件过程。
在第一部分工欲善其事必先利其器中,我学习了VS Code的使用技巧,了解了其设计的精妙之处。其次,我学习了git在五个场景中的使用方式。我也学习了vim的使用技巧和正则表达式的基础使用方式。这些技能都是非常重要且实用的,在未来的工作中会经常使用。而且在其他课程中没有办法学习到,网络上的这方面知识也非常繁杂,没有成体系。所以这一部分的学习使我获益良多,以后在实践中我会慢慢对这些工具使用地更加熟练。
第二部分工程化编程实战,通过实践编写menu代码,了解了编写高质量代码的基本方法。在实践过程中,我学习了模块化代码的基本写法,软件设计中的一些基本方法,通过可重用设计了解了通用接口定义的基本方法,降低耦合度,进行线程方面的分析等。这一部分是在实践中学习的,可以把一些非常抽象的概念应用到实践中,这样可以更加深入地了解这些知识。
第三部分从需求分析到软件设计,以面向对象的分析和设计为思想方法的主线,提供了一种从需求分析到软件设计的基本建模方法。这一部分在我们当前的学习中是经常被忽略的,因为我们工程实践的机会很少,也没有真正应用到工程项目当中,所以这一部分的学习可以温故而知新。
第四部分软件科学基础概论,这一部分知识较多也较为繁杂,尤其是代码部分需要一定的基础知识。这一部分的学习可以让我们更为系统地学习软件科学,构建相应的知识体系,并且在原来知识的基础上学习到更多更细致的知识。例如MVVM中的vue.js背后的实现逻辑和功能。
第五部分软件危机和软件过程,着重讨论了针对软件危机,对软件开发过程的统一和优化,尤其是PSP和TSP对个人和团队的指导作用,让我可以在日后的项目中有统一的流程。而最后讲述的DevOps讨论了在业务、运维和效益层面进行快速迭代重构。
这五部分非常系统地讲述了软件工程的相关知识,熟悉这些知识可以让我在日后的工作中游刃有余。
这里想谈一下PSP,个人软件过程
个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。
(1)PSP基本原则:
部件决定整体质量:软件系统质量是由其最差的部件质量决定的
部件是个体开发:部件是个体开发
过程决定部件质量:软件部件质量由开发所使用的过程质量决定的
个体决定关键质量:关键质量是开发者个人的技能、承诺和个体过程准则
自己负责:做为一个软件专业人员,应当对自己的个体过程负责
自己分析:应当度量、跟踪、分析自己的工作
自己学习:应当从自己的绩效变化中进行学习
应用实践:应当把学习到的适合的经验教训应用到自己的实践中去
(2)PSP可以:
估计和计划自己的工作
满足自己的承诺
拒绝不合理的承诺
了解自己当前绩效
更好的提高自己的能力
(3)PSP提供了:
一个得到证明的用于开发的基础框架
告诉你怎么来改进自己个体过程
持续改进工作效率、工作质量、工作可预测性的相关数据
我认为PSP是非常有指导意义的,在学校中我们很难接触一些工程上的项目去锻炼自己的软件开发的能力。我们接触到的项目一般比较小而且很难应用到工程中。但是离开学校后我们需要这样的能力去开发软件。所以如何训练自己这方面的能力是非常重要的。而PSP可以让我们基于一个成熟的框架进行开发,并且让我们可以在实践中逐步地提升自己的能力,更快适应工作中的软件开发。
参考资料:
个体软件过程(PSP)学习笔记 (未完)_NEKO的博客-CSDN博客
学号:408