记录督促自己学习历程

7月24日
第一章
今天是读《软件工程》第一天,计划在31日中午读完,下午做一个总结。首先规划了一下每天的阅读量,从总体上了解了软件工程的一些基本概念以及相关学科知识。

就书的内容而言,第一章主要阐述了软件工程的概念,以及它的对于社会生活的重要性,对于软件系统本身而言,分为很多种不同的工程应用,例如嵌入式系统、以及批处理系统和独立应用,以及我们常见游戏类的交互式应用,为什么会产生这些差异性,主要还是由于,社会需求的推动,主要是人们对于软件系统差异性以及社会变革还有 安全可靠的考量,所以推动了软件的不断发展。

对于导言中提到的J2EE NET SAP SOAP CBSE Web ,上网查阅了相关资料,由于涉及专业性太强,目前只是稍微掌握和了解了Web的相关含义,以及思考到了一些问题。

另外,导言部分,几个关于软件工程方面的提问以及回答对于理解这个行业有很大收益,例如,第一次全面了解软件不光是包含程序,还包含了相关文档资料,基本的软件活动是包含软件描述和软件开发、软件验证以及软件进化,这对于之后定义自己的工作职责有很大的意义。

通用软件主要是指那种市场上常规售卖的软件,例如游戏,以及adobe全家桶,区别于订制软件的主要因素在于,软件描述以及实现功能方面的差异

软件工程作为一门工程学科,我总结起来主要是有几个特点,第一是结构化编程,区别于非程序话操作,信息影藏,以及面向相关对象开发,使用标准的工具以及符号系统。
另外这一节还阐述了,有关于计算机科学和软件工程的差异化,主要是计算机科学注重微观层面,另外,系统工程是包含软件工程的,

在阅读第一章的时候发现一个需要解决的问题,就是“程序源代码”的定义,在影视作品以及相关论坛经常听到这个词语,一直没有什么确切定义上的概念,查阅相关资料和得知就是类似浏览器按f12时候出现的h5 代码。这是一个收获。

另外,软件工程原则上是需要按照相关规范流程进行操作以及开发,但是本书中提到,对于基于web进行开发的软件,某些时候运用不规范操作更有利于实现目的、这个需要以后工作中注意。

在软件工程细分类中,软件过程主要构成因素是软件描述、软件开发、软件有效性验证以及软件进化,在一定程度和之前填写简历时候查阅相关资料所描述的测试工作所需要做的工作相类似,但是对于各个概念之后的细分可能要等到再多看一些书,才能理解透彻。

另外,文中提到一句话,“计算机科学理论并不十分适用于大型复杂的软件”对于这句话的理解可能要等看完此书,之后看关于计算机科学的相关书籍才能有一个深刻的理解,在此先留下一个记号。

对于文中提到的软件工程的多样性这一块,虽然我之前工作有一种产品叫做嵌入式工业控制计算机,但是在看了关于“嵌入式控制系统”定义之后,查阅了相关资料,发现之前公司存在挂羊头卖狗肉行为。

另外对于集成的系统这一块,理解不是很透彻,我不是很明白,软件业务也会有相互集成的可能,我以前了解的都是软硬件集成,但是书中所提到的相关软件集成包括之后提到的关于web中各个程序的集成,不是很理解,在这里打个问号。 还有一个问题,“分布式系统”概念不是很理解,查阅百度之后,大概知道是一种底层形势并非操作系统此“系统非彼“系统”
就软件工程层面上来讲,主要需要注意三大块,是实际成本、项目进度、可靠性,适用于所有软件开发适用性条件包括,管理之下的过程开发,可以依赖的性能,系统应该做什么。以及高效的利用当前资源,对于上面两类分类,比较疑惑目前,因为有很多分类,但是每一个基本上都和之前看到过的软件测试以及质量工程师判断依据有交叉,都记了下来,这也是一个问题。
我在读的过程中手写了一些要点,其中web系统编程是基于Ruby脚本语言,但是其不适用于嵌入式系统工程,这个我查阅了相关资料,专业术语太多,所以暂时留做疑问,在31号做总结的时候统一在把所有问题进行归档查阅以及请教表叔。
另外,在第二小节,还论述了关于Web与软件工程的关系,其中我印象最深刻的是受制于浏览器能力,虽然AJAX对于完善web页面功能性有很大帮助,但是目前非常难用,具体AJAX代表什么我查阅了一下资料,他是Asynchronous JavaScript and XML的缩写,不是指一种语言而是指一种使用现有标准的新方法。
第三小节是关于作为软件工程从业人员的一些职业要求,主要还是几点:保密、工作能力、知识产权以及计算机滥用,另外了解到了两个行业协会,一个是ACM 一个是IEEE,
第四小节,通过三个案例交待了,在不同应用环境以及场景下,不同软件类型的工作方式,在这里主要学到认识命令序列图,但是同时留下一个疑问就是:信息采集系统是基于什么系统完成的并不是指软件工程的系统而是操作系统。

