第一次作业
第一次作业
1. 阅读与准备
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/4518 |
课程目的 | 学习软件工程,掌握编程方法,加入团队,明白团队分工的重要性 |
这个作业在哪个具体方面帮助我实现目标 | 初步了解本课的教学内容与方法,分组学习的运用使我更好的学习软件工程。 |
1.建立博客并介绍自己
我是2017级地信专业的学生陈杰,来自四川广安(*爷爷的家乡)。性格方面挺和善的,有点内向吧。喜欢的运动不多,打乒乓球和羽毛球算是为数不多的两个了,平时喜欢打手机游戏和看点电影。吃也是我很喜欢的方面,这正是一直胖不能瘦的一个重大原因。学习方面呢,成绩一直一般,不是很高分,也没有挂科。喜欢学科是数学,物理,化学方面的理学,比较喜欢理解方面的学科,不喜欢那种生拉硬背的学习科目。我的博客是https://www.cnblogs.com/Chenjor/。
2.阅读与思考
阅读材料,并回答下面几个问题:
(1)回想一下你初入大学时对你所在专业的畅想
- 当初你是如何做出选择你所在专业的决定的?
--我认为这是命运的使然吧(调剂)。
*你认为过去(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
--我认为不太符合,毕竟是调剂到此专业的,最初也不是很了解与喜欢,现在感觉吧,计算机与编程要求很高,我感觉很有难度。
*你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
--我觉得我不太喜欢这个专业,毕竟我喜欢理学一些的,机械制造才是我最初选择的,我本身不擅长计算机,所以此专业我学习起来很有难度。
*将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
--若是能有机会我当然会优先考虑其他喜欢的工作,虽然老师一直说我们专业比较好找工作,但在经过几次实际干过之后才觉得我们的工作很无趣,很枯燥,也很难受。
(2)对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
--自我感觉专业知识、技能、能力很不足,我不清楚我到底学到了些什么。已经写过的代码少得可怜,不足千行代码。最复杂的项目算是上学期的国土三调了。在编程和软件开发方面离一个合格者还相差甚远。
(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
对照以上你阅读的前人们的经历,你的选择是什么?
--我一直不是很确定要干什么,应该是工作吧。
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
--优势可能就是喜欢动手实际操作吧,有很好的执行能力;劣势可能在创新和开发上有很大的劣势。
针对你的选择,你给自己的大三设定的规划安排是什么?
--继续努力学习,加油弥补自己的短板,发扬自己的长处,增长见识,积累经验。
你对于实现自己的梦想已经做了或者计划做什么样的准备?
--计划就是先学好每一门课程,参加老师的开放性实验,参加一些社会实践,真正加入本行业的生产。
3.提有质量的问题
1.第四章第六节两人合作的阶段和技巧,上面都是讲解的都是在两人合作中会发生的情况与情况,但是要怎样才能找到适合自己的队友呢?----我认为找到这个适合的队友比解决合作中发生问题更主要。
2.第五章一开始就说团队,但是团队的组成却没有说,如何找到适合自己的团队?----我认为要正确定位自己的擅长方面,找到需要自己的团队。
3.在第16章中,我们谈到了创新,谈到了创新的迷思,时机和招数等。列举了一些产品的创新,比如对于一个魔方的销售,针对不同的用户使用了一些不一样的商业模式。我还是不太了解在软件工程领域中创新是什么样子的呢? 新的设计模式属于软件工程领域的创新么? 他是否像其他自然学科那样存在某些规律等待着我们去发现呢?
4.在第9章中,提到了这样一句“没有风险,就是最大的风险。” 这句话该如何理解呢?而在本段之前刚刚对于风险管理水平进行了分层,那这句话是否是可以理解为:风险会从多方向来袭,企图缩短软件的生命周期,而所谓“没有风险”只是没有预见风险,并且没有对其未来的风险情况进行评估呢?
5.在第五章中团队中的软件开发人员是否比团队的其他人员更需要统筹大体,担当起管理人员的身份?
6.第九章中说PM只能有一个人吗?如果多人会有什么影响。
4.了解和调查源程序版本管理工具
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点? (提示:搜索一下Git、GitHub、Microsoft TFS、Bitbucket、Mercurial、Trac、Bugzilla、Rational,Apple XCode)
Git:
是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
优点:适合分布式开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。离线工作。
缺点:
资料少(起码中文资料很少)。学习周期相对而言比较长。不符合常规思维。代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
Trac:
Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有团队的开发过程。整个Trac是建立在WIKI和TICKET基础上的,WIKI在工具中充当书写文档、TICKET等的语法,它包含了一些类似HTML但简化了的语法格式,在Guide文档中有语法的详细介绍。WIKI的具体含义将在"Trac中的WIKI"一节中进行详细介绍。TICKET是Trac中的另一个重要的组成部分,Trac使用Ticket(小纸条)传递信息。一个Ticket是具体需要做的事情的载体,也包含很多描述性信息。
TFS:
是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TFS提供了良好的读写性能。
特征:
- 采用扁平化的数据组织结构
- 使用HA架构和平滑扩容
- 支持多种客户端
- 支持大小文件存储
- 可为外部提供高可靠和高并发的存储访问
- 支持大文件功能
- Resource Center Server,用于管理TFS集群的用户资源配置
- TFS服务程序开发框架,统一TFS网络客户端库,并新增异步回调功能9. 优化数据流,让写请求尽可能均匀的分布在不同的DataServer。
Bugzilla:
是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。Bugzilla是一开源Bug Tracking System,是专门为Unix定制开发的。
功能:
⒈ 强大的检索功能
⒉ 用户可配置的通过Email公布Bug变更
⒊ 历史变更记录
⒋ 通过跟踪和描述处理Bug
⒌ 附件管理
⒍ 完备的产品分类方案和细致的安全策略
⒎ 安全的审核机制
⒏ 强大的后端数据库支持
⒐ Web,Xml,Email和控制界面
⒑友好的网络用户界面
⒒丰富多样的配置设定
⒓版本间向下兼容
5.一些希望
希望能够学好本门课,掌握到真正的技术。提高自己的能力。