个人第一次作业:阅读与准备作业

作业|
:--|:--|-
这个作业属于哪个课程| 课程链接
这个作业要求在哪里|作业链接
我在这个课程的目标是|1.掌握软件工程的生存周期  2.掌握面向对象分析、设计与编码方法 3.掌握软件工程的模式
这个作业在哪个具体方面帮助我实现目标|1.提高了我的动手能力 2.增强了学习的主动性 3.通过自我学习网上、博客里的资料

个人介绍

       我是来自地理信息科学17级的曾琅,大学一晃眼已经过去两年了,在这两年无论是在学习还是生活上都有所收获,在学校里的学习使我更好认识世界,认识自己。我平时喜欢听听音乐,自己的闪光点确实找不到,可能自己不善于发现吧。偶尔被迫跑跑步打打卡,希望通过《软件工程》这门课学会更多的计算机知识。
       我的博客地址:https://www.cnblogs.com/zlang/

阅读与思考

Q1:回想一下你初入大学时对你所在专业的畅想

  • 当初你是如何做出选择你所在专业的决定的?
    当初填报志愿全是按照百度的国家级重点专业,因为自己也不知道想学什么,想着这样的专业一定很好,结果一个也没录上,就来到了本专业,知道被本专业录取后,在网上查阅了资料,有说不好的,有说好的,对此自己感觉很焦虑,大一的时候也想过转专业,但是也不知道自己想学些什么,所以最后还是留在了本专业。
  • 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
    符合一半的期待吧,直到大二才60%知道本专业具体是干嘛的,接触到的专业课程都是理论大于实践,自己并不喜欢理论概念上的东西,因为概念上的东西很难理解,因为它表达的意思很抽象,句子也不是通俗易懂的,这同样意味这期末要背很多,感觉自己相对于还是喜欢高数、C语言这类的课程,专业课就如同高中的语文,高数、C语言如同高中的数学。
  • 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
    对自己的专业的邻域喜欢大于讨厌吧,既来之则安之,擅长谈不上,在学校学的都是基础的东西,很多都是以后的公司培养出来的吧。
  • 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
    这个得看具体情况吧,本专业的工作有人要你,你觉得适合,当然可以去,如果本专业的工作没有人要你,只有另谋方向了,毕竟这是一个不可控的,谁也不知道未来会发生什么。我还是想留在成都,公司和岗位还没去了解过。

Q2:对照前人们走过的路和描述未来发展,现在的你

  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
    现在已经具备的都是一些简单的皮毛,专业知识了解GIS、RS、GPS和测量的一些概念,已经写过的代码量有1000多行吧,我做过的最复杂的作业就是数据结构这门课的上机实验,上课几乎都是用理论的方式讲,编程这块确实不是强项,有大量自己看不懂得代码。
  • 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
    对于专业知识,只能说双脚刚跨进大门,对于技能,本专业的ArcGis软件不是很熟练,看见ArcGis软件的强大功能,自己所了解的也只是皮毛吧,综合前两个专业知识和技能,专业能力肯定也不行。

Q3:目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支

  • 对照以上你阅读的前人们的经历,你的选择是什么?
    我的选择是先考本专业的研,如果考研没考上就考公,如果考公没考上就工作,如果对于自己的工作不满意,会在工作期间考研或考公。说起来容易,感觉做起来很难。
  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
    考研成功的话相对于选择工作的同学更能了解本专业的专业知识,如果导师选得好,也更能在本专业提升自己。其实又想想,如果导师没选好,考研无非是多了一张文凭,劣势就是少了两三年的工作经验和经历。考公成功的话工作稳定,可能工资会低一点。
  • 针对你的选择,你给自己的大三设定的规划安排是什么?
    目前是先把计算机二级和英语六级过了,大三上学期作考研的准备,了解自己想考的学校所用的教材,将一些需要用的资料准备好,询问想考的学校的同学,打听打听导师,最终确定好自己想考的学校,大三下学期正式开始复习考研。
  • 你对于实现自己的梦想已经做了或者计划做什么样的准备?
    正在作计算机二级和六级的准备,了解考研相关的知识,所有的都会认真对待。

提有质量的问题

