软件工程

浅谈软件工程学习心得

家住魔仙堡 提交于 2019-11-29 20:10:05
【张城硕(sa15226451) + 《软件工程(C编码实践篇)》MOOC课程作业 http://mooc.study.163.com/course/USTC-1000002006 】 学习软件工程两个月来,我在孟宁老师的教导下确实获益匪浅。我从一开始对不知如何使用vim和git的无知,逐渐演变到软件设计模块化的熟练。下面, 我将谈谈这两个月学习软件工程线上课程的具体体会。 关于软件工程 首先,我先谈谈我对软件工程的理解。软件工程在我的脑海里就是如何利用工程化管理的技术来做软件。为什么会诞生软件工程呢?孟老师不止一次的提到,随着代码量的增大,人对代码的掌控能力越来越弱,代码的逻辑、进度和成本越来越不好控制,产生了软件危机!为了解决软件危机,软件工程应运而生。我比较喜欢线上编程,基本上每次线上课程我都投入了大量的时间和精力。 关于代码 在代码上,我在软件工程中学习到的是。 在细节上: * 第一、需要遵守 代码规范 ,好处是便于修改和维护。让别人看的清楚你的代码; * 第二、数据和业务逻辑的分离。我们需要将代码进行 模块化 ,从而更好地维护和复用代码; * 第三、懂得合理地 设计接口 ,既不能面面俱到,也不能太过笼统,够用就好。比如说:链表的接口设计和菜单的接口设计就有所不同。链表需要增删查改的接口,而菜单的接口就无需如此太过细节化; * 第三、掌握代码的运用技巧,比如说 回调函数

软件工程第一次作业9.16

馋奶兔 提交于 2019-11-29 19:34:44
你对软件专业或者计算机专业了解是怎样? 作为大一新生,在我眼中,软件工程是一门培养软件工程师的专业,使学生拥有清晰、宏观、周全的逻辑思维去编辑代码。它以计算机科学与技术学科为基础,强调软件开发的工程性,使学生熟练掌握从事软件需求分析、软件设计、测试、维护等工作所必需的基础知识、基本方法和基本技能。在实际生活工作中应用范围很广,如游戏开发,人工智能等。 你了解C语言么?C语言主要应用有哪些? C语言是一门通用计算机编程语言,应用广泛,具有良好的跨平台特性,是很多计算机编程语言的基础。C语言由B语言发展而来,并随着时间的发展不断优化升级。C语言是计算机专业的必修课,同样也是很多理科、工科专业的必修课,可见其重要性。从C语言入门能够让我们更好的了解编程的环境。 C语言的应用领域分两大块:系统软件开发和应用软件开发。其中C语言最主要用于编写系统软件,编写应用软件不是它的强项。 其中系统软件包括 1.操作系统:UNIX、Windows、Linux。 2.驱动程序:比如主板驱动、显卡驱动、摄像头驱动。驱动一般是用C语言和汇编语言写的,C++ 在这方面稍弱。 3.数据库:SQL Server、Oracle、MySQL、DB2。 而应用软件开发包括 办公软件:WPS。 图形图像多媒体:Photoshop、Mediaplayer。 嵌入式软件开发:嵌入式软件开发说得简单点就是芯片编程

Git工程开发实践(四)——Git分支管理策略

∥☆過路亽.° 提交于 2019-11-29 19:22:08
https://blog.51cto.com/9291927/2173509?source=dra 一、Git版本管理的挑战 Git是非常优秀的版本管理工具,但面对版本管理依然有非常大得挑战。工程开发中,开发者彼此的代码协作必然带来很多问题和挑战: A、如何开始一个Feature开发,而不影响其它Feature? B、由于很容易创建新分支,分支多了如何管理,时间久了,如何知道每个分支是干什么的? C、哪些分支已经合并回了主干? D、如何进行Release的管理?开始一个Release的时候如何冻结Feature, 如何在Prepare Release的时候,开发人员可以继续开发新的功能? E、生产线上代码出现Bug,如何快速修复?而且修复的代码要包含到开发人员的分支以及下一个Release? 大部分开发人员使用Git一般使用三个甚至两个分支,一个是Master,一个是Develop,还有一个基于Develop的各种分支。在项目规模小的时候勉强可以支撑,但如果开发人员较多,而且项目周期过长就会出现各种问题。 在Git进行源码管理实践中,诞生了Git Flow,用于进行Git分支管理。 二、主流分支策略简介 Git主流分支策略有三种:Git Flow、GitHub Flow、TBD。 Git Flow是应用最广的Git分支管理实践。 GitHub

2019软件工程第一次随笔

回眸只為那壹抹淺笑 提交于 2019-11-29 19:11:35
你对软件专业或者计算机专业了解是怎样? 计算机是二十世纪最伟大的发明之一,影响着我们的生活。计算机是一种设备,能够按照事先存储程序,自动高速的进行大量数值计算和信息处理。正是因为计算机强大的功能,使它与人类的联系越发密切,同时也能显示出它在当代以及未来的重要性。而对于软件工程来说,软件工程是一门指导软件开发和维护的工程学科,主要研究软件开发和维护的工程技术和软件项目管理等内容,其中涉及如何保证软件产品的质量和可靠性,如何提高软件开发效率和拥护满意度。通过计算机能将人类的思维与观点表达出来,更能不断提升自己,锻炼自己的思维能力,达到更高的水平。 你了解C语言吗?C语言的主要应用是什么? C语言是学习编程的基础,任何编程的学习的开始都是要学习C语言,C语言也是普适性最强的一种语言,可以发挥出高级编程语言的功能。而C语言广泛应用于底层开发,C语言能以简易的方式编译、处理低级存储器,是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译,C语言的主要应用于编写应用软件、系统软件、驱动、手游底层开发,中小型的游戏,服务器开发,工业机器制造等,C语言的应用功能广泛,因此

