速读《构建之法——现代软件工程》引发的五个深思
已是大三下半学期,原本以为浑浑噩噩的大学快要过去,对于学校开设的专业课也没有多大的兴趣,就如每个学期一样按时完成作业,实践设计课老师布置的代码等其他同学检查完,请教一下,再稍作修改给老师检查就万事大吉了。但是第一节软件工程上代老师极度认真负责的态度改变了我想要浑水摸鱼做一个“南郭先生”的愚蠢想法。
本着认真学习的态度,粗读完邹欣老师的《构建之法》后引发了很多问题,挑选其中五个问题进行详述。
问题一:什么是BUG?
在读《构建之法》这本书之前,我粗浅的认为程序中的BUG就是程序如何修改都解决不了的问题或者是软件已经发布却出现的问题。在读这本书的第一章时,书中是这么描述的:软件的行为和用户的期望值不一样,就叫BUG。这与我之前的认识不同。BUG的英义是缺陷,瑕疵。网上也有人说BUG是隐藏在电脑系统或程序中一些未被发现的缺陷或问题。所以到底什么是BUG,脑海中仍没有形成清晰的认识,作为一个没有任何软件开发经验的新手在这一学期的第一个想法就是在实际的软件开发过程中体验到什么是BUG。
问题二:何为软件工程?
既然是工程,顾名思义,就是有计划,有结构,有目的,系统的去做一件事。在读第一章时,书中描述到:软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。所以,如何使有计划,有结构,系统性强,如何使得计划更加完美,可量化的方法有哪些?
问题三: 如何做好软件需求分析?
在读这本书的第八章时,“软件需求分析”这几个字引发了我深刻的思考,做好软件需求分析是软件获得用户认可的第一步。如果没有做好对软件需求充分的分析就开始软件的研发,就算是软件研发并发布成功,也会有一系列的后续问题出现。所以用什么方法能够精确地获取到用户对软件的需求或者用户期望软件能拥有的功能就显得尤为重要。从哪几个方面对软件需求进行分析和软件需求分析的具体方法也是不可忽略的问题。
问题四:如何做好软件测试?
其实在上学期就听到了软件测试这个名词,当时对它的看法是测试软件是否达到用户的需求。在此时看来,这只是软件测试中功能测试的一部分。书中第十三章介绍了很多软件测试的方法以及测试的目的分类。 通过粗读只了解到了基本概念,如黑箱测试和白箱测试,如何去实现以及效能测试,负载测试,压力测试,针对不同的软件如何进行有质量的软件测试?
问题五:如何做一个合格的项目经理?
项目经理在我看来是唯一一个不用写代码而在软件工程中很重要的角色,对于我这种长处不在于写代码和调BUG的人来说是个职业发展的机会。书中第九章具体介绍了项目经理的任务——PM做开发和测试之外的所有事情!所以并不像我认识的那么简单容易,它需要观察、理解和快速学习的能力;分析管理能力;一定的专业能力;自省能力;领导力,还要在整个项目的生命周期管理风险。如何协调、沟通,让一个团队有效的运转?项目经理的工作涉及哪些学科的知识?这些将是我在这学期的课程生活中想要学到的知识。
希望通过一学期的认真学习可以改掉以往散漫的学习态度,树立对自己专业知识的信心,找到以上问题的答案。如有不恰当之处,欢迎大家指正。