记软件工程课程第一次随笔

任务一

  软件工程,这一词其实自己已经很久前就已经听过了,当时的认为的“软件工程”无非就是通过百度百科了解,软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性......可是何为软件?何为工程?为何软件工程要以计算机科学做基础?这些在学习这门学科之前好像从未认真的思考和了解过。今天我读完了邹欣的《构建之法》的第一章概论,在这里他将软件工程这一概念单独的用一小节来概述,我读后也有了一些自己的理解。

  对于软件,我通过对课本中列举的软件的五个性质开展自己的理解:1.复杂性。见词知意它是复杂的,软件可以分为系统软件、应用软件、恶意软件等,而我们最最熟悉的应用软件又可分为写文章、游戏等,其中的某一个大型软件的源代码就可以超过上百万行,不同的文件达到上万行,但我们可见代码却少之又少,随着时间、技术的推移,系统的再升级,软件中的代码关系越来越多,但是我们人的智力理解力有限,所以软件对我们来说变得越来越复杂;2.不可见性。当工程师在用自己程序出错时,是不可以直接通过自己的源代码来知道软件具体的错误位置和信息的,只能通过运行自己原本的代码来进行大概寻找错误信息;3.易变性。每个人的手机中都有很多不一样的软件,这些软件都是根据自己的个人需求所下载,而这些不同的软件就是通过用户的各种不同需求进行不同的定义或修改得到的,或者对于在不同的硬件上也要进行修改使软件更好的适应兼容;4.服从性。我在课堂上了解到了软件名字的来源,即最开始有了硬件这一名词,之后人们根据性能将其取反得到“软件”这一词。明显的,软件是因为硬件而得来,那它便不能独立存在,总是要运行和服从于硬件之上的;5.非连续性。对于此特性,我认为自己并没有更好的理解其意思,所以我会在接下来的学习中继续探索学习。

  对于工程,书上说“创造性地运用科学原理,设计和实现建筑、机器、装置或生产过程;或者是在实践中使用一个或多个上述实体;或者是实现这些实体的过程”。我自己的理解是这样的,每个人都会写程序,我们可以通过自己写的程序实现了一些小的功能甚至得到一个简单地软件,但是当我们想要更好的完善这个软件得到一个大型软件时,就不仅仅是自己一个人可以完成的了,我们需要将其分成多个部门利用各自擅长的相互协作共同完成。并将整个过程规模称之为“工程”。

  对于软件工程与计算机科学的关系,看了书上列举的托尼·霍尔比较计算机科学和软件工程的不同侧重点的表格,我理解到,计算机科学更偏向与理论知识的研究,而软件工程更偏向与实际相结合,根据用户的需求做事。同时计算机科学和软件工程在学习上更有很多的交叉点,比如数学方面,逻辑方面等基础知识很多相同。而软件工程上在很多的时候也是需要计算机科学领域研究的理论作为基础的,以此更好的进行解决实践问题。

任务二

  对于自己的实际能力,也是非常的不足的,在Codewars上的分数也仅仅一百多,虽然已经学习过C,Java,Python以及Web前端开发这些语言,但自己也没有更多去练习写程序,更深入一点的研究。我想以后自己会明确目标,多多练习写代码以及学习算法,打好基础,以便更好地学习新知识。

posted @ 2020-09-20 15:52  Non_variable  阅读(122)  评论(0编辑  收藏  举报