软件工程师和硬件工程师

拥有回忆 提交于 2019-11-29 18:54:35
软件硬件工程师其实有非常多的相同的特质,尤其作为有着工程师这个标签的人,共同点还是相当多的。这里就从这些共同点里面挑挑刺儿,看看这两种类型的工程师里面有着什么样的思维不同点,尽量不带褒贬色彩。 软件工程师:我今天要完成xx行代码的重构 硬件工程师:这几个器件能不改就不改,实在不行用独家供货 软件的灵活性很高,可以根据需要进行修改,即使是微不足道的修改,只要能让代码看起来比较“爽”,都可以随时进行调整。况且现在代码的版本控制工具比较成熟,实在不行可以用时光机返回所有的修改。 硬件不一样,有时候动一根线,或者layout的时候动了一点位置都可能导致信号产生比较大的噪声或者异常。每一个器件的修改也是慎之又慎,需要一系列替代测试和可靠性测试,即使是在风险可控的条件下,也要考虑投入产出比。 软件工程师:有一个新的需求,我们要考虑一下实现方案 硬件工程师:有一个新的需求,我们看能不能在原来的方案上改一改 软件行业日新月异,有各种各样的语言、框架和实现方式,程序员的经验可以让他们更快的学习,但因为时常要面对新的东西,随着年龄的增长会显得力不从心,于是就有了程序员是青春饭的说法。同时,由于软件的灵活性,需求往往是变化多端的,即使是在同样的框架下,面对各种各样的需求也有可能遇到很多坑。 相对软件行业,硬件的变化算是比较小的,虽然性能可能在不断提高,但更新的速度和更新的范围往往是较小的

软件工程_个人课程总结

寵の児 提交于 2019-11-29 17:59:29
反思总结:   不知不觉已经到达了学期末,软件工程课程已经结束了,回想这一个学期以来的课程,自己有很多在寒假定的计划都没有实现。   自己之前在寒假立的flag是要学习Android开发,在寒假的时候自己也找过很多资料,包括在来的火车上,同学还给了好多的教学视频,不过这学期也没有拿出时间来看这些视频。这是这学期最大的失误,没能把Android学会,包括在团队项目的时候也没用Android Studio开发,而是借用HBuiider来用html开发网页app,一直在吃自己之前学过的东西。   这学期也不是没有收获,学到的东西还是很多的,通过课上的一些个人练习作业,确实学到了很多,虽然自己课上没有做出很完美的东西。这一学期感觉最熟的还是web系统开发,从web应用开发课程和PHP程序设计课程中也是学习和接触了很多新的html知识和php脚本,在php大作业中更是学习了很多新的东西,主要是一些新的脚本,还有一些js代码,比如分页,导出Excel,对上传的图片进行存储、调用,也学习了一点css。在软件工程第一次课的时候,按照传统,是开学考试,而那次的测试就是套用已知的界面,自己调用接口,写功能函数,将系统功能完成。当时老师说过,作为后台程序猿,前端开发会直接给接口,在测试中自己也是感受到了,不过没有说明书,只能自己摸索着去看别人代码,要弄明白别人代码是做什么的,然后再将自己的代码嵌进去

软件工程--个人课程总结

こ雲淡風輕ζ 提交于 2019-11-29 17:59:12
  时间过得就是这么快,转眼之间,一个学期就过去了,而我,也在这个学期中学习了软件工程这门课,收获很大,成长也很多,相信,在这门课上学到的东西以后会成为我工作生活道路上影响颇丰的一部分. 一、学习态度    在这个学期,我首先是要检讨一下我自己的.首先,在平时的撰写博客方面,我没有按照像我想象的那要去严格要求自己,虽然在看过一些好的博客之后,风格有一些略微的改变,但是,关于一些很有学习意义的博客还是没有写出来,一是我平时的学习强度还是不够,其次,就是在日常学习方面,只是注重于理论,却没有更多的去实践,使得很多的想法也只是想法.   但是,在这个学期的这门课上,我是真正的学到了许多的东西,这么课其实并不是很难,加上我们老师的独特的超幽默的讲授方式,使得我们也更愿意去听老师的讲课而不产生排斥.在这个过程中,我也养成了一些比较不错的习惯.这在我以后的工作中我认为是可以受益终身的. 二、课程收获    切身感受,我在这门课上学到了不少的东西.比如,关于软件开发过程中的各个方面,在这么课上有了很详尽的了解;再比如,怎么样成为一个合格的团队成员.下面,我想说一下对于这门课我最大的几点收获.    1)真正的软件是有生命力的   在刚开始的时候,我只是认为,软件,只是一个我们平时用的一些软件,没有什么特殊的意义,再要说的话,也就是如百度百科上说的那样