第二章
主要是了解到了关于软件工程中关于软件过程的内容,我着重记了四大要素:软件描述、软件设计和实现、软件有效性验证以及软件进化,需要强调的是软件进化其实更近乎中文语境的迭代,不知道我是否理解正确。同时,从这个四点基本活动可以扩展出很多相关下属的活动,对于这一节的理解,主要是所有的开发过程,基本上是固定的需要按照已有的步奏进行操作。

另外,介绍了几种软件过程模型,其中我比较容易理解的瀑布模型,其他比如增量式开发,面向复用的软件工程,通过查阅相关资料有所了解,我通过自己画了一个思维导图,便于自己理解。
第一小节讲了软件过程模型,第二小节主要介绍软件过程活动,在小节开始,便又看到了开篇看到的NET,通过查询相关资料,并没有完全理解其意思,需要等看完全书31日,做相关问题的总结。在软件描述这一小节,附言里面看到了之前写简历时候看到的软件开发工具的间歇CASE,加深了上一次对于应用场景Case的区分,另外一个关键字“IDE”也被加入笔记本关键词中,通过查阅资料,了解到,是一种对于集成开发环境的缩写。

需要注意的是,之前在网上看相关资料的时候,只提了一句,需求可行性研究,但是没有系统性阐述,后续的需求导出以及分、需求描述以及需求有效性验证。这个可以看出,网上资料的碎片化,和看教材的差异。以后需要注意。

软件开发的核心,我认为是开发过程和设计过程,至于文中所说的增量式开发方法,由于目前我对这种方法理解太不够透彻,所以,不太能理解,“增量式开发方法,可能还包含对于软件描述的精炼过程”这一句话,

另外,对于软件设计以及实现这里,我对于,相关流程,一遍的看还不是很熟练,需要多看几遍教材后续。通过我对于这里的总结,主要分为三个流程,第一是对于软件相关描述,第二是相关设计,第三是设计之后的成果。

这里,发现了一个新的属于UML,通过查阅是统一建模语言的意思,已经记录在笔记本,但是对于其更深层次的含义,还需要假以时日进行理解。同时,我有一个问题,就是软件设计工作,如果后续工作我要参与,将会以一个怎么样的角色参与其中需要我做到什么样的工作,来完成此项工作。

关于软件的有效性验证,之前在网上没有看到过其缩写,另外,对于这里反复提到的测试,不是很清楚是不是就是跟测试工作有关,存疑。

对于这一小节的分类,我也做了一个思维导图进行辅助理解,软件有效性验证,测试中包括:组件或单元的测试,系统测试,接收测试、

第四小节,讲关于软件变更的问题,我的理解这一方面主要是避免成本上的增高。其中所涉及到的增量开发,目前看来是非常重要的一种模型。增量式开发以及增量式交付,我看了一个小时,研究了一个小时,我的理解是,类似与产品迭代,一边交付产品给用户,一边更新迭代自己的产品,已达到节约成本和,获得相应的需求经验,保证交付产品最核心部分的稳定。

关于螺旋模型这一小节,我认为核心是在讲这个模型对于规避风险的意义,它从根源上假定项目存在风险,并在各个环节进行证伪,它最基本的理念,我认为有点类似或者说衍生出来黑盒测试,当然这是我目前的一个认识,需要不断学习。我认为,螺旋模型主要是可以在项目开始之前就可以对相应的风险进行评估,从根源上避免风险出现的可能性。

Rational统一过程模型,在我发这个的时候正在网上查资料,不是很懂,不敢乱说,所有上面标准提到的问题,在31日都会汇总到笔记本,到时候我会再查阅一次,争取在1号前尽可能弄懂所有问题,总结起来今天看这两章的感受就是,这是一本很系统化很全面介绍软件工程的书,我会不止看一遍,对于其中所涉及的概念,以及学科知识,我会在网上查阅,尽量自己弄懂,用最快时间看完,先打下一个基本概念。第一天只看了两章,明天要看四章,今天花太多时间查阅网上资料,听网上的讲义,虽然很多都不是很懂,但我会把不懂的记下来。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值