Q1:第2章2.1.2P27在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,为什么代码覆盖率并不等同于100%的正确性?
我先查了代码覆盖率的含义:是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。可分为类的覆盖率、方法覆盖率、语句覆盖率、语句块覆盖率 、分支覆盖率,我的理解是既然已经做到100%的覆盖率,意味着已经进行了100%的单元测试,单元测试是检查每个软件单元能否正确实现功能、检查软件单元的性能能否达到要求、发现软件单元中可能存在的错误,既然每一部分都完全正确,为什么不等同于100%的正确性。

Q2:第5章5.2P91软件团队模式,软件团队模式有很多,怎么找到适合自己的团队模式?
书上的团队模式有主治医师模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐团模式,爵士乐模式,功能团队模式,官僚模式,这些都是随着团队的成熟和环境的变化,演变而成的,而我大致看了一下,这些模式都各有优缺点,在生活中,怎么才能找到与自己性格匹配,适合自己的一种模式,还是说这些模式都是随着时间而慢慢形成,并不能提前自己去决定。
Q3:第5章5.4P106团队模式和团队开发模式又什么联系?
团队模式和团队的开发模式的关系,我个人的理解是一群人在一起做软件开发,总是要一些方式方法。而这里团队模式就是这一群人的定性,团队的开发模式则是这群人使用的方法的定性。
Q4:第8章P151对于我们现在接触的项目大部分需求都是老师给我们的任务,那么我们是不是同样需要进行需求的分析?
需求分析是一个项目的开端,既然需求分析确定问题难,需求时常变化,交流难以达到共识,获取的需求难以达到完备与一致,需求难以进行深入的分析与完善,我们是不是不用再这方面浪费时间 而去直接完成任务。
Q5:第11章11.5.2每日构建的重要性,构建是指构建的什么?如何做好构建的工作?
通过查阅资料,每日构建意味着完整地构建整个代码树,意思是将整个项目源代码的目录,子目录,文件的位置尽可能事先固定下来,这样在开发过程中各个模块间,各个文件间的相对位置都不会混乱。源代码树指的就是一个项目所有的已经组织好的代码文件。通常代码树应该用版本控制软件管理起来。了解每日构建的重要性以及带来的好处,但是这个工作应该是很麻烦很耗时间的,怎样做好每日构建的工作喃?

了解和调查源程序版本管理工具

Git |是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。        
:--|:--|-
优点|1.适合分布式开发,强调个体。2.公共服务器压力和数据量都不会太大。3.速度快、灵活。4,任意两个开发者之间可以很容易的解决冲突。5.离线工作。
缺点|1.资料少。2.学习周期相对而言比较长。3.不符合常规思维。4.代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
 

GitHub|GitHub是一个面向开源及私有软件项目的托管平台,是一个集成了git的服务。它可以以网页或者客户端的形式,帮助用户把git本地的数据提交到远程的服务器里。     
:--|:--|-
优点|1.代码托管。2.开源共享。3.提供了很好的学习机会。
缺点|1.不能很好的解决GB2312/GBK,对中文不够友好。2.国内访问速度太慢,经常出现connect time-out。3.wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点

 

Microsoft TFS|是一种为 Microsoft 产品提供 源代码管理、数据收集、报告和项目跟踪,而为协作软件开发的项目。                                                                         
:--|:--|-
优点|是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持。任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用。
缺点|能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。
 

Trac|Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。                                                                                                 
:--|:--|-
优点|非常灵活,可以随心所欲控制可以和SVN集成
缺点|功能不是很强大。
 

Bugzilla|Bugzilla 是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。                                                                                                   
:--|:--|-
优点|免费,有中文版支持
缺点|快速搜索结果不准确。只能管理缺陷。
 

Apple XCode|Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由Apple Inc开发。Xcode是开发 macOS 和 iOS 应用程序的最快捷的方式。                                                                                             
:--|:--|-
优点|编译速度极快,每次操作都很快速和轻松。自动提供撤消、重做和保存功能,无需编写任何编码。
缺点|更新版本后,某个插件可能会失效。
 

Bitbucket|是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统。                                                                                                                                                   
:--|:--|-
优点|非常灵活,可以随心所欲控制可以和SVN集成
缺点|功能不是很强大。

posted @ 2019-09-11 17:21  曾琅  阅读(173)  评论(4编辑  收藏  举报